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:
Alexey Dmitriev
2021-10-16 06:17:41 +03:00
committed by GitHub
parent b35c837477
commit 34c4b9f525

View File

@@ -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
vector<int> g(const vector<int>& vx)
void g(vector<int>& vx)
{
// ...
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.