#include #include // copied from StackOverflow: https://stackoverflow.com/a/34403537 class AtomicWriter { std::ostringstream st; std::ostream &stream; public: AtomicWriter(std::ostream &s=std::cout):stream(s) { } template AtomicWriter& operator<<(T const& t) { st << t; return *this; } AtomicWriter& operator<<( std::ostream&(*f)(std::ostream&) ) { st << f; return *this; } ~AtomicWriter() { stream << st.str(); } };