【问题标题】:What's the difference between C++ Concepts and C++ Template Constraints?C++ 概念和 C++ 模板约束有什么区别?
【发布时间】:2013-06-07 15:49:25
【问题描述】:

正如标题所说,有一个东西叫Concepts Lite (模板约束)和Concept Design for the STL。谁能解释这些之间的一些根本区别?

【问题讨论】:

  • 如果您打算每天使用它会更健康吗?

标签: c++ metaprogramming template-meta-programming


【解决方案1】:

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

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

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

【讨论】:

    猜你喜欢
    • 2013-03-18
    • 2010-10-04
    • 2014-04-03
    • 1970-01-01
    • 2016-04-24
    • 2022-09-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多