[Issue 20932] New: Need a stableStaticSort to complement staticSort
d-bugmail at puremagic.com
d-bugmail at puremagic.com
Mon Jun 15 15:35:24 UTC 2020
https://issues.dlang.org/show_bug.cgi?id=20932
Issue ID: 20932
Summary: Need a stableStaticSort to complement staticSort
Product: D
Version: D2
Hardware: All
OS: All
Status: NEW
Severity: enhancement
Priority: P1
Component: phobos
Assignee: nobody at puremagic.com
Reporter: andrej.mitrovich at gmail.com
Consider this simple example:
-----
import std.meta;
void main ()
{
struct S (size_t idx, string val)
{
enum index = idx;
enum value = val;
}
enum Comp (T1, T2) = T1.index > T2.index;
alias seq = AliasSeq!(S!(0, "a"), S!(0, "b"), S!(1, "c"), S!(1, "d"), S!(2,
"e"), S!(2, "f"));
alias sorted = staticSort!(Comp, seq);
pragma(msg, sorted);
}
-----
Outputs:
(S!(2u, "e"), S!(2u, "f"), S!(1u, "d"), S!(1u, "c"), S!(0u, "b"), S!(0u, "a"))
But this is an unstable sort. It would be great to have a stable version. It's
output would be:
(S!(2u, "e"), S!(2u, "f"), S!(1u, "c"), S!(1u, "d"), S!(0u, "a"), S!(0u, "b"))
--
More information about the Digitalmars-d-bugs
mailing list