| Portability |

Spirit has been tested to compile and run properly on various compilers:

1. g++ 2.95.3
2. g++ 3.1
3. g++ 3.2
4. Borland 5.5.1
5. Borland 5.6.1
6. Intel 5.0
7. Intel 6.0
8. Intel 7.0
9. Visual Age C++ 5.02
10. Comeau 4.24.5
11. Metrowerks CodeWarrior 7.2
12. Metrowerks CodeWarrior 8.3
13. MSVC 6 SP5
14. MSVC 7
15. 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.