2011-11-28 64 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_); 

注:我沒有測試過這一點 - 但是這是你的問題的核心。