【发布时间】:2019-12-29 03:18:35
【问题描述】:
在当前的 C++ 草案(2019 年 8 月)中,pp-importhttp://eel.is/c++draft/cpp.import#nt:pp-import) 的语法允许在 header-name 或 header-name-tokens 之后添加额外的 pp-tokens。
该部分的当前版本是P1703: "Recognizing Header Unit Imports Requires Full Preprocessing" 的结果。在此提案引起的更改之前,语法仍然允许在header-name 或header-name-tokens 之后预处理令牌 令牌,但采用pp-import-suffix 的形式。 (P1103 的 [cpp.module] 部分)。
在这种情况下允许额外的、未使用的预处理令牌背后的原因是什么?
谢谢。
【问题讨论】:
-
我发现以下提交 (github.com/cplusplus/modules-ts/commit/…) 引入了
pp-decl-suffix非终端,替换了pp-attrs。也许剩下的标记应该用于属性。 -
两小时前我还在读那部分,还认为这是一个错误。在语法的超文本链接之后,我们最终将这个 eel.is/c++draft/lex.pptoken#nt:preprocessing-token 作为可能的额外标记,其中包含太多有效导入语句的标记。
标签: c++ language-lawyer c++20 c++-modules