合法的方式将destructor信息存储到void*
Legit way to store a destructor information to a void*
在这样的函数指针中存储void指针的删除信息是否合法?
typedef void(*deleter)(void*);
template <class T> void deleteVoidPointer(void* target)
{
delete static_cast<T*>(target);
}
int main()
{
void* p = new int;
deleter del = deleteVoidPointer<int>;
del(p);
return 0;
}
我在这里是否缺少任何副作用,还是这是跟踪指针灾难信息信息的合法方法?(除了丢失的检查是否是deletevoidpointer中的nullptr(
是的,您显示的代码是完全有效的。
并且没有丢失的检查:在空指针上呼叫delete
无需做任何事情。
相关文章:
- 为什么随机数生成器不在void函数中随机化数字,而在main函数中随机化
- 将字符串存储在c++中的稳定内存中
- std::原子加载和存储都需要吗
- C++:将控制台输出存储在宏中更好吗
- 如何将 std::string 作为构造函数参数传递,并将其保存的 C 字符串存储在 void 指针中?
- 合法的方式将destructor信息存储到void*
- 在 void 指针中存储整数的往返安全性
- 如何在 c++ 结构中的 void* 变量中调用存储函数(回调)
- 从void Pointer(创建通用存储)铸造有什么问题
- void 函数 C++ 错误 此声明没有存储类或类型说明符
- 如何将 void 指针类型转换为 int 指针,然后在其中存储 int
- c++将存储在std::vector中的数据传递给c_func(void*data)
- 存储各种 void 函数指针的向量及其参数
- 可以在C++中用void指针存储类对象的地址
- C++中存储在void中的值是多少
- RAII - 存储"void*&"或"void**"
- 为Node.js插件在void *中检索和存储V8对象
- 我想存储函数的void指针以及它们的类型
- 将派生对象存储到void*中,然后从中抛出基对象是否不安全
- 如何在堆栈c++容器中存储void*