假设我有一个带有两个参数的函数,
void f(int x, int y);
我想绑定其中一个。我可以使用std::bind
如下:
auto partiallyBoundF = std::bind(f, 10, _1);
partiallyBoundF
只接受一个参数,但我可以用多个参数来调用它。第一个以外的参数甚至不必是任何有意义的类型:
partiallyBoundF(20, 0);
partiallyBoundF(0, 44, -99, "Hello", 4.5, true, []{});
允许从返回的对象bind
传递额外参数的目的是什么?它允许编译调用错误,而这些错误会在其他任何地方被拒绝。