Форум » C/C++ » Преобразование nullptr в false. Баги GCC 4.9.2 and MS VC++ » Ответить

Преобразование nullptr в false. Баги GCC 4.9.2 and MS VC++

Сыроежка: Следующее объявление [pre2] bool b = nullptr; [/pre2] успешно компилируется как на http://ideone.com так и на http://webcompiler.cloudapp.net/ соответственно компиляторами GCC 4.9.2 и MS VC++. Однако согласно стандарту C++ (4.12 Boolean conversions) данное объяаление не должно компилироваться: [quote]1....For direct-initialization (8.5), a prvalue of type std::nullptr_t can be converted to a prvalue of type bool; the resulting value is false. [/quote] Правильное объявление должно выглядеть следующим образом [pre2] bool b( nullptr ); [/pre2] Так что если у вас в проекте случайно найдется объявление, как показано в начале этого сообщения, то исправьте его на правильное объявление, иначе когда баги компиляторов будут исправлены, ваш проект не будет компилироваться.

Ответов - 0



полная версия страницы