GCC コンパイラを使用して C++11 の機能を試しています。次のコードがコンパイルされないことがわかりましたが、その理由はわかりません。name
の型が初期化値から自動的に推定されることを期待していました。
int main()
{
auto name = "";
cin >> name; // compile error occurs here
cout << "Hello " << name << endl;
return 0;
}
生成されるエラーは次のとおりです。
'std::istream {aka std::basic_istream}' 左辺値を 'std::basic_istream&&' にバインドできません | c:\program files\codeblocks\mingw\bin..\lib\gcc\mingw32\4.7.1\include\c++\istream|866|エラー: 'std::basic_istream<_CharT, _Traits>& std の引数 1 を初期化しています::operator>>(std::basic_istream<_CharT, _Traits>&&, _Tp&) [with _CharT = char; _Traits = std::char_traits; _Tp = const char*]'|
これは正確にはどういう意味ですか?
明示的に a として指定name
してstring
も問題ないことに注意してください。