31 operator()(T *obj)
const noexcept
44 template <
typename T,
void (*DeleterFn)(T *)>
struct ptr_deleter
47 operator()(T *obj)
const noexcept
63 operator()(T *obj)
const noexcept
68 ReferenceFn(&obj,
nullptr);
81 operator()(Derived *obj)
const noexcept
86 T *base =
reinterpret_cast<T *
>(obj);
93 template <
typename Derived>
using BaseType_t =
decltype(std::declval<Derived>().base);
96 template <
typename Derived>
using BaseBaseType_t =
decltype(std::declval<Derived>().base.base);
104 template <
typename Derived,
void (*DeleterFn)(detail::BaseBaseType_t<Derived> **)>
108 operator()(Derived *obj)
const noexcept
110 if (obj ==
nullptr) {
126 operator()(Derived *obj)
const noexcept
128 if (obj ==
nullptr) {
Deleter type for non-opaque twice-derived object types from interfaces with destroy functions that ta...
Definition xrt_deleters.hpp:106
Deleter type for non-opaque once-derived object types from interfaces with destroy functions that tak...
Definition xrt_deleters.hpp:124
Deleter type for opaque object types for interfaces with destroy functions that take pointers to inte...
Definition xrt_deleters.hpp:79
Deleter type for interfaces with destroy functions that take just pointers.
Definition xrt_deleters.hpp:45
Deleter type for interfaces with destroy functions that take pointers to interface pointers (so they ...
Definition xrt_deleters.hpp:29
Deleter type for ref-counted interfaces with two-parameter reference(dest, src) functions.
Definition xrt_deleters.hpp:61
decltype(std::declval< Derived >().base) BaseType_t
Get the base type of a non-opaque derived type.
Definition xrt_deleters.hpp:93
decltype(std::declval< Derived >().base.base) BaseBaseType_t
Get the base of the base type of a non-opaque derived type.
Definition xrt_deleters.hpp:96