STL stl_config.h】的更多相关文章

stl_config.h . // Filename: stl_config.h . . // Comment By: 凝霜 . // E-mail: mdl2009@vip.qq.com . // Blog: http://blog.csdn.net/mdl13412 . . /* 8. * Copyright (c) 1996-1997 9. * Silicon Graphics Computer Systems, Inc. 10. * 11. * Permission to use, co…
四.宏: (其实呢, 我们所有的宏都包含在了 "stl_config.h"头文件中.) //这些宏是怎么判断是否需要定义:是否有指定的宏,还有一些特定的编译器也可能支持. 4.1. __STL_THROW_RANGE_ERRORS //允许抛出范围异常. 4.2. __STL_NO_BOOL //没有定义原生_BOOL : if !define(_BOOL) __STL_NO_BOOL 4.3. __STL_HAS_WCHAR_T //有wchar_t类型. if define(_WH…
defalloc.h . // Filename: defalloc.h . . // Comment By: 凝霜 . // E-mail: mdl2009@vip.qq.com . // Blog: http://blog.csdn.net/mdl13412 . . /* 8. * 9. * Copyright (c) 1994 10. * Hewlett-Packard Company 11. * 12. * Permission to use, copy, modify, distrib…
# // Comment By: 凝霜 # // E-mail: mdl2009@vip.qq.com # // Blog: http://blog.csdn.net/mdl13412 # # // 特别说明: SGI STL的allocator在我的编译环境下不使用内存池 # // 而其内存池不进行内存释放操作, 其释放时机为程序退出或者stack unwinding # // 由操作系统保证内存的回收 # # /* # * Copyright (c) 1996-1997 # * Silico…
stl_uninitialized.h // Filename: stl_uninitialized.h // Comment By: 凝霜 // E-mail: mdl2009@vip.qq.com // Blog: http://blog.csdn.net/mdl13412 // 主要接口: // // template <class InputIterator, class ForwardIterator> // inline ForwardIterator // uninitializ…
stl_construct.h // Filename: stl_construct.h // Comment By: 凝霜 // E-mail: mdl2009@vip.qq.com // Blog: http://blog.csdn.net/mdl13412 /* * * Copyright (c) 1994 * Hewlett-Packard Company * * Permission to use, copy, modify, distribute and sell this soft…
上节给出了iterator_traits以及用到traits机制的部分函数的完整代码,可以看到traits机制能够提取迭代器的特性从而调用不同的函数,实现效率的最大化.显然这么好的机制不应该仅局限于在STL里面使用,在前某一节中我们也有说到,traits机制能够萃取类的特性,而这个类分为两个类别,一是迭代器类,二普通类,迭代器类我们已经有所了解了,那么本节就来学习负责萃取普通类型特性的__type_traits吧. 于普通类型而言,我们所关注的特性是指:这个类型是否具备non-trivial d…
操作系统:centos 6.4STL源码版本:3.3 前言:    要看一个项目的源码,首先要选中切入点.    那么在sgi stl 标准库中,其切入点是什么呢?    答案是:stl_config.h 文件. 不同的编译器对C++语言的支持程度不尽相同.为了具备广泛移植能力,SGI STL  定义了一个环境组态文件<stl_config.h>.其中声明了许多宏定义,在预编译的时候,通过这些宏定义来编译出对于平台的程序. 1,stl_config.h在linux平台下的实现:        …
前言 在STL中.算法是常常被使用的,算法在整个STL中起到很关键的数据.本节介绍的是一些基本算法,包括equal.fill.fill_n,iter_swap.lexicographical_compare.max,min.mismatch,swap,copy,copy_backward.copy_n.当中一个比較重要的算法就是copy.针对copy的剖析在源代码中能够看到具体的注解. 本文剖析的源代码出自SGL STL中的<stl_algobase.h>文件. 基本算法剖析 #ifndef…
/* stl_alloc.h */ SGI STL空间适配器的主要由alloc.h和stl_alloc.h实现 SGI STL空间适配器的核心: 第一级适配器__malloc_alloc_template:直接调用malloc()和free()函数 第二级适配器__default_alloc_template:当配置区块超过128B时调用一级适配器;否则采用内存池管理空间的分配 第二级配置器工作流程:当配置区块超过128B时调用一级适配器;否则,从自由链表维护的内存块中申请内存,若没有对应申请大…