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 
25 struct Large {
26   char m_foo[100];
27 };
28 
foo()29 void foo() { }
30 
main()31 int 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