On Saturday, 21 May 2016 at 18:33:53 UTC, Anonymouse wrote:
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.
Perfect.. and your 'phoned-in' coding is impressive.
opCast is the biggest thing I was
missing/forgetting/misunderstanding here.
I Still need to look back at what is happening with vit's
solution.
Sorry again for the bad example to both of you.