2009-06-26 60 views
3

Evolution WG Issues List of 14 February 2004已...什么是#nomacros(EP003),它还活着吗?

EP003。 #nomacros。见EI001。请注意0​​需要写Stroustrup。

在粗略(或确切)的术语中,什么是#nomacros,它是否可以在任何地方作为扩展使用?在最近的一个项目中,它将成为一个有用的诊断工具,该工具涉及将1995年复制的C++的数千个文件移植到2005年的编译器中,而不是通过预处理器运行代码并检查.i文件以获得惊喜包。

回答

1

这只是一个积极考虑包含到C++中的提议,但在当前编译器中仍然不可用。如果您进一步阅读该页面,则说:

ES042。 #没有垃圾邮件。

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

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

没有宏在#nomacros和#endnomacros之间展开,除非#in明确启用。 #nomacros和#endnomacros之间定义的宏将在#endnomacros之后定义,除非#out明确启用。

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

#nomacros应该嵌套。