1 | /*=============================================================================
|
---|
2 | Copyright (c) 2001-2003 Joel de Guzman
|
---|
3 | http://spirit.sourceforge.net/
|
---|
4 |
|
---|
5 | Use, modification and distribution is subject to the Boost Software
|
---|
6 | License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
|
---|
7 | http://www.boost.org/LICENSE_1_0.txt)
|
---|
8 | =============================================================================*/
|
---|
9 | #if !defined(BOOST_SPIRIT_CONFIG_HPP)
|
---|
10 | #define BOOST_SPIRIT_CONFIG_HPP
|
---|
11 |
|
---|
12 | #include <boost/config.hpp>
|
---|
13 |
|
---|
14 | ///////////////////////////////////////////////////////////////////////////////
|
---|
15 | //
|
---|
16 | // Compiler check:
|
---|
17 | //
|
---|
18 | // Historically, Spirit supported a lot of compilers, including (to some
|
---|
19 | // extent) poorly conforming compilers such as VC6. Spirit v1.6.x will be
|
---|
20 | // the last release that will support older poorly conforming compilers.
|
---|
21 | // Starting from Spirit v1.8.0, ill conforming compilers will not be
|
---|
22 | // supported. If you are still using one of these older compilers, you can
|
---|
23 | // still use Spirit v1.6.x.
|
---|
24 | //
|
---|
25 | // The reason why Spirit v1.6.x worked on old non-conforming compilers is
|
---|
26 | // that the authors laboriously took the trouble of searching for
|
---|
27 | // workarounds to make these compilers happy. The process takes a lot of
|
---|
28 | // time and energy, especially when one encounters the dreaded ICE or
|
---|
29 | // "Internal Compiler Error". Sometimes searching for a single workaround
|
---|
30 | // takes days or even weeks. Sometimes, there are no known workarounds. This
|
---|
31 | // stifles progress a lot. And, as the library gets more progressive and
|
---|
32 | // takes on more advanced C++ techniques, the difficulty is escalated to
|
---|
33 | // even new heights.
|
---|
34 | //
|
---|
35 | // Spirit v1.6.x will still be supported. Maintenance and bug fixes will
|
---|
36 | // still be applied. There will still be active development for the back-
|
---|
37 | // porting of new features introduced in Spirit v1.8.0 (and Spirit 1.9.0)
|
---|
38 | // to lesser able compilers; hopefully, fueled by contributions from the
|
---|
39 | // community. For instance, there is already a working AST tree back-port
|
---|
40 | // for VC6 and VC7 by Peder Holt.
|
---|
41 | //
|
---|
42 | // If you got here somehow, your compiler is known to be poorly conforming
|
---|
43 | // WRT ANSI/ISO C++ standard. Library implementers get a bad reputation when
|
---|
44 | // someone attempts to compile the code on a non-conforming compiler. She'll
|
---|
45 | // be confronted with tons of compiler errors when she tries to compile the
|
---|
46 | // library. Such errors will somehow make less informed users conclude that
|
---|
47 | // the code is poorly written. It's better for the user to see a message
|
---|
48 | // "sorry, this code has not been ported to your compiler yet", than to see
|
---|
49 | // pages and pages of compiler error messages.
|
---|
50 | //
|
---|
51 | /////////////////////////////////////////////////////////////////////////////////
|
---|
52 | #if (defined(BOOST_MSVC) && (BOOST_MSVC < 1310)) \
|
---|
53 | || (defined(__BORLANDC__) && (__BORLANDC__ <= 0x570)) \
|
---|
54 | || (defined(__GNUC__) && (__GNUC__ < 3)) \
|
---|
55 | || (defined(__GNUC__) && (__GNUC__ == 3) && (__GNUC_MINOR__ < 1))
|
---|
56 | # error "Compiler not supported. See note in <boost/spirit/core/config.hpp>"
|
---|
57 | #else
|
---|
58 | // Pass... Compiler supported.
|
---|
59 | #endif
|
---|
60 |
|
---|
61 | #endif
|
---|
62 |
|
---|
63 |
|
---|