feat(cpp-convention): Add Tilmann requirements
This commit is contained in:
@@ -1,5 +1,5 @@
|
|||||||
# C++ Code Conventions
|
# C++ Code Conventions
|
||||||
> Rev. 1, 12-09-2025, Wessel T <contact@wessel.gg>
|
> Rev. 2, 15-09-2025, Wessel T <contact@wessel.gg>
|
||||||
|
|
||||||
> Proposals can be made in the form of a merge request to the `main` branch.
|
> Proposals can be made in the form of a merge request to the `main` branch.
|
||||||
> Don't forget to update the [Changelog](#Changelog) when doing so.
|
> Don't forget to update the [Changelog](#Changelog) when doing so.
|
||||||
@@ -89,6 +89,16 @@ For C++ file types we use the following conventions:
|
|||||||
|
|
||||||
Using C libraries is allowed, but any includes must be in an `extern c` block.
|
Using C libraries is allowed, but any includes must be in an `extern c` block.
|
||||||
|
|
||||||
|
### ROS2 specific naming conventions
|
||||||
|
|
||||||
|
> **NOTE** Year is always in YYYY format (2025)
|
||||||
|
|
||||||
|
* Workspace names are snake_case, named as `<groupname>_<year>_ws`.
|
||||||
|
* Package names are snake_case, named as `<groupname>_<year>_<functional_name>_pkg`.
|
||||||
|
This name has to be approved by the project manager.
|
||||||
|
* Interface package names are snake_case, named as either `<groupname>_<year>_machine_interfaces`
|
||||||
|
or `<groupname>_<year>_assessment_interfaces`
|
||||||
|
|
||||||
## Comments
|
## Comments
|
||||||
|
|
||||||
* Comments are lines starting with `//`.
|
* Comments are lines starting with `//`.
|
||||||
@@ -160,6 +170,7 @@ nested if statements are 4)
|
|||||||
`if (is_charging && (!is_free || moving))`). Instead wrap parts in a variable
|
`if (is_charging && (!is_free || moving))`). Instead wrap parts in a variable
|
||||||
or simplify the if statement by removing the second part and wrapping that and
|
or simplify the if statement by removing the second part and wrapping that and
|
||||||
the underlying code in a function.
|
the underlying code in a function.
|
||||||
|
* Any relevant calculation should output a log message of severity `DEBUG`.
|
||||||
|
|
||||||
## Variables
|
## Variables
|
||||||
|
|
||||||
@@ -175,6 +186,11 @@ nested if statements are 4)
|
|||||||
3. ternary statements (e.g. int module = is_connected ? 5 : 4)
|
3. ternary statements (e.g. int module = is_connected ? 5 : 4)
|
||||||
4. boundary condition in loops (e.g. uint loop_end = vector.size() - 1)
|
4. boundary condition in loops (e.g. uint loop_end = vector.size() - 1)
|
||||||
* Prefer constexpr variables over macros.
|
* Prefer constexpr variables over macros.
|
||||||
|
* Avoid double pointers.
|
||||||
|
|
||||||
|
## Dates
|
||||||
|
|
||||||
|
Dates should always be written in `DD[-/]MM[-/]YYYY HH[:]mm[:]ss` or epoch format.
|
||||||
|
|
||||||
## Example file
|
## Example file
|
||||||
|
|
||||||
@@ -249,4 +265,7 @@ void ComplexIdea::some_function(int lower_limit) {
|
|||||||
|
|
||||||
## Changelog
|
## Changelog
|
||||||
|
|
||||||
|
[15-09-2025] Wessel T: Add ROS2 naming standard
|
||||||
|
|
||||||
[12-09-2025] Wessel T: Create initial document
|
[12-09-2025] Wessel T: Create initial document
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user