- Main Page
- Namespaces
- Classes
- Files
- Related Pages

# /Users/fpy/titan-1-5-MBARI/Mers/Executives/DeductiveController/Configs/TI_DSP_BIOS/stl/stl_config.h

    00001 /*
    00002  *
    00003  * Copyright (c) 1994
    00004  * Hewlett-Packard Company
    00005  *
    00006  * Permission to use, copy, modify, distribute and sell this software
    00007  * and its documentation for any purpose is hereby granted without fee,
    00008  * provided that the above copyright notice appear in all copies and
    00009  * that both that copyright notice and this permission notice appear
    00010  * in supporting documentation.  Hewlett-Packard Company makes no
    00011  * representations about the suitability of this software for any
    00012  * purpose.  It is provided "as is" without express or implied warranty.
    00013  *
    00014  * Copyright (c) 1997
    00015  * Silicon Graphics
    00016  *
    00017  * Permission to use, copy, modify, distribute and sell this software
    00018  * and its documentation for any purpose is hereby granted without fee,
    00019  * provided that the above copyright notice appear in all copies and
    00020  * that both that copyright notice and this permission notice appear
    00021  * in supporting documentation.  Silicon Graphics makes no
    00022  * representations about the suitability of this software for any
    00023  * purpose.  It is provided "as is" without express or implied warranty.
    00024  *
    00025  */
    00026
    00027 #ifndef __STL_CONFIG_H
    00028 # define __STL_CONFIG_H
    00029
    00030 // Flags:
    00031 // * __STL_NO_BOOL: defined if the compiler doesn't have bool as a builtin
    00032 //   type.
    00033 // * __STL_HAS_WCHAR_T: defined if the compier has wchar_t as a builtin type.
    00034 // * __STL_NO_DRAND48: defined if the compiler doesn't have the drand48
    00035 //   function.
    00036 // * __STL_STATIC_TEMPLATE_MEMBER_BUG: defined if the compiler can't handle
    00037 //   static members of template classes.
    00038 // * __STL_CLASS_PARTIAL_SPECIALIZATION: defined if the compiler supports
    00039 //   partial specialization of template classes.
    00040 // * __STL_PARTIAL_SPECIALIZATION_SYNTAX: defined if the compiler
    00041 //   supports partial specialization syntax for full specialization of
    00042 //   class templates.  (Even if it doesn't actually support partial
    00043 //   specialization itself.)
    00044 // * __STL_FUNCTION_TMPL_PARTIAL_ORDER: defined if the compiler supports
    00045 //   partial ordering of function templates.  (a.k.a partial specialization
    00046 //   of function templates.)
    00047 // * __STL_MEMBER_TEMPLATES: defined if the compiler supports template
    00048 //   member functions of classes.
    00049 // * __STL_MEMBER_TEMPLATE_CLASSES: defined if the compiler supports
    00050 //   nested classes that are member templates of other classes.
    00051 // * __STL_EXPLICIT_FUNCTION_TMPL_ARGS: defined if the compiler
    00052 //   supports calling a function template by providing its template
    00053 //   arguments explicitly.
    00054 // * __STL_LIMITED_DEFAULT_TEMPLATES: defined if the compiler is unable
    00055 //   to handle default template parameters that depend on previous template
    00056 //   parameters.
    00057 // * __STL_NON_TYPE_TMPL_PARAM_BUG: defined if the compiler has trouble with
    00058 //   function template argument deduction for non-type template parameters.
    00059 // * __SGI_STL_NO_ARROW_OPERATOR: defined if the compiler is unable
    00060 //   to support the -> operator for iterators.
    00061 // * __STL_USE_EXCEPTIONS: defined if the compiler (in the current compilation
    00062 //   mode) supports exceptions.
    00063 // * __STL_USE_NAMESPACES: defined if the compiler has the necessary
    00064 //   support for namespaces.
    00065 // * __STL_NO_EXCEPTION_HEADER: defined if the compiler does not have a
    00066 //   standard-conforming header <exception>.
    00067 // * __STL_SGI_THREADS: defined if this is being compiled for an SGI IRIX
    00068 //   system in multithreaded mode, using native SGI threads instead of
    00069 //   pthreads.
    00070 // * __STL_WIN32THREADS: defined if this is being compiled on a WIN32
    00071 //   compiler in multithreaded mode.
    00072 // * __STL_LONG_LONG if the compiler has long long and unsigned long long
    00073 //   types.  (They're not in the C++ standard, but they are expected to be
    00074 //   included in the forthcoming C9X standard.)
    00075
    00076
    00077 // User-settable macros that control compilation:
    00078 // * __STL_USE_SGI_ALLOCATORS: if defined, then the STL will use older
    00079 //   SGI-style allocators, instead of standard-conforming allocators,
    00080 //   even if the compiler supports all of the language features needed
    00081 //   for standard-conforming allocators.
    00082 // * __STL_NO_NAMESPACES: if defined, don't put the library in namespace
    00083 //   std, even if the compiler supports namespaces.
    00084 // * __STL_ASSERTIONS: if defined, then enable runtime checking through the
    00085 //   __stl_assert macro.
    00086 // * _PTHREADS: if defined, use Posix threads for multithreading support.
    00087 // * _NOTHREADS: if defined, don't use any multithreading support.
    00088
    00089
    00090 // Other macros defined by this file:
    00091
    00092 // * bool, true, and false, if __STL_NO_BOOL is defined.
    00093 // * typename, as a null macro if it's not already a keyword.
    00094 // * explicit, as a null macro if it's not already a keyword.
    00095 // * namespace-related macros (__STD, __STL_BEGIN_NAMESPACE, etc.)
    00096 // * exception-related macros (__STL_TRY, __STL_UNWIND, etc.)
    00097 // * __stl_assert, either as a test or as a null macro, depending on
    00098 //   whether or not __STL_ASSERTIONS is defined.
    00099
    00100 #ifdef _PTHREADS
    00101 #   define __STL_PTHREADS
    00102 #endif
    00103 #ifdef _SOLTHREADS
    00104 #   define __STL_SOLTHREADS
    00105 #endif
    00106
    00107 #ifdef TARGET_DSPBIOS
    00108 #define __STL_CLASS_PARTIAL_SPECIALIZATION
    00109 #define __STL_NO_DRAND48
    00110 #define __STL_HAS_NAMESPACES
    00111 #endif
    00112
    00113 # if defined(__sgi) && !defined(__GNUC__)
    00114 #   if !defined(_BOOL)
    00115 #     define __STL_NO_BOOL
    00116 #   endif
    00117 #   if defined(_WCHAR_T_IS_KEYWORD)
    00118 #     define __STL_HAS_WCHAR_T
    00119 #   endif
    00120 #   if !defined(_TYPENAME_IS_KEYWORD)
    00121 #     define __STL_NEED_TYPENAME
    00122 #   endif
    00123 #   ifdef _PARTIAL_SPECIALIZATION_OF_CLASS_TEMPLATES
    00124 #     define __STL_CLASS_PARTIAL_SPECIALIZATION
    00125 #   endif
    00126 #   ifdef _MEMBER_TEMPLATES
    00127 #     define __STL_MEMBER_TEMPLATES
    00128 #     define __STL_MEMBER_TEMPLATE_CLASSES
    00129 #   endif
    00130 #   if defined(_MEMBER_TEMPLATE_KEYWORD)
    00131 #     define __STL_MEMBER_TEMPLATE_KEYWORD
    00132 #   endif
    00133 #   if (_COMPILER_VERSION >= 730) && defined(_MIPS_SIM) && _MIPS_SIM != _ABIO32
    00134 #     define __STL_MEMBER_TEMPLATE_KEYWORD
    00135 #   endif
    00136 #   if !defined(_EXPLICIT_IS_KEYWORD)
    00137 #     define __STL_NEED_EXPLICIT
    00138 #   endif
    00139 #   ifdef __EXCEPTIONS
    00140 #     define __STL_USE_EXCEPTIONS
    00141 #   endif
    00142 #   if (_COMPILER_VERSION >= 721) && defined(_NAMESPACES)
    00143 #     define __STL_HAS_NAMESPACES
    00144 #   endif
    00145 #   if (_COMPILER_VERSION < 721)
    00146 #     define __STL_NO_EXCEPTION_HEADER
    00147 #   endif
    00148 #   if !defined(_NOTHREADS) && !defined(__STL_PTHREADS)
    00149 #     define __STL_SGI_THREADS
    00150 #   endif
    00151 #   if defined(_LONGLONG) && defined(_SGIAPI) && _SGIAPI
    00152 #     define __STL_LONG_LONG
    00153 #   endif
    00154 # endif
    00155
    00156 # ifdef __GNUC__
    00157 #   include <_G_config.h>
    00158 #   define __STL_HAS_WCHAR_T
    00159 #   if __GNUC__ < 2 || (__GNUC__ == 2 && __GNUC_MINOR__ < 8)
    00160 #     define __STL_STATIC_TEMPLATE_MEMBER_BUG
    00161 #     define __STL_NEED_TYPENAME
    00162 #     define __STL_NEED_EXPLICIT
    00163 #   else
    00164 #     define __STL_CLASS_PARTIAL_SPECIALIZATION
    00165 #     define __STL_FUNCTION_TMPL_PARTIAL_ORDER
    00166 #     define __STL_MEMBER_TEMPLATES
    00167 #     define __STL_MEMBER_TEMPLATE_CLASSES
    00168 #     define __STL_EXPLICIT_FUNCTION_TMPL_ARGS
    00169 #     define __STL_HAS_NAMESPACES
    00170 #     define __STL_NO_NAMESPACES
    00171 #     define __SGI_STL_USE_AUTO_PTR_CONVERSIONS
    00172 #     define __STL_USE_NAMESPACES
    00173 #   endif
    00174 #   if defined(__linux__)
    00175      /* glibc pre 2.0 is very buggy. We have to disable thread for it.
    00176         It should be upgraded to glibc 2.0 or later. */
    00177 #    if !defined(_NOTHREADS) && __GLIBC__ >= 2 && defined(_G_USING_THUNKS)
    00178 #      define __STL_PTHREADS
    00179 #      ifdef __STRICT_ANSI__
    00180          /* Work around a bug in the glibc 2.0.x pthread.h.  */
    00181 #        define sigset_t __sigset_t
    00182 #      endif
    00183 #    endif
    00184 #   endif
    00185 #   ifdef __EXCEPTIONS
    00186 #     define __STL_USE_EXCEPTIONS
    00187 #   endif
    00188 #   ifndef __STRICT_ANSI__
    00189 #     define __STL_LONG_LONG
    00190 #   endif
    00191 # endif
    00192
    00193 # if defined(__SUNPRO_CC)
    00194 #   define __STL_NO_BOOL
    00195 #   define __STL_NEED_TYPENAME
    00196 #   define __STL_NEED_EXPLICIT
    00197 #   define __STL_USE_EXCEPTIONS
    00198 # endif
    00199
    00200 # if defined(__COMO__)
    00201 #   define __STL_MEMBER_TEMPLATES
    00202 #   define __STL_MEMBER_TEMPLATE_CLASSES
    00203 #   define __STL_CLASS_PARTIAL_SPECIALIZATION
    00204 #   define __STL_USE_EXCEPTIONS
    00205 #   define __STL_HAS_NAMESPACES
    00206 # endif
    00207
    00208 # if defined(__MINGW32__)
    00209 #   define __STL_NO_DRAND48
    00210 # endif
    00211
    00212 # if defined(__CYGWIN__)
    00213 #   define __STL_NO_DRAND48
    00214 # endif
    00215
    00216 # if defined(_MSC_VER)
    00217 #   define __STL_NO_DRAND48
    00218 #   define __STL_NEED_TYPENAME
    00219 #   if _MSC_VER < 1100  /* 1000 is version 4.0, 1100 is 5.0, 1200 is 6.0. */
    00220 #     define __STL_NEED_EXPLICIT
    00221 #     define __STL_NO_BOOL
    00222 #     if  _MSC_VER > 1000
    00223 #       include <yvals.h>
    00224 #       define __STL_DONT_USE_BOOL_TYPEDEF
    00225 #     endif
    00226 #   endif
    00227 #   define __STL_NON_TYPE_TMPL_PARAM_BUG
    00228 #   define __SGI_STL_NO_ARROW_OPERATOR
    00229 #   ifdef _CPPUNWIND
    00230 #     define __STL_USE_EXCEPTIONS
    00231 #   endif
    00232 #   ifdef _MT
    00233 #     define __STL_WIN32THREADS
    00234 #   endif
    00235 #   if _MSC_VER >= 1200
    00236 #     define __STL_PARTIAL_SPECIALIZATION_SYNTAX
    00237 #     define __STL_HAS_NAMESPACES
    00238 #     define __STL_NO_NAMESPACES
    00239 #   endif
    00240 # endif
    00241
    00242 # if defined(__BORLANDC__)
    00243 #   define __STL_NO_DRAND48
    00244 #   define __STL_NEED_TYPENAME
    00245 #   define __STL_LIMITED_DEFAULT_TEMPLATES
    00246 #   define __SGI_STL_NO_ARROW_OPERATOR
    00247 #   define __STL_NON_TYPE_TMPL_PARAM_BUG
    00248 #   ifdef _CPPUNWIND
    00249 #     define __STL_USE_EXCEPTIONS
    00250 #   endif
    00251 #   ifdef __MT__
    00252 #     define __STL_WIN32THREADS
    00253 #   endif
    00254 # endif
    00255
    00256 # if defined(__STL_NO_BOOL) && !defined(__STL_DONT_USE_BOOL_TYPEDEF)
    00257     typedef int bool;
    00258 #   define true 1
    00259 #   define false 0
    00260 # endif
    00261
    00262 # ifdef __STL_NEED_TYPENAME
    00263 #   define typename
    00264 # endif
    00265
    00266 # ifdef __STL_MEMBER_TEMPLATE_KEYWORD
    00267 #   define __STL_TEMPLATE template
    00268 # else
    00269 #   define __STL_TEMPLATE
    00270 # endif
    00271
    00272 # ifdef __STL_NEED_EXPLICIT
    00273 #   define explicit
    00274 # endif
    00275
    00276 # ifdef __STL_EXPLICIT_FUNCTION_TMPL_ARGS
    00277 #   define __STL_NULL_TMPL_ARGS <>
    00278 # else
    00279 #   define __STL_NULL_TMPL_ARGS
    00280 # endif
    00281
    00282 # if defined(__STL_CLASS_PARTIAL_SPECIALIZATION) \
    00283      || defined (__STL_PARTIAL_SPECIALIZATION_SYNTAX)
    00284 #   define __STL_TEMPLATE_NULL template<>
    00285 # else
    00286 #   define __STL_TEMPLATE_NULL
    00287 # endif
    00288
    00289 // Use standard-conforming allocators if we have the necessary language
    00290 // features.  __STL_USE_SGI_ALLOCATORS is a hook so that users can
    00291 // disable new-style allocators, and continue to use the same kind of
    00292 // allocators as before, without having to edit library headers.
    00293 # if defined(__STL_CLASS_PARTIAL_SPECIALIZATION) && \
    00294      defined(__STL_MEMBER_TEMPLATES) && \
    00295      defined(__STL_MEMBER_TEMPLATE_CLASSES) && \
    00296     !defined(__STL_NO_BOOL) && \
    00297     !defined(__STL_NON_TYPE_TMPL_PARAM_BUG) && \
    00298     !defined(__STL_LIMITED_DEFAULT_TEMPLATES) && \
    00299     !defined(__STL_USE_SGI_ALLOCATORS)
    00300 #   define __STL_USE_STD_ALLOCATORS
    00301 # endif
    00302
    00303 # ifndef __STL_DEFAULT_ALLOCATOR
    00304 #   ifdef __STL_USE_STD_ALLOCATORS
    00305 #     define __STL_DEFAULT_ALLOCATOR(T) allocator<T>
    00306 #   else
    00307 #     define __STL_DEFAULT_ALLOCATOR(T) alloc
    00308 #   endif
    00309 # endif
    00310
    00311 // __STL_NO_NAMESPACES is a hook so that users can disable namespaces
    00312 // without having to edit library headers.
    00313 # if defined(__STL_HAS_NAMESPACES) && !defined(__STL_NO_NAMESPACES)
    00314 #   define __STD std
    00315 #   define __STL_BEGIN_NAMESPACE namespace std {
    00316 #   define __STL_END_NAMESPACE }
    00317 #   define __STL_USE_NAMESPACE_FOR_RELOPS
    00318 #   define __STL_BEGIN_RELOPS_NAMESPACE namespace std {
    00319 #   define __STL_END_RELOPS_NAMESPACE }
    00320 #   define __STD_RELOPS std
    00321 #   define __STL_USE_NAMESPACES
    00322 # else
    00323 #   define __STD
    00324 #   define __STL_BEGIN_NAMESPACE
    00325 #   define __STL_END_NAMESPACE
    00326 #   undef  __STL_USE_NAMESPACE_FOR_RELOPS
    00327 #   define __STL_BEGIN_RELOPS_NAMESPACE
    00328 #   define __STL_END_RELOPS_NAMESPACE
    00329 #   define __STD_RELOPS
    00330 #   undef  __STL_USE_NAMESPACES
    00331 # endif
    00332
    00333 # ifdef __STL_USE_EXCEPTIONS
    00334 #   define __STL_TRY try
    00335 #   define __STL_CATCH_ALL catch(...)
    00336 #   define __STL_THROW(x) throw x
    00337 #   define __STL_RETHROW throw
    00338 #   define __STL_NOTHROW throw()
    00339 #   define __STL_UNWIND(action) catch(...) { action; throw; }
    00340 # else
    00341 #   define __STL_TRY
    00342 #   define __STL_CATCH_ALL if (false)
    00343 #   define __STL_THROW(x)
    00344 #   define __STL_RETHROW
    00345 #   define __STL_NOTHROW
    00346 #   define __STL_UNWIND(action)
    00347 # endif
    00348
    00349 #ifdef __STL_ASSERTIONS
    00350 # include <stdio.h>
    00351 # define __stl_assert(expr) \
    00352     if (!(expr)) { fprintf(stderr, "%s:%d STL assertion failure: %s\n", \
    00353                           __FILE__, __LINE__, # expr); abort(); }
    00354 #else
    00355 # define __stl_assert(expr)
    00356 #endif
    00357
    00358 #endif /* __STL_CONFIG_H */
    00359
    00360 // Local Variables:
    00361 // mode:C++
    00362 // End: