gpt4 book ai didi

c++ - cygwin 在 g++4.9.2 中支持 C++11

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:39:01 25 4
gpt4 key购买 nike

我正在尝试在 Windows 7 下的 cygwin 下测试一些 C++11 代码,并且遇到以 C++11 开头定义的函数的编译错误,例如 std::log2std::round。我正在编译 g++ -std=c++11 test.cpp,使用 gcc 4.9.2。这是一些无法编译的最小示例:

#include <cmath>
#include <iostream>

int main()
{
auto x = std::log2(10);
std::cout << x << std::endl;
}

错误:

g++ -std=c++11 test.cpp
test.cpp: In function ‘int main()’:
test.cpp:5:11: error: ‘log2’ is not a member of ‘std’
auto x = std::log2(10);
^
test.cpp:5:11: note: suggested alternative:
In file included from /usr/lib/gcc/i686-pc-cygwin/4.9.2/include/c++/cmath:44:0,
from test.cpp:1:
/usr/include/math.h:305:15: note: ‘log2’
extern double log2 _PARAMS((double));

这是 cygwin 的 g++ 移植中的已知错误吗?上面的代码在任何支持 C++11 的 Linux/UNIX 风格上都能正常工作。

最佳答案

问题似乎是 bug与 cygwin 实现相关,感谢 Shafik Yaghmour 指出。

此问题现已通过 <cmath> 的补丁修复,也在上面提供的链接中。

关于c++ - cygwin 在 g++4.9.2 中支持 C++11,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28997206/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com