| 123456789101112131415161718192021 |
- #include <sstream>
- #include <iostream>
- // 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 <typename T>
- AtomicWriter& operator<<(T const& t) {
- st << t;
- return *this;
- }
- AtomicWriter& operator<<( std::ostream&(*f)(std::ostream&) ) {
- st << f;
- return *this;
- }
- ~AtomicWriter() { stream << st.str(); }
- };
|