Здравствуйте, Евгений Коробко, Вы писали:
ЕК>Оператор != не подходит потому, что в С++ есть неявное преобразование из 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))
ЕК>Но хотелось бы в форме оператора. ЕК>Ну и опять-таки, ^^=...
ЕК>А про то, что можно обойтись условными операторами и пр. — когда можно, а когда и нет. Знаете, есть дискретная математика, всякие так КНФ, ДНФ и пр. самые настоящие вычисления, только не с числами, а с булевскими переменными.
Да, но я не предлагаю сравнивать на неравенство два целых числа.
Я в своем примере писал !!а.
А если говорить о красивости... Не так часто сравниваются два логических выражния на равенство или неравенство, тем более, если имеет место неявное преобразование типов.
Не все в этом мире можно выразить с помощью нулей и единиц...
Здравствуйте, Евгений Коробко, Вы писали:
ЕК>отсутствие оператора логического xor и операторов &&= и ||= непонятно. Они нужны хотя бы для симметрии.
ЕК>Можно вообще класс написать ЕК>class Bool ЕК>{ ЕК>... ЕК>}; ЕК>и в нём перегрузить все операторы а также &=,|=,^=, сделать конструкторы и оператор преобразования к bool.
Забавно, конечно, создавать класс Bool, но это всего лишь еще один новый "велосипед"...
Гораздо проще обойтись и обычными операторами.
А симметрия, наверное нарушена. Но я не знаю никого, кто бы от этого пострадал...
Если так судить, то и штрих Шеффера надо добавлять и стрелку Пирса...
Они все легко заменяемы.
Удалено избыточное цитирование. -- ПК.
Не все в этом мире можно выразить с помощью нулей и единиц...
Д>>А симметрия, наверное нарушена. Но я не знаю никого, кто бы от этого пострадал...
Да, собственно, изначально вопрос был не в том, как обойтись без этих операторов (это очевидно).
Вопрос был в том, а почему, собственно, их нет. Лично мне их отсутствие кажется нелогичным.
Здравствуйте, Евгений Коробко, Вы писали:
ЕК>Да, собственно, изначально вопрос был не в том, как обойтись без этих операторов (это очевидно). ЕК>Вопрос был в том, а почему, собственно, их нет. Лично мне их отсутствие кажется нелогичным.
нелогическим
насколько я помню,самая моя первая программа нуждалась именно в ^^ и ^^=