unique_ptr编译错误

unique_ptr compile error

本文关键字:错误 编译 ptr unique      更新时间:2023-10-16

如果我告诉你我无法编译它,我想这会很尴尬。你能帮我吗:

#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

这只是猜测。

很可能你是这样(或类似)编译程序的:

g++ main.cpp

如果你这样做了,那么问题是g++使用c++03作为默认值。要使用c++11功能(和std::unique_ptr),您需要使用较新版本的c++:

g++ -std=c++11

g++ -std=c++14

并且我建议也使用CCD_ 2。

如果您正在使用代码::块,请转到设置>编译器>全局编译器设置>编译器设置,查找让g++遵循C++11 ISO C++语言标准[-std=c++11]并检查它!

代码::块将在编译时为您添加-std=c++11