【发布时间】:2013-06-07 15:49:25
【问题描述】:
正如标题所说,有一个东西叫Concepts Lite (模板约束)和Concept Design for the STL。谁能解释这些之间的一些根本区别?
【问题讨论】:
-
如果您打算每天使用它会更健康吗?
标签: c++ metaprogramming template-meta-programming
正如标题所说,有一个东西叫Concepts Lite (模板约束)和Concept Design for the STL。谁能解释这些之间的一些根本区别?
【问题讨论】:
标签: c++ metaprogramming template-meta-programming
第一个引入了对 C++ 语言(核心)的更改,以提供表达对模板的限制的工具。为用户提供合理的检查、良好的错误消息,并为模板编写者提供简单的工具。
它将作为技术规范 (TS) 开发,预计到 2014 年中期,大约与 C++14 相同。编译器作者似乎也热衷于尽快发布它。
第二个是关于库的:由于显而易见的原因,当前的标准库不能使用尚未成为标准一部分的约束。但是一旦这部分是 bose 的,模板可以并且将会通过更原生的需求表达来改进。即目前它只写在模板参数必须是默认构造或可分配的文本中。所以如果你使用 C++03 和 std::vector<std::auto_ptr<int> > 它只是 UB。但在概念化版本中,此类问题将在编译时被诊断出来。
【讨论】: