• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 //===----------------------------------------------------------------------===//
2 //
3 //                     The LLVM Compiler Infrastructure
4 //
5 // This file is dual licensed under the MIT and the University of Illinois Open
6 // Source Licenses. See LICENSE.TXT for details.
7 //
8 //===----------------------------------------------------------------------===//
9 
10 // <set>
11 
12 // class multiset
13 
14 // void swap(multiset& m);
15 
16 #include <set>
17 #include <cassert>
18 
main()19 int main()
20 {
21     typedef int V;
22     typedef std::multiset<int> M;
23     {
24         V ar1[] =
25         {
26         };
27         V ar2[] =
28         {
29         };
30         M m1(ar1, ar1+sizeof(ar1)/sizeof(ar1[0]));
31         M m2(ar2, ar2+sizeof(ar2)/sizeof(ar2[0]));
32         M m1_save = m1;
33         M m2_save = m2;
34         m1.swap(m2);
35         assert(m1 == m2_save);
36         assert(m2 == m1_save);
37     }
38     {
39         V ar1[] =
40         {
41         };
42         V ar2[] =
43         {
44             5,
45             6,
46             7,
47             8,
48             9,
49             10,
50             11,
51             12
52         };
53         M m1(ar1, ar1+sizeof(ar1)/sizeof(ar1[0]));
54         M m2(ar2, ar2+sizeof(ar2)/sizeof(ar2[0]));
55         M m1_save = m1;
56         M m2_save = m2;
57         m1.swap(m2);
58         assert(m1 == m2_save);
59         assert(m2 == m1_save);
60     }
61     {
62         V ar1[] =
63         {
64             1,
65             2,
66             3,
67             4
68         };
69         V ar2[] =
70         {
71         };
72         M m1(ar1, ar1+sizeof(ar1)/sizeof(ar1[0]));
73         M m2(ar2, ar2+sizeof(ar2)/sizeof(ar2[0]));
74         M m1_save = m1;
75         M m2_save = m2;
76         m1.swap(m2);
77         assert(m1 == m2_save);
78         assert(m2 == m1_save);
79     }
80     {
81         V ar1[] =
82         {
83             1,
84             2,
85             3,
86             4
87         };
88         V ar2[] =
89         {
90             5,
91             6,
92             7,
93             8,
94             9,
95             10,
96             11,
97             12
98         };
99         M m1(ar1, ar1+sizeof(ar1)/sizeof(ar1[0]));
100         M m2(ar2, ar2+sizeof(ar2)/sizeof(ar2[0]));
101         M m1_save = m1;
102         M m2_save = m2;
103         m1.swap(m2);
104         assert(m1 == m2_save);
105         assert(m2 == m1_save);
106     }
107 }
108