0

私は次のことをしたい:

// I want 'is' to be either opened file or stringstream ...
void ParseTokens(const std::istream &is, std::vector<TokenClass> &vToks)
{
    char ch;
    ...
    is >> ch;
    ...
}

コンパイラは文句を言います:

error: ambiguous overload for ‘operator>>’ in ‘is >> ch’

これを機能させるには何をする必要がありますか?

[編集]
ただの警告:フォーマットさoperator>>れた出力を提供します-空白文字(タブ、改行など)を失います。すべての文字にアクセスするには、を使用する必要があります。get()

4

1 に答える 1

3

からis >> ch;文字を抽出isするため、ストリームを変更します。したがって、const関数シグニチャに含めることはできません。完全に一致するものがないため、一見無関係なエラーが発生する可能性があります。を取るように関数を変更しますstd::istream &

于 2013-02-13T08:16:50.713 に答える