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
Copy file name to clipboardexpand all lines: 03-Style.md
+6-6
Original file line number
Diff line number
Diff line change
@@ -139,8 +139,8 @@ Header files must contain a distinctly-named include guard to avoid problems wit
139
139
#define MYPROJECT_MYCLASS_HPP
140
140
141
141
namespace MyProject {
142
-
class MyClass {
143
-
};
142
+
class MyClass {
143
+
};
144
144
}
145
145
146
146
#endif
@@ -274,7 +274,7 @@ There is almost never a reason to declare an identifier in the global namespaces
274
274
275
275
## Use the Correct Integer Type For stdlib Features
276
276
277
-
The standard library generally returns `size_t` for anything related to size. What exactly `size_t` is is implementation defined.
277
+
The standard library generally returns `size_t` for anything related to size. What exactly `size_t` is, is implementation defined.
278
278
279
279
In general, using `auto` will avoid most of these issues, but not all.
280
280
@@ -312,10 +312,10 @@ However, you can easily create unreadable expressions using too much or wrong op
312
312
313
313
More detailed, you should keep these things in mind:
314
314
315
-
* Overloading `operator=` when handling with resources is a must, see "Consider the Rule of Zero" below.
315
+
* Overloading `operator=` when handling with resources is a must, see [Consider the Rule of Zero](03-Style.md#consider-the-rule-of-zero) below.
316
316
* For all other operators, only overload them when they are used in a context that is commonly connected to these operators. Typical scenarios are concatenating things with +, negating expressions that can be considered "true" or "false", etc.
317
317
* Always be aware of the [operator precedence](http://en.cppreference.com/w/cpp/language/operator_precedence) and try to circumvent unintuitive constructs.
318
-
* Do not overload exotic operators such as ~ or %.
318
+
* Do not overload exotic operators such as ~ or %.
319
319
* [Never](http://stackoverflow.com/questions/5602112/when-to-overload-the-comma-operator?answertab=votes#tab-top) overload `operator ,` (the comma operator).
320
320
* Use `operator >>` and `operator <<` when dealing with streams. For example, you can overload `operator <<(std::ostream &, MyClass const &)` to enable "writing" you class into a stream, such as std::cout or an std::fstream or std::stringstream. The latter is often used to create a textual representation of a value.
321
321
* There are more common operators to overload [described here](http://stackoverflow.com/questions/4421706/operator-overloading?answertab=votes#tab-top)
@@ -332,7 +332,7 @@ Instead mark single parameter constructors as `explicit`, which requires them to
332
332
333
333
### Conversion Operators
334
334
335
-
Similarly to single parameter constructors, conversion operators can be called by the compiler and introduce unexpected overhead. The should also be marked as `explicit`.
335
+
Similarly to single parameter constructors, conversion operators can be called by the compiler and introduce unexpected overhead. They should also be marked as `explicit`.
Copy file name to clipboardexpand all lines: 04-Considering_Safety.md
+4-5
Original file line number
Diff line number
Diff line change
@@ -21,7 +21,7 @@ public:
21
21
22
22
private:
23
23
std::string m_value;
24
-
}
24
+
};
25
25
26
26
27
27
// Good Idea
@@ -40,7 +40,7 @@ public:
40
40
41
41
private:
42
42
std::string m_value;
43
-
}
43
+
};
44
44
```
45
45
46
46
### Consider Return By Value for Mutable Data, `const &` for Immutable
@@ -68,7 +68,6 @@ auto mybuffer = std::make_unique<char[]>(length); // C++14
68
68
auto mybuffer = std::unique_ptr<char[]>(new char[length]); // C++11
69
69
70
70
// or for reference counted objects
71
-
72
71
auto myobj = std::make_shared<MyClass>();
73
72
74
73
// ...
@@ -88,7 +87,7 @@ Exceptions cannot be ignored. Return values, such as using `boost::optional`, ca
88
87
Stroustrup, the original designer of C++, [makes this point](http://www.stroustrup.com/bs_faq2.html#exceptions-why) much better than I ever could.
89
88
90
89
## Use C++-style cast instead of C-style cast
91
-
Use the C++-style cast(static\_cast<>, dynamic\_cast<> ...) instead of the C-style cast. The C++-style cast allows more compiler checks and is considerable safer.
90
+
Use the C++-style cast(static\_cast<>, dynamic\_cast<> ...) instead of the C-style cast. The C++-style cast allows more compiler checks and is considerable safer.
92
91
93
92
```cpp
94
93
// Bad Idea
@@ -98,7 +97,7 @@ int i = (int) x;
98
97
// Good Idea
99
98
int i = static_cast<int>(x);
100
99
```
101
-
Additionaly the C++ cast style is more visible and has the possiblity to search for.
100
+
Additionally the C++ cast style is more visible and has the possibility to search for.
0 commit comments