12c6217f2SLouis Dionne //===----------------------------------------------------------------------===//
22c6217f2SLouis Dionne //
32c6217f2SLouis Dionne // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
42c6217f2SLouis Dionne // See https://llvm.org/LICENSE.txt for license information.
52c6217f2SLouis Dionne // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
62c6217f2SLouis Dionne //
72c6217f2SLouis Dionne //===----------------------------------------------------------------------===//
82c6217f2SLouis Dionne //
92c6217f2SLouis Dionne // WARNING: This test was generated by generate_feature_test_macro_components.py
102c6217f2SLouis Dionne // and should not be edited manually.
112c6217f2SLouis Dionne //
122c6217f2SLouis Dionne // clang-format off
132c6217f2SLouis Dionne 
142c6217f2SLouis Dionne // <stack>
152c6217f2SLouis Dionne 
162c6217f2SLouis Dionne // Test the feature test macros defined by <stack>
172c6217f2SLouis Dionne 
182c6217f2SLouis Dionne /*  Constant                                       Value
1971400505SMark de Wever     __cpp_lib_adaptor_iterator_pair_constructor    202106L [C++23]
20*028f1b07Skrzysdz     __cpp_lib_containers_ranges                    202202L [C++23]
212c6217f2SLouis Dionne */
222c6217f2SLouis Dionne 
232c6217f2SLouis Dionne #include <stack>
242c6217f2SLouis Dionne #include "test_macros.h"
252c6217f2SLouis Dionne 
262c6217f2SLouis Dionne #if TEST_STD_VER < 14
272c6217f2SLouis Dionne 
282c6217f2SLouis Dionne # ifdef __cpp_lib_adaptor_iterator_pair_constructor
2971400505SMark de Wever #   error "__cpp_lib_adaptor_iterator_pair_constructor should not be defined before c++23"
302c6217f2SLouis Dionne # endif
312c6217f2SLouis Dionne 
32*028f1b07Skrzysdz # ifdef __cpp_lib_containers_ranges
33*028f1b07Skrzysdz #   error "__cpp_lib_containers_ranges should not be defined before c++23"
342c6217f2SLouis Dionne # endif
352c6217f2SLouis Dionne 
362c6217f2SLouis Dionne #elif TEST_STD_VER == 14
372c6217f2SLouis Dionne 
382c6217f2SLouis Dionne # ifdef __cpp_lib_adaptor_iterator_pair_constructor
3971400505SMark de Wever #   error "__cpp_lib_adaptor_iterator_pair_constructor should not be defined before c++23"
402c6217f2SLouis Dionne # endif
412c6217f2SLouis Dionne 
42*028f1b07Skrzysdz # ifdef __cpp_lib_containers_ranges
43*028f1b07Skrzysdz #   error "__cpp_lib_containers_ranges should not be defined before c++23"
442c6217f2SLouis Dionne # endif
452c6217f2SLouis Dionne 
462c6217f2SLouis Dionne #elif TEST_STD_VER == 17
472c6217f2SLouis Dionne 
482c6217f2SLouis Dionne # ifdef __cpp_lib_adaptor_iterator_pair_constructor
4971400505SMark de Wever #   error "__cpp_lib_adaptor_iterator_pair_constructor should not be defined before c++23"
502c6217f2SLouis Dionne # endif
512c6217f2SLouis Dionne 
52*028f1b07Skrzysdz # ifdef __cpp_lib_containers_ranges
53*028f1b07Skrzysdz #   error "__cpp_lib_containers_ranges should not be defined before c++23"
542c6217f2SLouis Dionne # endif
552c6217f2SLouis Dionne 
562c6217f2SLouis Dionne #elif TEST_STD_VER == 20
572c6217f2SLouis Dionne 
582c6217f2SLouis Dionne # ifdef __cpp_lib_adaptor_iterator_pair_constructor
5971400505SMark de Wever #   error "__cpp_lib_adaptor_iterator_pair_constructor should not be defined before c++23"
602c6217f2SLouis Dionne # endif
612c6217f2SLouis Dionne 
62*028f1b07Skrzysdz # ifdef __cpp_lib_containers_ranges
63*028f1b07Skrzysdz #   error "__cpp_lib_containers_ranges should not be defined before c++23"
642c6217f2SLouis Dionne # endif
652c6217f2SLouis Dionne 
6600c97cbcSMark de Wever #elif TEST_STD_VER == 23
672c6217f2SLouis Dionne 
682c6217f2SLouis Dionne # ifndef __cpp_lib_adaptor_iterator_pair_constructor
6971400505SMark de Wever #   error "__cpp_lib_adaptor_iterator_pair_constructor should be defined in c++23"
702c6217f2SLouis Dionne # endif
712c6217f2SLouis Dionne # if __cpp_lib_adaptor_iterator_pair_constructor != 202106L
7271400505SMark de Wever #   error "__cpp_lib_adaptor_iterator_pair_constructor should have the value 202106L in c++23"
732c6217f2SLouis Dionne # endif
742c6217f2SLouis Dionne 
75*028f1b07Skrzysdz # ifndef __cpp_lib_containers_ranges
76*028f1b07Skrzysdz #   error "__cpp_lib_containers_ranges should be defined in c++23"
772c6217f2SLouis Dionne # endif
78*028f1b07Skrzysdz # if __cpp_lib_containers_ranges != 202202L
79*028f1b07Skrzysdz #   error "__cpp_lib_containers_ranges should have the value 202202L in c++23"
802c6217f2SLouis Dionne # endif
812c6217f2SLouis Dionne 
8200c97cbcSMark de Wever #elif TEST_STD_VER > 23
8300c97cbcSMark de Wever 
8400c97cbcSMark de Wever # ifndef __cpp_lib_adaptor_iterator_pair_constructor
8500c97cbcSMark de Wever #   error "__cpp_lib_adaptor_iterator_pair_constructor should be defined in c++26"
8600c97cbcSMark de Wever # endif
8700c97cbcSMark de Wever # if __cpp_lib_adaptor_iterator_pair_constructor != 202106L
8800c97cbcSMark de Wever #   error "__cpp_lib_adaptor_iterator_pair_constructor should have the value 202106L in c++26"
8900c97cbcSMark de Wever # endif
9000c97cbcSMark de Wever 
91*028f1b07Skrzysdz # ifndef __cpp_lib_containers_ranges
92*028f1b07Skrzysdz #   error "__cpp_lib_containers_ranges should be defined in c++26"
9300c97cbcSMark de Wever # endif
94*028f1b07Skrzysdz # if __cpp_lib_containers_ranges != 202202L
95*028f1b07Skrzysdz #   error "__cpp_lib_containers_ranges should have the value 202202L in c++26"
9600c97cbcSMark de Wever # endif
9700c97cbcSMark de Wever 
9800c97cbcSMark de Wever #endif // TEST_STD_VER > 23
992c6217f2SLouis Dionne 
100