Re[12]: Операторы в С++
От: Доброжелатель Россия  
Дата: 13.06.03 13:12
Оценка:
Здравствуйте, Евгений Коробко, Вы писали:

ЕК>Оператор != не подходит потому, что в С++ есть неявное преобразование из int в bool.

ЕК>Отличие xor от bool должно быть в том, что xor принудительно приводит операнды к bool.

ЕК>int a=2,b=4;


ЕК>a xor b == false (a и b приводятся к true)

ЕК>a!=b == true

ЕК>Т.е.

ЕК>#define xor(a,b) (static cast<bool>(a)!=static cast<bool>(b))

ЕК>Но хотелось бы в форме оператора.

ЕК>Ну и опять-таки, ^^=...

ЕК>А про то, что можно обойтись условными операторами и пр. — когда можно, а когда и нет. Знаете, есть дискретная математика, всякие так КНФ, ДНФ и пр. самые настоящие вычисления, только не с числами, а с булевскими переменными.


Да, но я не предлагаю сравнивать на неравенство два целых числа.
Я в своем примере писал !!а.
А если говорить о красивости... Не так часто сравниваются два логических выражния на равенство или неравенство, тем более, если имеет место неявное преобразование типов.
Не все в этом мире можно выразить с помощью нулей и единиц...
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.