2 * Copyright (C) 2024 Jérémie Galarneau <jeremie.galarneau@efficios.com>
4 * SPDX-License-Identifier: LGPL-2.1-only
8 #ifndef LTTNG_META_HELPERS_HPP
9 #define LTTNG_META_HELPERS_HPP
14 * Collection of meta-programming helpers.
16 * @see type-traits.hpp
20 template <typename WrappedType, void (*DeleterFunction)(WrappedType *)>
21 struct create_deleter_class {
23 void operator()(WrappedType *instance) const
25 DeleterFunction(instance);
29 std::unique_ptr<WrappedType, deleter> operator()(WrappedType *instance) const
31 return std::unique_ptr<WrappedType, deleter>(instance);
34 } /* namespace memory */
35 } /* namespace lttng */
37 #endif /* LTTNG_META_HELPERS_HPP */