fix inlining problem

pull/2/head
weidai 2003-03-20 03:03:11 +00:00
parent 538de80a91
commit e01497632b
1 changed files with 9 additions and 5 deletions

View File

@ -54,17 +54,21 @@ public:
return factory ? factory->CreateObject() : NULL;
}
static ObjectFactoryRegistry<AbstractClass> & Registry()
{
static ObjectFactoryRegistry<AbstractClass> s_registry;
return s_registry;
}
// VC60 workaround: use "..." to prevent this function from being inlined
static ObjectFactoryRegistry<AbstractClass> & Registry(...);
private:
typedef std::map<std::string, ObjectFactory<AbstractClass> *> Map;
Map m_map;
};
template <class AbstractClass>
ObjectFactoryRegistry<AbstractClass> & ObjectFactoryRegistry<AbstractClass>::Registry(...)
{
static ObjectFactoryRegistry<AbstractClass> s_registry;
return s_registry;
}
template <class AbstractClass, class ConcreteClass>
void RegisterDefaultFactoryFor(const char *name, AbstractClass *Dummy1=NULL, ConcreteClass *Dummy2=NULL)
{