C++相談室 part66at TECHC++相談室 part66 - 暇つぶし2ch■コピペモード□スレを通常表示□オプションモード□このスレッドのURL■項目テキスト200:デフォルトの名無しさん 09/03/26 21:25:19 左辺をboolに変換して比較すれば問題ないのにな 変なルールだよな仕方ないけど 201:デフォルトの名無しさん 09/03/26 21:26:34 201 202:デフォルトの名無しさん 09/03/27 01:14:18 >>197 C が 0 以外は true と決めてたわけで better C としての C++ は、従うしかなかったんちゃう? まぁ、そんな言語は山ほどあるわけだが……… 203:デフォルトの名無しさん 09/03/27 10:41:29 比較とか論理演算とかが結果を0と1で返すから trueをそっちに合わせたんじゃね? 204:デフォルトの名無しさん 09/03/27 14:23:37 #define true 1 #define false 0 typedef char bool; 昔ありそうな超手抜き実装 205:デフォルトの名無しさん 09/03/27 14:24:25 手抜き? 206:デフォルトの名無しさん 09/03/27 14:30:14 Exceptional C++を読むとboolの必要性が説かれている 207:デフォルトの名無しさん 09/03/27 14:44:47 int値をbool値に変換するのは情報の欠落が生じるけど、その逆は生じない。 だからint型とbool型を比較すると、暗黙の型変換のルールに従って、bool型の方がint型に昇格する。 結果、>>198のようになって、意図したとおりに動かなくなる。仕様どおり!・3・ 次ページ最新レス表示レスジャンプ類似スレ一覧スレッドの検索話題のニュースおまかせリストオプションしおりを挟むスレッドに書込スレッドの一覧暇つぶし2ch