マクロの展開を追跡したい - マクロが展開された回数と展開が行われたときのargは何か?例えばマクロの展開を追跡する
、
私はマクロは次のようになりますしている:プリプロセッサの終わりに
mymacro(a);
mymacro(b);
:
#define mymacro(x) int x
と私のコードでは、私はこのような何かを持っています拡張(ああ、特定のマクロを最後に展開する方法はありますか?)、mymacroが何回使用されたのか、また渡されたargsについて知りたいと思います。この場合、2回、argsはaとbになります。
私はブーストプリプロセッサlibを調べていました。彼らはBOOST_PP_ARRAYを持っていますが、私はそれを "静的"にする方法を知らないので、後でそれを使うことができます。
BOOST_PP_COUNTERに何かが見つかりました。 BOOST_PP_COUNTERはプリプロセッサ・フレーズで状態を維持できるものです。しかし、私は、私が望んでいたことをどうやってやるか、まだ不明です。
これは、コンパイラがサポートしている場合は、コンパイラメッセージを出力するマクロに行を追加することで可能です。 –
あなたはもっと具体的になることができますか?私はClangを使用しています –
すぐにはわかりませんが、何が起きているのかについて過去の検査をしていて、何かをすることができるように前処理時に利用できるようにしたいそれで、そう? –