私は4つまでの引数を取る関数を持っています。それらはすべてオプションです。また、すべての引数はデフォルト値を持ち、ユーザーは必要な引数の組み合わせを指定できます。私はこれがあればC++:デフォルトパラメータの組み合わせ
ので:
void func (const A &a = A(), const B &b = B(), const C &c = C(), const D &d = D());
をユーザーがfunc(A(), B())
としてではなく、func(B(), C())
として使用することができます。
複数のオーバーロードを作成せずにすべての引数の組み合わせを許可する方法はありますか? (この場合は8となるでしょう)
名前付きパラメータイディオム(ビルダーパターンとも呼ばれます)、構造体(特にC++では指定されたイニシャライザを使用します)、[ブーストパラメータ](http://www.boost.org/doc/libs/1_65_1/libs/parameter /doc/html/index.html)(またはそれに類するライブラリ) – Justin
私はそれが今あるとは思わないが、 'va_arg'は同様の機能を許しているが、私は全く同じではないと確信している。 http://www.cplusplus.com/reference/cstdarg/va_arg/ –
これはたくさん聞かれますが、実際には実際の実例を尋ねたことはほとんどありません。多分あなたは違うかもしれません。その場合、あなたの問題とデザインの詳細を投稿してください。 –