没有可选参数的ctor自变量的抽象工厂

时间:2019-04-03 06:28:48

标签: c++ template-meta-programming

我有一个经典的抽象工厂实现,我想提供一个可选的构造函数参数。使用可变参数模板,Thema的答案似乎很简单,但是我坚持不支持它的VS2010。所以至少有一个这样的论点:

template <class IFTYPE, typename IDTYPE=std::string, typename Args=void >
class AbstractFactory {
  typdef std::shared_ptr<IFTYPE> (*CreateFunc)(Args);
  public:
  std::shared_ptr<IFTYPE> create( IDTYPE id, Args args ) { 
    return nullptr;
  }
};

问题是我无法处理create的{​​{1}}方法中的默认类型。由于我无法命名参数void

如何在保留不同参数类型的选项的情况下解决此问题?部分专业化不起作用,因为它会更改void的签名。我在这里有什么选择?

谢谢...

0 个答案:

没有答案