3
4

1 に答える 1

1

コンストラクターの 3 番目と 4 番目のパラメーターをプレースホルダー値andにバインドしたため、このbind関数は 2 つの引数のファンクターを返します。ただし、結果を引数なしのオブジェクトに格納しています。_1_2function

関数をバインドするときは、パラメーターがデフォルト値で宣言されていても、パラメーターを省略できないことを説明している6 年前のリファレンスを見つけました。

次の 3 つのオプションがあると思います。

  1. プレースホルダーの代わりにint呼び出しで実際の値を指定します。bind
  2. の宣言を変更して、f引数が 2 つの関数を格納することを示し、呼び出し時に常に両方の値を指定します。
  3. 最後の 2 つのパラメーターを変数にバインドします。Boost.Lambda ドキュメントの「定数と変数の遅延」を参照してください。次に、これらの変数を、コンストラクターが宣言するのと同じデフォルト値に設定できます。デフォルト値を使用するには、何もしません。デフォルト以外の値を指定するには、 を呼び出す前にそれらの変数に値を割り当てますf

最後のオプションはおそらくコードを読みにくくするだけで、あまりメリットがないため、代わりに最初の 2 つのオプションのいずれかを優先してください。

于 2011-03-16T23:10:04.550 に答える