【发布时间】:2019-08-22 19:38:12
【问题描述】:
似乎 gcc(已尝试 7.2.0 和 5.4.0)没有 std::expf 和 std::logf - 请参阅 coliru sample。由于 cppreference 说它们是在 C++11 中添加的,是否有一些我缺少的 gcc 特定宏或者它们通常在 gcc 中缺少?
【问题讨论】:
-
你的 g++ 命令行是什么?你需要添加
-std=c++11来启用c++11 -
@Nidhoegger 我的机器上确实有标志,但没有将它们添加到 coliru,修复了示例,但标志并没有解决这个问题,因为我从一开始就拥有它们。
-
an open bug report on this 已经两年了。 C++17 标准要求
<cmath>声明std::expf、std::logf等,但 libstdc++ 不符合要求(截至 2019 年 6 月)。见here. -
libc++ 实现确实正确地声明了标识符,所以
clang++ -std=c++17 -stdlib=libc++应该可以工作。