VCCC  2024.05
VisualCamp Common C++ library
basic_const_iterator< Iter > Class Template Reference

#include </home/jarvis/actions-runner/jarvis-vccc-2/_work/vccc/vccc/include/vccc/__iterator/basic_const_iterator.hpp>

+ Inheritance diagram for basic_const_iterator< Iter >:

Public Types

using iterator_concept = typename detail::basic_const_iterator_concept< Iter >::iterator_concept
 
using value_type = iter_value_t< Iter >
 
using difference_type = iter_difference_t< Iter >
 
using reference = iter_const_reference_t< Iter >
 

Public Member Functions

 basic_const_iterator ()=default
 
constexpr basic_const_iterator (Iter x)
 
template<typename U , std::enable_if_t< convertible_to< U, Iter >::value, int > = 0>
constexpr basic_const_iterator (basic_const_iterator< U > other)
 
template<typename T , std::enable_if_t< conjunction< different_from< T, basic_const_iterator >, convertible_to< T, Iter > >::value, int > = 0>
constexpr basic_const_iterator (T &&x)
 
constexpr const Iter & base () const &noexcept
 
constexpr Iter base () &&
 
constexpr reference operator* () const
 
template<typename I = Iter, std::enable_if_t< conjunction< std::is_lvalue_reference< iter_reference_t< I >>, same_as< remove_cvref_t< iter_reference_t< I >>, value_type > >::value, int > = 0>
constexpr const auto * operator-> () const
 
template<typename I = Iter, std::enable_if_t< random_access_iterator< I >::value, int > = 0>
constexpr iter_const_reference_t< I > operator[] (difference_type n) const
 
constexpr basic_const_iteratoroperator++ ()
 
template<typename I = Iter, std::enable_if_t< forward_iterator< I >::value==false, int > = 0>
constexpr void operator++ (int)
 
template<typename I = Iter, std::enable_if_t< forward_iterator< I >::value, int > = 0>
constexpr basic_const_iterator operator++ (int)
 
template<typename I = Iter, std::enable_if_t< bidirectional_iterator< I >::value, int > = 0>
constexpr basic_const_iteratoroperator-- ()
 
template<typename I = Iter, std::enable_if_t< bidirectional_iterator< I >::value, int > = 0>
constexpr basic_const_iterator operator-- (int)
 
template<typename I = Iter, std::enable_if_t< random_access_iterator< I >::value, int > = 0>
constexpr basic_const_iteratoroperator+= (difference_type n)
 
template<typename I = Iter, std::enable_if_t< random_access_iterator< I >::value, int > = 0>
constexpr basic_const_iteratoroperator-= (difference_type n)
 
template<typename Other , std::enable_if_t< detail::const_iterator_implicit_conversion_check< basic_const_iterator, Other, const Iter & >::value, int > = 0>
constexpr operator Other () const &noexcept(is_nothrow_convertible< const Iter &, Other >::value)
 
template<typename Other , std::enable_if_t< detail::const_iterator_implicit_conversion_check< basic_const_iterator, Other, Iter >::value, int > = 0>
constexpr operator Other () &&noexcept(is_nothrow_convertible< Iter, Other >::value)
 
template<typename I = Iter, std::enable_if_t< sentinel_for< I, I >::value, int > = 0>
constexpr bool operator== (const basic_const_iterator &other) const
 
template<typename I = Iter, std::enable_if_t< sentinel_for< I, I >::value, int > = 0>
constexpr bool operator!= (const basic_const_iterator &other) const
 
template<typename S , std::enable_if_t< conjunction< different_from< S, basic_const_iterator >, sentinel_for< S, Iter > >::value, int > = 0>
constexpr bool operator== (const S &s) const
 
template<typename S , std::enable_if_t< conjunction< different_from< S, basic_const_iterator >, sentinel_for< S, Iter > >::value, int > = 0>
constexpr bool operator!= (const S &s) const
 
template<typename I = Iter, std::enable_if_t< random_access_iterator< I >::value, int > = 0>
constexpr bool operator< (const basic_const_iterator &y) const
 
template<typename I = Iter, std::enable_if_t< random_access_iterator< I >::value, int > = 0>
constexpr bool operator> (const basic_const_iterator &y) const
 
template<typename I = Iter, std::enable_if_t< random_access_iterator< I >::value, int > = 0>
constexpr bool operator<= (const basic_const_iterator &y) const
 
template<typename I = Iter, std::enable_if_t< random_access_iterator< I >::value, int > = 0>
constexpr bool operator>= (const basic_const_iterator &y) const
 
template<typename I , std::enable_if_t< conjunction< different_from< I, basic_const_iterator >, random_access_iterator< Iter >, totally_ordered_with< Iter, I > >::value, int > = 0>
constexpr bool operator< (const I &y) const
 
template<typename I , std::enable_if_t< conjunction< different_from< I, basic_const_iterator >, random_access_iterator< Iter >, totally_ordered_with< Iter, I > >::value, int > = 0>
constexpr bool operator> (const I &y) const
 
template<typename I , std::enable_if_t< conjunction< different_from< I, basic_const_iterator >, random_access_iterator< Iter >, totally_ordered_with< Iter, I > >::value, int > = 0>
constexpr bool operator<= (const I &y) const
 
template<typename I , std::enable_if_t< conjunction< different_from< I, basic_const_iterator >, random_access_iterator< Iter >, totally_ordered_with< Iter, I > >::value, int > = 0>
constexpr bool operator>= (const I &y) const
 
template<typename I = Iter, std::enable_if_t< sized_sentinel_for< I, I >::value, int > = 0>
constexpr difference_type operator- (const basic_const_iterator &i) const
 
template<typename S , std::enable_if_t< conjunction< different_from< S, basic_const_iterator >, sized_sentinel_for< S, Iter > >::value, int > = 0>
constexpr difference_type operator- (const S &s) const
 

Friends

template<typename S , std::enable_if_t< conjunction< different_from< S, basic_const_iterator >, sentinel_for< S, Iter > >::value, int > = 0>
constexpr friend bool operator== (const S &s, const basic_const_iterator &i)
 
template<typename S , std::enable_if_t< conjunction< different_from< S, basic_const_iterator >, sentinel_for< S, Iter > >::value, int > = 0>
constexpr friend bool operator!= (const S &s, const basic_const_iterator &i)
 
template<typename I = Iter, std::enable_if_t< random_access_iterator< I >::value, int > = 0>
constexpr friend basic_const_iterator operator+ (const basic_const_iterator &i, difference_type n)
 
template<typename I = Iter, std::enable_if_t< random_access_iterator< I >::value, int > = 0>
constexpr friend basic_const_iterator operator+ (difference_type n, const basic_const_iterator &i)
 
template<typename I = Iter, std::enable_if_t< random_access_iterator< I >::value, int > = 0>
constexpr friend basic_const_iterator operator- (const basic_const_iterator &i, difference_type n)
 
template<typename S , std::enable_if_t< conjunction< negation< is_specialization< S, basic_const_iterator > >, sized_sentinel_for< S, Iter > >::value, int > = 0>
constexpr friend difference_type operator- (const S &s, const basic_const_iterator &i)
 
constexpr friend rvalue_reference iter_move (const basic_const_iterator &i) noexcept(noexcept(static_cast< rvalue_reference >(ranges::iter_move(i.base()))))
 

Member Typedef Documentation

◆ difference_type

◆ iterator_concept

using iterator_concept = typename detail::basic_const_iterator_concept<Iter>::iterator_concept

◆ reference

◆ value_type

using value_type = iter_value_t<Iter>

Constructor & Destructor Documentation

◆ basic_const_iterator() [1/4]

basic_const_iterator ( )
default

◆ basic_const_iterator() [2/4]

constexpr basic_const_iterator ( Iter  x)
inlineconstexpr

◆ basic_const_iterator() [3/4]

constexpr basic_const_iterator ( basic_const_iterator< U >  other)
inlineconstexpr

◆ basic_const_iterator() [4/4]

constexpr basic_const_iterator ( T &&  x)
inlineconstexpr

Member Function Documentation

◆ base() [1/2]

constexpr Iter base ( ) &&
inlineconstexpr

◆ base() [2/2]

constexpr const Iter& base ( ) const &
inlineconstexprnoexcept

◆ operator Other() [1/2]

constexpr operator Other ( ) &&
inlineconstexprnoexcept

◆ operator Other() [2/2]

constexpr operator Other ( ) const &
inlineconstexprnoexcept

◆ operator!=() [1/2]

constexpr bool operator!= ( const basic_const_iterator< Iter > &  other) const
inlineconstexpr

◆ operator!=() [2/2]

constexpr bool operator!= ( const S &  s) const
inlineconstexpr

◆ operator*()

constexpr reference operator* ( ) const
inlineconstexpr

◆ operator++() [1/3]

constexpr basic_const_iterator& operator++ ( )
inlineconstexpr

◆ operator++() [2/3]

constexpr void operator++ ( int  )
inlineconstexpr

◆ operator++() [3/3]

constexpr basic_const_iterator operator++ ( int  )
inlineconstexpr

◆ operator+=()

constexpr basic_const_iterator& operator+= ( difference_type  n)
inlineconstexpr

◆ operator-() [1/2]

constexpr difference_type operator- ( const basic_const_iterator< Iter > &  i) const
inlineconstexpr

◆ operator-() [2/2]

constexpr difference_type operator- ( const S &  s) const
inlineconstexpr

◆ operator--() [1/2]

constexpr basic_const_iterator& operator-- ( )
inlineconstexpr

◆ operator--() [2/2]

constexpr basic_const_iterator operator-- ( int  )
inlineconstexpr

◆ operator-=()

constexpr basic_const_iterator& operator-= ( difference_type  n)
inlineconstexpr

◆ operator->()

constexpr const auto* operator-> ( ) const
inlineconstexpr

◆ operator<() [1/2]

constexpr bool operator< ( const basic_const_iterator< Iter > &  y) const
inlineconstexpr

◆ operator<() [2/2]

constexpr bool operator< ( const I &  y) const
inlineconstexpr

◆ operator<=() [1/2]

constexpr bool operator<= ( const basic_const_iterator< Iter > &  y) const
inlineconstexpr

◆ operator<=() [2/2]

constexpr bool operator<= ( const I &  y) const
inlineconstexpr

◆ operator==() [1/2]

constexpr bool operator== ( const basic_const_iterator< Iter > &  other) const
inlineconstexpr

◆ operator==() [2/2]

constexpr bool operator== ( const S &  s) const
inlineconstexpr

◆ operator>() [1/2]

constexpr bool operator> ( const basic_const_iterator< Iter > &  y) const
inlineconstexpr

◆ operator>() [2/2]

constexpr bool operator> ( const I &  y) const
inlineconstexpr

◆ operator>=() [1/2]

constexpr bool operator>= ( const basic_const_iterator< Iter > &  y) const
inlineconstexpr

◆ operator>=() [2/2]

constexpr bool operator>= ( const I &  y) const
inlineconstexpr

◆ operator[]()

constexpr iter_const_reference_t<I> operator[] ( difference_type  n) const
inlineconstexpr

Friends And Related Function Documentation

◆ iter_move

constexpr friend rvalue_reference iter_move ( const basic_const_iterator< Iter > &  i)
friend

◆ operator!=

constexpr friend bool operator!= ( const S &  s,
const basic_const_iterator< Iter > &  i 
)
friend

◆ operator+ [1/2]

constexpr friend basic_const_iterator operator+ ( const basic_const_iterator< Iter > &  i,
difference_type  n 
)
friend

◆ operator+ [2/2]

constexpr friend basic_const_iterator operator+ ( difference_type  n,
const basic_const_iterator< Iter > &  i 
)
friend

◆ operator- [1/2]

constexpr friend basic_const_iterator operator- ( const basic_const_iterator< Iter > &  i,
difference_type  n 
)
friend

◆ operator- [2/2]

constexpr friend difference_type operator- ( const S &  s,
const basic_const_iterator< Iter > &  i 
)
friend

◆ operator==

constexpr friend bool operator== ( const S &  s,
const basic_const_iterator< Iter > &  i 
)
friend

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