swift
Public Member Functions | Static Protected Member Functions | List of all members
swift::misc::CRangeBase< Derived > Class Template Reference

Any container class with begin and end iterators can inherit from this CRTP class to gain some useful algorithms as member functions. More...

Inheritance diagram for swift::misc::CRangeBase< Derived >:
[legend]

Public Member Functions

template<class F >
auto transform (F function) const
 Return a new container generated by applying some transformation function to all elements of this one.
 
template<class Predicate >
auto findBy (Predicate p) const
 Return a copy containing only those elements for which a given predicate returns true.
 
template<class K0 , class V0 , class... KeysValues>
auto findBy (K0 k0, V0 v0, KeysValues... keysValues) const
 Return a copy containing only those elements matching some particular key/value pair(s). More...
 
template<class Predicate >
const auto & findFirstBy (Predicate p) const
 Return a reference to the first element for which a given predicate returns true. Undefined if there is none.
 
template<class K , class V >
const auto & findFirstBy (K key, V value) const
 Return a reference to the first element matching some particular key/value pair(s). Undefined if there is none.
 
template<class Predicate , class Value >
auto findFirstByOrDefault (Predicate p, const Value &def) const
 Return a copy of the first element for which a given predicate returns true, or a default value if there is none.
 
template<class Predicate >
auto findFirstByOrDefault (Predicate p) const
 Return a copy of the first element for which a given predicate returns true, or a default value if there is none.
 
template<class K , class V , class Value >
auto findFirstByOrDefault (K key, V value, const Value &def) const
 Return a copy of the first element matching some particular key/value pair(s), or a default value if there is none.
 
template<class T , class K , class V >
auto findFirstByOrDefault (K T::*key, V value) const
 Return a copy of the first element matching some particular key/value pair(s), or a default value if there is none.
 
template<class Predicate >
bool containsBy (Predicate p) const
 Return true if there is an element for which a given predicate returns true.
 
template<class T >
bool contains (const T &object) const
 Return true if there is an element equal to given object. Uses the most efficient implementation available in the derived container.
 
template<class K0 , class V0 , class... KeysValues>
bool contains (K0 k0, V0 v0, KeysValues... keysValues) const
 Return a copy containing only those elements matching some particular key/value pair(s). More...
 
template<class T , class Predicate >
bool equalsBy (const T &other, Predicate c) const
 Return true if this container equals another container according to the given element equality predicate.
 
template<class T , class Key0 , class... Keys>
bool equalsByKeys (const T &other, Key0 k0, Keys... keys) const
 Return true if this container equals another container, considering only the given element members.
 
template<class T >
randomElement () const
 Pick one random element.
 
Derived randomElements (int n) const
 Copy n elements from the container at random.
 
Derived sampleElements (int n) const
 Copy n elements from the container, randomly selected but evenly distributed.
 

Static Protected Member Functions

template<typename T , typename U >
static bool equalPointers (const T *a, const U *b)
 Efficiently compare addresses of two objects. Return false if types are not compatible.
 

Detailed Description

template<class Derived>
class swift::misc::CRangeBase< Derived >

Any container class with begin and end iterators can inherit from this CRTP class to gain some useful algorithms as member functions.

Template Parameters
DerivedThe most derived container class inheriting from this instantiation.

Definition at line 32 of file range.h.

Member Function Documentation

◆ contains()

template<class Derived >
template<class K0 , class V0 , class... KeysValues>
bool swift::misc::CRangeBase< Derived >::contains ( K0  k0,
V0  v0,
KeysValues...  keysValues 
) const
inline

Return a copy containing only those elements matching some particular key/value pair(s).

Parameters
k0A pointer to a member function of T.
v0A value to compare against the value returned by k0.
keysValuesZero or more additional pairs of { pointer to member function of T, value to compare it against }.

Definition at line 120 of file range.h.

◆ findBy()

template<class Derived >
template<class K0 , class V0 , class... KeysValues>
auto swift::misc::CRangeBase< Derived >::findBy ( K0  k0,
V0  v0,
KeysValues...  keysValues 
) const
inline

Return a copy containing only those elements matching some particular key/value pair(s).

Parameters
k0A pointer to a member function of T.
v0A value to compare against the value returned by k0.
keysValuesZero or more additional pairs of { pointer to member function of T, value to compare it against }.

Definition at line 417 of file range.h.


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