Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2025-12-16 09:44:41

0001 //  (C) Copyright John Maddock 2001.
0002 //  (C) Copyright Jens Maurer 2001 - 2003.
0003 //  (C) Copyright Peter Dimov 2002.
0004 //  (C) Copyright Aleksey Gurtovoy 2002 - 2003.
0005 //  (C) Copyright David Abrahams 2002.
0006 //  Use, modification and distribution are subject to the
0007 //  Boost Software License, Version 1.0. (See accompanying file
0008 //  LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
0009 
0010 //  See http://www.boost.org for most recent version.
0011 
0012 //  Sun C++ compiler setup:
0013 
0014 #    if __SUNPRO_CC <= 0x500
0015 #      define BOOST_NO_MEMBER_TEMPLATES
0016 #      define BOOST_NO_FUNCTION_TEMPLATE_ORDERING
0017 #    endif
0018 
0019 #    if (__SUNPRO_CC <= 0x520)
0020        //
0021        // Sunpro 5.2 and earler:
0022        //
0023        // although sunpro 5.2 supports the syntax for
0024        // inline initialization it often gets the value
0025        // wrong, especially where the value is computed
0026        // from other constants (J Maddock 6th May 2001)
0027 #      define BOOST_NO_INCLASS_MEMBER_INITIALIZATION
0028 
0029        // Although sunpro 5.2 supports the syntax for
0030        // partial specialization, it often seems to
0031        // bind to the wrong specialization.  Better
0032        // to disable it until suppport becomes more stable
0033        // (J Maddock 6th May 2001).
0034 #      define BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
0035 #    endif
0036 
0037 #    if (__SUNPRO_CC <= 0x530)
0038        // Requesting debug info (-g) with Boost.Python results
0039        // in an internal compiler error for "static const"
0040        // initialized in-class.
0041        //    >> Assertion:   (../links/dbg_cstabs.cc, line 611)
0042        //         while processing ../test.cpp at line 0.
0043        // (Jens Maurer according to Gottfried Ganssauge 04 Mar 2002)
0044 #      define BOOST_NO_INCLASS_MEMBER_INITIALIZATION
0045 
0046        // SunPro 5.3 has better support for partial specialization,
0047        // but breaks when compiling std::less<shared_ptr<T> >
0048        // (Jens Maurer 4 Nov 2001).
0049 
0050        // std::less specialization fixed as reported by George
0051        // Heintzelman; partial specialization re-enabled
0052        // (Peter Dimov 17 Jan 2002)
0053 
0054 //#      define BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
0055 
0056        // integral constant expressions with 64 bit numbers fail
0057 #      define BOOST_NO_INTEGRAL_INT64_T
0058 #    endif
0059 
0060 #    if (__SUNPRO_CC < 0x570)
0061 #      define BOOST_NO_TEMPLATE_TEMPLATES
0062        // see http://lists.boost.org/MailArchives/boost/msg47184.php
0063        // and http://lists.boost.org/MailArchives/boost/msg47220.php
0064 #      define BOOST_NO_INCLASS_MEMBER_INITIALIZATION
0065 #      define BOOST_NO_SFINAE
0066 #      define BOOST_NO_ARRAY_TYPE_SPECIALIZATIONS
0067 #    endif
0068 #    if (__SUNPRO_CC <= 0x580)
0069 #      define BOOST_NO_IS_ABSTRACT
0070 #    endif
0071 
0072 #    if (__SUNPRO_CC <= 0x5100)
0073        // Sun 5.10 may not correctly value-initialize objects of
0074        // some user defined types, as was reported in April 2010
0075        // (CR 6947016), and confirmed by Steve Clamage.
0076        // (Niels Dekker, LKEB, May 2010).
0077 #      define BOOST_NO_COMPLETE_VALUE_INITIALIZATION
0078 #    endif
0079 
0080 //
0081 // Dynamic shared object (DSO) and dynamic-link library (DLL) support
0082 //
0083 #if __SUNPRO_CC > 0x500
0084 #  define BOOST_SYMBOL_EXPORT __global
0085 #  define BOOST_SYMBOL_IMPORT __global
0086 #  define BOOST_SYMBOL_VISIBLE __global
0087 #endif
0088 
0089 // Deprecated symbol markup
0090 // Oracle Studio 12.4 supports deprecated attribute with a message; this is the first release that supports the attribute.
0091 #if (__SUNPRO_CC >= 0x5130)
0092 #define BOOST_DEPRECATED(msg) __attribute__((deprecated(msg)))
0093 #endif
0094 
0095 #if (__SUNPRO_CC < 0x5130)
0096 // C++03 features in 12.4:
0097 #define BOOST_NO_TWO_PHASE_NAME_LOOKUP
0098 #define BOOST_NO_SFINAE_EXPR
0099 #define BOOST_NO_ADL_BARRIER
0100 #define BOOST_NO_CXX11_VARIADIC_MACROS
0101 #endif
0102 
0103 #if (__SUNPRO_CC < 0x5130) || (__cplusplus < 201100)
0104 // C++11 only featuires in 12.4:
0105 #define BOOST_NO_CXX11_AUTO_DECLARATIONS
0106 #define BOOST_NO_CXX11_AUTO_MULTIDECLARATIONS
0107 #define BOOST_NO_CXX11_CHAR16_T
0108 #define BOOST_NO_CXX11_CHAR32_T
0109 #define BOOST_NO_CXX11_CONSTEXPR
0110 #define BOOST_NO_CXX11_DECLTYPE
0111 #define BOOST_NO_CXX11_DEFAULTED_FUNCTIONS
0112 #define BOOST_NO_CXX11_DELETED_FUNCTIONS
0113 #define BOOST_NO_CXX11_EXPLICIT_CONVERSION_OPERATORS
0114 #define BOOST_NO_CXX11_EXTERN_TEMPLATE
0115 #define BOOST_NO_CXX11_FUNCTION_TEMPLATE_DEFAULT_ARGS
0116 #define BOOST_NO_CXX11_HDR_INITIALIZER_LIST
0117 #define BOOST_NO_CXX11_LAMBDAS
0118 #define BOOST_NO_CXX11_LOCAL_CLASS_TEMPLATE_PARAMETERS
0119 #define BOOST_NO_CXX11_NOEXCEPT
0120 #define BOOST_NO_CXX11_NULLPTR
0121 #define BOOST_NO_CXX11_RANGE_BASED_FOR
0122 #define BOOST_NO_CXX11_RAW_LITERALS
0123 #define BOOST_NO_CXX11_RVALUE_REFERENCES
0124 #define BOOST_NO_CXX11_SCOPED_ENUMS
0125 #define BOOST_NO_CXX11_STATIC_ASSERT
0126 #define BOOST_NO_CXX11_TEMPLATE_ALIASES
0127 #define BOOST_NO_CXX11_UNICODE_LITERALS
0128 #define BOOST_NO_CXX11_ALIGNAS
0129 #define BOOST_NO_CXX11_ALIGNOF
0130 #define BOOST_NO_CXX11_TRAILING_RESULT_TYPES
0131 #define BOOST_NO_CXX11_INLINE_NAMESPACES
0132 #define BOOST_NO_CXX11_FINAL
0133 #define BOOST_NO_CXX11_OVERRIDE
0134 #define BOOST_NO_CXX11_UNRESTRICTED_UNION
0135 #endif
0136 
0137 #if (__SUNPRO_CC < 0x5140) || (__cplusplus < 201103)
0138 #define BOOST_NO_CXX11_VARIADIC_TEMPLATES
0139 #define BOOST_NO_CXX11_UNIFIED_INITIALIZATION_SYNTAX
0140 #define BOOST_NO_CXX11_FIXED_LENGTH_VARIADIC_TEMPLATE_EXPANSION_PACKS
0141 #define BOOST_NO_CXX11_DECLTYPE_N3276
0142 #define BOOST_NO_CXX11_USER_DEFINED_LITERALS
0143 #define BOOST_NO_CXX11_REF_QUALIFIERS
0144 #define BOOST_NO_CXX11_THREAD_LOCAL
0145 #endif
0146 
0147 #define BOOST_NO_COMPLETE_VALUE_INITIALIZATION
0148 //
0149 // C++0x features
0150 //
0151 #  define BOOST_HAS_LONG_LONG
0152 
0153 #define BOOST_NO_CXX11_SFINAE_EXPR
0154 
0155 // C++ 14:
0156 #if !defined(__cpp_aggregate_nsdmi) || (__cpp_aggregate_nsdmi < 201304)
0157 #  define BOOST_NO_CXX14_AGGREGATE_NSDMI
0158 #endif
0159 #if !defined(__cpp_binary_literals) || (__cpp_binary_literals < 201304)
0160 #  define BOOST_NO_CXX14_BINARY_LITERALS
0161 #endif
0162 #if !defined(__cpp_constexpr) || (__cpp_constexpr < 201304)
0163 #  define BOOST_NO_CXX14_CONSTEXPR
0164 #endif
0165 #if !defined(__cpp_decltype_auto) || (__cpp_decltype_auto < 201304) || (__cplusplus < 201402L)
0166 #  define BOOST_NO_CXX14_DECLTYPE_AUTO
0167 #endif
0168 #if (__cplusplus < 201304) // There's no SD6 check for this....
0169 #  define BOOST_NO_CXX14_DIGIT_SEPARATORS
0170 #endif
0171 #if !defined(__cpp_generic_lambdas) || (__cpp_generic_lambdas < 201304)
0172 #  define BOOST_NO_CXX14_GENERIC_LAMBDAS
0173 #endif
0174 #if !defined(__cpp_init_captures) || (__cpp_init_captures < 201304)
0175 #  define BOOST_NO_CXX14_INITIALIZED_LAMBDA_CAPTURES
0176 #endif
0177 #if !defined(__cpp_return_type_deduction) || (__cpp_return_type_deduction < 201304)
0178 #  define BOOST_NO_CXX14_RETURN_TYPE_DEDUCTION
0179 #endif
0180 #if !defined(__cpp_variable_templates) || (__cpp_variable_templates < 201304)
0181 #  define BOOST_NO_CXX14_VARIABLE_TEMPLATES
0182 #endif
0183 
0184 // C++17
0185 #if !defined(__cpp_structured_bindings) || (__cpp_structured_bindings < 201606)
0186 #  define BOOST_NO_CXX17_STRUCTURED_BINDINGS
0187 #endif
0188 #if !defined(__cpp_inline_variables) || (__cpp_inline_variables < 201606)
0189 #  define BOOST_NO_CXX17_INLINE_VARIABLES
0190 #endif
0191 #if !defined(__cpp_fold_expressions) || (__cpp_fold_expressions < 201603)
0192 #  define BOOST_NO_CXX17_FOLD_EXPRESSIONS
0193 #endif
0194 #if !defined(__cpp_if_constexpr) || (__cpp_if_constexpr < 201606)
0195 #  define BOOST_NO_CXX17_IF_CONSTEXPR
0196 #endif
0197 #if !defined(__cpp_nontype_template_parameter_auto) || (__cpp_nontype_template_parameter_auto < 201606)
0198 #  define BOOST_NO_CXX17_AUTO_NONTYPE_TEMPLATE_PARAMS
0199 #endif
0200 
0201 // Turn on threading support for Solaris 12.
0202 // Ticket #11972
0203 #if (__SUNPRO_CC >= 0x5140) && defined(__SunOS_5_12) && !defined(BOOST_HAS_THREADS)
0204 # define BOOST_HAS_THREADS
0205 #endif
0206 
0207 //
0208 // Version
0209 //
0210 
0211 #define BOOST_COMPILER "Sun compiler version " BOOST_STRINGIZE(__SUNPRO_CC)
0212 
0213 //
0214 // versions check:
0215 // we don't support sunpro prior to version 4:
0216 #if __SUNPRO_CC < 0x400
0217 #error "Compiler not supported or configured - please reconfigure"
0218 #endif
0219 //
0220 // last known and checked version:
0221 #if (__SUNPRO_CC > 0x5150)
0222 #  if defined(BOOST_ASSERT_CONFIG)
0223 #     error "Boost.Config is older than your compiler - please check for an updated Boost release."
0224 #  endif
0225 #endif