2011-11-28 60 views
2

我试着用宽字符如下:的boost :: ASIO ::流缓冲与wchar_t的

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

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_); 

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