|
Portability |
|
Spirit has been tested to compile and run properly on various compilers:
- g++ 2.95.3
- g++ 3.1
- g++ 3.2
- Borland 5.5.1
- Borland 5.6.1
- Intel 5.0
- Intel 6.0
- Intel 7.0
- Visual Age C++ 5.02
- Comeau 4.24.5
- Metrowerks CodeWarrior 7.2
- Metrowerks CodeWarrior 8.3
- MSVC 6 SP5
- MSVC 7
- MSVC 7.1
Spirit is 100% ANSI/ISO C++ conformant. Unfortunately, some compilers do not
support all the features of Spirit primarily due to bugs and inadequate conformance
to the standard. Finding workarounds for these non-conformance problems is a
high priority but it takes time and a lot of effort.
- MSVC 6 and 7 does not support partial template specialization (PTS). Some
features that rely on PTS therefore does not compile on MSVC 6 and 7. This
include Closures, Lambda expressions as semantic actions (Phoenix and BLL),
and the Trees (Abtract Syntax Trees and Parse Trees). Hopefully, these features
will be ported to support MSVC 6 and 7. However, The much anticipated MSVC
7.1 do support PTS and was tested to fully compile Spirit.
- The list parsers and comment parsers do not compile on MSVC6 yet. Use the
% operator instead.
- The multi_pass does not compile on MSVC6 and Metrowerks 7.2 yet.
- The regular expression parsers does not compile on both MSVC6 and 7, Intel
5.0 and Comeau 4.24.5
- Metrowerks CodeWarrior 7.2 does not compile all the meta-parsers and features
that rely on it such as the dynamic parsers. This is because CodeWarrior 7.2
gives wrong results on code that uses the sizeof trick such as the
implementation of boost::is_base_and_derived and boost::is_convertible.
For further details, you can check out the table of compilers vis-a-vis all
the tests and examples in the Spirit distribution here.
This table is regularly being updated.
Copyright © 1998-2003 Joel de Guzman
Permission to copy, use, modify, sell and distribute this document
is granted provided this copyright notice appears in all copies. This document
is provided "as is" without express or implied warranty, and with
no claim as to its suitability for any purpose.