static_cast <int> (foo) vs. (int) foo

Посмотрите, что Stroustrup has to say about that, включая typecast следующее:

Поскольку приведение c++ в стиле C (T) может использоваться cpp для выражения многих логически typecast различных операций, компилятор typecast имеет очень мало шансов уловить casting злоупотребления. [...]

Приведения cpp нового стиля были введены, чтобы typecast дать программистам возможность cpp более четко заявить о своих cast намерениях и чтобы компилятор cpp уловил больше ошибок. [...]

В typecast частности, C++ делает различие c++ между static_cast и reinterpret_cast:

Идея состоит в cpp том, что преобразования, разрешенные cxx static_cast, с меньшей вероятностью cxx приведут к ошибкам, чем преобразования, требующие typecast reinterpret_cast. В принципе, можно cast использовать результат static_cast, не typecast возвращая его к исходному typecast типу, тогда как вы всегда cxx должны приводить результат casting reinterpret_cast обратно typecast к исходному типу, прежде c++ чем использовать его, чтобы cpp гарантировать переносимость.

c++

casting

2022-09-17T07:21:41+00:00