KDAB / KDAlgorithms

Algorithm wrappers
Other
82 stars 15 forks source link

gcc 13 warns about extra std::move() calls #54

Closed dfaure-kdab closed 1 year ago

dfaure-kdab commented 1 year ago
kdalgorithms-src/src/bits/find_if.h:135:43: warning: moving a temporary object prevents copy elision [-Wpessimizing-move]
  135 |     return detail::create_result<Iterator>(std::move(it), std::move(range.begin()),
      |            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  136 |                                            std::move(range.end()),
      |                                            ~~~~~~~~~~~~~~~~~~~~~~~
  137 |                                            std::is_lvalue_reference<Container>());
      |                                            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
kdalgorithms-src/src/bits/find_if.h:135:43: note: remove ‘std::move’ call
kdalgorithms-src/src/bits/find_if.h:135:43: warning: moving a temporary object prevents copy elision [-Wpessimizing-move]
kdalgorithms-src/src/bits/find_if.h:135:43: note: remove ‘std::move’ call

The code is quite standard I think:

            const auto &objects = aMethodThatReturnsAConstRefToAQList();
            auto object = kdalgorithms::find_if(objects, [product](object) { return object->product() == product; });