2015-10-09 13 views
5

Mentre cerca per la lista operatore del C++ su Wikipedia, ho trovato un articolo su operator synonyms:Perché il C++ ha bisogno di sinonimi di operatore?

linguaggio C++ definisce [6] parole chiave per agire come alias per un certo numero di operatori: e (& &), BITAND (&), and_eq (& =), o (||), bitor (|), o_eq (| =), xor (^), xor_eq (^ =), non (!), Not_eq (! =) E compl (~). Questi possono essere utilizzati esattamente allo stesso modo dei simboli di punteggiatura che sostituiscono, poiché non sono lo stesso operatore con un nome diverso, ma piuttosto sostituzioni di token semplici per il nome (stringa di caratteri) del rispettivo operatore. Ciò significa che le espressioni (a> 0 e flag) e (a> 0 & flag) hanno significati identici. Significa anche che, ad esempio, la parola chiave bitand può essere utilizzata per sostituire non solo l'operatore bitwise e l'operatore address-of, ma può anche essere usato per specificare i tipi di riferimento (ad esempio, int bitand ref = n) . Le specifiche ISO C tengono conto di queste parole chiave come macro del preprocessore nel file di intestazione iso646.h. Per compatibilità con C, C++ fornisce l'intestazione ciso646, l'inclusione di cui non ha alcun effetto.

Poi mi chiedo: Perché abbiamo bisogno di questi operator synonyms? Sarebbe bello se qualcuno fornisse un caso d'uso.

+5

Possibilmente per soddisfare le persone che usano tastiere che non hanno quei simboli nel loro layout standard. – SBI

+0

Beh, per uno posso essere davvero esplicito che intendevo per bit a bit o invece per logica o! – AndyG

risposta

Problemi correlati