7#ifndef BOOST_NOWIDE_DETAIL_CONSOLE_BUFFER_HPP_INCLUDED
8#define BOOST_NOWIDE_DETAIL_CONSOLE_BUFFER_HPP_INCLUDED
11#include <boost/nowide/utf/utf.hpp>
15#include <boost/config/abi_prefix.hpp>
23 class BOOST_NOWIDE_DECL console_output_buffer_base :
public std::streambuf
27 int overflow(
int c)
override;
33 int write(
const char* p,
int n);
35 do_write(
const wchar_t* buffer, std::size_t num_chars_to_write, std::size_t& num_chars_written) = 0;
37 static constexpr int buffer_size = 1024;
38 static constexpr int wbuffer_size = buffer_size * encoder::max_width;
39 char buffer_[buffer_size];
40 wchar_t wbuffer_[wbuffer_size];
45#pragma warning(disable : 4251)
48 class BOOST_NOWIDE_DECL console_input_buffer_base :
public std::streambuf
52 int pbackfail(
int c)
override;
53 int underflow()
override;
60 virtual bool do_read(
wchar_t* buffer, std::size_t num_chars_to_read, std::size_t& num_chars_read) = 0;
62 static constexpr size_t wbuffer_size = 1024;
63 static constexpr size_t buffer_size = wbuffer_size * encoder::max_width;
64 char buffer_[buffer_size];
65 wchar_t wbuffer_[wbuffer_size];
67 std::vector<char> pback_buffer_;
68 bool was_newline_ =
true;
81#include <boost/config/abi_suffix.hpp>
UTF Traits class - functions to convert UTF sequences to and from Unicode code points.
Definition utf.hpp:57