3 #ifndef DUNE_COMMON_STD_TYPE_TRAITS_HH 4 #define DUNE_COMMON_STD_TYPE_TRAITS_HH 62 template<
typename T >
78 template<
typename T >
82 #if __cpp_lib_bool_constant 86 #elif __cpp_lib_experimental_bool_constant 108 template<
class R,
class F,
class... Args,
110 std::is_same<
void_t<std::result_of_t<F(Args...)>>, R>::value
118 template<
class R,
class F,
class... Args,
120 std::is_convertible<std::result_of_t<F(Args...)>, R>::value
128 template<
class R,
class F,
class... Args>
148 template <
class D,
class R=
void>
166 template <
class F,
class... Args,
class R>
168 decltype(Imp::is_callable_helper<R, F, Args...>(PriorityTag<42>()))
182 #endif // #ifndef DUNE_COMMON_STD_TYPE_TRAITS_HH Helper class for tagging priorities.
Definition: typeutilities.hh:71
template mapping a type to std::false_type
Definition: type_traits.hh:63
Dune namespace.
Definition: alignment.hh:10
Traits for type conversions and type information.
Traits class to check if function is callable.
Definition: type_traits.hh:149
Utilities for type computations, constraining overloads, ...
Helper class for tagging priorities.
Definition: typeutilities.hh:59
std::integral_constant< bool, value > bool_constant
A template alias for std::integral_constant<bool, value>
Definition: type_traits.hh:98
template mapping a type to std::true_type
Definition: type_traits.hh:79
typename detail::voider< Types... >::type void_t
Is void for all valid input types (see N3911). The workhorse for C++11 SFINAE-techniques.
Definition: typetraits.hh:35
std::false_type is_callable_helper(PriorityTag< 0 >)
Definition: type_traits.hh:129