Qualcosa come, per esempio,Le specializzazioni di una funzione modello possono essere virtuali?
class A {
template<typename T> T DoStuff();
template<> virtual int DoStuff<int>() = 0;
};
Visual Studio 2010 dice di no, ma ho una strana sensazione che ho semplicemente incasinato la sintassi. Le specializzazioni complete esplicite di un modello di funzione membro possono essere virtuali?
Si dovrebbe ancora ricevere un errore anche se si rilascia 'virtuale', giusto? –
Anche se legale. Perché dovresti rendere più difficile la vita dei manutentori scrivendola. Ricorda che possiede un'ascia. –
@ Tux-D: Perché, mentre potrei creare funzioni DoStuffInt per circa cinque o più tipi diversi, non è proprio la soluzione ideale, e in secondo luogo, perché le intestazioni di Windows hanno un miliardo di problemi di perdita di macro che questo eviterebbe, mentre alcuni i miei normali nomi di funzioni avrebbero un problema. – Puppy