1 // { dg-do compile }
2 // { dg-require-normal-mode "" }
3 // { dg-require-normal-namespace "" }
4 
5 // Copyright (C) 2007-2018 Free Software Foundation, Inc.
6 //
7 // This file is part of the GNU ISO C++ Library.  This library is free
8 // software; you can redistribute it and/or modify it under the
9 // terms of the GNU General Public License as published by the
10 // Free Software Foundation; either version 3, or (at your option)
11 // any later version.
12 
13 // This library is distributed in the hope that it will be useful,
14 // but WITHOUT ANY WARRANTY; without even the implied warranty of
15 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
16 // GNU General Public License for more details.
17 
18 // You should have received a copy of the GNU General Public License along
19 // with this library; see the file COPYING3.  If not see
20 // <http://www.gnu.org/licenses/>.
21 
22 #include <set>
23 
24 namespace std {
25   template <class Key, class Compare, class Allocator>
26     class set;
27 
28   template <class Key, class Compare, class Allocator>
29     bool operator==(const set<Key,Compare,Allocator>& x,
30                     const set<Key,Compare,Allocator>& y);
31 
32   template <class Key, class Compare, class Allocator>
33     bool operator< (const set<Key,Compare,Allocator>& x,
34                     const set<Key,Compare,Allocator>& y);
35 
36   template <class Key, class Compare, class Allocator>
37     bool operator!=(const set<Key,Compare,Allocator>& x,
38                     const set<Key,Compare,Allocator>& y);
39 
40   template <class Key, class Compare, class Allocator>
41     bool operator> (const set<Key,Compare,Allocator>& x,
42                     const set<Key,Compare,Allocator>& y);
43 
44   template <class Key, class Compare, class Allocator>
45     bool operator>=(const set<Key,Compare,Allocator>& x,
46                     const set<Key,Compare,Allocator>& y);
47 
48   template <class Key, class Compare, class Allocator>
49     bool operator<=(const set<Key,Compare,Allocator>& x,
50                     const set<Key,Compare,Allocator>& y);
51 
52   template <class Key, class Compare, class Allocator>
53     void swap(set<Key,Compare,Allocator>& x,
54               set<Key,Compare,Allocator>& y);
55 
56   template <class Key, class Compare, class Allocator>
57     class multiset;
58 
59   template <class Key, class Compare, class Allocator>
60     bool operator==(const multiset<Key,Compare,Allocator>& x,
61                     const multiset<Key,Compare,Allocator>& y);
62 
63   template <class Key, class Compare, class Allocator>
64     bool operator< (const multiset<Key,Compare,Allocator>& x,
65                     const multiset<Key,Compare,Allocator>& y);
66 
67   template <class Key, class Compare, class Allocator>
68     bool operator!=(const multiset<Key,Compare,Allocator>& x,
69                     const multiset<Key,Compare,Allocator>& y);
70 
71   template <class Key, class Compare, class Allocator>
72     bool operator> (const multiset<Key,Compare,Allocator>& x,
73                     const multiset<Key,Compare,Allocator>& y);
74 
75   template <class Key, class Compare, class Allocator>
76     bool operator>=(const multiset<Key,Compare,Allocator>& x,
77                     const multiset<Key,Compare,Allocator>& y);
78 
79   template <class Key, class Compare, class Allocator>
80     bool operator<=(const multiset<Key,Compare,Allocator>& x,
81                     const multiset<Key,Compare,Allocator>& y);
82 
83   template <class Key, class Compare, class Allocator>
84     void swap(multiset<Key,Compare,Allocator>& x,
85               multiset<Key,Compare,Allocator>& y);
86 }
87