C++ provides flexible mechanisms for working with function-like objects and binds them with parameters. These mechanisms are widely used to forward calls and build function adapters. The Function objects page at https://en.cppreference.com/w/cpp/utility/functional is a good starting point to get a deeper understanding of these topics.