Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2025-01-18 09:30:08

0001 //  (C) Copyright John Maddock 2001 - 2003. 
0002 //  (C) Copyright Jens Maurer 2001. 
0003 //  (C) Copyright David Abrahams 2003. 
0004 //  (C) Copyright Boris Gubenko 2007. 
0005 //  Use, modification and distribution are subject to the 
0006 //  Boost Software License, Version 1.0. (See accompanying file 
0007 //  LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
0008 
0009 //  See http://www.boost.org for most recent version.
0010 
0011 //  Rogue Wave std lib:
0012 
0013 #define BOOST_RW_STDLIB 1 
0014 
0015 #if !defined(__STD_RWCOMPILER_H__) && !defined(_RWSTD_VER)
0016 #  include <boost/config/no_tr1/utility.hpp>
0017 #  if !defined(__STD_RWCOMPILER_H__) && !defined(_RWSTD_VER)
0018 #     error This is not the Rogue Wave standard library
0019 #  endif
0020 #endif
0021 //
0022 // figure out a consistent version number:
0023 //
0024 #ifndef _RWSTD_VER
0025 #  define BOOST_RWSTD_VER 0x010000
0026 #elif _RWSTD_VER < 0x010000
0027 #  define BOOST_RWSTD_VER (_RWSTD_VER << 8)
0028 #else
0029 #  define BOOST_RWSTD_VER _RWSTD_VER
0030 #endif
0031 
0032 #ifndef _RWSTD_VER
0033 #  define BOOST_STDLIB "Rogue Wave standard library version (Unknown version)"
0034 #elif _RWSTD_VER < 0x04010200
0035  #  define BOOST_STDLIB "Rogue Wave standard library version " BOOST_STRINGIZE(_RWSTD_VER)
0036 #else
0037 #  ifdef _RWSTD_VER_STR
0038 #    define BOOST_STDLIB "Apache STDCXX standard library version " _RWSTD_VER_STR
0039 #  else
0040 #    define BOOST_STDLIB "Apache STDCXX standard library version " BOOST_STRINGIZE(_RWSTD_VER)
0041 #  endif
0042 #endif
0043 
0044 //
0045 // Prior to version 2.2.0 the primary template for std::numeric_limits
0046 // does not have compile time constants, even though specializations of that
0047 // template do:
0048 //
0049 #if BOOST_RWSTD_VER < 0x020200
0050 #  define BOOST_NO_LIMITS_COMPILE_TIME_CONSTANTS
0051 #endif
0052 
0053 // Sun CC 5.5 patch 113817-07 adds long long specialization, but does not change the
0054 // library version number (http://sunsolve6.sun.com/search/document.do?assetkey=1-21-113817):
0055 #if BOOST_RWSTD_VER <= 0x020101 && (!defined(__SUNPRO_CC) || (__SUNPRO_CC < 0x550))
0056 #  define BOOST_NO_LONG_LONG_NUMERIC_LIMITS
0057 # endif
0058 
0059 //
0060 // Borland version of numeric_limits lacks __int64 specialisation:
0061 //
0062 #ifdef BOOST_BORLANDC
0063 #  define BOOST_NO_MS_INT64_NUMERIC_LIMITS
0064 #endif
0065 
0066 //
0067 // No std::iterator if it can't figure out default template args:
0068 //
0069 #if defined(_RWSTD_NO_SIMPLE_DEFAULT_TEMPLATES) || defined(RWSTD_NO_SIMPLE_DEFAULT_TEMPLATES) || (BOOST_RWSTD_VER < 0x020000)
0070 #  define BOOST_NO_STD_ITERATOR
0071 #endif
0072 
0073 //
0074 // No iterator traits without partial specialization:
0075 //
0076 #if defined(_RWSTD_NO_CLASS_PARTIAL_SPEC) || defined(RWSTD_NO_CLASS_PARTIAL_SPEC)
0077 #  define BOOST_NO_STD_ITERATOR_TRAITS
0078 #endif
0079 
0080 //
0081 // Prior to version 2.0, std::auto_ptr was buggy, and there were no
0082 // new-style iostreams, and no conformant std::allocator:
0083 //
0084 #if (BOOST_RWSTD_VER < 0x020000)
0085 #  define BOOST_NO_AUTO_PTR
0086 #  define BOOST_NO_STRINGSTREAM
0087 #  define BOOST_NO_STD_ALLOCATOR
0088 #  define BOOST_NO_STD_LOCALE
0089 #endif
0090 
0091 //
0092 // No template iterator constructors without member template support:
0093 //
0094 #if defined(RWSTD_NO_MEMBER_TEMPLATES) || defined(_RWSTD_NO_MEMBER_TEMPLATES)
0095 #  define BOOST_NO_TEMPLATED_ITERATOR_CONSTRUCTORS
0096 #endif
0097 
0098 //
0099 // RW defines _RWSTD_ALLOCATOR if the allocator is conformant and in use
0100 // (the or _HPACC_ part is a hack - the library seems to define _RWSTD_ALLOCATOR
0101 // on HP aCC systems even though the allocator is in fact broken):
0102 //
0103 #if !defined(_RWSTD_ALLOCATOR) || (defined(__HP_aCC) && __HP_aCC <= 33100)
0104 #  define BOOST_NO_STD_ALLOCATOR
0105 #endif
0106 
0107 //
0108 // If we have a std::locale, we still may not have std::use_facet:
0109 //
0110 #if defined(_RWSTD_NO_TEMPLATE_ON_RETURN_TYPE) && !defined(BOOST_NO_STD_LOCALE)
0111 #  define BOOST_NO_STD_USE_FACET
0112 #  define BOOST_HAS_TWO_ARG_USE_FACET
0113 #endif
0114 
0115 //
0116 // There's no std::distance prior to version 2, or without
0117 // partial specialization support:
0118 //
0119 #if (BOOST_RWSTD_VER < 0x020000) || defined(_RWSTD_NO_CLASS_PARTIAL_SPEC)
0120     #define BOOST_NO_STD_DISTANCE
0121 #endif
0122 
0123 //
0124 // Some versions of the rogue wave library don't have assignable
0125 // OutputIterators:
0126 //
0127 #if BOOST_RWSTD_VER < 0x020100
0128 #  define BOOST_NO_STD_OUTPUT_ITERATOR_ASSIGN
0129 #endif
0130 
0131 //
0132 // Disable BOOST_HAS_LONG_LONG when the library has no support for it.
0133 //
0134 #if !defined(_RWSTD_LONG_LONG) && defined(BOOST_HAS_LONG_LONG)
0135 #  undef BOOST_HAS_LONG_LONG
0136 #endif
0137 
0138 //
0139 // check that on HP-UX, the proper RW library is used
0140 //
0141 #if defined(__HP_aCC) && !defined(_HP_NAMESPACE_STD)
0142 #  error "Boost requires Standard RW library. Please compile and link with -AA"
0143 #endif
0144 
0145 //
0146 // Define macros specific to RW V2.2 on HP-UX
0147 //
0148 #if defined(__HP_aCC) && (BOOST_RWSTD_VER == 0x02020100)
0149 #  ifndef __HP_TC1_MAKE_PAIR
0150 #    define __HP_TC1_MAKE_PAIR
0151 #  endif
0152 #  ifndef _HP_INSTANTIATE_STD2_VL
0153 #    define _HP_INSTANTIATE_STD2_VL
0154 #  endif
0155 #endif
0156 
0157 #if _RWSTD_VER < 0x05000000
0158 #  define BOOST_NO_CXX11_HDR_ARRAY
0159 #endif
0160 // type_traits header is incomplete:
0161 #  define BOOST_NO_CXX11_HDR_TYPE_TRAITS
0162 //
0163 //  C++0x headers not yet implemented
0164 //
0165 #  define BOOST_NO_CXX11_HDR_CHRONO
0166 #  define BOOST_NO_CXX11_HDR_CODECVT
0167 #  define BOOST_NO_CXX11_HDR_CONDITION_VARIABLE
0168 #  define BOOST_NO_CXX11_HDR_FORWARD_LIST
0169 #  define BOOST_NO_CXX11_HDR_FUTURE
0170 #  define BOOST_NO_CXX11_HDR_INITIALIZER_LIST
0171 #  define BOOST_NO_CXX11_HDR_MUTEX
0172 #  define BOOST_NO_CXX11_HDR_RANDOM
0173 #  define BOOST_NO_CXX11_HDR_RATIO
0174 #  define BOOST_NO_CXX11_HDR_REGEX
0175 #  define BOOST_NO_CXX11_HDR_SYSTEM_ERROR
0176 #  define BOOST_NO_CXX11_HDR_THREAD
0177 #  define BOOST_NO_CXX11_HDR_TUPLE
0178 #  define BOOST_NO_CXX11_HDR_TYPEINDEX
0179 #  define BOOST_NO_CXX11_HDR_UNORDERED_MAP
0180 #  define BOOST_NO_CXX11_HDR_UNORDERED_SET
0181 #  define BOOST_NO_CXX11_NUMERIC_LIMITS
0182 #  define BOOST_NO_CXX11_ALLOCATOR
0183 #  define BOOST_NO_CXX11_POINTER_TRAITS
0184 #  define BOOST_NO_CXX11_ATOMIC_SMART_PTR
0185 #  define BOOST_NO_CXX11_SMART_PTR
0186 #  define BOOST_NO_CXX11_HDR_FUNCTIONAL
0187 #  define BOOST_NO_CXX11_HDR_ATOMIC
0188 #  define BOOST_NO_CXX11_STD_ALIGN
0189 #  define BOOST_NO_CXX11_ADDRESSOF
0190 #  define BOOST_NO_CXX11_HDR_EXCEPTION
0191 
0192 #if defined(__has_include)
0193 #if !__has_include(<shared_mutex>)
0194 #  define BOOST_NO_CXX14_HDR_SHARED_MUTEX
0195 #elif __cplusplus < 201402
0196 #  define BOOST_NO_CXX14_HDR_SHARED_MUTEX
0197 #endif
0198 #else
0199 #  define BOOST_NO_CXX14_HDR_SHARED_MUTEX
0200 #endif
0201 
0202 // C++14 features
0203 #  define BOOST_NO_CXX14_STD_EXCHANGE
0204 
0205 // C++17 features
0206 #  define BOOST_NO_CXX17_STD_APPLY
0207 #  define BOOST_NO_CXX17_STD_INVOKE
0208 #  define BOOST_NO_CXX17_ITERATOR_TRAITS