Alternative operator representations
Le code source C++ (et C) peut être écrit dans n'importe quel jeu de caractère non-ASCII 7 bits qui comprend le jeu de caractères ISO 646/ECMA-6 invariant. Cependant, plusieurs opérateurs et ponctuations C++ nécessitent des caractères qui sont en dehors du jeu de codes ISO 646: {, }, [, ], #, \, ^, |, ~. Pour être en mesure d'utiliser les codages de caractères là où tout ou partie de ces symboles n'existent pas (comme l'allemand DIN 66003), C++ définit deux types de solutions : mots-clés supplémentaires qui correspondent aux opérateurs qui utilisent ces caractères et combinaisons spéciales de deux ou trois caractères compatibles ISO 646 interprétés comme s'il s'agissait d'un seul caractère non-ISO 646.
Mots-clés alternatifs
Il existe une orthographe alternative pour plusieurs opérateurs définis comme mots-clés dans le standard C++.
| Primaire | Alternative |
|---|---|
&&
|
and
|
&=
|
and_eq
|
&
|
bitand
|
|
|
bitor
|
~
|
compl
|
!
|
not
|
!=
|
not_eq
|
| || | or |
|=
|
or_eq
|
^
|
xor
|
^=
|
xor_eq
|
Compatibilité avec le C
Les mêmes mots sont définis dans le langage de programmation C dans le fichier include <iso646.h> sous forme de macros. Parce que dans le C++ ce sont des mots clés du langage, la version C++ de <iso646.h>, ainsi que <ciso646>, ne définit rien.
Digrammes et trigrammes
Les combinaisons de deux ou trois caractères (digrammes et trigrammes) ci-dessous sont des substitutions valides pour leur caractère primaire :
| Primaire | Digramme | Trigramme |
|---|---|---|
{ |
<% |
??<
|
None} |
%> |
??>
|
[ |
<: |
??(
|
] |
:> |
??)
|
# |
%: |
??=
|
\ |
??/
| |
^ |
??'
| |
| |
??!
| |
~ |
??-
|
Mots-clés
and, and_eq, bitand, bitor, compl, not, not_eq, or, or_eq, xor, xor_eq
Exemple
L'exemple suivant illustre l'utilisation de plusieurs mots-clés alternatifs :
%:include <iostream>
int main(int argc, char *argv<::>)
<%
if (argc > 1 and argv<:1:> not_eq '\0') <%
std::cout << "Hello " << argv<:1:> << '\n';
%>
%>