aboutsummaryrefslogtreecommitdiff
path: root/contributing.md
diff options
context:
space:
mode:
authorheavydemon21 <nielsstunnebrink1@gmail.com>2024-11-26 09:50:46 +0100
committerheavydemon21 <nielsstunnebrink1@gmail.com>2024-11-26 09:50:46 +0100
commit20ff7753942de3f8eb95d4dee307dc643bc66153 (patch)
tree586e20206060b2fd4b3f642a6a5e69fa35a4c043 /contributing.md
parent9aca3626e31a7549f8c436672d4f479bd64c0057 (diff)
parentbe5ccbe24086d5d4fb407f268c649dcbc36eda6b (diff)
Merge branch 'master' into niels/decoupling_pixel_and_pos
Diffstat (limited to 'contributing.md')
-rw-r--r--contributing.md24
1 files changed, 24 insertions, 0 deletions
diff --git a/contributing.md b/contributing.md
index 77a2908..0a90e86 100644
--- a/contributing.md
+++ b/contributing.md
@@ -17,6 +17,7 @@ that you can click on to open them.
working/compiling version of the project
- Pull requests for new code include either automated tests for the new code or
an explanation as to why the code can not (reliably) be tested
+
<!--
- TODO: tagging / versions
-->
@@ -495,6 +496,12 @@ that you can click on to open them.
</td></tr></table></details>
- <details><summary>
Ensure const-correctness
+
+ > [!IMPORTANT]
+ > C-style APIs that work on (possibly internal) references to structs can be
+ > called from const member functions in C++. If the compiler allows you to
+ > mark a function as `const` even though it has side effects, it should
+ > **not** be marked as `const`.
</summary><table><tr><th>Good</th><th>Bad</th></tr><tr><td>
```cpp
@@ -795,6 +802,23 @@ that you can click on to open them.
```
</td></tr></table></details>
- Do not implement new classes as singletons
+- <details><summary>
+ Retrieving the first or last indices for iterators with a known or expected
+ size should be done using <code>.front()</code> or <code>.back()</code>
+ instead of by index
+ </summary><table><tr><th>Good</th><th>Bad</th></tr><tr><td>
+
+ ```cpp
+ vector<int> foo = { 1, 2, 3 };
+ int bar = foo.first();
+ ```
+ </td><td>
+
+ ```cpp
+ vector<int> foo = { 1, 2, 3 };
+ int bar = foo[0];
+ ```
+ </td></tr></table></details>
## CMakeLists-specific