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.isFloatingPoint
Detect whether T
is a built-in floating point type.
enum isFloatingPoint(T)
= __traits(isFloating, T) && !(is(Unqual!T == cfloat) || is(Unqual!T == cdouble) || is(Unqual!T == creal) || is(Unqual!T == ifloat) || is(Unqual!T == idouble) || is(Unqual!T == ireal));
Example
static assert(
isFloatingPoint!float &&
isFloatingPoint!double &&
isFloatingPoint!real &&
isFloatingPoint!(const(real)) &&
isFloatingPoint!(immutable(real))
);
static assert(!isFloatingPoint!int);
// complex and imaginary numbers do not pass
static assert(
!isFloatingPoint!cfloat &&
!isFloatingPoint!ifloat
);
// types which act as floating point values do not pass
struct S
{
float val;
alias val this;
}
static assert(!isFloatingPoint!S);
Authors
Walter Bright,
Tomasz Stachowiak (