Algo como, por ejemplo,¿Pueden las especializaciones de una función de plantilla ser virtuales?
class A {
template<typename T> T DoStuff();
template<> virtual int DoStuff<int>() = 0;
};
Visual Studio 2010 dice que no, pero me da una sensación extraña que simplemente la pata de la sintaxis. ¿Pueden las especializaciones explícitas completas de una plantilla de función miembro ser virtuales?
Debería obtener un error incluso si deja caer 'virtual', ¿verdad? –
Incluso si fuera legal. ¿Por qué harías la vida más difícil a los mantenedores escribiendo eso? Recuerde que posee un Axe. –
@ Tux-D: Porque si bien podría crear funciones DoStuffInt para aproximadamente cinco o más tipos diferentes, en realidad no es la solución ideal y, en segundo lugar, porque los encabezados de Windows tienen un billón de problemas de fugas macro que esto evitaría, mientras que algunos de mis nombres de funciones normales tendrían un problema. – Puppy