C ++ copia un objeto de flujo

He estado experimentando con C ++ y me he encontrado con un problema que no sé cómo resolver.

Básicamente, descubrí que no puedes copiar transmisiones (ver¿Por qué no está permitido copiar stringstream?), y eso también se aplica a los objetos que los "envuelven". Por ejemplo

Creo una clase con un miembro de datos de tipo stringstream. Creo un objeto de esta clase.Intento copiar el objeto, por ejemplo, "TestObj t1; TestObj t2; t1 = t2;"

Esto provoca el error C2249:

'std :: basic_ios <_Elem, _Traits> :: operator =': ninguna ruta accesible al miembro privado declarada en la base virtual 'std :: basic_ios <_Elem, _Traits>'

Entonces mi pregunta es: ¿cómo puedo (preferiblementefácilment) copiar objetos que tienen miembros de datos de tipo * secuencia?

Código de ejemplo completo:

#include <iostream>
#include <string>
#include <sstream>

class TestStream
{
public:
    std::stringstream str;
};

int main()
{
    TestStream test;
    TestStream test2;
    test = test2;

    system("pause");
    return 0;
}

Gracias por adelantado

ACTUALIZA

He logrado resolver este problema gracias a las respuestas a continuación. Lo que he hecho es declarar los objetos de flujo una vez y luego simplemente hacer referencia a ellos utilizando punteros en los objetos de envoltura (por ejemplo, TestStream). Lo mismo ocurre con todos los demás objetos que tienen constructores de copia privada.

Respuestas a la pregunta(5)

Su respuesta a la pregunta