使用Boost Mp11,我可以将嵌套mp_list
创建为
#include <boost/mp11/list.hpp>
#include <boost/mp11/algorithm.hpp>
namespace mp11 = boost::mp11;
using num_types = mp11::mp_list<int, float, double>;
template <typename T>
using object_types = mp11::mp_list<std::vector<T>, std::list<T>>;
using all_types = mp11::mp_transform<object_types, num_types>;
如果我没记错的话,会得到类似的东西
mp11::mp_list<
mp11::mp_list< std::vector<int>, std::list<int> >,
mp11::mp_list< std::vector<float>, std::list<float> >,
mp11::mp_list< std::vector<double>, std::list<double> >
>
现在我想消除嵌套以提供类似的信息
mp11::mp_list< std::vector<int>, std::list<int>, std::vector<float>, ... >
不幸的是,我无法弄清楚该如何实现。
答案 0 :(得分:0)
我很抱歉听到这个声音。我本人能够找出问题的答案,这很简单:
using all_types_2 = mp11::mp_apply<mp11::mp_append, all_types>;
完成工作。