|
|
@ -332,6 +332,12 @@ C++ data structures |
|
|
|
- *Rationale*: Ensure determinism by avoiding accidental use of uninitialized |
|
|
|
- *Rationale*: Ensure determinism by avoiding accidental use of uninitialized |
|
|
|
values. Also, static analyzers balk about this. |
|
|
|
values. Also, static analyzers balk about this. |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
- By default, declare single-argument constructors `explicit`. |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
- *Rationale*: This is a precaution to avoid unintended conversions that might |
|
|
|
|
|
|
|
arise when single-argument constructors are used as implicit conversion |
|
|
|
|
|
|
|
functions. |
|
|
|
|
|
|
|
|
|
|
|
- Use explicitly signed or unsigned `char`s, or even better `uint8_t` and |
|
|
|
- Use explicitly signed or unsigned `char`s, or even better `uint8_t` and |
|
|
|
`int8_t`. Do not use bare `char` unless it is to pass to a third-party API. |
|
|
|
`int8_t`. Do not use bare `char` unless it is to pass to a third-party API. |
|
|
|
This type can be signed or unsigned depending on the architecture, which can |
|
|
|
This type can be signed or unsigned depending on the architecture, which can |
|
|
|