#nomaros (EP003) 是什么,它还活着吗?

发布于 2024-07-26 08:45:38 字数 419 浏览 4 评论 0原文

2004 年 2 月 14 日的 Evolution WG 问题列表< /a> 有...

EP003。 #nomacros。 参见 EI001。 注释者 Stroustrup 待编写。

粗略(或准确)地说,什么是#nomaros,它可以作为扩展在任何地方使用吗? 与通过预处理器运行代码并检查 .i 文件中是否存在意外包的替代方案相比,在最近的一个涉及将 1995 年老式 C++ 文件移植到 2005 年编译器的项目中,它是一个有用的诊断工具。

The Evolution WG Issues List of 14 February 2004 has ...

EP003. #nomacros. See EI001. Note by
Stroustrup to be written.

In rough (or exact) terms, what is #nomacros, and is it available as an extension anywhere? It would have been a useful diagnostic tool in a recent project involving porting thousands of files of 1995-vintage C++ to a 2005 compiler, compared to the alternative of running the code through the preprocessor and examining the .i files for surprise packages.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

嗳卜坏 2024-08-02 08:45:38

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

ES042。 #没有垃圾邮件。

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

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

除非由 #in 显式启用,否则不会在 #nomacros 和 #endnomacros 之间展开任何宏。 #nomacros 和 #endnomaros 之间定义的宏不会在 #endnomaros 之后定义,除非由 #out 显式启用。

Bjarne Stroustrup 的建议。 经过 EWG 的讨论,决定寻找一种解决方案,允许“#in”允许的宏所使用的宏仅用于此类宏的扩展。

#nomaros 应该嵌套。

It is just a proposal under active consideration for inclusion into C++, but still not available in the current compilers. If you read further down the page, it says:

ES042. #nospam.

Provide a preprocessor mechanism for limiting macros entering and exiting a scope. For example:

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

No macros are expanded between #nomacros and #endnomacros unless explicitly enabled by #in. No macros defined between #nomacros and #endnomacros will be defined after #endnomacros unless explicitly enabled by #out.

Suggestion by Bjarne Stroustrup. After discussion in the EWG it was decided to look for a solution that allowed macros used by macros allowed in by “#in” to be used in the expansion of such macros only.

#nomacros should nest.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文