我正在尝试编译此example code
#include <iostream> // std::cout
#include <string> // std::string, std::stod
int main ()
{
std::string orbits ("365.24 29.53");
std::string::size_type sz; // alias of size_t
double earth = std::stod (orbits,&sz);
double moon = std::stod (orbits.substr(sz));
std::cout << "The moon completes " << (earth/moon) << " orbits per Earth year.\n";
return 0;
}
尝试从命令提示符编译
C:\Users\DWane\Documents>g++ -std=c++0x testme.cpp -o out.exe
testme.cpp: In function 'int main()':
testme.cpp:9:18: error: 'stod' is not a member of 'std'
double earth = std::stod (orbits,&sz);
^
testme.cpp:10:17: error: 'stod' is not a member of 'std'
double moon = std::stod (orbits.substr(sz));
^
我正在运行Windows 8 64位并拥有g ++(GCC)4.8.3。
答案 0 :(得分:2)
简短的回答是,它是Cygwin的GCC(或libstdc ++)端口中的一个错误。我可以在Cygwin邮件列表上找到的唯一消息来自Jan 29, 2014,它只是说:
你是否在mingw下尝试了同样问题的建议?它看起来 像这样可能是一个临时的解决方法,直到问题得到解决。 只需制作
确定你试试吧 /lib/gcc/i686-pc-cygwin/4.8.2/include/c++/bits/basic_string.h if 你正在为Cygwin建造..
MinGW也知道字符串转换函数存在问题,尽管它与Cygwin不同。我的建议是下载Stephan T. Lavavej的64-bit MinGW distribution,它带有GCC 4.9.1和许多最新的软件包。