38 #ifndef LIBPMEMOBJ_CPP_TEMPLATE_HELPERS_HPP 39 #define LIBPMEMOBJ_CPP_TEMPLATE_HELPERS_HPP 41 #include <type_traits> 49 template <
typename... Ts>
53 template <
typename... Ts>
54 using void_t =
typename make_void<Ts...>::type;
58 template <
typename T,
typename,
template <
typename>
class... Checks>
59 struct supports_impl {
60 using type = std::false_type;
62 template <
typename T,
template <
typename>
class... Checks>
63 struct supports_impl<T, void_t<Checks<T>...>, Checks...> {
64 using type = std::true_type;
67 template <
typename T,
template <
typename>
class... Checks>
68 using supports =
typename supports_impl<T, void, Checks...>::type;
A persistent version of concurrent hash map implementation Ref: https://arxiv.org/abs/1509....
Definition: allocation_flag.hpp:43