Implementation details for Catsfoot. More...
Classes | |
struct | eval |
Default case: predicate. More... | |
struct | eval< T, true, true, B > |
If T is a concept model. More... | |
struct | eval< T, true, false, true > |
If T is an auto-concept model. More... | |
struct | eval< concept_list< T...>, false, false, false > |
If the parameter is a list of requirements. More... | |
struct | class_assert_verified |
Check that T is a verified model. More... | |
struct | class_assert_concept |
Concept checking: predicate. More... | |
struct | class_assert_concept< concept_list< F, T...>, A, B, C > |
Concept checking: recursion on a list of requirements. More... | |
struct | class_assert_concept< concept_list<>, A, B, C > |
Concept checking: empty list of requirements. More... | |
struct | class_assert_concept< T, true, B, true > |
Concept checking: T is a concept model. More... | |
struct | class_assert_concept< T, false, true, true > |
Concept checking: T is a auto-concept model. More... | |
struct | is_same |
struct | is_same< T, T > |
struct | has_requirements |
Check whether T has a member type requirements . More... | |
struct | static_binary_and |
Predicate true if all predicate parameters are true. More... | |
struct | static_binary_and< T, U, true > |
Predicate true if all predicate parameters are true. More... | |
struct | static_and< F, T...> |
Predicate true if all predicate parameters are true. More... | |
struct | static_and<> |
Predicate true if all predicate parameters are true. More... | |
struct | generator_choose |
struct | generator_choose< T, Other...> |
struct | position_impl |
Finds the first occurrence of a type in a list. More... | |
struct | position_impl< N, T, T, U...> |
Finds the first occurrence of a type in a list. More... | |
struct | position_impl< N, T, U, V...> |
Finds the first occurrence of a type in a list. More... | |
struct | position |
Finds the first occurrence of a type in a list. More... | |
struct | number_function_returns< T > |
No function given. More... | |
struct | number_function_returns< T, std::function< T(Args...)>, Functions...> |
The first function returns a T. More... | |
struct | number_function_returns< T, std::function< const T &(Args...)>, Functions...> |
The first function returns a T. More... | |
struct | number_function_returns< T, std::function< T &(Args...)>, Functions...> |
The first function returns a T. More... | |
struct | number_function_returns< T, std::function< T &&(Args...)>, Functions...> |
The first function returns a T. More... | |
struct | number_function_returns< T, std::function< Ret(Args...)>, Functions...> |
The first function does not return a T. More... | |
struct | number_ground_terms< T > |
No function. More... | |
struct | number_ground_terms< T, std::function< T()>, Functions...> |
First function is ground term. More... | |
struct | number_ground_terms< T, std::function< const T &()>, Functions...> |
First function is ground term. More... | |
struct | number_ground_terms< T, std::function< T &()>, Functions...> |
First function is ground term. More... | |
struct | number_ground_terms< T, std::function< T &&()>, Functions...> |
First function is ground term. More... | |
struct | number_ground_terms< T, std::function< Ret(Args...)>, Functions...> |
First function is not ground term. More... | |
struct | tuple_generator_tool |
struct | tuple_generator_tool< std::tuple< U...> & > |
Generates containers of tuples std::tuple<U...> More... | |
struct | tuple_generator_tool< const std::tuple< U...> & > |
Generates containers of tuples std::tuple<U...> More... | |
struct | tuple_generator_tool< std::tuple< U...> > |
Generates containers of tuples std::tuple<U...> More... | |
struct | tuple_generator |
Generates tuple from generator. More... | |
struct | has_get_axiom |
Predicate testing that U has static member get_axioms() More... | |
struct | test_all |
Test axioms of a predicate (always true) More... | |
struct | test_all< T, true, false > |
Test axioms of a concept with no local axioms. More... | |
struct | test_all< T, true, true > |
Test axioms of a concept with local axioms. More... | |
struct | test_all< concept_list< T, U...>, false, B > |
Test axioms of a list of requirements. More... | |
struct | tester<> |
struct | tester< T, U...> |
struct | always_false |
Predicate always false but depending on type parameters. More... | |
struct | always_true |
Predicate always true but depending on type parameters. More... | |
struct | callable_real_map |
Traits to use when everything is OK. More... | |
struct | callable_bad_map |
Traits to use on error. More... | |
struct | callable_real_map< T(U...)> |
Traits defining the return type. More... | |
struct | callable_bad_map< T(U...)> |
Traits defining an undefined return type. More... | |
struct | is_constructible_work_around< false, T(U...)> |
If T is not a class, it cannot be built with several parameter. More... | |
struct | is_constructible_work_around< false, T()> |
If not a class, is it always default constructible (maybe) More... | |
struct | is_constructible_work_around< false, T(U)> |
If is explicitly convertible and not a class, then it is like constructible. More... | |
struct | is_constructible_work_around< true, T(U...)> |
If T is a class, then use the standard library. More... | |
struct | try_first |
Tag for prioritizing some overloaded functions. More... | |
struct | try_second |
Tag for prioritizing some overloaded functions. More... | |
struct | try_all_compare< T, std::function< Ret(Args...)> > |
struct | compare< Generator, T > |
No left operation. More... | |
struct | compare< Generator, T, Op, Ops...> |
Compare using the first operator and recurse. More... | |
struct | compare_top |
Builds a black-box comparator. More... | |
struct | call_tuple_helper |
struct | add_const_ref |
struct | add_ref |
struct | call_with_ret |
struct | call_with_ret< Op, std::tuple< Args...> & > |
struct | call_with_ret< Op, std::tuple< Args...> > |
struct | call_with_ret< Op, const std::tuple< Args...> & > |
struct | member_wrapper< Ret(T::*)(Args...)> |
Wraps a non-const member. More... | |
struct | member_wrapper< void(T::*)(Args...)> |
Wraps a non-const void returning member. More... | |
struct | member_wrapper< Ret(T::*)(Args...) const > |
Wraps a const member. More... | |
struct | return_of |
struct | return_of< T(Args...)> |
struct | remove_side_effect_helper |
struct | wrapped_constructor< T(Args...), true > |
Wraps constructor T(Args...) More... | |
struct | wrapped_constructor< T(Args...), false > |
T(Args...) is not constructible. More... | |
Functions | |
tmp tmp aLqmiBCgXn catsfoot src axioms axioms hh EXTERN void | reached_function (std::string &&func, std::string &&file, unsigned line) |
Counts axiom as reached. | |
EXTERN void | register_function (std::string &&func, std::string &&file, unsigned line) |
Ensures the axiom as a counter. | |
template<typename T , typename = typename T::requirements> | |
std::true_type | has_requirements_helper (try_first, T &&) |
template<typename T > | |
std::false_type | has_requirements_helper (try_second, T &&) |
template<typename T , typename... U, typename... V, typename = typename std::enable_if<sizeof...(V) == sizeof...(U)>::type> | |
std::tuple< std::pair< T, U >...> | zip_vec_tuple (const std::vector< T > &vec, const std::tuple< U...> &, V &&...v) |
Zip a vector of T with a tuple of U... | |
template<typename T , typename... U, typename... V, typename = void, typename > | |
std::tuple< std::pair< T, U >...> | zip_vec_tuple (const std::vector< T > &v, const std::tuple< U...> &t, V &&...values) |
Zip a vector of T with a tuple of U... | |
EXTERN std::vector< std::string > | split_identifiers (const std::string &) |
Splits a comma separated list of C++ identifiers into a vector. | |
template<typename U > | |
std::false_type | has_get_axiom_helper (try_second, U &&) |
Selected only when U has no static member get_axioms() | |
template<typename U , typename = decltype(U::get_axioms())> | |
std::true_type | has_get_axiom_helper (try_first, U &&) |
Selected only when U has a static member get_axioms() | |
template<typename Stream , typename T , ENABLE_IF(printable< Stream &, T >) > | |
void | print_if_printable (Stream &s, T &&t) |
Prints the value if printable. | |
template<typename Stream , typename T , ENABLE_IF_NOT(printable< Stream &, T >) , typename = void> | |
void | print_if_printable (Stream &s, T &&) |
Prints type name of value if not printable. | |
void | display_values () |
Prints a list of values. | |
template<typename T , typename... U> | |
void | display_values (T &&t, U &&...u) |
Prints a list of values. | |
template<typename T , typename... U> | |
std::false_type | is_callable_helper (try_second, T &&, U &&...) |
Selected when T is not callable with U... | |
template<typename T , typename... U, typename = decltype(std::declval<T>()(std::declval<U>()...))> | |
std::true_type | is_callable_helper (try_first, T &&, U &&...) |
Selected when T is callable with U... | |
template<typename Op , typename Tuple , typename... Given, typename = typename std::enable_if<(sizeof...(Given) == call_with_ret<Op, Tuple>::size)>::type> | |
call_with_ret< Op, Tuple >::type | call_with_it (Op &&op, Tuple &&, Given &&...args) |
template<typename Op , typename Tuple , typename... OtherArgs, typename = typename std::enable_if<(sizeof...(OtherArgs) != call_with_ret<Op, Tuple>::size)>::type, typename = void> | |
call_with_ret< Op, Tuple >::type | call_with_it (Op &&op, Tuple &&args, OtherArgs &&...otherargs) |
template<typename T > | |
std::string | type_to_string () |
Gives a string of the type T. | |
template<typename T , typename = typename std::enable_if<!std::is_reference<T>::value>::type> | |
T | copy_if_non_const (T &&t) |
template<typename T > | |
T | copy_if_non_const (T &t) |
template<typename T > | |
const T & | copy_if_non_const (const T &t) |
Implementation details for Catsfoot.