1*87f3ff3eSvarconst //===----------------------------------------------------------------------===//
2*87f3ff3eSvarconst //
3*87f3ff3eSvarconst // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4*87f3ff3eSvarconst // See https://llvm.org/LICENSE.txt for license information.
5*87f3ff3eSvarconst // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6*87f3ff3eSvarconst //
7*87f3ff3eSvarconst //===----------------------------------------------------------------------===//
8*87f3ff3eSvarconst
9*87f3ff3eSvarconst // UNSUPPORTED: c++03, c++11, c++14, c++17, c++20
10*87f3ff3eSvarconst
11*87f3ff3eSvarconst #include <stack>
12*87f3ff3eSvarconst
13*87f3ff3eSvarconst #include "../../from_range_container_adaptors.h"
14*87f3ff3eSvarconst #include "test_macros.h"
15*87f3ff3eSvarconst
16*87f3ff3eSvarconst // template<container-compatible-range<T> R> stack(from_range_t, R&& rg); // since C++23
17*87f3ff3eSvarconst // template<container-compatible-range<T> R, class Alloc>
18*87f3ff3eSvarconst // stack(from_range_t, R&& rg, const Alloc&); // since C++23
19*87f3ff3eSvarconst
main(int,char **)20*87f3ff3eSvarconst int main(int, char**) {
21*87f3ff3eSvarconst for_all_iterators_and_allocators<int>([]<class Iter, class Sent, class Alloc>() {
22*87f3ff3eSvarconst test_container_adaptor<std::stack, std::deque, int, Iter, Sent, Alloc>();
23*87f3ff3eSvarconst });
24*87f3ff3eSvarconst test_container_adaptor_move_only<std::stack>();
25*87f3ff3eSvarconst
26*87f3ff3eSvarconst static_assert(test_constraints<std::stack, int, double>());
27*87f3ff3eSvarconst
28*87f3ff3eSvarconst test_exception_safety_throwing_copy<std::stack>();
29*87f3ff3eSvarconst test_exception_safety_throwing_allocator<std::stack, int>();
30*87f3ff3eSvarconst
31*87f3ff3eSvarconst return 0;
32*87f3ff3eSvarconst }
33