В GCC 4.5 добавлена поддержка десятичных чисел с плавающей запятой в библиотеке времени выполнения (http://gcc.gnu.org/gcc-4.5/changes.html).. Я могу скомпилировать код, в том числе, используя пространство имен std ::decimal, затем используя decimal64 и так далее в коде.
К сожалению, мне не хватает какой-то библиотеки для компоновки кода. Я не смог выяснить, какие библиотеки должны быть необходимы. Поддержка DFP включена в gcc (--enable -decimal -float=dpd)
Кроме того, должен ли быть какой-то быстрый способ предоставления десятичных литералов в коде? Под быстрым я подразумеваю определяемые пользователем литералы, которые обрабатываются шаблонами и транслируются во время компиляции. Я не хочу предоставлять двойные числа, которые преобразуются во время выполнения (, несмотря на производительность и тот факт, что я действительно не могу переносить оценки из времени компиляции во время выполнения, по-прежнему возникают проблемы с округлением... ). Я уже нашел суффикс "df", но, похоже, компилятор его не распознает.
Я использую gcc версии 4.7.1 на целевом powerpc -ibm -aix7.1.0.0.
Сообщения об ошибках компоновщика:
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
ТИА.