write tag moz img images how for example description alternative c gcc max min

c - moz - seo image alt tag example



Extensión C:<? y>? operadores (2)

Las iteraciones anteriores de g++ ( no el compilador de C) utilizaban estos operadores para proporcionarle los valores mínimos o máximos, pero hace tiempo que han quedado en desuso en favor de std::min y std::max .

Básicamente, se equipararon a (pero sin la posibilidad de una doble evaluación de b ):

a <? b --> (a < b) ? a : b a >? b --> (a > b) ? a : b

En términos de reemplazarlos (y realmente debe reemplazarlos), puede usar algo como:

Offset block_count = cpfs->geo.block_size - block_offset; if (block_count > count) block_count = count;

o equivalentes usando std::min .

No soy un gran admirador de usar "extensiones" de C / C ++ (especialmente aquellas que han sido obsoletas o eliminadas) ya que me vinculan a una implementación específica del lenguaje.

Nunca debe usar una extensión no estándar donde esté disponible un método estándar perfectamente adecuado.

Observé que hubo en algún momento un <? y >? operador en GCC. ¿Cómo puedo usar estos bajo GCC 4.5? Han sido eliminados, y si es así, ¿cuándo?

Offset block_count = (cpfs->geo.block_size - block_offset) <? count; cpfs.c:473: error: expected expression before ‘?’ token


Manuales recientes say :

Los operadores mínimo y máximo de G ++ ('' <? '' Y '' >? '') Y sus formas compuestas ('' <?= '') Y '' >?= '') Han quedado en desuso y ahora se eliminan de G ++. El código que utiliza estos operadores debe modificarse para usar std::min y std::max lugar.

Una búsqueda rápida de los documentos anteriores parece indicar que se eliminaron en la versión 4.0 (3.4.6 los incluye, 4.0.4 no).