May 07, 2021 [Issue 21902] New: Templated Aliases and Enums should support restrictions | ||||
|---|---|---|---|---|
| ||||
https://issues.dlang.org/show_bug.cgi?id=21902 Issue ID: 21902 Summary: Templated Aliases and Enums should support restrictions Product: D Version: D2 Hardware: All OS: All Status: NEW Severity: blocker Priority: P1 Component: dmd Assignee: nobody@puremagic.com Reporter: per.nordlow@gmail.com Template aliases and enums should support restrictions as, for instance, enum maxAlignment(Ts...) if (Ts.length > 0) { size_t result = 0; static foreach (T; Ts) if (T.alignof > result) result = T.alignof; return result; }(); Currently it's only possible to simplify definitions such as template maxAlignment(Ts...) if (Ts.length > 0) { enum maxAlignment = { size_t result = 0; static foreach (T; Ts) if (T.alignof > result) result = T.alignof; return result; }(); } to enum maxAlignment(Ts...) { static assert(Ts.length > 0); size_t result = 0; static foreach (T; Ts) if (T.alignof > result) result = T.alignof; return result; }(); because of this limitation. -- | ||||
Copyright © 1999-2021 by the D Language Foundation
Permalink
Reply