属性の一覧 | Programming Place Plus 新C++編

トップページ新C++編

属性 🔗

C++ に存在する属性の一覧です。

属性 (attribute) は、クラスや関数、変数など、ソースコード上にあるさまざまな構成要素に対して、追加情報を与えるための構文です。構成要素の手前の辺りに以下の文法で記述します。

[[属性名]]
[[属性名(実引数の並び)]]

属性は、C++ の標準規格が定めたものと、コンパイラ作成者が定義したものが存在します。ほかのプログラミング言語では、プログラマーが新たな属性を定義できる場合がありますが、C++ では今のところ新しい属性を追加することはできません。

C++11 🔗

名前 指定できる構成要素 概要 解説ページ
noreturn 関数の宣言 関数が呼び出し元に帰らないことを示す アサート
carries_dependency 関数の宣言、仮引数、ラムダ式の引数 並行処理のアトミック操作において、関数の内外にメモリ操作の依存関係が伝播することを示す

C++14 🔗

名前 指定できる構成要素 概要 解説ページ
deprecated クラス、typedef名、変数、非静的なデータメンバ、関数、列挙型、テンプレートの特殊化
(C++17) 名前空間、列挙子
非推奨の機能であることを示す
deprecated(文字列リテラル) クラス、typedef名、変数、非静的なデータメンバ、関数、列挙型、テンプレートの特殊化
(C++17) 名前空間、列挙子
非推奨の機能であることを示す。その理由などを引数で与えられる

C++17 🔗

名前 指定できる構成要素 概要 解説ページ
fallthrough switch文内の空文(各case の最後の式) 意図的なフォールスルーであることを示す switch文
maybe_unused クラス、typedef名、変数、非静的なデータメンバ、関数、列挙型、列挙子
(C++20) 構造化束縛
未使用であることを示す
nodiscard 関数の宣言、クラス、列挙型 戻り値を捨ててはならないことを示す

C++20 🔗

名前 指定できる構成要素 概要 解説ページ
nodiscard(文字列リテラル) 関数の宣言、クラス、列挙型 戻り値を捨ててはならないことを示す。その理由などを引数で与えられる
likely ラベル、文(宣言文を除く) その文に分岐する確率が、ほかの分岐よりも高いというヒントをコンパイラに与える
unlikely ラベル、文(宣言文を除く) その文に分岐する確率が、ほかの分岐よりも低いというヒントをコンパイラに与える
no_unique_address 非静的なデータメンバ 非静的なデータメンバがユニークなメモリアドレスを持たなくてよいことを示す

C++23 🔗

名前 指定できる構成要素 概要 解説ページ
assume(式) 空文 ある時点において満たしているべき仮定を、コンパイラにヒントとして与える

参考リンク 🔗


更新履歴 🔗



新C++編のトップページへ

Programming Place Plus のトップページへ



はてなブックマーク に保存 Pocket に保存 Facebook でシェア
X で ポストフォロー LINE で送る noteで書く
rss1.0 取得ボタン RSS 管理者情報 プライバシーポリシー
先頭へ戻る