14 using void_ptr = std::unique_ptr<void, void (*)(
void *)>;
17 template<
typename T,
typename... Args>
20 return {
new T(std::forward<Args>(args)...), [](
void * ptr) {
delete static_cast<T *
>(ptr); }};
27 return {ptr.release(), [](
void * ptr) {
delete static_cast<T *
>(ptr); }};
std::unique_ptr< void, void(*)(void *)> void_ptr
Definition: void_ptr.h:14
void_ptr make_void_ptr(Args &&... args)
Definition: void_ptr.h:18
Definition: void_ptr.h:33
T * operator()(void_ptr &ptr)
Definition: void_ptr.h:34
const T * operator()(const void_ptr &ptr)
Definition: void_ptr.h:36