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.
Comment #1 by robert.schadek — 2024-12-13T19:16:15Z