template<class T, class Container>
  bool operator==(const stack<T, Container>& x, const stack<T, Container>& y);
template<class T, class Container>
  bool operator!=(const stack<T, Container>& x, const stack<T, Container>& y);
template<class T, class Container>
  bool operator< (const stack<T, Container>& x, const stack<T, Container>& y);
template<class T, class Container>
  bool operator> (const stack<T, Container>& x, const stack<T, Container>& y);
template<class T, class Container>
  bool operator<=(const stack<T, Container>& x, const stack<T, Container>& y);
template<class T, class Container>
  bool operator>=(const stack<T, Container>& x, const stack<T, Container>& y);
template<class T, three_way_comparable Container>
  compare_three_way_result_t<Container>
    operator<=>(const stack<T, Container>& x, const stack<T, Container>& y);