Skip to content

Commit

Permalink
Merge pull request #4393 from JackStouffer/isArray
Browse files Browse the repository at this point in the history
Add ddoc example for isDynamicArray and isArray
  • Loading branch information
dnadlinger committed Jun 2, 2016
2 parents b284e96 + e883238 commit 4e387a3
Showing 1 changed file with 25 additions and 12 deletions.
37 changes: 25 additions & 12 deletions std/traits.d
Original file line number Diff line number Diff line change
Expand Up @@ -5409,22 +5409,27 @@ unittest
*/
enum bool isDynamicArray(T) = is(DynamicArrayTypeOf!T) && !isAggregateType!T;

///
unittest
{
foreach (T; TypeTuple!(int[], char[], string, long[3][], double[string][]))
static assert( isDynamicArray!(int[]));
static assert( isDynamicArray!(string));
static assert( isDynamicArray!(long[3][]));

static assert(!isDynamicArray!(int[5]));
static assert(!isDynamicArray!(typeof(null)));
}

unittest
{
foreach (T; AliasSeq!(int[], char[], string, long[3][], double[string][]))
{
foreach (Q; TypeQualifierList)
{
static assert( isDynamicArray!( Q!T ));
static assert(!isDynamicArray!( SubTypeOf!(Q!T) ));
}
}

static assert(!isDynamicArray!(int[5]));
static assert(!isDynamicArray!(typeof(null)));

//enum EDA : int[] { a = [1], b = [2] }
//static assert( isDynamicArray!EDA);
}

/**
Expand All @@ -5433,20 +5438,28 @@ unittest
*/
enum bool isArray(T) = isStaticArray!T || isDynamicArray!T;

///
unittest
{
foreach (T; TypeTuple!(int[], int[5], void[]))
static assert( isArray!(int[]));
static assert( isArray!(int[5]));
static assert( isArray!(string));

static assert(!isArray!uint);
static assert(!isArray!(uint[uint]));
static assert(!isArray!(typeof(null)));
}

unittest
{
foreach (T; AliasSeq!(int[], int[5], void[]))
{
foreach (Q; TypeQualifierList)
{
static assert( isArray!(Q!T));
static assert(!isArray!(SubTypeOf!(Q!T)));
}
}

static assert(!isArray!uint);
static assert(!isArray!(uint[uint]));
static assert(!isArray!(typeof(null)));
}

/**
Expand Down

0 comments on commit 4e387a3

Please sign in to comment.