プリプロセッサライブラリのセットを含むライブラリを使用しています。__VA_ARGS__
それらの1つは、を繰り返し、引数ごとにユーザー提供のマクロを呼び出すFOR_EACHスタイルのマクロです。ユーザー提供のマクロは次のように呼び出されます。SOME_MACRO(current_arg)
ただし、問題は、単一の引数を取るユーザー提供のマクロでのみ機能することです。struct
aの名前と構造体の各フィールドの両方を含む特別なことをしようとしています。問題は、これにはマクロに対して2つの引数が必要なことです。
私が使用しているライブラリは単項マクロのみを受け入れるので、マクロに追加の引数を「バインド」する方法はありますか?
今のところ、マクロで構造体の名前をハードコーディングする必要があります。したがって、struct
私が作業している名前が、である場合、私はFoo
言わなければなりません:
#define MY_MACRO(FIELD) /* do something with &Foo::FIELD */
STRUCT
どういうわけか、マクロに2番目の引数を「バインド」して、ライブラリがマクロを呼び出すときに、次のように展開できるようにすることができますか。
#define MY_MACRO(FIELD) /* do something with &STRUCT::FIELD */