digitalmars.D.bugs - [Issue 21902] New: Templated Aliases and Enums should support
- d-bugmail puremagic.com (46/46) May 07 2021 https://issues.dlang.org/show_bug.cgi?id=21902
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. --
May 07 2021