码迷,mamicode.com
首页 > 编程语言 > 详细

c++ g++3.4.5 g++4.8.2 由编译器引起的编译异常

时间:2015-09-08 23:27:51      阅读:272      评论:0      收藏:0      [点我收藏+]

标签:

#include <memory>
#include <string>
#include <iostream>

class Student {
public:
    Student(std::string& name) {
        _name = name;
    }
    ~Student(){
    }

    void printName(){
        std::cout << _name << std::endl;
    }


private:
    std::string _name;
};
    

int main() {
    std::string name = "xiaowang";
    std::unique_ptr<Student> p(new Student(name));
    //Student p = Student(name);
    //p.printName();
    p->printName();



    return 0;
}
编译:默认g++3.4.5 报如下错误,unique_ptr是c++11的, g++3.4.5似乎也不支持这个。

main.cpp: In function int main():
main.cpp:41:5: error: unique_ptr is not a member of std
     std::unique_ptr<Student> p(new Student(name));
     ^
main.cpp:41:28: error: expected primary-expression before > token
     std::unique_ptr<Student> p(new Student(name));
                            ^
main.cpp:41:49: error: p was not declared in this scope
     std::unique_ptr<Student> p(new Student(name));

后经测试MM提示,改为用
/opt/compiler/gcc-4.8.2/bin/g++ -std=c++11 main.cpp (原来系统还藏了个高版本的,郁闷,干嘛不直接用高版本的啊)

编译无误。
^

 

c++ g++3.4.5 g++4.8.2 由编译器引起的编译异常

标签:

原文地址:http://www.cnblogs.com/i80386/p/4793179.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!