C ++:如何从结构成员创建可变参数序列

亚当·里奇科夫斯基(Adam Ryczkowski)

假设我有一个模板化的类,应该像这样被调用:

struct mystruct
{
   int    member1;
   long   member2;
   string member3;
};

现在,我想创建一个boost::mpl::vector将有效包含结构中所有成员类型(最好以相同顺序)的类型:

using membervector1 = boost::mpl::vector<int, long, string>;

当然,我希望语法相对于我的结构进行模板化,如下所示:

using membervector2 = some_smart_template<mystruct>;
static_assert(std::is_same<membervector1, membervector2>::value);
亚历克斯·古铁涅夫(Alex Guteniev)

C ++静态反射可以在C ++ 14 Aready中实现。

Magic get几乎可以满足您的要求,只是它是元组而不是mpl :: vector,但我认为从元组中获取mpl :: vector并不是一个大问题。

请参阅带说明的演示幻灯片

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章