2 spch2008 spch2008 于 2013.06.04 20:23 提问

C++ STL 模板 析构函数

今天看STL源码分析,内部一个destroy函数
template
inline void destroy(T* pointer)
{
pointer->~T();
}

当T为int的时候,如:
int *ptr = new int;
destroy(ptr);
这样就可以编译通过,而直接ptr->~int();就报错。
这是为什么啊,求指点。

2个回答

wangyaninglm
wangyaninglm   Ds   Rxr 2015.01.15 21:54
John_ToString
John_ToString   2015.12.05 14:33

因为int 是内置类型,系统并没有给他提供析构函数

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!