【问题标题】:boost::asio::streambuf with wchar_tboost::asio::streambuf 与 wchar_t
【发布时间】:2011-11-28 19:59:44
【问题描述】:

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

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 缓冲流?

【问题讨论】:

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


    【解决方案1】:

    boost::asio::streambuf 是 boost::asio::basic_streambuf 的类型定义。 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_);
    

    注意:我尚未对此进行测试 - 但这是您问题的核心。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-09-02
      • 2011-08-06
      • 1970-01-01
      • 1970-01-01
      • 2012-10-26
      • 2018-04-09
      • 2016-09-19
      • 1970-01-01
      相关资源
      最近更新 更多