#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;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8c3N0cmVhbT4KCmNsYXNzIENvbnRhaW5lciB7CiAgcHVibGljOgogICAgc3RkOjpvc3RyaW5nc3RyZWFtICBidWZmZXJTdHJlYW07CgogIHB1YmxpYzoKICAgIENvbnRhaW5lcigpOyAgICAvLyBjb25zdHJ1Y3RvcgogICAgQ29udGFpbmVyKGNvbnN0IENvbnRhaW5lciYpOyAvL0NvbXB5IGNvbnN0cnVjdG9yCiAgICB+Q29udGFpbmVyKCk7Cn07CgpDb250YWluZXI6OkNvbnRhaW5lcigpIHsKICAgIGJ1ZmZlclN0cmVhbSA8PCAiSGVsbG8gIjsKfQoKQ29udGFpbmVyOjpDb250YWluZXIoY29uc3QgQ29udGFpbmVyICZjKSB7CiAgICBidWZmZXJTdHJlYW0gPDwgYy5idWZmZXJTdHJlYW0ucmRidWYoKTsKfQoKQ29udGFpbmVyOjp+Q29udGFpbmVyKCkgewogICAgc3RkOjpjb3V0IDw8IGJ1ZmZlclN0cmVhbS5zdHIoKSA8PCAiIFtlbmRdIiA8PCBzdGQ6OmVuZGw7Cn0KCi8vID09PSBNYWluIG1ldGhvZCA9PT0KCmludCBtYWluKCkgewoKICAgIENvbnRhaW5lcigpLmJ1ZmZlclN0cmVhbSA8PCAid29ybGQiOyAgIC8vIHdvcmtzIGZpbmUKCiAgICB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBjYXVzZXMgdG9ucyBvZiBjb21waWxlciBlcnJvcnMKICAgICAgICBDb250YWluZXIgY29udCA9IENvbnRhaW5lcigpOwogICAgICAgIGNvbnQuYnVmZmVyU3RyZWFtIDw8ICJ3b3JsZCEiOwogICAgfQogICAgCgoKICAgIHJldHVybiAwOwp9