libstdc++/ranges: Use perfect forwarding in _Pipe and _Partial ctors
commitc48bedd180672276cc58f379a6346309366b7ea7
authorPatrick Palka <ppalka@redhat.com>
Sat, 13 Jan 2024 03:54:59 +0000 (12 22:54 -0500)
committerPatrick Palka <ppalka@redhat.com>
Sat, 13 Jan 2024 03:54:59 +0000 (12 22:54 -0500)
tree4a64d2822ffd45b461d3a89fcfe8cb8afc2c40e2
parent444a31f3b3542ccbecb67cef3a01df8aa9a43802
libstdc++/ranges: Use perfect forwarding in _Pipe and _Partial ctors

This avoids redundant moves when composing and partially applying range
adaptor objects.

libstdc++-v3/ChangeLog:

* include/std/ranges (views::__adaptor::operator|): Perform
perfect forwarding of arguments.
(views::__adaptor::_RangeAdaptor::operator()): Pass dummy
first argument to _Partial.
(views::__adaptor::_Partial::_Partial): Likewise.  Add dummy
first parameter.
(views::__adaptor::_Pipe::_Pipe): Perform perfect forwarding
of arguments.
(to): Pass dummy first argument to _Partial.
libstdc++-v3/include/std/ranges