⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 stl_config.h

📁 stl的源代码3.13版
💻 H
📖 第 1 页 / 共 2 页
字号:
/* * * Copyright (c) 1994 * Hewlett-Packard Company * * Permission to use, copy, modify, distribute and sell this software * and its documentation for any purpose is hereby granted without fee, * provided that the above copyright notice appear in all copies and * that both that copyright notice and this permission notice appear * in supporting documentation.  Hewlett-Packard Company makes no * representations about the suitability of this software for any * purpose.  It is provided "as is" without express or implied warranty. * * Copyright (c) 1997 * Silicon Graphics * * Permission to use, copy, modify, distribute and sell this software * and its documentation for any purpose is hereby granted without fee, * provided that the above copyright notice appear in all copies and * that both that copyright notice and this permission notice appear * in supporting documentation.  Silicon Graphics makes no * representations about the suitability of this software for any * purpose.  It is provided "as is" without express or implied warranty. * */#ifndef __STL_CONFIG_H# define __STL_CONFIG_H// Flags:// * __STL_NO_BOOL: defined if the compiler doesn't have bool as a builtin//   type.// * __STL_HAS_WCHAR_T: defined if the compier has wchar_t as a builtin type.// * __STL_NO_DRAND48: defined if the compiler doesn't have the drand48 //   function.// * __STL_STATIC_TEMPLATE_MEMBER_BUG: defined if the compiler can't handle//   static members of template classes.// * __STL_CLASS_PARTIAL_SPECIALIZATION: defined if the compiler supports//   partial specialization of template classes.// * __STL_PARTIAL_SPECIALIZATION_SYNTAX: defined if the compiler //   supports partial specialization syntax for full specialization of//   class templates.  (Even if it doesn't actually support partial //   specialization itself.)// * __STL_FUNCTION_TMPL_PARTIAL_ORDER: defined if the compiler supports//   partial ordering of function templates.  (a.k.a partial specialization//   of function templates.)// * __STL_MEMBER_TEMPLATES: defined if the compiler supports template//   member functions of classes.// * __STL_MEMBER_TEMPLATE_CLASSES: defined if the compiler supports //   nested classes that are member templates of other classes.// * __STL_EXPLICIT_FUNCTION_TMPL_ARGS: defined if the compiler //   supports calling a function template by providing its template//   arguments explicitly.// * __STL_LIMITED_DEFAULT_TEMPLATES: defined if the compiler is unable//   to handle default template parameters that depend on previous template//   parameters.// * __STL_NON_TYPE_TMPL_PARAM_BUG: defined if the compiler has trouble with//   function template argument deduction for non-type template parameters.// * __SGI_STL_NO_ARROW_OPERATOR: defined if the compiler is unable//   to support the -> operator for iterators.// * __STL_DEFAULT_CONSTRUCTOR_BUG: defined if T() does not work properly//   when T is a builtin type.// * __STL_USE_EXCEPTIONS: defined if the compiler (in the current compilation//   mode) supports exceptions.// * __STL_USE_NAMESPACES: defined if the compiler has the necessary//   support for namespaces.// * __STL_NO_EXCEPTION_HEADER: defined if the compiler does not have a//   standard-conforming header <exception>.// * __STL_NO_BAD_ALLOC: defined if the compiler does not have a <new>//   header, or if <new> does not contain a bad_alloc class.  If a bad_alloc//   class exists, it is assumed to be in namespace std.// * __STL_SGI_THREADS: defined if this is being compiled for an SGI IRIX//   system in multithreaded mode, using native SGI threads instead of //   pthreads.// * __STL_WIN32THREADS: defined if this is being compiled on a WIN32//   compiler in multithreaded mode.// * __STL_PTHREADS: defined if we should use portable pthreads//   synchronization.// * __STL_LONG_LONG if the compiler has long long and unsigned long long//   types.  (They're not in the C++ standard, but they are expected to be //   included in the forthcoming C9X standard.)// * __STL_THREADS is defined if thread safety is needed.// * __STL_VOLATILE is deifined to be "volatile" if threads are being//   used, and the empty string otherwise.// User-settable macros that control compilation:// * __STL_USE_SGI_ALLOCATORS: if defined, then the STL will use older//   SGI-style allocators, instead of standard-conforming allocators,//   even if the compiler supports all of the language features needed//   for standard-conforming allocators.// * __STL_NO_NAMESPACES: if defined, don't put the library in namespace//   std, even if the compiler supports namespaces.// * __STL_NO_RELOPS_NAMESPACE: if defined, don't put the relational//   operator templates (>, <=. >=, !=) in namespace std::rel_ops, even//   if the compiler supports namespaces and partial ordering of//   function templates.// * __STL_ASSERTIONS: if defined, then enable runtime checking through the//   __stl_assert macro.// * _PTHREADS: if defined, use Posix threads for multithreading support.// * _NOTHREADS: if defined, don't use any multithreading support.  // * __STL_USE_NEW_IOSTREAMS: if defined, then the STL will use new,//   standard-conforming iostreams (e.g. the <iosfwd> header).  If not//   defined, the STL will use old cfront-style iostreams (e.g. the//   <iostream.h> header).// Other macros defined by this file:// * bool, true, and false, if __STL_NO_BOOL is defined.// * typename, as a null macro if it's not already a keyword.// * explicit, as a null macro if it's not already a keyword.// * namespace-related macros (__STD, __STL_BEGIN_NAMESPACE, etc.)// * exception-related macros (__STL_TRY, __STL_UNWIND, etc.)// * __stl_assert, either as a test or as a null macro, depending on//   whether or not __STL_ASSERTIONS is defined.# if defined(_PTHREADS) && !defined(_NOTHREADS)#     define __STL_PTHREADS# endif# if defined(__sgi) && !defined(__GNUC__)#   include <standards.h>#   if !defined(_BOOL)#     define __STL_NO_BOOL#   endif#   if defined(_WCHAR_T_IS_KEYWORD)#     define __STL_HAS_WCHAR_T #   endif#   if !defined(_TYPENAME_IS_KEYWORD)#     define __STL_NEED_TYPENAME#   endif#   ifdef _PARTIAL_SPECIALIZATION_OF_CLASS_TEMPLATES#     define __STL_CLASS_PARTIAL_SPECIALIZATION#   endif#   if (_COMPILER_VERSION >= 730) && defined(_MIPS_SIM) && _MIPS_SIM != _ABI32#     define __STL_FUNCTION_TMPL_PARTIAL_ORDER#   endif#   ifdef _MEMBER_TEMPLATES#     define __STL_MEMBER_TEMPLATES#     define __STL_MEMBER_TEMPLATE_CLASSES#   endif#   if defined(_MEMBER_TEMPLATE_KEYWORD)#     define __STL_MEMBER_TEMPLATE_KEYWORD#   endif#   if defined(_STANDARD_C_PLUS_PLUS)#     define __STL_EXPLICIT_FUNCTION_TMPL_ARGS#   endif#   if (_COMPILER_VERSION >= 730) && defined(_MIPS_SIM) && _MIPS_SIM != _ABI32#     define __STL_MEMBER_TEMPLATE_KEYWORD#   endif#   if defined(_MIPS_SIM) && _MIPS_SIM != _MIPS_SIM_ABI32#     define __STL_DEFAULT_CONSTRUCTOR_BUG#   endif#   if !defined(_EXPLICIT_IS_KEYWORD)#     define __STL_NEED_EXPLICIT#   endif#   ifdef __EXCEPTIONS#     define __STL_USE_EXCEPTIONS#   endif#   if (_COMPILER_VERSION >= 721) && defined(_NAMESPACES)#     define __STL_HAS_NAMESPACES#   endif #   if (_COMPILER_VERSION < 721)#     define __STL_NO_EXCEPTION_HEADER#   endif#   if _COMPILER_VERSION < 730 || !defined(_STANDARD_C_PLUS_PLUS) || \      !defined(_NAMESPACES)#     define __STL_NO_BAD_ALLOC#   endif#   if !defined(_NOTHREADS) && !defined(__STL_PTHREADS)#     define __STL_SGI_THREADS#   endif#   if defined(_LONGLONG) && defined(_SGIAPI) && _SGIAPI#     define __STL_LONG_LONG#   endif#   if _COMPILER_VERSION >= 730 && defined(_STANDARD_C_PLUS_PLUS)#     define __STL_USE_NEW_IOSTREAMS#   endif#   if _COMPILER_VERSION >= 730 && defined(_STANDARD_C_PLUS_PLUS)#     define __STL_CAN_THROW_RANGE_ERRORS#   endif#   if _COMPILER_VERSION >= 730 && defined(_STANDARD_C_PLUS_PLUS)#     define __SGI_STL_USE_AUTO_PTR_CONVERSIONS#   endif# endif# ifdef __GNUC__#   if __GNUC__ == 2 && __GNUC_MINOR__ <= 7#     define __STL_STATIC_TEMPLATE_MEMBER_BUG#   endif#   if __GNUC__ < 2 #     define __STL_NEED_TYPENAME#     define __STL_NEED_EXPLICIT#   endif#   if __GNUC__ == 2 && __GNUC_MINOR__ >= 8#     define __STL_CLASS_PARTIAL_SPECIALIZATION#     define __STL_FUNCTION_TMPL_PARTIAL_ORDER#     define __STL_EXPLICIT_FUNCTION_TMPL_ARGS#     define __STL_MEMBER_TEMPLATES#     define __STL_CAN_THROW_RANGE_ERRORS      //    g++ 2.8.1 supports member template functions, but not member      //    template nested classes.#     if __GNUC_MINOR__ >= 9#       define __STL_MEMBER_TEMPLATE_CLASSES#     endif#   endif#   define __STL_DEFAULT_CONSTRUCTOR_BUG#   ifdef __EXCEPTIONS#     define __STL_USE_EXCEPTIONS#   endif#   ifdef _REENTRANT#     define __STL_PTHREADS#   endif# endif# if defined(__SUNPRO_CC) #   define __STL_NO_BOOL

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -