Evolution WG Issues List of 14 February 2004有...



用粗略(或确切)的术语来说,#nomacros是什么,它可以在任何地方作为扩展使用吗?与通过预处理器运行代码并检查.i文件中是否包含意外软件包的选择相比,该项目在涉及将数千个1995-vintage C++文件移植到2005编译器的最新项目中将是有用的诊断工具。

最佳答案

它只是正在积极考虑纳入C++的提议,但在当前的编译器中仍然不可用。如果您进一步阅读该页面,则会显示:

ES042。 #没有垃圾邮件。

提供用于限制宏进入和退出作用域的预处理器机制。例如:

#nomacros
#in A B
…
#out A X
#endnomacros

除非由#in明确启用,否则不会在#nomacros和#endnomacros之间扩展宏。除非已由#out明确启用,否则将不会在#endnomacros之后定义在#nomacros和#endnomacros之间定义的宏。

Bjarne Stroustrup的建议。在EWG中进行讨论之后,决定寻找一种解决方案,以允许“#in”允许的宏使用的宏仅用于此类宏的扩展。

#nomacros应该嵌套。

10-08 14:39