Original Post
(It's late, I thought I clicked in general programming, my apologies) Ok, I have this cluster of inherited objects. Base A derives from base B,C,D derive from A Classes B, C, D's ctors have the same params. A is the outcast with one extra param. I am developing a templated object manager which will create any of the given types. The problem is the specialization needed for A. If I do the following inside the manager: Well, I can't. Because its not really a specialization of a template. Its a new function. But I want the functionality of this function to work solely for A. I don't want to have to overload Create and always return NULL then create a specialization of the overloaded Create for type A to work normally. However, that's what I'm thinking. Any ideas? I could change the ctor of A but I'm trying to avoid that for now.
...
template <typename T>
T* Create(const st::string & name)...}
template <>
A* Create(const std::string name, int id){...}
//fails but ideally what im trying to accomplish
template <>
A* Create(const std::string name)
{...} //would work but useless for my purpose
...