C++14:通过make_index_sequence实现将tuple转换为array
如何将vector转换为array呢
#include <iostream>
#include <tuple>
#include <array>
using namespace std;template <typename V, typename... Types, size_t... I>
constexpr auto do_tuple_to_array(tuple<V, Types...>&& tuple, integer_sequence<size_t, I...>)
{return array<V, sizeof...(I)>({static_cast<V>(get<I>(tuple))...,});
}template <typename... Types, typename I = make_index_sequence<sizeof...(Types)>>
constexpr auto tuple_to_array(tuple<Types...>& tuple)
{return do_tuple_to_array(move(tuple), I());
}int main()
{tuple<int, char, float, long> t(1, 'a', 3.14, 4000);auto a = tuple_to_array(t);for(auto&& i : a){cout