C standard library (libc) |
---|
General topics |
Miscellaneous headers |
C alternative tokens refer to a set of alternative spellings of common operators in the
C programming language. They are implemented as a group of macro constants in the
C standard library in the iso646.h
header. The tokens were created by Bjarne Stroustrup for the pre-standard C++ language
[1] and were added to the C standard in a 1995 amendment to the
C90 standard via library to avoid the breakage of existing code.
The alternative tokens allow programmers to use C language bitwise and logical 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 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 |
^=
|
The above-mentioned identifiers are
operator keywords in the
ISO C++ programming language and do not require the inclusion of a header file.
[3] For consistency, the
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]
&&
". Microsoft Docs. 2021-11-23.
Archived from the original on 2021-12-28. Retrieved 2021-12-27.
C standard library (libc) |
---|
General topics |
Miscellaneous headers |
C alternative tokens refer to a set of alternative spellings of common operators in the
C programming language. They are implemented as a group of macro constants in the
C standard library in the iso646.h
header. The tokens were created by Bjarne Stroustrup for the pre-standard C++ language
[1] and were added to the C standard in a 1995 amendment to the
C90 standard via library to avoid the breakage of existing code.
The alternative tokens allow programmers to use C language bitwise and logical 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 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 |
^=
|
The above-mentioned identifiers are
operator keywords in the
ISO C++ programming language and do not require the inclusion of a header file.
[3] For consistency, the
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]
&&
". Microsoft Docs. 2021-11-23.
Archived from the original on 2021-12-28. Retrieved 2021-12-27.