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