[libcamera-devel] [PATCH 4/4] Documentation: coding-style: Discourage move on shared_ptr<>
Niklas Söderlund
niklas.soderlund at ragnatech.se
Wed Feb 13 12:02:46 CET 2019
Hi Jacopo,
Thanks for your work.
On 2019-02-12 23:20:21 +0100, Jacopo Mondi wrote:
> 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 at ideasonboard.com>
> Signed-off-by: Jacopo Mondi <jacopo at jmondi.org>
Reviewed-by: Niklas Söderlund <niklas.soderlund at ragnatech.se>
> ---
> Documentation/coding-style.rst | 4 ++++
> 1 file changed, 4 insertions(+)
>
> diff --git a/Documentation/coding-style.rst b/Documentation/coding-style.rst
> index 51afef27e9c1..065fbe0ab07b 100644
> --- a/Documentation/coding-style.rst
> +++ b/Documentation/coding-style.rst
> @@ -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.
> --
> 2.20.1
>
> _______________________________________________
> libcamera-devel mailing list
> libcamera-devel at lists.libcamera.org
> https://lists.libcamera.org/listinfo/libcamera-devel
--
Regards,
Niklas Söderlund
More information about the libcamera-devel
mailing list