1 | // (C) Copyright John Maddock 2001 - 2003. |
---|
2 | // (C) Copyright Darin Adler 2001 - 2002. |
---|
3 | // (C) Copyright Jens Maurer 2001 - 2002. |
---|
4 | // (C) Copyright Beman Dawes 2001 - 2003. |
---|
5 | // (C) Copyright Douglas Gregor 2002. |
---|
6 | // (C) Copyright David Abrahams 2002 - 2003. |
---|
7 | // (C) Copyright Synge Todo 2003. |
---|
8 | // Use, modification and distribution are subject to the |
---|
9 | // Boost Software License, Version 1.0. (See accompanying file |
---|
10 | // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) |
---|
11 | |
---|
12 | // See http://www.boost.org for most recent version. |
---|
13 | |
---|
14 | // GNU C++ compiler setup: |
---|
15 | |
---|
16 | #if __GNUC__ < 3 |
---|
17 | # if __GNUC_MINOR__ == 91 |
---|
18 | // egcs 1.1 won't parse shared_ptr.hpp without this: |
---|
19 | # define BOOST_NO_AUTO_PTR |
---|
20 | # endif |
---|
21 | # if __GNUC_MINOR__ < 95 |
---|
22 | // |
---|
23 | // Prior to gcc 2.95 member templates only partly |
---|
24 | // work - define BOOST_MSVC6_MEMBER_TEMPLATES |
---|
25 | // instead since inline member templates mostly work. |
---|
26 | // |
---|
27 | # define BOOST_NO_MEMBER_TEMPLATES |
---|
28 | # if __GNUC_MINOR__ >= 9 |
---|
29 | # define BOOST_MSVC6_MEMBER_TEMPLATES |
---|
30 | # endif |
---|
31 | # endif |
---|
32 | |
---|
33 | # if __GNUC_MINOR__ < 96 |
---|
34 | # define BOOST_NO_SFINAE |
---|
35 | # endif |
---|
36 | |
---|
37 | # if __GNUC_MINOR__ <= 97 |
---|
38 | # define BOOST_NO_MEMBER_TEMPLATE_FRIENDS |
---|
39 | # define BOOST_NO_OPERATORS_IN_NAMESPACE |
---|
40 | # endif |
---|
41 | |
---|
42 | # define BOOST_NO_USING_DECLARATION_OVERLOADS_FROM_TYPENAME_BASE |
---|
43 | # define BOOST_FUNCTION_SCOPE_USING_DECLARATION_BREAKS_ADL |
---|
44 | # define BOOST_NO_IS_ABSTRACT |
---|
45 | #elif __GNUC__ == 3 |
---|
46 | // |
---|
47 | // gcc-3.x problems: |
---|
48 | // |
---|
49 | // Bug specific to gcc 3.1 and 3.2: |
---|
50 | // |
---|
51 | # if ((__GNUC_MINOR__ == 1) || (__GNUC_MINOR__ == 2)) |
---|
52 | # define BOOST_NO_EXPLICIT_FUNCTION_TEMPLATE_ARGUMENTS |
---|
53 | # endif |
---|
54 | # if __GNUC_MINOR__ < 4 |
---|
55 | # define BOOST_NO_IS_ABSTRACT |
---|
56 | # endif |
---|
57 | #endif |
---|
58 | |
---|
59 | #ifndef __EXCEPTIONS |
---|
60 | # define BOOST_NO_EXCEPTIONS |
---|
61 | #endif |
---|
62 | |
---|
63 | |
---|
64 | // |
---|
65 | // Threading support: Turn this on unconditionally here (except for |
---|
66 | // those platforms where we can know for sure). It will get turned off again |
---|
67 | // later if no threading API is detected. |
---|
68 | // |
---|
69 | #if !defined(__MINGW32__) && !defined(linux) && !defined(__linux) && !defined(__linux__) |
---|
70 | # define BOOST_HAS_THREADS |
---|
71 | #endif |
---|
72 | |
---|
73 | // |
---|
74 | // gcc has "long long" |
---|
75 | // |
---|
76 | #define BOOST_HAS_LONG_LONG |
---|
77 | |
---|
78 | // |
---|
79 | // gcc implements the named return value optimization since version 3.1 |
---|
80 | // |
---|
81 | #if __GNUC__ > 3 || ( __GNUC__ == 3 && __GNUC_MINOR__ >= 1 ) |
---|
82 | #define BOOST_HAS_NRVO |
---|
83 | #endif |
---|
84 | |
---|
85 | #define BOOST_COMPILER "GNU C++ version " __VERSION__ |
---|
86 | |
---|
87 | // |
---|
88 | // versions check: |
---|
89 | // we don't know gcc prior to version 2.90: |
---|
90 | #if (__GNUC__ == 2) && (__GNUC_MINOR__ < 90) |
---|
91 | # error "Compiler not configured - please reconfigure" |
---|
92 | #endif |
---|
93 | // |
---|
94 | // last known and checked version is 4.0 (Pre-release): |
---|
95 | #if (__GNUC__ > 4) || ((__GNUC__ == 4) && (__GNUC_MINOR__ > 0)) |
---|
96 | # if defined(BOOST_ASSERT_CONFIG) |
---|
97 | # error "Unknown compiler version - please run the configure tests and report the results" |
---|
98 | # else |
---|
99 | // we don't emit warnings here anymore since there are no defect macros defined for |
---|
100 | // gcc post 3.4, so any failures are gcc regressions... |
---|
101 | //# warning "Unknown compiler version - please run the configure tests and report the results" |
---|
102 | # endif |
---|
103 | #endif |
---|
104 | |
---|
105 | |
---|