I have a base class with a virtual clone new method
class A
{
virtual A* cloneNew() const { return new A; }
};
and its derivatives
class A1 : public A
{
virtual A1* cloneNew() const { return new A1; }
};
class A2 : public A
{
virtual A2* cloneNew() const { return new A2; }
};
Now I want to use macro or other way to make its re-implementation more easily like
class A1: public A
{
CLONE_NEW; // no type A1 here
};
Is it possible to do it? Does decltype(this) help?