complex::real() が返すのは参照?値?
Posted: 2013年7月10日(水) 00:07
#include <iostream>
#include <algorithm>
#include <complex>
using namespace std;
int main(){
complex<double> b = 9;
b += 3;
b.real() += 4;
b.real() = 9;
cout << b << endl;
return 0;
}
test.cpp:10:15: error: lvalue required as left operand of assignment
というエラーが出るのですが、g++ -std=c++03だと成功します
C++0xでは real() の戻り値が参照から値のコピーに変更されてしまったということなのでしょうか?
不便に感じるのですが、なぜそのような仕様になったのか教えて欲しいです.