significado de'???- 'en código C++ [duplicado]


Esta pregunta ya tiene una respuesta aquí:

Vi el siguiente código de algunos códigos heredados:

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

¿Qué significa el símbolo ???- en C++? ¿Cómo debería entenderlo?

¡Gracias!

Author: Daniel Daranas, 2013-05-21

3 answers

En realidad es:

size_t a = 1 ? ~2 :0;

??- es un trigraph para ~


Los trigraphs son de una era antigua... antes de que algunos de nosotros naciéramos.

En aquellos días, había algunos personajes que no siempre eran compatibles. Un programador desconocido intentaría escribir un carácter de este tipo solo para encontrar que no existe en el teclado!

introduzca la descripción de la imagen aquí
Fuente De La Imagen: http://www.myoldmac.net/cgi-data/forum/phpBB2/viewtopic.php?t=305

Así que se agregaron trigraphs para permitir al programador acceder a la funcionalidad de estos caracteres cuando no existían (ya sea en la codificación o desde el teclado).

Hoy en día, son obsoletos y son más eficaces para confundir al lector que para sortear los viejos estándares.

Entonces, o ese código es muy antiguo, o el autor estaba siendo un idiota.

 98
Author: Mysticial,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2013-05-21 09:29:59

??- es un trigráfico para el carácter tilde ~; la línea es equivalente a:

size_t a = 1 ? ~2 :0;
 14
Author: ,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2013-05-21 04:45:04

??- es un trigráfico para el carácter ~. Algunos otros trigraphs son:

 ??= for #

??/ for \

??' for ^

??! for |

El uso de trigraphs es muy raro ahora.

 6
Author: CodeRider,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2013-05-24 15:01:00