__ro_placement
このセクションの内容:
構文
オブジェクト属性の構文を参照してください。
説明
__ro_placement属性は、データオブジェクトが読み取り専用メモリに置かれることを指定します。このオブジェクト属性を使用する2つの例があります。
const volatile宣言されたデータオブジェクトは、デフォルトで読み書き可能メモリとして配置されます。__ro_placementオブジェクト属性は、代わりに読み取り専用メモリのデータオブジェクトに配置されます。C++ではデータオブジェクトは
constと宣言され、動的な初期化が必要で、読み書き可能メモリに配置され、システム起動時に初期化されます。__ro_placementオブジェクト属性を使用する場合、データオブジェクトが動的な初期化を必要する場合、コンパイラはエラーメッセージを表示します。
constオブジェクトでは__ro_placementオブジェクト属性のみを使用します。
コンパイラが、データオブジェクトのC++動的初期化を静的初期化に最適化できる場合は、C++オブジェクトの__ro_placement属性を使用できます。これは、関連のクラス定義のヘッダーファイルで、関連の単一のコンストラクタが定義されていて、コンパイラに表示される場合だけ可能です。コンパイラが、コンストラクタを見つけれない場合、またはコンストラクタが複雑すぎる場合は、エラーメッセージ(Error[Go023])が発行され、完了できません。
例
__ro_placement const volatile int x = 10;