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になります。