Portability

Overview
Outstanding Issues
Microsoft Visual C++
Supported Platforms

Overview

The Iostreams library has been tested with several combinations of operating system, compiler and standard library, as shown below. Fifteen regression tests, using the Boost Unit Test Framework, are provided in the directory <libs/iostreams/test>, together with a coresponding Jamfile.

The regression tests have been run on several platforms, with the results displayed in the table below. [Note: The table does not currently reflect the tests involving compression Filters, regular expression Filters or wide streams. I will try to update it soon.]

Outstanding Issues

The test seekable_file.cpp is failed by two compiler-standard library combinations, and may indicate a problem with the class template basic_file.

Microsoft Visual C++

Support for versions Microsoft Visual C++ prior to 7.1 has been dropped for two reasons. First, apparent code generation bugs in versions 6.0 SP5 and 7.0 caused many of the regression tests to crash with global optimization enabled (/Og), although they executed successfully with optimization disabled and with all optimizations other than /Og enabled. Second, the addition of the smart adapters described in STL Sequence Adapters proved too much for version 6.0 to handle. Nevertheless, the code still contains many workarounds for these compilers in the hope that support can be restored.

Supported Platforms

CompilerStandard C++ LibraryPassed
GCC 3.2.2 (Linux) libstdc++ 100%
GCC 3.2 (MinGW) libstdc++ 100%
GCC 3.3.1 (Cygwin) libstdc++ 100%
Intel 7.1 for Windows Dinkumware 100%
Intel 8.0 for Windows Dinkumware 100%
Metrowerks Codewarrior 8.3 MSL 100%
Borland 5.6.4 STLPort-4.5.x [1]
Borland 5.6.4 RogueWave 100%
Microsoft Visual C++ 7.1 Dinkumware 100%
Comeau C++ 4.3.3 libcomo 30 [1], [2]

Notes

[1]Fails seekable_file.cpp.

[2]Non-standard buffer sizes cause some regression test failures. This has been traced by the author to a problem with file i/o not related to the Iostreams library. The author has reported this problem to technical support, but (uncharacteristically) received no reply.