C++ 移行ガイド

はじめに

このマニュアルでは、C++ コンパイラのバージョン 4.0、4.0.1、4.1、4.2 からバージョン 5.0 に移行するときに知っておく必要がある情報について説明します。この情報は、もっと古いバージョンの 3.0 や 3.0.1 から移行する場合にも有効です。バージョン 3.0 や 3.0.1 からの移行に特有の内容も説明します。

対象読者

このマニュアルは、C++ に関する実用的な知識と、Solaris システムおよび UNIX コマンドに関するある程度の知識を持つプログラマを対象にしています。

内容の紹介

このマニュアルは次の章から構成されています。

第 1 章「概要」では、C++ 言語の変更、コンパイラの互換モード、バイナリ互換の問題、条件式、関数ポインタと void* について説明します。

第 2 章「互換モードの使い方」では、C++ 4.0、4.1、4.2 コンパイラを使用する場合と C++ 5.0 コンパイラを使用する場合の細かな違いについて説明します。

第 3 章「標準モードの使い方」では、C++ 5.0 コンパイラでの変更点について説明します。

第 4 章「入出力ストリームとライブラリヘッダーの使い方」では、C++ 5.0 コンパイラでのライブラリとヘッダーファイルの変更点について説明します。

第 5 章「C++ 3.0 から C++ 5.0 への移行」では、C++ 3.0 コンパイラから C++ 5.0 コンパイラへの移行について説明します。

第 6 章「C から C++ への移行」では、C のプログラムを C++ へ移行する方法について説明します。

マルチプラットフォーム対応

Sun(TM) WorkShop(TM) C++ 5.0 のマニュアルの内容は、Solaris 2.5.1、Solaris 2.6、Solaris 7 オペレーティングシステムのいずれかを実行する以下のプラットフォーム上の C++ コンパイラを対象としています。

C++ 関連マニュアル

C++ 5.0 文書パッケージには、次のマニュアルが含まれています。

その他の Sun WorkShop 関連マニュアル

Solaris 関連マニュアル

次の Solaris 関連のマニュアルにも役立つ情報が記載されています。

市販の書籍

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

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

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

『Effective C++ - C++ の 50 の急所』第 2 版、ソフトバンク、Scott Meyers 著、 1996 年

『STL 〜標準テンプレートライブラリによる C++ プログラミング〜』アジソン・ウェズレイ、David R. Musser、Atul Saini 共著、1966 年

『Object-Oriented Analysis and Design with Applications』 Second Edition、Grady Booch 共著 (Adison-Wesley, 1994)

『Thinking in C++』Bruce Eckel 著 (Prentice Hall, 1995)

『Design Patterns: Elements of Reusable Object-Oriented Software』 Erich Gamma、Richard Helm、Ralph Johnson,、John Vlissides 共著 (Addison-Wesley, 1998)

『More Effective C++ - 35 Ways of Improve Your Programs and Designs』Scott Meyers 著 (Addison-Wesley, 1996)

『C++ for C Programmers』Ira Pohl (Benjamin/Cummings, 1989)

『The C++ Programming Language』Third Edition、Bjarne Stroustrup 著 (Addison-Wesley, 1997)

サンのオンラインマニュアル

サンのマニュアルは、次の形式でオンラインでご覧いただけます。

Web サイト docs.sun.com

Web サイト docs.sun.com では、サンの技術文書をオンラインでご覧になれます。 docs.sun.com にあるマニュアルの内容を参照したり、特定のタイトルや用語を含むマニュアルを検索することもできます。URL は http://docs.sun.com/ です。

AnswerBook2 コレクション

Sun WorkShop に関するマニュアルは、AnswerBook2 ソフトウェアを使用して参照することもできます。このソフトウェアは、システムの管理者がインストールの時点で AnswerBook2 形式のマニュアルをインストールしていればご利用いただけます (インストールされていない場合は、システム管理者にお問い合わせいただくか、『Sun WorkShop クイックインストール』の第 3 章を参照してインストールしてください)。AnswerBook2 の使用法の詳細については、『Sun WorkShop クイックインストール』の第 6 章または Solaris のインストール関連のマニュアルを参照するか、ご使用の環境のシステム管理者にお問い合わせください。


注 -

Solaris 2.5.1 上で AnswerBook2 形式のマニュアルを参照するには、その前にサンの Web ページから AnswerBook2 文書サーバーソフトウェアをダウンロードする必要があります。詳細については『Sun WorkShop クイックインストール』の第 6 章を参照してください。


HTML 形式のマニュアル

次の Sun WorkShop のマニュアルは、HTML 形式で用意されています。

HTML 形式のマニュアルを表示するには、次の手順に従ってください。

  1. HTML ブラウザで、次のファイルを開きます。

    install-directory/SUNWspro/DOC5.0/lib/locale/ja/html/index.html

    install-directory には、Sun WorkShop がインストールされているディレクトリを入力してください (デフォルトでは /opt です)。

    ブラウザに、インストールされている Sun WorkShop 製品のマニュアル一覧が表示されます。

  2. マニュアル一覧のマニュアル名をクリックします。

    HTML 形式のマニュアルが開きます。

Sun WorkShop のオンラインヘルプとリリースノート

このリリースの WorkShop には、オンラインマニュアル以外に新しい形式のマニュアルが用意されています。詳細は、以下のいずれかを参照してください。

マニュアルページと README (最新情報) ファイル

マニュアルページ

ユーザーコマンドやライブラリ関数などの個々の項目の概要を述べたものです。

マニュアルページを表示するには次のように入力します。topic には、参照したいコマンドやライブラリ関数の名前 (表 P-1 および 表 P-2 の「タイトル」部分) を入力してください。


%demo man topic

マニュアルページは次に示す位置に入っています。opt-install-dir は、インストールディレクトリを示します。

opt-install-dir/SUNWspro/man


注 -

man コマンドを使用する前に、MANPATH の先頭に上記のディレクトリの名前を挿入してください。通常は、.cshrc ファイルの中の setenv MANPATH で始まる行か、.profile ファイルの中の export MANPATH で始まる行に挿入します。


次の表に C++ マニュアルページの一覧を示します。

表 P-1 C++ マニュアルページ

タイトル 

内容 

CC

C++ コンパイラのコマンド行オプション 

CCadmin

テンプレートデータベースの整理。テンプレートデータベース中の符号化された名前とシンボルに関する情報を提示する。 

cartpol

C++ 複素数数学ライブラリ内のデカルト関数/極関数 

cplx.intro

C++ 複素数数学ライブラリの紹介 

cplxerr

C++ 複素数数学ライブラリ内の複素数エラー処理関数 

cplxops

C++ 複素数数学ライブラリ内の算術演算子関数 

cplextrig

C++ 複素数数学ライブラリ内の三角演算子関数 

demangle

C++ 符号化シンボル名の復号化 

filebuf

ファイル入出力用のバッファクラス 

fstream

ファイル入出力用のストリームクラス 

istream

書式付き入力と書式なし入力のサポート 

ios

基本的な iostream の書式化 

ios.intro

iostream マニュアルページの紹介 

manip

iostream マニピュレータ 

ostream

書式付き出力と書式なし出力のサポート 

queue

タスクライブラリに対するリスト管理 

sbufprot

ストリームバッファ基底クラスの限定公開インタフェース 

sbufpub

ストリームバッファ基底クラスの公開インタフェース 

sigfpe

特定の SIGFPE コード用の信号処理の許可 

ssbuf

文字配列用のバッファクラス 

stdarg

可変個引数リストの処理 

stdiobuf

C の stdio で使用するバッファクラスとストリームクラス 

stream_locker

iostream クラスオブジェクトのアプリケーションレベルでのロッキングに使われるクラス 

stream_MT

iostream クラスオブジェクトから MT への動的変換、MT から iostream クラスオブジェクトへの動的変換を確実に提供する基底クラス 

strstream

文字配列を用いた入出力に対するストリームクラス 

varargs

可変個引数リストの処理 

vector

汎用ベクトルおよび汎用スタックを提示する 

次に、C++ コンパイラに関連した情報を掲載しているマニュアルページを示します。

表 P-2 C++ 関連のマニュアルページ

タイトル 

内容 

c++filt

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

dem

指定した複数の C++ 名の復号化 

fbe

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

fpversion

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

gprof

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

ild

プログラムの修正部分だけをリンクし、修正オブジェクトコードを以前に構築された実行可能ファイルに挿入することを可能にする 

inline

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

lex

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

rpcgen

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

version

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

yacc

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

README (最新情報) ファイル

コンパイラに関する重要な情報を掲載したもので、次のような内容が含まれています。

README ファイルは、以下に示す位置に入っています。opt-install-dir は、インストールディレクトリを示します。

opt-install-dir/SUNWspro/READMEs/ja

README ファイルを表示するには次のように入力します。


% CC -readme

書体と記号について

このマニュアルで使用している書体と記号について説明します。

表 P-3 このマニュアルで使用している書体と記号

書体または記号 

意味 

例 

AaBbCc123

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

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

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

machine_name% You have mail.

AaBbCc123

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

machine_name% su

Password:

AaBbCc123 またはゴシック

コマンド行の可変部分。実際の名前または実際の値と置き換えてください。 

rm filename と入力します。

rm ファイル名 と入力します。

『 』 

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

『SPARCstorage Array ユーザーマニュアル』 

「 」

参照する章、節、または、強調する語を示します。 

第 6 章「データの管理」を参照してください。 

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

¥

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

machinename% grep `^#define ¥ XV_VERSION_STRING'

コンパイラオプションとコード例では、次に示すような表記方法を使用しています。 

[ ]

大括弧には任意指定の引数を含みます 

-xO[n]

( )

括弧にはオプションの選択可能な部分を含みます 

-d(y|n)

|

たて棒は引数の間を区切り、いずれか 1 つだけしか使用できないことを表します。 

-d(y|n)

...

3 個の点は、同じ種類のものを一部省略していることを示します。 

-xinline=f1[,...fn]

%

パーセント記号は、その語に特別な意味があることを示します。 

-ftrap=%all, no%division

< >

README などのASCII 形式のファイルでは、適切な値に置き換える必要のある変数は、山括弧で示します。 

-xtemp=<dir>

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

シェルプロンプトの例を以下に示します。

表 P-4 シェルプロンプト

シェル 

プロンプト 

UNIX の C シェル 

machine_name%

UNIX の Bourne シェルと Korn シェル 

machine_name$

スーパーユーザー (シェルの種類を問わない) 

#