2012-06-28 16 views
5

¿Cuál es el propósito de las siguientes palabras clave?¿Cuál es el propósito de las palabras clave 'y', 'o', etc. en C++?

and  bitand compl not_eq or_eq xor_eq 
and_eq bitor not  or  xor 

Si todo lo que son es un equivalente directo de:

&&  &  ~  !=  |=  ^= 
&=  |  !  ||  ^
+2

No todos los teclados tienen '&', '~', '|', etc. llaves. – ildjarn

+1

Ver [iso646.h] (http://en.wikipedia.org/wiki/Iso646.h) –

+3

@Matt: aunque he sorprendido a algunos compañeros de trabajo, generalmente prefiero 'no' a'! '. '!' es casi invisible, 'not' (que requiere un espacio después) se destaca. –

Respuesta

13

http://en.wikipedia.org/wiki/Iso646.h

iso646.h " ... define una serie de macros que permiten a los programadores utilizar bit a bit lenguaje C y operadores lógicos, que, sin el archivo de encabezado, no se pueden escribir rápida o fácilmente en algunos teclados internacionales y no QWERTY.

El nombre de archivo hace referencia al estándar ISO646, un conjunto de caracteres de 7 bits con varias variaciones regionales, algunas de las cuales tienen caracteres acentuados en lugar de los signos de puntuación utilizados por los operadores C. "

+6

Y en C++ estos no son macros, sino "tokens alternativos", y no es necesario que incluya iso646.h. – bames53

+1

... pero es una solución retardada ya que aún no puede programar C++ sin los caracteres &, ~ y | incluso con estos tokens alternativos. –

+0

@RafaelBaptista Sí, puede. 'int const bitand answer = 42;' es una declaración de variable válida. –

7

Su para que pueda escribir poemas código locas como:

class jack 
{ 
    jack(); 
    jack(jack & jill); 
    jack& came_tumbling(int after); 
    jack& fell(jack & jill); 
    jack& operator &= (jack & jill); 
    jack& operator & (jack & jill); 
} 

void to_fetch(int pail); 

int a_pail; 
int after; 
jack broke_his_crown; 
jack went_up_the_hill; 
jack down; 

jack and jill = went_up_the_hill; 
to_fetch(a_pail); // of water 
jack fell(down and broke_his_crown 
and jill.came_tumbling(after)); 
+0

Los poemas que escribiría no son exactamente apropiados para incluirlos en nuestro repositorio de código;) –

+0

Todos esperamos que en C++ 12 agregarán un token para Nantucket –

+1

El único problema con este fragmento es que el 'y' es equivalente a' && ', no' & '...: P – Griwes

Cuestiones relacionadas