Mar*_*zek 4 c++ templates class template-specialization
我的模板类有问题。我这样指定了模板类的默认类型:
template < class T = float >
class apple {
public:
T x;
apple(T x): x(x) {}
}
Run Code Online (Sandbox Code Playgroud)
但是,当我创建这样的对象时:
apple obj(2);
Run Code Online (Sandbox Code Playgroud)
除非我这样做,否则类型将变成int:
apple<float> obj(2);
Run Code Online (Sandbox Code Playgroud)
我如何使其保持漂浮?
添加此推导指南以强制将所有参数推导解析为您的默认参数:
template <class T>
apple(T) -> apple<>;
Run Code Online (Sandbox Code Playgroud)