目次

本書について

  • サポートされる言語標準
  • IBM 言語拡張機能
  • GNU C および C++ に関連するフィーチャー
  • AltiVec プログラミング・インターフェースをサポートする拡張機能
  • 文書の規則
  • 強調表示の規則
  • 構文図の読み方
  • スコープおよびリンケージ

  • スコープ
  • ローカル・スコープ
  • 関数スコープ
  • 関数プロトタイプ・スコープ
  • グローバル・スコープ
  • クラス・スコープ
  • ID のネーム・スペース
  • 名前の隠蔽
  • プログラム・リンケージ
  • 内部結合
  • 外部結合
  • リンケージなし
  • リンケージ指定 -- C++ 以外のプログラムへのリンク
  • ネーム・マングリング
  • 字句エレメント

  • トークン
  • 区切り子
  • 代替トークン
  • ソース・プログラムの文字セット
  • エスケープ・シーケンス
  • ユニコード規格
  • 3 文字表記
  • マルチバイト文字
  • コメント
  • ID
  • 予約済みの ID
  • ID での大/小文字の区別と特殊文字
  • 事前定義済みの ID
  • キーワード
  • 言語拡張用のキーワード
  • 演算子および区切り子の代替表記
  • リテラル
  • ブール・リテラル
  • 整数リテラル
  • 10 進整数リテラル
  • 16 進整数リテラル
  • 8 進整数リテラル
  • 浮動小数点リテラル
  • 16 進浮動小数点定数
  • 複素数リテラル
  • 文字リテラル
  • ストリング・リテラル
  • 複合リテラル
  • ベクトル・リテラル
  • 宣言

  • 宣言概要
  • 変数属性
  • aligned 変数属性
  • init_priority 変数属性
  • mode 変数属性
  • packed 変数属性
  • weak 変数属性
  • __align 指定子
  • 仮定義
  • オブジェクト
  • ストレージ・クラス指定子
  • auto ストレージ・クラス指定子
  • extern ストレージ・クラス指定子
  • mutable ストレージ・クラス指定子
  • register ストレージ・クラス指定子
  • static ストレージ・クラス指定子
  • typedef
  • 型指定子
  • 型名
  • 型属性
  • 型属性 aligned
  • 型属性 packed
  • 型属性 transparent_union
  • 互換型
  • 単純型指定子
  • ブール変数
  • char および wchar_t 型指定子
  • wchar_t 型指定子
  • 浮動小数点変数
  • 整変数
  • void 型
  • 複合型
  • 構造体
  • 構造体の宣言および定義
  • 構造変数の定義
  • 構造体の初期化
  • 同じステートメントでの構造体型および変数の宣言
  • 構造体位置合わせ
  • 構造体でのビット・フィールドの宣言および使用
  • 構造体を使用したプログラムの例
  • 共用体
  • 共用体の宣言
  • 共用体変数の定義
  • 無名共用体
  • 共用体の例
  • 列挙
  • 列挙データ型の宣言
  • 列挙型定数
  • 列挙変数の定義
  • 列挙型および列挙オブジェクトの定義
  • 列挙を使用したプログラムの例
  • 複素数型
  • 型修飾子
  • const 型修飾子
  • volatile 型修飾子
  • restrict 型修飾子
  • asm ステートメント
  • 不完全型
  • AltiVec 型
  • 宣言子

  • 初期化指定子
  • ポインター
  • ポインターの宣言
  • ポインターの割り当て
  • ポインターの初期化
  • ポインターの使用
  • ポインター演算
  • ポインターを使用したプログラムの例
  • 配列
  • 配列の宣言
  • 可変長配列
  • 配列の初期化
  • 指定初期化指定子を使用した配列の初期化
  • 配列を使用したプログラムの例
  • 関数指定子
  • 参照
  • 参照の初期化
  • 式と演算子

  • 演算子優先順位と結合順序
  • 式と優先順位の例
  • 左辺値と右辺値
  • 1 次式
  • ID 式
  • 整数定数式
  • 括弧で囲んだ式 ( )
  • C++ スコープ・レゾリューション演算子 ::
  • 後置式
  • 関数呼び出し演算子 ( )
  • 配列添え字演算子 [ ]
  • ドット演算子 .
  • 矢印演算子 ->
  • typeid 演算子
  • static_cast 演算子
  • reinterpret_cast 演算子
  • const_cast 演算子
  • dynamic_cast 演算子
  • 単項式
  • 増分 ++
  • 減分 --
  • 単項正 +
  • 単項負 -
  • 論理否定 !
  • ビット単位否定 ~
  • アドレス &
  • 間接 *
  • alignof 演算子
  • sizeof 演算子
  • typeof 演算子
  • ラベル値演算子 &&
  • C++ の new 演算子
  • new 演算子を使用して作成されたオブジェクトの初期化
  • set_new_handler() -- new 障害のための振る舞いのセット
  • C++ の delete 演算子
  • キャスト式
  • 共用体型へのキャスト
  • 2 項式
  • 乗算 *
  • 除法 /
  • 剰余 %
  • 加法 +
  • 減法 -
  • ビット単位左シフトと右シフト << >>
  • 関係 < > <= >=
  • 等価 == !=
  • ビット単位 AND &
  • ビット単位排他 OR ^
  • ビット単位包含 OR |
  • 論理 AND &&
  • 論理 OR ||
  • メンバーを指す C++ ポインター演算子 ( .* ->*)
  • 条件式
  • C の条件式の型
  • C++ の条件式の型
  • 条件式の例
  • 代入式
  • 単純代入 =
  • 複合代入
  • コンマ式
  • C++ の throw 式
  • 暗黙の型変換

  • 整数および浮動小数点拡張
  • 標準の型変換
  • 左辺値から右辺値への変換
  • ブール変換
  • 整数変換
  • 浮動小数点の型変換
  • ポインター型変換
  • 参照変換
  • メンバーを指すポインターの型変換
  • 修飾変換
  • 関数引き数変換
  • その他の変換
  • 算術変換
  • explicit キーワード
  • 関数

  • C 関数に対する C++ の拡張
  • 関数宣言
  • C++ 関数の宣言
  • 複数の関数宣言
  • 関数宣言内のパラメーター名
  • 関数属性
  • alias 関数属性
  • always_inline 関数属性
  • const 関数属性
  • constructor および destructor 関数属性
  • format 関数属性
  • format_arg 関数属性
  • noinline 関数属性
  • noreturn 関数属性
  • pure 関数属性
  • section 関数属性
  • weak 関数属性
  • 関数宣言の例
  • 関数定義
  • 省略符号および void
  • 関数定義の例
  • main() 関数
  • main への引き数
  • main への引き数の例
  • 関数呼び出しおよび引き数の受け渡し
  • 値による引き数の受け渡し
  • 参照による引き数の受け渡し
  • C++ 関数におけるデフォルト引き数
  • デフォルト引き数に関する制約事項
  • デフォルト引き数の評価
  • 関数からの戻り値
  • 戻りの型としての参照の使用
  • 割り振り関数および割り振り解除関数
  • 関数へのポインター
  • インライン関数
  • ネストされた関数
  • ステートメント

  • ラベル
  • ローカルに宣言されたラベル
  • 値としてのラベル
  • 式ステートメント
  • C++ でのあいまいなステートメントの解決
  • ブロック・ステートメント
  • ステートメント式
  • if 文
  • switch 文
  • while ステートメント
  • do ステートメント
  • for ステートメント
  • break ステートメント
  • continue ステートメント
  • return ステートメント
  • 戻り式の値および関数値
  • goto 文
  • 計算済み goto
  • ヌル・ステートメント
  • プリプロセッサー・ディレクティブ

  • プリプロセッサーの概要
  • プリプロセッサー・ディレクティブの形式
  • マクロの定義および展開 (#define)
  • オブジェクト類似マクロ
  • 関数類似マクロ
  • Variadic マクロ拡張
  • マクロ名のスコープ (#undef)
  • # 演算子
  • ## 演算子とのマクロ連結
  • プリプロセッサーの Error ディレクティブ (#error)
  • プリプロセッサーの warning ディレクティブ (#warning)
  • ファイルのインクルード (#include)
  • 特殊化されたファイルのインクルード (#include_next)
  • ISO 規格事前定義マクロの名前
  • 条件付きコンパイル・ディレクティブ
  • #if、#elif
  • #ifdef
  • #ifndef
  • #else
  • #endif
  • 条件付きコンパイル・ディレクティブの例
  • 行制御 (#line)
  • ヌル・ディレクティブ (#)
  • プラグマ・ディレクティブ (#pragma)
  • 標準プラグマ
  • _Pragma 演算子
  • ネーム・スペース

  • ネーム・スペースの定義
  • ネーム・スペースの宣言
  • ネーム・スペース別名の作成
  • ネストされたネーム・スペースの別名の作成
  • ネーム・スペースの拡張
  • ネーム・スペースおよび多重定義
  • 名前なしネーム・スペース
  • ネーム・スペース・メンバー定義
  • ネーム・スペースおよびフレンド
  • using ディレクティブ
  • using 宣言およびネーム・スペース
  • 明示的アクセス
  • 多重定義

  • 関数の多重定義
  • 多重定義された関数の制約事項
  • 演算子の多重定義
  • 単項演算子の多重定義
  • 増分と減分の多重定義
  • 2 項演算子の多重定義
  • 代入の多重定義
  • 関数呼び出しの多重定義
  • 添え字の多重定義
  • クラス・メンバー・アクセスの多重定義
  • 多重定義解決
  • 暗黙的変換シーケンス
  • 多重定義された関数のアドレスの解決
  • クラス

  • クラス・タイプの宣言
  • クラス・オブジェクトの使用
  • クラスと構造体
  • クラス名のスコープ
  • 不完全なクラス宣言
  • ネスト・クラス
  • ローカル・クラス
  • ローカル型名
  • クラス・メンバーとフレンド

  • クラス・メンバー・リスト
  • データ・メンバー
  • メンバー関数
  • const および volatile メンバー関数
  • 仮想メンバー関数
  • 特殊なメンバー関数
  • メンバー・スコープ
  • メンバーへのポインター
  • this ポインター
  • 静的メンバー
  • 静的メンバーでのクラス・アクセス演算子の使用
  • 静的データ・メンバー
  • 静的メンバー関数
  • メンバー・アクセス
  • フレンド
  • フレンドのスコープ
  • フレンドのアクセス
  • 継承

  • 派生
  • 継承されたメンバー・アクセス
  • protected メンバー
  • 基底クラス・メンバーのアクセス制御
  • using 宣言およびクラス・メンバー
  • 基底クラスおよび派生クラスからのメンバー関数の多重定義
  • クラス・メンバーのアクセスの変更
  • 多重継承
  • 仮想基底クラス
  • マルチアクセス
  • あいまいな基底クラス
  • 仮想関数
  • あいまいな仮想関数呼び出し
  • 仮想関数のアクセス
  • 抽象クラス
  • 特殊なメンバー関数

  • コンストラクターとデストラクターの概要
  • コンストラクター
  • デフォルト・コンストラクター
  • コンストラクターでの明示的初期化
  • 基底クラスおよびメンバーの初期化
  • 派生クラス・オブジェクトの構築順序
  • デストラクター
  • フリー・ストア
  • 一時オブジェクト
  • ユーザー定義の型変換
  • コンストラクターによる変換
  • 型変換関数
  • コピー・コンストラクター
  • コピー代入演算子
  • テンプレート

  • テンプレート・パラメーター
  • 「型」テンプレート・パラメーター
  • 「非型」テンプレート・パラメーター
  • 「テンプレート」テンプレート・パラメーター
  • テンプレート・パラメーターのデフォルトの引き数
  • テンプレート引き数
  • テンプレート型引き数
  • テンプレート非型引き数
  • 「テンプレート」テンプレート引き数
  • クラス・テンプレート
  • クラス・テンプレートの宣言と定義
  • 静的データ・メンバーとテンプレート
  • クラス・テンプレートのメンバー関数
  • フレンドとテンプレート
  • 関数テンプレート
  • テンプレート引き数の推定
  • 「型」テンプレート引き数の推定
  • 非型テンプレート引き数の推定
  • 関数テンプレートの多重定義
  • 関数テンプレートの部分選択
  • テンプレートのインスタンス化
  • 暗黙のインスタンス化
  • 明示的インスタンス生成
  • テンプレート特殊化
  • 明示的特殊化
  • 明示的特殊化の定義と宣言
  • 明示的特殊化とスコープ
  • 明示的特殊化のクラス・メンバー
  • 関数テンプレートの明示的特殊化
  • クラス・テンプレートのメンバーの明示的特殊化
  • 部分的特殊化
  • 部分的特殊化のテンプレート・パラメーターと引き数リスト
  • クラス・テンプレートの部分的特殊化のマッチング
  • 名前のバインディングおよび従属名
  • typename キーワード
  • 修飾子としてのキーワード・テンプレート
  • 例外処理

  • try キーワード
  • ネストされた try ブロック
  • catch ブロック
  • 関数 try ブロック・ハンドラー
  • catch ブロックの引き数
  • スローされた例外とキャッチされた例外とのマッチング
  • キャッチの順序
  • throw 式
  • 例外の rethrow
  • スタック・アンワインド
  • 例外の指定
  • 特殊な例外処理関数
  • unexpected()
  • terminate()
  • set_unexpected() と set_terminate()
  • 例外処理関数の使用例
  • 付録 A. IBM C 言語拡張機能

  • 直交拡張機能
  • 個々のオプション・コントロールが備わった既存の IBM C 拡張機能
  • IBM C 拡張機能: C89 の拡張機能としての C99 フィーチャー
  • GNU C に関連する IBM C 拡張機能
  • 非直交拡張機能
  • 個々のオプション・コントロールが備わった既存の IBM C 拡張機能
  • IBM C 拡張機能: C89 の拡張機能としての C99 フィーチャー
  • GNU C に関連する IBM C 拡張機能
  • AltiVec プログラミング・インターフェース・サポートの拡張機能
  • 付録 B. IBM C++ 言語拡張機能

  • 直交拡張機能
  • C99 との互換性のための IBM C++ 拡張機能
  • GNU C に関連する IBM C++ 拡張機能
  • GNU C++ に関連する IBM C++ 拡張機能
  • 非直交拡張機能
  • C99 との互換性のための IBM C++ 拡張機能
  • GNU C に関連する IBM C++ 拡張機能
  • 付録 C. AltiVec データ型およびリテラル

  • Vector データ型
  • ベクトル・リテラル
  • 索引

    IBM Copyright 2003