Я хочу создать метод, который возвращает токен и увеличивает его.
Я сделал это:
_tokens - это std :: istream_iterator
std::string getToken()
{
std::string result;
result = *_tokens;
++_tokens;
return result;
}
Как вы можете видеть, это своего рода уродливая причина, я возвращаю копию копии.
Но я не могу вернуть ссылку на результат result result, это локальная переменная.
И я не могу получить ссылку на * _tokens, потому что ++_tokens изменит содержимое.
У вас есть представление, как я могу сделать это лучше?
Я думаю, вы имеете в виду следующее
std::string getToken()
{
return *_tokens++;
}
return *_tokens++;
и надеюсь на РВО.