1//===----------------------------------------------------------------------===//
2//
3// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4// See https://llvm.org/LICENSE.txt for license information.
5// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6//
7//===----------------------------------------------------------------------===//
8//
9// WARNING: This test was generated by generate_feature_test_macro_components.py
10// and should not be edited manually.
11//
12// clang-format off
13
14// <array>
15
16// Test the feature test macros defined by <array>
17
18/* Constant Value
19 __cpp_lib_array_constexpr 201603L [C++17]
20 201811L [C++20]
21 __cpp_lib_freestanding_array 202311L [C++26]
22 __cpp_lib_nonmember_container_access 201411L [C++17]
23 __cpp_lib_to_array 201907L [C++20]
24*/
25
26#include <array>
27#include "test_macros.h"
28
29#if TEST_STD_VER < 14
30
31# ifdef __cpp_lib_array_constexpr
32# error "__cpp_lib_array_constexpr should not be defined before c++17"
33# endif
34
35# ifdef __cpp_lib_freestanding_array
36# error "__cpp_lib_freestanding_array should not be defined before c++26"
37# endif
38
39# ifdef __cpp_lib_nonmember_container_access
40# error "__cpp_lib_nonmember_container_access should not be defined before c++17"
41# endif
42
43# ifdef __cpp_lib_to_array
44# error "__cpp_lib_to_array should not be defined before c++20"
45# endif
46
47#elif TEST_STD_VER == 14
48
49# ifdef __cpp_lib_array_constexpr
50# error "__cpp_lib_array_constexpr should not be defined before c++17"
51# endif
52
53# ifdef __cpp_lib_freestanding_array
54# error "__cpp_lib_freestanding_array should not be defined before c++26"
55# endif
56
57# ifdef __cpp_lib_nonmember_container_access
58# error "__cpp_lib_nonmember_container_access should not be defined before c++17"
59# endif
60
61# ifdef __cpp_lib_to_array
62# error "__cpp_lib_to_array should not be defined before c++20"
63# endif
64
65#elif TEST_STD_VER == 17
66
67# ifndef __cpp_lib_array_constexpr
68# error "__cpp_lib_array_constexpr should be defined in c++17"
69# endif
70# if __cpp_lib_array_constexpr != 201603L
71# error "__cpp_lib_array_constexpr should have the value 201603L in c++17"
72# endif
73
74# ifdef __cpp_lib_freestanding_array
75# error "__cpp_lib_freestanding_array should not be defined before c++26"
76# endif
77
78# ifndef __cpp_lib_nonmember_container_access
79# error "__cpp_lib_nonmember_container_access should be defined in c++17"
80# endif
81# if __cpp_lib_nonmember_container_access != 201411L
82# error "__cpp_lib_nonmember_container_access should have the value 201411L in c++17"
83# endif
84
85# ifdef __cpp_lib_to_array
86# error "__cpp_lib_to_array should not be defined before c++20"
87# endif
88
89#elif TEST_STD_VER == 20
90
91# ifndef __cpp_lib_array_constexpr
92# error "__cpp_lib_array_constexpr should be defined in c++20"
93# endif
94# if __cpp_lib_array_constexpr != 201811L
95# error "__cpp_lib_array_constexpr should have the value 201811L in c++20"
96# endif
97
98# ifdef __cpp_lib_freestanding_array
99# error "__cpp_lib_freestanding_array should not be defined before c++26"
100# endif
101
102# ifndef __cpp_lib_nonmember_container_access
103# error "__cpp_lib_nonmember_container_access should be defined in c++20"
104# endif
105# if __cpp_lib_nonmember_container_access != 201411L
106# error "__cpp_lib_nonmember_container_access should have the value 201411L in c++20"
107# endif
108
109# ifndef __cpp_lib_to_array
110# error "__cpp_lib_to_array should be defined in c++20"
111# endif
112# if __cpp_lib_to_array != 201907L
113# error "__cpp_lib_to_array should have the value 201907L in c++20"
114# endif
115
116#elif TEST_STD_VER == 23
117
118# ifndef __cpp_lib_array_constexpr
119# error "__cpp_lib_array_constexpr should be defined in c++23"
120# endif
121# if __cpp_lib_array_constexpr != 201811L
122# error "__cpp_lib_array_constexpr should have the value 201811L in c++23"
123# endif
124
125# ifdef __cpp_lib_freestanding_array
126# error "__cpp_lib_freestanding_array should not be defined before c++26"
127# endif
128
129# ifndef __cpp_lib_nonmember_container_access
130# error "__cpp_lib_nonmember_container_access should be defined in c++23"
131# endif
132# if __cpp_lib_nonmember_container_access != 201411L
133# error "__cpp_lib_nonmember_container_access should have the value 201411L in c++23"
134# endif
135
136# ifndef __cpp_lib_to_array
137# error "__cpp_lib_to_array should be defined in c++23"
138# endif
139# if __cpp_lib_to_array != 201907L
140# error "__cpp_lib_to_array should have the value 201907L in c++23"
141# endif
142
143#elif TEST_STD_VER > 23
144
145# ifndef __cpp_lib_array_constexpr
146# error "__cpp_lib_array_constexpr should be defined in c++26"
147# endif
148# if __cpp_lib_array_constexpr != 201811L
149# error "__cpp_lib_array_constexpr should have the value 201811L in c++26"
150# endif
151
152# if !defined(_LIBCPP_VERSION)
153# ifndef __cpp_lib_freestanding_array
154# error "__cpp_lib_freestanding_array should be defined in c++26"
155# endif
156# if __cpp_lib_freestanding_array != 202311L
157# error "__cpp_lib_freestanding_array should have the value 202311L in c++26"
158# endif
159# else // _LIBCPP_VERSION
160# ifdef __cpp_lib_freestanding_array
161# error "__cpp_lib_freestanding_array should not be defined because it is unimplemented in libc++!"
162# endif
163# endif
164
165# ifndef __cpp_lib_nonmember_container_access
166# error "__cpp_lib_nonmember_container_access should be defined in c++26"
167# endif
168# if __cpp_lib_nonmember_container_access != 201411L
169# error "__cpp_lib_nonmember_container_access should have the value 201411L in c++26"
170# endif
171
172# ifndef __cpp_lib_to_array
173# error "__cpp_lib_to_array should be defined in c++26"
174# endif
175# if __cpp_lib_to_array != 201907L
176# error "__cpp_lib_to_array should have the value 201907L in c++26"
177# endif
178
179#endif // TEST_STD_VER > 23
180
181

source code of libcxx/test/std/language.support/support.limits/support.limits.general/array.version.compile.pass.cpp