38 #ifndef LIBPMEMOBJ_CPP_TEMPLATE_HELPERS_HPP 39 #define LIBPMEMOBJ_CPP_TEMPLATE_HELPERS_HPP 41 #include <type_traits> 49 template <
typename...>
54 template <
typename T,
typename,
template <
typename>
class... Checks>
55 struct supports_impl {
56 using type = std::false_type;
58 template <
typename T,
template <
typename>
class... Checks>
59 struct supports_impl<T, void_t<Checks<T>...>, Checks...> {
60 using type = std::true_type;
63 template <
typename T,
template <
typename>
class... Checks>
64 using supports =
typename supports_impl<T, void, Checks...>::type;
Definition: allocation_flag.hpp:43