boost::asio::streambuf 与 wchar_t

发布于 2024-12-18 22:50:27 字数 350 浏览 1 评论 0原文

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

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

我尝试了此操作,但出现了一堆编译器错误:

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

我知道streambuf是,我如何做同样的事情但使用wchar_t 缓冲流?

I am trying to do the following with wide characters:

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

I tried this but got a bunch of compiler errors :

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

I know that streambuf is <char>, how do I the same but with a wchar_t buffered stream?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

奈何桥上唱咆哮 2024-12-25 22:50:27

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

注意:我还没有测试过这个 - 但这是你问题的核心。

boost::asio::streambuf is a typedef for boost::asio::basic_streambuf. The default template implementation of basic_streambuf is:

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

So what you'd need to do is declare:

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

Note: I haven't tested this - but that's the core of your problem.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文