これは、破壊的な型変換を起こしたり、使えると思ったオブジェクトが空っぽだった状況に陥るのを防ぐ為です。この事はしかし、デメリットもあります。それについては、少し後で触れます。Disposableを(テンプレート引数で特定された)クラスに改造する方法を示しています。Arrayクラスを例に使っています。}ご覧の通り、Disposableを引数で取る、コンストラクターおよび代入演算子を追加で定義する必要があります。)メソッドも実装しなければなりません。)メソッドを追加してもよかったかも知れません。使う方法についてです。以下のコードをご覧下さい。参照を取る場合のデメリットについて述べて事を思い出して下さい。出来ないという事です。以下のように簡略化する事はできません。}なぜなら、このコードはコンパイルできません。その結果、より冗長な構文を強いられ、かつそのArray配列に変数名を割り当てなければなりません。(注:実際には強いられている訳ではありません。返すようにすれば、ローカル変数をわざわざ生成する必要はありません。これではローカル変数を生成するよりも、さらに判りにくいでしょう。忘れ去る事ができます。コンパイラーの邪魔をして、意図したメリットよりもデメリットの方が多いのではと疑っています。それは、次の様なものです。(すなわち、コンパイラーによって、代入先の変数のメモリー領域を、代入元の領域にあらかじめ確保するようなコードが生成されている)。準拠と決まる前に、既にこういった省力化を行っていました。使うと、コンパイラーが行うこの自動的な動作を妨げ、返って処理速度を遅くしてしまう可能性があります。<ライセンス表示>QuantLibのソースコードを使う場合は、ライセンス表示とDisclaimerの表示が義務付けられているので、添付します。