template<typename T, typename... Args> void release(T *ptr, Args... args) { ptr->~T(); operator delete(ptr, std::forward<Args>(args)...); }