17ec46bc4228ae1c23a34220d8c6885356d18918cMarshall Clow//===----------------------------------------------------------------------===// 27ec46bc4228ae1c23a34220d8c6885356d18918cMarshall Clow// 37ec46bc4228ae1c23a34220d8c6885356d18918cMarshall Clow// The LLVM Compiler Infrastructure 47ec46bc4228ae1c23a34220d8c6885356d18918cMarshall Clow// 57ec46bc4228ae1c23a34220d8c6885356d18918cMarshall Clow// This file is dual licensed under the MIT and the University of Illinois Open 67ec46bc4228ae1c23a34220d8c6885356d18918cMarshall Clow// Source Licenses. See LICENSE.TXT for details. 77ec46bc4228ae1c23a34220d8c6885356d18918cMarshall Clow// 87ec46bc4228ae1c23a34220d8c6885356d18918cMarshall Clow//===----------------------------------------------------------------------===// 97ec46bc4228ae1c23a34220d8c6885356d18918cMarshall Clow 107ec46bc4228ae1c23a34220d8c6885356d18918cMarshall Clow// <utility> 117ec46bc4228ae1c23a34220d8c6885356d18918cMarshall Clow 127ec46bc4228ae1c23a34220d8c6885356d18918cMarshall Clow// template<class T, T N> 137ec46bc4228ae1c23a34220d8c6885356d18918cMarshall Clow// using make_integer_sequence = integer_sequence<T, 0, 1, ..., N-1>; 147ec46bc4228ae1c23a34220d8c6885356d18918cMarshall Clow 15ee226c05af9e0187098f43fb71465a581487af9bDan Austin// UNSUPPORTED: c++98, c++03, c++11 16ee226c05af9e0187098f43fb71465a581487af9bDan Austin 177ec46bc4228ae1c23a34220d8c6885356d18918cMarshall Clow#include <utility> 187ec46bc4228ae1c23a34220d8c6885356d18918cMarshall Clow#include <type_traits> 197ec46bc4228ae1c23a34220d8c6885356d18918cMarshall Clow#include <cassert> 207ec46bc4228ae1c23a34220d8c6885356d18918cMarshall Clow 217ec46bc4228ae1c23a34220d8c6885356d18918cMarshall Clowint main() 227ec46bc4228ae1c23a34220d8c6885356d18918cMarshall Clow{ 237ec46bc4228ae1c23a34220d8c6885356d18918cMarshall Clow static_assert(std::is_same<std::make_integer_sequence<int, 0>, std::integer_sequence<int>>::value, ""); 247ec46bc4228ae1c23a34220d8c6885356d18918cMarshall Clow static_assert(std::is_same<std::make_integer_sequence<int, 1>, std::integer_sequence<int, 0>>::value, ""); 257ec46bc4228ae1c23a34220d8c6885356d18918cMarshall Clow static_assert(std::is_same<std::make_integer_sequence<int, 2>, std::integer_sequence<int, 0, 1>>::value, ""); 267ec46bc4228ae1c23a34220d8c6885356d18918cMarshall Clow static_assert(std::is_same<std::make_integer_sequence<int, 3>, std::integer_sequence<int, 0, 1, 2>>::value, ""); 277ec46bc4228ae1c23a34220d8c6885356d18918cMarshall Clow 287ec46bc4228ae1c23a34220d8c6885356d18918cMarshall Clow static_assert(std::is_same<std::make_integer_sequence<unsigned long long, 0>, std::integer_sequence<unsigned long long>>::value, ""); 297ec46bc4228ae1c23a34220d8c6885356d18918cMarshall Clow static_assert(std::is_same<std::make_integer_sequence<unsigned long long, 1>, std::integer_sequence<unsigned long long, 0>>::value, ""); 307ec46bc4228ae1c23a34220d8c6885356d18918cMarshall Clow static_assert(std::is_same<std::make_integer_sequence<unsigned long long, 2>, std::integer_sequence<unsigned long long, 0, 1>>::value, ""); 317ec46bc4228ae1c23a34220d8c6885356d18918cMarshall Clow static_assert(std::is_same<std::make_integer_sequence<unsigned long long, 3>, std::integer_sequence<unsigned long long, 0, 1, 2>>::value, ""); 327ec46bc4228ae1c23a34220d8c6885356d18918cMarshall Clow} 33