я хочу сделать следующее:Как использовать зЬй :: IStream правильно
// 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’
Что мне нужно сделать, чтобы сделать эту работу?
[править]
Just пояснения: operator>>
дает отформатирован выхода - он теряет пробельные символы (табуляция, новые строки и т.д.). Чтобы получить доступ ко всем символам, вам необходимо использовать get()
.
Операции ввода изменяют поток. Вы не можете сделать это 'const'. – chris
@chris: okay - это исправлено - поставьте свой комментарий в качестве ответа, чтобы я мог его принять, thx (сообщение об ошибке не полезно в этом случае :() – slashmais