我正在搜索某种元向量/链表。似乎 mpl::vector 是最好的方法。但现在有hana。不幸的是,我找不到某种 hana::vector。我看到了一个用于 mpl::vector 的适配器,仅此而已。所以这意味着 mpl::vector 仍然是最好的做事方式?
Hana 编译得很快,所以我想:为什么不呢?但是 mpl 并没有那么快,我真的需要自己编写 mpl::vector 代码吗?
我正在搜索某种元向量/链表。似乎 mpl::vector 是最好的方法。但现在有hana。不幸的是,我找不到某种 hana::vector。我看到了一个用于 mpl::vector 的适配器,仅此而已。所以这意味着 mpl::vector 仍然是最好的做事方式?
Hana 编译得很快,所以我想:为什么不呢?但是 mpl 并没有那么快,我真的需要自己编写 mpl::vector 代码吗?
boost::hana::tuple
mpl::vector
如果您需要的是类型/值的异构“列表”,应该是一个足够好的替代品。
您可以使用 访问特定索引中的项目,使用boost::hana::at
附加项目boost::hana::append
,使用 删除它们boost::hana::remove
等等。
即使与mpl::vector
' 的接口没有一对一的对应关系,在给定上述原语的情况下实现一些实用功能也应该是微不足道的。
如果你需要一个类型列表,你应该使用boost::hana::tuple_t
,它是 . 的语法糖hana::tuple(hana::type_c<Types>...)
。