Reemplazo para `fabs`,` fmax`, etc. para usar con CGFloat en dispositivos iOS de 64 bits

Pregunta

Considere el código de diseño como este:

CGFloat descriptionHeight = // height of a paragraph of text with zero or more words;
CGFloat imageHeight = // height of an image;
CGFloat yCoordinateOfSomeOtherView = fmax(descriptionHeight, imageHeight) + 5.0f;

¿Cómo debería reescribirse la tercera línea con soporte para dispositivos iOS de 64 bits?

(El código actual no tiene en cuenta siyCoordinateOfSomeOtherView es unfloat o undouble.)

Opciones

Algunas opciones (no estoy seguro de cuál es la mejor):

1. Definir mi propia macro
#if defined(__LP64__) && __LP64__
#define cgfmax(x,y) fmaxf(x,y)
#else
#define cgfmax(x,y) fmax(x,y)
#endif

Entonces podría reemplazarfmax concgfmax.

2. Utilicetgmath.h

Esta respuesta de desbordamiento de pila a partir de 2011 sugiere reemplazarmath.h contgmath.h. Esto reemplaza la implementación defmax con uno que llama__typeof__ en cada argumento y devuelve cualquierafmax ofmaxf Dependiendo de los tipos de argumento.

3. Ignora este problema

Dado que CGFloats se relaciona con el diseño, la pérdida de datos potencialmente incurrida en el almacenamiento de unfloat en unadouble Por lo general será insignificante. Es decir, representarán pequeñas fracciones de píxeles.

Resumen

Estoy buscando otras opciones o consejos útiles de alguien que haya hecho una transición de 32 bits a 64 bits anteriormente.

Respuestas a la pregunta(1)

Su respuesta a la pregunta