Когда я могу использовать явный оператор Bool без актера?C++

Программы на C++. Форум разработчиков
Anonymous
Когда я могу использовать явный оператор Bool без актера?

Сообщение Anonymous »

Мой класс имеет явное преобразование в Bool: < /p>

Код: Выделить всё

struct T {
explicit operator bool() const { return true; }
};
< /code>

И у меня есть экземпляр: < /p>

T t;
< /code>

Чтобы назначить его переменной типа bool < /code>, мне нужно написать актерский состав: < /p>

bool b = static_cast(t);
bool b = bool(t);
bool b(t);  // converting initialiser
bool b{static_cast(t)};
< /code>

Я знаю, что я могу использовать свой тип непосредственно в условном без актеров, несмотря на явный < /code> квалификатор: < /p>

if (t)
/* statement */;
Где еще я могу использовать t в качестве bool без актера?

Подробнее здесь: https://stackoverflow.com/questions/399 ... out-a-cast

Вернуться в «C++»