提升 mpl::vector 和 hana

Boost mpl::vector and hana

我正在搜索某种元 vector/linked 列表。似乎 mpl::vector 是最好的方法。但是现在有了hana。不幸的是我找不到某种 hana::vector。我看到了 mpl::vector 的适配器,仅此而已。那么这意味着 mpl::vector 仍然是最好的做事方式?

Hana 的编译速度非常快,所以我想:好吧,为什么不呢?但是 mpl 并没有那么快,我真的需要自己编码 mpl::vector 吗?

boost::hana::tuple 应该是 mpl::vector 的一个足够好的替代品,如果你需要的是 types/values.

的异构 "list"

您可以使用 boost::hana::at 访问特定索引中的项目,使用 boost::hana::append 追加项目,使用 boost::hana::remove 删除项目等等。

即使与 mpl::vector 的接口没有一对一的对应关系,考虑到上述原语,实现一些实用函数应该是微不足道的。


如果你需要一个类型列表,你应该使用boost::hana::tuple_t,它是hana::tuple(hana::type_c<Types>...)的语法糖。