这个符号似乎是编译器生成的析构函数。这个“编译器生成的析构函数”和“标量删除析构函数”有什么区别?是否有任何其他类型的编译器生成 ctor/dtor?
问问题
8540 次
1 回答
12
名为'scalar deleting destructor'
和的函数是 VC 编译器在为语句'vector deleting destructor'
生成代码时创建的辅助函数。delete
不要将它们与也可能由编译器生成的类析构函数混淆。前者可以用伪代码表示为
void scalar_deleting_destructor(A* pa)
{
pa->~A();
A::operator delete(pa);
}
后者作为
void vector_deleting_destructor(A* pa, size_t count)
{
for (size_t i = 0; i < count; ++i)
pa[i].~A();
A::operator delete[](pa);
}
于 2012-06-27T12:16:17.287 回答