Не напрямую, вам нужен класс-обёртка, который оканчивается там, где вы хотите.
struct QuotedStringReader
{
std::string& str;
QuotedStringReader( std::string& s ) : str( s ) {}
};
std::istream operator>>( std::istream&, const QuotedStringReader& qsr );
std::string s, s2;
stream >> QuotedStringReader( s ) << s2;
Обратите внимание, что это редкий случай, когда вы перенаправляете в const - потому что вы можете писать на внутреннюю строку, даже если она является const, и таким образом я могу передать временное значение.
На самом деле, поскольку вы, вероятно, не знаете, что собираетесь читать, вы можете просто назвать его «TokenReader», который читает все, что вы определяете как «токен».