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 157ec46bc4228ae1c23a34220d8c6885356d18918cMarshall Clow#include <utility> 167ec46bc4228ae1c23a34220d8c6885356d18918cMarshall Clow#include <type_traits> 177ec46bc4228ae1c23a34220d8c6885356d18918cMarshall Clow#include <cassert> 187ec46bc4228ae1c23a34220d8c6885356d18918cMarshall Clow 197ec46bc4228ae1c23a34220d8c6885356d18918cMarshall Clowint main() 207ec46bc4228ae1c23a34220d8c6885356d18918cMarshall Clow{ 217ec46bc4228ae1c23a34220d8c6885356d18918cMarshall Clow#if _LIBCPP_STD_VER > 11 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 337ec46bc4228ae1c23a34220d8c6885356d18918cMarshall Clow#endif // _LIBCPP_STD_VER > 11 347ec46bc4228ae1c23a34220d8c6885356d18918cMarshall Clow} 35