我正在尝试使用宽字符执行以下操作:
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
缓冲流?
答案 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_);
注意:我没有测试过 - 但这是你问题的核心。