]>
Commit | Line | Data |
---|---|---|
7c673cae FG |
1 | // (C) Copyright John Maddock 2001. |
2 | // (C) Copyright Jens Maurer 2001 - 2003. | |
3 | // (C) Copyright Peter Dimov 2002. | |
4 | // (C) Copyright Aleksey Gurtovoy 2002 - 2003. | |
5 | // (C) Copyright David Abrahams 2002. | |
6 | // Use, modification and distribution are subject to the | |
7 | // Boost Software License, Version 1.0. (See accompanying file | |
8 | // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) | |
9 | ||
10 | // See http://www.boost.org for most recent version. | |
11 | ||
12 | // Sun C++ compiler setup: | |
13 | ||
14 | # if __SUNPRO_CC <= 0x500 | |
15 | # define BOOST_NO_MEMBER_TEMPLATES | |
16 | # define BOOST_NO_FUNCTION_TEMPLATE_ORDERING | |
17 | # endif | |
18 | ||
19 | # if (__SUNPRO_CC <= 0x520) | |
20 | // | |
21 | // Sunpro 5.2 and earler: | |
22 | // | |
23 | // although sunpro 5.2 supports the syntax for | |
24 | // inline initialization it often gets the value | |
25 | // wrong, especially where the value is computed | |
26 | // from other constants (J Maddock 6th May 2001) | |
27 | # define BOOST_NO_INCLASS_MEMBER_INITIALIZATION | |
28 | ||
29 | // Although sunpro 5.2 supports the syntax for | |
30 | // partial specialization, it often seems to | |
31 | // bind to the wrong specialization. Better | |
32 | // to disable it until suppport becomes more stable | |
33 | // (J Maddock 6th May 2001). | |
34 | # define BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION | |
35 | # endif | |
36 | ||
37 | # if (__SUNPRO_CC <= 0x530) | |
38 | // Requesting debug info (-g) with Boost.Python results | |
39 | // in an internal compiler error for "static const" | |
40 | // initialized in-class. | |
41 | // >> Assertion: (../links/dbg_cstabs.cc, line 611) | |
42 | // while processing ../test.cpp at line 0. | |
43 | // (Jens Maurer according to Gottfried Ganssauge 04 Mar 2002) | |
44 | # define BOOST_NO_INCLASS_MEMBER_INITIALIZATION | |
45 | ||
46 | // SunPro 5.3 has better support for partial specialization, | |
47 | // but breaks when compiling std::less<shared_ptr<T> > | |
48 | // (Jens Maurer 4 Nov 2001). | |
49 | ||
50 | // std::less specialization fixed as reported by George | |
51 | // Heintzelman; partial specialization re-enabled | |
52 | // (Peter Dimov 17 Jan 2002) | |
53 | ||
54 | //# define BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION | |
55 | ||
56 | // integral constant expressions with 64 bit numbers fail | |
57 | # define BOOST_NO_INTEGRAL_INT64_T | |
58 | # endif | |
59 | ||
60 | # if (__SUNPRO_CC < 0x570) | |
61 | # define BOOST_NO_TEMPLATE_TEMPLATES | |
62 | // see http://lists.boost.org/MailArchives/boost/msg47184.php | |
63 | // and http://lists.boost.org/MailArchives/boost/msg47220.php | |
64 | # define BOOST_NO_INCLASS_MEMBER_INITIALIZATION | |
65 | # define BOOST_NO_SFINAE | |
66 | # define BOOST_NO_ARRAY_TYPE_SPECIALIZATIONS | |
67 | # endif | |
68 | # if (__SUNPRO_CC <= 0x580) | |
69 | # define BOOST_NO_IS_ABSTRACT | |
70 | # endif | |
71 | ||
72 | # if (__SUNPRO_CC <= 0x5100) | |
73 | // Sun 5.10 may not correctly value-initialize objects of | |
74 | // some user defined types, as was reported in April 2010 | |
75 | // (CR 6947016), and confirmed by Steve Clamage. | |
76 | // (Niels Dekker, LKEB, May 2010). | |
77 | # define BOOST_NO_COMPLETE_VALUE_INITIALIZATION | |
78 | # endif | |
79 | ||
80 | // | |
81 | // Dynamic shared object (DSO) and dynamic-link library (DLL) support | |
82 | // | |
83 | #if __SUNPRO_CC > 0x500 | |
84 | # define BOOST_SYMBOL_EXPORT __global | |
85 | # define BOOST_SYMBOL_IMPORT __global | |
86 | # define BOOST_SYMBOL_VISIBLE __global | |
87 | #endif | |
88 | ||
89 | #if (__SUNPRO_CC < 0x5130) | |
90 | // C++03 features in 12.4: | |
91 | #define BOOST_NO_TWO_PHASE_NAME_LOOKUP | |
92 | #define BOOST_NO_SFINAE_EXPR | |
93 | #define BOOST_NO_ADL_BARRIER | |
94 | #define BOOST_NO_CXX11_VARIADIC_MACROS | |
95 | #endif | |
96 | ||
97 | #if (__SUNPRO_CC < 0x5130) || (__cplusplus < 201100) | |
98 | // C++11 only featuires in 12.4: | |
99 | #define BOOST_NO_CXX11_AUTO_DECLARATIONS | |
100 | #define BOOST_NO_CXX11_AUTO_MULTIDECLARATIONS | |
101 | #define BOOST_NO_CXX11_CHAR16_T | |
102 | #define BOOST_NO_CXX11_CHAR32_T | |
103 | #define BOOST_NO_CXX11_CONSTEXPR | |
104 | #define BOOST_NO_CXX11_DECLTYPE | |
105 | #define BOOST_NO_CXX11_DEFAULTED_FUNCTIONS | |
106 | #define BOOST_NO_CXX11_DELETED_FUNCTIONS | |
107 | #define BOOST_NO_CXX11_EXPLICIT_CONVERSION_OPERATORS | |
108 | #define BOOST_NO_CXX11_EXTERN_TEMPLATE | |
109 | #define BOOST_NO_CXX11_FUNCTION_TEMPLATE_DEFAULT_ARGS | |
110 | #define BOOST_NO_CXX11_HDR_INITIALIZER_LIST | |
111 | #define BOOST_NO_CXX11_LAMBDAS | |
112 | #define BOOST_NO_CXX11_LOCAL_CLASS_TEMPLATE_PARAMETERS | |
113 | #define BOOST_NO_CXX11_NOEXCEPT | |
114 | #define BOOST_NO_CXX11_NULLPTR | |
115 | #define BOOST_NO_CXX11_RANGE_BASED_FOR | |
116 | #define BOOST_NO_CXX11_RAW_LITERALS | |
117 | #define BOOST_NO_CXX11_RVALUE_REFERENCES | |
118 | #define BOOST_NO_CXX11_SCOPED_ENUMS | |
119 | #define BOOST_NO_CXX11_STATIC_ASSERT | |
120 | #define BOOST_NO_CXX11_TEMPLATE_ALIASES | |
121 | #define BOOST_NO_CXX11_UNICODE_LITERALS | |
122 | #define BOOST_NO_CXX11_ALIGNAS | |
123 | #define BOOST_NO_CXX11_TRAILING_RESULT_TYPES | |
124 | #define BOOST_NO_CXX11_INLINE_NAMESPACES | |
125 | #define BOOST_NO_CXX11_FINAL | |
126 | #endif | |
127 | ||
128 | #if (__SUNPRO_CC < 0x5140) || (__cplusplus < 201103) | |
129 | #define BOOST_NO_CXX11_VARIADIC_TEMPLATES | |
130 | #define BOOST_NO_CXX11_UNIFIED_INITIALIZATION_SYNTAX | |
131 | #define BOOST_NO_CXX11_FIXED_LENGTH_VARIADIC_TEMPLATE_EXPANSION_PACKS | |
132 | #define BOOST_NO_CXX11_DECLTYPE_N3276 | |
133 | #define BOOST_NO_CXX11_USER_DEFINED_LITERALS | |
134 | #define BOOST_NO_CXX11_REF_QUALIFIERS | |
135 | #define BOOST_NO_CXX11_THREAD_LOCAL | |
136 | #endif | |
137 | ||
138 | #define BOOST_NO_COMPLETE_VALUE_INITIALIZATION | |
139 | // | |
140 | // C++0x features | |
141 | // | |
142 | # define BOOST_HAS_LONG_LONG | |
143 | ||
b32b8144 | 144 | #define BOOST_NO_CXX11_SFINAE_EXPR |
7c673cae FG |
145 | |
146 | // C++ 14: | |
147 | #if !defined(__cpp_aggregate_nsdmi) || (__cpp_aggregate_nsdmi < 201304) | |
148 | # define BOOST_NO_CXX14_AGGREGATE_NSDMI | |
149 | #endif | |
150 | #if !defined(__cpp_binary_literals) || (__cpp_binary_literals < 201304) | |
151 | # define BOOST_NO_CXX14_BINARY_LITERALS | |
152 | #endif | |
153 | #if !defined(__cpp_constexpr) || (__cpp_constexpr < 201304) | |
154 | # define BOOST_NO_CXX14_CONSTEXPR | |
155 | #endif | |
b32b8144 | 156 | #if !defined(__cpp_decltype_auto) || (__cpp_decltype_auto < 201304) || (__cplusplus < 201402L) |
7c673cae FG |
157 | # define BOOST_NO_CXX14_DECLTYPE_AUTO |
158 | #endif | |
159 | #if (__cplusplus < 201304) // There's no SD6 check for this.... | |
160 | # define BOOST_NO_CXX14_DIGIT_SEPARATORS | |
161 | #endif | |
162 | #if !defined(__cpp_generic_lambdas) || (__cpp_generic_lambdas < 201304) | |
163 | # define BOOST_NO_CXX14_GENERIC_LAMBDAS | |
164 | #endif | |
165 | #if !defined(__cpp_init_captures) || (__cpp_init_captures < 201304) | |
166 | # define BOOST_NO_CXX14_INITIALIZED_LAMBDA_CAPTURES | |
167 | #endif | |
168 | #if !defined(__cpp_return_type_deduction) || (__cpp_return_type_deduction < 201304) | |
169 | # define BOOST_NO_CXX14_RETURN_TYPE_DEDUCTION | |
170 | #endif | |
171 | #if !defined(__cpp_variable_templates) || (__cpp_variable_templates < 201304) | |
172 | # define BOOST_NO_CXX14_VARIABLE_TEMPLATES | |
173 | #endif | |
174 | ||
b32b8144 FG |
175 | // C++17 |
176 | #if !defined(__cpp_structured_bindings) || (__cpp_structured_bindings < 201606) | |
177 | # define BOOST_NO_CXX17_STRUCTURED_BINDINGS | |
178 | #endif | |
179 | #if !defined(__cpp_inline_variables) || (__cpp_inline_variables < 201606) | |
180 | # define BOOST_NO_CXX17_INLINE_VARIABLES | |
181 | #endif | |
182 | #if !defined(__cpp_fold_expressions) || (__cpp_fold_expressions < 201603) | |
183 | # define BOOST_NO_CXX17_FOLD_EXPRESSIONS | |
184 | #endif | |
92f5a8d4 TL |
185 | #if !defined(__cpp_if_constexpr) || (__cpp_if_constexpr < 201606) |
186 | # define BOOST_NO_CXX17_IF_CONSTEXPR | |
187 | #endif | |
b32b8144 | 188 | |
7c673cae FG |
189 | // Turn on threading support for Solaris 12. |
190 | // Ticket #11972 | |
191 | #if (__SUNPRO_CC >= 0x5140) && defined(__SunOS_5_12) && !defined(BOOST_HAS_THREADS) | |
192 | # define BOOST_HAS_THREADS | |
193 | #endif | |
194 | ||
195 | // | |
196 | // Version | |
197 | // | |
198 | ||
199 | #define BOOST_COMPILER "Sun compiler version " BOOST_STRINGIZE(__SUNPRO_CC) | |
200 | ||
201 | // | |
202 | // versions check: | |
203 | // we don't support sunpro prior to version 4: | |
204 | #if __SUNPRO_CC < 0x400 | |
205 | #error "Compiler not supported or configured - please reconfigure" | |
206 | #endif | |
207 | // | |
b32b8144 FG |
208 | // last known and checked version: |
209 | #if (__SUNPRO_CC > 0x5150) | |
7c673cae | 210 | # if defined(BOOST_ASSERT_CONFIG) |
b32b8144 | 211 | # error "Boost.Config is older than your compiler - please check for an updated Boost release." |
7c673cae FG |
212 | # endif |
213 | #endif |