Я с удивлением обнаружил, что в стандартной библиотеке Си с 95-го года существует этот файл, который определяет ряд стандартных макросов, а именно (скопипастил из GCC):
#ifndef __cplusplus
#define and &&
#define and_eq &=
#define bitand &
#define bitor |
#define compl ~
#define not !
#define not_eq !=
#define or ||
#define or_eq |=
#define xor ^
#define xor_eq ^=
#endif
В C++ все эти операторы (and, and_eq, bitand, bitor и проч.), оказывается, вообще встроенные.
Изначальная цель введения этих «альтернативных операторов» была в том, чтобы на клавиатурах/в кодировках, где нет символов типа & или | можно было бы писать код на Си. Однако, мне кажется, у них есть и иное применение. Если писать «and» вместо «&&», сильно уменьшается вероятность перепутать с «&». То же насчёт «or» и «||». not вместо восклицательного знака тоже может предотвратить ошибки в логике.
Так вот, что местные цари, короли и прочая аристократия думает по этому поводу? А простые батраки? Использует ли кто-нибудь эти операторы в своём коде?