-
Notifications
You must be signed in to change notification settings - Fork 14.6k
Closed
Task
Copy link
Labels
c++23libc++libc++ C++ Standard Library. Not GNU libstdc++. Not libc++abi.libc++ C++ Standard Library. Not GNU libstdc++. Not libc++abi.
Description
Link: https://wg21.link/P2165R4
The following alias templates needs to be defined differently since C++23.
llvm-project/libcxx/include/__iterator/iterator_traits.h
Lines 469 to 479 in b46f16c
template <class _InputIterator> | |
using __iter_key_type _LIBCPP_NODEBUG = | |
__remove_const_t<typename iterator_traits<_InputIterator>::value_type::first_type>; | |
template <class _InputIterator> | |
using __iter_mapped_type _LIBCPP_NODEBUG = typename iterator_traits<_InputIterator>::value_type::second_type; | |
template <class _InputIterator> | |
using __iter_to_alloc_type _LIBCPP_NODEBUG = | |
pair<const typename iterator_traits<_InputIterator>::value_type::first_type, | |
typename iterator_traits<_InputIterator>::value_type::second_type>; |
After changing this alias templates, it should be tested that class template argument deduction (for map
, multimap
, unordered_map
, unordered_multimap
, flat_map
, and flat_multimap
) actually works with tuple-like types.
Metadata
Metadata
Assignees
Labels
c++23libc++libc++ C++ Standard Library. Not GNU libstdc++. Not libc++abi.libc++ C++ Standard Library. Not GNU libstdc++. Not libc++abi.