Está tornando uma especialização virtual de modelo de função lega
No C ++, uma especialização de modelo de função deve agir exatamente como uma função normal. Isso significa que eu posso fazer um virtual?
Por exemplo
struct A
{
template <class T> void f();
template <> virtual void f<int>() {}
};
struct B : A
{
template <class T> void f();
template <> virtual void f<int>() {}
};
int main(int argc, char* argv[])
{
B b;
A& a = b;
a.f<int>();
}
Visual Studio 2005 me dá o seguinte erro:
erro fatal C1001: Ocorreu um erro interno no compilado