diff options
Diffstat (limited to 'doc/Development/Hacking.asciidoc')
-rw-r--r-- | doc/Development/Hacking.asciidoc | 52 |
1 files changed, 0 insertions, 52 deletions
diff --git a/doc/Development/Hacking.asciidoc b/doc/Development/Hacking.asciidoc deleted file mode 100644 index d0332e9..0000000 --- a/doc/Development/Hacking.asciidoc +++ /dev/null @@ -1,52 +0,0 @@ -== C++ Performance -(Adapted from CppCon2016 Practical Performance Practices) -https://florianjw.de/en/cpp_coding_standard.html - -- Prefer std::array, then std::vector -- Construct and initialize in one step -- Use const always when possible -- To enable const with complex initialization, use lambdas -- Don't recalculate values that only need to be calculated once -- Don't disable move operations - moving is more efficient than copying -- Avoid shared_ptr copies unless really needed -- Prefer returning unique_ptr from factories -- Use '\n' instead of std::endl -- Use lambdas - they have no overhead compared to direct functions -- final can help the compiler optimize virtual function calls -- Code branches are expensive - -=== Smaller code is faster code - -=== Do one thing and do it well -Simple code is easy to understand, easy to maintain, and as such lead to less bugs. - -=== Only use text formats -They can be edited both by humans and by programs. Use generic formats (ini, json, etc.) instead of custom ones. - -=== Document your changes -Don't do this just for others, do it for your future self. - -== Useful compiler options -- -fuse-ld=gold -- -Wold-style-cast - -=== Setting in meson -Compiler arguments are free-form comma-separated list. -meson configure -Dcpp_args="-Wold-style-cast" -meson configure -Dcpp_link_args="-fuse-ld=gold" - -== C++ Coding Standard - -=== Naming Conventions -- Naming uses camelCase -- Private attributes are prefixed with 'm_'. -- Include guards should be named SMOLBOTE_<class name in caps>_H - -=== Compiler -- Use the highest sane warning level. - -=== Resource management -- Manage your resources with RAII (Resource Acquisition Is Initialization). - -=== Functions -- Try to keep the complexity low and the body short. |