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...
 

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.