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

ドキュメントの情報

はじめに

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

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

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

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

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

4.  言語拡張

4.1 リンカースコープ

4.1.1 Microsoft Windows との互換性

4.2 スレッドローカルな記憶装置

4.3 例外の制限の少ない仮想関数による置き換え

4.4 enum の型と変数の前方宣言の実行

4.5 不完全な enum 型の使用

4.6 enum 名のスコープ修飾子としての使用

4.7 名前のない struct 宣言の使用

4.8 名前のないクラスインスタンスのアドレスの受け渡し

4.9 静的名前空間スコープ関数のクラスフレンドとしての宣言

4.10 事前定義済み __func__ シンボルの関数名としての使用

4.11 サポートされる属性

4.11.1 __packed__

5.  プログラムの編成

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

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

8.  例外処理

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

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

パート III ライブラリ

11.  ライブラリの使用

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

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

14.  複素数演算ライブラリの使用

15.  ライブラリの構築

パート IV 付録

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

B.  プラグマ

用語集

索引

4.10 事前定義済み __func__ シンボルの関数名としての使用

コンパイラでは、それぞれの関数で __func__ 識別子が const char 型の静的配列として暗黙的に宣言されます。プログラムの中で、この識別子が使用されていると、コンパイラによって次の定義が追加されます。ここで、function-name は関数の単純名です。この名前には、クラスメンバーシップ、名前空間、多重定義の情報は反映されません。

static const char __func__[] = "function-name";

たとえば、次のコードを考えてみましょう。

#include <stdio.h>
void myfunc(void)
{
  printf("%s\n", __func__);
}

この関数が呼び出されるたびに、標準出力ストリームに次の情報が出力されます。

myfunc

識別子 __FUNCTION__ も定義され、__func__ と同等になります。