含まれていると、構造体は可変長データとみなされます。outパラメータにおける扱いが異なります。型のクラスを自動的に生成します。クラスを使用する場合、可変長のメンバーに割り当てられるメモリーは自動的に管理されます。初期化もしくは代入が行われるまで、使用することはできません。構造体がスコープの外に出ると,可変長のメンバーに関連付けられていたすべてのメモリは自動的に解放されます。所有権を他に譲渡している_var型変数がスコープから出る場合、元のデータに対しては開放は行われません。(所有権を既に譲渡しているので。)初期化もしくは代入された構造体に対して,再び初期化または代入が行われた場合,元のデータに関連付けられていたメモリは自動的に解放されます。可変長のメンバーにオブジェクトリファレンスが代入される場合は,必ずそのオブジェクトリファレンスのコピーが作成されます。可変長のメンバーにポインタが代入される場合,コピーは作成されません。{}_ptr型のオブジェクト参照の所有権は_var型に移るため、参照カウントの増減はない。{}代入元の_var型のオブジェクト参照の所有権はコピーされる。単純にオブジェクト参照の_ptr型ポインタを返す。所有権の移動は起こらない。}通常、関数のin引数にオブジェクト参照を渡す際に使用する。オブジェクト参照を与えられた側の関数は、所有権を持たないため関数内でreleaseしてはいけない。関数から戻ってきたあと、_var型変数に依然として所有権が保持されており、_var型変数の解体時にオブジェクトはreleaseされる。オブジェクト参照をin引数として受け取る関数を定義する場合は、_ptr型の引数として定義する。関数内では、そのオブジェクトのオペレーションを呼ぶだけで、release等は行ってはいけない。duplicate関数で複製する必要がある。現在所有している参照をrelease(参照カウントをデクリメント)して、リファレンスのポインタをnilにセットして返す。out()関数呼び出し以前にもしオブジェクト参照を保持している場合はその所有権を放棄し参照は破棄される。}通常、関数のout引数にオブジェクト参照を渡す際に使用する。関数から戻ってきたあと、この変数に新たにオブジェクト参照が保持されていることが期待される。このとき、オブジェクト参照の所有権はこの変数に保持されていると考える。out()で変数を渡された関数側では、何らかの形でオブジェクト参照を生成または複製して、引数に所有権を渡す必要がある。オブジェクト参照をout引数として受け取る関数を定義する場合は、_ptr型参照の引数として定義する。関数内では、引数は必ずnilオブジェクト参照であり、かつ通常何らかのオブジェクトを所有権を与えて代入することが期待される。×所有権を複製していない。○所有権を複製している。されても、オブジェクト参照は解体されない。スコープを抜けたので参照カウントがデクリメントされる。inout()リファレンスへのポインタの参照を返す。}通常、関数のinout引数にオブジェクト参照を渡す際に使用する。関数内では何らかのオブジェクト参照が引数に入っていることが期待され、オブジェクトの所有権は関数側に移る。関数は何らかのオブジェクト参照をこの引数に与えて返すことが期待され、引数すなわち呼び出し元の変数に所有権を与える。関数内では引数にオブジェクト参照を新たにセットする場合は、まずreleaseしてから新たなオブジェクト参照を生成または複製して引数に所有権を渡す必要がある。オブジェクト参照をinout引数として取る関数は、設計の観点からあまり推奨されない。inout引数として取る関数を定義する必要がある場合は、_ptr型参照の引数として定義する。nilでなければオペレーションを呼ぶことができる。するテクニックを使用してもよい。後、関数の外でreleaseされるかもしれない。後、関数の外でreleaseされても、オブジェクト参照は解体されない。指すものは入れ替わっているかもしれない。スコープを抜けたので参照カウントがデクリメントされる。_retn()現在持っているオブジェクト参照の所有権を放棄してポインタを返す。}通常、関数の戻り値にオブジェクト参照を返す場合に使用される。所有権は関数の呼び出し側に渡るので、呼び出し側ではオブジェクト参照を破棄する責任がある。するか、_var型変数で受ける必要がある。より参照カウントがデクリメントされるため、関数内では_duplicate()などで所有権を複製しておく必要がある。×所有権がretに移ってしまう。後、関数の外でreleaseされるかもしれない。所有権を保持し続ける。_duplicateしてreturn_var型,_ptr型の代入でのリファレンスカウント_ptr型への_var型の代入ポインタへの代入。これは参照カウントエラーを引き起こす恐れがある。さすであろうが、参照カウントの保守はなされな。すれば、メモリリークが生じる。