Boost mpl :: vector和hana

时间:2017-01-05 14:43:09

标签: c++ metaprogramming boost-mpl boost-hana

我正在搜索某种元矢量/链表。看起来像mpl :: vector是这样做的最佳方式。但现在有hana。不幸的是我找不到某种hana :: vector。我看到了mpl :: vector的适配器。那意味着mpl :: vector仍然是最好的做事方式吗?

Hana很快编译,所以我就像:为什么不呢?但是mpl不是那么快,我真的需要自己编写mpl :: vector吗?

1 个答案:

答案 0 :(得分:3)

boost::hana::tuple应该是NSClassFromString的足够好的替代品,如果您需要的是异构的"列表"类型/价值观。

您可以使用mpl::vector访问特定索引中的项目,使用boost::hana::at附加项目,使用boost::hana::append删除它们等等。

即使与boost::hana::remove的接口没有一对一的对应关系,在给定上述原语的情况下实现一些效用函数应该是微不足道的。

如果您需要类型列表,则应使用boost::hana::tuple_t,这是mpl::vector的语法糖。