-3
是否有任何理由在非指针POD数据类型上使用static_cast,如int,float,double?在非指针POD而不是c风格上使用static_cast
float v = 100;
int x = (int) v vs int x = static_cast<int>v
有什么理由/好处的使用,我看到几个答案,涵盖三分球,但普通POD数据我找不到任何有关非指针明确的答案。
是否有任何理由在非指针POD数据类型上使用static_cast,如int,float,double?在非指针POD而不是c风格上使用static_cast
float v = 100;
int x = (int) v vs int x = static_cast<int>v
有什么理由/好处的使用,我看到几个答案,涵盖三分球,但普通POD数据我找不到任何有关非指针明确的答案。
我听说过的最好的原因是因为你可以grep for static_cast
,并且知道你只会找到演员,而(int)
对于表达中发生的事情的描述要少得多。
此外,C风格的演员阵容可以删除或添加const
或volatile
并更改类型而不带任何警告。如果您尝试将static_cast
a const
指针/引用类型指向非const
指针/引用类型,您将收到编译错误。
'(int)v'是c。 static_cast(v)'是C++。 –
DimChtz
在罗马时,像罗马人那样做。 –
C或C++。你不能在这里。 – Walter