1

Node他のオブジェクトへの参照を持つオブジェクトを使用して、ツリーのような構造を持っていNodeます。Nodeクラスです。今、私が書いているルーチンの 1 つは、最小優先度のキューを必要とします。これは、 と を使用して実装しstd.container.BinaryHeapていstd.container.Arrayます。次のようにインスタンス化しています。

Node[] r;
auto heap = BinaryHeap!(Array!(Node), "a > b")(Array!Node(r));

ルーチンの一部として、 using に要素を挿入し、heapusinginsertから要素を削除しremoveAnyます。現在、ルーチンは正しく機能しますが、その後、ノードが欠落しているため、ツリーのような構造が壊れます (それに対する私の不変条件は失敗します)。ここで何が起こっていて、なぜこれが起こっているのですか?

4

1 に答える 1

1

http://d.puremagic.com/issues/show_bug.cgi?id=6998 - std.container.Array がクラス インスタンスを破棄する可能性があります

于 2014-03-28T20:05:08.310 に答える