Форум программистов, компьютерный форум CyberForum.ru

C++

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 12, средняя оценка - 4.83
gGrn-7DA
мну довольно <(-__-)l
203 / 192 / 1
Регистрация: 17.01.2010
Сообщений: 2,391
Завершенные тесты: 1
#1

Странное поведение bool - C++

13.02.2012, 20:48. Просмотров 1479. Ответов 23
Метки нет (Все метки)

Помогал отлаживать код и мы наткнулись на удивительное.

Кодер скрыл отображение варнингов в VS2010.
Метод М1 не всегда возвращал значение типа bool.
И потому в методе М2, вызывающем метод М1, случилась такая ситуация, что:
C++
1
M1()!=true & M1()!=false
Это нормальное поведение компилятора?
Логика то понятна, но почему это вообще варнинг, а не еррор как в си шарпе?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
retmas
Жарю без масла
858 / 740 / 164
Регистрация: 13.01.2012
Сообщений: 1,694
13.02.2012, 23:20     Странное поведение bool #21
у меня 4.6.2 - не такой уж и древний.
для С++ в стандарте явно сказано, что должно быть. нет там никаких умолчаний. умолчания были "во времена Очакова и покорения Крыма".
либо ретурн что-то явно(для возвращающих значение ф-ий), либо(в отсутствие ретурна) интерпретируется как ретурн воид
поправьте, если не прав

Добавлено через 11 минут
хотя, соглашусь. нет тут бага. вроде разобрался почему g++ жрет такое
CheshireCat
Эксперт С++
2890 / 1239 / 78
Регистрация: 27.05.2008
Сообщений: 3,327
14.02.2012, 09:30     Странное поведение bool #22
Цитата Сообщение от gGrn-7DA Посмотреть сообщение
да, логично. Но почему оно != true и != false
Потому, что оно неинициализированное.
gGrn-7DA
14.02.2012, 19:02  [ТС]
  #23

Не по теме:

CheshireCat, да, уже разобрались.

MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
14.02.2012, 19:48     Странное поведение bool
Еще ссылки по теме:

Странное поведение указателя C++
C++ Странное поведение программы
Странное поведение string C++
Странное поведение CreateWindowEx C++ WinAPI
Странное поведение XE2 C++ Builder

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Kastaneda
14.02.2012, 19:48     Странное поведение bool
  #24

Не по теме:

C++
1
M1()!=true & M1()!=false
если бы M1() возвращала значение, то можно было бы подумать, что это проверка на NAN. Я сразу так и подумал, пока дальше тему не почитал.

Yandex
Объявления
14.02.2012, 19:48     Странное поведение bool
Ответ Создать тему
Опции темы

Текущее время: 15:28. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru