You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
These instructions apply to the entire repository.
4
+
5
+
## Language and Design
6
+
7
+
* Prefer C-like C++ ("Orthodox C++"): simple types, explicit ownership, RAII, and clear invariants.
8
+
* Target C++98 when possible.
9
+
* Do not introduce C++11+ features unless there is a clear need. If newer features are required, guard them and keep a C++98-compatible path when practical.
10
+
* Keep dependencies minimal and avoid template-heavy or meta-programming-heavy solutions.
11
+
* Do not rely on exceptions (the project builds with `-fno-exceptions`).
12
+
13
+
## Style
14
+
15
+
* Follow the existing style in nearby files. Do not reformat unrelated code.
16
+
* Use 4 spaces for indentation and keep whitespace changes minimal.
17
+
* Keep include order consistent with existing files: system headers first, then local headers.
18
+
* Prefer project-established forms such as `#if defined(...)` preprocessor guards and uppercase macro names.
19
+
* Use simple, readable control flow; avoid clever constructs.
20
+
21
+
## Compatibility Guidelines
22
+
23
+
* Prefer C/C++98-friendly headers and APIs already used in this repo (`<stdio.h>`, `<string.h>`, etc.) unless there is a reason to use something else.
24
+
* Avoid unguarded use of features like `nullptr`, `auto`, lambdas, `override`, variadic templates, and `static_assert`.
25
+
* Keep code warning-clean under the current compile flags.
0 commit comments