【发布时间】:2016-06-26 00:34:10
【问题描述】:
我的代码:
#include <iostream>
#include <string>
int main()
{
std::string test = "45";
int myint = std::stoi(test);
std::cout << myint << '\n';
}
给我编译错误:
error: 'stoi' is not a member of 'std'
int myint = std::stoi(test);
^
但是,根据here,这段代码应该可以正常编译。我在CMakeLists.txt 文件中使用set(CMAKE_CXX_FLAGS "-std=c++11 -O3") 行。
为什么不编译?
更新:我正在使用 gcc,并运行 gcc --version 打印输出:
gcc (Ubuntu 5.2.1-22ubuntu2) 5.2.1 20151010
【问题讨论】:
-
您没有指定您使用的编译器版本。
-
@CaptainObvlious,我使用的是 gcc 版本 5.2.1
-
在 Fedora 24 上使用 gcc 6.1.1 编译没有问题。
-
@Karnivaurus 首先,
gcc是 C 编译器,而不是 C++ 编译器。g++是 C++ 编译器,因此您应该确保使用正确的编译器进行编译。
标签: c++