-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathHACKING
101 lines (75 loc) · 2.26 KB
/
HACKING
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
This file has been copied from the kicker HACKING file from Aaron Seigo and modified a bit.
While you may notice that there are many discrepencies between
the code and this document, all new development should
follow the coding style as described below and one day the codebase will
actually be consistent!
Naming Conventions
------------------
Class names start with a capital letter, member variables begin with m_.
Methods and functions start with a lower case letter.
Indenting
---------
Tabstop is 4 spaces. No tabs, only spaces.
Try to keep lines under 80 characters in width. When wrapping a single
logical line of code across multiple lines, new lines should be indented
at least once and should preferably line up with parentheses, if any, on
the line above. e.g.:
someMethod(parameterOne, parameterTwo,
parameterThree, parameterFour);
If a boolean expression is spread out over several lines, the boolean
operator is always the last item on the line, e.g.:
if ((condition1 || condition2) &&
condition3 &&
(condition4 || condition5))
{
Switch statements should have the case line indented and the case block
itsel further indented, e.g.:
switch (condition)
{
case 1:
...
break;
case 2:
...
break;
default:
...;
}
Spaces
------
A single space should appear between keywords and parentheses, eg:
if (
while (
for (
No spaces appear between function/method names and parentheses:
function(
someObject->method(
No spaces appear between opening closing parens and the arguments:
for (int i = 0; i < count; ++i)
Spaces appear between operators, e.g.:
int i = i + 3;
someObject.setValue(someObject.currentValue() + 1)
Braces
------
Braces always appear on a line by themself, indented to align with the
above keyword:
if (foo)
{
...
}
else
{
...
}
Always use braces if the conditional expression wraps across multiple
physical lines.
Braces around case blocks in switch statements are optional.
Constructors
------------
Constructors are written as:
MyClass::MyClass(...)
: SuperClass(...),
m_member1(...),
m_member2(...),
...
{