2011-11-28 4 views
2

Je suis en train de faire ce qui suit avec de larges caractères:boost :: asio :: streambuf avec wchar_t

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

J'ai essayé mais eu un tas d'erreurs du compilateur:

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

Je sais que streambuf est <char>, comment puis-je la même chose, mais avec un flux tamponné wchar_t?

Répondre

0

boost :: asio :: streambuf est un typedef pour boost :: asio :: basic_streambuf. La mise en œuvre du modèle par défaut de basic_streambuf est:

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

Alors ce que vous devez faire est de déclarer:

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

Note: Je n'ai pas testé - mais qui est le cœur de votre problème.