]> AND Private Git Repository - canny.git/blob - stc/exp/ml_stc_linux_make_v1.0/include/boost/config/stdlib/roguewave.hpp
Logo AND Algorithmique Numérique Distribuée

Private GIT Repository
3fbc6180080e24a05f791329d8011492a4136035
[canny.git] / stc / exp / ml_stc_linux_make_v1.0 / include / boost / config / stdlib / roguewave.hpp
1 //  (C) Copyright John Maddock 2001 - 2003. \r
2 //  (C) Copyright Jens Maurer 2001. \r
3 //  (C) Copyright David Abrahams 2003. \r
4 //  (C) Copyright Boris Gubenko 2007. \r
5 //  Use, modification and distribution are subject to the \r
6 //  Boost Software License, Version 1.0. (See accompanying file \r
7 //  LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)\r
8 \r
9 //  See http://www.boost.org for most recent version.\r
10 \r
11 //  Rogue Wave std lib:\r
12 \r
13 #if !defined(__STD_RWCOMPILER_H__) && !defined(_RWSTD_VER)\r
14 #  include <boost/config/no_tr1/utility.hpp>\r
15 #  if !defined(__STD_RWCOMPILER_H__) && !defined(_RWSTD_VER)\r
16 #     error This is not the Rogue Wave standard library\r
17 #  endif\r
18 #endif\r
19 //\r
20 // figure out a consistent version number:\r
21 //\r
22 #ifndef _RWSTD_VER\r
23 #  define BOOST_RWSTD_VER 0x010000\r
24 #elif _RWSTD_VER < 0x010000\r
25 #  define BOOST_RWSTD_VER (_RWSTD_VER << 8)\r
26 #else\r
27 #  define BOOST_RWSTD_VER _RWSTD_VER\r
28 #endif\r
29 \r
30 #ifndef _RWSTD_VER\r
31 #  define BOOST_STDLIB "Rogue Wave standard library version (Unknown version)"\r
32 #elif _RWSTD_VER < 0x04010200\r
33  #  define BOOST_STDLIB "Rogue Wave standard library version " BOOST_STRINGIZE(_RWSTD_VER)\r
34 #else\r
35 #  ifdef _RWSTD_VER_STR\r
36 #    define BOOST_STDLIB "Apache STDCXX standard library version " _RWSTD_VER_STR\r
37 #  else\r
38 #    define BOOST_STDLIB "Apache STDCXX standard library version " BOOST_STRINGIZE(_RWSTD_VER)\r
39 #  endif\r
40 #endif\r
41 \r
42 //\r
43 // Prior to version 2.2.0 the primary template for std::numeric_limits\r
44 // does not have compile time constants, even though specializations of that\r
45 // template do:\r
46 //\r
47 #if BOOST_RWSTD_VER < 0x020200\r
48 #  define BOOST_NO_LIMITS_COMPILE_TIME_CONSTANTS\r
49 #endif\r
50 \r
51 // Sun CC 5.5 patch 113817-07 adds long long specialization, but does not change the\r
52 // library version number (http://sunsolve6.sun.com/search/document.do?assetkey=1-21-113817):\r
53 #if BOOST_RWSTD_VER <= 0x020101 && (!defined(__SUNPRO_CC) || (__SUNPRO_CC < 0x550))\r
54 #  define BOOST_NO_LONG_LONG_NUMERIC_LIMITS\r
55 # endif\r
56 \r
57 //\r
58 // Borland version of numeric_limits lacks __int64 specialisation:\r
59 //\r
60 #ifdef __BORLANDC__\r
61 #  define BOOST_NO_MS_INT64_NUMERIC_LIMITS\r
62 #endif\r
63 \r
64 //\r
65 // No std::iterator if it can't figure out default template args:\r
66 //\r
67 #if defined(_RWSTD_NO_SIMPLE_DEFAULT_TEMPLATES) || defined(RWSTD_NO_SIMPLE_DEFAULT_TEMPLATES) || (BOOST_RWSTD_VER < 0x020000)\r
68 #  define BOOST_NO_STD_ITERATOR\r
69 #endif\r
70 \r
71 //\r
72 // No iterator traits without partial specialization:\r
73 //\r
74 #if defined(_RWSTD_NO_CLASS_PARTIAL_SPEC) || defined(RWSTD_NO_CLASS_PARTIAL_SPEC)\r
75 #  define BOOST_NO_STD_ITERATOR_TRAITS\r
76 #endif\r
77 \r
78 //\r
79 // Prior to version 2.0, std::auto_ptr was buggy, and there were no\r
80 // new-style iostreams, and no conformant std::allocator:\r
81 //\r
82 #if (BOOST_RWSTD_VER < 0x020000)\r
83 #  define BOOST_NO_AUTO_PTR\r
84 #  define BOOST_NO_STRINGSTREAM\r
85 #  define BOOST_NO_STD_ALLOCATOR\r
86 #  define BOOST_NO_STD_LOCALE\r
87 #endif\r
88 \r
89 //\r
90 // No template iterator constructors without member template support:\r
91 //\r
92 #if defined(RWSTD_NO_MEMBER_TEMPLATES) || defined(_RWSTD_NO_MEMBER_TEMPLATES)\r
93 #  define BOOST_NO_TEMPLATED_ITERATOR_CONSTRUCTORS\r
94 #endif\r
95 \r
96 //\r
97 // RW defines _RWSTD_ALLOCATOR if the allocator is conformant and in use\r
98 // (the or _HPACC_ part is a hack - the library seems to define _RWSTD_ALLOCATOR\r
99 // on HP aCC systems even though the allocator is in fact broken):\r
100 //\r
101 #if !defined(_RWSTD_ALLOCATOR) || (defined(__HP_aCC) && __HP_aCC <= 33100)\r
102 #  define BOOST_NO_STD_ALLOCATOR\r
103 #endif\r
104 \r
105 //\r
106 // If we have a std::locale, we still may not have std::use_facet:\r
107 //\r
108 #if defined(_RWSTD_NO_TEMPLATE_ON_RETURN_TYPE) && !defined(BOOST_NO_STD_LOCALE)\r
109 #  define BOOST_NO_STD_USE_FACET\r
110 #  define BOOST_HAS_TWO_ARG_USE_FACET\r
111 #endif\r
112 \r
113 //\r
114 // There's no std::distance prior to version 2, or without\r
115 // partial specialization support:\r
116 //\r
117 #if (BOOST_RWSTD_VER < 0x020000) || defined(_RWSTD_NO_CLASS_PARTIAL_SPEC)\r
118     #define BOOST_NO_STD_DISTANCE\r
119 #endif\r
120 \r
121 //\r
122 // Some versions of the rogue wave library don't have assignable\r
123 // OutputIterators:\r
124 //\r
125 #if BOOST_RWSTD_VER < 0x020100\r
126 #  define BOOST_NO_STD_OUTPUT_ITERATOR_ASSIGN\r
127 #endif\r
128 \r
129 //\r
130 // Disable BOOST_HAS_LONG_LONG when the library has no support for it.\r
131 //\r
132 #if !defined(_RWSTD_LONG_LONG) && defined(BOOST_HAS_LONG_LONG)\r
133 #  undef BOOST_HAS_LONG_LONG\r
134 #endif\r
135 \r
136 //\r
137 // check that on HP-UX, the proper RW library is used\r
138 //\r
139 #if defined(__HP_aCC) && !defined(_HP_NAMESPACE_STD)\r
140 #  error "Boost requires Standard RW library. Please compile and link with -AA"\r
141 #endif\r
142 \r
143 //\r
144 // Define macros specific to RW V2.2 on HP-UX\r
145 //\r
146 #if defined(__HP_aCC) && (BOOST_RWSTD_VER == 0x02020100)\r
147 #  ifndef __HP_TC1_MAKE_PAIR\r
148 #    define __HP_TC1_MAKE_PAIR\r
149 #  endif\r
150 #  ifndef _HP_INSTANTIATE_STD2_VL\r
151 #    define _HP_INSTANTIATE_STD2_VL\r
152 #  endif\r
153 #endif\r
154 \r
155 //  C++0x headers not yet implemented\r
156 //\r
157 #  define BOOST_NO_0X_HDR_ARRAY\r
158 #  define BOOST_NO_0X_HDR_CHRONO\r
159 #  define BOOST_NO_0X_HDR_CODECVT\r
160 #  define BOOST_NO_0X_HDR_CONCEPTS\r
161 #  define BOOST_NO_0X_HDR_CONDITION_VARIABLE\r
162 #  define BOOST_NO_0X_HDR_CONTAINER_CONCEPTS\r
163 #  define BOOST_NO_0X_HDR_FORWARD_LIST\r
164 #  define BOOST_NO_0X_HDR_FUTURE\r
165 #  define BOOST_NO_0X_HDR_INITIALIZER_LIST\r
166 #  define BOOST_NO_0X_HDR_ITERATOR_CONCEPTS\r
167 #  define BOOST_NO_0X_HDR_MEMORY_CONCEPTS\r
168 #  define BOOST_NO_0X_HDR_MUTEX\r
169 #  define BOOST_NO_0X_HDR_RANDOM\r
170 #  define BOOST_NO_0X_HDR_RATIO\r
171 #  define BOOST_NO_0X_HDR_REGEX\r
172 #  define BOOST_NO_0X_HDR_SYSTEM_ERROR\r
173 #  define BOOST_NO_0X_HDR_THREAD\r
174 #  define BOOST_NO_0X_HDR_TUPLE\r
175 #  define BOOST_NO_0X_HDR_TYPE_TRAITS\r
176 #  define BOOST_NO_STD_UNORDERED        // deprecated; see following\r
177 #  define BOOST_NO_0X_HDR_UNORDERED_MAP\r
178 #  define BOOST_NO_0X_HDR_UNORDERED_SET\r
179 \r