September 07, 2003 method template specialization in class templates and virtual method templates | ||||
---|---|---|---|---|
| ||||
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 |
September 07, 2003 Re: method template specialization in class templates and virtual method templates | ||||
---|---|---|---|---|
| ||||
Posted in reply to Michele | 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 > > |
Copyright © 1999-2021 by the D Language Foundation