【发布时间】:2010-02-24 04:58:04
【问题描述】:
这是我希望能够输入的内容:
class foo : public watchKeys<A, B, C> {}; //Or any list of keys
Boost::mpl 有序列,可以让你这样做,但我不想这样做:
class foo : public watchKeys<mpl::list<A, B, C> > {};
我不介意它内部“丑陋”或冗长,但我希望 watchKeys 的最终使用方式非常简单和直观。我也不知道 boost 是如何做到的,但这似乎是因为我和模板之间有一层宏。
我该怎么办?我更希望 不 为每种类型的类型制作巨大的模板列表,但如果这是唯一的,那就是唯一的方法......
编辑:我已经相当确定没有办法做我想做的事(几乎,但你不能有可变数量的宏参数),但问题仍然在产生有用和信息丰富的答案。
【问题讨论】:
标签: templates metaprogramming typelist boost-mpl