constexpr explicit stack(const Container& cont);
constexpr explicit stack(Container&& cont);
template<class InputIterator>
constexpr stack(InputIterator first, InputIterator last);
template<container-compatible-range<T> R>
constexpr stack(from_range_t, R&& rg);
template<class Alloc> constexpr explicit stack(const Alloc& a);
template<class Alloc> constexpr stack(const container_type& cont, const Alloc& a);
template<class Alloc> constexpr stack(container_type&& cont, const Alloc& a);
template<class Alloc> constexpr stack(const stack& s, const Alloc& a);
template<class Alloc> constexpr stack(stack&& s, const Alloc& a);
template<class InputIterator, class Alloc>
constexpr stack(InputIterator first, InputIterator last, const Alloc& alloc);
template<container-compatible-range<T> R, class Alloc>
constexpr stack(from_range_t, R&& rg, const Alloc& a);
template<container-compatible-range<T> R>
constexpr void push_range(R&& rg);
template<class T, class Container>
constexpr bool operator==(const stack<T, Container>& x, const stack<T, Container>& y);
template<class T, class Container>
constexpr bool operator!=(const stack<T, Container>& x, const stack<T, Container>& y);
template<class T, class Container>
constexpr bool operator< (const stack<T, Container>& x, const stack<T, Container>& y);
template<class T, class Container>
constexpr bool operator> (const stack<T, Container>& x, const stack<T, Container>& y);
template<class T, class Container>
constexpr bool operator<=(const stack<T, Container>& x, const stack<T, Container>& y);
template<class T, class Container>
constexpr bool operator>=(const stack<T, Container>& x, const stack<T, Container>& y);
template<class T, three_way_comparable Container>
constexpr compare_three_way_result_t<Container>
operator<=>(const stack<T, Container>& x, const stack<T, Container>& y);