New URL for NEMO forge!   http://forge.nemo-ocean.eu

Since March 2022 along with NEMO 4.2 release, the code development moved to a self-hosted GitLab.
This present forge is now archived and remained online for history.
libstdcpp3.hpp in vendors/XIOS/current/extern/boost/include/boost/config/stdlib – NEMO

source: vendors/XIOS/current/extern/boost/include/boost/config/stdlib/libstdcpp3.hpp @ 3408

Last change on this file since 3408 was 3408, checked in by rblod, 12 years ago

importing initial XIOS vendor drop

  • Property svn:keywords set to Id
File size: 4.6 KB
Line 
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#ifdef __GLIBCXX__
13#define BOOST_STDLIB "GNU libstdc++ version " BOOST_STRINGIZE(__GLIBCXX__)
14#else
15#define BOOST_STDLIB "GNU libstdc++ version " BOOST_STRINGIZE(__GLIBCPP__)
16#endif
17
18#if !defined(_GLIBCPP_USE_WCHAR_T) && !defined(_GLIBCXX_USE_WCHAR_T)
19#  define BOOST_NO_CWCHAR
20#  define BOOST_NO_CWCTYPE
21#  define BOOST_NO_STD_WSTRING
22#  define BOOST_NO_STD_WSTREAMBUF
23#endif
24
25#if defined(__osf__) && !defined(_REENTRANT) \
26  && ( defined(_GLIBCXX_HAVE_GTHR_DEFAULT) || defined(_GLIBCPP_HAVE_GTHR_DEFAULT) )
27// GCC 3 on Tru64 forces the definition of _REENTRANT when any std lib header
28// file is included, therefore for consistency we define it here as well.
29#  define _REENTRANT
30#endif
31
32#ifdef __GLIBCXX__ // gcc 3.4 and greater:
33#  if defined(_GLIBCXX_HAVE_GTHR_DEFAULT) \
34        || defined(_GLIBCXX__PTHREADS)
35      //
36      // If the std lib has thread support turned on, then turn it on in Boost
37      // as well.  We do this because some gcc-3.4 std lib headers define _REENTANT
38      // while others do not...
39      //
40#     define BOOST_HAS_THREADS
41#  else
42#     define BOOST_DISABLE_THREADS
43#  endif
44#elif defined(__GLIBCPP__) \
45        && !defined(_GLIBCPP_HAVE_GTHR_DEFAULT) \
46        && !defined(_GLIBCPP__PTHREADS)
47   // disable thread support if the std lib was built single threaded:
48#  define BOOST_DISABLE_THREADS
49#endif
50
51#if (defined(linux) || defined(__linux) || defined(__linux__)) && defined(__arm__) && defined(_GLIBCPP_HAVE_GTHR_DEFAULT)
52// linux on arm apparently doesn't define _REENTRANT
53// so just turn on threading support whenever the std lib is thread safe:
54#  define BOOST_HAS_THREADS
55#endif
56
57
58#if !defined(_GLIBCPP_USE_LONG_LONG) \
59    && !defined(_GLIBCXX_USE_LONG_LONG)\
60    && defined(BOOST_HAS_LONG_LONG)
61// May have been set by compiler/*.hpp, but "long long" without library
62// support is useless.
63#  undef BOOST_HAS_LONG_LONG
64#endif
65
66#if defined(__GLIBCXX__) || (defined(__GLIBCPP__) && __GLIBCPP__>=20020514) // GCC >= 3.1.0
67#  define BOOST_STD_EXTENSION_NAMESPACE __gnu_cxx
68#  define BOOST_HAS_SLIST
69#  define BOOST_HAS_HASH
70#  define BOOST_SLIST_HEADER <ext/slist>
71# if !defined(__GNUC__) || __GNUC__ < 4 || (__GNUC__ == 4 && __GNUC_MINOR__ < 3)
72#   define BOOST_HASH_SET_HEADER <ext/hash_set>
73#   define BOOST_HASH_MAP_HEADER <ext/hash_map>
74# else
75#   define BOOST_HASH_SET_HEADER <backward/hash_set>
76#   define BOOST_HASH_MAP_HEADER <backward/hash_map>
77# endif
78#endif
79
80//  stdlibc++ C++0x support is detected via __GNUC__, __GNUC_MINOR__, and possibly
81//  __GNUC_PATCHLEVEL__ at the suggestion of Jonathan Wakely, one of the stdlibc++
82//  developers. He also commented:
83//
84//       "I'm not sure how useful __GLIBCXX__ is for your purposes, for instance in
85//       GCC 4.2.4 it is set to 20080519 but in GCC 4.3.0 it is set to 20080305.
86//       Although 4.3.0 was released earlier than 4.2.4, it has better C++0x support
87//       than any release in the 4.2 series."
88//
89//  Another resource for understanding stdlibc++ features is:
90//  http://gcc.gnu.org/onlinedocs/libstdc++/manual/status.html#manual.intro.status.standard.200x
91
92//  C++0x headers in GCC 4.3.0 and later
93//
94#if __GNUC__ < 4 || (__GNUC__ == 4 && __GNUC_MINOR__ < 3) || !defined(__GXX_EXPERIMENTAL_CXX0X__)
95#  define BOOST_NO_0X_HDR_ARRAY
96#  define BOOST_NO_0X_HDR_RANDOM
97#  define BOOST_NO_0X_HDR_REGEX
98#  define BOOST_NO_0X_HDR_TUPLE
99#  define BOOST_NO_0X_HDR_TYPE_TRAITS
100#  define BOOST_NO_STD_UNORDERED  // deprecated; see following
101#  define BOOST_NO_0X_HDR_UNORDERED_MAP
102#  define BOOST_NO_0X_HDR_UNORDERED_SET
103#endif
104
105//  C++0x headers in GCC 4.4.0 and later
106//
107#if __GNUC__ < 4 || (__GNUC__ == 4 && __GNUC_MINOR__ < 4) || !defined(__GXX_EXPERIMENTAL_CXX0X__)
108#  define BOOST_NO_0X_HDR_CHRONO
109#  define BOOST_NO_0X_HDR_CONDITION_VARIABLE
110#  define BOOST_NO_0X_HDR_FORWARD_LIST
111#  define BOOST_NO_0X_HDR_INITIALIZER_LIST
112#  define BOOST_NO_0X_HDR_MUTEX
113#  define BOOST_NO_0X_HDR_RATIO
114#  define BOOST_NO_0X_HDR_SYSTEM_ERROR
115#  define BOOST_NO_0X_HDR_THREAD
116#endif
117
118//  C++0x headers not yet implemented
119//
120#  define BOOST_NO_0X_HDR_CODECVT
121#  define BOOST_NO_0X_HDR_CONCEPTS
122#  define BOOST_NO_0X_HDR_CONTAINER_CONCEPTS
123#  define BOOST_NO_0X_HDR_FUTURE
124#  define BOOST_NO_0X_HDR_ITERATOR_CONCEPTS
125#  define BOOST_NO_0X_HDR_MEMORY_CONCEPTS
126#  define BOOST_NO_0X_HDR_TYPEINDEX
127
128//  --- end ---
Note: See TracBrowser for help on using the repository browser.