cinを用いて複素数に数字を入力するコードが、 Visual Studio だとエラーになる
#include <iostream>
#include <complex>
using namespace std;
int main() {
complex<int> p;
int m;
cin >> p.real() >> p.imag();
cout << p.real() << p.imag();
return 0;
}
このコードはg++(gcc version 4.8.4)では問題なく実行できますが、Visual Studio Community 2015上ではエラー(C2678)となりますが、なぜこのような違いが生じるのでしょうか。
エラー C2678 二項演算子 '>>': 型 'std::istream' の左オペランドを扱う演算子が見つかりません (または変換できません) (新しい動作; ヘルプを参照)。