假设我有一个模板化的类,应该像这样调用:
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);
答案 0 :(得分:1)
C ++静态反射可以在C ++ 14中实现。
Magic get几乎可以做你想要的,除了它是元组,而不是mpl :: vector,但我认为从元组中获取mpl :: vector不是一个大问题。