diff --git a/std/traits.d b/std/traits.d index ebecb6e62ed..f8bcf2ae017 100644 --- a/std/traits.d +++ b/std/traits.d @@ -4751,15 +4751,17 @@ template TemplateArgsOf(T : Base!Args, alias Base, Args...) private template maxAlignment(U...) if (isTypeTuple!U) { - import std.meta : staticMap; static if (U.length == 0) static assert(0); else static if (U.length == 1) enum maxAlignment = U[0].alignof; + else static if (U.length == 2) + enum maxAlignment = U[0].alignof > U[1].alignof ? U[0].alignof : U[1].alignof; else { - import std.algorithm.comparison : max; - enum maxAlignment = max(staticMap!(.maxAlignment, U)); + enum a = maxAlignment!(U[0 .. ($+1)/2]); + enum b = maxAlignment!(U[($+1)/2 .. $]); + enum maxAlignment = a > b ? a : b; } }