Fixes a small issue that prevented the use of iterators of containers of incomplete types. Added iterators of incomp-types to unit-tests.

This commit is contained in:
mikael committed 2014-09-21 19:46:58 -04:00
1 parent 3bbb0bbe0e
commit 59b46cd338
13 files changed
+82 -2

No files matched your search

+4
View File
@@ -138,6 +138,10 @@ public:
int id_;
deque<recursive_deque> deque_;
deque<recursive_deque>::iterator it_;
deque<recursive_deque>::const_iterator cit_;
deque<recursive_deque>::reverse_iterator rit_;
deque<recursive_deque>::const_reverse_iterator crit_;
};
template<class IntType>
+10 -1
View File
@@ -150,6 +150,10 @@ class recursive_flat_map
int id_;
flat_map<recursive_flat_map, recursive_flat_map> map_;
flat_map<recursive_flat_map, recursive_flat_map>::iterator it_;
flat_map<recursive_flat_map, recursive_flat_map>::const_iterator cit_;
flat_map<recursive_flat_map, recursive_flat_map>::reverse_iterator rit_;
flat_map<recursive_flat_map, recursive_flat_map>::const_reverse_iterator crit_;
friend bool operator< (const recursive_flat_map &a, const recursive_flat_map &b)
{ return a.id_ < b.id_; }
@@ -170,7 +174,12 @@ public:
return *this;
}
int id_;
flat_map<recursive_flat_multimap, recursive_flat_multimap> map_;
flat_multimap<recursive_flat_multimap, recursive_flat_multimap> map_;
flat_multimap<recursive_flat_multimap, recursive_flat_multimap>::iterator it_;
flat_multimap<recursive_flat_multimap, recursive_flat_multimap>::const_iterator cit_;
flat_multimap<recursive_flat_multimap, recursive_flat_multimap>::reverse_iterator rit_;
flat_multimap<recursive_flat_multimap, recursive_flat_multimap>::const_reverse_iterator crit_;
friend bool operator< (const recursive_flat_multimap &a, const recursive_flat_multimap &b)
{ return a.id_ < b.id_; }
};
+10
View File
@@ -179,6 +179,11 @@ class recursive_flat_set
}
int id_;
flat_set<recursive_flat_set> flat_set_;
flat_set<recursive_flat_set>::iterator it_;
flat_set<recursive_flat_set>::const_iterator cit_;
flat_set<recursive_flat_set>::reverse_iterator rit_;
flat_set<recursive_flat_set>::const_reverse_iterator crit_;
friend bool operator< (const recursive_flat_set &a, const recursive_flat_set &b)
{ return a.id_ < b.id_; }
};
@@ -200,6 +205,11 @@ class recursive_flat_multiset
}
int id_;
flat_multiset<recursive_flat_multiset> flat_multiset_;
flat_multiset<recursive_flat_multiset>::iterator it_;
flat_multiset<recursive_flat_multiset>::const_iterator cit_;
flat_multiset<recursive_flat_multiset>::reverse_iterator rit_;
flat_multiset<recursive_flat_multiset>::const_reverse_iterator crit_;
friend bool operator< (const recursive_flat_multiset &a, const recursive_flat_multiset &b)
{ return a.id_ < b.id_; }
};
+5
View File
@@ -67,6 +67,11 @@ class recursive_list
public:
int id_;
list<recursive_list> list_;
list<recursive_list>::iterator it_;
list<recursive_list>::const_iterator cit_;
list<recursive_list>::reverse_iterator rit_;
list<recursive_list>::const_reverse_iterator crit_;
recursive_list &operator=(const recursive_list &o)
{ list_ = o.list_; return *this; }
};
+10
View File
@@ -195,6 +195,11 @@ class recursive_map
int id_;
map<recursive_map, recursive_map> map_;
map<recursive_map, recursive_map>::iterator it_;
map<recursive_map, recursive_map>::const_iterator cit_;
map<recursive_map, recursive_map>::reverse_iterator rit_;
map<recursive_map, recursive_map>::const_reverse_iterator crit_;
friend bool operator< (const recursive_map &a, const recursive_map &b)
{ return a.id_ < b.id_; }
};
@@ -207,6 +212,11 @@ class recursive_multimap
int id_;
multimap<recursive_multimap, recursive_multimap> multimap_;
multimap<recursive_multimap, recursive_multimap>::iterator it_;
multimap<recursive_multimap, recursive_multimap>::const_iterator cit_;
multimap<recursive_multimap, recursive_multimap>::reverse_iterator rit_;
multimap<recursive_multimap, recursive_multimap>::const_reverse_iterator crit_;
friend bool operator< (const recursive_multimap &a, const recursive_multimap &b)
{ return a.id_ < b.id_; }
};
+10
View File
@@ -172,6 +172,11 @@ public:
int id_;
set<recursive_set> set_;
set<recursive_set>::iterator it_;
set<recursive_set>::const_iterator cit_;
set<recursive_set>::reverse_iterator rit_;
set<recursive_set>::const_reverse_iterator crit_;
friend bool operator< (const recursive_set &a, const recursive_set &b)
{ return a.id_ < b.id_; }
};
@@ -185,6 +190,11 @@ class recursive_multiset
int id_;
multiset<recursive_multiset> multiset_;
multiset<recursive_multiset>::iterator it_;
multiset<recursive_multiset>::const_iterator cit_;
multiset<recursive_multiset>::reverse_iterator rit_;
multiset<recursive_multiset>::const_reverse_iterator crit_;
friend bool operator< (const recursive_multiset &a, const recursive_multiset &b)
{ return a.id_ < b.id_; }
};
+3
View File
@@ -57,6 +57,9 @@ class recursive_slist
public:
int id_;
slist<recursive_slist> slist_;
slist<recursive_slist>::iterator it_;
slist<recursive_slist>::const_iterator cit_;
recursive_slist &operator=(const recursive_slist &o)
{ slist_ = o.slist_; return *this; }
};
+5
View File
@@ -66,6 +66,11 @@ class recursive_vector
public:
int id_;
stable_vector<recursive_vector> vector_;
stable_vector<recursive_vector>::iterator it_;
stable_vector<recursive_vector>::const_iterator cit_;
stable_vector<recursive_vector>::reverse_iterator rit_;
stable_vector<recursive_vector>::const_reverse_iterator crit_;
recursive_vector &operator=(const recursive_vector &o)
{ vector_ = o.vector_; return *this; }
};
+4
View File
@@ -112,6 +112,10 @@ class recursive_vector
public:
int id_;
vector<recursive_vector> vector_;
vector<recursive_vector>::iterator it_;
vector<recursive_vector>::const_iterator cit_;
vector<recursive_vector>::reverse_iterator rit_;
vector<recursive_vector>::const_reverse_iterator crit_;
};
void recursive_vector_test()//Test for recursive types