7 #ifndef CUDA_KAT_COMMON_HPP_ 8 #define CUDA_KAT_COMMON_HPP_ 11 #include <type_traits> 13 #include <kat/detail/execution_space_specifiers.hpp> 14 #include <kat/detail/constexpr_by_cpp_version.hpp> 26 using size_t = std::size_t;
28 #if __cplusplus < 201703L 32 template<
typename ... >
struct conjunction : std::true_type {};
34 template<
typename B,
typename ... Bs>
struct conjunction<B, Bs...> : std::conditional<bool(B::value), conjunction<Bs...>, B>::type {};
36 template<
typename ... >
struct disjunction : std::true_type {};
38 template<
typename B,
typename ... Bs>
struct disjunction<B, Bs...> : std::conditional<bool(B::value), disjunction<Bs...>, B>::type {};
40 template <
bool B>
using bool_constant = std::integral_constant<bool, B>;
42 template<
typename B>
struct negation : bool_constant<not bool(B::value)> {};
46 template <
typename ... Bs>
using conjunction = std::conjunction<Bs...>;
47 template <
typename ... Bs>
using disjunction = std::disjunction<Bs...>;
48 template <
bool B>
using bool_constant = std::bool_constant<B>;
49 template <
bool B>
using negation = std::negation<B>;
55 template<
typename T,
typename... Ts>
78 #endif // CUDA_KAT_COMMON_HPP_ Definition: common.hpp:36
Definition: common.hpp:16
Definition: common.hpp:42
Definition: common.hpp:32