[eside-ghost] Pregunta de Kung Fu C++
Jon Valdés
juanval en gmail.com
Vie Mayo 30 09:55:57 CEST 2008
2008/5/30 Alfredo Beaumont <alfredo.beaumont en gmail.com>:
> Or, 2008eko Mairen 30a(e)an, STenyaK (Bruno Gonzalez)(e)k idatzi zuen:
>> On 5/29/08, Jon Valdés <juanval en gmail.com> wrote:
>> > ret <?= X*sneakTime + (Y-X)*walkTime;
>>
>> Me he pateao las secciones relevantes del stroutup, y no hay nada. Por
>> la web de msdn tp veo nada (q raro, con lo que les gusta rajas los
>> estándares..).
>>
>> Sin embargo, un colega guru de c++ me dice que lo ha visto en más de
>> una ocasión, que le suena que sea alguna movida de preprocesado de
>> g++, alguna abreviatura de MAX y MIN.
>>
>> Y en efecto, al buscar en el manual de gcc 4.3.0 (
>> http://gcc.gnu.org/onlinedocs ), se puede leer que...:
>> The G++ minimum and maximum operators ('<?'€and '>?') and their
>> compound forms ('<?=') and '>?=') have been deprecated and are now
>> removed from G++. Code using these operators should be modified to use
>> std::min and std::max instead.
>>
>> Con lo que ahí lo tienes, el compilador GNU subvirtiendo los
>> estándares, sin siquiera avisar en modo megapedántico -Wall -ansi
>> -pedantic!
>
> Efectivamente es una extensión, si encuentras cosas de estas, lo mejor es
> intentar simplificar la sintáxis:
Vaya, una pena que estas cosas no sean parte del standard. La verdad
es que ahorra bastante tiempo. Y si no, compara la linea original:
ret <?= X*sneakTime + (Y-X)*walkTime;
con la linea con la que has acabado después de pasarlo a sintaxis standard :-S
ret = (ret < (X*sneakTime + (Y-X)*walkTime)) ? ret : (X*sneakTime +
(Y-X)*walkTime)
Muchas gracias por la info a los dos :-)
Taluegooooo
Más información sobre la lista de distribución eside-ghost