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币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
C/C++编程细节(三)——类、继承、模板、运算符重载
1、类、派生类 C++中类的概念很重要,重要到什么程度呢?把class/struct看成和main同一个等级,为什么这么说呢?因为,C++中不允许全局变量独立于类外, 所以,在一个C++文件中,除了头文件,就是class和main了。当然这只是其中一个原因。另外,类可以看做一种类型,和C中struct类似的一种类型。
STL源码笔记(17)—二叉排序树BST(C++封装)
STL 二叉排序树的C++实现
STL容器和析构函数 注意事项
局部变量存入容器会调用拷贝构造函数而后存放在堆区生命周期变长 容器调用clearerase或者容器离开作用域会调用元素的析构函数 容器存放对象指针并不会调用析构函数 假设有一个类如下: class Foo { public: Foo(int n_){ n = n_; printf("Foo() %d\n", n);...
C模板实现STL容器中的vector
C模板实现STL容器中的vector 最近在工作中因为一直用C语言开发,刚好有点闲时间就准备写一个C的STL作为以后开发使用。因为实习的公司不能上外网,每天晚上再重写一下白天的代码,也确实够苦逼的。话不多说,下面就说说C语言中模板实现的几种方法吧! 1,C语言模板实现技术 1.1 宏替换来实现 C语言中宏是实现很多高级功能的有力武器,其中宏函数可以完成一些比较给
STL vector的构造函数和析构函数(2)
public member function std::vector::vector C++98 C++11 default (1) explicit vector (const allocator_type& alloc = allocator_type()); fill (2) explicit vec
stl模板库的c语言实现
libcstl-2.3.0,用c语言实现的c++ 模板库,包含map、tree、list、vector等的实现。
[STL]显示调用析构函数
1:显式调用构造函数的时候,析构函数相当于的一个普通的成员函数,执行函数内部的语句 2:编译器隐式调用析构函数,如果分配了堆内存,显式调用析构的话引起重复释放堆内存的异常(显示调用时释放一次堆内存,隐式调用时又释放一次堆内存) 3:把一个对象看作占用了部分栈内存,占用了部分堆内存(如果申请了的话),这样便于理解这个问题,系统隐式调用析构函数的时候,会加入释放栈内存的动作(而堆内
C/C++学习笔记(十)标准模板库STL和string
STL(standard template libary)就是标准模板库,这是惠普实验室开发的一系列软件的统称。它是由Alexander Stepanov、Meng Lee和David R Musser在惠普实验室工作时所开发出来的。现在虽说它主要出现在C++中,是C++标准的一部分,而且关于这个库好几种不同的实现,微软也有自己的实现,但在被引入C++之前该技术就已经存在了很长的一段时间。 S
【C/C++】STL学习笔记
#STL ##什么是STL STL(Standard Template Library)是C++标准库的一部分(80%),是用C++ Template机制来表达泛型的库。 面向过程——基于对象——面向对象——泛型 STL其实就是一个模板库,这个模板库主要由以下几个组件组成: Iterator(迭代器):正向迭代器、反向迭代器、文件流迭代器。 Container(容器):数组、链表、栈、队列、set、map等。
C++ STL template 重要吗?
此前,在网上学习和朋友交流已经明白那些常用的模板原理,但我不满足对知识的模糊理解,我想透彻理解这些东西,决心拿出我的法宝继续学习,但至少目前来看,会造template越来越少了,学好template还是有很多好处,观点如下。赞成的:    第一,减小代码的冗余度。    第二,有助于对泛型思想的理解,不局限于语言。    第三,成为C/C++高手的必经之路,当然也要把编译原理学好。反对的: