OpenKalman
Public Types | Public Member Functions | Friends | List of all members
OpenKalman::ranges::transform_view< V, F >::iterator< Const > Struct Template Reference

Public Types

using iterator_concept = std::conditional_t< ranges::random_access_range< Base >, std::random_access_iterator_tag, std::conditional_t< ranges::bidirectional_range< Base >, std::bidirectional_iterator_tag, std::conditional_t< ranges::forward_range< Base >, std::forward_iterator_tag, std::input_iterator_tag > >>
 
using reference = std::invoke_result_t< maybe_const< Const, F > &, ranges::range_reference_t< Base > >
 
using value_type = remove_cvref_t< reference >
 
using difference_type = ranges::range_difference_t< Base >
 
using pointer = void
 
using iterator_category = std::conditional_t< not std::is_reference_v< reference >, std::input_iterator_tag, typename std::iterator_traits< ranges::iterator_t< Base > >::iterator_category >
 

Public Member Functions

constexpr iterator (Parent &parent, ranges::iterator_t< Base > current)
 
template<bool Enable = Const, std::enable_if_t< Enable and std::is_convertible_v< ranges::iterator_t< V >, ranges::iterator_t< Base >>, int > = 0>
constexpr iterator (iterator< not Const > i)
 
constexpr const ranges::iterator_t< Base > & base () const &noexcept
 
constexpr ranges::iterator_t< Base > base () &&
 
decltype(auto) constexpr operator* () const
 
template<bool Enable = true, std::enable_if_t< Enable and ranges::random_access_range< Base >, int > = 0>
decltype(auto) constexpr operator[] (difference_type n) const
 
constexpr iteratoroperator++ ()
 
template<bool Enable = true, std::enable_if_t< Enable and not ranges::forward_range< Base >, int > = 0>
constexpr void operator++ (int)
 
template<bool Enable = true, std::enable_if_t< Enable and ranges::forward_range< Base >, int > = 0>
constexpr iterator operator++ (int)
 
template<bool Enable = true, std::enable_if_t< Enable and ranges::bidirectional_range< Base >, int > = 0>
constexpr iteratoroperator-- ()
 
template<bool Enable = true, std::enable_if_t< Enable and ranges::bidirectional_range< Base >, int > = 0>
constexpr iterator operator-- (int)
 
template<bool Enable = true, std::enable_if_t< Enable and ranges::random_access_range< Base >, int > = 0>
constexpr iteratoroperator+= (const difference_type &n)
 
template<bool Enable = true, std::enable_if_t< Enable and ranges::random_access_range< Base >, int > = 0>
constexpr iteratoroperator-= (const difference_type &n)
 
template<bool Enable = true, std::enable_if_t< Enable and ranges::random_access_range< Base >, int > = 0>
frienddecltype(auto) constexpr iter_move (const iterator &i) noexcept(noexcept(std::invoke(std::get< 0 >(i.parent_->fun_), *i.current_)))
 

Friends

template<bool >
struct transform_view::sentinel
 
constexpr bool operator== (const iterator &x, const iterator &y)
 
constexpr bool operator!= (const iterator &x, const iterator &y)
 
constexpr bool operator< (const iterator &x, const iterator &y)
 
constexpr bool operator> (const iterator &x, const iterator &y)
 
constexpr bool operator<= (const iterator &x, const iterator &y)
 
constexpr bool operator>= (const iterator &x, const iterator &y)
 
template<bool Enable = true, std::enable_if_t< Enable and ranges::random_access_range< Base >, int > = 0>
constexpr iterator operator+ (const iterator &i, const difference_type &n)
 
template<bool Enable = true, std::enable_if_t< Enable and ranges::random_access_range< Base >, int > = 0>
constexpr iterator operator+ (const difference_type &n, const iterator &i)
 
template<bool Enable = true, std::enable_if_t< Enable and ranges::random_access_range< Base >, int > = 0>
constexpr iterator operator- (const iterator &i, const difference_type &n)
 
template<bool Enable = true, std::enable_if_t< Enable and ranges::random_access_range< Base >, int > = 0>
constexpr difference_type operator- (const iterator &x, const iterator &y)
 

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