27 #include <type_traits>
28 #include "../types/traits.hpp"
29 #include "../types/complex_utils.hpp"
42 template<
typename T>
using invoke =
typename T::type;
63 static const bool value = T1::value || T2::value;
85 static const bool value = T1::value && T2::value;
97 template<
typename T>
struct not_t
100 static const bool value = !T::value;
115 template<
typename T>
using is_pod = std::is_pod<T>;
122 template<
typename T>
using is_ptr = std::is_pointer<T>;
and type
Definition: sfinae_macros.hpp:82
std::is_pointer< T > is_ptr
shortcut for std::is_pointer
Definition: sfinae_macros.hpp:122
check complex type
Definition: traits.hpp:74
logical not
Definition: sfinae_macros.hpp:97
typename T::type invoke
alias to invoke a metafunction
Definition: sfinae_macros.hpp:42
Definition: add_op.hpp:29
invoke< std::enable_if< C::value >> enable_if
shortcut for std::enable_if
Definition: sfinae_macros.hpp:108
std::is_pod< T > is_pod
shortcut for std::is_pod
Definition: sfinae_macros.hpp:115
or type
Definition: sfinae_macros.hpp:60
type erasure for POD data
Definition: value.hpp:46