在非指针POD上使用static_cast而不是c样式转换

时间:2017-07-27 21:41:08

标签: c++ casting static-cast

有没有理由在非指针POD数据类型上使用static_cast,比如int,float,double?

float v = 100;
int x = (int) v vs int x = static_cast<int>v

使用它有什么理由/优势,我看到几个答案涵盖了指针,但普通的POD数据我找不到关于非指针的明确答案。

1 个答案:

答案 0 :(得分:1)

我听到的最好的理由是因为你可以为static_cast寻找并且知道你只会找到演员阵容,而(int)对于那些正在发生的事情不太具体表达

此外,C风格的演员表可以删除或添加constvolatile并更改类型而不会发出任何警告。如果您尝试static_cast const指针/引用类型为非const指针/引用类型,则会出现编译错误。