Compacter definition of isSigned including extra unittests

This commit is contained in:
Per Nordlöw 2017-01-19 00:16:20 +01:00
parent 51fbf1765a
commit 93e302ba98

View file

@ -5429,10 +5429,16 @@ enum bool isUnsigned(T) = __traits(isUnsigned, T) && !(is(Unqual!T == char) ||
/**
Detect whether $(D T) is a built-in signed numeric type.
*/
enum bool isSigned(T) = is(SignedTypeOf!T) && !isAggregateType!T;
enum bool isSigned(T) = __traits(isArithmetic, T) && !__traits(isUnsigned, T);
@safe unittest
{
enum E { e1 = 0 }
static assert(isSigned!E);
enum Eubyte : ubyte { e1 = 0 }
static assert(!isSigned!Eubyte);
foreach (T; TypeTuple!(SignedIntTypeList))
{
foreach (Q; TypeQualifierList)