проверка объекта класса на истинность

Имеется класс S и объект этого класса v.

Что нужно прописать в классе, чтобы if в функции вида

void f (S v) {
    if (v) {
        std::cout << "HI" << std::endl;
    }
}

работал корректно?


Ответы (1 шт):

Автор решения: user7860670

Перегрузить оператор приведения к bool (и оператор логического отрицания заодно) :

explicit operator bool(void) const { return m_good; }

bool operator not(void) const { return not m_good; }
→ Ссылка