dup

もうDを始めて半年近くたつが、未だに配列をどこでdupするべきか分からない。
基本は、copy-on-writeらしいが、クラスが絡んでくるとメンバ変数に配列を代入することがあり、呼び側がローカル変数の配列である可能性もあるため、代入メソッド内でdupするか、呼び元でdupする必要があって、呼び元でdupする場合、呼び元はそのクラスのそのメソッドが引数に渡された配列をどう扱うか常に気をつけないといけなくなるのでよくないと思うんだけど、代入メソッド内でdupすると不要なdupがほとんどになってくる・・・・。