diff options
Diffstat (limited to 'docs')
-rw-r--r-- | docs/.gitignore | 3 | ||||
-rw-r--r-- | docs/makefile | 7 | ||||
-rw-r--r-- | docs/styleguide-cpp.md | 58 | ||||
-rw-r--r-- | docs/styleguide-cpp.pdf | bin | 0 -> 40093 bytes |
4 files changed, 68 insertions, 0 deletions
diff --git a/docs/.gitignore b/docs/.gitignore new file mode 100644 index 0000000..6e25999 --- /dev/null +++ b/docs/.gitignore @@ -0,0 +1,3 @@ +*.aux +*.log +*.toc
\ No newline at end of file diff --git a/docs/makefile b/docs/makefile new file mode 100644 index 0000000..f5aeba8 --- /dev/null +++ b/docs/makefile @@ -0,0 +1,7 @@ +TARGET=styleguide-cpp.tex + +docs: $(TARGET) + latex -output-format=pdf $(TARGET) + +clean: + rm -f *.aux *.dvi *.log *.out *.toc
\ No newline at end of file diff --git a/docs/styleguide-cpp.md b/docs/styleguide-cpp.md new file mode 100644 index 0000000..ad1add6 --- /dev/null +++ b/docs/styleguide-cpp.md @@ -0,0 +1,58 @@ +# OpenVic2 C++ Style Guidelines + +## Table of Contents + 1. [Why Style?](styleguide-cpp.md#why-style) + + 1.1. [General Principles](styleguide-cpp.md#general-principles) + + 1.2 [File Formatting](styleguide-cpp.md#file-formatting) + + 2. [Conventions](styleguide-cpp.md#conventions) + + 2.1. [Naming Conventions](styleguide-cpp.md#-naming-conventions) + +## 1. Why Style? +You may be wondering ”Why do we need a style guide?” ”Are you trying to give me homework?” +### 1.1. General Principles + + - Prefer clarity over brevity + - Don’t optimize prematurely + - Avoid C-style casts + +### 1.2. File Formatting +Source code files should adhere to the following: + + - Encoded in UTF-8 + - Use tabs for indentation + - Use LF for end-of-line sequences + - Not have any trailing whitespace (Lines which end in spaces or tabs + - Any #include directives should be at the top of the file + +## 2. Conventions +### 2.1 Naming Conventions +| Item | Writing Convention | Example | +|--|--|--| +| Class and Struct Names | Pascal Case | MyCoolExample | +| Variables and Function Names | Camel Case | myCoolExample | +| Constants, Enum Values and Preprocessor | Macro Case | MY_COOL_EXAMPLE | +| Type aliases | Snake Case | my_cool_example_t | + +```c++ +# pragma once +# include < stdio .h> +# include < iostream > +// A comment +constexpr size_t UNIQUE_RGB_COLOURS = 256 * 256 * 256; + +struct RGBColour { + unsigned char r ; + unsigned char g ; + unsigned char b ; +}; + +bool isColourGreyscale ( RGBColour c ); + +class Something { + +}; +```
\ No newline at end of file diff --git a/docs/styleguide-cpp.pdf b/docs/styleguide-cpp.pdf Binary files differnew file mode 100644 index 0000000..bc58daf --- /dev/null +++ b/docs/styleguide-cpp.pdf |