下記に示す、構造体に可変長のメンバーが含まれていると、構造体は可変長データとみなされます。パラメーターにおける扱いが異なります。可変長型へのtypedef上記の一覧に型が該当しない場合、その型は固定長になります。型のクラスを自動的に生成します。クラスを使用する場合、可変長のメンバーに割り当てられるメモリーは自動的に管理されます。初期化もしくは代入が行われるまで使用することはできません。構造体がスコープの外に出ると,可変長のメンバーに関連付けられていたすべてのメモリーは自動的に解放されます。所有権を他に譲渡している_var型変数がスコープから出る場合、所有権を既に譲渡しているので、元のデータに対しては開放は行われません。初期化もしくは代入された構造体に対して、再び初期化または代入が行われた場合、元のデータに関連付けられていたメモリーは自動的に解放されます。可変長のメンバーにオブジェクトリファレンスが代入される場合は、必ずそのオブジェクトリファレンスのコピーが作成されます。可変長のメンバーにポインタが代入される場合、コピーは作成されません。{}_ptr型のオブジェクト参照の所有権は_var型に移るため、参照カウントは増減しません。{}代入元の_var型のオブジェクト参照の所有権はコピーされます。単純にオブジェクト参照の_ptr型ポインタを返します。所有権は移行されません。引数にオブジェクト参照を渡す際に使用します。