C++ コンパイラには、2 通りの iostream が実装されています。
従来の iostream。この用語は、C++ 4.0、4.0.1、4.1、および 4.2 コンパイラに付属する iostream ライブラリを表し、以前は cfront ベースの 3.0.1 コンパイラに付属していました。このライブラリに標準はありません。これは libiostream で使用できます。
標準の iostream。これは、ユーザーが使用する標準 C++ ライブラリ (libCstd、libstlport、libstdcxx、または g++ 実行時ライブラリ) のバージョンの一部です。標準バージョンの iostream は、従来の iostream ライブラリとバイナリ互換でも完全なソース互換でもありません。
すでに C++ のソースがある場合、そのコードは従来の iostream を使用しており、次の例のような形式になっていると思われます。
// file prog1.cc #include <iostream.h> int main() { cout << "Hello, world!" << endl; return 0; }
次の例では、標準 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
いわゆる「従来型の」iostream は、iostream の 1986 オリジナルバージョンで、C++ 標準で置き換えられました。これは、-library=iostream オプションを使用して選択されます。「従来型の」iostream の実装はどれも同じでなく、廃止される場合は別として、これを使用するコードには移植性がありません。このライブラリとオプションは、将来の Oracle Solaris Studio リリースで中止されます。