JavaScript is required to for searching.
ナビゲーションリンクをスキップ
印刷ビューの終了
Oracle Solaris Studio 12.3: C++ ユーザーズガイド     Oracle Solaris Studio 12.3 Information Library (日本語)
search filter icon
search icon

ドキュメントの情報

はじめに

パート I C++ コンパイラ

1.  C++ コンパイラの紹介

2.  C++ コンパイラの使用方法

3.  C++ コンパイラオプションの使い方

パート II C++ プログラムの作成

4.  言語拡張

5.  プログラムの編成

6.  テンプレートの作成と使用

7.  テンプレートのコンパイル

8.  例外処理

9.  プログラムパフォーマンスの改善

10.  マルチスレッドプログラムの構築

パート III ライブラリ

11.  ライブラリの使用

12.  C++ 標準ライブラリの使用

13.  従来の iostream ライブラリの使用

14.  ライブラリの構築

パート IV 付録

A.  C++ コンパイラオプション

B.  プラグマ

B.1 プラグマの書式

B.1.1 プラグマの引数としての多重定義関数

B.2 プラグマの詳細

B.2.1 #pragma align

B.2.2 #pragma does_not_read_global_data

B.2.3 #pragma does_not_return

B.2.4 #pragma does_not_write_global_data

B.2.5 #pragma dumpmacros

B.2.6 #pragma end_dumpmacros

B.2.7 #pragma error_messages

B.2.8 #pragma fini

B.2.9 #pragma hdrstop

B.2.10 #pragma ident

B.2.11 #pragma init

B.2.12 #pragma ivdep

B.2.13 #pragma must_have_frame

B.2.14 #pragma no_side_effect

B.2.15 #pragma opt

B.2.16 #pragma pack( n)

B.2.17 #pragma rarely_called

B.2.18 #pragma returns_new_memory

B.2.19 #pragma unknown_control_flow

B.2.20 #pragma weak

B.2.20.1 #pragma weak name

用語集

索引

B.1 プラグマの書式

次に、C++ コンパイラのプラグマのさまざまな書式を示します。

#pragma keyword
#pragma keyword ( a [ , a ] ...) [ , keyword ( a [ , a ] ...) ] ,...
#pragma sun keyword

変数 keyword は特定の指令を示し、a は引数を示します。

B.1.1 プラグマの引数としての多重定義関数

ここで示すいくつかのプラグマは、引数として関数名をとります。その関数が多重定義されている場合、プラグマは、その引数として、その直前の関数宣言を使用します。次の例を考えてみましょう。

int bar(int);
int foo(int);
int foo(double);
#pragma does_not_read_global_data(foo, bar)

この例の foo は、プラグマの直前の foo の宣言である foo(double) を意味し、bar は、単に宣言されている bar である bar(int) を意味します。ここで、foo が再び多重定義されている次の例を考えてみます。

int foo(int);
int foo(double);
int bar(int);
#pragma does_not_read_global_data(foo, bar)

この例の bar は、単に宣言されている bar である bar(int) を意味します。しかし、プラグマは、どのバージョンの foo を使用すべきか分かりません。この問題を解決するには、プラグマが使用すべき foo の定義の直後にプログラムを置く必要があります。

次のプラグマは、この節で説明した方法で選択を行います。