1 // (C) Copyright Noel Belcourt 2007. 2 // Use, modification and distribution are subject to the 3 // Boost Software License, Version 1.0. (See accompanying file 4 // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) 5 6 // See http://www.boost.org for most recent version. 7 8 // PGI C++ compiler setup: 9 10 #define BOOST_COMPILER_VERSION __PGIC__##__PGIC_MINOR__ 11 #define BOOST_COMPILER "PGI compiler version " BOOST_STRINGIZE(BOOST_COMPILER_VERSION) 12 13 // 14 // Threading support: 15 // Turn this on unconditionally here, it will get turned off again later 16 // if no threading API is detected. 17 // 18 19 #if __PGIC__ >= 11 20 21 // options requested by configure --enable-test 22 #define BOOST_HAS_PTHREADS 23 #define BOOST_HAS_THREADS 24 #define BOOST_HAS_PTHREAD_YIELD 25 #define BOOST_HAS_NRVO 26 #define BOOST_HAS_LONG_LONG 27 28 // options --enable-test wants undefined 29 #undef BOOST_NO_STDC_NAMESPACE 30 #undef BOOST_NO_EXCEPTION_STD_NAMESPACE 31 #undef BOOST_DEDUCED_TYPENAME 32 33 #define BOOST_FUNCTION_SCOPE_USING_DECLARATION_BREAKS_ADL 34 #define BOOST_NO_TWO_PHASE_NAME_LOOKUP 35 #define BOOST_NO_CXX11_AUTO_MULTIDECLARATIONS 36 #define BOOST_NO_CXX11_AUTO_DECLARATIONS 37 38 #elif __PGIC__ >= 10 39 40 // options requested by configure --enable-test 41 #define BOOST_HAS_THREADS 42 #define BOOST_HAS_NRVO 43 #define BOOST_HAS_LONG_LONG 44 #if defined(linux) || defined(__linux) || defined(__linux__) 45 # define BOOST_HAS_STDINT_H 46 #endif 47 48 // options --enable-test wants undefined 49 #undef BOOST_NO_STDC_NAMESPACE 50 #undef BOOST_NO_EXCEPTION_STD_NAMESPACE 51 #undef BOOST_DEDUCED_TYPENAME 52 53 #elif __PGIC__ >= 7 54 55 #define BOOST_FUNCTION_SCOPE_USING_DECLARATION_BREAKS_ADL 56 #define BOOST_NO_TWO_PHASE_NAME_LOOKUP 57 #define BOOST_NO_SWPRINTF 58 #define BOOST_NO_CXX11_AUTO_MULTIDECLARATIONS 59 #define BOOST_NO_CXX11_AUTO_DECLARATIONS 60 61 #else 62 63 # error "Pgi compiler not configured - please reconfigure" 64 65 #endif 66 // 67 // C++0x features 68 // 69 // See boost\config\suffix.hpp for BOOST_NO_LONG_LONG 70 // 71 #define BOOST_NO_CXX11_CHAR16_T 72 #define BOOST_NO_CXX11_CHAR32_T 73 #define BOOST_NO_CXX11_CONSTEXPR 74 #define BOOST_NO_CXX11_DECLTYPE 75 #define BOOST_NO_CXX11_DECLTYPE_N3276 76 #define BOOST_NO_CXX11_DEFAULTED_FUNCTIONS 77 #define BOOST_NO_CXX11_DELETED_FUNCTIONS 78 #define BOOST_NO_CXX11_EXPLICIT_CONVERSION_OPERATORS 79 #define BOOST_NO_CXX11_EXTERN_TEMPLATE 80 #define BOOST_NO_CXX11_FUNCTION_TEMPLATE_DEFAULT_ARGS 81 #define BOOST_NO_CXX11_LAMBDAS 82 #define BOOST_NO_CXX11_LOCAL_CLASS_TEMPLATE_PARAMETERS 83 #define BOOST_NO_CXX11_NOEXCEPT 84 #define BOOST_NO_CXX11_NULLPTR 85 #define BOOST_NO_CXX11_NUMERIC_LIMITS 86 #define BOOST_NO_CXX11_RANGE_BASED_FOR 87 #define BOOST_NO_CXX11_RAW_LITERALS 88 #define BOOST_NO_CXX11_RVALUE_REFERENCES 89 #define BOOST_NO_CXX11_SCOPED_ENUMS 90 #define BOOST_NO_SFINAE_EXPR 91 #define BOOST_NO_CXX11_SFINAE_EXPR 92 #define BOOST_NO_CXX11_STATIC_ASSERT 93 #define BOOST_NO_SWPRINTF 94 #define BOOST_NO_CXX11_TEMPLATE_ALIASES 95 #define BOOST_NO_CXX11_UNICODE_LITERALS 96 #define BOOST_NO_CXX11_VARIADIC_TEMPLATES 97 #define BOOST_NO_CXX11_VARIADIC_MACROS 98 #define BOOST_NO_CXX11_UNIFIED_INITIALIZATION_SYNTAX 99 100 #define BOOST_NO_CXX11_HDR_UNORDERED_SET 101 #define BOOST_NO_CXX11_HDR_UNORDERED_MAP 102 #define BOOST_NO_CXX11_HDR_TYPEINDEX 103 #define BOOST_NO_CXX11_HDR_TYPE_TRAITS 104 #define BOOST_NO_CXX11_HDR_TUPLE 105 #define BOOST_NO_CXX11_HDR_THREAD 106 #define BOOST_NO_CXX11_HDR_SYSTEM_ERROR 107 #define BOOST_NO_CXX11_HDR_REGEX 108 #define BOOST_NO_CXX11_HDR_RATIO 109 #define BOOST_NO_CXX11_HDR_RANDOM 110 #define BOOST_NO_CXX11_HDR_MUTEX 111 #define BOOST_NO_CXX11_HDR_INITIALIZER_LIST 112 #define BOOST_NO_CXX11_HDR_FUTURE 113 #define BOOST_NO_CXX11_HDR_FORWARD_LIST 114 #define BOOST_NO_CXX11_HDR_CONDITION_VARIABLE 115 #define BOOST_NO_CXX11_HDR_CODECVT 116 #define BOOST_NO_CXX11_HDR_CHRONO 117 #define BOOST_NO_CXX11_HDR_ARRAY 118 #define BOOST_NO_CXX11_USER_DEFINED_LITERALS 119 #define BOOST_NO_CXX11_ALIGNAS 120 #define BOOST_NO_CXX11_TRAILING_RESULT_TYPES 121 #define BOOST_NO_CXX11_INLINE_NAMESPACES 122 #define BOOST_NO_CXX11_REF_QUALIFIERS 123 #define BOOST_NO_CXX11_FINAL 124 #define BOOST_NO_CXX11_THREAD_LOCAL 125 126 // C++ 14: 127 #if !defined(__cpp_aggregate_nsdmi) || (__cpp_aggregate_nsdmi < 201304) 128 # define BOOST_NO_CXX14_AGGREGATE_NSDMI 129 #endif 130 #if !defined(__cpp_binary_literals) || (__cpp_binary_literals < 201304) 131 # define BOOST_NO_CXX14_BINARY_LITERALS 132 #endif 133 #if !defined(__cpp_constexpr) || (__cpp_constexpr < 201304) 134 # define BOOST_NO_CXX14_CONSTEXPR 135 #endif 136 #if !defined(__cpp_decltype_auto) || (__cpp_decltype_auto < 201304) 137 # define BOOST_NO_CXX14_DECLTYPE_AUTO 138 #endif 139 #if (__cplusplus < 201304) // There's no SD6 check for this.... 140 # define BOOST_NO_CXX14_DIGIT_SEPARATORS 141 #endif 142 #if !defined(__cpp_generic_lambdas) || (__cpp_generic_lambdas < 201304) 143 # define BOOST_NO_CXX14_GENERIC_LAMBDAS 144 #endif 145 #if !defined(__cpp_init_captures) || (__cpp_init_captures < 201304) 146 # define BOOST_NO_CXX14_INITIALIZED_LAMBDA_CAPTURES 147 #endif 148 #if !defined(__cpp_return_type_deduction) || (__cpp_return_type_deduction < 201304) 149 # define BOOST_NO_CXX14_RETURN_TYPE_DEDUCTION 150 #endif 151 #if !defined(__cpp_variable_templates) || (__cpp_variable_templates < 201304) 152 # define BOOST_NO_CXX14_VARIABLE_TEMPLATES 153 #endif 154 155 // C++17 156 #if !defined(__cpp_structured_bindings) || (__cpp_structured_bindings < 201606) 157 # define BOOST_NO_CXX17_STRUCTURED_BINDINGS 158 #endif 159 #if !defined(__cpp_inline_variables) || (__cpp_inline_variables < 201606) 160 # define BOOST_NO_CXX17_INLINE_VARIABLES 161 #endif 162 #if !defined(__cpp_fold_expressions) || (__cpp_fold_expressions < 201603) 163 # define BOOST_NO_CXX17_FOLD_EXPRESSIONS 164 #endif 165 // 166 // version check: 167 // probably nothing to do here? 168 169