Consider following example:
class CBase abstract
{
protected:
CBase() { }
};
I could get rid either of the protected constructor or the ‘abstract‘ keyword. The keyword is intuitive to use, but as far as I know, it isn’t supported by other compilers (especially Gcc).
I was also wondering if using some kind of macro to prepare this code for g++ compilation would be easy enough to write. I want to minimalize code changes if I ever wanted to compile my code on system other than MS Windows.
What about a pure virtual destructor with an empty definition, i.e.
Any not-even-decent C++ compiler supports this and the standard allows it.