Arrays 使用数组时,std.algorithm.sorting失败,错误不明显!T和opSlice()

Arrays 使用数组时,std.algorithm.sorting失败,错误不明显!T和opSlice(),arrays,sorting,d,phobos,Arrays,Sorting,D,Phobos,我确信我在这里遗漏了一些明显的东西——D的其余部分(甚至是编译器错误)都非常合理且易于理解。我有一个类似结构的std.containers.Array,我想对它进行排序。std.containers文档指出,为了使用std.algorithm中的内容,您需要使用array[]或array.opSlice()对其进行切片。好的,没问题 然而,如果我用两种非常简单的类型制作一个数组,它就不会排序——相反,它告诉我,在火卫一的深处,一个例程不是空的(?) 这是火卫一的错误: 它在一个月前就被修复了,但

我确信我在这里遗漏了一些明显的东西——D的其余部分(甚至是编译器错误)都非常合理且易于理解。我有一个类似结构的
std.containers.Array
,我想对它进行排序。
std.containers
文档指出,为了使用
std.algorithm
中的内容,您需要使用
array[]
array.opSlice()
对其进行切片。好的,没问题

然而,如果我用两种非常简单的类型制作一个
数组
,它就不会排序——相反,它告诉我,在火卫一的深处,一个例程不是空的(?)

这是火卫一的错误:

它在一个月前就被修复了,但现在还没有发布。可能将在2.069中提供


现在,作为一种解决方法,您可以在发布模式下构建项目。

这太烦人了!我可以通过转换为标准数组使其在调试模式下工作:
autoarr2=std.array.array(arr[]);排序(arr2);arr=数组!MyInt(arr2)但对于性能或可读性而言,这一点都不理想。。。无论如何谢谢你!
B:\lib\D\dmd2\windows\bin\..\..\src\phobos\std\range\package.d(7189): Error: 'std.range.SortedRange!(RangeT!(Array!(MyInt)), "a < b").SortedRange.dbgVerifySorted' is not nothrow
B:\lib\D\dmd2\windows\bin\..\..\src\phobos\std\algorithm\sorting.d(982): Error: template instance std.range.assumeSorted!("a < b", RangeT!(Array!(MyInt))) error instantiating
main.d(21):        instantiated from here: sort!("a < b", cast(SwapStrategy)0, RangeT!(Array!(MyInt))) 
import std.array;
import std.container.array;
import std.algorithm.sorting;

struct MyInt
{
    int data;

    int opCmp(MyInt o)
    {
        return data - o.data;
    }
}

int main(string[] argv)
{
    MyInt ami, bmi;
    Array!MyInt arr = [ ami, bmi ];

    sort([ami, bmi]);
    sort(arr[0..2]);
    sort(arr[]);
    sort(arr.opSlice());

    return 0;
}