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呢?感謝您的任何見解。