There are various classes of output streams, some of them with styling support. These “classes” are defined in an object-oriented programming style that resembles C++ or Java, but are actually implemented in C with a little bit of object orientation syntax. These definitions are preprocessed down to C. As a consequence, GNU libtextstyle is a C library and does not need to link with the C++ standard library.
All these classes are declared in
The base output stream type is ‘ostream_t’. It is a pointer type to a (hidden) implementation type. Similarly for the subclasses.
When we say that ‘some_ostream_t’ is a subclass of ‘ostream_t’, what we mean is:
|• The ostream class:|
|• The styled_ostream class:|
|• ostream subclasses without styling:|
|• styled_ostream subclasses:|