本章では、Sun(TM) C++ および C++ コンパイラの概要を説明しています。
この C++ コンパイラ (CC) は、『ISO International Standard for C++, ISO IS 14882:1998, Programming Language - C++』に準拠しています。このリリースに含まれる README (最新情報) ファイルには、この標準と異なる仕様に関する記述が含まれています。
SPARC プラットフォームでは、このコンパイラは、UltraSPARC(TM) の実装と SPARC V8 と SPARC V9 の「最適化活用」機能をサポートします。これらの機能は、Prentice-Hall によって SPARC International のために出版された SPARC アーキテクチャマニュアル(トッパン刊) の バージョン 8 と SPARC Architecture Manual Version (英語版のみ) のバージョン 9 (ISBN 0-13-099227-5) に定義されています。
このマニュアルでは、「標準」は、上記の標準の各バージョンに準拠していることを意味します。「非標準」や「拡張」は、これらの標準のバージョンに準拠しない機能のことを指します。
これらの標準は、それぞれの標準を規定する組織によって改定されることがあります。したがって、コンパイラが準拠するバージョンの標準が改定されたり、まったく書き換えられた場合は、機能によっては、Sun C++ コンパイラの将来のリリースで前のリリースと互換性がなくなる場合があります。
C++ コンパイラ (CC) は、Sun(TM) WorkShop(TM) や C コンパイラなどのサンの開発ツールと統合されています。Sun C++ コンパイラとその実行時ライブラリは、Sun Visual WorkShop(TM) C++ に含まれています。Sun Visual WorkShop C++ の構成要素を使用すれば、マルチプロセッサの Solaris(TM) 2.5.1、2.6、Solaris(TM) 7 オペレーティング環境でスレッドを使用したアプリケーションを開発できます。
リリース 5.0 の CC は、Solaris(TM) 2.5.1、2.6、Solaris(TM) 7 のいずれかのオペレーティング環境を実行する SPARC(TM) および x86 プラットフォームで使用できます。
機能が特定のオペレーティング環境やハードウェアプラットフォーム固有である場合は、その旨を明示します。しかし、コンパイラの機能性や動作性には、システム間での違いはほとんどありません。マルチプロセッサ機能は、SPARC プラットフォームの Solaris 2.5.1、2.6、Solaris 7 ソフトウェアにおける Sun WorkShop に含まれています。この機能には、Sun WorkShop ライセンスが必要です。
詳細は C++ の README (最新情報) ファイルを参照してください。
READMEs ディレクトリには、新しい機能やソフトウェアの互換性の問題、既知の問題点、および、このマニュアルの印刷後に明らかになった情報などについて記述したファイル(README ファイルと呼びます) が含まれています。このファイルの場所は、ソフトウェアをインストールした場所によって異なります。
標準インストールでは、README ファイルは /opt/SUNWspro/READMEs/ja に あります。
README ファイルは、どのコンパイラでも -xhelp=readme コマンド行オプションで簡単に表示できます。たとえば CC -xhelp=readme と入力すると、C++ の README ファイルが表示されます。
オンラインのマニュアルページ (man) では、コマンドや関数、サブルーチン、およびその機能に関する情報を簡単に参照できます。
標準のインストールを実行した場合、Sun WorkShop のマニュアルページは /opt/SUNWspro/man/ に置かれます。Sun WorkShop のマニュアルページを使用するには、MANPATH 環境変数にこのパスを追加してください。
マニュアルページを表示するには、次のように入力してください (topic には、参照したいコマンドやライブラリ関数の名前を指定)。
demo% man topic
C++ のマニュアルで参考情報としてマニュアルページ名を記載する場合は、名前とセクション番号が示されています。CC(1) は、man CC で表示されます。その他のセクションのマニュアルページ、たとえば、ieee_flags(3M) は、man コマンドに -s オプションを使用すると表示されます。
demo% man -s 3M ieee_flags
C++ 関連の全マニュアルページの一覧については、『C++ プログラミングガイド』を参照してください。
C++ コンパイラでは、ネットワークライセンスを使用します。これについては、『Sun WorkShop のインストールとライセンス』を参照してください。
ライセンスがあれば、コンパイラを起動できます。ライセンスがない場合は、ライセンスの要求が待ち行列に入れられ、ライセンスを入手してからコンパイラを使用できるようになります。同じマシン上で同じユーザーであれば、1 ライセンスで同時に何回でもコンパイルできます。
C++ と一緒にほかのユーティリティを実行する場合には、購入したパッケージによっては、複数のライセンスが必要になる場合があります。
この C++ コンパイラには次の新しい機能があります。
以下の内容を含む、ISO C++ 標準への準拠
名前空間と Koenig の検索
bool 型
new 配列および delete 配列
テンプレートの拡張サポート
C++ 標準ライブラリ
仮想関数の戻り型
C++ 4.0、4.0.1、4.1、4.2 との互換性
Sun WorkShop Memory Monitor によるガベージコレクションとメモリーリークの検出
Solaris 7 での SPARC V9 サポート
ISO C++ へのスムーズな移行に役立つバイナリおよびソース互換機能
C++ コンパイラパッケージには、次のものも含まれています。
オンラインの README ファイル 新たに追加された機能、変更された機能、最新のソフトウェア、マニュアルの修正点、マニュアルの出版後に判明した情報が掲載されています。
マニュアルページ ユーザーコマンドやライブラリ関数について簡潔に説明しています。
C++ の名前を復号化するツール群 (dem および c++filt)
Tools.h++ クラスライブラリ プログラミングを単純化できます。
現在、ほとんどの C++ ユーティリティは従来の UNIX ツールに統合され、オペレーティングシステムに含まれています。
lex -- テキストの単純な字句解析に使用するプログラムを生成する。
yacc -- 構文に応じて入力ストリームを解析するための C 関数を生成する。
prof -- プログラム内のモジュールの実行プロファイルを作成する。
gprof -- プログラムの実行時パフォーマンスについての手続き単位のプロファイル。
tcov -- プログラムの実行時パフォーマンスについての文単位のプロファイル
これら UNIX ツールについての詳細は、『プログラムのパフォーマンス解析』や関連するマニュアルページを参照してください。
本バージョンの C++ では、英語以外の言語を使用したアプリケーションの開発をサポートしています。対象としている言語は、ヨーロッパのほとんどの言語と日本語です。このため、アプリケーションをある言語から別の言語に簡単に置き換えることができます。この機能を国際化と呼びます。
通常 C++ コンパイラでは、次のように国際化を行なっています。
どの国のキーボードから入力された ASCII 文字でも認識する (つまりキーボードに依存せず、8 ビット透過となっています)
メッセージによっては現地語で出力できるものもある
注釈、文字列、データに、現地語の文字を使用できる
変数名は国際化できません。必ず英語の文字を使用してください。
アプリケーションをある国の言語から別の国の言語に変更するには、ロケールを設定します。言語の切り換えのサポートに関する情報については、オペレーティング環境のマニュアルを参照してください。