Merge branch 'gh-pages' of https://github.com/isocpp/CppCoreGuidelines into gh-pages

This commit is contained in:
Andrew Pardoe
2017-11-27 11:59:34 -08:00

View File

@@ -5142,7 +5142,7 @@ A class with members that all have default constructors implicitly gets a defaul
vector<int> v;
};
X x; // means X{{ "{{" }}}, {}}; that is the empty string and the empty vector
X x; // means X{{}, {}}; that is the empty string and the empty vector
Beware that built-in types are not properly default constructed:
@@ -7586,7 +7586,7 @@ Subscripting the resulting base pointer will lead to invalid object access and p
void use(B*);
D a[] = {{ "{{" }}1, 2}, {3, 4}, {5, 6}};
D a[] = {{1, 2}, {3, 4}, {5, 6}};
B* p = a; // bad: a decays to &a[0] which is converted to a B*
p[1].x = 7; // overwrite D[0].y
@@ -11645,7 +11645,7 @@ In the rare cases where the slicing was deliberate the code can be surprising.
class Shape { /* ... */ };
class Circle : public Shape { /* ... */ Point c; int r; };
Circle c {{ "{{" }}0, 0}, 42};
Circle c {{0, 0}, 42};
Shape s {c}; // copy Shape part of Circle
The result will be meaningless because the center and radius will not be copied from `c` into `s`.
@@ -14623,7 +14623,7 @@ To make error handling systematic, robust, and non-repetitive.
void use()
{
Foo bar {{ "{{" }}Thing{1}, Thing{2}, Thing{monkey}}, {"my_file", "r"}, "Here we go!"};
Foo bar {{Thing{1}, Thing{2}, Thing{monkey}}, {"my_file", "r"}, "Here we go!"};
// ...
}