解决g++编译添加参数"支持C++11标准"的问题

来源:互联网 发布:mysql server 5.5安装 编辑:程序博客网 时间:2024/05/23 05:09

今天编写了关于智能指针的一个程序,使用g++ smrtptrs.cpp -o t时,编译不过,最终发现是忘记加command line option的问题。

首先

代码如下

#include <iostream>#include <string>#include <memory>using namespace std;class Report{public:    Report(const std::string s):str(s)    {        cout<<"Object created"<<endl;    }    ~Report()    {        cout<<"Object deleted"<<endl;    }    void comment()const    {        cout<<str<<endl;    }private:    std::string str;};int main(int argc, char* const argv[]){    {        std::auto_ptr<Report> ps(new Report("using auto_ptr"));        ps->comment();    }    {        std::shared_ptr<Report> ps(new Report("using shared_ptr"));        ps->comment();    }    {        std::unique_ptr<Report> ps(new Report("using unique_ptr"));        ps->comment();    }    return 0;}

其次

需要知道c++11标准在gcc版本在4.7以及之上才支持

最后

正确的编译方法是

gcc smrtptr.cpp -o t -std=c++11

问题解决。
感谢http://www.crifan.com/figure_out_which_version_gcc_support_c11/
提供灵感

阅读全文
1 0
原创粉丝点击