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 usarstd::min
ystd::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).