A reader tried to declare a template as a virtual member function of a class. However, his compiler refused to compile the code. The reader wanted to know what he was doing wrong. The answer is simple: the ANSI/ISO Standard says (14.5.2 p 3): “A member function template shall not be virtual.” For example:
template struct A { template virtual void f(C);
/* error, virtual template function */ virtual void g(); // OK, g is not a template };