GCC 4.5 agregó soporte para los puntos flotantes decimales en la biblioteca de tiempo de ejecución (http://gcc.gnu.org/gcc-4.5/changes.html). Puedo compilar código incluyendo, usando namespace std :: decimal, luego usando decimal64 y demás en el código.Cómo usar punto flotante decimal en Gnu C++ (g ++)?
Desafortunadamente, me falta una biblioteca para vincular el código. No he podido averiguar qué bibliotecas deberían ser necesarias. El soporte de DFP está habilitado en gcc (--enable-decimal-float = dpd)
Además, ¿debería haber alguna forma rápida de proporcionar literales decimales en el código? Por rápido, me refiero a literales definidos por el usuario que son manejados por plantillas y traducidos en tiempo de compilación. No quiero proporcionar dobles que se conviertan en tiempo de ejecución (a pesar del rendimiento y el hecho de que realmente no soporto mover las evaluaciones desde el tiempo de compilación al tiempo de ejecución todavía hay problemas de redondeo ...). Ya encontré el sufijo "df" pero eso no parece ser reconocido por el compilador.
Estoy usando gcc versión 4.7.1 en el objetivo powerpc-ibm-aix7.1.0.0.
mensajes de error del vinculador:
ld: 0711-317 ERROR: Undefined symbol: .__dpd_floatsisd
ld: 0711-317 ERROR: Undefined symbol: .__dpd_floatsidd
ld: 0711-317 ERROR: Undefined symbol: .__dpd_floatsitd
ld: 0711-317 ERROR: Undefined symbol: .__dpd_mulsd3
ld: 0711-317 ERROR: Undefined symbol: .__dpd_muldd3
ld: 0711-317 ERROR: Undefined symbol: .__dpd_multd3
ld: 0711-317 ERROR: Undefined symbol: .__dpd_floatdisd
ld: 0711-317 ERROR: Undefined symbol: .__dpd_floatunsdisd
ld: 0711-317 ERROR: Undefined symbol: .__dpd_floatdidd
ld: 0711-317 ERROR: Undefined symbol: .__dpd_floatunsdidd
ld: 0711-317 ERROR: Undefined symbol: .__dpd_floatditd
ld: 0711-317 ERROR: Undefined symbol: .__dpd_floatunsditd
TIA.
El sufijo literal para '_Decimal64' es' dd' ('df' es para' _Decimal32'), pero eso no explica que el compilador no reconozca lo último (sin mencionar las rutinas DPD). ¿Intentó pasar '--enable-version-specific-runtime-libs' al compilador? –
¿Realmente quiso decir pasar esa opción al compilador? No es reconocido. "g ++ -v" muestra que el compilador en sí está configurado con la opción mencionada. – user1034081