De acordo com cppreference, a função acosl
deve estar no namespace std: https://en.cppreference.com/w/cpp/numeric/math/acos
No entanto, com o gcc (ou clang), o código abaixo não compila:
#include <cmath>
int main()
{
long double var = std::acosl(4.0);
return 0;
}
Eu recebi a seguinte mensagem de erro:
gay@latitude-7490:~$ g++ -std=c++11 test.cpp
test.cpp: In function 'int main()':
test.cpp:5:26: error: 'acosl' is not a member of 'std'; did you mean 'acosh'?
5 | long double truc = std::acosl( (long double)4.0);
| ^~~~~
| acosh
O que estou perdendo ? Estou interpretando mal a preferência?
acosl
sem std::
sucesso.
acosl(4.0)
e std::acos(4.0l)
fazer o trabalho. Além disso, adicionar -stdlib=libc++
faz std::acosl(4.0)
funcionar em Clang.