From: Christian P. <cp...@us...> - 2005-05-29 17:42:17
|
Update of /cvsroot/pclasses/pclasses2/include/pclasses In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv25065/include/pclasses Modified Files: Factory.h Log Message: - Added a Factory::registerType() method which does not require constructing a temportary object of the registered type. Index: Factory.h =================================================================== RCS file: /cvsroot/pclasses/pclasses2/include/pclasses/Factory.h,v retrieving revision 1.23 retrieving revision 1.24 diff -u -d -r1.23 -r1.24 --- Factory.h 7 May 2005 11:55:47 -0000 1.23 +++ Factory.h 29 May 2005 17:42:09 -0000 1.24 @@ -258,6 +258,12 @@ registerFactory(key, &typeCreateHook<TypeName>); } + template <class TypeName> + void registerType(const std::string& key) + { + registerFactory(key, &typeCreateHook<TypeName>); + } + //! Returns the shared instance of the Factory static Factory& instance() { @@ -286,7 +292,7 @@ //! Register type with the Factory #define P_FACTORY_REGISTER_TYPE(Iface, c) \ - P::Factory<Iface>::instance().registerType(#c, c()) + P::Factory<Iface>::instance().registerType<c>(#c) //! Register alias with the Factory #define P_FACTORY_REGISTER_ALIAS(Iface, a, c) \ |