相信使用C++Primer第五版来学习C++的朋友们都会发现,用Dev-C++并不能使用C++11的新特性,我特意上网去查了gcc4.8以后的版本都是支持c++11新特性的,只是需要在编译的时候设置-std的参数。下面我就来看一下如何来设置。
首先我们来看一下auto的新特性,以前使用auto还是需要给变量定义类型的,但是在C++11中就完全不需要这么做了:
#include <iostream>
int main(){
auto a = 10;
return 0;
}
我们用gcc编译一下:
可以看到编译器报错了,这里他会把a当做一个类型而不是变量的名字,如果我们修改这段代码:
#include <iostream>
int main(){
auto int a = 10;
return 0;
}
但是这并不是新特性,所以为了让auto a = 10好用我们需要给编译器增加一个std参数:使用gcc 1.cpp -std=c++11 这样就能让编译器使用c++11的新特性了。
在dev-c++中使用新特性是一样的道理,在他启动编译器来编译代码的时候我们让他加上这个参数就行了,设置方法是:在Tools里面找到Compiler Options打开它,然后把那个Add the following commands when calling compiler:选上勾,在里面加入-std=c++11就可以了
然后我们再看使用auto a =10他就不会再报错了