前几天学了replacement new写的小玩意
#include <iostream>
#include <functional>
#include <string>
// 可能因为const char*类型的缘故
// 用const ArgsT&&...会报错
// 测试用类
struct Test
{
Test()
{
std::cout << "constructed" << std::endl;
};
~Test()
{
std::cout << "destructed" << std::endl;
};
};
// 析构器
template <typename T = char[]>
struct Destructor
{
void operator()(void *ptr)
{
T *obj = (T *)ptr;
// 调用析构函数
obj->~T();
};