VCCC  2024.05
VisualCamp Common C++ library
common_iterator< I, S > Class Template Reference

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

Public Member Functions

 common_iterator ()=default
 
constexpr common_iterator (I i)
 
constexpr common_iterator (S s)
 
template<typename I2 , typename S2 , std::enable_if_t< conjunction< convertible_to< const I2 &, I >, convertible_to< const S2 &, S > >::value, int > = 0>
constexpr common_iterator (const common_iterator< I2, S2 > &x) noexcept(conjunction< std::is_nothrow_constructible< I, const I2 & >, std::is_nothrow_constructible< S, const S2 & >>::value)
 
template<typename I2 , typename S2 >
constexpr common_iteratoroperator= (const common_iterator< I2, S2 > &x) noexcept(conjunction< std::is_nothrow_constructible< I, const I2 & >, std::is_nothrow_assignable< I, const I2 & >, std::is_nothrow_constructible< S, const S2 & >, std::is_nothrow_assignable< S, const S2 & > >::value)
 
constexpr decltype(auto) operator* ()
 
template<typename I2 = I, std::enable_if_t< dereferenceable< const I2 >::value, int > = 0>
constexpr decltype(auto) operator* () const
 
template<typename I2 = I, std::enable_if_t< conjunction< indirectly_readable< const I2 >, disjunction< std::is_pointer< I2 >, has_operator_arrow< const I2 & >, std::is_reference< iter_reference_t< I2 >>, constructible_from< iter_value_t< I2 >, iter_reference_t< I2 >> > >::value, int > = 0>
constexpr auto operator-> () const
 
constexpr common_iteratoroperator++ ()
 
constexpr decltype(auto) operator++ (int)
 
template<typename Dummy = void, std::enable_if_t< conjunction< std::is_void< Dummy >, input_iterator< I > >::value, int > = 0>
constexpr decltype(auto) friend iter_move (const common_iterator &i) noexcept(noexcept(ranges::iter_move(std::declval< const I & >())))
 

Friends

template<typename I2 , typename S2 , std::enable_if_t< conjunction< sentinel_for< S2, I >, sentinel_for< S, I2 >, negation< equality_comparable_with< I, I2 > > >::value, int > = 0>
constexpr friend bool operator== (const common_iterator &x, const common_iterator< I2, S2 > &y)
 
template<typename I2 , typename S2 , std::enable_if_t< conjunction< sentinel_for< S2, I >, sentinel_for< S, I2 >, negation< equality_comparable_with< I, I2 > > >::value, int > = 0>
constexpr friend bool operator!= (const common_iterator &x, const common_iterator< I2, S2 > &y)
 
template<typename I2 , typename S2 , std::enable_if_t< conjunction< sentinel_for< S2, I >, sentinel_for< S, I2 >, equality_comparable_with< I, I2 > >::value, int > = 0>
constexpr friend bool operator== (const common_iterator &x, const common_iterator< I2, S2 > &y)
 
template<typename I2 , typename S2 , std::enable_if_t< conjunction< sentinel_for< S2, I >, sentinel_for< S, I2 >, equality_comparable_with< I, I2 > >::value, int > = 0>
constexpr friend bool operator!= (const common_iterator &x, const common_iterator< I2, S2 > &y)
 
template<typename I2 , typename S2 , std::enable_if_t< conjunction< sized_sentinel_for< I2, I >, sized_sentinel_for< S2, I >, sentinel_for< S, I2 > >::value, int > = 0>
constexpr friend iter_difference_t< I2 > operator- (const common_iterator &x, const common_iterator< I2, S2 > &y)
 
template<typename I2 , typename S2 , std::enable_if_t< indirectly_swappable< I2, I > ::value, int > = 0>
constexpr friend void iter_swap (const common_iterator &x, const common_iterator< I2, S2 > &y) noexcept(noexcept(ranges::iter_swap(std::declval< const I & >(), std::declval< const I2 & >())))
 

Constructor & Destructor Documentation

◆ common_iterator() [1/4]

common_iterator ( )
default

◆ common_iterator() [2/4]

constexpr common_iterator ( i)
inlineconstexpr

◆ common_iterator() [3/4]

constexpr common_iterator ( s)
inlineconstexpr

◆ common_iterator() [4/4]

constexpr common_iterator ( const common_iterator< I2, S2 > &  x)
inlineconstexprnoexcept

Member Function Documentation

◆ iter_move()

constexpr decltype(auto) friend iter_move ( const common_iterator< I, S > &  i)
inlineconstexprnoexcept

◆ operator*() [1/2]

constexpr decltype(auto) operator* ( )
inlineconstexpr

◆ operator*() [2/2]

constexpr decltype(auto) operator* ( ) const
inlineconstexpr

◆ operator++() [1/2]

constexpr common_iterator& operator++ ( )
inlineconstexpr

◆ operator++() [2/2]

constexpr decltype(auto) operator++ ( int  )
inlineconstexpr

◆ operator->()

constexpr auto operator-> ( ) const
inlineconstexpr

◆ operator=()

constexpr common_iterator& operator= ( const common_iterator< I2, S2 > &  x)
inlineconstexprnoexcept

Friends And Related Function Documentation

◆ iter_swap

constexpr friend void iter_swap ( const common_iterator< I, S > &  x,
const common_iterator< I2, S2 > &  y 
)
friend

◆ operator!= [1/2]

constexpr friend bool operator!= ( const common_iterator< I, S > &  x,
const common_iterator< I2, S2 > &  y 
)
friend

◆ operator!= [2/2]

constexpr friend bool operator!= ( const common_iterator< I, S > &  x,
const common_iterator< I2, S2 > &  y 
)
friend

◆ operator-

constexpr friend iter_difference_t<I2> operator- ( const common_iterator< I, S > &  x,
const common_iterator< I2, S2 > &  y 
)
friend

◆ operator== [1/2]

constexpr friend bool operator== ( const common_iterator< I, S > &  x,
const common_iterator< I2, S2 > &  y 
)
friend

◆ operator== [2/2]

constexpr friend bool operator== ( const common_iterator< I, S > &  x,
const common_iterator< I2, S2 > &  y 
)
friend

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