升压阵列 - 转换为BYTE

时间:2013-06-28 22:17:37

标签: boost boost-asio shared-ptr boost-thread

所以我有这个:boost :: array data _;

如何将其转换为普通BYTE / Char缓冲区,或者如何使用printf将数据打印到内部而不进行转换?

我如何将它与其他普通的chracter缓冲区进行比较,例如“hello”。 了解boost :: array是如何工作的(我正在创建boost async.tcp服务器)也很有帮助。

我尝试了一些东西,但是我无法在缓冲区内打印字符,我是新手。

我找不到很多关于提升的文档。

谢谢。

1 个答案:

答案 0 :(得分:1)

boost :: array类是一个参数化类型,这意味着对于包含10个char类型元素或boost::array<char,10>的数组,此类型变量的完整类型名称类似于boost::array<float,100>对于包含100个float类型元素的数组。

如果您碰巧有某种类型data_ T boost::array< N ,的变量>,其中 T char,然后将其中的字符打印出来很简单:

std::cout.write(data_.data(), data_.size());

如果 T wchar,您可以

std::wcout.write(data_.data(), data_.size());

如果您的特定boost::array类型包含其他元素类型 T ,则需要考虑如何打印元素。例如,如果您对类型的默认流表示感到满意,则可以执行类似

的操作
for (auto element : _data) {
    std::cout << element << "\n";
}

每行打印一个元素。

您可以在http://www.boost.org/doc/libs/1_53_0/doc/html/boost/array.html

找到boost::array课程的文档