如果我告诉你我不能编译这段代码,我想这是很尴尬的。你能帮我一下吗:
#include<memory>
using namespace std;
int main()
{
std::unique_ptr<int> p1(new int(5));
return 0;
}
$ gcc main.cpp
main.cpp: In function ‘int main()’:
main.cpp:6:2: error: ‘unique_ptr’ was not declared in this scope
main.cpp:6:13: error: expected primary-expression before ‘int’
main.cpp:6:13: error: expected ‘;’ before ‘int’
$ gcc --version
gcc (Ubuntu/Linaro 4.6.1-9ubuntu3) 4.6.1
发布于 2012-03-19 15:48:54
这只是一个猜测。
你很可能是这样编译你的程序的(或者类似的):
g++ main.cpp
如果您这样做了,那么问题是g++使用c++03作为默认值。要使用c++11功能(和std::unique_ptr
),您需要使用较新版本的c++:
g++ -std=c++11
或
g++ -std=c++14
我建议您也使用-Wall -Wextra -pedantic
。
https://stackoverflow.com/questions/9766568
复制相似问题