2017-07-27 30 views
-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数据我找不到任何有关非指针明确的答案。

+0

'(int)v'是c。 static_cast (v)'是C++。 – DimChtz

+3

在罗马时,像罗马人那样做。 –

+0

C或C++。你不能在这里。 – Walter

回答

1

我听说过的最好的原因是因为你可以grep for static_cast,并且知道你只会找到演员,而(int)对于表达中发生的事情的描述要少得多。

此外,C风格的演员阵容可以删除或添加constvolatile并更改类型而不带任何警告。如果您尝试将static_cast a const指针/引用类型指向非const指针/引用类型,您将收到编译错误。

相关问题