使用wchar_t来boost :: asio :: streambuf

时间:2011-11-28 19:59:44

标签: c++ unicode buffer boost-asio iostream

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

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

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

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

我知道streambuf是<char>,我如何使用wchar_t缓冲流?

1 个答案:

答案 0 :(得分:0)

boost :: asio :: streambuf是boost :: asio :: basic_streambuf的typedef。 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_);

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