aboutsummaryrefslogtreecommitdiff
path: root/contributing.md
diff options
context:
space:
mode:
authormax-001 <maxsmits21@kpnmail.nl>2024-10-16 08:35:17 +0200
committermax-001 <maxsmits21@kpnmail.nl>2024-10-16 08:35:17 +0200
commit5b158d9705f9e912f938f22f2389d6f1dc783b2a (patch)
tree7addd40affd1e15b5e6c4ea108847ef6a6eef7ea /contributing.md
parent2f644ac353f65cd182be13549e32e9b9409f7aad (diff)
parent579824011d5e8776e2079d6624a39535517760ff (diff)
Merge remote-tracking branch 'origin/master' into max/POC-ECS-homemade
Diffstat (limited to 'contributing.md')
-rw-r--r--contributing.md29
1 files changed, 29 insertions, 0 deletions
diff --git a/contributing.md b/contributing.md
index 2ff411a..364e835 100644
--- a/contributing.md
+++ b/contributing.md
@@ -17,6 +17,12 @@
# Code style
- ASCII only
+- Class names are always singular
+- Explanatory comments are placed above the line(s) they are explaining
+- Source files should only contain comments that plainly state what the code is
+ supposed to do
+- Explanatory comments in headers may be used to clarify implementation design
+ decisions
- Formatting nitty-gritty is handled by clang-format/clang-tidy (run `make
format` in the root folder of this repository to format all sources files)
- When using libraries of which the header include order is important, make
@@ -30,6 +36,29 @@
as these are no longer accessible when the engine is installed
- Getter and setter functions are appropriately prefixed with `get_` and
`set_`.
+- Doxygen commands are used with a backslash instead of an at-sign (i.e.
+ `\brief` instead of `@brief`)
+- A singleton's instance is always accessed using a getter function that
+ instantiates its own class as a static variable within the getter function
+ scope, instead of storing the instance as a member variable directly:
+
+ ```cpp
+ class Bad {
+ static Bad instance;
+ Bad & get_instance() { return instance; }
+ };
+
+ class Good {
+ Good & get_instance() {
+ static Good instance;
+ return instance;
+ }
+ };
+ ```
+- Member variable default values should be directly defined in the class
+ declaration instead of using the constructor.
+- Header files declare either a single class or symbols within a single
+ namespace.
## CMakeLists specific