从specs https://en.cppreference.com/w/cpp/numeric/math/atan来看,似乎std::atanf
存在于C++11上,但在godbolt上,它说'atanf'不是'std'的成员:
#include <iostream>
#include <cmath>
int main()
{
float sampleOverLoaded = 200.0f;
float outputAtan = atanf(sampleOverLoaded);
float outputAtanStd = std::atanf(sampleOverLoaded);
std::cout << outputAtan << std::endl;
std::cout << outputAtanStd << std::endl;
}
字符串
怎么了?注意我不想用atanhf。
1条答案
按热度按时间r8uurelv1#
这是一个长期存在的bug,已于2023年11月为GCC14解决。请参见**GCC Bug 79700 -
std::fabsf
andstd::fabsl
missing from<cmath>
**。std::atanf
在C++11标准中,但在过去的12年左右没有人费心添加它。有些人也认为它不应该存在(更多讨论请参见链接的bug)。暂时使用
std::atan
。这是一个重载函数,它接受float
,double
和long double
:个字符