instance_alignof¶
instance_alignof
式は、指定されたクラスのインスタンスのアライメントを持つInt32
を返します。
割り当てられたオブジェクトへの参照(ポインタ)のアライメントを返すalignof
とは異なり、instance_alignof
は割り当てられたオブジェクト自体のアライメントを返します。
例:
class Foo
end
class Bar
def initialize(@x : Int64)
end
end
instance_alignof(Foo) # => 4
instance_alignof(Bar) # => 8
Foo
はインスタンス変数を持っていませんが、コンパイラは常にオブジェクトの型ID用の追加のInt32
フィールドを含めます。そのため、インスタンスのアライメントは1ではなく4になります。