CCfits  2.6
Implementation Notes

This section comments on some of the design decisions for CCfits. We note the role of CFITSIO in CCfits as the underlying "engine" and the use of the C++ standard library. We also explain some of the choices made for standard library containers in the implementation - all of which is hidden from the user (as it should be).

CCfits wraps, not replaces, CFITSIO

Most importantly, the library wraps rather than replaces the use of CFITSIO library; it does not perform direct disk I/O. The scheme is designed to retain the well-developed facilities of CFITSIO (in particular, the extended file syntax), and make them available to C++ programmers in an OO framework. Some efficiency is lost over a 'pure' C++ FITS library, since the internal C implementation of many functions requires processing if blocks or switch statements that could be recoded in C++ using templates. However, we believe that the current version strikes a resonable compromise between developer time, utility and efficiency.

ANSI C++ and the Standard C++ Library

The implementation of CCfits uses the C++ Standard Library containers and algorithms (also referred to as the Standard Template Library, STL) and exception handling. Here is a summary of the rationale behind the implementation decisions made.