- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
似乎gcc(试过7.2.0和5.4.0)没有std::expf和 std::logf - 见coliru sample .由于 cppreference 说它们是在 C++11 中添加的,是否有一些我缺少的特定于 gcc 的宏,或者它们通常在 gcc 中丢失?
最佳答案
这是 libstdc++ 中的一个错误,它随 GCC 一起提供。它不完全符合 C++17 ( as of v9.1.0 in June 2019 )。 <cmath>
版本版权声明Ubuntu 默认使用的说它上次更新是在 2016 年。版本 9.1.0 确实有 #if __cplusplus > 201402L
部分,但它没有声明 C++17 所需的标识符。 There is an open bug report.
它从不声明 expf
或 logf
(也不是 cosf
、 sinf
等)在 std::
中命名空间,即使 C++17 says it shall. C++11 standard说,“在 C 中定义为函数的名称应在 C++ 标准库中定义为函数,”和“标准 C 库中使用外部链接声明的每个名称都保留给实现以用作名称 extern "C"
联动,均在 namespace std
并在全局命名空间中。”然而,std::expf
等。 <cmath>
提供的函数表中缺少直到 P0175r1 in June 2016.这显然是一个疏忽,但 GCC 一直让它们只在全局命名空间中可用。
libc++库确实声明了它们,因此使用 clang++ -std=c++17 -stdlib=libc++
进行编译应该管用。您也可以 #include <math.h>
在全局命名空间中使用它们,或使用重载 exp()
, log()
等关于浮点参数。
关于c++11 - gcc 7.2.0 无法识别 std::expf 和 std::logf,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55458487/
我有一个小问题。我有一个 C 文件和一个汇编文件。 C 代码如下: #include #include #include #include #include #include void p
cuda中exp函数如何优化? CUDA中的以下内容有什么区别?? exp() expf() __expf() 最佳答案 CUDA C Programming Guide 中解释了这
似乎gcc(试过7.2.0和5.4.0)没有std::expf和 std::logf - 见coliru sample .由于 cppreference 说它们是在 C++11 中添加的,是否有一些我
我是一名优秀的程序员,十分优秀!