Does making an array copy with shared cast away make any sense?
auto n = 10; auto sharedData = new shared SomeClass[n]; foreach (i; 0..n) sharedData[i] = new shared SomeClass(i); auto nonSharedData = cast(SomeClass[]) sharedData[0..$]; auto sorted = sort!((a, b) => a.value < b.value)(nonSharedData); This seems to work but what are the implications?