TLDR: ¿Cómo puedo llamar al código de coma flotante estándar de manera que compila tanto CGFloats de 32 como de 64 bit sin advertencias?CGFloat: redondo, piso, abs y precisión de 32/64 bit
CGFloat se define como dobles o flotador, dependiendo de la configuración del compilador y la plataforma. Intento escribir código que funcione bien en ambas situaciones, sin generar muchas advertencias.
Cuando uso funciones como floor, abs, ceil y otras operaciones simples de coma flotante, recibo advertencias sobre la truncación de valores. Por ejemplo:
advertencia: conversión implícita acorta valor de 64 bits en un valor de 32 bits
No estoy preocupado por la corrección o la pérdida de precisión en los cálculos, ya que soy consciente de que me solo podría usar las versiones de doble precisión de todas las funciones todo el tiempo (piso en lugar de piso, etc.); Sin embargo, tendría que tolerar estos errores.
¿Existe alguna manera de escribir código que admita tanto flotantes de 32 bits como de 64 bits sin tener que usar una gran cantidad de #ifdef__PL64__ o escribir funciones de envoltura para todas las funciones de coma flotante estándar?
Ahora que sé qué buscar, encontré esta pregunta: http://stackoverflow.com/questions/ 5352457/cgfloat-based-math-functions – leecbaker
Tenga en cuenta que en Xcode 6.1, incluir tgmath no ayuda si los módulos están habilitados. Ver http://stackoverflow.com/q/23333287/449161 –