This makes some range adaptors model the borrowed_range concept if they are adapting a borrowed range. This hasn't been added to the C++23 working paper yet, but it has been approved by LWG, and the recommendation is to treat it as a defect report for C++20 as well. libstdc++-v3/ChangeLog: * include/std/ranges (enable_borrowed_view>) (enable_borrowed_view>) (enable_borrowed_view>) (enable_borrowed_view>) (enable_borrowed_view>) (enable_borrowed_view>): Add partial specializations as per P2017R1. * testsuite/std/ranges/adaptors/conditionally_borrowed.cc: New test. Tested powerpc64le-linux. Committed to trunk.