Re: [libgpiod] [PATCH] bindings: cxx: remove superfluous std::move

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



pt., 29 mar 2019 o 00:27 David Kozub <zub@xxxxxxxxxxxxxxxxxx> napisał(a):
>
> There is no need to use std::move on an r-value (e.g. std::move(gpiod::chip())).
> Similarly, there is no need to use std::move for returning a local variable
> as in:
>
> T foo()
> {
>     U local;
>     return std::move(local);
> }
>
> Not only it doesn't help, it actually inhibits named return value optimization.
>
> See e.g. https://isocpp.org/blog/2013/02/no-really-moving-a-return-value-is-easy-stackoverflow
>
> Signed-off-by: David Kozub <zub@xxxxxxxxxxxxxxxxxx>
> ---
>  bindings/cxx/chip.cpp      | 16 ++++++++--------
>  bindings/cxx/iter.cpp      |  8 ++++----
>  bindings/cxx/line.cpp      |  8 ++++----
>  bindings/cxx/line_bulk.cpp |  8 ++++----
>  4 files changed, 20 insertions(+), 20 deletions(-)
>
> diff --git a/bindings/cxx/chip.cpp b/bindings/cxx/chip.cpp
> index 9b825c7..54c85da 100644
> --- a/bindings/cxx/chip.cpp
> +++ b/bindings/cxx/chip.cpp
> @@ -90,14 +90,14 @@ void chip::reset(void) noexcept
>  {
>         this->throw_if_noref();
>
> -       return ::std::move(::std::string(::gpiod_chip_name(this->_m_chip.get())));
> +       return ::std::string(::gpiod_chip_name(this->_m_chip.get()));
>  }
>
>  ::std::string chip::label(void) const
>  {
>         this->throw_if_noref();
>
> -       return ::std::move(::std::string(::gpiod_chip_label(this->_m_chip.get())));
> +       return ::std::string(::gpiod_chip_label(this->_m_chip.get()));
>  }
>
>  unsigned int chip::num_lines(void) const
> @@ -119,7 +119,7 @@ line chip::get_line(unsigned int offset) const
>                 throw ::std::system_error(errno, ::std::system_category(),
>                                           "error getting GPIO line from chip");
>
> -       return ::std::move(line(line_handle, *this));
> +       return line(line_handle, *this);
>  }
>
>  line chip::find_line(const ::std::string& name) const
> @@ -131,7 +131,7 @@ line chip::find_line(const ::std::string& name) const
>                 throw ::std::system_error(errno, ::std::system_category(),
>                                           "error looking up GPIO line by name");
>
> -       return ::std::move(handle ? line(handle, *this) : line());
> +       return handle ? line(handle, *this) : line();
>  }
>
>  line_bulk chip::get_lines(const ::std::vector<unsigned int>& offsets) const
> @@ -141,7 +141,7 @@ line_bulk chip::get_lines(const ::std::vector<unsigned int>& offsets) const
>         for (auto& it: offsets)
>                 lines.append(this->get_line(it));
>
> -       return ::std::move(lines);
> +       return lines;
>  }
>
>  line_bulk chip::get_all_lines(void) const
> @@ -151,7 +151,7 @@ line_bulk chip::get_all_lines(void) const
>         for (unsigned int i = 0; i < this->num_lines(); i++)
>                 lines.append(this->get_line(i));
>
> -       return ::std::move(lines);
> +       return lines;
>  }
>
>  line_bulk chip::find_lines(const ::std::vector<::std::string>& names) const
> @@ -163,13 +163,13 @@ line_bulk chip::find_lines(const ::std::vector<::std::string>& names) const
>                 line = this->find_line(it);
>                 if (!line) {
>                         lines.clear();
> -                       return ::std::move(lines);
> +                       return lines;
>                 }
>
>                 lines.append(line);
>         }
>
> -       return ::std::move(lines);
> +       return lines;
>  }
>
>  bool chip::operator==(const chip& rhs) const noexcept
> diff --git a/bindings/cxx/iter.cpp b/bindings/cxx/iter.cpp
> index 8c0b9ba..b1acc8c 100644
> --- a/bindings/cxx/iter.cpp
> +++ b/bindings/cxx/iter.cpp
> @@ -43,7 +43,7 @@ chip_iter make_chip_iter(void)
>                 throw ::std::system_error(errno, ::std::system_category(),
>                                           "error creating GPIO chip iterator");
>
> -       return ::std::move(chip_iter(iter));
> +       return chip_iter(iter);
>  }
>
>  bool chip_iter::operator==(const chip_iter& rhs) const noexcept
> @@ -62,7 +62,7 @@ chip_iter::chip_iter(::gpiod_chip_iter *iter)
>         ::gpiod_chip* first = ::gpiod_chip_iter_next_noclose(this->_m_iter.get());
>
>         if (first != nullptr)
> -               this->_m_current = ::std::move(chip(first));
> +               this->_m_current = chip(first);
>  }
>
>  chip_iter& chip_iter::operator++(void)
> @@ -91,7 +91,7 @@ chip_iter begin(chip_iter iter) noexcept
>
>  chip_iter end(const chip_iter&) noexcept
>  {
> -       return ::std::move(chip_iter());
> +       return chip_iter();
>  }
>
>  line_iter begin(line_iter iter) noexcept
> @@ -101,7 +101,7 @@ line_iter begin(line_iter iter) noexcept
>
>  line_iter end(const line_iter&) noexcept
>  {
> -       return ::std::move(line_iter());
> +       return line_iter();
>  }
>
>  line_iter::line_iter(const chip& owner)
> diff --git a/bindings/cxx/line.cpp b/bindings/cxx/line.cpp
> index 470ed20..989976e 100644
> --- a/bindings/cxx/line.cpp
> +++ b/bindings/cxx/line.cpp
> @@ -37,7 +37,7 @@ unsigned int line::offset(void) const
>
>         const char* name = ::gpiod_line_name(this->_m_line);
>
> -       return ::std::move(name ? ::std::string(name) : ::std::string());
> +       return name ? ::std::string(name) : ::std::string();
>  }
>
>  ::std::string line::consumer(void) const
> @@ -46,7 +46,7 @@ unsigned int line::offset(void) const
>
>         const char* consumer = ::gpiod_line_consumer(this->_m_line);
>
> -       return ::std::move(consumer ? ::std::string(consumer) : ::std::string());
> +       return consumer ? ::std::string(consumer) : ::std::string();
>  }
>
>  int line::direction(void) const noexcept
> @@ -173,7 +173,7 @@ line_event line::event_read(void) const
>
>         event.source = *this;
>
> -       return ::std::move(event);
> +       return event;
>  }
>
>  int line::event_get_fd(void) const
> @@ -236,7 +236,7 @@ line find_line(const ::std::string& name)
>                         break;
>         }
>
> -       return ::std::move(ret);
> +       return ret;
>  }
>
>  } /* namespace gpiod */
> diff --git a/bindings/cxx/line_bulk.cpp b/bindings/cxx/line_bulk.cpp
> index 3006b65..8369930 100644
> --- a/bindings/cxx/line_bulk.cpp
> +++ b/bindings/cxx/line_bulk.cpp
> @@ -149,7 +149,7 @@ void line_bulk::release(void) const
>                 throw ::std::system_error(errno, ::std::system_category(),
>                                           "error reading GPIO line values");
>
> -       return ::std::move(values);
> +       return values;
>  }
>
>  void line_bulk::set_values(const ::std::vector<int>& values) const
> @@ -197,7 +197,7 @@ line_bulk line_bulk::event_wait(const ::std::chrono::nanoseconds& timeout) const
>                         ret.append(line(event_bulk.lines[i], this->_m_bulk[i].get_chip()));
>         }
>
> -       return ::std::move(ret);
> +       return ret;
>  }
>
>  line_bulk::operator bool(void) const noexcept
> @@ -245,12 +245,12 @@ bool line_bulk::iterator::operator!=(const iterator& rhs) const noexcept
>
>  line_bulk::iterator line_bulk::begin(void) noexcept
>  {
> -       return ::std::move(line_bulk::iterator(this->_m_bulk.begin()));
> +       return line_bulk::iterator(this->_m_bulk.begin());
>  }
>
>  line_bulk::iterator line_bulk::end(void) noexcept
>  {
> -       return ::std::move(line_bulk::iterator(this->_m_bulk.end()));
> +       return line_bulk::iterator(this->_m_bulk.end());
>  }
>
>  void line_bulk::throw_if_empty(void) const
> --
> 2.20.1
>

Thanks for those two, I'm not very good with C++ past C++11, so if you
see anything else, don't hesitate to let me know.

Both applied.

Bart




[Index of Archives]     [Linux SPI]     [Linux Kernel]     [Linux ARM (vger)]     [Linux ARM MSM]     [Linux Omap]     [Linux Arm]     [Linux Tegra]     [Fedora ARM]     [Linux for Samsung SOC]     [eCos]     [Linux Fastboot]     [Gcc Help]     [Git]     [DCCP]     [IETF Announce]     [Security]     [Linux MIPS]     [Yosemite Campsites]

  Powered by Linux