mirror of
https://github.com/isocpp/CppCoreGuidelines.git
synced 2025-12-18 21:24:41 +03:00
layout tag
This commit is contained in:
@@ -1,3 +1,7 @@
|
|||||||
|
---
|
||||||
|
layout: default
|
||||||
|
---
|
||||||
|
|
||||||
# <a name="main"></a>C++ Core Guidelines
|
# <a name="main"></a>C++ Core Guidelines
|
||||||
|
|
||||||
November 27, 2017
|
November 27, 2017
|
||||||
@@ -5142,7 +5146,7 @@ A class with members that all have default constructors implicitly gets a defaul
|
|||||||
vector<int> v;
|
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:
|
Beware that built-in types are not properly default constructed:
|
||||||
|
|
||||||
@@ -7586,7 +7590,7 @@ Subscripting the resulting base pointer will lead to invalid object access and p
|
|||||||
|
|
||||||
void use(B*);
|
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*
|
B* p = a; // bad: a decays to &a[0] which is converted to a B*
|
||||||
p[1].x = 7; // overwrite D[0].y
|
p[1].x = 7; // overwrite D[0].y
|
||||||
|
|
||||||
@@ -11645,7 +11649,7 @@ In the rare cases where the slicing was deliberate the code can be surprising.
|
|||||||
class Shape { /* ... */ };
|
class Shape { /* ... */ };
|
||||||
class Circle : public Shape { /* ... */ Point c; int r; };
|
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
|
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`.
|
The result will be meaningless because the center and radius will not be copied from `c` into `s`.
|
||||||
@@ -14623,7 +14627,7 @@ To make error handling systematic, robust, and non-repetitive.
|
|||||||
|
|
||||||
void use()
|
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!"};
|
||||||
// ...
|
// ...
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user