desctrutor virtual na classe base abstrata pura
eu tenho
struct IMyInterface
{
virtual method1() = 0;
virtual method2() = 0;
};
O GCC insiste que eu tenho
struct IMyInterface
{
virtual method1() = 0;
virtual method2() = 0;
virtual ~IMyInterface(){};
};
Eu não vejo o porquê. Uma interface pura é tudo sobre a interface (duh). O destruidor faz parte dos detalhes de implementação interna de um implementador concreto da interface; não faz parte da interface. Entendo toda a questão da fatia (ou pelo menos acho que sim)
Então, minha pergunta é - o GCC está certo em insistir nisso? Em caso afirmativo, por quê?