]>
Commit | Line | Data |
---|---|---|
7c673cae FG |
1 | // (C) Copyright John Maddock 2001. |
2 | // (C) Copyright Jens Maurer 2001. | |
3 | // Use, modification and distribution are subject to the | |
4 | // Boost Software License, Version 1.0. (See accompanying file | |
5 | // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) | |
6 | ||
7 | // See http://www.boost.org for most recent version. | |
8 | ||
9 | // config for libstdc++ v3 | |
10 | // not much to go in here: | |
11 | ||
12 | #define BOOST_GNU_STDLIB 1 | |
13 | ||
14 | #ifdef __GLIBCXX__ | |
15 | #define BOOST_STDLIB "GNU libstdc++ version " BOOST_STRINGIZE(__GLIBCXX__) | |
16 | #else | |
17 | #define BOOST_STDLIB "GNU libstdc++ version " BOOST_STRINGIZE(__GLIBCPP__) | |
18 | #endif | |
19 | ||
20 | #if !defined(_GLIBCPP_USE_WCHAR_T) && !defined(_GLIBCXX_USE_WCHAR_T) | |
21 | # define BOOST_NO_CWCHAR | |
22 | # define BOOST_NO_CWCTYPE | |
23 | # define BOOST_NO_STD_WSTRING | |
24 | # define BOOST_NO_STD_WSTREAMBUF | |
25 | #endif | |
26 | ||
27 | #if defined(__osf__) && !defined(_REENTRANT) \ | |
28 | && ( defined(_GLIBCXX_HAVE_GTHR_DEFAULT) || defined(_GLIBCPP_HAVE_GTHR_DEFAULT) ) | |
29 | // GCC 3 on Tru64 forces the definition of _REENTRANT when any std lib header | |
30 | // file is included, therefore for consistency we define it here as well. | |
31 | # define _REENTRANT | |
32 | #endif | |
33 | ||
34 | #ifdef __GLIBCXX__ // gcc 3.4 and greater: | |
35 | # if defined(_GLIBCXX_HAVE_GTHR_DEFAULT) \ | |
36 | || defined(_GLIBCXX__PTHREADS) \ | |
37 | || defined(_GLIBCXX_HAS_GTHREADS) \ | |
38 | || defined(_WIN32) \ | |
39 | || defined(_AIX) \ | |
40 | || defined(__HAIKU__) | |
41 | // | |
42 | // If the std lib has thread support turned on, then turn it on in Boost | |
43 | // as well. We do this because some gcc-3.4 std lib headers define _REENTANT | |
44 | // while others do not... | |
45 | // | |
46 | # define BOOST_HAS_THREADS | |
47 | # else | |
48 | # define BOOST_DISABLE_THREADS | |
49 | # endif | |
50 | #elif defined(__GLIBCPP__) \ | |
51 | && !defined(_GLIBCPP_HAVE_GTHR_DEFAULT) \ | |
52 | && !defined(_GLIBCPP__PTHREADS) | |
53 | // disable thread support if the std lib was built single threaded: | |
54 | # define BOOST_DISABLE_THREADS | |
55 | #endif | |
56 | ||
57 | #if (defined(linux) || defined(__linux) || defined(__linux__)) && defined(__arm__) && defined(_GLIBCPP_HAVE_GTHR_DEFAULT) | |
58 | // linux on arm apparently doesn't define _REENTRANT | |
59 | // so just turn on threading support whenever the std lib is thread safe: | |
60 | # define BOOST_HAS_THREADS | |
61 | #endif | |
62 | ||
63 | #if !defined(_GLIBCPP_USE_LONG_LONG) \ | |
64 | && !defined(_GLIBCXX_USE_LONG_LONG)\ | |
65 | && defined(BOOST_HAS_LONG_LONG) | |
66 | // May have been set by compiler/*.hpp, but "long long" without library | |
67 | // support is useless. | |
68 | # undef BOOST_HAS_LONG_LONG | |
69 | #endif | |
70 | ||
71 | // Apple doesn't seem to reliably defined a *unix* macro | |
72 | #if !defined(CYGWIN) && ( defined(__unix__) \ | |
73 | || defined(__unix) \ | |
74 | || defined(unix) \ | |
75 | || defined(__APPLE__) \ | |
76 | || defined(__APPLE) \ | |
77 | || defined(APPLE)) | |
78 | # include <unistd.h> | |
79 | #endif | |
80 | ||
11fdf7f2 | 81 | #ifndef __VXWORKS__ // VxWorks uses Dinkum, not GNU STL with GCC |
7c673cae FG |
82 | #if defined(__GLIBCXX__) || (defined(__GLIBCPP__) && __GLIBCPP__>=20020514) // GCC >= 3.1.0 |
83 | # define BOOST_STD_EXTENSION_NAMESPACE __gnu_cxx | |
84 | # define BOOST_HAS_SLIST | |
85 | # define BOOST_HAS_HASH | |
86 | # define BOOST_SLIST_HEADER <ext/slist> | |
87 | # if !defined(__GNUC__) || __GNUC__ < 4 || (__GNUC__ == 4 && __GNUC_MINOR__ < 3) | |
88 | # define BOOST_HASH_SET_HEADER <ext/hash_set> | |
89 | # define BOOST_HASH_MAP_HEADER <ext/hash_map> | |
90 | # else | |
91 | # define BOOST_HASH_SET_HEADER <backward/hash_set> | |
92 | # define BOOST_HASH_MAP_HEADER <backward/hash_map> | |
93 | # endif | |
94 | #endif | |
11fdf7f2 | 95 | #endif |
7c673cae | 96 | |
1e59de90 TL |
97 | #if defined(__has_include) |
98 | #if defined(BOOST_HAS_HASH) | |
99 | #if !__has_include(BOOST_HASH_SET_HEADER) || (__GNUC__ >= 10) | |
100 | #undef BOOST_HAS_HASH | |
101 | #undef BOOST_HAS_SET_HEADER | |
102 | #undef BOOST_HAS_MAP_HEADER | |
103 | #endif | |
104 | #if !__has_include(BOOST_SLIST_HEADER) | |
105 | #undef BOOST_HAS_SLIST | |
106 | #undef BOOST_HAS_SLIST_HEADER | |
107 | #endif | |
108 | #endif | |
109 | #endif | |
110 | ||
7c673cae FG |
111 | // |
112 | // Decide whether we have C++11 support turned on: | |
113 | // | |
114 | #if defined(__GXX_EXPERIMENTAL_CXX0X__) || (__cplusplus >= 201103) | |
115 | # define BOOST_LIBSTDCXX11 | |
116 | #endif | |
117 | ||
118 | // | |
119 | // Decide which version of libstdc++ we have, normally | |
b32b8144 FG |
120 | // libstdc++ C++0x support is detected via __GNUC__, __GNUC_MINOR__, and possibly |
121 | // __GNUC_PATCHLEVEL__ at the suggestion of Jonathan Wakely, one of the libstdc++ | |
7c673cae FG |
122 | // developers. He also commented: |
123 | // | |
124 | // "I'm not sure how useful __GLIBCXX__ is for your purposes, for instance in | |
125 | // GCC 4.2.4 it is set to 20080519 but in GCC 4.3.0 it is set to 20080305. | |
126 | // Although 4.3.0 was released earlier than 4.2.4, it has better C++0x support | |
127 | // than any release in the 4.2 series." | |
128 | // | |
b32b8144 | 129 | // Another resource for understanding libstdc++ features is: |
7c673cae FG |
130 | // http://gcc.gnu.org/onlinedocs/libstdc++/manual/status.html#manual.intro.status.standard.200x |
131 | // | |
132 | // However, using the GCC version number fails when the compiler is clang since this | |
133 | // only ever claims to emulate GCC-4.2, see https://svn.boost.org/trac/boost/ticket/7473 | |
134 | // for a long discussion on this issue. What we can do though is use clang's __has_include | |
135 | // to detect the presence of a C++11 header that was introduced with a specific GCC release. | |
136 | // We still have to be careful though as many such headers were buggy and/or incomplete when | |
137 | // first introduced, so we only check for headers that were fully featured from day 1, and then | |
138 | // use that to infer the underlying GCC version: | |
139 | // | |
140 | #ifdef __clang__ | |
141 | ||
20effc67 TL |
142 | #if __has_include(<compare>) |
143 | # define BOOST_LIBSTDCXX_VERSION 100100 | |
144 | #elif __has_include(<memory_resource>) | |
92f5a8d4 TL |
145 | # define BOOST_LIBSTDCXX_VERSION 90100 |
146 | #elif __has_include(<charconv>) | |
147 | # define BOOST_LIBSTDCXX_VERSION 80100 | |
148 | #elif __has_include(<variant>) | |
149 | # define BOOST_LIBSTDCXX_VERSION 70100 | |
150 | #elif __has_include(<experimental/memory_resource>) | |
7c673cae FG |
151 | # define BOOST_LIBSTDCXX_VERSION 60100 |
152 | #elif __has_include(<experimental/any>) | |
153 | # define BOOST_LIBSTDCXX_VERSION 50100 | |
154 | #elif __has_include(<shared_mutex>) | |
155 | # define BOOST_LIBSTDCXX_VERSION 40900 | |
156 | #elif __has_include(<ext/cmath>) | |
157 | # define BOOST_LIBSTDCXX_VERSION 40800 | |
158 | #elif __has_include(<scoped_allocator>) | |
159 | # define BOOST_LIBSTDCXX_VERSION 40700 | |
160 | #elif __has_include(<typeindex>) | |
161 | # define BOOST_LIBSTDCXX_VERSION 40600 | |
162 | #elif __has_include(<future>) | |
163 | # define BOOST_LIBSTDCXX_VERSION 40500 | |
164 | #elif __has_include(<ratio>) | |
165 | # define BOOST_LIBSTDCXX_VERSION 40400 | |
166 | #elif __has_include(<array>) | |
167 | # define BOOST_LIBSTDCXX_VERSION 40300 | |
168 | #endif | |
1e59de90 TL |
169 | // |
170 | // If BOOST_HAS_FLOAT128 is set, now that we know the std lib is libstdc++3, check to see if the std lib is | |
171 | // configured to support this type. If not disable it: | |
172 | // | |
173 | #if defined(BOOST_HAS_FLOAT128) && !defined(_GLIBCXX_USE_FLOAT128) | |
174 | # undef BOOST_HAS_FLOAT128 | |
175 | #endif | |
176 | ||
177 | #if (BOOST_LIBSTDCXX_VERSION >= 100000) && defined(BOOST_HAS_HASH) | |
178 | // | |
179 | // hash_set/hash_map deprecated and have terminal bugs: | |
180 | // | |
181 | #undef BOOST_HAS_HASH | |
182 | #undef BOOST_HAS_SET_HEADER | |
183 | #undef BOOST_HAS_MAP_HEADER | |
184 | #endif | |
185 | ||
186 | ||
187 | #if (BOOST_LIBSTDCXX_VERSION >= 100000) && defined(BOOST_HAS_HASH) | |
188 | // | |
189 | // hash_set/hash_map deprecated and have terminal bugs: | |
190 | // | |
191 | #undef BOOST_HAS_HASH | |
192 | #undef BOOST_HAS_SET_HEADER | |
193 | #undef BOOST_HAS_MAP_HEADER | |
194 | #endif | |
195 | ||
7c673cae | 196 | |
b32b8144 FG |
197 | #if (BOOST_LIBSTDCXX_VERSION < 50100) |
198 | // libstdc++ does not define this function as it's deprecated in C++11, but clang still looks for it, | |
199 | // defining it here is a terrible cludge, but should get things working: | |
200 | extern "C" char *gets (char *__s); | |
201 | #endif | |
202 | // | |
203 | // clang is unable to parse some GCC headers, add those workarounds here: | |
204 | // | |
205 | #if BOOST_LIBSTDCXX_VERSION < 50000 | |
206 | # define BOOST_NO_CXX11_HDR_REGEX | |
207 | #endif | |
208 | // | |
209 | // GCC 4.7.x has no __cxa_thread_atexit which | |
210 | // thread_local objects require for cleanup: | |
211 | // | |
212 | #if BOOST_LIBSTDCXX_VERSION < 40800 | |
213 | # define BOOST_NO_CXX11_THREAD_LOCAL | |
214 | #endif | |
215 | // | |
216 | // Early clang versions can handle <chrono>, not exactly sure which versions | |
217 | // but certainly up to clang-3.8 and gcc-4.6: | |
218 | // | |
219 | #if (__clang_major__ < 5) | |
220 | # if BOOST_LIBSTDCXX_VERSION < 40800 | |
221 | # define BOOST_NO_CXX11_HDR_FUTURE | |
222 | # define BOOST_NO_CXX11_HDR_MUTEX | |
223 | # define BOOST_NO_CXX11_HDR_CONDITION_VARIABLE | |
224 | # define BOOST_NO_CXX11_HDR_CHRONO | |
225 | # endif | |
226 | #endif | |
227 | ||
7c673cae FG |
228 | // |
229 | // GCC 4.8 and 9 add working versions of <atomic> and <regex> respectively. | |
230 | // However, we have no test for these as the headers were present but broken | |
231 | // in early GCC versions. | |
232 | // | |
233 | #endif | |
234 | ||
235 | #if defined(__SUNPRO_CC) && (__SUNPRO_CC >= 0x5130) && (__cplusplus >= 201103L) | |
236 | // | |
237 | // Oracle Solaris compiler uses it's own verison of libstdc++ but doesn't | |
238 | // set __GNUC__ | |
239 | // | |
240 | #if __SUNPRO_CC >= 0x5140 | |
241 | #define BOOST_LIBSTDCXX_VERSION 50100 | |
242 | #else | |
243 | #define BOOST_LIBSTDCXX_VERSION 40800 | |
244 | #endif | |
245 | #endif | |
246 | ||
247 | #if !defined(BOOST_LIBSTDCXX_VERSION) | |
248 | # define BOOST_LIBSTDCXX_VERSION (__GNUC__ * 10000 + __GNUC_MINOR__ * 100 + __GNUC_PATCHLEVEL__) | |
249 | #endif | |
250 | ||
251 | // std::auto_ptr isn't provided with _GLIBCXX_DEPRECATED=0 (GCC 4.5 and earlier) | |
252 | // or _GLIBCXX_USE_DEPRECATED=0 (GCC 4.6 and later). | |
253 | #if defined(BOOST_LIBSTDCXX11) | |
254 | # if BOOST_LIBSTDCXX_VERSION < 40600 | |
255 | # if !_GLIBCXX_DEPRECATED | |
256 | # define BOOST_NO_AUTO_PTR | |
257 | # endif | |
258 | # elif !_GLIBCXX_USE_DEPRECATED | |
259 | # define BOOST_NO_AUTO_PTR | |
1e59de90 | 260 | # define BOOST_NO_CXX98_BINDERS |
7c673cae FG |
261 | # endif |
262 | #endif | |
263 | ||
264 | // C++0x headers in GCC 4.3.0 and later | |
265 | // | |
266 | #if (BOOST_LIBSTDCXX_VERSION < 40300) || !defined(BOOST_LIBSTDCXX11) | |
267 | # define BOOST_NO_CXX11_HDR_ARRAY | |
268 | # define BOOST_NO_CXX11_HDR_TUPLE | |
269 | # define BOOST_NO_CXX11_HDR_UNORDERED_MAP | |
270 | # define BOOST_NO_CXX11_HDR_UNORDERED_SET | |
271 | # define BOOST_NO_CXX11_HDR_FUNCTIONAL | |
272 | #endif | |
273 | ||
274 | // C++0x headers in GCC 4.4.0 and later | |
275 | // | |
276 | #if (BOOST_LIBSTDCXX_VERSION < 40400) || !defined(BOOST_LIBSTDCXX11) | |
277 | # define BOOST_NO_CXX11_HDR_CONDITION_VARIABLE | |
278 | # define BOOST_NO_CXX11_HDR_FORWARD_LIST | |
279 | # define BOOST_NO_CXX11_HDR_INITIALIZER_LIST | |
280 | # define BOOST_NO_CXX11_HDR_MUTEX | |
281 | # define BOOST_NO_CXX11_HDR_RATIO | |
282 | # define BOOST_NO_CXX11_HDR_SYSTEM_ERROR | |
283 | # define BOOST_NO_CXX11_SMART_PTR | |
92f5a8d4 | 284 | # define BOOST_NO_CXX11_HDR_EXCEPTION |
7c673cae FG |
285 | #else |
286 | # define BOOST_HAS_TR1_COMPLEX_INVERSE_TRIG | |
287 | # define BOOST_HAS_TR1_COMPLEX_OVERLOADS | |
288 | #endif | |
289 | ||
290 | // C++0x features in GCC 4.5.0 and later | |
291 | // | |
292 | #if (BOOST_LIBSTDCXX_VERSION < 40500) || !defined(BOOST_LIBSTDCXX11) | |
293 | # define BOOST_NO_CXX11_NUMERIC_LIMITS | |
294 | # define BOOST_NO_CXX11_HDR_FUTURE | |
295 | # define BOOST_NO_CXX11_HDR_RANDOM | |
296 | #endif | |
297 | ||
298 | // C++0x features in GCC 4.6.0 and later | |
299 | // | |
300 | #if (BOOST_LIBSTDCXX_VERSION < 40600) || !defined(BOOST_LIBSTDCXX11) | |
301 | # define BOOST_NO_CXX11_HDR_TYPEINDEX | |
302 | # define BOOST_NO_CXX11_ADDRESSOF | |
b32b8144 | 303 | # define BOOST_NO_CXX17_ITERATOR_TRAITS |
7c673cae FG |
304 | #endif |
305 | ||
306 | // C++0x features in GCC 4.7.0 and later | |
307 | // | |
308 | #if (BOOST_LIBSTDCXX_VERSION < 40700) || !defined(BOOST_LIBSTDCXX11) | |
309 | // Note that although <chrono> existed prior to 4.7, "steady_clock" is spelled "monotonic_clock" | |
b32b8144 | 310 | // so 4.7.0 is the first truly conforming one. |
7c673cae FG |
311 | # define BOOST_NO_CXX11_HDR_CHRONO |
312 | # define BOOST_NO_CXX11_ALLOCATOR | |
b32b8144 | 313 | # define BOOST_NO_CXX11_POINTER_TRAITS |
7c673cae FG |
314 | #endif |
315 | // C++0x features in GCC 4.8.0 and later | |
316 | // | |
317 | #if (BOOST_LIBSTDCXX_VERSION < 40800) || !defined(BOOST_LIBSTDCXX11) | |
318 | // Note that although <atomic> existed prior to gcc 4.8 it was largely unimplemented for many types: | |
319 | # define BOOST_NO_CXX11_HDR_ATOMIC | |
320 | # define BOOST_NO_CXX11_HDR_THREAD | |
321 | #endif | |
322 | // C++0x features in GCC 4.9.0 and later | |
323 | // | |
324 | #if (BOOST_LIBSTDCXX_VERSION < 40900) || !defined(BOOST_LIBSTDCXX11) | |
325 | // Although <regex> is present and compilable against, the actual implementation is not functional | |
326 | // even for the simplest patterns such as "\d" or "[0-9]". This is the case at least in gcc up to 4.8, inclusively. | |
327 | # define BOOST_NO_CXX11_HDR_REGEX | |
328 | #endif | |
b32b8144 FG |
329 | #if (BOOST_LIBSTDCXX_VERSION < 40900) || (__cplusplus <= 201103) |
330 | # define BOOST_NO_CXX14_STD_EXCHANGE | |
331 | #endif | |
7c673cae | 332 | |
7c673cae FG |
333 | // |
334 | // C++0x features in GCC 5.1 and later | |
335 | // | |
336 | #if (BOOST_LIBSTDCXX_VERSION < 50100) || !defined(BOOST_LIBSTDCXX11) | |
337 | # define BOOST_NO_CXX11_HDR_TYPE_TRAITS | |
338 | # define BOOST_NO_CXX11_HDR_CODECVT | |
339 | # define BOOST_NO_CXX11_ATOMIC_SMART_PTR | |
340 | # define BOOST_NO_CXX11_STD_ALIGN | |
341 | #endif | |
342 | ||
343 | // | |
92f5a8d4 | 344 | // C++17 features in GCC 7.1 and later |
7c673cae | 345 | // |
b32b8144 | 346 | #if (BOOST_LIBSTDCXX_VERSION < 70100) || (__cplusplus <= 201402L) |
92f5a8d4 | 347 | # define BOOST_NO_CXX17_STD_INVOKE |
b32b8144 | 348 | # define BOOST_NO_CXX17_STD_APPLY |
92f5a8d4 TL |
349 | # define BOOST_NO_CXX17_HDR_OPTIONAL |
350 | # define BOOST_NO_CXX17_HDR_STRING_VIEW | |
351 | # define BOOST_NO_CXX17_HDR_VARIANT | |
b32b8144 | 352 | #endif |
7c673cae FG |
353 | |
354 | #if defined(__has_include) | |
355 | #if !__has_include(<shared_mutex>) | |
356 | # define BOOST_NO_CXX14_HDR_SHARED_MUTEX | |
357 | #elif __cplusplus <= 201103 | |
358 | # define BOOST_NO_CXX14_HDR_SHARED_MUTEX | |
359 | #endif | |
1e59de90 TL |
360 | // |
361 | // <execution> has a dependency to Intel's thread building blocks: | |
362 | // unless these are installed seperately, including <execution> leads | |
363 | // to inscrutable errors inside libstdc++'s own headers. | |
364 | // | |
365 | #if (BOOST_LIBSTDCXX_VERSION < 100100) | |
366 | #if !__has_include(<tbb/tbb.h>) | |
367 | #define BOOST_NO_CXX17_HDR_EXECUTION | |
368 | #endif | |
369 | #endif | |
7c673cae FG |
370 | #elif __cplusplus < 201402 || (BOOST_LIBSTDCXX_VERSION < 40900) || !defined(BOOST_LIBSTDCXX11) |
371 | # define BOOST_NO_CXX14_HDR_SHARED_MUTEX | |
372 | #endif | |
373 | ||
1e59de90 TL |
374 | #if BOOST_LIBSTDCXX_VERSION < 100100 |
375 | // | |
376 | // The header may be present but is incomplete: | |
377 | // | |
378 | # define BOOST_NO_CXX17_HDR_CHARCONV | |
379 | #endif | |
380 | ||
381 | #if BOOST_LIBSTDCXX_VERSION < 110000 | |
382 | // | |
383 | // Header <bit> may be present but lacks std::bit_cast: | |
384 | // | |
385 | #define BOOST_NO_CXX20_HDR_BIT | |
386 | #endif | |
387 | ||
388 | #ifndef __cpp_impl_coroutine | |
389 | # define BOOST_NO_CXX20_HDR_COROUTINE | |
390 | #endif | |
391 | ||
392 | // | |
393 | // These next defines are mostly for older clang versions with a newer libstdc++ : | |
394 | // | |
395 | #if !defined(__cpp_lib_concepts) | |
396 | #if !defined(BOOST_NO_CXX20_HDR_COMPARE) | |
397 | # define BOOST_NO_CXX20_HDR_COMPARE | |
398 | #endif | |
399 | #if !defined(BOOST_NO_CXX20_HDR_CONCEPTS) | |
400 | # define BOOST_NO_CXX20_HDR_CONCEPTS | |
401 | #endif | |
402 | #if !defined(BOOST_NO_CXX20_HDR_SPAN) | |
403 | # define BOOST_NO_CXX20_HDR_SPAN | |
404 | #endif | |
405 | #if !defined(BOOST_NO_CXX20_HDR_RANGES) | |
406 | # define BOOST_NO_CXX20_HDR_RANGES | |
407 | #endif | |
408 | #endif | |
409 | ||
7c673cae FG |
410 | // |
411 | // Headers not present on Solaris with the Oracle compiler: | |
412 | #if defined(__SUNPRO_CC) && (__SUNPRO_CC < 0x5140) | |
413 | #define BOOST_NO_CXX11_HDR_FUTURE | |
414 | #define BOOST_NO_CXX11_HDR_FORWARD_LIST | |
415 | #define BOOST_NO_CXX11_HDR_ATOMIC | |
416 | // shared_ptr is present, but is not convertible to bool | |
417 | // which causes all kinds of problems especially in Boost.Thread | |
418 | // but probably elsewhere as well. | |
419 | #define BOOST_NO_CXX11_SMART_PTR | |
420 | #endif | |
421 | ||
422 | #if (!defined(_GLIBCXX_HAS_GTHREADS) || !defined(_GLIBCXX_USE_C99_STDINT_TR1)) | |
423 | // Headers not always available: | |
424 | # ifndef BOOST_NO_CXX11_HDR_CONDITION_VARIABLE | |
425 | # define BOOST_NO_CXX11_HDR_CONDITION_VARIABLE | |
426 | # endif | |
427 | # ifndef BOOST_NO_CXX11_HDR_MUTEX | |
428 | # define BOOST_NO_CXX11_HDR_MUTEX | |
429 | # endif | |
430 | # ifndef BOOST_NO_CXX11_HDR_THREAD | |
431 | # define BOOST_NO_CXX11_HDR_THREAD | |
432 | # endif | |
433 | # ifndef BOOST_NO_CXX14_HDR_SHARED_MUTEX | |
434 | # define BOOST_NO_CXX14_HDR_SHARED_MUTEX | |
435 | # endif | |
436 | #endif | |
437 | ||
438 | #if (!defined(_GTHREAD_USE_MUTEX_TIMEDLOCK) || (_GTHREAD_USE_MUTEX_TIMEDLOCK == 0)) && !defined(BOOST_NO_CXX11_HDR_MUTEX) | |
439 | // Timed mutexes are not always available: | |
440 | # define BOOST_NO_CXX11_HDR_MUTEX | |
441 | #endif | |
442 | ||
443 | // --- end --- |