Home | History | Annotate | Download | only in set.special
      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 set
     13 
     14 // void swap(set& m);
     15 
     16 #include <set>
     17 #include <cassert>
     18 
     19 int main()
     20 {
     21     typedef int V;
     22     typedef std::set<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