问题 什么是C ++技术规范?


Concepts-lite C ++(提议N3701)功能未包含在C ++ 1y标准中,但据称它将作为技术规范发布。它究竟意味着什么?它会自动成为下一个C ++版本的标准功能吗?


9061
2018-01-24 20:39


起源

简而言之:这是委员会更有效地工作的一种方式。焦点小组可以创建技术规范。 - Karoly Horvath
@KarolyHorvath但这对于它意味着什么 用户 C ++的? - n.m.
@ n.m。:你不应该担心什么。这意味着语言和图书馆将更快地发展。 - Karoly Horvath
如果描述C ++标准的文档是程序,则可以将技术规范视为补丁/插件。 - user2485710


答案:


我通常不喜欢复制粘贴答案,但我认为这很好解释 这里

从2012年开始,委员会已经过渡到“脱钩”   模型,主要工作进展独立于   标准本身,可以以形式异步传递   技术规格(TS)与主要产品分开   标准,以后可以纳入标准。同   发布针对2014年的版本,我们特别关注   生成新的C ++标准库;参加,请参阅呼吁   有关如何提交提案的提案和说明。

这种解耦模型允许委员会提供更小的部分   以更快,更可预测的方式工作。解耦可实现此目的   多种方式,包括每个TS的工作可以在哪些方面取得进展   速度,可以更快地交付而无需等待下一个标准,   并且可以以让社区获得经验的形式提供   具有该功能并可能在正式之前调整其设计   包含在实际标准中。解耦工作也允许   标准本身以较小的规则以更规则的节奏交付   以及更可预测的“批量”功能,这有助于编译器   更密切地跟踪标准并鼓励不同的编译器   以更一致的顺序添加新功能。

这对用户意味着什么:

您可以使用我认为可以使用的单独命名空间中的任何这些新功能 std::experimental::fundamentals_v1*。一旦这些功能被“完全烘焙”,它们将被纳入C ++标准并转移到 std 命名空间。

*:虽然看起来像 fundamentals_v1 将是一个内联命名空间,所以你可以只是前置 std::experimental


13
2018-01-24 20:50



我以为他们会跟着一样 tr 模式(例如 std::tr3::whatever)。那不是这样吗? - Zac Howland
@ZacHowland:这是 最新稿 这解释了它。 - Jesse Good
谢谢。我还没有在草稿中看到过:) - Zac Howland