Функциональный объект, созданный вызовом std::bind
, игнорирует все дополнительные аргументы.Пример:
void f(int);
int main() {
auto a = std::bind(f, 42);
a();
a(1);
a(1, 2, 3);
}
Вы можете присвоить такой объект std::function
, используя то же или большее количество аргументов.Опять же, дополнительные аргументы будут игнорироваться.
C ++ 11 лямбда-выражения более эффективны, а дополнительные аргументы вызывают ошибку компилятора (например, try auto a = []() { f(42); };
).