Hi!
Consider the following code:
---
import std;
struct S {
pure this(ref return scope const S rhs) nothrow @nogc {
this.x = x;
}
int x;
}
void main()
{
S[] array = new S[10];
array.sort!("a.x < b.x", SwapStrategy.stable);
}
---
In this program, sort compiles only if the copy constructor is
decorated with pure, nothrow and @nogc. This is very limiting. Is
there a way to get rid of nothrow and @nogc on the copy
constructor and still use sort?
My actual use case, inefficient as it may be, is to sort structs
that use copy constructors to enforce deep copies of their
contents. So there's liberal use of .dup in them, which obviously
is neither nothrow nor @nogc.
Cheers,
Gregor