В настоящее время я пытаюсь спроектировать универсальную абстрактную фабрику и сделать набросок следующего класса:
template <typename T>
class TFactory
{
public:
template <typename A>
static T* create(A a);
template <typename A, typename B>
static T* create(A a, B b);
template <typename A, typename B, typename C>
static T* create(A a, B b, C c);
static T* destory(T* ptr);
};
Затем фабрику можно использовать следующим образом:
Factory<MyType>::create(1, "hello");
Factory<MyType>::create<short, const std::string&>(1, "hello");
Есть ли лучший способ создать это?Это кажется лучше, чем varargs, но все равно у меня перегрузка до 10 функций.
РЕДАКТИРОВАТЬ:
Я должен добавить причину этого, что я буду использоватьпользовательский распределитель памяти внутри фабрики.