8
引数の数に関するマクロのオーバーロード
私は2つのマクロFOO2とFOO3: #define FOO2(x,y) ... #define FOO3(x,y,z) ... 新しいマクロFOOを次のように定義したい: #define FOO(x,y) FOO2(x,y) #define FOO(x,y,z) FOO3(x,y,z) ただし、マクロは引数の数をオーバーロードしないため、これは機能しません。 変更することなく、FOO2かつFOO3、マクロを定義するためにいくつかの方法がありますFOO(使用して__VA_ARGS__ディスパッチのと同じ効果を得るため、またはそれ以外)FOO(x,y)にFOO2、およびFOO(x,y,z)にはFOO3?
183
c
macros
c-preprocessor