一个类可以没有参数的模板化构造函数吗?

Ron*_*den 5 c++ templates

我希望有一个看起来像这样的课程:

template <typename T>
class foo
{
  public:
    template <typename S>
    foo()
    {
      //...
    }
};
Run Code Online (Sandbox Code Playgroud)

但我无法弄清楚如何调用构造函数.显然,我可以通过给foo()一个S类型的参数来完成这项工作,但它可以在没有任何参数的情况下完成吗?

--Ron

Col*_*mbo 5

您不能将模板参数显式传递给构造函数模板。构造函数没有名字(让我们不要进入文字游戏)。然而,这并不意味着你不能完成你想要完成的任何事情。您可以通过S类模板参数传入,或者在构造函数中采用标签函数参数进行推导S。或者促进工厂功能。

  • 您不能将模板参数 **明确地** 传递给构造函数模板。构造函数可以被模板化,但所有的模板参数都必须被推断出来。 (2认同)