dd3d8be4ae9156c70c98796e2013c01f885e164b
[openbsd] /
1 #include <string>
2 #include <set>
3
4 typedef std::multiset<int> intset;
5 typedef std::multiset<std::string> stringset;
6
7 int g_the_foo = 0;
8
9 int thefoo_rw(int arg = 1)
10 {
11         if (arg < 0)
12                 arg = 0;
13         if (!arg)
14                 arg = 1;
15         g_the_foo += arg;
16         return g_the_foo;
17 }
18
19 void by_ref_and_ptr(intset &ref, intset *ptr)
20 {
21     // Stop here to check by ref and ptr
22     return;
23
24
25 int main()
26 {
27     intset ii;
28     thefoo_rw(1);  // Set break point at this line.
29         
30         ii.insert(0);
31         ii.insert(1);
32         ii.insert(2);
33         ii.insert(3);
34         ii.insert(4);
35         ii.insert(5);
36     thefoo_rw(1);  // Set break point at this line.
37
38         ii.insert(6);
39         thefoo_rw(1);  // Set break point at this line.
40
41         by_ref_and_ptr(ii, &ii);
42
43         ii.clear();
44         thefoo_rw(1);  // Set break point at this line.
45
46         stringset ss;
47         thefoo_rw(1);  // Set break point at this line.
48
49         ss.insert("a");
50         ss.insert("a very long string is right here");
51         thefoo_rw(1);  // Set break point at this line.
52
53         ss.insert("b");
54         ss.insert("c");
55         thefoo_rw(1);  // Set break point at this line.
56         
57         ss.erase("b");
58         thefoo_rw(1);  // Set break point at this line.
59
60     return 0;
61 }