boost::asio::streambuf with wchar_t

boost::asio::streambuf with wchar_t

本文关键字:wchar streambuf asio boost with      更新时间:2023-10-16

我正在尝试使用宽字符做以下操作:

boost::asio::streambuf io_streambuf_;
std::iostream io_stream(io_streambuf_);

我尝试了这个,但得到了一堆编译器错误:

boost::asio::streambuf io_streambuf_;
std::wiostream wio_stream(io_streambuf_);

我知道流buf是<char>,我如何与wchar_t缓冲流相同?

boost::asio::streambuf是boost::asio::basic_streambuf的类型定义。basic_streambuf的默认模板实现是:

template<typename Allocator = std::allocator<char>>
class basic_streambuf :
  noncopyable

那么你需要做的就是声明:

boost::asio::basic_streambuf<std::allocator<wchar_t>> io_streambuf_;
std::wiostream wio_stream(io_streambuf_);

注意:我还没有测试过这个-但这是你的问题的核心