57#define _EXT_ITERATOR 1
60#pragma GCC system_header
66namespace __gnu_cxx _GLIBCXX_VISIBILITY(default)
68_GLIBCXX_BEGIN_NAMESPACE_VERSION
75 template<
typename _InputIterator,
typename _Distance>
77 __distance(_InputIterator __first, _InputIterator __last,
81 __glibcxx_function_requires(_InputIteratorConcept<_InputIterator>)
82 while (__first != __last)
89 template<
typename _RandomAccessIterator,
typename _Distance>
91 __distance(_RandomAccessIterator __first, _RandomAccessIterator __last,
95 __glibcxx_function_requires(_RandomAccessIteratorConcept<
96 _RandomAccessIterator>)
97 __n += __last - __first;
105 template<typename _InputIterator, typename _Distance>
107 distance(_InputIterator __first, _InputIterator __last,
114_GLIBCXX_END_NAMESPACE_VERSION
void distance(_InputIterator __first, _InputIterator __last, _Distance &__n)
constexpr iterator_traits< _Iter >::iterator_category __iterator_category(const _Iter &)
GNU extensions for public use.
Random-access iterators support a superset of bidirectional iterator operations.