mirror of
https://github.com/isocpp/CppCoreGuidelines.git
synced 2025-12-17 12:44:42 +03:00
Update example in F20 (#1839)
Rewrite copy vs move example to actually involve copy/move as opposite to be copy elided
This commit is contained in:
@@ -3078,12 +3078,13 @@ Such older advice is now obsolete; it does not add value, and it interferes with
|
|||||||
|
|
||||||
const vector<int> fct(); // bad: that "const" is more trouble than it is worth
|
const vector<int> fct(); // bad: that "const" is more trouble than it is worth
|
||||||
|
|
||||||
vector<int> g(const vector<int>& vx)
|
void g(vector<int>& vx)
|
||||||
{
|
{
|
||||||
// ...
|
// ...
|
||||||
fct() = vx; // prevented by the "const"
|
fct() = vx; // prevented by the "const"
|
||||||
// ...
|
// ...
|
||||||
return fct(); // expensive copy: move semantics suppressed by the "const"
|
vx = fct(); // expensive copy: move semantics suppressed by the "const"
|
||||||
|
// ...
|
||||||
}
|
}
|
||||||
|
|
||||||
The argument for adding `const` to a return value is that it prevents (very rare) accidental access to a temporary.
|
The argument for adding `const` to a return value is that it prevents (very rare) accidental access to a temporary.
|
||||||
|
|||||||
Reference in New Issue
Block a user