c++ fab (long double)编译器警告
absolute value - C++ fabs(long double) compiler warning
我想知道一个long double
的绝对值
根据<cmath>
或<math.h>
,有以下选项:
double fabs (double x);
float fabs (float x);
long double fabs (long double x);
但是,在执行long double ld = fabs(static_cast<long double>(0));
时,我得到以下警告(LLVM 7.1):
Absolute value function 'fabs' given an argument of type 'long double' but has parameter of type 'double' which may cause truncation of value
如何来吗?
还有哪些方法可以获得long double
的绝对值?
std::abs
最终完成了任务。然而,std::fabs
没有。正如在评论中指出的,这可能是由于不符合标准的实现。
根据cppreference http://en.cppreference.com/w/c/numeric/math/fabs和http://en.cppreference.com/w/cpp/numeric/math/fabs,全局命名空间中的fabs
的C版本只接受double
参数,您需要使用fabsl
。然而,std::fabs
或std::abs
应该有适当的long double
重载。
相关文章:
- 如何修复编译器警告 C6386 和 C6385?
- 编译器警告:执行到达值返回函数的末尾而不返回值
- 为什么布尔开关语句有编译器警告?
- 使用 reverse_iterator 而不是const_reverse_iterator并获得讨厌的编译器警告和错误
- 来自 std::chrono 的编译器警告,但未被使用
- 警告级别为 3 的 int 的 std::vector push_back 处的编译器警告
- 有没有办法在从临时返回按值string_view时获得编译器警告?
- 常量更改而不const_cast<> 为什么没有编译器警告/错误?
- C++ 添加编译器警告,以错误使用自定义打印/日志功能
- 我正在尝试在我的类中创建一个静态成员,但编译器警告我它是未定义的
- 是否可以将移动的变量标记为不再可用,并在使用它时收到编译器警告?
- 为什么我应该始终启用编译器警告
- 对列表类中的泛型方法禁用编译器警告 2100,该泛型方法可能包含指针,也可能不包含指针
- C++ 如何禁用具有不同符号变量比较的特定行的编译器警告?
- CMake:如何将每个资源编译器警告视为错误并抑制特定警告?
- 为什么方法重载或枚举标志定义会触发 gcc7.2 编译器警告?
- 违反严格别名并不总是会产生编译器警告
- (如何)获取有关某个 C++Year 的已弃用/不推荐的功能/构造的编译器警告
- 使用 VS 2015 的编译器警告 4456
- 在嵌套名称说明符中使用枚举(编译器警告)