【发布时间】:2018-01-17 08:48:56
【问题描述】:
我有一个简单的结构,它具有固定大小并包含内置类型。我通过分配内存块来创建内存池,并将此内存拆分为结构大小的块。然后它使用placement new 在特定内存块上调用构造函数,以使用默认值初始化一些成员。然后我想通过调用 delete[] 操作符来释放整个内存块。我可以安全地跳过使用placement new 初始化的每个对象的显式析构函数调用吗?我没有在构造函数内或该类的其他成员字段的构造函数内找到任何资源。我只想释放整个内存块。
【问题讨论】:
-
请出示您的代码而不是解释它。
-
不太清楚你到底在做什么,但一般来说,当且仅当对象可以被简单地破坏时,你可以跳过运行析构函数。
-
@BaummitAugen 在这种情况下,优化器无论如何都会这样做,所以人们不应该真正考虑它
标签: c++ destructor placement-new