std.RedBlackTree
ソートされた連想配列が必要なため、組み込みの連想配列 (またはハッシュ) の代わりに使用することにしました。std::map
望ましい動作は、C++/STLとほとんど同じです。
void main() {
alias Tuple!(float, float) Pair;
alias RedBlackTree!Pair Map;
Map m1;
m1.insert(Pair(1.1, 2.2));
}
上記のコードは、コンパイル方法 (-release の有無にかかわらず) に応じて、セグメンテーション フォールトを引き起こすか、アサーションをスローします。
これと同じこと:
void main() {
struct Pair { float first, second; }
alias RedBlackTree!(Pair, "a.first < b.first") Map;
Map m1;
m1.insert(Pair(1.1, 2.2));
}
バグのような匂いがしますが、回避策はありますか?