Below is how ostream deals with manipulators such as std::endl
ostream& ostream::operator << ( ostream& (*op)(ostream&)) {
// call the function passed as parameter with this stream as the argument
return (*op)(*this);
}
My question is why the parameter is defined as a pointer to a function
and not as std::function
?
std::function
can store any callable method (function, lambda, function object, etc). Wouldn't that be more powerful? Is there an overload for that ?
The above is an example from the book The C++ standard library a tutorial and reference - Josuttis)
.
Aucun commentaire:
Enregistrer un commentaire