1

正如标题所说,有一些东西叫做Concepts Lite (模板约束)和STL 的概念设计。任何人都可以解释这些之间的一些根本区别吗?

4

1 回答 1

1

第一个引入了对 C++ 语言(核心)的更改,以提供表达模板限制的工具。为用户提供合理的检查、良好的错误消息以及为模板编写者提供简单的工具。

它将作为技术规范 (TS) 开发,预计到 2014 年中期,大约与 C++14 相同。编译器作者似乎也热衷于尽快发布它。

第二个是关于库的:由于显而易见的原因,当前的标准库不能使用尚未成为标准一部分的约束。但是一旦这部分是 bose 的,模板可以并且将会通过更原生的需求表达来改进。即目前它只写在模板参数必须是默认构造或可分配的文本中。因此,如果您使用 C++03 并且std::vector<std::auto_ptr<int> >它只是 UB。但是对于概念化版本,此类问题将在编译时被诊断出来。

于 2013-06-07T16:29:26.663 回答