stl_conf.h
资源名称:STL_doc.rar [点击查看]
上传用户:nizebo
上传日期:2022-05-14
资源大小:882k
文件大小:20k
源码类别:
STL
开发平台:
Visual C++
- /*
- *
- * 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_STATIC_CONST_INIT_BUG: defined if the compiler can't handle a
- // constant-initializer in the declaration of a static const data member
- // of integer type. (See section 9.4.2, paragraph 4, of the C++ standard.)
- // * __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_TEMPLATE_FRIENDS: defined if the compiler supports templatized
- // friend declarations.
- // * __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_UITHREADS: defined if we should use UI / solaris / UnixWare threads
- // synchronization. UIthreads are similar to pthreads, but are based
- // on an earlier version of the Posix threads standard.
- // * __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 defined to be "volatile" if threads are being
- // used, and the empty string otherwise.
- // * __STL_USE_CONCEPT_CHECKS enables some extra compile-time error
- // checking to make sure that user-defined template arguments satisfy
- // all of the appropriate requirements. This may result in more
- // comprehensible error messages. It incurs no runtime overhead. This
- // feature requires member templates and partial specialization.
- // * __STL_NO_USING_CLAUSE_IN_CLASS: The compiler does not handle "using"
- // clauses inside of class definitions.
- // * __STL_NO_FRIEND_TEMPLATE_CLASS: The compiler does not handle friend
- // declaractions where the friend is a template class.
- // * __STL_NO_FUNCTION_PTR_IN_CLASS_TEMPLATE: The compiler does not
- // support the use of a function pointer type as the argument
- // for a template.
- // * __STL_MEMBER_TEMPLATE_KEYWORD: standard C++ requires the template
- // keyword in a few new places (14.2.4). This flag is set for
- // compilers that support (and require) this usage.
- // 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.
- // * _UITHREADS:if defined, use SCO/Solaris/UI threads for multithreading
- // support
- // * _NOTHREADS: if defined, don't use any multithreading support.
- // * _STL_NO_CONCEPT_CHECKS: if defined, disables the error checking that
- // we get from __STL_USE_CONCEPT_CHECKS.
- // * __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(_UITHREADS) && !defined(_PTHREADS) && !defined(_NOTHREADS)
- # define __STL_UITHREADS
- # endif
- # if defined(__sgi) && !defined(__GNUC__)
- # include <standards.h>
- # if !defined(_BOOL)
- # define __STL_NO_BOOL
- # endif
- # if defined(_MIPS_SIM) && _MIPS_SIM == _ABIO32
- # define __STL_STATIC_CONST_INIT_BUG
- # 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 != _ABIO32
- # define __STL_FUNCTION_TMPL_PARTIAL_ORDER
- # endif
- # ifdef _MEMBER_TEMPLATES
- # define __STL_MEMBER_TEMPLATES
- # define __STL_TEMPLATE_FRIENDS
- # 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 != _ABIO32
- # define __STL_MEMBER_TEMPLATE_KEYWORD
- # endif
- # if COMPILER_VERSION < 720 || (defined(_MIPS_SIM) && _MIPS_SIM == _ABIO32)
- # 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) ||
- !defined(__STL_HAS_NAMESPACES) || defined(__STL_NO_NAMESPACES)
- # 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
- /*
- * Jochen Schlick '1999 - added new #defines (__STL)_UITHREADS (for
- * providing SCO / Solaris / UI thread support)
- * - added the necessary defines for the SCO UDK 7
- * compiler (and its template friend behavior)
- * - all UDK7 specific STL changes are based on the
- * macro __USLC__ being defined
- */
- // SCO UDK 7 compiler (UnixWare 7x, OSR 5, UnixWare 2x)
- # if defined(__USLC__)
- # define __STL_HAS_WCHAR_T
- # define __STL_CLASS_PARTIAL_SPECIALIZATION
- # define __STL_PARTIAL_SPECIALIZATION_SYNTAX
- # define __STL_FUNCTION_TMPL_PARTIAL_ORDER
- # define __STL_MEMBER_TEMPLATES
- # define __STL_MEMBER_TEMPLATE_CLASSES
- # define __STL_USE_EXCEPTIONS
- # define __STL_HAS_NAMESPACES
- # define __STL_USE_NAMESPACES
- # define __STL_LONG_LONG
- # if defined(_REENTRANT)
- # define _UITHREADS /* if UnixWare < 7.0.1 */
- # define __STL_UITHREADS
- // use the following defines instead of the UI threads defines when
- // you want to use POSIX threads
- //# define _PTHREADS /* only if UnixWare >=7.0.1 */
- //# define __STL_PTHREADS
- # 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_NO_EXCEPTION_HEADER
- # define __STL_NO_BAD_ALLOC
- # 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
- # define __STL_TEMPLATE_FRIENDS
- # define __SGI_STL_USE_AUTO_PTR_CONVERSIONS
- # define __STL_HAS_NAMESPACES
- //# define __STL_USE_NEW_IOSTREAMS
- # endif
- # endif
- # define __STL_DEFAULT_CONSTRUCTOR_BUG
- # ifdef __EXCEPTIONS
- # define __STL_USE_EXCEPTIONS
- # endif
- # ifdef _REENTRANT
- # define __STL_PTHREADS
- # endif
- # if (__GNUC__ < 2) || (__GNUC__ == 2 && __GNUC_MINOR__ < 95)
- # define __STL_NO_FUNCTION_PTR_IN_CLASS_TEMPLATE
- # endif
- # endif
- # if defined(__SUNPRO_CC)
- # define __STL_NO_BOOL
- # define __STL_NEED_TYPENAME
- # define __STL_NEED_EXPLICIT
- # define __STL_USE_EXCEPTIONS
- # ifdef _REENTRANT
- # define __STL_PTHREADS
- # endif
- # define __SGI_STL_NO_ARROW_OPERATOR
- # define __STL_PARTIAL_SPECIALIZATION_SYNTAX
- # define __STL_NO_EXCEPTION_HEADER
- # define __STL_NO_BAD_ALLOC
- # endif
- # if defined(__COMO__)
- # define __STL_MEMBER_TEMPLATES
- # define __STL_MEMBER_TEMPLATE_CLASSES
- # define __STL_TEMPLATE_FRIENDS
- # define __STL_CLASS_PARTIAL_SPECIALIZATION
- # define __STL_USE_EXCEPTIONS
- # define __STL_HAS_NAMESPACES
- # endif
- // Intel compiler, which uses the EDG front end.
- # if defined(__ICL)
- # define __STL_LONG_LONG
- # define __STL_MEMBER_TEMPLATES
- # define __STL_MEMBER_TEMPLATE_CLASSES
- # define __STL_TEMPLATE_FRIENDS
- # define __STL_FUNCTION_TMPL_PARTIAL_ORDER
- # define __STL_CLASS_PARTIAL_SPECIALIZATION
- # define __STL_NO_DRAND48
- # define __STL_HAS_NAMESPACES
- # define __STL_USE_EXCEPTIONS
- # define __STL_MEMBER_TEMPLATE_KEYWORD
- # ifdef _CPPUNWIND
- # define __STL_USE_EXCEPTIONS
- # endif
- # ifdef _MT
- # define __STL_WIN32THREADS
- # endif
- # endif
- // Mingw32, egcs compiler using the Microsoft C runtime
- # if defined(__MINGW32__)
- # define __STL_NO_DRAND48
- # ifdef _MT
- # define __STL_WIN32THREADS
- # endif
- # endif
- // Cygwin32, egcs compiler on MS Windows
- # if defined(__CYGWIN__)
- # define __STL_NO_DRAND48
- # endif
- // Microsoft compiler.
- # if defined(_MSC_VER) && !defined(__ICL) && !defined(__MWERKS__)
- # define __STL_NO_DRAND48
- # define __STL_STATIC_CONST_INIT_BUG
- # define __STL_NEED_TYPENAME
- # define __STL_NO_USING_CLAUSE_IN_CLASS
- # define __STL_NO_FRIEND_TEMPLATE_CLASS
- # if _MSC_VER < 1100 /* 1000 is version 4.0, 1100 is 5.0, 1200 is 6.0. */
- # define __STL_NEED_EXPLICIT
- # define __STL_NO_BOOL
- # define __STL_NO_BAD_ALLOC
- # endif
- # if _MSC_VER > 1000
- # include <yvals.h>
- # define __STL_DONT_USE_BOOL_TYPEDEF
- # endif
- # define __STL_NON_TYPE_TMPL_PARAM_BUG
- # define __SGI_STL_NO_ARROW_OPERATOR
- # define __STL_DEFAULT_CONSTRUCTOR_BUG
- # ifdef _CPPUNWIND
- # define __STL_USE_EXCEPTIONS
- # endif
- # ifdef _MT
- # define __STL_WIN32THREADS
- # endif
- # if _MSC_VER >= 1200
- # define __STL_PARTIAL_SPECIALIZATION_SYNTAX
- # define __STL_HAS_NAMESPACES
- # define __STL_CAN_THROW_RANGE_ERRORS
- # define NOMINMAX
- # undef min
- # undef max
- // disable warning 'initializers put in unrecognized initialization area'
- # pragma warning ( disable : 4075 )
- // disable warning 'empty controlled statement found'
- # pragma warning ( disable : 4390 )
- // disable warning 'debug symbol greater than 255 chars'
- # pragma warning ( disable : 4786 )
- # endif
- # if _MSC_VER < 1100
- # define __STL_NO_EXCEPTION_HEADER
- # define __STL_NO_BAD_ALLOC
- # endif
- // Because of a Microsoft front end bug, we must not provide a
- // namespace qualifier when declaring a friend function.
- # define __STD_QUALIFIER
- # endif
- # if defined(__BORLANDC__)
- # define __STL_NO_BAD_ALLOC
- # define __STL_NO_DRAND48
- # define __STL_DEFAULT_CONSTRUCTOR_BUG
- # if __BORLANDC__ >= 0x540 /* C++ Builder 4.0 */
- # define __STL_CLASS_PARTIAL_SPECIALIZATION
- # define __STL_FUNCTION_TMPL_PARTIAL_ORDER
- # define __STL_EXPLICIT_FUNCTION_TMPL_ARGS
- # define __STL_MEMBER_TEMPLATES
- # define __STL_TEMPLATE_FRIENDS
- # else
- # define __STL_NEED_TYPENAME
- # define __STL_LIMITED_DEFAULT_TEMPLATES
- # define __SGI_STL_NO_ARROW_OPERATOR
- # define __STL_NON_TYPE_TMPL_PARAM_BUG
- # endif
- # ifdef _CPPUNWIND
- # define __STL_USE_EXCEPTIONS
- # endif
- # ifdef __MT__
- # define __STL_WIN32THREADS
- # endif
- # endif
- # if defined(__STL_NO_BOOL) && !defined(__STL_DONT_USE_BOOL_TYPEDEF)
- typedef int bool;
- # define true 1
- # define false 0
- # endif
- # ifdef __STL_NEED_TYPENAME
- # define typename
- # endif
- # ifdef __STL_LIMITED_DEFAULT_TEMPLATES
- # define __STL_DEPENDENT_DEFAULT_TMPL(_Tp)
- # else
- # define __STL_DEPENDENT_DEFAULT_TMPL(_Tp) = _Tp
- # endif
- # ifdef __STL_MEMBER_TEMPLATE_KEYWORD
- # define __STL_TEMPLATE template
- # else
- # define __STL_TEMPLATE
- # endif
- # ifdef __STL_NEED_EXPLICIT
- # define explicit
- # endif
- # ifdef __STL_EXPLICIT_FUNCTION_TMPL_ARGS
- # define __STL_NULL_TMPL_ARGS <>
- # else
- # define __STL_NULL_TMPL_ARGS
- # endif
- # if defined(__STL_CLASS_PARTIAL_SPECIALIZATION)
- || defined (__STL_PARTIAL_SPECIALIZATION_SYNTAX)
- # define __STL_TEMPLATE_NULL template<>
- # else
- # define __STL_TEMPLATE_NULL
- # endif
- // Use standard-conforming allocators if we have the necessary language
- // features. __STL_USE_SGI_ALLOCATORS is a hook so that users can
- // disable new-style allocators, and continue to use the same kind of
- // allocators as before, without having to edit library headers.
- # if defined(__STL_CLASS_PARTIAL_SPECIALIZATION) &&
- defined(__STL_MEMBER_TEMPLATES) &&
- defined(__STL_MEMBER_TEMPLATE_CLASSES) &&
- !defined(__STL_NO_BOOL) &&
- !defined(__STL_NON_TYPE_TMPL_PARAM_BUG) &&
- !defined(__STL_LIMITED_DEFAULT_TEMPLATES) &&
- !defined(__STL_USE_SGI_ALLOCATORS)
- # define __STL_USE_STD_ALLOCATORS
- # endif
- # ifndef __STL_DEFAULT_ALLOCATOR
- # ifdef __STL_USE_STD_ALLOCATORS
- # define __STL_DEFAULT_ALLOCATOR(T) allocator< T >
- # else
- # define __STL_DEFAULT_ALLOCATOR(T) alloc
- # endif
- # endif
- // __STL_NO_NAMESPACES is a hook so that users can disable namespaces
- // without having to edit library headers. __STL_NO_RELOPS_NAMESPACE is
- // a hook so that users can disable the std::rel_ops namespace, keeping
- // the relational operator template in namespace std, without having to
- // edit library headers.
- # if defined(__STL_HAS_NAMESPACES) && !defined(__STL_NO_NAMESPACES)
- # define __STL_USE_NAMESPACES
- # define __STD std
- # define __STL_BEGIN_NAMESPACE namespace std {
- # define __STL_END_NAMESPACE }
- # if defined(__STL_FUNCTION_TMPL_PARTIAL_ORDER) &&
- !defined(__STL_NO_RELOPS_NAMESPACE)
- # define __STL_USE_NAMESPACE_FOR_RELOPS
- # define __STL_BEGIN_RELOPS_NAMESPACE namespace std { namespace rel_ops {
- # define __STL_END_RELOPS_NAMESPACE } }
- # define __STD_RELOPS std::rel_ops
- # else /* Use std::rel_ops namespace */
- # define __STL_USE_NAMESPACE_FOR_RELOPS
- # define __STL_BEGIN_RELOPS_NAMESPACE namespace std {
- # define __STL_END_RELOPS_NAMESPACE }
- # define __STD_RELOPS std
- # endif /* Use std::rel_ops namespace */
- # else
- # define __STD
- # define __STL_BEGIN_NAMESPACE
- # define __STL_END_NAMESPACE
- # undef __STL_USE_NAMESPACE_FOR_RELOPS
- # define __STL_BEGIN_RELOPS_NAMESPACE
- # define __STL_END_RELOPS_NAMESPACE
- # define __STD_RELOPS
- # undef __STL_USE_NAMESPACES
- # endif
- // Some versions of the EDG front end sometimes require an explicit
- // namespace spec where they shouldn't. This macro facilitates that.
- // If the bug becomes irrelevant, then all uses of __STD_QUALIFIER
- // should be removed. The 7.3 beta SGI compiler has this bug, but the
- // MR version is not expected to have it.
- # if defined(__STL_USE_NAMESPACES) && !defined(__STD_QUALIFIER)
- # define __STD_QUALIFIER std::
- # else
- # define __STD_QUALIFIER
- # endif
- # ifdef __STL_USE_EXCEPTIONS
- # define __STL_TRY try
- # define __STL_CATCH_ALL catch(...)
- # define __STL_THROW(x) throw x
- # define __STL_RETHROW throw
- # define __STL_NOTHROW throw()
- # define __STL_UNWIND(action) catch(...) { action; throw; }
- # else
- # define __STL_TRY
- # define __STL_CATCH_ALL if (false)
- # define __STL_THROW(x)
- # define __STL_RETHROW
- # define __STL_NOTHROW
- # define __STL_UNWIND(action)
- # endif
- #ifdef __STL_ASSERTIONS
- # include <stdio.h>
- # define __stl_assert(expr)
- if (!(expr)) { fprintf(stderr, "%s:%d STL assertion failure: %sn",
- __FILE__, __LINE__, # expr); abort(); }
- #else
- # define __stl_assert(expr)
- #endif
- #if defined(__STL_WIN32THREADS) || defined(__STL_SGI_THREADS)
- || defined(__STL_PTHREADS) || defined(__STL_UITHREADS)
- # define __STL_THREADS
- # define __STL_VOLATILE volatile
- #else
- # define __STL_VOLATILE
- #endif
- #if defined(__STL_CLASS_PARTIAL_SPECIALIZATION)
- && defined(__STL_MEMBER_TEMPLATES)
- && !defined(_STL_NO_CONCEPT_CHECKS)
- # define __STL_USE_CONCEPT_CHECKS
- #endif
- #endif /* __STL_CONFIG_H */
- // Local Variables:
- // mode:C++
- // End: