为什么BOOST :: HANA :: EXAREMIS ::键入实验功能?类型列表的棘手是什么

Why is boost::hana::experimental::types an experimental feature? what is tricky about a list of types?

本文关键字:列表 类型 是什么 实验 HANA BOOST EXAREMIS 为什么 功能      更新时间:2023-10-16

我正在研究hana,我很惊讶地看到它具有 type的概念(类型的"类型的容器",类似于一个单元素元素,没有实际值(,但是类型(type的序列(是实验特征。

有人知道为什么吗?与单一类型的容器相反的类型列表是什么?

答案基本上是杰森所说的:

我想将类型视为hana::Sequence,但不会通过法律,因为它不会容纳任何类型的价值(例如具有运行时状态的值(。

"问题"是不能使hana::types成为hana::Sequence,因为hana::Sequence应该能够保持任意物品,而不仅仅是类型。虽然这似乎没什么大不了的,但实际上是。例如,我们也将无法满足hana::Monad,因为这需要hana::flatten,其签名为M<M<T>> -> M<T>,对于任意hana::Monad M。由于hana::types只能容纳类型,因此您无法拥有例如。 hana::types<hana::types<int, char>, hana::types<float, long>>没有特殊评估。

无论解决方案是什么,我都想找到一个不会打破HANA概念完整性的解决方案,同时仍然允许更加汇编的高效类型列表。