| 122 | static constexpr size_t minimum_buffer_size = 4; |
| 123 | |
| 124 | explicit pythonbuf(const object &pyostream, size_t buffer_size = 1024) |
| 125 | : buf_size(buffer_size < minimum_buffer_size // ternary avoids C++14 std::max ODR-use of |
| 126 | // static constexpr |
| 127 | ? minimum_buffer_size |
| 128 | : buffer_size), |
| 129 | d_buffer(new char[buf_size]), pywrite(pyostream.attr("write")), |
| 130 | pyflush(pyostream.attr("flush")) { |
| 131 | setp(d_buffer.get(), d_buffer.get() + buf_size - 1); |
| 132 | } |
| 133 | |
| 134 | pythonbuf(pythonbuf &&other) noexcept |
| 135 | : buf_size(other.buf_size), d_buffer(std::move(other.d_buffer)), |