| 24 | ostream_wrapper::~ostream_wrapper() = default; |
| 25 | |
| 26 | void ostream_wrapper::write(const std::string& str) { |
| 27 | if (m_pStream) { |
| 28 | m_pStream->write(str.c_str(), str.size()); |
| 29 | } else { |
| 30 | m_buffer.resize(std::max(m_buffer.size(), m_pos + str.size() + 1)); |
| 31 | std::copy(str.begin(), str.end(), m_buffer.begin() + m_pos); |
| 32 | } |
| 33 | |
| 34 | for (char ch : str) { |
| 35 | update_pos(ch); |
| 36 | } |
| 37 | } |
| 38 | |
| 39 | void ostream_wrapper::write(const char* str, std::size_t size) { |
| 40 | if (m_pStream) { |