[Up]  [Next]


CathLibCPP is as full an implementation of the standard C++ library as is practicable given the limitations of the current Acorn C++ compiler. Despite those limitations the library is surprisingly complete and usable (after some familiarization). In addition the library takes a novel approach to the problem of curbing template code bloat. This sets it apart from existing implementations of the Standard Template Library (STL), and has significant advantages for the typical RISC OS platform where limited memory, and the absence of virtual memory and dynamic linking and loading is the rule.

All of the library components that are commonly referred to as the STL are present in a reasonably complete form. This includes useful container classes, algorithms, and interators; it also provides many of the basic algorithms and data structures of computer science. The STL is a generic library, meaning that its components are heavily parameterized; almost every component is a template.

Also included are approximations to the language support, diagnostics, strings and streams libraries. Limited, but usable, implementations of runtime type identification and exception handling (which are not part of the standard library, but form part of the core standard language) are provided as well. Full details of the intended semantics of the various library components are beyond the scope of this document (see the section on References for a link to the draft standard) but details of areas where CathLibCPP has had to deviate from the standard are described in the section on CFront problems.

CathLibCPP is sufficiently close to the standard to allow the compilation of many C++ programs which use standard library facilities, with at worst, light, mechanical, editing of sources. To illustrate this, the library comes with a large collection of example programs, intended for use with implementations of the STL from ObjectSpace (a US C++ library vendor), Hewlett Packard and Silicon Graphics. All the examples compile and run correctly with minimal modification - two days work to port and build around 250 short programs.

 [Up]  [Next]