使用boost进行模板实例化:传递额外的参数

时间:2017-05-19 16:50:32

标签: c++ templates boost instantiation

说我有表格的实例化

template void MyClass<2,typeA>::some_method() const;

用于模板参数的各种组合。

我正在尝试使用boost定义一个带有前缀(void)和后缀some_method() const的宏,以便我可以将其重用于显式实例化。

使用硬编码的返回类型和函数名称,可以按行完成(尚未测试):

#define DIM (2)(3)
#define DEG (typeA)(typeB)
#define INSTANTIATEONE(_, targs) void MyClass<BOOST_PP_SEQ_ENUM(targs)>::some_method() const;
#define INSTANTIATEALL() BOOST_PP_SEQ_FOR_EACH_PRODUCT(INSTANTIATEONE, (DIM)(DEG));

有没有办法扩展宏以将voidsome_method() const作为参数?我是新手来加强预处理器而无法弄清楚如何做到这一点。

1 个答案:

答案 0 :(得分:0)

我最终使用

GtkWidget *drawing_area;