(略) でも、「式」しか書けない所ではそうはいかない。 例えば、(C++ で) 初期化リストの中や TMP では if 文なんて使えないので条件演算子を使わなければならない。 // ちと作為的な例だけど class hoge { const piyo& ref_p; public: hoge(int a, int b, const piyo& p1, const piyo& p2) : ref_p(a < b ? p1 : p2) {} }; これは if 文では絶対に書けない。 おまけ: C++ では、条件演算子を含む式を左辺に持ってくることも可能なのは覚えておいても損はない。 でも使うなよ?絶対使うなよ? (a < b ? a : b) = c; なんか話が混ざってる感があるので,もう少し成分分解してみる試み. if が常に文になってしまう言語の話 条件分岐の結果として,参照を返しうる