38 #ifndef LIBPMEMOBJ_DESTROYER_HPP 39 #define LIBPMEMOBJ_DESTROYER_HPP 63 struct if_not_array<T[]>;
68 template <
typename T,
size_t N>
69 struct if_not_array<T[N]>;
81 struct if_size_array<T[]>;
86 template <
typename T,
size_t N>
87 struct if_size_array<T[N]> {
96 create(
typename if_not_array<T>::type *args)
104 template <typename T>
106 create(typename if_size_array<T>::type *args)
108 typedef typename detail::pp_array_type<T>::type I;
109 enum { N = pp_array_elems<T>::elems };
111 for (std::size_t i = 0; i < N; ++i)
112 create<I>(&(*args)[i]);
118 template <
typename T>
120 destroy(
typename if_not_array<T>::type &arg)
128 template <
typename T>
130 destroy(
typename if_size_array<T>::type &arg)
132 typedef typename detail::pp_array_type<T>::type I;
133 enum { N = pp_array_elems<T>::elems };
135 for (std::size_t i = 0; i < N; ++i)
136 destroy<I>(arg[N - 1 - i]);
Definition: condition_variable.hpp:48