1
从我读过的,C++ 11不再支持向istream/ostream隐式转换为void *,然后可以隐式转换为bool,以便在while循环中使用等等。例如:C++ 11 basic_istream转换为bool
string test;
while((getline(cin,test)))
{
cout << "received" << endl;
}
cout << "break";
现在的标准实现了一个明确的布尔运算符,所以
while(static_cast<bool>(getline(cin,test)))
将成为新标准支持的方法。但是,在Visual Studio 2017和带有-std = C++ 11标志的GNU g ++中,两个版本都可以很好地编译。为什么这个标准不支持这个标准,没有明确的途径来支持这个标准呢?我能理解VS在标准中快速和松散,但GNU呢?感谢您的任何见解。