ナビゲーションリンクをスキップ | |
印刷ビューの終了 | |
Oracle Solaris Studio 12.3: C++ ユーザーズガイド Oracle Solaris Studio 12.3 Information Library (日本語) |
4.9 静的名前空間スコープ関数のクラスフレンドとしての宣言
4.10 事前定義済み __func__ シンボルの関数名としての使用
次の属性はサポートされます。__attribute__ (( keyword)) によって、あるいは [[ keyword]] によって呼び出される次の属性は、互換性のためにコンパイラによって実装されます。属性キーワードを二重アンダースコアの間に記載する __ keyword__ も受け入れられます。
#pragma align とほぼ同等です。警告を生成し、可変長配列について使用される場合は無視されます。
#pragma inline および -xinline と同等です
#pragma no_side_effect と同等です
#pragma init と同等です
#pragma fini と同等です
#pragma returns_new_memory と同等です
(相当するものはありません)
#pragma no_inline および -xinline と同等です
#pragma does_not_return と同等です
#pragma does_not_write_global_data と同等です
#pragma pack() と同等です。次の詳細を参照してください。
#pragma unknown_control_flow と同等です
g++ との互換のために受け入れますが、効果はありません。g++ のドキュメントではこの属性を使用しないことが推奨されています。
変数または (typedef を使用して作成された) 型の名前がベクトルを表していることを示します。
リンカースコープを指定します。(「A.2.130 -xldscope={v}」を参照してください) 構文は、__attribute__((visibility(“visibility-type ”))) です。ここで、visibility-type は次のいずれかです。
__global リンカースコープと同じです
__hidden リンカースコープと同じです
__symbolic リンカースコープと同じです
#pragma weak と同等です
struct または union の型定義に添付されるこの属性は、必要なメモリーを最小限に抑えるために、構造体または共用体の各メンバー (幅が 0 のビットフィールドを除く) の配置を指定します。enum 定義に添付する場合は、__packed__ は最小の整数型を使用すべきことを示します。
struct および union 型に対してこの属性を指定する場合は、構造体または共用体の各メンバーに対して packed 属性を指定する場合と同じことを意味します。
次の例では、struct my_packed_struct のメンバーは互いに隣接してパックされますが、メンバーの内部レイアウトはパックされません。内部レイアウトをパックするには、struct my_unpacked_struct もパックする必要があります。
struct my_unpacked_struct { char c; int i; ; struct __attribute__ ((__packed__)) my_packed_struct { char c; int i; struct my_unpacked_struct s; };
この属性を指定できるのは、enum、struct、または union の定義のみです。列挙型、構造体、共用体のいずれも定義しない typedef に対して、この属性は指定できません。