我正在尝试编译这段代码:
#include <cmath>
double gravity (double level) {
return 0.02 * std::round(level);
}
但是 GCC 告诉我:
error: 'round' is not a member of 'std'
我知道我之前在 ISO C++98 中多次使用过 round
函数。不同寻常的是,round
和 ::round
都可以工作。
什么给了?
更新:我正在使用 g++ -std=c++98 -Wall -pedantic
进行编译。
切换到 std=c++0x
有效。
但是,如果 std::round
不起作用,为什么非限定/匿名 round
和 ::round
都可以工作?
最佳答案
std::round
函数是 C++11,因此您需要使用 C++11 或启用的更新标准进行编译。
关于c++ - 'round' 不是 'std' 的成员,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12696764/