I am reviewing some code and have something like this:
boost::optional<bool> isSet = ...;
... some code goes here...
bool smthelse = isSet ? *isSet : false;
So my question is, is the last line equivalent to this:
bool smthelse = isSet;
Here's the table:
boost::optional<bool> isSet | none | true | false |
----------------------------|------|------|-------|
isSet ? *isSet : false; | false| true | false |
isSet | false| true | true |
As you can see difference in the last column, where isSet has been assigned the boolean value false.
Alternatively, you can use isSet.get_value_or(false);.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With