0

私には機能があります

void fun(int j, int i = 10);

マクロ機能で面白さを出したい。

#define fun1(x) fun(10)

#define fun1(x, y) fun(x, y)

どうすればこれを達成できますか?

4

3 に答える 3

3

なぜここでマクロを使いたいのですか?C++ では、代わりにインライン関数を使用する方が簡単で慣用的です。

一般に、想像上の解決策ではなく、問題を説明すると、より適切なサポートが得られる可能性があります。

于 2012-05-07T08:24:01.587 に答える
2

関数のように、パラメーターの数に基づいてマクロをオーバーロードすることはできません。

関数を呼び出すだけのほうがよいでしょう。

于 2012-05-07T08:25:08.737 に答える
0

いくつかのプリプロセッサは面白いです:

#define fun1 fun

または

#define fun1(...) fun( __VA_ARGS__)

または

#define fun1(x...) fun(x)
于 2012-05-07T08:29:26.470 に答える