语法'T <...>(...)'是不可能的。接下来最好的是什么?

时间:2019-08-13 22:53:00

标签: c++ constructor c++17

我有一个类型

class foo {
public:
    foo(int);

    template <typename T, typename U>
    foo(T, U);

    template <typename T, typename U>
    foo(std::inirializer_list<T>);

    // or other different constructors.
};

无法明确调用构造函数的确切重载。 语法foo::foo<int>(int());(就像静态成员函数的语法一样,class<tmpl_params>::ctor<tmpl_params>(args))是ill-formed(而且foo(int)并不是模板)。与其他任何重载版本的构造函数相同。

是否有一种方法(甚至是很老套的方法)明确强制编译器使用构造函数的一个重载版本而不是其他任何形式?

有自动类型推断,但这是一种隐式方式。

0 个答案:

没有答案