我检查了 C++11 标准,发现以下事实:
std::getline(fin, str)返回一个basic_ios对象,其类有一个成员函数explicit operator bool() const;该类
basic_ios没有operator void*() const;C++11 之前的成员函数。
所以,我认为if (getline(fin, str)) {}不符合标准。它应该写成
if (bool(getline(fin, str)){}. (但是,VC++ 2012 对这种用法给出了警告。即强制 void* 为 bool)
我对么?