知りませんでした。というか。勘違いしてました。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++は、難しい。