- 701 名前:デフォルトの名無しさん mailto:sage [2008/10/07(火) 11:27:57 ]
- 落とし穴だらけでもはや正格評価で&&や||を関数化することの問題すら
C++信者には見えなくなってるのか 以下のようなif文がある if (expr) statement exprを評価して真の場合にだけstatementを評価する 常識だな これを if(expr, statement) という関数にすることを考える C++は多くの言語と同様正格評価だから、if関数を評価する前に expr, statementの両方を評価することになるが、 言うまでも無くこの時点で元のif文とは意味が異なっていることになる &&や||も全く同じだ これらはショートサーキットだから、本来右オペランドは条件付きでしか 評価されない C/C++のコーディングではその性質が多用されるが、関数化されていれば 常に評価されてしまう 禿は、無用で、使えば問題を引き起こすと分かっているこの機能を 平然と取り入れ、仕方が無いからC++ユーザはそれを避けることで 問題を回避する 些細に見えるかもしれないが、このようなものが積もりに積もって、 結果としてC++は糞の山になっているんだぞ
|

|