*`auto`: use it *only* to express intent. cf. #208
*`boost`: Only use packages that are specified in this [list](what-boost-to-use)(if you need more, discuss it) cf. #100
*`Return by const ref or value`: We prefer return by value over `const ref` unless we know we pass out _really_ big objects, e.g. a `string` containing the contents of a file. cf. #114
*`Rule of 5`: If you have a user-defined destructor, copy constructor, copy assignment operator, move constructor or move assignment operator, you have to have all 5. cf. #179
*`final`: use to communicate intention. cf. #200
*`constexpr`: allowed, but only if `const`/`constexpr` are used consistently inside a class. cf. #200
*`noexcept`: not to be used since we aim at not throwing exceptions. cf. #200
*`exceptions`: Throw exceptions for not recoverable failures in constructors. cf. #314
*`friend`: Avoid where possible. cf. #206
*`Method length`: Break up functions to the point where they only do one thing if possible. cf #122
*`Translation & Rotation`: Instead of Position and Orientation. cf #159