On Saturday, 21 May 2016 at 18:10:55 UTC, captain_fid wrote:
Please forgive if asked before. My google skills seemed to fail me and didn't see any result from search.

My problem is simple (though not my understanding LOL).

struct D {
      int value;
bool opEquals()(bool value) const { return (value == value); }
}

D aD;
if (aD == 1) { // OK
}

if (aD) { // Error: expression aD of type D does not have a boolean value
}

Is there a way to overload for this? What am I missing?

struct D
{
    int value;

    bool opEquals(T)(T value) const {
        return value == this.value;
    }

    bool opCast(T : bool)() const {
        return this != this.init;  // or some such
    }
}

Not tested, written on my phone so might have missed something.

Reply via email to