Why do we need std::invoke
, when we already have std::function
? What is the difference between them? Both used to call callable objects. What's the point to add new template?
std::invoke
is a generic way to activate any callable - a std::function
, a pointer to function, a pointer to member function, a function object etc. Without having to know which one you are dealing with (and without having to use different syntax). It's mostly useful in generic programming (templates).
A standard function on the other hand is a generic container for a callable "thing". Not at all the same..
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With