Which one do you prefer (the constructor does some work and sets
valid_):class A {
public:
explicit operator bool() const { return valid; }
private:
bool valid_ = false;
}
or
class A {
public:
bool is_valid() const { return valid; }
private:
bool valid_ = false;
}
On the caller side:
A a{};
if (a) {
// is valid
}
or
A a{}
if (a.is_valid()) {
// is valid
}
https://redd.it/1rz8gq5
@r_cpp