好的,所以我有

tmp.cpp:

#include <string>

int main()
{
    std::to_string(0);
    return 0;
}

但是当我尝试编译时我得到:

$ g++ tmp.cpp -o tmp
tmp.cpp: In function 'int main()':
tmp.cpp:5:5: error: 'to_string' is not a member of 'std'
     std::to_string(0);
     ^

我正在运行 g 版本 4.8.1。不是使用 MinGW,我使用的是 Linux (3.11.2)。

有什么想法为什么会发生这种情况吗?

答案

你可能想指定 C 版本

g++ -std=c++11 tmp.cpp -o tmp

我手头没有 gcc 4.8.1 ,但在旧版本的 GCC 中,您可以使用

g++ -std=c++0x tmp.cpp -o tmp

至少 gcc 4.9.2 我相信也通过指定支持 C 14 的一部分

g++ -std=c++1y tmp.cpp -o tmp

更新:gcc 5.3.0(我使用的是cygwin版本)同时支持-std=c++14-std=c++17现在。

来自: stackoverflow.com