Lines Matching defs:iterator_traits
67 struct _LIBCPP_TEMPLATE_VIS iterator_traits;
80 using type = _If< __is_primary_template<iterator_traits<_Iter> >::value, _Iter, iterator_traits<_Iter> >;
96 __enable_if_t<__is_primary_template<iterator_traits<_Iter> >::value, random_access_iterator_tag>;
327 // Otherwise, `iterator_traits<I>` has no members by any of the above names.
356 // `iterator_traits<I>` has the following publicly accessible members:
367 struct iterator_traits : __iterator_traits<_Ip> {
368 using __primary_template _LIBCPP_NODEBUG = iterator_traits;
394 // iterator_traits<Iterator> will only have the nested types if Iterator::iterator_category
395 // exists. Else iterator_traits<Iterator> will be an empty class. This is a
400 struct _LIBCPP_TEMPLATE_VIS iterator_traits : __iterator_traits<_Iter, __has_iterator_typedefs<_Iter>::value> {
401 using __primary_template _LIBCPP_NODEBUG = iterator_traits;
409 struct _LIBCPP_TEMPLATE_VIS iterator_traits<_Tp*> {
420 template <class _Tp, class _Up, bool = __has_iterator_category<iterator_traits<_Tp> >::value>
421 struct __has_iterator_category_convertible_to : is_convertible<typename iterator_traits<_Tp>::iterator_category, _Up> {
491 using __iter_value_type _LIBCPP_NODEBUG = typename iterator_traits<_InputIterator>::value_type;
495 __remove_const_t<typename iterator_traits<_InputIterator>::value_type::first_type>;
498 using __iter_mapped_type _LIBCPP_NODEBUG = typename iterator_traits<_InputIterator>::value_type::second_type;
502 pair<const typename iterator_traits<_InputIterator>::value_type::first_type,
503 typename iterator_traits<_InputIterator>::value_type::second_type>;
506 using __iterator_category_type _LIBCPP_NODEBUG = typename iterator_traits<_Iter>::iterator_category;
509 using __iterator_pointer_type _LIBCPP_NODEBUG = typename iterator_traits<_Iter>::pointer;
512 using __iter_diff_t _LIBCPP_NODEBUG = typename iterator_traits<_Iter>::difference_type;
515 using __iter_reference _LIBCPP_NODEBUG = typename iterator_traits<_Iter>::reference;
522 // `indirectly_readable_traits<RI>::value_type` if `iterator_traits<RI>` names a specialization
523 // generated from the primary template, and `iterator_traits<RI>::value_type` otherwise.
527 typename conditional_t<__is_primary_template<iterator_traits<remove_cvref_t<_Ip> > >::value,
529 iterator_traits<remove_cvref_t<_Ip> > >::value_type;