#include <iostream>
#include <sstream>

class Container {
  public:
    std::ostringstream  bufferStream;

  public:
    Container();    // constructor
    Container(const Container&); //Compy constructor
    ~Container();
};

Container::Container() {
    bufferStream << "Hello ";
}

Container::Container(const Container &c) {
    bufferStream << c.bufferStream.rdbuf();
}

Container::~Container() {
    std::cout << bufferStream.str() << " [end]" << std::endl;
}

// === Main method ===

int main() {

    Container().bufferStream << "world";   // works fine

    {                                      // causes tons of compiler errors
        Container cont = Container();
        cont.bufferStream << "world!";
    }
    


    return 0;
}