Earlier quoted context omitted.
He's just pointing out that the first argument to write() is the exact same kind of abstraction as the "foo" in "foo->perform()".
C++ is one of the few languages where in "foo->perform()" the -> and () can be something completely different than what you expect. There's almost nothing in that simple statement you can be completely sure of.
(Note that my point here is that for sane/good code, you normally can be sure that it does what it looks like -- for C++ just the same way as for C.)