2015-10-09 18 views
5

Patrząc na listę operatorów C++ na Wikipedii znalazłem artykuł o operator synonyms:Dlaczego C++ potrzebuje synonimów operatora?

C++ definiuje [6] słowo aby działać jako aliasy dla kilku operatorów a (& &) bitand (&), and_eq (& =) lub (||), bitor (|), lub_eq (| =), xor (^), xor_eq (^ =), nie (!), Not_eq (! =) I komplement (~). Mogą one być używane dokładnie tak samo jak symbole interpunkcyjne, które zastępują, ponieważ nie są one tym samym operatorem pod inną nazwą, ale raczej prostymi zamiennikami tokenów dla nazwy (łańcucha znaków) danego operatora. Oznacza to, że wyrażenia (a> 0 i flaga) i (a> 0 & &) mają identyczne znaczenie. Znaczy to również, że na przykład bit i słowo kluczowe mogą być użyte do zastąpienia nie tylko operatora bitowego i operatora, ale także operatora adresu, a można go nawet użyć do określenia typów referencji (np. Int bit i ref = n) . Specyfikacja ISO C uwzględnia te słowa kluczowe jako makra preprocesora w pliku nagłówkowym iso646.h. Dla kompatybilności z C, C++ dostarcza nagłówek ciso646, którego włączenie nie ma żadnego efektu.

Następnie zastanawiam się: Dlaczego potrzebujemy tych operator synonyms? Byłoby miło, gdyby ktoś podał jakiś przypadek użycia.

+5

Możliwe, że zaspokajają potrzeby osób używających klawiatur, które nie mają tych symboli w standardowym układzie. – SBI

+0

Cóż, dla jednego mogę być naprawdę wyraźny, że mam na myśli bitowe lub zamiast logiczne lub! – AndyG

Odpowiedz