Open 3D Engine AzCore API Reference 23.10.0
O3DE is an open-source, fully-featured, high-fidelity, modular 3D engine for building games and simulations, available to every industry.
AZStd::basic_const_iterator< I > Class Template Reference

Inherits enable_if_t< input_or_output_iterator< I >, Internal::basic_const_iterator_iter_category< I > >.

Public Types

using _is_primary_template = basic_const_iterator
 
using iterator_concept = conditional_t< contiguous_iterator< I >, contiguous_iterator_tag, conditional_t< random_access_iterator< I >, random_access_iterator_tag, conditional_t< bidirectional_iterator< I >, bidirectional_iterator_tag, conditional_t< forward_iterator< I >, forward_iterator_tag, input_iterator_tag > > > >
 
using value_type = iter_value_t< I >
 
using difference_type = iter_difference_t< I >
 
using reference = iter_const_reference_t< I >
 reference type and pointer type is need to use with algorithms that use pre c++20 iterator_traits
 
using pointer = const value_type *
 

Public Member Functions

constexpr basic_const_iterator (I i)
 
template<class I2 , class = enable_if_t<convertible_to<I2, I>>>
constexpr basic_const_iterator (basic_const_iterator< I2 > other)
 
template<class T , class = enable_if_t<Internal::different_from<T, basic_const_iterator> && convertible_to<T, I>>>
constexpr basic_const_iterator (T &&current)
 
constexpr const I & base () const &noexcept
 
constexpr I base () &&
 
constexpr reference operator* () const
 
template<bool Enable = is_lvalue_reference_v<iter_reference_t<I>> && same_as<remove_cvref_t<iter_reference_t<I>>, value_type>, class = enable_if_t<Enable>>
constexpr const value_type * operator-> () const
 
template<bool Enable = random_access_iterator<I>, class = enable_if_t<Enable>>
constexpr reference operator[] (difference_type n) const
 
constexpr basic_const_iteratoroperator++ ()
 
constexpr decltype(auto) operator++ (int)
 
template<bool Enable = bidirectional_iterator<I>, class = enable_if_t<Enable>>
constexpr basic_const_iteratoroperator-- ()
 
template<bool Enable = bidirectional_iterator<I>, class = enable_if_t<Enable>>
constexpr basic_const_iterator operator-- (int)
 
template<bool Enable = random_access_iterator<I>, class = enable_if_t<Enable>>
constexpr basic_const_iteratoroperator+= (iter_difference_t< I > n)
 
template<bool Enable = random_access_iterator<I>, class = enable_if_t<Enable>>
constexpr basic_const_iteratoroperator-= (iter_difference_t< I > n)
 

Friends

template<class S >
constexpr auto operator== (const basic_const_iterator &i, const S &s) -> enable_if_t< sentinel_for< S, I >, bool >
 
template<class S >
constexpr auto operator!= (const basic_const_iterator &i, const S &s) -> enable_if_t< sentinel_for< S, I >, bool >
 
template<class S >
constexpr auto operator== (const S &s, const basic_const_iterator &i) -> enable_if_t< sentinel_for< S, I > &&Internal::different_from< S, basic_const_iterator >, bool >
 
template<class S >
constexpr auto operator!= (const S &s, const basic_const_iterator &i) -> enable_if_t< sentinel_for< S, I > &&Internal::different_from< S, basic_const_iterator >, bool >
 
template<bool Enable = random_access_iterator<I>, class = enable_if_t<Enable>>
constexpr bool operator< (const basic_const_iterator &x, const basic_const_iterator &y)
 
template<bool Enable = random_access_iterator<I>, class = enable_if_t<Enable>>
constexpr bool operator> (const basic_const_iterator &x, const basic_const_iterator &y)
 
template<bool Enable = random_access_iterator<I>, class = enable_if_t<Enable>>
constexpr bool operator<= (const basic_const_iterator &x, const basic_const_iterator &y)
 
template<bool Enable = random_access_iterator<I>, class = enable_if_t<Enable>>
constexpr bool operator>= (const basic_const_iterator &x, const basic_const_iterator &y)
 
template<class I2 >
constexpr auto operator< (const basic_const_iterator &x, const I2 &y) -> enable_if_t< Internal::different_from< I2, basic_const_iterator > &&random_access_iterator< I > &&totally_ordered_with< I, I2 >, bool >
 
template<class I2 >
constexpr auto operator> (const basic_const_iterator &x, const I2 &y) -> enable_if_t< Internal::different_from< I2, basic_const_iterator > &&random_access_iterator< I > &&totally_ordered_with< I, I2 >, bool >
 
template<class I2 >
constexpr auto operator<= (const basic_const_iterator &x, const I2 &y) -> enable_if_t< Internal::different_from< I2, basic_const_iterator > &&random_access_iterator< I > &&totally_ordered_with< I, I2 >, bool >
 
template<class I2 >
constexpr auto operator>= (const basic_const_iterator &x, const I2 &y) -> enable_if_t< Internal::different_from< I2, basic_const_iterator > &&random_access_iterator< I > &&totally_ordered_with< I, I2 >, bool >
 
template<class I2 >
constexpr auto operator< (const I2 &x, const basic_const_iterator &y) -> enable_if_t< not_a_const_iterator< I2 > &&random_access_iterator< I > &&totally_ordered_with< I, I2 >, bool >
 
template<class I2 >
constexpr auto operator> (const I2 &x, const basic_const_iterator &y) -> enable_if_t< not_a_const_iterator< I2 > &&random_access_iterator< I > &&totally_ordered_with< I, I2 >, bool >
 
template<class I2 >
constexpr auto operator<= (const I2 &x, const basic_const_iterator &y) -> enable_if_t< not_a_const_iterator< I2 > &&random_access_iterator< I > &&totally_ordered_with< I, I2 >, bool >
 
template<class I2 >
constexpr auto operator>= (const I2 &x, const basic_const_iterator &y) -> enable_if_t< not_a_const_iterator< I2 > &&random_access_iterator< I > &&totally_ordered_with< I, I2 >, bool >
 
template<bool Enable = random_access_iterator<I>, class = enable_if_t<Enable>>
constexpr basic_const_iterator operator+ (const basic_const_iterator &i, iter_difference_t< I > n)
 
template<bool Enable = random_access_iterator<I>, class = enable_if_t<Enable>>
constexpr basic_const_iterator operator+ (iter_difference_t< I > n, const basic_const_iterator &i)
 
template<bool Enable = random_access_iterator<I>, class = enable_if_t<Enable>>
constexpr basic_const_iterator operator- (const basic_const_iterator &i, iter_difference_t< I > n)
 
template<class S >
constexpr auto operator- (const basic_const_iterator &i, const S &s) -> enable_if_t< sized_sentinel_for< S, I >, difference_type >
 
template<class S >
constexpr auto operator- (const S &s, const basic_const_iterator &i) -> enable_if_t< sized_sentinel_for< S, I > &&Internal::different_from< S, basic_const_iterator >, difference_type >
 

Detailed Description

template<class I>
class AZStd::basic_const_iterator< I >

basic_const_iterator is an iterator adapter that behaves the same as the underlying iterator type except its indirection operator converts the value returned by the underlying iterators' indirection operator to a type such that this iterator is a constant_iterator


The documentation for this class was generated from the following file: