|
1 // (C) Copyright John Maddock 2001 - 2003. |
|
2 // (C) Copyright Darin Adler 2001. |
|
3 // (C) Copyright Jens Maurer 2001 - 2003. |
|
4 // Use, modification and distribution are subject to the |
|
5 // Boost Software License, Version 1.0. (See accompanying file |
|
6 // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) |
|
7 |
|
8 // See http://www.boost.org for most recent version. |
|
9 |
|
10 // generic SGI STL: |
|
11 |
|
12 #if !defined(__STL_CONFIG_H) |
|
13 # include <boost/config/no_tr1/utility.hpp> |
|
14 # if !defined(__STL_CONFIG_H) |
|
15 # error "This is not the SGI STL!" |
|
16 # endif |
|
17 #endif |
|
18 |
|
19 // |
|
20 // No std::iterator traits without partial specialisation: |
|
21 // |
|
22 #if !defined(__STL_CLASS_PARTIAL_SPECIALIZATION) |
|
23 # define BOOST_NO_STD_ITERATOR_TRAITS |
|
24 #endif |
|
25 |
|
26 // |
|
27 // No std::stringstream with gcc < 3 |
|
28 // |
|
29 #if defined(__GNUC__) && (__GNUC__ < 3) && \ |
|
30 ((__GNUC_MINOR__ < 95) || (__GNUC_MINOR__ == 96)) && \ |
|
31 !defined(__STL_USE_NEW_IOSTREAMS) || \ |
|
32 defined(__APPLE_CC__) |
|
33 // Note that we only set this for GNU C++ prior to 2.95 since the |
|
34 // latest patches for that release do contain a minimal <sstream> |
|
35 // If you are running a 2.95 release prior to 2.95.3 then this will need |
|
36 // setting, but there is no way to detect that automatically (other |
|
37 // than by running the configure script). |
|
38 // Also, the unofficial GNU C++ 2.96 included in RedHat 7.1 doesn't |
|
39 // have <sstream>. |
|
40 # define BOOST_NO_STRINGSTREAM |
|
41 #endif |
|
42 |
|
43 // |
|
44 // Assume no std::locale without own iostreams (this may be an |
|
45 // incorrect assumption in some cases): |
|
46 // |
|
47 #if !defined(__SGI_STL_OWN_IOSTREAMS) && !defined(__STL_USE_NEW_IOSTREAMS) |
|
48 # define BOOST_NO_STD_LOCALE |
|
49 #endif |
|
50 |
|
51 // |
|
52 // Original native SGI streams have non-standard std::messages facet: |
|
53 // |
|
54 #if defined(__sgi) && (_COMPILER_VERSION <= 650) && !defined(__SGI_STL_OWN_IOSTREAMS) |
|
55 # define BOOST_NO_STD_LOCALE |
|
56 #endif |
|
57 |
|
58 // |
|
59 // SGI's new iostreams have missing "const" in messages<>::open |
|
60 // |
|
61 #if defined(__sgi) && (_COMPILER_VERSION <= 740) && defined(__STL_USE_NEW_IOSTREAMS) |
|
62 # define BOOST_NO_STD_MESSAGES |
|
63 #endif |
|
64 |
|
65 // |
|
66 // No template iterator constructors, or std::allocator |
|
67 // without member templates: |
|
68 // |
|
69 #if !defined(__STL_MEMBER_TEMPLATES) |
|
70 # define BOOST_NO_TEMPLATED_ITERATOR_CONSTRUCTORS |
|
71 # define BOOST_NO_STD_ALLOCATOR |
|
72 #endif |
|
73 |
|
74 // |
|
75 // We always have SGI style hash_set, hash_map, and slist: |
|
76 // |
|
77 #define BOOST_HAS_HASH |
|
78 #define BOOST_HAS_SLIST |
|
79 #define BOOST_NO_STD_UNORDERED |
|
80 |
|
81 // |
|
82 // If this is GNU libstdc++2, then no <limits> and no std::wstring: |
|
83 // |
|
84 #if (defined(__GNUC__) && (__GNUC__ < 3)) |
|
85 # include <string> |
|
86 # if defined(__BASTRING__) |
|
87 # define BOOST_NO_LIMITS |
|
88 // Note: <boost/limits.hpp> will provide compile-time constants |
|
89 # undef BOOST_NO_LIMITS_COMPILE_TIME_CONSTANTS |
|
90 # define BOOST_NO_STD_WSTRING |
|
91 # endif |
|
92 #endif |
|
93 |
|
94 // |
|
95 // There is no standard iterator unless we have namespace support: |
|
96 // |
|
97 #if !defined(__STL_USE_NAMESPACES) |
|
98 # define BOOST_NO_STD_ITERATOR |
|
99 #endif |
|
100 |
|
101 // |
|
102 // Intrinsic type_traits support. |
|
103 // The SGI STL has it's own __type_traits class, which |
|
104 // has intrinsic compiler support with SGI's compilers. |
|
105 // Whatever map SGI style type traits to boost equivalents: |
|
106 // |
|
107 #define BOOST_HAS_SGI_TYPE_TRAITS |
|
108 |
|
109 #define BOOST_STDLIB "SGI standard library" |
|
110 |
|
111 |
|
112 |