3

2004年2月14日のEvolutionWGの問題リストには...

EP003。#nomacros。EI001を参照してください。Stroustrupによるメモ。

大まかな(または正確な)用語で、とは何#nomacrosですか、そしてそれはどこでも拡張機能として利用できますか?これは、プリプロセッサを介してコードを実行し、.iファイルでサプライズパッケージを調べる代わりの方法と比較して、1995-ヴィンテージC++の数千のファイルを2005コンパイラに移植することを含む最近のプロジェクトで有用な診断ツールでした。

4

1 に答える 1

1

これは、C++ への組み込みが積極的に検討されている提案にすぎませんが、現在のコンパイラではまだ利用できません。ページのさらに下を読むと、次のように書かれています。

ES042。#スパム禁止。

スコープに出入りするマクロを制限するためのプリプロセッサ メカニズムを提供します。例えば:

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

#in で明示的に有効にしない限り、マクロは #nomacros と #endnomacros の間で展開されません。#nomacros と #endnomacros の間に定義されたマクロは、#out で明示的に有効にしない限り、#endnomacros の後に定義されません。

Bjarne Stroustrup による提案。EWG での議論の後、「#in」によって許可されたマクロで使用されるマクロを、そのようなマクロの展開でのみ使用できるようにするソリューションを探すことが決定されました。

#nomacros はネストする必要があります。

于 2009-06-29T20:17:00.757 に答える