нет подходящей функции для вызова getline - PullRequest
1 голос
/ 15 ноября 2011

У меня есть класс с именем parser:

class parser {
  const std::istream& stream;
public:
  parser(const std::istream& stream_) : stream(stream_) {}
  ~parser() {}

  void parse();
};

В parser::parse Я хочу перебрать каждую строку, поэтому я использую std::getline:

std::getline(stream, line)

однако компилятор выдает мне эту ошибку:

src/parser.cc:10:7: error: no matching function for call to 'getline'
    std::getline(stream, line);
    ^~~~~~~~~~~~

Но первый аргумент std::getline имеет тип std::istream&, верно?Что я могу делать не так?

1 Ответ

10 голосов
/ 15 ноября 2011

Первый аргумент getline имеет тип istream&, , а не istream const &.(Чтение из потока изменяет его состояние.) Снимите квалификатор const с члена parser::stream.

...