7 #ifndef LIN_CORE_TRAITS_UTILITIES_HPP_ 8 #define LIN_CORE_TRAITS_UTILITIES_HPP_ 10 #include <type_traits> 17 template <
typename...>
20 template <
template <
typename...>
class E,
typename,
typename... Ts>
23 template <
template <
typename...>
class E,
typename... Ts>
43 template <
template <
typename...>
class E,
typename... Ts>
53 template <
class... Cs>
62 template <
class C,
class... Cs>
64 : std::conditional_t<C::value, conjunction<Cs...>, std::false_type> { };
73 template <
class... Cs>
82 template <
class C,
class... Cs>
84 : std::conditional_t<C::value, std::true_type, disjunction<Cs...>> { };
92 : std::conditional_t<C::value, std::false_type, std::true_type> { };
Logical OR operation for template metaprogramming.
Definition: utilities.hpp:74
Logical NOT operation for template metaprogramming.
Definition: utilities.hpp:91
Tests if a given expression can be instantiated.
Definition: utilities.hpp:44
Definition: utilities.hpp:21
Logical AND operation for template metaprogramming.
Definition: utilities.hpp:54
void void_t
Template metaprogramming construct used to detect ill formed types.
Definition: utilities.hpp:18
Definition: config.hpp:27