Hana是C++元编程的头文件库,适用于类型和值的计算。 它提供的功能是成熟的Boost.MPL和Boost.Fusion库提供的功能的超集。 通过利用C++11/14实现技术和习惯用法,Hana拥有比以前的元编程库更快的编译时间和运行时性能,同时显着提高了过程中的表达能力。 Hana很容易以特别的方式进行扩展,它提供了与Boost.Fusion、Boost.MPL和标准库的开箱即用的互操作。
hana::map是基本的关联容器,需要唯一的,可比较的和哈希的键。
map元素的顺序未指定。 此外,所有键都必须是Hashable的,并且任何两个具有相等哈希值的键在编译时都必须是Comparable的。
注意
hana::map的实际表示是一个实现细节。 因此,除了明确记录为映射接口的一部分之外,不应假设任何其它内容,例如:
- 存在额外构造函数
- 存在额外赋值运算符
- hana::map<Pairs...>是或不是依赖类型的事实
特别是,最后一点非常重要;hana::map<Pairs...>基本上等同于decltype(hana::make_pair(std::declval<Pairs>()...))
例如,在模板参数推导期间,这不是可以进行模式匹配的东西。 更多细节在教程中。
下面是本人写的一个示例:
#include <string>
#include <iostream>
#include <boost/hana/map.hpp>
#include <boost/hana/pair.hpp>
#include <

本文介绍了Hana,一个C++元编程库,它提供超越Boost.MPL和Boost.Fusion的功能,具有更快的性能和更高的表达能力。重点讨论了hana::map的特性,如键的要求以及示例代码展示了如何使用Hana进行关联数据操作。
1102

被折叠的 条评论
为什么被折叠?



