C++ 什么是#nomacros(EP003),它还活着吗?

C++ 什么是#nomacros(EP003),它还活着吗?,c++,c++11,c-preprocessor,C++,C++11,C Preprocessor,这个有 EP003#诺马克罗斯。见EI001。附注 这是要写的 粗略地说(或确切地说),什么是#nomacros,它是否可以作为任何地方的扩展?它将是一个有用的诊断工具,它是一个最近的项目,它包括将1995个老式C++文件移植到2005编译器,相比于通过预处理器运行代码和检查.i文件的惊喜包的替代。 < P>这是一个积极考虑的建议,包含在C++中。但在当前的编译器中仍然不可用。如果你再往下读,它会说: ES042#诺斯潘 提供一种预处理器机制,用于限制宏进入和退出作用域。例如: #nomacro

这个有

EP003#诺马克罗斯。见EI001。附注 这是要写的


粗略地说(或确切地说),什么是
#nomacros
,它是否可以作为任何地方的扩展?它将是一个有用的诊断工具,它是一个最近的项目,它包括将1995个老式C++文件移植到2005编译器,相比于通过预处理器运行代码和检查.i文件的惊喜包的替代。

< P>这是一个积极考虑的建议,包含在C++中。但在当前的编译器中仍然不可用。如果你再往下读,它会说:

ES042#诺斯潘

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

#nomacros
#in A B
…
#out A X
#endnomacros
除非由#in显式启用,否则不会在#nomacro和#endnomacro之间展开宏。除非由#out显式启用,否则在#nomacros和#endnomacros之间定义的宏不会在#endnomacros之后定义

比亚恩·斯特劳斯特鲁普的建议。在EWG中讨论后,决定寻找一种解决方案,允许“#in”允许的宏使用的宏仅用于此类宏的扩展

#野马应该筑巢