Wat is de betekenis van `???-` in C++-code?

Ik zag de volgende code van enkele oude codes:

size_t a = 1 ???- 2 :0;

Wat betekent het symbool ???-in C++? Hoe moet ik het begrijpen?


Antwoord 1, autoriteit 100%

Het is eigenlijk:

size_t a = 1 ? ~2 :0;

??-is een trigraphvoor ~


Trigrafieën stammen uit een oud tijdperk… voordat sommigen van ons zelfs maar geboren waren.

Vroeger waren er enkele tekens die niet altijd werden ondersteund. Een onwetende programmeur zou proberen zo’n teken in te typen om te ontdekken dat het niet op het toetsenbord bestaat!


Beeldbron: http://www.myoldmac.net/cgi-data/forum/phpBB2/viewtopic.php ?t=305

Dus trigraphs werden toegevoegd om de programmeur toegang te geven tot de functionaliteit van deze karakters wanneer ze niet bestonden (in de codering of via het toetsenbord).

Tegenwoordig zijn ze verouderd en zijn ze effectiever in het verwarren van de lezer dan in het omzeilen van oude normen.

Dus of die code is echt oud, of de auteur was een eikel.


Antwoord 2, autoriteit 14%

??-is een trigraaf voor het tilde ~-teken; de regel is gelijk aan:

size_t a = 1 ? ~2 :0;

Antwoord 3, autoriteit 7%

??-is een trigraph voor ~karakter. Enkele andere trigraphs zijn:

??= for #
??/ for \
??' for ^
??! for |

Het gebruik van trigraphs is nu zeer zeldzaam.

Other episodes