Theo cppreference, hàm acosl
phải nằm trong không gian tên std: https://en.cppreference.com/w/cpp/numeric/math/acos
Tuy nhiên, với gcc (hoặc clang), mã bên dưới không biên dịch:
#include <cmath>
int main()
{
long double var = std::acosl(4.0);
return 0;
}
Tôi nhận được thông báo lỗi sau:
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
Tôi đang thiếu gì? Có phải tôi đang đọc sai cppreference?
acosl
không std::
thành công
acosl(4.0)
và std::acos(4.0l)
làm việc. Ngoài ra, thêm -stdlib=libc++
làm cho std::acosl(4.0)
công việc trong Clang.