是否可以编写元函数来累积mpl序列中的项目?
通过这个,我的意思是:
// ops.h
using boost::mpl;
using op_list = vector<>;
using add_op = <<<Method I'm asking about>>>;
...
// some_ops.h
#include "ops.h"
add_op<first_op>;
add_op<second_op>;
...
// more_ops.h
# include "ops.h"
add_op<third_op>;
...
// ops.cc
#include "ops.h"
#include "some_ops.h"
#include "more_ops.h"
// here op_list = vector<first_op, second_op, third_op>;
using Variant = boost::make_variant_over<op_list>::type;
我似乎无法想办法在几个包含上累积类型。
替代方法是测试类型是否已定义的方法(类似于#ifdef,但对于类型)。这样,子列表可以折叠,如果定义的话。
感谢您的帮助!