|
Archives
D Programming
DD.gnu digitalmars.D digitalmars.D.bugs digitalmars.D.dtl digitalmars.D.dwt digitalmars.D.announce digitalmars.D.learn digitalmars.D.debugger C/C++ Programming
c++c++.announce c++.atl c++.beta c++.chat c++.command-line c++.dos c++.dos.16-bits c++.dos.32-bits c++.idde c++.mfc c++.rtl c++.stl c++.stl.hp c++.stl.port c++.stl.sgi c++.stlsoft c++.windows c++.windows.16-bits c++.windows.32-bits c++.wxwindows digitalmars.empire digitalmars.DMDScript |
c++ - template arguments
See 14.3 Template arguments [temp.arg], paragraph 2, of the C++ standard:
#include <stdio.h>
template<class T> int f()
{
return 0;
}
template<int I> int f()
{
return 1;
}
int main()
{
printf("%d\n", f<int()>()); // int() is a type-id: call the first f()
}
DM calls the second f().
bye, Christof
--
http://cmeerw.org JID: cmeerw jabber.at
mailto cmeerw at web.de
...and what have you contributed to the Net?
Dec 14 2002
template<typename T>
struct A
{
A(T *t)
: t(t)
{ }
int f()
{
return t(0);
}
T *t;
};
int f(int x)
{
return x;
}
int main()
{
A<int(int)> a(f);
// Error: ')' expected
a.f();
return 0;
}
I guess this should also be allowed as a template argument (it's at least
the preferred syntax for Boost.Function).
bye, Christof
--
http://cmeerw.org JID: cmeerw jabber.at
mailto cmeerw at web.de
...and what have you contributed to the Net?
Dec 22 2002
|