Appendix D. MPL Portability Summary
Most reasonably conforming compilers "just work" with the MPL. We haven't tested every compiler in existence, but Table D.1 lists a few that are known to work as described in the text without any special user intervention. Please keep in mind that this is not a complete list; you can refer to this book's companion CD for more detailed portability reports.
Table D.1. Some Compilers Requiring No User WorkaroundsName | Version |
---|
Comeau | 4.3.3 | GCC | 3.2.2 | GCC | 3.3.1 | GCC | 3.4 | Intel C++ | 7.1 | Intel C++ | 8.0 | Metrowerks CodeWarrior | 8.3 | Metrowerks CodeWarrior | 9.2 | Microsoft Visual C++ | 7.1 |
The compilers listed in Table D.2 have incomplete support for templates, and so require some help from users, as shown in the last column. See this book's companion CD for specific details of these workarounds.
Table D.2. Compilers That Require User WorkaroundsCompiler | Version | Problematic Areas |
---|
Borland C++ | 5.5.1 | Lambda expressions, integral constant expressions | Borland C++ | 5.6.4 | Lambda expressions, integral constant expressions | GCC | 2.95.3 | Lambda expressions | Microsoft Visual C++ | 6.0 sp5 | Lambda expressions, ETI | Microsoft Visual C++ | 7.0 | Lambda expressions, ETI |
Finally, the template machinery in a few compilers has so many problems that even with help from the user we're unable to make the MPL work at all (see Table D.3). The fact that one version of a compiler appears in this list does not mean that future versions are also unworkablesome vendors are working hard to correct the problems... and, as of this writing, some are not.
Table D.3. Compilers Known Not to Work with MPLName | Version |
---|
HP aCC | 03.55 | Sun CC | 5.6 |
 |