C++ コンパイラには、2 通りの iostream が実装されています。
従来の iostream。この用語は、C++ 4.0、4.0.1、4.1、4.2 コンパイラに添付された iostream ライブラリ、およびそれ以前に cfront ベースの 3.0.1 コンパイラに添付された iostream ライブラリを指します。このライブラリの標準はありませんが、既存のコードの多くがこれを使用しています。このライブラリは、互換モードの libC の一部であり、標準モードの libiostream にもあります。
標準の iostream。これは C++ 標準ライブラリ libCstd に含まれていて、標準モードだけで使用されます。これは、バイナリレベルでもソースレベルでも「従来の iostream」とは互換性がありません。
すでに C++ のソースがある場合、そのコードは従来の iostream を使用しており、次の例のような形式になっていると思われます。
// file prog1.cc #include <iostream.h> int main() { cout << "Hello, world!" << endl; return 0; } |
次のコマンドは、互換性モードで prog1.cc をコンパイル、リンクして、prog1 という実行可能なプログラムを生成します。従来の iostream ライブラリは、互換性モードのときにデフォルトでリンクされる libC ライブラリに含まれています。
example% CC -compat prog1.cc -o prog1 |
次の例では、標準 iostream が使用されています。
// file prog2.cc #include <iostream> int main() { std::cout << "Hello, world!" << std::endl; return 0; } |
次のコマンドは、prog2.cc をコンパイル、リンクして、prog2 という実行可能なプログラムを生成します。コンパイルは標準モードで行われ、このモードでは、標準の iostream ライブラリを含む libCstd がデフォルトでリンクされます。
example% CC prog2.cc -o prog2 |
libCstd についての詳細は、「警告:」を参照してください。libiostream の詳細は、「13.3.1 再配布とサポートされる STLport ライブラリ」を参照してください。
コンパイルモードの詳しい説明については、『C++ 移行ガイド』を参照してください。