Documentation: coding-style: Discourage move on shared_ptr<>
Using std::move() on return statement of a method or on the its returned value prevents the compiler from implementing copy-elision. Discourage that in the coding style document. Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com> Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com> Signed-off-by: Jacopo Mondi <jacopo@jmondi.org>
This commit is contained in:
parent
ddcd8ebb3d
commit
fbc67a54f3
1 changed files with 4 additions and 0 deletions
|
@ -151,6 +151,10 @@ reference for the duration of the operation that borrows it.
|
|||
never by reference. The caller can decide whether to transfer its ownership
|
||||
of the std::shared_ptr<> with std::move() or retain it. The callee shall
|
||||
use std::move() if it needs to store the shared pointer.
|
||||
* Do not over-use std::move(), as it may prevent copy-elision. In particular
|
||||
a function returning a std::shared_ptr<> value shall not use std::move() in
|
||||
its return statements, and its callers shall not wrap the function call
|
||||
with std::move().
|
||||
* Borrowed references to shared objects are passed as references to the
|
||||
objects themselves, not to the std::shared_ptr<>, with the same rules as
|
||||
for single owner objects.
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue