这几天向同学借了本,C++Primer(第五版),开始学习一下C++
可是在里面增加了一点新的内容C++11的新特性感到很新奇,于是就随便写个代码尝试一下
可是怎么编译就是不通过(使用的fedora 8编译环境)
#include <iostream>
#include <regex>
using namespace std;
int main()
{
int a = 9;
int *p = nullptr;
p = &a;
cout << "*p = " << endl;
return 0;
}
[root@localhost ~]# gcc 4.cpp -o k
4.cpp:2:17: 错误:regex:没有那个文件或目录
4.cpp: In function ‘int main()’:
4.cpp:8: 错误:‘nullptr’ 在此作用域中尚未声明
[root@localhost ~]#
后来查看资料发现原来是自己的编译器版本太低:
注:GCC4.8.1已完全支持C++11,Clang 3.3 也完全支持了C++11。
最新版本的Linux 发行版(RHEL 7,CentOS 7,Ubuntu 14.06,都自带了完全支持C++11的编译器。
后来又换一个高版本的gcc编译器(fedora 20 gcc 版本 4.8.2 20131017 (Red Hat 4.8.2-1) (GCC) )
而且还要在gcc 编译后面加上选项:-std=c++11或-std=gnu++11
[root@localhost ~]# g++ 1.cpp -o k -std=c++11
[root@localhost ~]# ./k
*p = 9
[root@localhost ~]#
写的不怎么样,希望对大家有帮助