エンジニアのソフトウェア的愛情

または私は如何にして心配するのを止めてプログラムを・愛する・ようになったか

C++の代入演算

知りませんでした。というか。勘違いしてました。C++では「代入式への代入」が可能なんですね。

int a = 0, b = 10, c = 20;
(a = b) = c; // a:20, b:10, c:20

奇妙な式なので、代入演算子オーバーロードするときは、代入式に代入できないように「const T& operator = (const T&)」としてました。そしたら、「Exceptional C++」に「戻り値の型をconst T&にしてはいけない」としっかり書かれていて。組み込み型で試したら、するっと、通ってしまい、おのれの間違いに気づいた次第。

C++は、難しい。