1 //===----------------------------------------------------------------------===//
2 //
3 // The LLVM Compiler Infrastructure
4 //
5 // This file is dual licensed under the MIT and the University of Illinois Open
6 // Source Licenses. See LICENSE.TXT for details.
7 //
8 //===----------------------------------------------------------------------===//
9
10 // <array>
11
12 // tuple_size<array<T, N> >::value
13
14 #include <array>
15
16 template <class T, std::size_t N>
test()17 void test()
18 {
19 {
20 typedef std::array<T, N> C;
21 static_assert((std::tuple_size<C>::value == N), "");
22 }
23 {
24 typedef std::array<T const, N> C;
25 static_assert((std::tuple_size<C>::value == N), "");
26 }
27 {
28 typedef std::array<T volatile, N> C;
29 static_assert((std::tuple_size<C>::value == N), "");
30 }
31 {
32 typedef std::array<T const volatile, N> C;
33 static_assert((std::tuple_size<C>::value == N), "");
34 }
35 }
36
main()37 int main()
38 {
39 test<double, 0>();
40 test<double, 3>();
41 test<double, 5>();
42 }
43