Логично! против ничего

Я только что нашел это в файле заголовка руководства guiddef.h:

__inline bool operator==(REFGUID guidOne, REFGUID guidOther)
{
    return !!IsEqualGUID(guidOne,guidOther);
}

Есть ли какая-нибудь точка в !!, или какой-нибудь из разработчиков просто чувствовал себя симпатичным в этот день?

Ответ 1

Он отключает визуальное предупреждение С++ для преобразования в boolean.

Ответ 2

В этом конкретном случае Alf, вероятно, прав.

В противном случае общепринятым является стандартизация целочисленных значений либо 1 (если они начинаются с нуля), либо 0 (если они начинаются с нуля) для логических операций.