static_cast <primitive_type>(foo)和primitive_type(foo)</primitive_type>之间的区别

时间:2012-06-26 18:02:11

标签: c++

  

可能重复:
  Regular cast vs. static_cast vs. dynamic_cast
  In C++, why use static_cast<int>(x) instead of (int)x?

static_cast<float>(foo)float(foo)之间有什么区别?我经常在模板代码中看到static_cast<float>或类似内容,从任何整数类型到某个特定的整数类型。例如,我想要一个函数在任何整数类型上执行浮点除法。我通常会看到这样的事情:

template <typename T>
float float_div(T lhs, T rhs)
{
    // I normally see this
    return static_cast<float>(lhs) / static_cast<float>(rhs);

    // But I could do this
    // return float(lhs) / float(rhs); // But I could do this
}

使用float(lhs)static_cast<float>(lhs)有什么好处?另外float(lhs)初始化/转换的名称是什么?

0 个答案:

没有答案