C++ってなんであんなに肥大化しちゃったの? at TECHC++ってなんであんなに肥大化しちゃったの? - 暇つぶし2ch■コピペモード□スレを通常表示□オプションモード□このスレッドのURL■項目テキスト700:デフォルトの名無しさん 08/10/07 10:26:45 >>683 int i=0; if (i++ || i++) { printf("%d", i); } 701:デフォルトの名無しさん 08/10/07 11:27:57 落とし穴だらけでもはや正格評価で&&や||を関数化することの問題すら C++信者には見えなくなってるのか 以下のようなif文がある if (expr) statement exprを評価して真の場合にだけstatementを評価する 常識だな これを if(expr, statement) という関数にすることを考える C++は多くの言語と同様正格評価だから、if関数を評価する前に expr, statementの両方を評価することになるが、 言うまでも無くこの時点で元のif文とは意味が異なっていることになる &&や||も全く同じだ これらはショートサーキットだから、本来右オペランドは条件付きでしか 評価されない C/C++のコーディングではその性質が多用されるが、関数化されていれば 常に評価されてしまう 禿は、無用で、使えば問題を引き起こすと分かっているこの機能を 平然と取り入れ、仕方が無いからC++ユーザはそれを避けることで 問題を回避する 些細に見えるかもしれないが、このようなものが積もりに積もって、 結果としてC++は糞の山になっているんだぞ 次ページ最新レス表示レスジャンプ類似スレ一覧スレッドの検索話題のニュースおまかせリストオプションしおりを挟むスレッドに書込スレッドの一覧暇つぶし2ch