はどうすればデフォルト引数を指定せず、デフォルトの引数を取る関数に結合し、その後、引数なしで呼び出すことができますか?デフォルトの引数をとり、それを呼び出す関数にバインドできますか?
void foo(int a, int b = 23) {
std::cout << a << " " << b << std::endl;
}
int main() {
auto f = std::bind(foo, 23, 34); // works
f();
auto g = std::bind(foo, 23); // doesn't work
g();
using std::placeholders::_1;
auto h = std::bind(foo, 23, _1); // doesn't work either
h();
}
「動作しない」を定義します。変数に異なる名前を付けた場合、コードはコンパイルされます。 –
なぜfに再割り当てしていますか? – 111111
@ R.MartinhoFernandesええ、申し訳ありませんが、例は不完全でした。更新されたコード – inf