|
| struct | apply |
| | Apply the metafunction 'Metafunc' to a tuplelike type 'Tuplelike'. More...
|
| |
| struct | get_size |
| | Return the size of a Type T containing other types at compile time. If no object for which an overload exists is passed, the get_size::value defaults to 1, indicating a scalar. If you want to have another type to be usable with get_size, provide an overload for it as shown by the various overloads existing for get_size already. More...
|
| |
| struct | get_size< arma::fmat::fixed< N, M > > |
| | overload of get_size for armadillo type More...
|
| |
| struct | get_size< arma::frowvec::fixed< N > > |
| | overload of get_size for armadillo type More...
|
| |
| struct | get_size< arma::fvec::fixed< N > > |
| | overload of get_size for armadillo type More...
|
| |
| struct | get_size< arma::imat::fixed< N, M > > |
| | overload of get_size for armadillo type More...
|
| |
| struct | get_size< arma::irowvec::fixed< N > > |
| | overload of get_size for armadillo type More...
|
| |
| struct | get_size< arma::ivec::fixed< N > > |
| | overload of get_size for armadillo type More...
|
| |
| struct | get_size< arma::mat::fixed< N, M > > |
| | overload of get_size for armadillo type More...
|
| |
| struct | get_size< arma::rowvec::fixed< N > > |
| | overload of get_size for armadillo type More...
|
| |
| struct | get_size< arma::s32_mat::fixed< N, M > > |
| | overload of get_size for armadillo type More...
|
| |
| struct | get_size< arma::s32_rowvec::fixed< N > > |
| | overload of get_size for armadillo type More...
|
| |
| struct | get_size< arma::s32_vec::fixed< N > > |
| | overload of get_size for armadillo type More...
|
| |
| struct | get_size< arma::u32_mat::fixed< N, M > > |
| | overload of get_size for armadillo type More...
|
| |
| struct | get_size< arma::u32_rowvec::fixed< N > > |
| | overload of get_size for armadillo type More...
|
| |
| struct | get_size< arma::u32_vec::fixed< N > > |
| | overload of get_size for armadillo type More...
|
| |
| struct | get_size< arma::umat::fixed< N, M > > |
| | overload of get_size for armadillo type More...
|
| |
| struct | get_size< arma::urowvec::fixed< N > > |
| | overload of get_size for armadillo type More...
|
| |
| struct | get_size< arma::uvec::fixed< N > > |
| | overload of get_size for armadillo type More...
|
| |
| struct | get_size< arma::vec::fixed< N > > |
| | overload of get_size for armadillo type More...
|
| |
| struct | get_size< boost::hana::tuple< Ts... > > |
| | Overload for hana tuples. More...
|
| |
| struct | get_size< std::array< T, N > > |
| | Overload for std::array. More...
|
| |
| struct | get_size< std::pair< A, B > > |
| | Overload for std::pair. More...
|
| |
| struct | get_size< std::tuple< Ts... > > |
| | Overload for std::tuple. More...
|
| |
| struct | has_edge_descriptor |
| | Check if a type T has a edge descriptor. More...
|
| |
| struct | has_edge_descriptor< T, std::void_t< typename T::edge_descriptor > > |
| | Check if a type T has an edge descriptor. More...
|
| |
| struct | has_static_size |
| | Determine if type T is tuple_like, i.e., has a compile time constant size which is smaller than std::numeric_limits< std::size_t >::max() = 18446744073709551615. This size is unreasonable and hence used to check invalidity. More...
|
| |
| struct | has_static_size_base |
| | Determine if type T is 'tuplelike'. This is not intended to be used explicitly, refer to 'has_static_size', which serves this purpose. More...
|
| |
| struct | has_vertex_descriptor |
| | Check if a type T has a vertex descriptor. More...
|
| |
| struct | has_vertex_descriptor< T, std::void_t< typename T::vertex_descriptor > > |
| | Check if a type T has a vertex descriptor. More...
|
| |
| struct | is_array_like |
| | Check if a given type is homogeneous and has a size which is a compile time constant. The most common type which fulfils these requirements is std::array, hence the name 'is_array_like'. For a new type to be considered array_like, this functor has to be overloaded together with get_size. More...
|
| |
| struct | is_associative_container |
| | Check if a type T is an associative container type, i.e. a container type T that defines T::key_type and T::key_compare. Check out https://en.cppreference.com/w/cpp/named_req/AssociativeContainer for more details. More...
|
| |
| struct | is_associative_container< T, std::void_t< std::enable_if_t< is_container_v< T >, int >, typename T::key_type, typename T::key_compare > > |
| | Check if a type T is an associative container type, i.e. a container type T that defines T::key_type and T::key_compare. Check out https://en.cppreference.com/w/cpp/named_req/AssociativeContainer for more details. More...
|
| |
| class | is_callable |
| | Check if a type T is callable, i.e., if it has. More...
|
| |
| class | is_callable< T, std::void_t< std::enable_if_t< std::is_class_v< std::decay_t< T > >, T > > > |
| | Determines if the type T implements a call operator with arbitrary signature. More...
|
| |
| struct | is_container |
| | Check if a type is a container type, which does not include string types. More...
|
| |
| struct | is_container< T, std::void_t< std::enable_if_t< is_iterable_v< remove_qualifier_t< T > > and not is_string_v< remove_qualifier_t< T > >, int > > > |
| | Check if a type T is a container type. A container for us is every iterable that is not a string. More...
|
| |
| struct | is_graph |
| | Check if some type T is a graph by checking if it has edge - and vertex_descriptors. More...
|
| |
| struct | is_graph< T, std::void_t< std::enable_if_t< has_edge_descriptor_v< T > and has_vertex_descriptor_v< T >, int > > > |
| | Check if some type T is a graph by checking if it has edge_- and vertex_descriptors. More...
|
| |
| struct | is_iterable |
| | Check if a type T is iterable, i.e., if it defines T::iterable. More...
|
| |
| struct | is_iterable< T, std::void_t< typename T::iterator > > |
| | Check if a type T is iterable, i.e., if it defines T::iterable. More...
|
| |
| struct | is_linear_container |
| | Check if a type T is a linear container. A linear container for us is any type T that is a container and neither an associative nor an unordered associative container. More...
|
| |
| struct | is_linear_container< T, std::void_t< std::enable_if_t< not is_associative_container_v< T > and not is_unordered_associative_container_v< T > and is_container_v< T >, int > > > |
| | Check if a type T is a linear container. A linear container for us is any type T that is a container and neither an associative nor an unordered associative container. More...
|
| |
| struct | is_random_access_container |
| | Check if a type T is a random access container, i.e., any container type T that has an iterator tagged with std::random_access_iterator_tag. More...
|
| |
| struct | is_random_access_container< T, std::void_t< std::enable_if_t< is_linear_container_v< T > and std::is_convertible_v< typename std::iterator_traits< typename T::iterator >::iterator_category, std::random_access_iterator_tag > > > > |
| | Check if a type T is a random access container, i.e., any container type T that has an iterator tagged with std::random_access_iterator_tag. More...
|
| |
| struct | is_string |
| | Check if a type T is a string-like type, i.e. std::basic_string, const char*, char*, or basic_string_view. More...
|
| |
| struct | is_string< char * > |
| | Overload of is_string for pure char*. More...
|
| |
| struct | is_string< const char * > |
| | Overload of is_string for pure const char*. More...
|
| |
| struct | is_string< std::basic_string< Ts... > > |
| | Overload of is_string for basic_string. More...
|
| |
| struct | is_string< std::basic_string_view< Ts... > > |
| | Overload of is_string for basic_string_view. More...
|
| |
| struct | is_unordered_associative_container |
| | Check if a type T is an unordered associative container type, i.e. a container type T that defines T::key_type, T::value_type and T::hasher. Check out https://en.cppreference.com/w/cpp/named_req/UnorderedAssociativeContainer for more details. More...
|
| |
| struct | is_unordered_associative_container< T, std::void_t< std::enable_if_t< is_container_v< T >, int >, typename T::key_type, typename T::value_type, typename T::hasher > > |
| | Check if a type T is an unordered associative container type, i.e. a container type T that defines T::key_type, T::value_type and T::hasher. Check out https://en.cppreference.com/w/cpp/named_req/UnorderedAssociativeContainer for more details. More...
|
| |
| struct | Nothing |
| | Represent a type that does nothing and represents nothing, hence can be used in metaprogramming whenever no action is desired. More...
|
| |
| struct | remove_pointer |
| | Helper function for removing pointer qualifiers from a type recursivly This is the recursion base case. More...
|
| |
| struct | remove_pointer< T, std::enable_if_t< std::is_array_v< T >, std::void_t<> > > |
| | Oveload of remove_pointer metafunction for array types (stack allocated) More...
|
| |
| struct | remove_pointer< T, std::enable_if_t< std::is_pointer_v< T >, std::void_t<> > > |
| | Helper function for removing pointer qualifiers from a type recursivly Provides a member type definition called 'type' which is equal to T if the first template argument is of type T* or T** or T***... More...
|
| |
| struct | remove_qualifier |
| | Function for removing the qualifiers from a type T. Qualifiers are 'const', 'volative', pointer, reference or any legal combination thereof. More...
|
| |
|
| template<typename T , typename U > |
| std::ostream & | operator<< (std::ostream &out, const std::pair< T, U > &pair) |
| | pretty print a pair
|
| |
| template<class T > |
| std::enable_if_t< is_container_v< T >, std::ostream & > | operator<< (std::ostream &out, const T &container) |
| |
| std::ostream & | operator<< (std::ostream &out, const std::vector< bool > &container) |
| | Output container to stream 'out'- specialization for vector of booleans. Note that a vector of booleans is not the same as a vector of any other type because it does some storage optimization to make booleans take up single bits only.
|
| |
| template<template< typename, typename, typename... > class MapType, typename Key , typename Value , typename... Args> |
| std::enable_if_t< is_associative_container_v< MapType< Key, Value, Args... > > or is_unordered_associative_container_v< MapType< Key, Value, Args... > >, std::ostream & > | operator<< (std::ostream &out, const MapType< Key, Value, Args... > &map) |
| | Output (unordered) associative containers to an std::ostream.
|
| |
| template<typename... Types> |
| std::ostream & | operator<< (std::ostream &ostr, std::tuple< Types... > tuple) |
| | Report a tuple to an outstream, This works by piping the single elements inside the tuple to the stream, and therefor requires operator<< for the underlying types to be defined.
|
| |
| template<typename T > |
| std::string | str (T &&t) |
| | Turn any object for which operator<< exists into a string. Mostly useful for logging data via spdlog which for instance cannot log containers per default.
|
| |