为什么BOOST :: HANA :: EXAREMIS ::键入实验功能?类型列表的棘手是什么
Why is boost::hana::experimental::types an experimental feature? what is tricky about a list of types?
我正在研究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概念完整性的解决方案,同时仍然允许更加汇编的高效类型列表。
相关文章:
- 不能在初始值设定项列表中将非常量表达式从类型 'int' 缩小到'unsigned long long'
- 使用简单类型列表实现的指数编译时间.为什么
- 使用模板类的自定义列表类型中的内存泄漏
- 列表参数的类型定义
- 初始值设定项列表是否只接受使用相同类型的值初始化变量?
- 从类型列表中递归删除重复项会导致编译器堆空间错误 (VS2017)
- C++模板/别名 - 模板参数列表中参数 1 处的类型/值不匹配
- 如何使用类型别名从模板化类中隐藏模板列表
- 测试两个类型列表中的所有组合
- 错误:"模板<类_Tp,类_Dp>类 std::unique_ptr"的模板参数列表中参数 1 的类型/值不匹配
- 谷歌测试:模板模板的笛卡尔乘积的类型列表与模板
- 在迭代模板类型列表时无法停止递归
- 将可变参数类型列表的扩展打包为复杂类型的初始值设定项列表 - 合法吗?
- 使用"auto"推断嵌套初始值设定项列表的类型
- lamda 中的不同类型,在捕获列表中引用
- 阅读从 istream 到矢量的不同类型列表
- 在模板元编程中使用列表类型
- 接受泛型列表类型对象的参数
- 删除c++中列表类型的数组的元素
- 在系统列表中列出::集合::通用::列表<T>类型是可能的吗?