我最终决定使用std.RedBlackTree
而不是内置的关联数组(或哈希),因为我需要一个排序的关联数组。所需的行为与 C++/STL 中的行为非常相似std::map
。
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));
}
闻起来像一个错误,但有解决方法吗?