9#ifndef LIBPMEMOBJ_CPP_TEMPLATE_HELPERS_HPP
10#define LIBPMEMOBJ_CPP_TEMPLATE_HELPERS_HPP
20template <
typename... Ts>
24template <
typename... Ts>
25using void_t =
typename make_void<Ts...>::type;
29template <
typename T,
typename,
template <
typename>
class... Checks>
31 using type = std::false_type;
33template <
typename T,
template <
typename>
class... Checks>
34struct supports_impl<T, void_t<Checks<T>...>, Checks...> {
35 using type = std::true_type;
38template <
typename T,
template <
typename>
class... Checks>
39using supports =
typename supports_impl<T, void, Checks...>::type;
41template <
typename Compare>
42using is_transparent =
typename Compare::is_transparent;
44template <
typename Compare>
45using has_is_transparent = detail::supports<Compare, is_transparent>;
Persistent memory namespace.
Definition: allocation_flag.hpp:15