Concepts-lite C ++(提议N3701)功能未包含在C ++ 1y标准中,但据称它将作为技术规范发布。它究竟意味着什么?它会自动成为下一个C ++版本的标准功能吗?
Concepts-lite C ++(提议N3701)功能未包含在C ++ 1y标准中,但据称它将作为技术规范发布。它究竟意味着什么?它会自动成为下一个C ++版本的标准功能吗?
我通常不喜欢复制粘贴答案,但我认为这很好解释 这里:
从2012年开始,委员会已经过渡到“脱钩” 模型,主要工作进展独立于 标准本身,可以以形式异步传递 技术规格(TS)与主要产品分开 标准,以后可以纳入标准。同 发布针对2014年的版本,我们特别关注 生成新的C ++标准库;参加,请参阅呼吁 有关如何提交提案的提案和说明。
这种解耦模型允许委员会提供更小的部分 以更快,更可预测的方式工作。解耦可实现此目的 多种方式,包括每个TS的工作可以在哪些方面取得进展 速度,可以更快地交付而无需等待下一个标准, 并且可以以让社区获得经验的形式提供 具有该功能并可能在正式之前调整其设计 包含在实际标准中。解耦工作也允许 标准本身以较小的规则以更规则的节奏交付 以及更可预测的“批量”功能,这有助于编译器 更密切地跟踪标准并鼓励不同的编译器 以更一致的顺序添加新功能。
这对用户意味着什么:
您可以使用我认为可以使用的单独命名空间中的任何这些新功能 std::experimental::fundamentals_v1
*。一旦这些功能被“完全烘焙”,它们将被纳入C ++标准并转移到 std
命名空间。
*:虽然看起来像 fundamentals_v1
将是一个内联命名空间,所以你可以只是前置 std::experimental
。