C++11のVS2010への対応


cpprefjpに対応状況まとまっているが、std::array、std::for_each、std::tupleを調べてみた。
結果として、VS2010に対応していた!
これで色々出来そう。

#include <iostream>
#include <array>
#include <tuple>

int main()
{
  // 3要素のint型配列を定義し、初期化子リストで初期化
  std::array<int, 3> ar = {3, 1, 4};

  // size()メンバ関数による要素数取得
  for (std::size_t i = 0; i < ar.size(); ++i) {
    ++ar[i]; // operator[]で任意の要素にランダムアクセス
  }

  // イテレータによる要素の横断
  std::for_each(ar.begin(), ar.end(), [](int x) {
    std::cout << x << std::endl;
  });

  // tuple
  auto tupleValue = std::tuple<int, double, double>(10, 15.5, 20.0);
  tupleValue =  std::make_tuple(11, 15.3, 20.2);
  int value1 = std::get<0>(tupleValue);
  double value2 = std::get<1>(tupleValue);
  double value3 = std::get<2>(tupleValue);
  std::cout << value1 << " " << value2 << " " << value3 << std::endl;
}