1#include <bitset>
2#include <deque>
3#include <list>
4#include <memory>
5#include <map>
6#include <queue>
7#include <set>
8#ifdef _STLPORT_VERSION
9#include <slist>
10#endif // _STLPORT_VERSION
11#include <string>
12#include <stack>
13#if _STLPORT_VERSION >= 0x520
14#include <unordered_map>
15#include <unordered_set>
16#endif //_STLPORT_VERSION >= 0x520
17#include <vector>
18
19#ifdef _STLPORT_VERSION
20#define STD_TR1 std::tr1
21#else // _STLPORT_VERSION
22#define STD_TR1 std
23#endif // _STLPORT_VERSION
24
25struct Large {
26  char m_foo[100];
27};
28
29void foo() { }
30
31int main() {
32
33  std::string string1 = "";
34  std::string string2 = "a short string";
35  std::string string3 = "a very long string ...";
36
37  std::wstring wstring1 = L"";
38  std::wstring wstring2 = L"a short string";
39  std::wstring wstring3 = L"a very long string ...";
40
41  std::vector<int> vector1;
42  vector1.push_back( 100);
43  vector1.push_back( 200);
44  vector1.push_back( 300);
45
46  std::vector<bool> vector2;
47  vector2.push_back( true);
48  vector2.push_back( false);
49  vector2.push_back( true);
50
51  std::map<int,int> map1;
52  map1[1] = -1;
53  map1[21] = -21;
54  map1[42] = -42;
55
56  std::multimap<int,int> multimap1;
57  multimap1.insert (std::pair<int,int> (1, -1));
58  multimap1.insert (std::pair<int,int> (1, -2));
59  multimap1.insert (std::pair<int,int> (21, -21));
60  multimap1.insert (std::pair<int,int> (21, -22));
61  multimap1.insert (std::pair<int,int> (42, -42));
62  multimap1.insert (std::pair<int,int> (42, -43));
63
64  std::set<int> set1;
65  set1.insert( 100);
66  set1.insert( 200);
67  set1.insert( 300);
68
69  std::multiset<int> multiset1;
70  multiset1.insert( 100);
71  multiset1.insert( 100);
72  multiset1.insert( 200);
73  multiset1.insert( 200);
74  multiset1.insert( 300);
75  multiset1.insert( 300);
76
77  std::list<int> list1;
78  std::list<int> list2;
79  list1.push_back( 100);
80  list1.push_back( 200);
81  list1.push_back( 300);
82
83#ifdef _STLPORT_VERSION
84  std::slist<int> slist1;
85  std::slist<int> slist2;
86  slist1.push_front( 100);
87  slist1.push_front( 200);
88  slist1.push_front( 300);
89#else // _STLPORT_VERSION
90  std::string slist1 = "std::slist not supported";
91  std::string slist2 = "std::slist not supported";
92#endif // _STLPORT_VERSION
93
94  std::deque<int> deque1;
95  deque1.push_front( 100);
96  deque1.push_front( 200);
97  deque1.push_front( 300);
98
99  std::deque<Large> deque2;
100  deque2.push_back( Large());
101  deque2.push_back( Large());
102  deque2.push_front( Large());
103
104  std::stack<int> stack1;
105  stack1.push( 100);
106  stack1.push( 200);
107  stack1.push( 300);
108
109  std::queue<int> queue1;
110  queue1.push( 100);
111  queue1.push( 200);
112  queue1.push( 300);
113
114  std::priority_queue<int> priority_queue1;
115  priority_queue1.push( 200);
116  priority_queue1.push( 100);
117  priority_queue1.push( 300);
118
119  std::bitset<100> bitset1;
120  bitset1[2] = 1;
121  bitset1[42] = 1;
122  bitset1[64] = 1;
123
124  std::bitset<1> bitset2;
125  bitset2[0] = 1;
126
127#if _STLPORT_VERSION >= 0x520
128  STD_TR1::unordered_map<int,int> unordered_map1;
129  STD_TR1::unordered_map<int,int> unordered_map2;
130  for( int i = 0; i < 5; ++i)
131      unordered_map1[i*i] = -i*i;
132
133  STD_TR1::unordered_multimap<int,int> unordered_multimap1;
134  STD_TR1::unordered_multimap<int,int> unordered_multimap2;
135  for( int i = 0; i < 5; ++i) {
136      unordered_multimap1.insert( std::pair<int,int>( i*i, -i*i));
137      unordered_multimap1.insert( std::pair<int,int>( i*i,  i*i));
138  }
139
140  STD_TR1::unordered_set<int> unordered_set1;
141  STD_TR1::unordered_set<int> unordered_set2;
142  for( int i = 0; i < 5; ++i)
143      unordered_set1.insert( i*i);
144
145  STD_TR1::unordered_multiset<int> unordered_multiset1;
146  STD_TR1::unordered_multiset<int> unordered_multiset2;
147  for( int i = 0; i < 5; ++i) {
148      unordered_multiset1.insert( -i*i);
149      unordered_multiset1.insert(  i*i);
150  }
151#else // _STLPORT_VERSION < 0x520
152  std::string unordered_map1 = "std::tr1::unordered_map not supported";
153  std::string unordered_map2 = "std::tr1::unordered_map not supported";
154  std::string unordered_multimap1 = "std::tr1::unordered_multimap not supported";
155  std::string unordered_multimap2 = "std::tr1::unordered_multimap not supported";
156  std::string unordered_set1 = "std::tr1::unordered_set not supported";
157  std::string unordered_set2 = "std::tr1::unordered_set not supported";
158  std::string unordered_multiset1 = "std::tr1::unordered_multiset not supported";
159  std::string unordered_multiset2 = "std::tr1::unordered_multiset not supported";
160#endif // _STLPORT_VERSION < 0x520
161
162  std::auto_ptr<Large> auto_ptr1( new Large());
163  std::auto_ptr<Large> auto_ptr2;
164
165#ifdef _STLP_USE_BOOST_SUPPORT
166  STD_TR1::shared_ptr<Large> shared_ptr1( new Large);
167  STD_TR1::shared_ptr<Large> shared_ptr2;
168
169  STD_TR1::weak_ptr<Large> weak_ptr1( shared_ptr1);
170  STD_TR1::weak_ptr<Large> weak_ptr2;
171#else // _STLP_USE_BOOST_SUPPORT
172  std::string shared_ptr1 = "std::tr1::shared_ptr not supported";
173  std::string shared_ptr2 = "std::tr1::shared_ptr not supported";
174
175  std::string weak_ptr1 = "std::tr1::weak_ptr not supported";
176  std::string weak_ptr2 = "std::tr1::weak_ptr not supported";
177#endif // _STLP_USE_BOOST_SUPPORT
178
179  foo();
180  return 0;
181}
182