C alternative tokens

Source: Wikipedia, the free encyclopedia.

C alternative tokens refer to a set of alternative spellings of common operators in the

C90
standard via library to avoid the breakage of existing code.

The alternative tokens allow programmers to use

operators which could otherwise be hard to type on some international and non-QWERTY keyboards. The name of the header file they are implemented in refers to the ISO/IEC 646
standard, a 7-bit character set with a number of regional variations, some of which have accented characters in place of the punctuation marks used by C operators.

The macros

The iso646.h header defines the following 11 macros as stated below:[2]

Macro Defined as
and &&
and_eq &=
bitand &
bitor |
compl ~
not !
not_eq !=
or ||
or_eq |=
xor ^
xor_eq ^=

C++

The above-mentioned identifiers are

C++98 standard provided both <iso646.h> and a corresponding <ciso646>. However they both had no effect, being empty.[4][5] Some compilers, such as Microsoft Visual C++ have, at least in the past, required the header to be included in order to use these identifiers unless a compiler flag is set.[6][7] The header <ciso646> was deprecated in C++17, and removed in C++20,[8] while <iso646.h> was retained for compatibility with C.[9]

See also

References

  1. ^ "CppCon 2017: Panel "Grill the Committee"". YouTube. Archived from the original on 2021-12-12.
  2. ^ "Rationale for International Standard - Programming Languages - C" (PDF). 5.10. April 2003. Archived (PDF) from the original on 2016-06-06. Retrieved 2010-10-17.
  3. .
  4. .
  5. .
  6. .
  7. ^ "Logical AND Operator: &&". Microsoft Docs. 2021-11-23. Archived from the original on 2021-12-28. Retrieved 2021-12-27.
  8. ^ Whitney, Tyler (2021-12-07). "<ciso646>". Microsoft Learn.
  9. ^ Köppe, Thomas (2021-06-11). "Clarifying the status of the "C headers"". C++ Standards Committee Papers. ISO/IEC JTC1 SC22 WG21. Archived from the original on 2024-01-11.

External links

  • iso646.h: alternative spellings – Base Definitions Reference,
    The Single UNIX Specification, Version 4 from The Open Group