【发布时间】:2014-08-06 03:25:15
【问题描述】:
我想为 static_cast 运算符编写一个简单的包装器。 我的第一次尝试如下所示:
template <typename ForConvert, typename ToConvert>
ToConvert Convert(ForConvert val)
{
return static_cast<ToConvert> (val);
}
现在我可以像使用它了
auto x = 25;
auto y = Convert<int, float>(x);
有没有办法让 ForConvert 部分隐含?我希望能够像这样使用转换功能:
auto x = 25;
auto y = Convert<float>(x);
有没有一种方法/技术(在定义模板函数时),以便编译器能够推断出 x 的类型,这样我就不必明确指定它?在某种程度上,我想我是在问 static_cast 本身是如何实现的:-)
【问题讨论】:
标签: c++ templates type-deduction