c++ - 如何将齐次 fusion::vector 转换为 (std/boost)::数组

标签 c++ boost boost-fusion

我对 boost 比较陌生,所以我相信这是一个简单的问题:
给定一个 fusion::vector<int, int, int> , 我需要一个好方法把它变成一个 array<int, 3> .

最佳答案

您可以只使用 array<> 的内置适配(标准或 boost )和 copy :

Live On Coliru

#include <boost/fusion/include/copy.hpp>
#include <boost/fusion/include/vector.hpp>
#include <boost/fusion/adapted/boost_array.hpp>
#include <boost/array.hpp>

using namespace boost;

int main() {
    fusion::vector<int, int, int> fv(1,2,3);
    array<int, 3> arr;

    fusion::copy(fv, arr);
}

关于c++ - 如何将齐次 fusion::vector 转换为 (std/boost)::数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30552487/

相关文章:

c++ - Operator = function 和 add 函数似乎不能共存

c++ - matlab和c/cpp之间的fwrite和fread

c++ - 类中的 const 成员出错

在没有连接的情况下调用 C++ Boost 异步服务器处理程序

c++ - boost shared_ptr 初始化为类成员

c++ - 是否可以在没有 Boost.Fusion 的情况下使用 Boost.Spirit V2.x?

c++ - 如何迭代 boost::fusion 关联结构并以通用方式访问键

c++ - 为什么 GCC 不能为两个 int32s 的结构生成最佳 operator==?

c++ - boost::spirit::karma 语法:带有可选属性的结构的逗号分隔输出

c++ - BOOST ASIO - 如何编写控制台服务器