|
template<typename toType , typename baseType > |
bool | souffle::castEq (const baseType *left, const baseType *right) |
| Cast the values, from baseType to toType and compare using ==. More...
|
|
template<typename A > |
auto | souffle::clone (const std::vector< A * > &xs) |
|
template<typename A > |
auto | souffle::clone (const std::vector< std::unique_ptr< A >> &xs) |
|
template<typename C > |
bool | souffle::contains (const C &container, const typename C::value_type &element) |
| A utility to check generically whether a given element is contained in a given container. More...
|
|
template<typename C > |
bool | souffle::contains (const C &container, const typename C::value_type::first_type &element) |
| Version of contains specialised for maps. More...
|
|
template<typename A > |
bool | souffle::contains (const std::set< A > &container, const A &element) |
|
template<typename Iter > |
IterDerefWrapper< Iter > | souffle::derefIter (const Iter &iter) |
| A factory function enabling the construction of a dereferencing iterator utilizing the automated deduction of template parameters. More...
|
|
template<typename Container , typename Comparator > |
bool | souffle::equal_targets (const Container &a, const Container &b, const Comparator &comp) |
| A function testing whether two containers are equal with the given Comparator. More...
|
|
template<typename T , template< typename... > class Container> |
bool | souffle::equal_targets (const Container< std::unique_ptr< T >> &a, const Container< std::unique_ptr< T >> &b) |
| A function testing whether two containers of unique pointers are referencing equivalent targets. More...
|
|
template<typename T , template< typename... > class Container> |
bool | souffle::equal_targets (const Container< T * > &a, const Container< T * > &b) |
| A function testing whether two containers of pointers are referencing equivalent targets. More...
|
|
template<typename Key , typename Value > |
bool | souffle::equal_targets (const std::map< Key, std::unique_ptr< Value >> &a, const std::map< Key, std::unique_ptr< Value >> &b) |
| A function testing whether two maps of unique pointers are referencing to equivalent targets. More...
|
|
template<typename C > |
C::value_type | souffle::getIf (const C &container, std::function< bool(const typename C::value_type)> pred) |
| Returns the first element in a container that satisfies a given predicate, nullptr otherwise. More...
|
|
template<typename C > |
C::mapped_type const & | souffle::getOr (const C &container, typename C::key_type key, const typename C::mapped_type &defaultValue) |
| Get value for a given key; if not found, return default value. More...
|
|
template<typename Iter > |
range< Iter > | souffle::make_range (const Iter &a, const Iter &b) |
| A utility function enabling the construction of ranges without explicitly specifying the iterator type. More...
|
|
template<typename A , typename F > |
auto | souffle::map (const std::vector< A > &xs, F &&f) |
| Applies a function to each element of a vector and returns the results. More...
|
|
template<typename A , typename B = A, typename... Args> |
Own< A > | souffle::mk (Args &&... xs) |
|
template<typename T > |
std::vector< T * > | souffle::toPtrVector (const std::vector< std::unique_ptr< T >> &v) |
| A utility function enabling the creation of a vector of pointers. More...
|
|
template<typename T > |
std::vector< T > | souffle::toVector () |
| A utility function enabling the creation of a vector with a fixed set of elements within a single expression. More...
|
|
template<typename T , typename... R> |
std::vector< T > | souffle::toVector (const T &first, const R &... rest) |
| A utility function enabling the creation of a vector with a fixed set of elements within a single expression. More...
|
|