Предположим, что у меня есть функция, которая принимает два аргумента,
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
, передавать дополнительные аргументы? Он позволяет вызывать ошибки для компиляции, которые будут отклонены в любом месте.