Статус tgmath.h с точки зрения переносимости между компиляторами C, C++
Я реализую DSL с помощью компилятора, который транслирует его на C. Наш код автономен: мы предоставляем пользователям только одну основную точку входа (т. е.
Нашей основной целью является C99, но некоторые люди используют компилятор arduino для кода, который мы производим, поэтому предпочтительна максимальная переносимость между стандартами и компиляторами.
Я вижу, что C99
Чтобы избежать потери точности, наш переводчик может, основываясь на типах аргументов, выбрать один из этих вариантов. Однако все поддерживаемые нами функции также определяются с помощью , поэтому более простым способом было бы использовать стандартное имя для каждой (например,
Я читал в Интернете, что мнения и поддержка неоднозначны. Некоторые говорят, что это уродливо и что не все компиляторы его поддерживают.
полагается на
1 ответ
Компилятор , совместимый с C99 (страницы 165 и 335 в стандарте), будет включатьтак полагаясь на
tgmath.h
в порядке. Это стандартный заголовок начиная с C99.