#include <iostream>
#include <sstream>
int main(int argc, const char * argv[])
{
std::stringstream a;
std::stringstream b;
std::stringstream c;
std::stringstream out;
a << "abc";
b << "";
c << "xyz";
out << a.rdbuf();
printf("after A out.tellp = %qd\n", (int64_t)out.tellp());
out << b.rdbuf();
if( ! out.good() )
{
std::cout<< "It is not good!!!" << std::endl;
out.clear();
}
printf("after B out.tellp = %qd\n", (int64_t)out.tellp());
out << c.rdbuf();
printf("after C out.tellp = %qd\n", (int64_t)out.tellp());
std::cout << out.rdbuf() << std::endl;
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8c3N0cmVhbT4KCmludCBtYWluKGludCBhcmdjLCBjb25zdCBjaGFyICogYXJndltdKSAKewogICAgc3RkOjpzdHJpbmdzdHJlYW0gYTsKICAgIHN0ZDo6c3RyaW5nc3RyZWFtIGI7CiAgICBzdGQ6OnN0cmluZ3N0cmVhbSBjOwogICAgc3RkOjpzdHJpbmdzdHJlYW0gb3V0OwoKICAgIGEgPDwgImFiYyI7CiAgICBiIDw8ICIiOwogICAgYyA8PCAieHl6IjsKCiAgICBvdXQgPDwgYS5yZGJ1ZigpOwogICAgcHJpbnRmKCJhZnRlciBBIG91dC50ZWxscCA9ICVxZFxuIiwgKGludDY0X3Qpb3V0LnRlbGxwKCkpOwoJCiAgICBvdXQgPDwgYi5yZGJ1ZigpOwogICAgaWYoICEgb3V0Lmdvb2QoKSApCgl7CgkJc3RkOjpjb3V0PDwgIkl0IGlzIG5vdCBnb29kISEhIiA8PCBzdGQ6OmVuZGw7CgkJb3V0LmNsZWFyKCk7Cgl9CiAgICBwcmludGYoImFmdGVyIEIgb3V0LnRlbGxwID0gJXFkXG4iLCAoaW50NjRfdClvdXQudGVsbHAoKSk7CgkKICAgIG91dCA8PCBjLnJkYnVmKCk7CiAgICBwcmludGYoImFmdGVyIEMgb3V0LnRlbGxwID0gJXFkXG4iLCAoaW50NjRfdClvdXQudGVsbHAoKSk7CgogICAgc3RkOjpjb3V0IDw8IG91dC5yZGJ1ZigpIDw8IHN0ZDo6ZW5kbDsKCiAgICByZXR1cm4gMDsKfQ==