将 Hana 将两个序列压缩到地图中
boost hana zip two sequences into map
static constexpr auto type_tuple_c = hana::tuple_t<T...>;
static constexpr auto idx_tuple_c = hana::tuple_c<std::size_t, 0, sizeof...(T)>;
我想将这两个大小相等的序列相互映射。 但是,我似乎无法理解如何使用hana::map
功能来实现这一点:
static constexpr auto type_idx_map_c = hana::unpack(
hana::zip_with(hana::make_pair, type_tuple_c, idx_tuple_c)
, hana::make_map
);
无论我进行什么转换,我似乎都无法创建映射。 我知道地图要求其元素具有产品概念,但我似乎无法理解(甚至理解(有关压缩结构的行为。
我能做什么,或者我做错了什么吗?
运行gcc version 6.0.0 20160320
和今天最后一次获取hana version 0.7.0
我想将这两个大小相等的序列相互映射。
这些序列通常大小不相等。 type_tuple_c
的大小为 sizeof...(T)
,但idx_tuple_c
的大小为 2 - 它只包含元素 hana::size_c<0>
和 hana::size_c<sizeof...(T)>
。
我认为就指数而言,您正在寻找的只是std::make_index_sequence<sizeof...(T)>{}
。这应该仍然适用于Boost.Hana。
相关文章:
- C++中高效的大型稀疏块压缩线性方程
- 嵌入方指针压缩已禁用
- C++使用整数的压缩数组初始化对象
- 为什么不;名字在地图上是按顺序排列的吗
- 基于多个条件处理地图中的所有元素
- 在C++中将函数压缩为两种方式
- 在C++中将矢量转换为嵌套地图
- 在C++中使用LZ4压缩目录
- 使用C++进行运行长度解压缩
- 为什么大多数 pair 实现默认不使用压缩(空基优化)?
- 替换基于地图的所有引用
- 如何区分地图中的 0 和 false?
- 地图计数确实很重要,或者只是检查是否存在
- 如何从地图中删除矢量对象
- 是否有任何C++功能可以对地图进行排序?
- 捕获标准输出以压缩并使用 CTRL-C 中断会给出损坏的 zip 文件
- C++ 如何将数组值解压缩为函数参数
- struct.error:解压缩 C++ 结构时,解包需要 288 字节的缓冲区
- 如何使用 std::variant 打印地图键/值?
- 将 Hana 将两个序列压缩到地图中