c – 表达模板化数字文字的最佳方法是什么?
我有一个可以简化为这样的功能:
template<class T> T foo(T x) { return 123.45 / x; } 我想确保数字文字1??23.45与x的类型相同.假设T可以是任何数字类型:signed / unsigned char to long-long或float to long-double. 什么是最现代的方式来表明123.45应该是T型? 我的要求 >不应发出警告(每次警告都会打开). 正在考虑的问题 >“旧式演员”,即(T)123.45在C中基本上已被弃用. 更新5-7-2014 在我的代码库中将数百个强制转换更改为T(123.45)之后,我发现有时这种语法不可用.例如,你不能做long double(123.45),因为C不支持多字节类型构造函数.在这些情况下,我选择了static_cast< long double>(123.45). 解决方法
怎么样简单
template<class T> T foo(T x) { return T(123.45) / x; } 这将允许自定义数字类接受构造函数中的值. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |