Здравствуйте, anonim_44ax, Вы писали:
_>Специально для "танкистов" и klizardin уточняю.
_>Указанный пример production кодом не является. Не беспокойтесь о нашем проекте, также можете попридержать нравоучения в стиле: "так писать плохо". Я и думаю все остальные в курсе, что использовать этот "трик" нельзя, Капитан Очевидность. Прикол-то не в этом.
А в чем? В том, чтобы еще раз сказать бяки-буки мелкомягкие, они же не сделали эту ситуацию ошибкой, а сделали варнингом. Какие ужасные мелкомягкие! Это что-ли?
И даже не с точки зрения того, что "ведь все же мы делаем ошибки", а с точки зрения, что механизм предусмотрен сообщения об ошибке, а существование такого сообщения вполне может объясняться исторически. Или же что, мелкмягкие не вскрыли мозги всем программистам ради signed bool и не сделали ("как правильно") это ошибкой в некоторой новой версии? это что-ли?
В чем прикол?
это вообще не портируемая фича/баг и люди, которые вообще-то пишут хороший код, просто не будут использовать этот момент (потому что себе дороже да и не соответствует стандарту). или вы уверены, что все компиляторы написаны одной рукой и все они идентичны и только компилировались на разных языках и только из-за последнего и существуют и intel-овский компилятор и MSVC и тот же gcc. Каждый компилятор имеет свои особенности. Поэтому обычно для определения потенциальной портируемости библиотеки обычно есть тестовые куски кода, просто для проверки может ли язык(в данном случае C++) обрабатывать (и делать это корректно) определенные языковые конструкции. И естественно, есть свои нюансы у каждого из компиляторов.
***
Ну и если нужны морали

)
Я не говорю, что так писать плохо. Плохо отключать варнинги и быть уверенным, что "ну это же только варнинги". И плохо поминать всуе мелкомягких (так как это же самое главное зло на планете) говоря, что ну вот они "реализовали" баг.
***
Вообще-то забавная фича, но фактически-то мне как программисту, что она дает? У MSVC были и куда веселее фичи.