c++ - Explicit template argument specification for member templates
- Christof Meerwald (30/30) Nov 24 2002 Here is a test-case:
- Neo (6/36) Nov 28 2002 i think that's because extra wrong directed information
- Christof Meerwald (10/41) Jan 06 2003 int i = a.f(b) + a.f<>(b) + a.f(b) + a.g();
- Christof Meerwald (11/48) Jan 07 2003 struct C
Here is a test-case: struct A { template<typename T> int f(T t) { return T::val; } template<typename T> int g() { return T::val; } }; struct B { static const int val = 0; }; int main() { A a; B b; return a.f<B>(b) + a.f<>(b) + a.f(b) + a.g<B>(); // Error: '(' expected following simple type name } bye, Christof -- http://cmeerw.org JID: cmeerw jabber.at mailto cmeerw at web.de ...and what have you contributed to the Net?
Nov 24 2002
i think that's because extra wrong directed information it's like u r parametizing the function in advance and parameter in function may be different and it may create conflict, and hence error is perfectly right "Christof Meerwald" <cmeerw web.de> wrote in message news:arqv16$eqp$1 digitaldaemon.com...Here is a test-case: struct A { template<typename T> int f(T t) { return T::val; } template<typename T> int g() { return T::val; } }; struct B { static const int val = 0; }; int main() { A a; B b; return a.f<B>(b) + a.f<>(b) + a.f(b) + a.g<B>(); // Error: '(' expected following simple type name } bye, Christof -- http://cmeerw.org JID: cmeerw jabber.at mailto cmeerw at web.de ...and what have you contributed to the Net?
Nov 28 2002
Still doesn't work if the program is slightly modified. On Sun, 24 Nov 2002 16:33:42 +0000 (UTC), Christof Meerwald wrote:Here is a test-case: struct A { template<typename T> int f(T t) { return T::val; } template<typename T> int g() { return T::val; } }; struct B { static const int val = 0; }; int main() { A a; B b; return a.f<B>(b) + a.f<>(b) + a.f(b) + a.g<B>(); // Error: '(' expected following simple type nameint i = a.f<B>(b) + a.f<>(b) + a.f(b) + a.g<B>(); int j = a.f<C>(c) + a.f<>(c) + a.f(c) + a.g<C>(); // Error: 'A::g' is already defined}bye, Christof -- http://cmeerw.org JID: cmeerw jabber.at mailto cmeerw at web.de ...and what have you contributed to the Net?
Jan 06 2003
Oops, missed the definition of C: On Mon, 6 Jan 2003 19:23:56 +0000 (UTC), Christof Meerwald wrote:Still doesn't work if the program is slightly modified. On Sun, 24 Nov 2002 16:33:42 +0000 (UTC), Christof Meerwald wrote:struct C { static const int val = 1; };Here is a test-case: struct A { template<typename T> int f(T t) { return T::val; } template<typename T> int g() { return T::val; } }; struct B { static const int val = 0; };bye, Christof -- http://cmeerw.org JID: cmeerw jabber.at mailto cmeerw at web.de ...and what have you contributed to the Net?int main() { A a; B b; return a.f<B>(b) + a.f<>(b) + a.f(b) + a.g<B>(); // Error: '(' expected following simple type nameint i = a.f<B>(b) + a.f<>(b) + a.f(b) + a.g<B>(); int j = a.f<C>(c) + a.f<>(c) + a.f(c) + a.g<C>(); // Error: 'A::g' is already defined}
Jan 07 2003