У меня есть объект std :: stringstream
ss1
. Теперь я хотел бы создать еще одну копию из этого.
Я пытаюсь это:
std::stringstream ss2 = ss1;
или:
std::stringstream ss2(ss1)
ни работает, ни
Сообщение об ошибке выглядит так:
std :: ios :: basic_ios (const std :: ios &) недоступен из Я хотел бы создать еще одну копию из этого. Я пытаюсь это: std :: stringstream ss2 = ss1; или: std :: stringstream ss2 (ss1) не работает. Ошибка ...
У меня есть
объект std :: stringstream
ss1
. Теперь я хотел бы создать еще одну копию из этого.Я пытаюсь это:
std::stringstream ss2 = ss1;
или:
std::stringstream ss2(ss1)
ни работает, ни
Сообщение об ошибке выглядит так:
std :: ios :: basic_ios (const std :: ios &) недоступен из Я хотел бы создать еще одну копию из этого. Я пытаюсь это: std :: stringstream ss2 = ss1; или: std :: stringstream ss2 (ss1) не работает. Ошибка ...
У меня есть
объект std :: stringstream
ss1
. Теперь я хотел бы создать еще одну копию из этого.Я пытаюсь это:
std::stringstream ss2 = ss1;
или:
std::stringstream ss2(ss1)
ни работает, ни
Сообщение об ошибке выглядит так:
std :: ios :: basic_ios (const std :: ios &) недоступен из BSL :: basic_stringstream, BSL :: Распределитель> :: basic_stringstream (Const BSL :: basic_stringstream, bsl :: allocator> &).
Действительно, потоки не копируемы (хотя и перемещаемы).
В зависимости от вашего использования, следующее работает достаточно хорошо:
#include <iostream>
#include <sstream>
int main()
{
std::stringstream ss1;
ss1 << "some " << 123 << " stuff" << std::flush;
std::stringstream ss2;
ss2 << ss1.rdbuf(); // copy everything inside ss1's buffer to ss2's buffer
std::cout << ss1.str() << std::endl;
std::cout << ss2.str() << std::endl;
}
Вывод:
some 123 stuff
некоторые 123 вещи
Поскольку std :: stringstream
не предоставляет конструктор копирования, вы должны построить его из std :: string
ss1
выводит:
std::stringstream ss2(ss1.str());