Coding standards

RxDock is written using the LLVM style C++ code and formatted using ClangFormat.

LLVM coding standards and additions

The coding standards are documented in LLVM Coding Standards. With regards to that document, RxDock has made the following changes in the coding standards:

  • Standard C++11 is used instead of C++14. In the near future the switch will be made to C++17.

  • Implementation file extension should be .cxx instead of .cpp.

  • Variable names should use camelBack instead of CamelCase and member variables should be prefixed with m_ (similar to the proposed Variable Names Plan in LLVM).

See also

Helpful online sources of knowledge about C++:

Particularly useful books about software design, algorithms, and programming:

  1. Code Complete by Steve McConnel, published by Microsoft Press in 2004.

  2. Metaheuristics: From Design to Implementation by El-Ghazali Talbi, published by Wiley in 2009.

  3. Effective Modern C++ by Scott Meyers, published by O’Reilly in 2014. Also interesting and useful are “Effective C++”, “More Effective C++”, and “Effective STL” by the same author.

The future development will switch from the use of C++11 to the use of C++17. A very good book covering the new features in C++17 is C++17 in Detail by Bartlomiej Filipek, published by Leanpub in 2017. The blog post C++17 Features is a shorter version.