5#if YACLIB_CXX_STANDARD < 20 || \
6 (defined(__clang__) && __clang_major__ <= 12)
16 using value_type =
typename std::iterator_traits<It>::value_type;
18 using pointer =
typename std::iterator_traits<It>::pointer;
19 using reference =
typename std::iterator_traits<It>::reference;
32 return _it.operator->();
48 return _it ==
rhs._it;
52 return !(*
this ==
rhs);
90inline constexpr default_sentinel_t default_sentinel{};
100using std::default_sentinel_t;
102inline constexpr default_sentinel_t default_sentinel{};
104using std::counted_iterator;
typename std::iterator_traits< It >::difference_type difference_type
typename std::iterator_traits< It >::pointer pointer
typename std::iterator_traits< It >::iterator_category iterator_category
pointer operator->() const
friend bool operator==(DefaultSentinel lhs, const counted_iterator< It > &rhs)
counted_iterator(It it, difference_type n)
friend bool operator!=(const counted_iterator< It > &lhs, DefaultSentinel rhs)
friend difference_type operator-(DefaultSentinel lhs, const counted_iterator< It > rhs)
bool operator==(const counted_iterator &rhs) const
friend bool operator==(const counted_iterator< It > &lhs, DefaultSentinel rhs)
typename std::iterator_traits< It >::reference reference
bool operator!=(const counted_iterator &rhs) const
friend bool operator!=(DefaultSentinel lhs, const counted_iterator< It > &rhs)
counted_iterator operator++(int)
counted_iterator & operator++()
typename std::iterator_traits< It >::value_type value_type
friend difference_type operator-(const counted_iterator< It > lhs, DefaultSentinel rhs)
reference operator*() const
Contract< V, T > MakeContract()
Creates related future and promise.