2014年9月28日日曜日

C++11のテスト

早速C++11の機能を試してみます。

推論型(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
でコンパイル出来れば成功です。

0 件のコメント:

コメントを投稿