Они фактически являются стандартом в C ++, как определено в стандарте ISO 14882: 2003 C ++ 2.5 / 2 (и, действительно, как определено в стандарте 1998 года).Обратите внимание, что они встроены в сам язык и не требуют наличия какого-либо заголовочного файла.
Однако они используются очень редко , и я еще не виделпроизводственный код, который фактически использует альтернативные токены.Единственная причина, по которой альтернативные токены существуют в первую очередь, заключается в том, что эти символы на некоторых клавиатурах (особенно не QWERTY) были либо несуществующими, либо неуклюжими для ввода.Это по-прежнему в стандарте обратной совместимости.
Несмотря на то, что они являются стандартными, я настоятельно рекомендую не использовать их.Для ввода альтернативных токенов требуется больше символов, а раскладка клавиатуры QWERTY уже содержит все символы, необходимые для ввода кода C ++ без использования альтернативных токенов.Кроме того, они, скорее всего, сбивают с толку читателей вашего кода.
2.5 / 2 Альтернативные токены
Во всех отношениях языка каждый альтернативный токен ведет себя както же самое, что и его основной токен, за исключением написания.Набор альтернативных токенов определен в таблице 2.
Table 2 - alternative tokens
+--------------+-----------+
| Alternative | Primary |
+--------------+-----------+
| <% | { |
| %> | } |
| <: | [ |
| :> | ] |
| %: | # |
| %:%: | ## |
| and | && |
| bitor | | |
| or | || |
| xor | ^ |
| compl | ~ |
| bitand | & |
| and_eq | &= |
| or_eq | |= |
| xor_eq | ^= |
| not | ! |
| not_eq | != |
+--------------+-----------+