#include "ClassFactory.h"
class Base : public WithFactory<Base>
{
};
class Derived : public Base
{
};
REGISTERCLASS(Base);
REGISTERCLASS(Derived);
CONSOLE_APP_MAIN
{
One<Base> p1 = Base::Create("Base");
One<Base> p2 = Base::Create("Derived");
Cerr() << "p1 is a '" << p1->IsA() << "'\n";
Cerr() << "p2 is a '" << p2->IsA() << "'\n";
Base *ptr = Base::CreatePtr("Derived");
Cerr() << "ptr is a '" << ptr->IsA() << "'\n";
delete ptr;
Base *d = new Derived;
Cerr() << "d is a '" << d->IsA() << "'\n";
delete d;
}