E.V.E
v2023.02.15
 
Loading...
Searching...
No Matches
Algorithms Concepts

Detailed Description

Classes

struct  eve::algo::nothing_t
 a type to indicate that there is nothing there More...
 
struct  relaxed_iterator
 anything that can be reasonably converted to an iterator: std::contigious_iterator, eve::algo::iterator, aligned_ptr. Defined as being totally_ordered, having +/- like an iterator And preprocess_range(eve::algo::traits{}, I, I) should work. eve::unalign(I) should be OK. More...
 
struct  relaxed_sentinel_for
 Two relaxed iterators form a valid relaxed range pair. preprocess_range has to be defined for the pair. Example: int const* is a relaxed_sentinel_for aligned_ptr<int const>. More...
 
struct  relaxed_range
 Any class that has begin/end and end is a relaxed_sentinel_for begin. User can customize preprocess_range for a relaxed_range in case there is more information to get from there then would be from just begin/end. More...
 
struct  map_load_op
 requirement for the operation applied on read/load in map. should work on both scalar and wide for the underlying iterator for any cardinal. More...
 
struct  map_store_op
 requirement for the operation applied on store in map. should work on both scalar and wide for the underlying iterator for any cardinal. More...
 

Concepts

concept  eve::algo::non_owning_range
 a non_owning range is a relaxed_range that does not own it's elements and can be copied without it's contents being affected TODO: FIX-#1017: how is this related to std::borrowed_range?
 

Typedefs

template<typename R >
using eve::algo::iterator_t = decltype(std::declval<R>().begin())
 Iterator for a relaxed range.
 
template<typename R >
using eve::algo::sentinel_t = decltype(std::declval<R>().end())
 Sentinel for a relaxed range.
 
template<typename R >
using eve::algo::unaligned_iterator_t = unaligned_t<iterator_t<R>>
 Unaligned iterator for a relaxed range.
 

Variables

constexpr range_ref_ eve::algo::range_ref
 for a non_owning_range returns it, otherwise returns a range_ref_wrapper.