文書   >   Swift 標準ライブラリ > Manual Memory Management   >   MemoryLayout
汎用列挙型
MemoryLayout
型のメモリレイアウト。その size、stride、および alignment を記述します。
概観
安全でないポインタ (unsafe pointers) を使用してメモリーを割り振りまたは結合するとき、型に関する情報のソースとして MemoryLayout を使用できます。以下の例では、x 座標と y 座標を持つ Point 型と Boolean 値の isFilled プロパティを宣言しています。
struct Point { let x: Double let y: Double let isFilled: Bool }
Point 型の size、stride および alignment は、MemoryLayout<Point> の静的プロパティとしてアクセスできます。
// MemoryLayout<Point>.size == 17
// MemoryLayout<Point>.stride == 24
// MemoryLayout<Point>.alignment == 8
メモリを割り当てるとき、またはメモリ内のインスタンス間の距離を考慮するときは、常に size の代わりに複数の型の stride を使用します。この例では、型の指定されていない (untyped) 初期化されていないメモリに Point の4つのインスタンスのスペースを割り当てています。
型プロパティ
static var alignment: Int
T のデフォルトのバイト単位のメモリアライメント。
static var size: Int
T の連続したバイト単位のメモリフットプリント。
static var stride: Int
連続するメモリまたは Array<T> に格納されたときの、T の 1 つのインスタンスの開始から次の開始までのバイト数。
型メソッド
static func alignment(ofValue: T)
T のデフォルトのメモリーアライメントを返します。
static func size(ofValue: T)
与えられたインスタンスの連続したメモリフットプリントを返します。
static func stride(ofValue: T)
連続するメモリまたは Array<T> に格納されたときの、T の 1 つのインスタンスの先頭から次の先頭までのバイト数を返します。