SD-9:库演进策略

文件编号 SD-9
日期 2024-05-14
回复给 Inbal Levi

什么是标准库策略

“策略”是指任何技术规则或技术指南,C++ 标准库工具提案的作者应遵循这些规则或指南。

策略由库演进工作组(JCT1/SC22/WG21 下属)根据 P2267R1 中描述的流程制定。

以下文档描述了现有的 C++ 标准库策略。请在向 LEWG 撰写提案之前仔细阅读。

通常,您的论文应遵循所有策略。“排除提案适用某项策略”一节描述了在绕过任何策略时应遵循的流程。

标准库策略的动机

制定策略的优点

1. 策略使标准库不同部分的行为在用户期望中保持一致

2. 策略为作者和委员会节省时间

3. 策略需要从共享知识库中创建

4. 策略使标准化过程对新人友好

制定策略的缺点

1. 策略可能会“排挤”委员会中少数代表的领域

2. 策略可能会对一些提议用于标准库的工具强制实施错误的技术解决方案

排除提案适用某项策略

为解决上述问题,论文可以避免应用某项策略,只要它包含详细的技术理由和依据。

所讨论领域的现有技术也可以帮助提供理由,但作者有责任解释为什么该策略不能成功应用于提议纳入标准库的工具。

标准库策略列表

1. 策略:库措辞不应使用 [[nodiscard]] (P3201R1:LEWG [[nodiscard]] 策略 (Jonathan Wakely, David Sankel, Darius Neațu))

理由:警告是非规范性的,因此 [[nodiscard]] 的放置会产生虚假影响。此外,实现者更有资格识别何时何地为其实现发出警告。

引用

  • P3162R0:LEWG [[nodiscard]] 策略 (Darius Neațu, David Sankel)
  • P3122R1:应推荐使用 [[nodiscard]] (Jonathan Wakely)