mirror of
https://github.com/isocpp/CppCoreGuidelines.git
synced 2025-12-17 04:44:34 +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
|
||||
|
||||
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.
|
||||
|
||||
Reference in New Issue
Block a user