Ne.app NeANT
The Ne.app NeANT User module of the NeANT distribution.
23.containers.stdcxx-152.cpp
Go to the documentation of this file.
1
27#include <map>
28#include <set>
29#include <string>
30#include <utility>
31
32using namespace std;
33
34template <class T>
35struct TestMap
36{
37 typedef map<T, TestMap> Map;
38 typedef typename Map::value_type value_type;
40};
41
42
43template <class T>
45{
46 typedef multimap<T, TestMultiMap> MultiMap;
47 typedef typename MultiMap::value_type value_type;
49};
50
51
52template <class T>
53struct TestSet
54{
55 typedef set<pair<T, TestSet> > Set;
56 typedef typename Set::value_type value_type;
58};
59
60bool operator< (const pair<string, TestSet<string> >& lhs,
61 const pair<string, TestSet<string> >& rhs)
62{
63 return lhs.first < rhs.first;
64}
65
66
67template <class T>
69{
70 typedef multiset<pair<T, TestMultiSet> > MultiSet;
71 typedef typename MultiSet::value_type value_type;
73};
74
75bool operator< (const pair<string, TestMultiSet<string> >& lhs,
76 const pair<string, TestMultiSet<string> >& rhs)
77{
78 return lhs.first < rhs.first;
79}
80
81
82int main ()
83{
84 TestMap<string> test1;
85 test1.data.insert (make_pair ("test1", test1));
86
88 test2.data.insert (make_pair ("test2", test2));
89
90 TestSet<string> test3;
91 test3.data.insert (make_pair ("test3", test3));
92
94 test4.data.insert (make_pair ("test4", test4));
95
96 return 0;
97}
#define rhs
Definition 17.names.cpp:536
#define lhs
Definition 17.names.cpp:489
bool operator<(const pair< string, TestSet< string > > &lhs, const pair< string, TestSet< string > > &rhs)
Definition json.h:5363
Map::value_type value_type
map< T, TestMap > Map
multimap< T, TestMultiMap > MultiMap
MultiMap::value_type value_type
MultiSet::value_type value_type
multiset< pair< T, TestMultiSet > > MultiSet
Set::value_type value_type
set< pair< T, TestSet > > Set