5.9.2.

ostream& endl(ostream&);

cout << "howdy" << endl;

ostream& ostream::operator<<(ostream& (*pf)(ostream&)) {
   return pf(*this);
}

//: C04:nl.cpp
// Creating a manipulator.
#include <iostream>
using namespace std;

ostream& nl(ostream& os) {
  return os << '\n';
}

int main() {
  cout << "newlines" << nl << "between" << nl
       << "each" << nl << "word" << nl;
} ///:~

Listado 5.19. C04/nl.cpp


cout.operator<<(nl) è nl(cout)

os << '\n';