|
halcheck 1.0
|
Iterator utilities and adaptors. More...
Classes | |
| class | halcheck::lib::filter_iterator< I, F > |
| An iterator adaptor that skips elements that do not satisfy user-defined predicate. More... | |
| class | halcheck::lib::index_iterator< R > |
| An iterator into a random-access range that is invalidated if and only if the index of the pointed-to element changes. More... | |
| class | halcheck::lib::iterator_interface< Self > |
| A utility class for easily defining new iterators. More... | |
| class | halcheck::lib::view_interface< Self > |
| An implementation of std::ranges::view_interface. More... | |
| struct | halcheck::lib::iota_diff< I, typename > |
| Computes a type large enough to contain the difference between two instances of an iterator. More... | |
| class | halcheck::lib::iota_iterator< T > |
| An iterator pointing to an integral value. More... | |
| struct | halcheck::lib::enable_borrowed_range< R > |
| An implementation of std::ranges::enable_borrowed_range. More... | |
| struct | halcheck::lib::is_range< T > |
| Determines whether the given type is a range. More... | |
| struct | halcheck::lib::is_input_range< T > |
| Determines whether a type is a range whose iterators satisfy lib::is_input_iterator. More... | |
| struct | halcheck::lib::is_forward_range< T > |
| Determines whether a type is a range whose iterators satisfy lib::is_forward_iterator. More... | |
| struct | halcheck::lib::is_bidirectional_range< T > |
| Determines whether a type is a range whose iterators satisfy lib::is_bidirectional_iterator. More... | |
| struct | halcheck::lib::is_random_access_range< T > |
| Determines whether a type is a range whose iterators satisfy lib::is_random_access_iterator. More... | |
| struct | halcheck::lib::disable_sized_range< T > |
| Indicates whether lib::size should be disabled for a type. More... | |
| struct | halcheck::lib::is_sized_range< R > |
| Determines whether a range type supports the lib::size operation. More... | |
| struct | halcheck::lib::is_insertable_range< R > |
| Determines whether a range is insertable. More... | |
| class | halcheck::lib::subrange< I > |
| Describes a range formed from a pair of iterators. More... | |
| class | halcheck::lib::transform_iterator< I, F > |
| A transforming iterator adaptor. More... | |
| class | halcheck::lib::transform_view< V, F > |
| A transforming iterator adaptor. More... | |
| struct | halcheck::lib::is_iterator< I > |
| Determines whether a type satisfies the LegacyIterator concept. More... | |
| struct | halcheck::lib::is_input_iterator< I > |
| Determines whether a type satisfies the LegacyInputIterator concept. More... | |
| struct | halcheck::lib::is_output_iterator< I, T > |
| Determines whether a type satisfies the LegacyOutputIterator concept. More... | |
| struct | halcheck::lib::is_forward_iterator< I > |
| Determines whether a type satisfies the LegacyForwardIterator concept. More... | |
| struct | halcheck::lib::is_bidirectional_iterator< I > |
| Determines whether a type satisfies the LegacyBidirectionalIterator concept. More... | |
| struct | halcheck::lib::is_random_access_iterator< I > |
| Determines whether a type satisfies the LegacyRandomAccessIterator concept. More... | |
Typedefs | |
| template<typename I > | |
| using | halcheck::lib::iter_value_t = typename std::iterator_traits<I>::value_type |
| The type of value pointed to by an iterator. | |
| template<typename I > | |
| using | halcheck::lib::iter_reference_t = typename std::iterator_traits<I>::reference |
The return type of operator* for an iterator. | |
| template<typename I > | |
| using | halcheck::lib::iter_difference_t = typename std::iterator_traits<I>::difference_type |
The return type of operator- for an iterator. | |
| template<typename I > | |
| using | halcheck::lib::iter_category_t = typename std::iterator_traits<I>::iterator_category |
| A tag type indicating the level of supported iterator options a type provides. | |
| template<typename I > | |
| using | halcheck::lib::iota_diff_t = typename iota_diff<I>::type |
| Computes a type large enough to contain the difference between two instances of an iterator. | |
| template<typename T > | |
| using | halcheck::lib::iterator_t = decltype(lib::begin(std::declval<T &>())) |
| Obtains the iterator type of a range type. | |
| template<typename R > | |
| using | halcheck::lib::range_size_t = decltype(lib::size(std::declval<R &>())) |
| The type of value returned by lib::size. | |
| template<typename R > | |
| using | halcheck::lib::range_difference_t = lib::iter_difference_t<lib::iterator_t<R>> |
The type of value returned by operator- for a range type's iterators. | |
| template<typename R > | |
| using | halcheck::lib::range_value_t = lib::iter_value_t<lib::iterator_t<R>> |
| The type of element contained in a range. | |
| template<typename R > | |
| using | halcheck::lib::range_reference_t = lib::iter_reference_t<lib::iterator_t<R>> |
The type returned by operator* for a range type's iterators. | |
Functions | |
| template<typename I > | |
| lib::subrange< I > | halcheck::lib::make_subrange (I first, I last) |
| Constructs a subrange from a pair of iterators. | |
Variables | ||
| struct { | ||
| } | halcheck::lib::make_filter_iterator | |
| Constructs a filter_iterator. | ||
| struct { | ||
| } | halcheck::lib::make_index_iterator | |
| Constructs an index_iterator. | ||
| struct { | ||
| } | halcheck::lib::make_iota_iterator | |
| Constructs an iota_iterator. | ||
| struct { | ||
| } | halcheck::lib::begin | |
| Gets an iterator to the first element of a range. | ||
| struct { | ||
| } | halcheck::lib::end | |
| Gets an iterator to past the end of a range. | ||
| struct { | ||
| } | halcheck::lib::size | |
| Obtains the size of a range. | ||
| struct { | ||
| } | halcheck::lib::empty | |
| Determines if a range is empty. | ||
| struct { | ||
| } | halcheck::lib::make_transform_iterator | |
| Constructs a transform_iterator. | ||
| struct { | ||
| } | halcheck::lib::transform | |
| Constructs a transform_view. | ||
Iterator utilities and adaptors.