Если функция принимает std::string&&
, существует ли способ передать ostringstream
без создания временного потока с полным дублированием базового буфера?C++ move semantics with ostringstream
0
A
ответ
1
В конечном счете вам нужно скопировать буфер, потому что он не в той же структуре, что и std::string
, и нет std::string
move constructor, который принимает std::ostringstream&&
. Метод std::ostringstream::str()
скопирует значение буфера в экземпляр std::string
. Затем вы можете перемещать эту строку, используя метод, который принимает std::string&&
.
Почему вы не можете передать 'ostringstream &'? –
Я не уверен, в чем ваш вопрос. Можете ли вы показать код? –
Похоже, что создаст временную строку, а не временный поток. –