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.ifTestable

enum ifTestable(T, alias pred) = __traits(compiles, () { if (pred(T.init)) { } } );

Returns

true iff the type T can be tested in an if-expression, that is if if (pred(T.init)) {} is compilable.

Example

class C;
struct S1;
struct S2
{
    T opCast(T)() const;
}

static assert( ifTestable!bool);
static assert( ifTestable!int);
static assert( ifTestable!(S1*));
static assert( ifTestable!(typeof(null)));
static assert( ifTestable!(int[]));
static assert( ifTestable!(int[string]));
static assert( ifTestable!S2);
static assert( ifTestable!C);
static assert(!ifTestable!S1);

Authors

Walter Bright, Tomasz Stachowiak (isExpressions), Andrei Alexandrescu, Shin Fujishiro, Robert Clipsham, David Nadlinger, Kenji Hara, Shoichi Kato

License

Boost License 1.0.