sgi stl_config.h 各种宏的含义

stl_config.h  
  由于不同的编译环境对标准C++的支持不完全相同,出于移植性的考虑,SGI   STL定义了这个文件。它通过条件编译针对不同的编译器作了部分常数设定,对编译器的设定如下:  
  1)   如果没有定义bool,true,false,定义   __STL_NEED_BOOL。  
  2)   如果不支持drand48(采用了48bit计算,产生双精度的伪随机数),定义   __STL_NO_DRAND48。  
  3)   如果不支持类模板的静态成员,定义   __STL_STATIC_TEMPLATE_MEMBER_BUG。  
  4)   如果不支持关键字typename,定义typename为一个空宏(null   macro)。  
  5)   如果支持类模板局部特殊化(partial   specialization   of   class   templates),定义   __STL_CLASS_PARTIAL_SPECIALIZATION。  
  6)   如果支持函数模板局部特殊化(partial   specialization   of   function   templates),定义   Defines   __STL_FUNCTION_TMPL_PARTIAL_ORDER。  
  7)   如果函数模板可以指明参数类型,定义   __STL_EXPLICIT_FUNCTION_TMPL_ARGS(SGI   STL中未使用)。  
  8)   如果类中可定义函数模板为成员,定义   __STL_MEMBER_TEMPLATES。  
  9)   如果不支持关键字explicit,定义explicit为为一个空宏。  
  10)   如果不能根据前一个模板参数设定后一个模板参数,定义   __STL_LIMITED_DEFAULT_TEMPLATES。  
  11)   如果对无类型模板参数(non-type   template   parameters)执行函数模板的参数推导出错,定义   __STL_NON_TYPE_TMPL_PARAM_BUG。  
  12)   如果不支持iterators的->操作符,定义   __SGI_STL_NO_ARROW_OPERATOR。  
  13)   如果支持异常处理(exceptions),定义   __STL_USE_EXCEPTIONS。    
  14)   如果把STL放在一个namespace中,定义   __STL_USE_NAMESPACES。  
  15)   如果使用SGI编译,没有选择pthreads或其他threads,定义   __STL_SGI_THREADS。    
  16)   如果使用WIN32的多线程模式(multithreaded   mode)编译,定义   __STL_WIN32THREADS。  
  17)   适当定义namespace相关宏(__STD,   __STL_BEGIN_NAMESPACE,   等)。  
  18)   适当定义exception相关宏   (__STL_TRY,   __STL_UNWIND,   等)。  
  19)   如果没有定义__STL_ASSERTIONS,定义__stl_assert为一个空宏。  
  20)   如果定义__STL_EXPLICIT_FUNCTION_IMPL_ARGS,定义__STL_NULL_TMPL_ARGS为<>,否则为空宏。  
  21)   如果定义__STL_CLASS_PARTIAL_SPECIALIZATION,定义__STL_TEMPLATE_NULL为template   <>,否则为空宏。  
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值