Информация об изменениях

Сообщение Re[3]: использование round от 16.02.2018 8:48

Изменено 16.02.2018 9:12 rg45

Re[3]: использование round
Здравствуйте, VladFein, Вы писали:

R>>
R>>int value = int(std::round(3.14f));
R>>


VF>Это разве каст?


Конечно. Это выражение эквивалентно такому: (int)std::round(3.14f). Вот что сказано по этому поводу в стандарте (C++17):

8.2.3 Explicit type conversion (functional notation)
2 If the initializer is a parenthesized single expression, the type conversion expression is equivalent (in definedness, and if defined in meaning) to the corresponding cast expression (8.4)...

Re[3]: использование round
Здравствуйте, VladFein, Вы писали:

R>>
R>>int value = int(std::round(3.14f));
R>>


VF>Это разве каст?


Конечно. Это выражение эквивалентно такому: (int)std::round(3.14f). Вот что сказано по этому поводу в стандарте (C++17):

8.2.3 Explicit type conversion (functional notation)
2 If the initializer is a parenthesized single expression, the type conversion expression is equivalent (in definedness, and if defined in meaning) to the corresponding cast expression (8.4)...


И вот еще цитата из 8.4:

8.4 Explicit type conversion (cast notation)
2 An explicit type conversion can be expressed using functional notation (8.2.3), a type conversion operator (dynamic_cast, static_cast, reinterpret_cast, const_cast), or the cast notation.

    cast-expression:
        unary-expression
            ( type-id ) cast-expression