An indirectbuf is one that forwards all of its I/O requests to another streambuf.
An indirectbuf can be used to implement Common Lisp
synonym-streams and two-way-streams:
class synonymbuf : public indirectbuf {
Symbol *sym;
synonymbuf(Symbol *s) { sym = s; }
virtual streambuf *lookup_stream(int mode) {
return coerce_to_streambuf(lookup_value(sym)); }
};