我正在使用 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 = 常量字符*]'|
这到底是什么意思?
请注意,如果您明确指定name
为 astring
则没有问题。