推論型(auto)
C++は変数の型は明示的にしてはっきりさせなければならないが、テンプレート型などを利用すると複雑になってしまう。それを簡単に書くために推論型が追加された。
下記の例ではイテレータをautoを利用して簡潔な記述になっている。
[auto.cpp]
#include <iostream>
#include <vector>
//推論型のテスト
int main() {
using namespace std;
vector<int> nums;
nums.push_back(10);
nums.push_back(20);
nums.push_back(30);
nums.push_back(40);
nums.push_back(50);
//before C++
//vector<int>::iterator it = nums.begin();
auto it = nums.begin();
while(it != nums.end()) {
cout << *it << endl;
++it;
}
return 0;
}
C++11のコンパイル
C++11対応のコードをg++でそのままコンパイルするとエラーが出るので
コンパイルするには-std=c++11 オプションをつけてコンパイルします。
$ g++ -std=c++11 auto.cpp -o auto
でコンパイル出来れば成功です。