#ifndef ALLOCATE_FACTORY #define ALLOCATE_FACTORY template class factory_t { public: enum status_t { ok, error }; private: virtual O* create(I* i) = 0; virtual status_t dispose(O* o) = 0; }; #endif