没有从类型为'basic_istream <char,std :: __ 1 :: char_traits <char =“”>>'的返回值到函数返回的可行转换

时间:2018-12-18 02:51:59

标签: c++ c++11 type-conversion implicit-conversion

我遇到此错误。

bool getInstruction( ifstream & fin , string & buf ) {
      return (getline(fin,buf));
}

我将非常感谢您的帮助。我正在尝试编译C ++代码。这是我遇到的代码行:

{{1}}

1 个答案:

答案 0 :(得分:2)

请注意,std::basic_ios::operator bool被标记为explicit(自C ++ 11起); getline()的返回值(是std::basic_istream的实例)不能隐式转换为bool

您可以将其明确转换为bool

  

如果流没有错误并且可以进行I / O操作,则返回true。具体来说,返回!fail()

例如

return static_cast<bool>(getline(fin,buf));