View source code
Display the source code in std/traits.d from which this
page was generated on github.
Report a bug
If you spot a problem with this page, click here to create a
Bugzilla issue.
Improve this page
Quickly fork, edit online, and submit a pull request for this page.
Requires a signed-in GitHub account. This works well for small changes.
If you'd like to make larger changes you may want to consider using
local clone.
Enum member std.traits.isNumeric
Detect whether T
is a built-in numeric type (integral or floating
point).
enum isNumeric(T)
= __traits(isArithmetic, T) && !(is(immutable(T) == immutable(bool)) || is(immutable(T) == immutable(char)) || is(immutable(T) == immutable(wchar)) || is(immutable(T) == immutable(dchar)));
Example
static assert(
isNumeric!byte &&
isNumeric!short &&
isNumeric!int &&
isNumeric!long &&
isNumeric!float &&
isNumeric!double &&
isNumeric!real &&
isNumeric!(const(real)) &&
isNumeric!(immutable(real))
);
static assert(
!isNumeric!void &&
!isNumeric!bool &&
!isNumeric!char &&
!isNumeric!wchar &&
!isNumeric!dchar
);
// types which act as numeric values do not pass
struct S
{
int val;
alias val this;
}
static assert(!isIntegral!S);
Authors
Walter Bright,
Tomasz Stachowiak (isExpressions
),
Andrei Alexandrescu,
Shin Fujishiro,
Robert Clipsham,
David Nadlinger,
Kenji Hara,
Shoichi Kato
License
Copyright © 1999-2022 by the D Language Foundation | Page generated by ddox.