Sun Studio 12: C++ ユーザーズガイド

はじめに

このマニュアルでは、SunTM Studio 12 C++ コンパイラの使用方法を説明し、コマンド行コンパイラオプションに関する詳しい情報を提供します。このマニュアルは C++ に関する実用的な知識と SolarisTM オペレーティングシステムおよび UNIX® コマンドに関する一般的な知識を持つプログラマーを対象にしています。

マニュアルの構成

このマニュアルで取り上げるトピックは次のとおりです。

C++ コンパイラ: 第 1 章「C++ コンパイラの紹介」では準拠規格や新機能など、コンパイラに関する初歩的な内容について説明します。第 2 章「C++ コンパイラの使用方法」では、コンパイラの使用方法を説明します。第 3 章「C++ コンパイラオプションの使い方」では、コンパイラのコマンド行オプションの使用方法を説明します。

C++ プログラムの作成方法: 第 4 章「言語拡張」では、ほかの C++ コンパイラによって一般に受け入れられる非標準コードのコンパイル方法を説明します。第 5 章「プログラムの編成」では、ヘッダーファイ ルやテンプレート定義の設定および構成について提案します。第 6 章「テンプレートの作成と使用」では、テンプレートの作成方法や使用方法を説明します。第 7 章「テンプレートのコンパイル」では、テンプレートをコンパイルする際の各種オプションについて説明します。例外処理については第 8 章「例外処理」、キャスト演算に関しては第 9 章「キャスト演算」で説明します。第 10 章「プログラムパフォーマンスの改善」では、C++ コンパイラに大きな影響を与えるパフォーマンス手法について説明します。第 11 章「マルチスレッドプログラムの構築」では、マルチスレッド化プ ログラムの構築に関する情報を提供します。

ライブラリ: 第 12 章「ライブラリの使用」では、コンパイラに組み込まれているライブラリの使用方法を説明します。C++ 標準ライブラリについては第 13 章「C++ 標準ライブラリの使用」、典型的な iostream ライブラリ (互換モードの場合) については 第 14 章「従来の iostream ライブラリの使用」、および複合演算ライブラリ (互換モードの場合) については 第 15 章「複素数演算ライブラリの使用」 で説明します。第 16 章「ライブラリの構築」ではライブラリの構築に関する情報を提供します。

付録: 付録 A 「C++ コンパイラオプション」 ですべての C++ コンパイラオプションをアルファベット順に示し、付録 B 「プラグマ」 で C++ コンパイラプラグマを示します。

表記上の規則

表 P–1 表記上の規則

字体または記号 

意味 

例 

AaBbCc123

コマンド名、ファイル名、ディレクトリ名、画面上のコンピュータ出力、コード例を示します。 

.login ファイルを編集します。

ls -a を使用してすべてのファイルを表示します。

system%

AaBbCc123

ユーザーが入力する文字を、画面上のコンピュータ出力と区別して示します。 

system% su

password:

AaBbCc123

変数を示します。実際に使用する特定の名前または値で置き換えます。 

ファイルを削除するには、rm filename と入力します。

『 』 

参照する書名を示します。 

『コードマネージャ・ユーザーズガイド』を参照してください。 

「 」 

参照する章、節、ボタンやメニュー名、強調する単語を示します。 

第 5 章「衝突の回避」を参照してください。 

この操作ができるのは、「スーパーユーザー」だけです。 

枠で囲まれたコード例で、テキストがページ行幅を超える場合に、継続を示します。 

 


sun% grep `^#define \
  XV_VERSION_STRING'

表 P–2 コードについて

コードの記号 

意味 

記法 

コード例 

[ ] 

角括弧には、オプションの引数が含まれます。 

O[n]

-O4, -O

{ } 

中括弧には、必須オプションの選択肢が含まれます。 

d{y|n}

-dy

「パイプ」または「バー」と呼ばれる記号は、その中から 1 つだけを選択可能な複数の引数を区切ります。 

B{dynamic|static}

-Bstatic

コロンは、コンマ同様に複数の引数を区切るために使用されることがあります。 

Rdir[:dir]

-R/local/libs:/U/a

… 

省略記号は、連続するものの一部が省略されていることを示します。 

xinline=f1[,…fn]

-xinline=alpha,dos

シェルプロンプトについて

シェル 

プロンプト 

C シェル 

machine-name%

C シェルのスーパーユーザー 

machine-name#

Bourne シェル、 Korn シェル、および GNU Bourne-Again シェル 

$

Bourne シェル、Korn シェル、および GNU Bourne-Again シェルのスーパーユーザー 

#

サポートされるプラットフォーム

この Sun Studio のリリースは、SPARC® および x86 ファミリ (UltraSPARC®、SPARC64、AMD64、Pentium、Xeon EM64T) プロセッサアーキテクチャーを使用するシステムをサポートしています。サポートされるシステムの、Solaris オペレーティングシステムのバージョンごとの情報については、http://www.sun.com/bigadmin/hcl にあるハードウェアの互換性に関するリストで参照することができます。ここには、すべてのプラットフォームごとの実装の違いについて説明されています。

このドキュメントでは、x86 関連の用語は次のものを指します。

サポートされるシステムについては、ハードウェアの互換性に関するリストを参照してください。

Sun Studio マニュアルへのアクセス方法

マニュアルには、次の場所からアクセスできます。

インターネットの Web サイト (http://docs.sun.com) から、Sun のマニュアルを参照したり、印刷したり、購入したりすることができます。マニュアルが見つからない場合はローカルシステムまたはネットワークの製品とともにインストールされているマニュアルの索引を参照してください。


注 –

このマニュアルで紹介する Sun 以外の Web サイトが使用可能かどうかについては、Sun は責任を負いません。このようなサイトやリソース上、またはこれらを経由して利用できるコンテンツ、広告、製品、またはその他の資料についても、Sun は保証しておらず、法的責任を負いません。また、このようなサイトやリソース上、またはこれらを経由して利用できるコンテンツ、商品、サービスの使用や、それらへの依存に関連して発生した実際の損害や損失、またはその申し立てについても、Sun は一切の責任を負いません。


アクセシブルな製品マニュアル

マニュアルは、技術的な補足をすることで、ご不自由なユーザーの方々にとって読みやすい形式のマニュアルを提供しております。アクセシブルなマニュアルは次の表に示す場所から参照することができます。製品ソフトウェアが /opt 以外のディレクトリにインストールされている場合は、システム管理者に実際のパスをお尋ねください。

マニュアルの種類 

アクセシブルな形式と格納場所 

マニュアル (Sun 以外のマニュアルは除く) 

形式: HTML場所: http://docs.sun.com

他社製マニュアル: 

  • Standard C++ Library Class Reference

  • 標準 C++ ライブラリ・ユーザーズガイド

  • Tools.h++ クラスライブラリ・リファレンスマニュアル

  • Tools.h++ ユーザーズガイド

形式: HTML場所: file:/opt/SUNWspro/docs/ja/index.html (Solaris プラットフォーム) のマニュアル索引

Readme 

形式: HTML場所: http://developers.sun.com/sunstudio/documentation/ss12 の Sun Developer Network ポータル

マニュアルページ 

形式: HTML場所: file:/opt/SUNWspro/docs/ja/index.html (Solaris プラットフォーム) および file:/opt/sun/sunstudio12/docs/ja/index.html (Linux プラットフォーム) のマニュアル索引

オンラインヘルプ 

形式: HTML場所: IDE 内の「ヘルプ」メニューおよび「ヘルプ」ボタン 

リリースノート 

形式: HTML場所: http://docs.sun.com

Sun Studio 関連マニュアル

次の表は、file:/opt/SUNWspro/docs/ja/index.html および http://docs.sun.com から参照できる関連マニュアルの一覧です。製品ソフトウェアが /opt 以外のディレクトリにインストールされている場合は、システム管理者に実際のパスをお尋ねください。

マニュアルタイトル 

内容の説明 

C ユーザーズガイド

すべてのコンパイラオプション、サポートされる ISO/IEC 9899:1999 (C99 と呼ばれる) 機能の説明、実装仕様 (プラグマ、宣言指定子など)、および lint コード検査プログラムの使用に関する詳細情報からなるリファレンスです。

C++ ユーザーズガイド

C++ コンパイラの使用方法を説明し、コマンド行コンパイラオプション、プログラム編成、プラグマ、テンプレート、例外処理、キャスト (型変換) 演算子の使用、ライブラリの使用と構築に関する詳細情報について説明しています。 

Fortran プログラミングガイド

入出力、ライブラリ、パフォーマンス、デバッグ、並列処理などに関する、Solaris 環境における効果的な Fortran コードの書き方について説明しています。 

Fortran ライブラリ・リファレンス

Fortran ライブラリと組み込みルーチンについて詳しく説明しています。 

OpenMP API ユーザーズガイド

OpenMP 多重処理 API の概要と実装に関する詳細について説明しています。 

数値計算ガイド

浮動小数点演算における数値の正確性に関する問題について説明しています。 

C++ 関連マニュアルページ

本書では、C++ ライブラリで使用できるマニュアルページの一覧を提供します。次の表には、それ以外の C++ に関連するマニュアルページを示します。

タイトル 

内容の説明 

c++filt

ファイルを順番通りに読み、C++ の符号化された名前と思われるシンボルを複合化したあと、標準出力に書き出す 

dem

指定した複数の C++ 名の複合化 

fbe

アセンブリ言語のソースファイルからオブジェクトファイルの作成 

fpversion

システムの CPU と FPU に関する情報の出力 

gprof

プログラムの実行プロファイルの作成 

inline

インライン手続きの呼び出しの展開 

lex

字句解析プログラムの生成 

rpcgen

RPC プロトコルを実装するため C/C++ コードの生成 

sigfpe

特定の SIGFPE コードに対するシグナル処理を許可 

stdarg

変更可能な引数のリストを処理 

varargs

変更可能な引数のリストを処理 

version

オブジェクトファイルまたはバイナリファイルのバージョン識別情報の表示 

yacc

文脈自由文法を、LALR(1) 構文解析アルゴリズムを実行する単純オートマトン用の一連の表に変換 

関連する Solaris マニュアル

次の表では、docs.sun.com の Web サイトで参照できる関連マニュアルについて説明します。

マニュアルコレクション 

マニュアルタイトル 

内容の説明 

Solaris Reference Manual Collection 

マニュアルページのセクションのタイトルを参照。 

Solaris OS に関する情報を提供しています。 

Solaris Software Developer Collection 

リンカーとライブラリ

Solaris のリンクエディタと実行時リンカーの操作について説明しています。 

開発者向けのリソース

Sun Developer Network の Sun Studio ポータル (http://developers.sun.com/prodtech/cc) にアクセスし、次のようなリソースを利用できます。リソースは頻繁に更新されます。

Sun Studio ポータルは、Sun Developer Network Web サイト (http://developers.sun.com) に多数ある開発者向け追加リソースの 1 つです。

市販の書籍

C++ について書かれている書籍の一部を紹介します。

プログラミング言語 C++』第 3 版、アジソン・ウェスレイ・パブリッシャーズ・ジャパン、Bjarne Stroustrup 著、1998 年

C++ 標準ライブラリチュートリアル & リファレンス』アスキー、Nicolai Josuttis 著、2001 年

Generic Programming - STL による汎用プログラミング』アスキー、Matthew Austern 著、2000 年

Standard C++ IOStreams and Locales』Angelica Langer、Klaus Kreft 共著、Addison-Wesley、2000 年

Thinking in C+』Volume 1, Second Edition、Bruce Eckel 著、Prentice Hall、1995 年

注解 C++ リファレンス・マニュアル』トッパン、Margaret A. Ellis、Bjarne Stroustrup 共著、1990 年

デザインパターン - オブジェクト指向における再利用のための』ソフトバンク、Erich Gamma、Richard Helm、Ralph Johnson、John Vlissides 共著、1995 年

C++ プライマー』第 3 版、トッパン、Stanley B. Lippman、Josee Lajoie 共著、1998 年

Effective C++』改訂 2 版、アスキー、Scott Meyers 著、1998 年

More Effective C++ - 最新 35 のプログラミング技法』アスキー、Scott Meyers 著、1998 年

技術サポートへの問い合わせ

製品についての技術的なご質問がございましたら、次のサイトからお問い合わせください (このマニュアルで回答されていないものに限ります)。

http://jp.sun.com/service/contacting/

ご意見の送付先

米国 Sun Microsystems, Inc. では、マニュアルの向上に力を注いでおり、ユーザーのご意見やご提案をお待ちしております。コメントは下記よりお送りください。

http://www.sun.com/hwdocs/feedback

ご意見をお寄せいただく際には、電子メールの件名にマニュアルの Part No. を記載してください。たとえば、このマニュアルの Part No. は 820-1213-10 です。