On Sunday, 18 February 2018 at 15:12:50 UTC, Mike Parker wrote:

Generally, no. But with alias this, it can be:

import std.traits : BooleanTypeOf;
import std.stdio : writeln;

struct NoBool {
    int x;

struct AliasThisBool {
    bool b;
    alias b this;

void main()
    static if(is(BooleanTypeOf!NoBool)) writeln("NoBool");
static if(is(BooleanTypeOf!AliasThisBool)) writeln("AliasThisBool");


It doesn't appear that BooleanTypeof is documented on dlang.org (outside of it's placement on the isBooleanType page). At least it isn't coming up in a "BooleanTypeOf site:dlang.org" search and not on the traits page:


Reply via email to