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