c++ - method template specialization in class templates and virtual method templates
- "Michele" <noways aliceposta.it> Sep 07 2003
- "Walter" <walter digitalmars.com> Sep 07 2003
template<typename tt,typename tt2>
class template_test
{
public:
tt member;
template <typename mtt>
mtt tmethod(mtt p)
{
tt tmp;
return p;
}
/* omitting the specialization no test.cpp(19) : Error: 'tmethod' is not a
class template error
template <>
tt2 tmethod<char>(char p)
{
tt2 tmp
return tmp;
}
template <>
long tmethod<int>(int p)
{
return 2;
}
*/
operator tt()
{
return member;
}
template <typename vmtt>
virtual vmtt vtmethod(vmtt p) //line 26
{
return p;
}
};
template_test<template_test<int,double>,char> otempl;
dmc -Ae test.cpp
test.cpp(19) : Error: 'tmethod' is not a class template
Internal error: template 1714
--- errorlevel 1
dmc -Ae test.cpp
test.cpp(26) : Error: storage class is illegal in this context
--- errorlevel 1
the c++ standard permit this things??? dmc will support???
thx in advice
Sep 07 2003
Virtual template methods are disallowed by the C++ spec. Sorry, -Walter "Michele" <noways aliceposta.it> wrote in message news:bjfg52$1md$1 digitaldaemon.com...template<typename tt,typename tt2> class template_test { public: tt member; template <typename mtt> mtt tmethod(mtt p) { tt tmp; return p; } /* omitting the specialization no test.cpp(19) : Error: 'tmethod' is not a class template error template <> tt2 tmethod<char>(char p) { tt2 tmp return tmp; } template <> long tmethod<int>(int p) { return 2; } */ operator tt() { return member; } template <typename vmtt> virtual vmtt vtmethod(vmtt p) //line 26 { return p; } }; template_test<template_test<int,double>,char> otempl; dmc -Ae test.cpp test.cpp(19) : Error: 'tmethod' is not a class template Internal error: template 1714 --- errorlevel 1 dmc -Ae test.cpp test.cpp(26) : Error: storage class is illegal in this context --- errorlevel 1 the c++ standard permit this things??? dmc will support??? thx in advice
Sep 07 2003








"Walter" <walter digitalmars.com>