Мой класс имеет явное преобразование в bool:
struct T {
explicit operator bool() const { return true; }
};
и у меня есть его экземпляр:
T t;
Чтобы назначить его переменной типа bool
, мне нужно написать листинг:
bool b = static_cast<bool>(t);
bool b = bool(t);
bool b(t); // converting initialiser
bool b{static_cast<bool>(t)};
Я знаю, что я могу использовать свой тип непосредственно в условном без литья, несмотря на explicit
классификатор:
if (t)
/* statement */;
Где еще я могу использовать t
как bool
без трансляции?