Кажется, это ошибка libstdc ++.
cmath
в libstdc ++ не просто переносит #include <math.h>
в namespace std
: она определяет новые функции, которые делегируются встроенным модулям. Я думаю, что определение хочет добавить к этот исходный код . Вероятно, это было просто упущением, когда C ++ 11 (через C99) представил эту функцию. (Хотя обратите внимание, что перегрузка acos(long double __x)
делегирует __builtin_acosl
!)
В Clang переключение на libc ++ решает проблему. С libstdc ++ также должна работать глобальная версия пространства имен acosl
.
Вы должны поднять ошибку . Я думаю, что она покрыта bug # 79700 .