pla*_*cel 4 c++ templates c++11
虽然关于模板化数字文字的使用存在一个很好的问题,但它没有提到数字文字是负值时的情况.
应该首选哪种变体?为什么?
一个
template <typename T>
T expr(T x)
{
constexpr T scale = T(-9.0);
return x * scale;
}
Run Code Online (Sandbox Code Playgroud)
乙
template <typename T>
T expr(T x)
{
constexpr T scale = -T(9.0);
return x * scale;
}
Run Code Online (Sandbox Code Playgroud)
我赞成A超过B.
选项A假设类型少于B,因为-对于所有类型(例如溢出条件等),一元可能没有很好地定义,但对数字文字来说它是好的.这对眼睛来说更容易一些.
当然,问题是数字类型,所以要么就好了.
| 归档时间: |
|
| 查看次数: |
134 次 |
| 最近记录: |