From 2eb41fd1bce17b6442d8ba37a0de8b27f034cdbf Mon Sep 17 00:00:00 2001 From: Ilya Yaroshenko Date: Wed, 18 Oct 2017 21:44:09 +0700 Subject: [PATCH] allow n=0 for std.meta.Repeat --- std/meta.d | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/std/meta.d b/std/meta.d index dedcc310d..21a88190c 100644 --- a/std/meta.d +++ b/std/meta.d @@ -1317,9 +1317,12 @@ private template SmartAlias(T...) * Creates an `AliasSeq` which repeats a type or an `AliasSeq` exactly `n` times. */ template Repeat(size_t n, TList...) -if (n > 0) { - static if (n == 1) + static if (n == 0) + { + alias Repeat = AliasSeq!(); + } + else static if (n == 1) { alias Repeat = AliasSeq!TList; } @@ -1344,6 +1347,9 @@ if (n > 0) /// @safe unittest { + alias ImInt0 = Repeat!(0, int); + static assert(is(ImInt0 == AliasSeq!())); + alias ImInt1 = Repeat!(1, immutable(int)); static assert(is(ImInt1 == AliasSeq!(immutable(int))));