https://gcc.gnu.org/bugzilla/show_bug.cgi?id=111550

            Bug ID: 111550
           Summary: The range adaptor closure object generated by
                    adaptor(args...) is not a perfect forwarding call
                    wrapper
           Product: gcc
           Version: 14.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: libstdc++
          Assignee: unassigned at gcc dot gnu.org
          Reporter: hewillk at gmail dot com
  Target Milestone: ---

The call operator of _Partial only handles the const& and && qualifiers, which
is missing the & and const&& and causes the following code to be rejected.

#include <ranges>

struct Five {
  operator int() &;
  operator int() && = delete;
};

int main() {
  auto take_five = std::views::take(Five{});
  auto r = take_five(std::views::iota(0));
}

https://godbolt.org/z/b19fsGceG

Reply via email to