3#ifndef TETL_ITERATOR_ITERATOR_TRAITS_HPP
4#define TETL_ITERATOR_ITERATOR_TRAITS_HPP
14template <
typename Iter,
typename = etl::
void_t<>>
15struct iterator_traits_impl { };
17template <
typename Iter>
18struct iterator_traits_impl<
21 typename Iter::iterator_category,
22 typename Iter::value_type,
23 typename Iter::difference_type,
24 typename Iter::pointer,
25 typename Iter::reference
28 using iterator_category =
typename Iter::iterator_category;
29 using value_type =
typename Iter::value_type;
30 using difference_type =
typename Iter::difference_type;
31 using pointer =
typename Iter::pointer;
32 using reference =
typename Iter::reference;
46template <
typename Iter>
void void_t
Definition void_t.hpp:10
Definition adjacent_find.hpp:8
remove_const_t< remove_volatile_t< T > > remove_cv_t
Definition remove_cv.hpp:22
TETL_BUILTIN_PTRDIFF ptrdiff_t
etl::ptrdiff_t is the signed integer type of the result of subtracting two pointers.
Definition ptrdiff_t.hpp:14
Defines the category of an iterator. Each tag is an empty type and corresponds to one of the five (un...
Definition tags.hpp:42
T & reference
Definition iterator_traits.hpp:56
contiguous_iterator_tag iterator_concept
Definition iterator_traits.hpp:51
remove_cv_t< T > value_type
Definition iterator_traits.hpp:53
random_access_iterator_tag iterator_category
Definition iterator_traits.hpp:52
T * pointer
Definition iterator_traits.hpp:55
ptrdiff_t difference_type
Definition iterator_traits.hpp:54
iterator_traits is the type trait class that provides uniform interface to the properties of LegacyIt...
Definition iterator_traits.hpp:47
Defines the category of an iterator. Each tag is an empty type and corresponds to one of the five (un...
Definition tags.hpp:36