E.V.E  0.1-beta
.algo.concepts

Detailed Description

Classes

struct  eve::algo::iterator_cardinal< I >
 Returns a cardinal for an eve::algo::iterator More...
 
struct  eve::algo::wide_value_type< I >
 for an instance of eve::algo::iterator a shortcut: wide<value_type_t, iterator_cardinal_t> 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::algo::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  eve::algo::value_type< T >
 for an instance of eve::algo::relaxed_iterator, eve::algo::relaxed_range compute the value_type. More...
 
struct  eve::algo::range_ref_wrapper< Rng >
 a non_owning_range wrapper around owning range. Should be created via range_ref More...
 
struct  eve::algo::views::converting_iterator< I, T >
 An adapter over a relaxed_iterator that converts it's values to T. Should be created via convert. More...
 
struct  eve::algo::views::converting_range< R, T >
 An adapter over a relaxed_range that converts it's values to T. Should be created via convert. More...
 
struct  eve::algo::views::zip_range< Rngs >
 A relaxed_range on top of multiple relaxed_range. All individual components have to have the same size. Should probably never be created directly, instead use zip. More...
 
struct  eve::algo::views::zip_iterator< Is >
 A relaxed_iterator on top of multiple relaxed_iterator. If all of the components are iterator they have to have the same cardinal and the zip_iterator will model iterator. Should probably never be created directly, use zip. More...
 
struct  converting_iterator
 a shorthand for eve::algo::views::converting_iterator More...
 
struct  converting_range
 a shorthand for eve::algo::views::converting_range }@ More...
 
struct  zip_iterator
 a shorthand for eve::algo::views::zip_iterator More...
 
struct  zip_range
 a shorthand for eve::algo::views::zip_range }@ More...
 

Variables

constexpr auto eve::algo::copy = function_with_traits<copy_>[default_simple_algo_traits]
 version of std::copy More...
 
constexpr auto eve::algo::for_each = function_with_traits<for_each_>
 a basic for_each algorithm. More...
 
constexpr range_ref_ eve::algo::range_ref
 for a non_owning_range returns it, otherwise returns a range_ref_wrapper. More...
 
constexpr auto eve::algo::transform_inplace = function_with_traits<transform_inplace_>[default_simple_algo_traits]
 same as; More...
 
constexpr auto eve::algo::transform_to = function_with_traits<transform_to_>[default_simple_algo_traits]
 version of std::transform More...
 
struct eve::algo::views::convert_ eve::algo::views::convert
 Takes an iterator or a range and returns an adapter that has a provided value type. More...
 
constexpr auto eve::algo::views::zip = function_with_traits<zip_>
 Given relaxed_iterors and relaxed ranges, zips them together (creates a single object). If at least one component is a relaxed_range - result is a zip_range, otherwise it's zip_iterator. All range compinents have to have the same length. NOTE: uses range_ref inside, so never owns/copies any elements. More...