我正在研究Hana,但惊讶地发现它具有type
(某种类型的“类型容器”,类似于没有实际值的单元素元组)的概念,但是却是types(type
的序列)是一项实验功能。
有人知道为什么吗?与单一类型的容器相比,类型列表的复杂性是什么?
最佳答案
答案基本上就是杰森所说的:
“问题”是不能将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概念完整性的解决方案,同时仍然允许使用更加编译时有效的类型列表。