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)); } };