1

私はというクラスを持っています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:エラー:「getline」の呼び出しに一致する関数がありません
    std :: getline(stream、line);
    ^~~~~~~~~~~~

しかし、の最初の引数std::getlineはタイプstd::istream&ですよね?何が間違っているのでしょうか?

4

1 に答える 1

10

の最初の引数getlineは、型istream&はなく istream const &、型です。(ストリームから読み取ると、その状態が変わります。)メンバーconstから修飾子を削除しますparser::stream

于 2011-11-15T17:45:58.413 に答える