私はこのようなマクロを持っています (これは実際の便利なユースケースから来ていますが、単純化されたケースで遊んでいます):
#define MY_MACRO(M) M(3) M(5) M(7)
#define MULTIPLY_BY_2(A) (2*A)
私はそれから書くことができます
MY_MACRO(MULTIPLY_BY_2)
// -> (2*3) (2*5) (2*7)
涼しい!私が欲しいのはこれです:
#define MULTIPLY(A,B) (A*B)
MY_MACRO(BIND(MULTIPLY, 2))
上記と同じ結果を得るには。BIND とは? 私はいくつかのハックを試しましたが、これはほぼ可能であると報告できます (これは驚くべきことです)。しかし、それはきれいではなく、一般的でもありません。これはうまくできますか?(つまり、純粋に CPP でいくつかの実際の機能的な機能を構築しますか?) バインドされたマクロをバインドするのに十分に実行できますか?
おそらく、私が本当に求めているのは、あなたが知っているプリプロセッサ ライブラリにこのようなツールがあるかどうかということです。Boost では、このようなものはまったく見つかりませんでした。