This document summarises the coding and design conventions that shall be followed for the GammaLib development.
Respecting uniform and coherent coding and design conventions is crucial for software development. They improve code readability, ease code development and maintenance, ensure code portability, and provide standards for the user interface.
Coding and design conventions were introduced at a very early stage of the GammaLib project, and are followed as strictly as possible. The choices that were made for GammaLib were inspired by a large survey of existing C++ coding rules, combined with the experience of the leading code developers. Obviously, there is no single best way to code in C++, and the adopted conventions may not meet the coding usage of individual developers. They should nevertheless be respected strictly, as the GammaLib code base is already very large, and assuring uniformity and coherence is a primary goal of the project.