https://gcc.gnu.org/g:fb1f1c763055abea556959b42a2f1d5e548c1452
commit r15-6370-gfb1f1c763055abea556959b42a2f1d5e548c1452 Author: Patrick Palka <ppa...@redhat.com> Date: Thu Dec 19 11:31:06 2024 -0500 libstdc++: Define P1206R7 range-key-type and range-mapped-type aliases libstdc++-v3/ChangeLog: * include/bits/ranges_base.h (__detail::__range_key_type): Define as per P1206R7. (__detail::__range_mapped_type): Likewise. Reviewed-by: Jonathan Wakely <jwak...@redhat.com> Diff: --- libstdc++-v3/include/bits/ranges_base.h | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/libstdc++-v3/include/bits/ranges_base.h b/libstdc++-v3/include/bits/ranges_base.h index a2c743ff56bc..c8cd4e87b12c 100644 --- a/libstdc++-v3/include/bits/ranges_base.h +++ b/libstdc++-v3/include/bits/ranges_base.h @@ -1087,6 +1087,14 @@ namespace __detail concept __container_compatible_range = ranges::input_range<_Rg> && convertible_to<ranges::range_reference_t<_Rg>, _Tp>; + + template<ranges::input_range _Range> + using __range_key_type + = remove_const_t<typename ranges::range_value_t<_Range>::first_type>; + + template<ranges::input_range _Range> + using __range_mapped_type + = typename ranges::range_value_t<_Range>::second_type; } /// @endcond #endif