STL源代码分析(ch2 内存分配)destroy
生活随笔
收集整理的这篇文章主要介绍了
STL源代码分析(ch2 内存分配)destroy
小编觉得挺不错的,现在分享给大家,帮大家做个参考.
1. 两个版本
1.1 参数是指针
template <class T> inline void destroy(T* pointer) {pointer->~T(); // 调用析构函数 }1.2. 参数接受两个迭代器
接受两个迭代器。它会设法找出元素的数值型別,进而利用 __type_traits<> 求取最适当措施。
template <class ForwardIterator> inline void destroy(ForwardIterator first, ForwardIterator last) {__destroy(first, last, value_type(first)); }->
判断元素的数值型別(value type)是否有 trivial destructor,分别调用上面的函数进行不同的处理
->
// 如果元素的数值型別(value type)有 non-trivial destructor… template <class ForwardIterator> inline void __destroy_aux(ForwardIterator first, ForwardIterator last, __false_type) {for ( ; first < last; ++first)destroy(&*first);//调用析构函数 }// 如果元素的数值型別(value type)有 trivial destructor… template <class ForwardIterator> inline void __destroy_aux(ForwardIterator, ForwardIterator, __true_type) {}//不调用析构函数总结
以上是生活随笔为你收集整理的STL源代码分析(ch2 内存分配)destroy的全部内容,希望文章能够帮你解决所遇到的问题。
- 上一篇: stdthread(3)detach
- 下一篇: stdthread(5)并发atomic