我有一个类型
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)
并不是模板)。与其他任何重载版本的构造函数相同。
是否有一种方法(甚至是很老套的方法)明确强制编译器使用构造函数的一个重载版本而不是其他任何形式?
有自动类型推断,但这是一种隐式方式。