Sequoia
Loading...
Searching...
No Matches
Classes | Concepts | Typedefs | Variables
Iterator.hpp File Reference

Implementation for an iterator with policies controlling dereferencing and auxiliary data. More...

#include "sequoia/Core/Meta/TypeTraits.hpp"
#include <iterator>

Go to the source code of this file.

Classes

struct  sequoia::utilities::impl::aggregator< Policy >
 
struct  sequoia::utilities::pointer_type< Iterator, Deref >
 Detects pointer_type. More...
 
struct  sequoia::utilities::pointer_type< Iterator, Deref >
 
struct  sequoia::utilities::difference_type< Iterator, Deref >
 
struct  sequoia::utilities::value_type< T >
 Detects value_type. More...
 
struct  sequoia::utilities::value_type< I >
 
struct  sequoia::utilities::value_type< T >
 
struct  sequoia::utilities::reference_type< T >
 
struct  sequoia::utilities::reference_type< I >
 
struct  sequoia::utilities::reference_type< T >
 
struct  sequoia::utilities::null_data_policy
 Policy representing absence of additional data carried by theidentity_dereference_policy More...
 
struct  sequoia::utilities::identity_dereference_policy< Iterator, AuxiliaryDataPolicy >
 
class  sequoia::utilities::iterator< Iterator, DereferencePolicy >
 An iterator with policies controlling dereferencing and auxiliary data. More...
 

Concepts

concept  sequoia::utilities::decrementable
 
concept  sequoia::utilities::steppable
 
concept  sequoia::utilities::dereference_policy_for
 

Typedefs

template<class Iterator , dereference_policy_for< Iterator > Deref>
using sequoia::utilities::pointer_type_t = typename pointer_type< Iterator, Deref >::type
 
template<class Iterator , dereference_policy_for< Iterator > Deref>
using sequoia::utilities::difference_type_t = typename difference_type< Iterator, Deref >::type
 
template<class T >
using sequoia::utilities::value_type_t = typename value_type< T >::type
 
template<class T >
using sequoia::utilities::reference_type_t = typename reference_type< T >::type
 

Variables

template<class Policy1 , class Policy2 >
constexpr bool sequoia::utilities::consistent_policies_v
 
template<class T >
constexpr bool sequoia::utilities::has_difference_type {requires { typename T::difference_type; }}
 Detects difference_type.
 
template<class T >
constexpr bool sequoia::utilities::has_reference_type {requires { typename T::reference; }}
 Detects reference_type.
 
template<class Iterator , dereference_policy_for< Iterator > DereferencePolicy>
constexpr bool sequoia::utilities::has_sensible_semantics
 

Detailed Description

Implementation for an iterator with policies controlling dereferencing and auxiliary data.

Variable Documentation

◆ consistent_policies_v

template<class Policy1 , class Policy2 >
constexpr bool sequoia::utilities::consistent_policies_v
inlineconstexpr
Initial value:
{
}
A concept similar to std::constructible_from, but which considers braced-init.
Definition: Concepts.hpp:75

◆ has_sensible_semantics

template<class Iterator , dereference_policy_for< Iterator > DereferencePolicy>
constexpr bool sequoia::utilities::has_sensible_semantics
inlineconstexpr
Initial value:
{
( std::indirectly_writable<reference_type_t<Iterator>, value_type_t<Iterator>>
&& std::indirectly_writable<reference_type_t<DereferencePolicy>, value_type_t<DereferencePolicy>>)
|| ( !std::indirectly_writable<reference_type_t<Iterator>, value_type_t<Iterator>>
&& !std::indirectly_writable<reference_type_t<DereferencePolicy>, value_type_t<DereferencePolicy>>)
}