-
Notifications
You must be signed in to change notification settings - Fork 15.1k
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.