]>
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 | |
20effc67 | 126 | #define BOOST_NO_CXX11_OVERRIDE |
f67539c2 | 127 | #define BOOST_NO_CXX11_UNRESTRICTED_UNION |
7c673cae FG |
128 | #endif |
129 | ||
130 | #if (__SUNPRO_CC < 0x5140) || (__cplusplus < 201103) | |
131 | #define BOOST_NO_CXX11_VARIADIC_TEMPLATES | |
132 | #define BOOST_NO_CXX11_UNIFIED_INITIALIZATION_SYNTAX | |
133 | #define BOOST_NO_CXX11_FIXED_LENGTH_VARIADIC_TEMPLATE_EXPANSION_PACKS | |
134 | #define BOOST_NO_CXX11_DECLTYPE_N3276 | |
135 | #define BOOST_NO_CXX11_USER_DEFINED_LITERALS | |
136 | #define BOOST_NO_CXX11_REF_QUALIFIERS | |
137 | #define BOOST_NO_CXX11_THREAD_LOCAL | |
138 | #endif | |
139 | ||
140 | #define BOOST_NO_COMPLETE_VALUE_INITIALIZATION | |
141 | // | |
142 | // C++0x features | |
143 | // | |
144 | # define BOOST_HAS_LONG_LONG | |
145 | ||
b32b8144 | 146 | #define BOOST_NO_CXX11_SFINAE_EXPR |
7c673cae FG |
147 | |
148 | // C++ 14: | |
149 | #if !defined(__cpp_aggregate_nsdmi) || (__cpp_aggregate_nsdmi < 201304) | |
150 | # define BOOST_NO_CXX14_AGGREGATE_NSDMI | |
151 | #endif | |
152 | #if !defined(__cpp_binary_literals) || (__cpp_binary_literals < 201304) | |
153 | # define BOOST_NO_CXX14_BINARY_LITERALS | |
154 | #endif | |
155 | #if !defined(__cpp_constexpr) || (__cpp_constexpr < 201304) | |
156 | # define BOOST_NO_CXX14_CONSTEXPR | |
157 | #endif | |
b32b8144 | 158 | #if !defined(__cpp_decltype_auto) || (__cpp_decltype_auto < 201304) || (__cplusplus < 201402L) |
7c673cae FG |
159 | # define BOOST_NO_CXX14_DECLTYPE_AUTO |
160 | #endif | |
161 | #if (__cplusplus < 201304) // There's no SD6 check for this.... | |
162 | # define BOOST_NO_CXX14_DIGIT_SEPARATORS | |
163 | #endif | |
164 | #if !defined(__cpp_generic_lambdas) || (__cpp_generic_lambdas < 201304) | |
165 | # define BOOST_NO_CXX14_GENERIC_LAMBDAS | |
166 | #endif | |
167 | #if !defined(__cpp_init_captures) || (__cpp_init_captures < 201304) | |
168 | # define BOOST_NO_CXX14_INITIALIZED_LAMBDA_CAPTURES | |
169 | #endif | |
170 | #if !defined(__cpp_return_type_deduction) || (__cpp_return_type_deduction < 201304) | |
171 | # define BOOST_NO_CXX14_RETURN_TYPE_DEDUCTION | |
172 | #endif | |
173 | #if !defined(__cpp_variable_templates) || (__cpp_variable_templates < 201304) | |
174 | # define BOOST_NO_CXX14_VARIABLE_TEMPLATES | |
175 | #endif | |
176 | ||
b32b8144 FG |
177 | // C++17 |
178 | #if !defined(__cpp_structured_bindings) || (__cpp_structured_bindings < 201606) | |
179 | # define BOOST_NO_CXX17_STRUCTURED_BINDINGS | |
180 | #endif | |
181 | #if !defined(__cpp_inline_variables) || (__cpp_inline_variables < 201606) | |
182 | # define BOOST_NO_CXX17_INLINE_VARIABLES | |
183 | #endif | |
184 | #if !defined(__cpp_fold_expressions) || (__cpp_fold_expressions < 201603) | |
185 | # define BOOST_NO_CXX17_FOLD_EXPRESSIONS | |
186 | #endif | |
92f5a8d4 TL |
187 | #if !defined(__cpp_if_constexpr) || (__cpp_if_constexpr < 201606) |
188 | # define BOOST_NO_CXX17_IF_CONSTEXPR | |
189 | #endif | |
b32b8144 | 190 | |
7c673cae FG |
191 | // Turn on threading support for Solaris 12. |
192 | // Ticket #11972 | |
193 | #if (__SUNPRO_CC >= 0x5140) && defined(__SunOS_5_12) && !defined(BOOST_HAS_THREADS) | |
194 | # define BOOST_HAS_THREADS | |
195 | #endif | |
196 | ||
197 | // | |
198 | // Version | |
199 | // | |
200 | ||
201 | #define BOOST_COMPILER "Sun compiler version " BOOST_STRINGIZE(__SUNPRO_CC) | |
202 | ||
203 | // | |
204 | // versions check: | |
205 | // we don't support sunpro prior to version 4: | |
206 | #if __SUNPRO_CC < 0x400 | |
207 | #error "Compiler not supported or configured - please reconfigure" | |
208 | #endif | |
209 | // | |
b32b8144 FG |
210 | // last known and checked version: |
211 | #if (__SUNPRO_CC > 0x5150) | |
7c673cae | 212 | # if defined(BOOST_ASSERT_CONFIG) |
b32b8144 | 213 | # error "Boost.Config is older than your compiler - please check for an updated Boost release." |
7c673cae FG |
214 | # endif |
215 | #endif |