summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMarshall Clow <mclow@qualcomm.com>2013-01-03 02:29:29 +0000
committerMarshall Clow <mclow@qualcomm.com>2013-01-03 02:29:29 +0000
commitcf1589f74950be0d49543224e89087f37012036c (patch)
treeaac212f987ec7bebdd63ebff2afee17f1835b0fd
parent59095f1cf9efe344485bbb0a0ee3aae45617f994 (diff)
downloadbcm5719-llvm-cf1589f74950be0d49543224e89087f37012036c.tar.gz
bcm5719-llvm-cf1589f74950be0d49543224e89087f37012036c.zip
Removed several more different 'iterators.h' files in libcxx/test
llvm-svn: 171452
-rw-r--r--libcxx/test/containers/associative/map/map.modifiers/insert_iter_iter.pass.cpp2
-rw-r--r--libcxx/test/containers/associative/multimap/multimap.modifiers/insert_iter_iter.pass.cpp2
-rw-r--r--libcxx/test/containers/associative/multiset/insert_iter_iter.pass.cpp2
-rw-r--r--libcxx/test/containers/associative/multiset/multiset.cons/iter_iter.pass.cpp2
-rw-r--r--libcxx/test/containers/associative/multiset/multiset.cons/iter_iter_alloc.pass.cpp2
-rw-r--r--libcxx/test/containers/associative/multiset/multiset.cons/iter_iter_comp.pass.cpp2
-rw-r--r--libcxx/test/containers/associative/set/insert_iter_iter.pass.cpp2
-rw-r--r--libcxx/test/containers/associative/set/set.cons/iter_iter.pass.cpp2
-rw-r--r--libcxx/test/containers/associative/set/set.cons/iter_iter_alloc.pass.cpp2
-rw-r--r--libcxx/test/containers/associative/set/set.cons/iter_iter_comp.pass.cpp2
-rw-r--r--libcxx/test/containers/iterators.h251
-rw-r--r--libcxx/test/containers/sequences/deque/deque.cons/assign_iter_iter.pass.cpp2
-rw-r--r--libcxx/test/containers/sequences/deque/deque.cons/assign_size_value.pass.cpp2
-rw-r--r--libcxx/test/containers/sequences/deque/deque.cons/iter_iter.pass.cpp2
-rw-r--r--libcxx/test/containers/sequences/deque/deque.cons/iter_iter_alloc.pass.cpp2
-rw-r--r--libcxx/test/containers/sequences/deque/deque.modifiers/insert_iter_iter.pass.cpp2
-rw-r--r--libcxx/test/containers/sequences/deque/deque.special/copy.pass.cpp2
-rw-r--r--libcxx/test/containers/sequences/deque/deque.special/copy_backward.pass.cpp2
-rw-r--r--libcxx/test/containers/sequences/deque/deque.special/move.pass.cpp2
-rw-r--r--libcxx/test/containers/sequences/deque/deque.special/move_backward.pass.cpp2
-rw-r--r--libcxx/test/containers/sequences/forwardlist/forwardlist.cons/assign_range.pass.cpp2
-rw-r--r--libcxx/test/containers/sequences/forwardlist/forwardlist.cons/range.pass.cpp2
-rw-r--r--libcxx/test/containers/sequences/forwardlist/forwardlist.cons/range_alloc.pass.cpp2
-rw-r--r--libcxx/test/containers/sequences/forwardlist/forwardlist.modifiers/insert_after_range.pass.cpp2
-rw-r--r--libcxx/test/containers/sequences/list/list.cons/input_iterator.pass.cpp2
-rw-r--r--libcxx/test/containers/sequences/vector.bool/construct_iter_iter.pass.cpp2
-rw-r--r--libcxx/test/containers/sequences/vector.bool/construct_iter_iter_alloc.pass.cpp2
-rw-r--r--libcxx/test/containers/sequences/vector.bool/insert_iter_iter_iter.pass.cpp2
-rw-r--r--libcxx/test/containers/sequences/vector/vector.cons/construct_iter_iter.pass.cpp2
-rw-r--r--libcxx/test/containers/sequences/vector/vector.cons/construct_iter_iter_alloc.pass.cpp2
-rw-r--r--libcxx/test/containers/sequences/vector/vector.modifiers/insert_iter_iter_iter.pass.cpp2
-rw-r--r--libcxx/test/containers/unord/unord.map/unord.map.cnstr/range.pass.cpp2
-rw-r--r--libcxx/test/containers/unord/unord.map/unord.map.cnstr/range_size.pass.cpp2
-rw-r--r--libcxx/test/containers/unord/unord.map/unord.map.cnstr/range_size_hash.pass.cpp2
-rw-r--r--libcxx/test/containers/unord/unord.map/unord.map.cnstr/range_size_hash_equal.pass.cpp2
-rw-r--r--libcxx/test/containers/unord/unord.map/unord.map.cnstr/range_size_hash_equal_allocator.pass.cpp2
-rw-r--r--libcxx/test/containers/unord/unord.map/unorder.map.modifiers/insert_init.pass.cpp2
-rw-r--r--libcxx/test/containers/unord/unord.map/unorder.map.modifiers/insert_range.pass.cpp2
-rw-r--r--libcxx/test/containers/unord/unord.multimap/unord.multimap.cnstr/range.pass.cpp2
-rw-r--r--libcxx/test/containers/unord/unord.multimap/unord.multimap.cnstr/range_size.pass.cpp2
-rw-r--r--libcxx/test/containers/unord/unord.multimap/unord.multimap.cnstr/range_size_hash.pass.cpp2
-rw-r--r--libcxx/test/containers/unord/unord.multimap/unord.multimap.cnstr/range_size_hash_equal.pass.cpp2
-rw-r--r--libcxx/test/containers/unord/unord.multimap/unord.multimap.cnstr/range_size_hash_equal_allocator.pass.cpp2
-rw-r--r--libcxx/test/containers/unord/unord.multimap/unord.multimap.modifiers/insert_init.pass.cpp2
-rw-r--r--libcxx/test/containers/unord/unord.multimap/unord.multimap.modifiers/insert_range.pass.cpp2
-rw-r--r--libcxx/test/containers/unord/unord.multiset/insert_init.pass.cpp2
-rw-r--r--libcxx/test/containers/unord/unord.multiset/insert_range.pass.cpp2
-rw-r--r--libcxx/test/containers/unord/unord.multiset/unord.multiset.cnstr/range.pass.cpp2
-rw-r--r--libcxx/test/containers/unord/unord.multiset/unord.multiset.cnstr/range_size.pass.cpp2
-rw-r--r--libcxx/test/containers/unord/unord.multiset/unord.multiset.cnstr/range_size_hash.pass.cpp2
-rw-r--r--libcxx/test/containers/unord/unord.multiset/unord.multiset.cnstr/range_size_hash_equal.pass.cpp2
-rw-r--r--libcxx/test/containers/unord/unord.multiset/unord.multiset.cnstr/range_size_hash_equal_allocator.pass.cpp2
-rw-r--r--libcxx/test/containers/unord/unord.set/insert_init.pass.cpp2
-rw-r--r--libcxx/test/containers/unord/unord.set/insert_range.pass.cpp2
-rw-r--r--libcxx/test/containers/unord/unord.set/unord.set.cnstr/range.pass.cpp2
-rw-r--r--libcxx/test/containers/unord/unord.set/unord.set.cnstr/range_size.pass.cpp2
-rw-r--r--libcxx/test/containers/unord/unord.set/unord.set.cnstr/range_size_hash.pass.cpp2
-rw-r--r--libcxx/test/containers/unord/unord.set/unord.set.cnstr/range_size_hash_equal.pass.cpp2
-rw-r--r--libcxx/test/containers/unord/unord.set/unord.set.cnstr/range_size_hash_equal_allocator.pass.cpp2
-rw-r--r--libcxx/test/iterators.h (renamed from libcxx/test/re/iterators.h)1
-rw-r--r--libcxx/test/iterators/iterator.primitives/iterator.operations/advance.pass.cpp2
-rw-r--r--libcxx/test/iterators/iterator.primitives/iterator.operations/distance.pass.cpp2
-rw-r--r--libcxx/test/iterators/iterator.primitives/iterator.operations/next.pass.cpp2
-rw-r--r--libcxx/test/iterators/iterator.primitives/iterator.operations/prev.pass.cpp2
-rw-r--r--libcxx/test/iterators/iterators.h251
-rw-r--r--libcxx/test/iterators/predef.iterators/move.iterators/move.iter.ops/move.iter.nonmember/make_move_iterator.pass.cpp2
-rw-r--r--libcxx/test/iterators/predef.iterators/move.iterators/move.iter.ops/move.iter.nonmember/minus.pass.cpp2
-rw-r--r--libcxx/test/iterators/predef.iterators/move.iterators/move.iter.ops/move.iter.nonmember/plus.pass.cpp2
-rw-r--r--libcxx/test/iterators/predef.iterators/move.iterators/move.iter.ops/move.iter.op.+/difference_type.pass.cpp2
-rw-r--r--libcxx/test/iterators/predef.iterators/move.iterators/move.iter.ops/move.iter.op.+=/difference_type.pass.cpp2
-rw-r--r--libcxx/test/iterators/predef.iterators/move.iterators/move.iter.ops/move.iter.op.-/difference_type.pass.cpp2
-rw-r--r--libcxx/test/iterators/predef.iterators/move.iterators/move.iter.ops/move.iter.op.-=/difference_type.pass.cpp2
-rw-r--r--libcxx/test/iterators/predef.iterators/move.iterators/move.iter.ops/move.iter.op.comp/op_eq.pass.cpp2
-rw-r--r--libcxx/test/iterators/predef.iterators/move.iterators/move.iter.ops/move.iter.op.comp/op_gt.pass.cpp2
-rw-r--r--libcxx/test/iterators/predef.iterators/move.iterators/move.iter.ops/move.iter.op.comp/op_gte.pass.cpp2
-rw-r--r--libcxx/test/iterators/predef.iterators/move.iterators/move.iter.ops/move.iter.op.comp/op_lt.pass.cpp2
-rw-r--r--libcxx/test/iterators/predef.iterators/move.iterators/move.iter.ops/move.iter.op.comp/op_lte.pass.cpp2
-rw-r--r--libcxx/test/iterators/predef.iterators/move.iterators/move.iter.ops/move.iter.op.comp/op_neq.pass.cpp2
-rw-r--r--libcxx/test/iterators/predef.iterators/move.iterators/move.iter.ops/move.iter.op.const/convert.pass.cpp2
-rw-r--r--libcxx/test/iterators/predef.iterators/move.iterators/move.iter.ops/move.iter.op.const/default.pass.cpp2
-rw-r--r--libcxx/test/iterators/predef.iterators/move.iterators/move.iter.ops/move.iter.op.const/iter.pass.cpp2
-rw-r--r--libcxx/test/iterators/predef.iterators/move.iterators/move.iter.ops/move.iter.op.decr/post.pass.cpp2
-rw-r--r--libcxx/test/iterators/predef.iterators/move.iterators/move.iter.ops/move.iter.op.decr/pre.pass.cpp2
-rw-r--r--libcxx/test/iterators/predef.iterators/move.iterators/move.iter.ops/move.iter.op.incr/post.pass.cpp2
-rw-r--r--libcxx/test/iterators/predef.iterators/move.iterators/move.iter.ops/move.iter.op.incr/pre.pass.cpp2
-rw-r--r--libcxx/test/iterators/predef.iterators/move.iterators/move.iter.ops/move.iter.op.index/difference_type.pass.cpp2
-rw-r--r--libcxx/test/iterators/predef.iterators/move.iterators/move.iter.ops/move.iter.op=/move_iterator.pass.cpp2
-rw-r--r--libcxx/test/iterators/predef.iterators/move.iterators/move.iterator/types.pass.cpp2
-rw-r--r--libcxx/test/iterators/predef.iterators/reverse.iterators/reverse.iter.ops/reverse.iter.cons/default.pass.cpp2
-rw-r--r--libcxx/test/iterators/predef.iterators/reverse.iterators/reverse.iter.ops/reverse.iter.cons/iter.pass.cpp2
-rw-r--r--libcxx/test/iterators/predef.iterators/reverse.iterators/reverse.iter.ops/reverse.iter.cons/reverse_iterator.pass.cpp2
-rw-r--r--libcxx/test/iterators/predef.iterators/reverse.iterators/reverse.iter.ops/reverse.iter.op!=/test.pass.cpp2
-rw-r--r--libcxx/test/iterators/predef.iterators/reverse.iterators/reverse.iter.ops/reverse.iter.op++/post.pass.cpp2
-rw-r--r--libcxx/test/iterators/predef.iterators/reverse.iterators/reverse.iter.ops/reverse.iter.op++/pre.pass.cpp2
-rw-r--r--libcxx/test/iterators/predef.iterators/reverse.iterators/reverse.iter.ops/reverse.iter.op+/difference_type.pass.cpp2
-rw-r--r--libcxx/test/iterators/predef.iterators/reverse.iterators/reverse.iter.ops/reverse.iter.op+=/difference_type.pass.cpp2
-rw-r--r--libcxx/test/iterators/predef.iterators/reverse.iterators/reverse.iter.ops/reverse.iter.op--/post.pass.cpp2
-rw-r--r--libcxx/test/iterators/predef.iterators/reverse.iterators/reverse.iter.ops/reverse.iter.op--/pre.pass.cpp2
-rw-r--r--libcxx/test/iterators/predef.iterators/reverse.iterators/reverse.iter.ops/reverse.iter.op-/difference_type.pass.cpp2
-rw-r--r--libcxx/test/iterators/predef.iterators/reverse.iterators/reverse.iter.ops/reverse.iter.op-=/difference_type.pass.cpp2
-rw-r--r--libcxx/test/iterators/predef.iterators/reverse.iterators/reverse.iter.ops/reverse.iter.op=/reverse_iterator.pass.cpp2
-rw-r--r--libcxx/test/iterators/predef.iterators/reverse.iterators/reverse.iter.ops/reverse.iter.op==/test.pass.cpp2
-rw-r--r--libcxx/test/iterators/predef.iterators/reverse.iterators/reverse.iter.ops/reverse.iter.opdiff/test.pass.cpp2
-rw-r--r--libcxx/test/iterators/predef.iterators/reverse.iterators/reverse.iter.ops/reverse.iter.opgt/test.pass.cpp2
-rw-r--r--libcxx/test/iterators/predef.iterators/reverse.iterators/reverse.iter.ops/reverse.iter.opgt=/test.pass.cpp2
-rw-r--r--libcxx/test/iterators/predef.iterators/reverse.iterators/reverse.iter.ops/reverse.iter.opindex/difference_type.pass.cpp2
-rw-r--r--libcxx/test/iterators/predef.iterators/reverse.iterators/reverse.iter.ops/reverse.iter.oplt/test.pass.cpp2
-rw-r--r--libcxx/test/iterators/predef.iterators/reverse.iterators/reverse.iter.ops/reverse.iter.oplt=/test.pass.cpp2
-rw-r--r--libcxx/test/iterators/predef.iterators/reverse.iterators/reverse.iter.ops/reverse.iter.opsum/difference_type.pass.cpp2
-rw-r--r--libcxx/test/iterators/predef.iterators/reverse.iterators/reverse.iterator/types.pass.cpp2
-rw-r--r--libcxx/test/re/re.alg/re.alg.match/awk.pass.cpp2
-rw-r--r--libcxx/test/re/re.alg/re.alg.match/basic.pass.cpp2
-rw-r--r--libcxx/test/re/re.alg/re.alg.match/ecma.pass.cpp2
-rw-r--r--libcxx/test/re/re.alg/re.alg.match/egrep.pass.cpp2
-rw-r--r--libcxx/test/re/re.alg/re.alg.match/extended.pass.cpp2
-rw-r--r--libcxx/test/re/re.alg/re.alg.match/grep.pass.cpp2
-rw-r--r--libcxx/test/re/re.alg/re.alg.replace/test1.pass.cpp2
-rw-r--r--libcxx/test/re/re.alg/re.alg.replace/test2.pass.cpp2
-rw-r--r--libcxx/test/re/re.alg/re.alg.search/awk.pass.cpp2
-rw-r--r--libcxx/test/re/re.alg/re.alg.search/basic.pass.cpp2
-rw-r--r--libcxx/test/re/re.alg/re.alg.search/ecma.pass.cpp2
-rw-r--r--libcxx/test/re/re.alg/re.alg.search/egrep.pass.cpp2
-rw-r--r--libcxx/test/re/re.alg/re.alg.search/extended.pass.cpp2
-rw-r--r--libcxx/test/re/re.alg/re.alg.search/grep.pass.cpp2
-rw-r--r--libcxx/test/re/re.regex/re.regex.assign/assign_iter_iter_flag.pass.cpp2
-rw-r--r--libcxx/test/re/re.regex/re.regex.construct/iter_iter.pass.cpp2
-rw-r--r--libcxx/test/re/re.regex/re.regex.construct/iter_iter_flg.pass.cpp2
-rw-r--r--libcxx/test/re/re.results/re.results.form/form1.pass.cpp2
-rw-r--r--libcxx/test/re/re.results/re.results.form/form2.pass.cpp2
-rw-r--r--libcxx/test/re/re.traits/iterators.h251
-rw-r--r--libcxx/test/re/re.traits/lookup_classname.pass.cpp2
-rw-r--r--libcxx/test/re/re.traits/lookup_collatename.pass.cpp2
-rw-r--r--libcxx/test/re/re.traits/transform.pass.cpp2
-rw-r--r--libcxx/test/re/re.traits/transform_primary.pass.cpp2
134 files changed, 131 insertions, 883 deletions
diff --git a/libcxx/test/containers/associative/map/map.modifiers/insert_iter_iter.pass.cpp b/libcxx/test/containers/associative/map/map.modifiers/insert_iter_iter.pass.cpp
index 4819359cf6e..6f26dfe3617 100644
--- a/libcxx/test/containers/associative/map/map.modifiers/insert_iter_iter.pass.cpp
+++ b/libcxx/test/containers/associative/map/map.modifiers/insert_iter_iter.pass.cpp
@@ -17,7 +17,7 @@
#include <map>
#include <cassert>
-#include "../../../iterators.h"
+#include "../../../../iterators.h"
int main()
{
diff --git a/libcxx/test/containers/associative/multimap/multimap.modifiers/insert_iter_iter.pass.cpp b/libcxx/test/containers/associative/multimap/multimap.modifiers/insert_iter_iter.pass.cpp
index 7e890119215..071c088886a 100644
--- a/libcxx/test/containers/associative/multimap/multimap.modifiers/insert_iter_iter.pass.cpp
+++ b/libcxx/test/containers/associative/multimap/multimap.modifiers/insert_iter_iter.pass.cpp
@@ -17,7 +17,7 @@
#include <map>
#include <cassert>
-#include "../../../iterators.h"
+#include "../../../../iterators.h"
int main()
{
diff --git a/libcxx/test/containers/associative/multiset/insert_iter_iter.pass.cpp b/libcxx/test/containers/associative/multiset/insert_iter_iter.pass.cpp
index 719f6ca9ad7..5a09b087301 100644
--- a/libcxx/test/containers/associative/multiset/insert_iter_iter.pass.cpp
+++ b/libcxx/test/containers/associative/multiset/insert_iter_iter.pass.cpp
@@ -17,7 +17,7 @@
#include <set>
#include <cassert>
-#include "../../iterators.h"
+#include "../../../iterators.h"
int main()
{
diff --git a/libcxx/test/containers/associative/multiset/multiset.cons/iter_iter.pass.cpp b/libcxx/test/containers/associative/multiset/multiset.cons/iter_iter.pass.cpp
index a78f36e1089..34d22267a9b 100644
--- a/libcxx/test/containers/associative/multiset/multiset.cons/iter_iter.pass.cpp
+++ b/libcxx/test/containers/associative/multiset/multiset.cons/iter_iter.pass.cpp
@@ -17,7 +17,7 @@
#include <set>
#include <cassert>
-#include "../../../iterators.h"
+#include "../../../../iterators.h"
int main()
{
diff --git a/libcxx/test/containers/associative/multiset/multiset.cons/iter_iter_alloc.pass.cpp b/libcxx/test/containers/associative/multiset/multiset.cons/iter_iter_alloc.pass.cpp
index 5c6e4d20dfe..5f32267fb6b 100644
--- a/libcxx/test/containers/associative/multiset/multiset.cons/iter_iter_alloc.pass.cpp
+++ b/libcxx/test/containers/associative/multiset/multiset.cons/iter_iter_alloc.pass.cpp
@@ -18,7 +18,7 @@
#include <set>
#include <cassert>
-#include "../../../iterators.h"
+#include "../../../../iterators.h"
#include "../../../test_compare.h"
#include "../../../test_allocator.h"
diff --git a/libcxx/test/containers/associative/multiset/multiset.cons/iter_iter_comp.pass.cpp b/libcxx/test/containers/associative/multiset/multiset.cons/iter_iter_comp.pass.cpp
index 3d3254b3dea..3c2f6e3ed86 100644
--- a/libcxx/test/containers/associative/multiset/multiset.cons/iter_iter_comp.pass.cpp
+++ b/libcxx/test/containers/associative/multiset/multiset.cons/iter_iter_comp.pass.cpp
@@ -17,7 +17,7 @@
#include <set>
#include <cassert>
-#include "../../../iterators.h"
+#include "../../../../iterators.h"
#include "../../../test_compare.h"
int main()
diff --git a/libcxx/test/containers/associative/set/insert_iter_iter.pass.cpp b/libcxx/test/containers/associative/set/insert_iter_iter.pass.cpp
index 872b36aa013..a22f5f834a8 100644
--- a/libcxx/test/containers/associative/set/insert_iter_iter.pass.cpp
+++ b/libcxx/test/containers/associative/set/insert_iter_iter.pass.cpp
@@ -17,7 +17,7 @@
#include <set>
#include <cassert>
-#include "../../iterators.h"
+#include "../../../iterators.h"
int main()
{
diff --git a/libcxx/test/containers/associative/set/set.cons/iter_iter.pass.cpp b/libcxx/test/containers/associative/set/set.cons/iter_iter.pass.cpp
index 8587f5e4aff..e1030c552b7 100644
--- a/libcxx/test/containers/associative/set/set.cons/iter_iter.pass.cpp
+++ b/libcxx/test/containers/associative/set/set.cons/iter_iter.pass.cpp
@@ -17,7 +17,7 @@
#include <set>
#include <cassert>
-#include "../../../iterators.h"
+#include "../../../../iterators.h"
int main()
{
diff --git a/libcxx/test/containers/associative/set/set.cons/iter_iter_alloc.pass.cpp b/libcxx/test/containers/associative/set/set.cons/iter_iter_alloc.pass.cpp
index 9771fe4479e..6986db5460a 100644
--- a/libcxx/test/containers/associative/set/set.cons/iter_iter_alloc.pass.cpp
+++ b/libcxx/test/containers/associative/set/set.cons/iter_iter_alloc.pass.cpp
@@ -18,7 +18,7 @@
#include <set>
#include <cassert>
-#include "../../../iterators.h"
+#include "../../../../iterators.h"
#include "../../../test_compare.h"
#include "../../../test_allocator.h"
diff --git a/libcxx/test/containers/associative/set/set.cons/iter_iter_comp.pass.cpp b/libcxx/test/containers/associative/set/set.cons/iter_iter_comp.pass.cpp
index 50c1806fd8b..ee07bb2ca37 100644
--- a/libcxx/test/containers/associative/set/set.cons/iter_iter_comp.pass.cpp
+++ b/libcxx/test/containers/associative/set/set.cons/iter_iter_comp.pass.cpp
@@ -17,7 +17,7 @@
#include <set>
#include <cassert>
-#include "../../../iterators.h"
+#include "../../../../iterators.h"
#include "../../../test_compare.h"
int main()
diff --git a/libcxx/test/containers/iterators.h b/libcxx/test/containers/iterators.h
deleted file mode 100644
index bbdeede9ff8..00000000000
--- a/libcxx/test/containers/iterators.h
+++ /dev/null
@@ -1,251 +0,0 @@
-#ifndef ITERATORS_H
-#define ITERATORS_H
-
-#include <iterator>
-
-template <class It>
-class input_iterator
-{
- It it_;
-
- template <class U> friend class input_iterator;
-public:
- typedef std::input_iterator_tag iterator_category;
- typedef typename std::iterator_traits<It>::value_type value_type;
- typedef typename std::iterator_traits<It>::difference_type difference_type;
- typedef It pointer;
- typedef typename std::iterator_traits<It>::reference reference;
-
- It base() const {return it_;}
-
- input_iterator() : it_() {}
- explicit input_iterator(It it) : it_(it) {}
- template <class U>
- input_iterator(const input_iterator<U>& u) :it_(u.it_) {}
-
- reference operator*() const {return *it_;}
- pointer operator->() const {return it_;}
-
- input_iterator& operator++() {++it_; return *this;}
- input_iterator operator++(int)
- {input_iterator tmp(*this); ++(*this); return tmp;}
-
- friend bool operator==(const input_iterator& x, const input_iterator& y)
- {return x.it_ == y.it_;}
- friend bool operator!=(const input_iterator& x, const input_iterator& y)
- {return !(x == y);}
-};
-
-template <class T, class U>
-inline
-bool
-operator==(const input_iterator<T>& x, const input_iterator<U>& y)
-{
- return x.base() == y.base();
-}
-
-template <class T, class U>
-inline
-bool
-operator!=(const input_iterator<T>& x, const input_iterator<U>& y)
-{
- return !(x == y);
-}
-
-template <class It>
-class forward_iterator
-{
- It it_;
-
- template <class U> friend class forward_iterator;
-public:
- typedef std::forward_iterator_tag iterator_category;
- typedef typename std::iterator_traits<It>::value_type value_type;
- typedef typename std::iterator_traits<It>::difference_type difference_type;
- typedef It pointer;
- typedef typename std::iterator_traits<It>::reference reference;
-
- It base() const {return it_;}
-
- forward_iterator() : it_() {}
- explicit forward_iterator(It it) : it_(it) {}
- template <class U>
- forward_iterator(const forward_iterator<U>& u) :it_(u.it_) {}
-
- reference operator*() const {return *it_;}
- pointer operator->() const {return it_;}
-
- forward_iterator& operator++() {++it_; return *this;}
- forward_iterator operator++(int)
- {forward_iterator tmp(*this); ++(*this); return tmp;}
-
- friend bool operator==(const forward_iterator& x, const forward_iterator& y)
- {return x.it_ == y.it_;}
- friend bool operator!=(const forward_iterator& x, const forward_iterator& y)
- {return !(x == y);}
-};
-
-template <class T, class U>
-inline
-bool
-operator==(const forward_iterator<T>& x, const forward_iterator<U>& y)
-{
- return x.base() == y.base();
-}
-
-template <class T, class U>
-inline
-bool
-operator!=(const forward_iterator<T>& x, const forward_iterator<U>& y)
-{
- return !(x == y);
-}
-
-template <class It>
-class bidirectional_iterator
-{
- It it_;
-
- template <class U> friend class bidirectional_iterator;
-public:
- typedef std::bidirectional_iterator_tag iterator_category;
- typedef typename std::iterator_traits<It>::value_type value_type;
- typedef typename std::iterator_traits<It>::difference_type difference_type;
- typedef It pointer;
- typedef typename std::iterator_traits<It>::reference reference;
-
- It base() const {return it_;}
-
- bidirectional_iterator() : it_() {}
- explicit bidirectional_iterator(It it) : it_(it) {}
- template <class U>
- bidirectional_iterator(const bidirectional_iterator<U>& u) :it_(u.it_) {}
-
- reference operator*() const {return *it_;}
- pointer operator->() const {return it_;}
-
- bidirectional_iterator& operator++() {++it_; return *this;}
- bidirectional_iterator operator++(int)
- {bidirectional_iterator tmp(*this); ++(*this); return tmp;}
-
- bidirectional_iterator& operator--() {--it_; return *this;}
- bidirectional_iterator operator--(int)
- {bidirectional_iterator tmp(*this); --(*this); return tmp;}
-};
-
-template <class T, class U>
-inline
-bool
-operator==(const bidirectional_iterator<T>& x, const bidirectional_iterator<U>& y)
-{
- return x.base() == y.base();
-}
-
-template <class T, class U>
-inline
-bool
-operator!=(const bidirectional_iterator<T>& x, const bidirectional_iterator<U>& y)
-{
- return !(x == y);
-}
-
-template <class It>
-class random_access_iterator
-{
- It it_;
-
- template <class U> friend class random_access_iterator;
-public:
- typedef std::random_access_iterator_tag iterator_category;
- typedef typename std::iterator_traits<It>::value_type value_type;
- typedef typename std::iterator_traits<It>::difference_type difference_type;
- typedef It pointer;
- typedef typename std::iterator_traits<It>::reference reference;
-
- It base() const {return it_;}
-
- random_access_iterator() : it_() {}
- explicit random_access_iterator(It it) : it_(it) {}
- template <class U>
- random_access_iterator(const random_access_iterator<U>& u) :it_(u.it_) {}
-
- reference operator*() const {return *it_;}
- pointer operator->() const {return it_;}
-
- random_access_iterator& operator++() {++it_; return *this;}
- random_access_iterator operator++(int)
- {random_access_iterator tmp(*this); ++(*this); return tmp;}
-
- random_access_iterator& operator--() {--it_; return *this;}
- random_access_iterator operator--(int)
- {random_access_iterator tmp(*this); --(*this); return tmp;}
-
- random_access_iterator& operator+=(difference_type n) {it_ += n; return *this;}
- random_access_iterator operator+(difference_type n) const
- {random_access_iterator tmp(*this); tmp += n; return tmp;}
- friend random_access_iterator operator+(difference_type n, random_access_iterator x)
- {x += n; return x;}
- random_access_iterator& operator-=(difference_type n) {return *this += -n;}
- random_access_iterator operator-(difference_type n) const
- {random_access_iterator tmp(*this); tmp -= n; return tmp;}
-
- reference operator[](difference_type n) const {return it_[n];}
-};
-
-template <class T, class U>
-inline
-bool
-operator==(const random_access_iterator<T>& x, const random_access_iterator<U>& y)
-{
- return x.base() == y.base();
-}
-
-template <class T, class U>
-inline
-bool
-operator!=(const random_access_iterator<T>& x, const random_access_iterator<U>& y)
-{
- return !(x == y);
-}
-
-template <class T, class U>
-inline
-bool
-operator<(const random_access_iterator<T>& x, const random_access_iterator<U>& y)
-{
- return x.base() < y.base();
-}
-
-template <class T, class U>
-inline
-bool
-operator<=(const random_access_iterator<T>& x, const random_access_iterator<U>& y)
-{
- return !(y < x);
-}
-
-template <class T, class U>
-inline
-bool
-operator>(const random_access_iterator<T>& x, const random_access_iterator<U>& y)
-{
- return y < x;
-}
-
-template <class T, class U>
-inline
-bool
-operator>=(const random_access_iterator<T>& x, const random_access_iterator<U>& y)
-{
- return !(x < y);
-}
-
-template <class T, class U>
-inline
-typename std::iterator_traits<T>::difference_type
-operator-(const random_access_iterator<T>& x, const random_access_iterator<U>& y)
-{
- return x.base() - y.base();
-}
-
-#endif // ITERATORS_H
diff --git a/libcxx/test/containers/sequences/deque/deque.cons/assign_iter_iter.pass.cpp b/libcxx/test/containers/sequences/deque/deque.cons/assign_iter_iter.pass.cpp
index 3611c56b9a2..6ce1bf8d605 100644
--- a/libcxx/test/containers/sequences/deque/deque.cons/assign_iter_iter.pass.cpp
+++ b/libcxx/test/containers/sequences/deque/deque.cons/assign_iter_iter.pass.cpp
@@ -15,7 +15,7 @@
#include <deque>
#include <cassert>
-#include "../../../iterators.h"
+#include "../../../../iterators.h"
std::deque<int>
make(int size, int start = 0 )
diff --git a/libcxx/test/containers/sequences/deque/deque.cons/assign_size_value.pass.cpp b/libcxx/test/containers/sequences/deque/deque.cons/assign_size_value.pass.cpp
index 3371e4e55cf..d7d8668c1a6 100644
--- a/libcxx/test/containers/sequences/deque/deque.cons/assign_size_value.pass.cpp
+++ b/libcxx/test/containers/sequences/deque/deque.cons/assign_size_value.pass.cpp
@@ -14,7 +14,7 @@
#include <deque>
#include <cassert>
-#include "../../../iterators.h"
+#include "../../../../iterators.h"
std::deque<int>
make(int size, int start = 0 )
diff --git a/libcxx/test/containers/sequences/deque/deque.cons/iter_iter.pass.cpp b/libcxx/test/containers/sequences/deque/deque.cons/iter_iter.pass.cpp
index a195a2a24c1..4c6604f489e 100644
--- a/libcxx/test/containers/sequences/deque/deque.cons/iter_iter.pass.cpp
+++ b/libcxx/test/containers/sequences/deque/deque.cons/iter_iter.pass.cpp
@@ -15,7 +15,7 @@
#include <cassert>
#include "../../../stack_allocator.h"
-#include "../../../iterators.h"
+#include "../../../../iterators.h"
template <class InputIterator>
void
diff --git a/libcxx/test/containers/sequences/deque/deque.cons/iter_iter_alloc.pass.cpp b/libcxx/test/containers/sequences/deque/deque.cons/iter_iter_alloc.pass.cpp
index 7b960127c3a..86271fa455c 100644
--- a/libcxx/test/containers/sequences/deque/deque.cons/iter_iter_alloc.pass.cpp
+++ b/libcxx/test/containers/sequences/deque/deque.cons/iter_iter_alloc.pass.cpp
@@ -15,7 +15,7 @@
#include <deque>
#include <cassert>
-#include "../../../iterators.h"
+#include "../../../../iterators.h"
#include "../../../test_allocator.h"
template <class InputIterator, class Allocator>
diff --git a/libcxx/test/containers/sequences/deque/deque.modifiers/insert_iter_iter.pass.cpp b/libcxx/test/containers/sequences/deque/deque.modifiers/insert_iter_iter.pass.cpp
index 9e81a38cbca..777fc7e44f6 100644
--- a/libcxx/test/containers/sequences/deque/deque.modifiers/insert_iter_iter.pass.cpp
+++ b/libcxx/test/containers/sequences/deque/deque.modifiers/insert_iter_iter.pass.cpp
@@ -15,7 +15,7 @@
#include <deque>
#include <cassert>
-#include "../../../iterators.h"
+#include "../../../../iterators.h"
#include "../../../MoveOnly.h"
#include "../../../stack_allocator.h"
diff --git a/libcxx/test/containers/sequences/deque/deque.special/copy.pass.cpp b/libcxx/test/containers/sequences/deque/deque.special/copy.pass.cpp
index e48d740ab26..bca245e6669 100644
--- a/libcxx/test/containers/sequences/deque/deque.special/copy.pass.cpp
+++ b/libcxx/test/containers/sequences/deque/deque.special/copy.pass.cpp
@@ -18,7 +18,7 @@
#include <deque>
#include <cassert>
-#include "../../../iterators.h"
+#include "../../../../iterators.h"
std::deque<int>
make(int size, int start = 0 )
diff --git a/libcxx/test/containers/sequences/deque/deque.special/copy_backward.pass.cpp b/libcxx/test/containers/sequences/deque/deque.special/copy_backward.pass.cpp
index 63c4003da60..74e84bc1a58 100644
--- a/libcxx/test/containers/sequences/deque/deque.special/copy_backward.pass.cpp
+++ b/libcxx/test/containers/sequences/deque/deque.special/copy_backward.pass.cpp
@@ -18,7 +18,7 @@
#include <deque>
#include <cassert>
-#include "../../../iterators.h"
+#include "../../../../iterators.h"
std::deque<int>
make(int size, int start = 0 )
diff --git a/libcxx/test/containers/sequences/deque/deque.special/move.pass.cpp b/libcxx/test/containers/sequences/deque/deque.special/move.pass.cpp
index 632fe7ab31a..36c37e0075c 100644
--- a/libcxx/test/containers/sequences/deque/deque.special/move.pass.cpp
+++ b/libcxx/test/containers/sequences/deque/deque.special/move.pass.cpp
@@ -18,7 +18,7 @@
#include <deque>
#include <cassert>
-#include "../../../iterators.h"
+#include "../../../../iterators.h"
std::deque<int>
make(int size, int start = 0 )
diff --git a/libcxx/test/containers/sequences/deque/deque.special/move_backward.pass.cpp b/libcxx/test/containers/sequences/deque/deque.special/move_backward.pass.cpp
index c989a44dd28..5b4726e4a96 100644
--- a/libcxx/test/containers/sequences/deque/deque.special/move_backward.pass.cpp
+++ b/libcxx/test/containers/sequences/deque/deque.special/move_backward.pass.cpp
@@ -18,7 +18,7 @@
#include <deque>
#include <cassert>
-#include "../../../iterators.h"
+#include "../../../../iterators.h"
std::deque<int>
make(int size, int start = 0 )
diff --git a/libcxx/test/containers/sequences/forwardlist/forwardlist.cons/assign_range.pass.cpp b/libcxx/test/containers/sequences/forwardlist/forwardlist.cons/assign_range.pass.cpp
index 61c983850d0..db6b587d461 100644
--- a/libcxx/test/containers/sequences/forwardlist/forwardlist.cons/assign_range.pass.cpp
+++ b/libcxx/test/containers/sequences/forwardlist/forwardlist.cons/assign_range.pass.cpp
@@ -16,7 +16,7 @@
#include <cassert>
#include <iterator>
-#include "../../../iterators.h"
+#include "../../../../iterators.h"
int main()
{
diff --git a/libcxx/test/containers/sequences/forwardlist/forwardlist.cons/range.pass.cpp b/libcxx/test/containers/sequences/forwardlist/forwardlist.cons/range.pass.cpp
index 31f4c497092..2986f61451e 100644
--- a/libcxx/test/containers/sequences/forwardlist/forwardlist.cons/range.pass.cpp
+++ b/libcxx/test/containers/sequences/forwardlist/forwardlist.cons/range.pass.cpp
@@ -16,7 +16,7 @@
#include <cassert>
#include <iterator>
-#include "../../../iterators.h"
+#include "../../../../iterators.h"
int main()
{
diff --git a/libcxx/test/containers/sequences/forwardlist/forwardlist.cons/range_alloc.pass.cpp b/libcxx/test/containers/sequences/forwardlist/forwardlist.cons/range_alloc.pass.cpp
index 2efcc78600b..5709c7b0bd1 100644
--- a/libcxx/test/containers/sequences/forwardlist/forwardlist.cons/range_alloc.pass.cpp
+++ b/libcxx/test/containers/sequences/forwardlist/forwardlist.cons/range_alloc.pass.cpp
@@ -18,7 +18,7 @@
#include <iterator>
#include "../../../test_allocator.h"
-#include "../../../iterators.h"
+#include "../../../../iterators.h"
int main()
{
diff --git a/libcxx/test/containers/sequences/forwardlist/forwardlist.modifiers/insert_after_range.pass.cpp b/libcxx/test/containers/sequences/forwardlist/forwardlist.modifiers/insert_after_range.pass.cpp
index 41e09aefe67..544eb0b73f0 100644
--- a/libcxx/test/containers/sequences/forwardlist/forwardlist.modifiers/insert_after_range.pass.cpp
+++ b/libcxx/test/containers/sequences/forwardlist/forwardlist.modifiers/insert_after_range.pass.cpp
@@ -16,7 +16,7 @@
#include <forward_list>
#include <cassert>
-#include "../../../iterators.h"
+#include "../../../../iterators.h"
int main()
{
diff --git a/libcxx/test/containers/sequences/list/list.cons/input_iterator.pass.cpp b/libcxx/test/containers/sequences/list/list.cons/input_iterator.pass.cpp
index bea481f2e3e..760a15e07f9 100644
--- a/libcxx/test/containers/sequences/list/list.cons/input_iterator.pass.cpp
+++ b/libcxx/test/containers/sequences/list/list.cons/input_iterator.pass.cpp
@@ -14,7 +14,7 @@
#include <list>
#include <cassert>
-#include "../../../iterators.h"
+#include "../../../../iterators.h"
#include "../../../stack_allocator.h"
int main()
diff --git a/libcxx/test/containers/sequences/vector.bool/construct_iter_iter.pass.cpp b/libcxx/test/containers/sequences/vector.bool/construct_iter_iter.pass.cpp
index e70a36d0c66..b64fd2d51be 100644
--- a/libcxx/test/containers/sequences/vector.bool/construct_iter_iter.pass.cpp
+++ b/libcxx/test/containers/sequences/vector.bool/construct_iter_iter.pass.cpp
@@ -15,7 +15,7 @@
#include <vector>
#include <cassert>
-#include "../../iterators.h"
+#include "../../../iterators.h"
template <class C, class Iterator>
void
diff --git a/libcxx/test/containers/sequences/vector.bool/construct_iter_iter_alloc.pass.cpp b/libcxx/test/containers/sequences/vector.bool/construct_iter_iter_alloc.pass.cpp
index 4044bbd5acc..df99cb53384 100644
--- a/libcxx/test/containers/sequences/vector.bool/construct_iter_iter_alloc.pass.cpp
+++ b/libcxx/test/containers/sequences/vector.bool/construct_iter_iter_alloc.pass.cpp
@@ -16,7 +16,7 @@
#include <vector>
#include <cassert>
-#include "../../iterators.h"
+#include "../../../iterators.h"
template <class C, class Iterator>
void
diff --git a/libcxx/test/containers/sequences/vector.bool/insert_iter_iter_iter.pass.cpp b/libcxx/test/containers/sequences/vector.bool/insert_iter_iter_iter.pass.cpp
index 200c148c212..1f24c2e00dd 100644
--- a/libcxx/test/containers/sequences/vector.bool/insert_iter_iter_iter.pass.cpp
+++ b/libcxx/test/containers/sequences/vector.bool/insert_iter_iter_iter.pass.cpp
@@ -15,7 +15,7 @@
#include <vector>
#include <cassert>
-#include "../../iterators.h"
+#include "../../../iterators.h"
int main()
{
diff --git a/libcxx/test/containers/sequences/vector/vector.cons/construct_iter_iter.pass.cpp b/libcxx/test/containers/sequences/vector/vector.cons/construct_iter_iter.pass.cpp
index f9b54d07d0d..c284f63bad1 100644
--- a/libcxx/test/containers/sequences/vector/vector.cons/construct_iter_iter.pass.cpp
+++ b/libcxx/test/containers/sequences/vector/vector.cons/construct_iter_iter.pass.cpp
@@ -14,7 +14,7 @@
#include <vector>
#include <cassert>
-#include "../../../iterators.h"
+#include "../../../../iterators.h"
#include "../../../stack_allocator.h"
template <class C, class Iterator>
diff --git a/libcxx/test/containers/sequences/vector/vector.cons/construct_iter_iter_alloc.pass.cpp b/libcxx/test/containers/sequences/vector/vector.cons/construct_iter_iter_alloc.pass.cpp
index 7a3c6073ffe..8f21cd21993 100644
--- a/libcxx/test/containers/sequences/vector/vector.cons/construct_iter_iter_alloc.pass.cpp
+++ b/libcxx/test/containers/sequences/vector/vector.cons/construct_iter_iter_alloc.pass.cpp
@@ -15,7 +15,7 @@
#include <vector>
#include <cassert>
-#include "../../../iterators.h"
+#include "../../../../iterators.h"
#include "../../../stack_allocator.h"
template <class C, class Iterator>
diff --git a/libcxx/test/containers/sequences/vector/vector.modifiers/insert_iter_iter_iter.pass.cpp b/libcxx/test/containers/sequences/vector/vector.modifiers/insert_iter_iter_iter.pass.cpp
index 3c40962d2af..878258ca13a 100644
--- a/libcxx/test/containers/sequences/vector/vector.modifiers/insert_iter_iter_iter.pass.cpp
+++ b/libcxx/test/containers/sequences/vector/vector.modifiers/insert_iter_iter_iter.pass.cpp
@@ -15,7 +15,7 @@
#include <vector>
#include <cassert>
#include "../../../stack_allocator.h"
-#include "../../../iterators.h"
+#include "../../../../iterators.h"
int main()
{
diff --git a/libcxx/test/containers/unord/unord.map/unord.map.cnstr/range.pass.cpp b/libcxx/test/containers/unord/unord.map/unord.map.cnstr/range.pass.cpp
index 89fd0831eb9..9b9d5ab5994 100644
--- a/libcxx/test/containers/unord/unord.map/unord.map.cnstr/range.pass.cpp
+++ b/libcxx/test/containers/unord/unord.map/unord.map.cnstr/range.pass.cpp
@@ -21,7 +21,7 @@
#include <cassert>
#include <cfloat>
-#include "../../../iterators.h"
+#include "../../../../iterators.h"
#include "../../../NotConstructible.h"
#include "../../../test_compare.h"
#include "../../../test_hash.h"
diff --git a/libcxx/test/containers/unord/unord.map/unord.map.cnstr/range_size.pass.cpp b/libcxx/test/containers/unord/unord.map/unord.map.cnstr/range_size.pass.cpp
index 54ac382657f..9be6a3bf01f 100644
--- a/libcxx/test/containers/unord/unord.map/unord.map.cnstr/range_size.pass.cpp
+++ b/libcxx/test/containers/unord/unord.map/unord.map.cnstr/range_size.pass.cpp
@@ -21,7 +21,7 @@
#include <cassert>
#include <cfloat>
-#include "../../../iterators.h"
+#include "../../../../iterators.h"
#include "../../../NotConstructible.h"
#include "../../../test_compare.h"
#include "../../../test_hash.h"
diff --git a/libcxx/test/containers/unord/unord.map/unord.map.cnstr/range_size_hash.pass.cpp b/libcxx/test/containers/unord/unord.map/unord.map.cnstr/range_size_hash.pass.cpp
index 90a968e3bb4..05fa7889a60 100644
--- a/libcxx/test/containers/unord/unord.map/unord.map.cnstr/range_size_hash.pass.cpp
+++ b/libcxx/test/containers/unord/unord.map/unord.map.cnstr/range_size_hash.pass.cpp
@@ -22,7 +22,7 @@
#include <cassert>
#include <cfloat>
-#include "../../../iterators.h"
+#include "../../../../iterators.h"
#include "../../../NotConstructible.h"
#include "../../../test_compare.h"
#include "../../../test_hash.h"
diff --git a/libcxx/test/containers/unord/unord.map/unord.map.cnstr/range_size_hash_equal.pass.cpp b/libcxx/test/containers/unord/unord.map/unord.map.cnstr/range_size_hash_equal.pass.cpp
index b7b05a01880..4f4784fb452 100644
--- a/libcxx/test/containers/unord/unord.map/unord.map.cnstr/range_size_hash_equal.pass.cpp
+++ b/libcxx/test/containers/unord/unord.map/unord.map.cnstr/range_size_hash_equal.pass.cpp
@@ -22,7 +22,7 @@
#include <cassert>
#include <cfloat>
-#include "../../../iterators.h"
+#include "../../../../iterators.h"
#include "../../../NotConstructible.h"
#include "../../../test_compare.h"
#include "../../../test_hash.h"
diff --git a/libcxx/test/containers/unord/unord.map/unord.map.cnstr/range_size_hash_equal_allocator.pass.cpp b/libcxx/test/containers/unord/unord.map/unord.map.cnstr/range_size_hash_equal_allocator.pass.cpp
index d8a182d3c40..d4f7b9f3490 100644
--- a/libcxx/test/containers/unord/unord.map/unord.map.cnstr/range_size_hash_equal_allocator.pass.cpp
+++ b/libcxx/test/containers/unord/unord.map/unord.map.cnstr/range_size_hash_equal_allocator.pass.cpp
@@ -23,7 +23,7 @@
#include <cassert>
#include <cfloat>
-#include "../../../iterators.h"
+#include "../../../../iterators.h"
#include "../../../NotConstructible.h"
#include "../../../test_compare.h"
#include "../../../test_hash.h"
diff --git a/libcxx/test/containers/unord/unord.map/unorder.map.modifiers/insert_init.pass.cpp b/libcxx/test/containers/unord/unord.map/unorder.map.modifiers/insert_init.pass.cpp
index c17cc83ad26..ee605575b32 100644
--- a/libcxx/test/containers/unord/unord.map/unorder.map.modifiers/insert_init.pass.cpp
+++ b/libcxx/test/containers/unord/unord.map/unorder.map.modifiers/insert_init.pass.cpp
@@ -19,7 +19,7 @@
#include <string>
#include <cassert>
-#include "../../../iterators.h"
+#include "../../../../iterators.h"
int main()
{
diff --git a/libcxx/test/containers/unord/unord.map/unorder.map.modifiers/insert_range.pass.cpp b/libcxx/test/containers/unord/unord.map/unorder.map.modifiers/insert_range.pass.cpp
index d81c6066f58..2f01680ded8 100644
--- a/libcxx/test/containers/unord/unord.map/unorder.map.modifiers/insert_range.pass.cpp
+++ b/libcxx/test/containers/unord/unord.map/unorder.map.modifiers/insert_range.pass.cpp
@@ -20,7 +20,7 @@
#include <string>
#include <cassert>
-#include "../../../iterators.h"
+#include "../../../../iterators.h"
int main()
{
diff --git a/libcxx/test/containers/unord/unord.multimap/unord.multimap.cnstr/range.pass.cpp b/libcxx/test/containers/unord/unord.multimap/unord.multimap.cnstr/range.pass.cpp
index b77914fe69b..1055fbfd6ef 100644
--- a/libcxx/test/containers/unord/unord.multimap/unord.multimap.cnstr/range.pass.cpp
+++ b/libcxx/test/containers/unord/unord.multimap/unord.multimap.cnstr/range.pass.cpp
@@ -21,7 +21,7 @@
#include <cassert>
#include <cfloat>
-#include "../../../iterators.h"
+#include "../../../../iterators.h"
#include "../../../NotConstructible.h"
#include "../../../test_compare.h"
#include "../../../test_hash.h"
diff --git a/libcxx/test/containers/unord/unord.multimap/unord.multimap.cnstr/range_size.pass.cpp b/libcxx/test/containers/unord/unord.multimap/unord.multimap.cnstr/range_size.pass.cpp
index ea4e16ecf10..1ab664e1701 100644
--- a/libcxx/test/containers/unord/unord.multimap/unord.multimap.cnstr/range_size.pass.cpp
+++ b/libcxx/test/containers/unord/unord.multimap/unord.multimap.cnstr/range_size.pass.cpp
@@ -21,7 +21,7 @@
#include <cassert>
#include <cfloat>
-#include "../../../iterators.h"
+#include "../../../../iterators.h"
#include "../../../NotConstructible.h"
#include "../../../test_compare.h"
#include "../../../test_hash.h"
diff --git a/libcxx/test/containers/unord/unord.multimap/unord.multimap.cnstr/range_size_hash.pass.cpp b/libcxx/test/containers/unord/unord.multimap/unord.multimap.cnstr/range_size_hash.pass.cpp
index 0394d177f4e..fb2b6a421a5 100644
--- a/libcxx/test/containers/unord/unord.multimap/unord.multimap.cnstr/range_size_hash.pass.cpp
+++ b/libcxx/test/containers/unord/unord.multimap/unord.multimap.cnstr/range_size_hash.pass.cpp
@@ -22,7 +22,7 @@
#include <cassert>
#include <cfloat>
-#include "../../../iterators.h"
+#include "../../../../iterators.h"
#include "../../../NotConstructible.h"
#include "../../../test_compare.h"
#include "../../../test_hash.h"
diff --git a/libcxx/test/containers/unord/unord.multimap/unord.multimap.cnstr/range_size_hash_equal.pass.cpp b/libcxx/test/containers/unord/unord.multimap/unord.multimap.cnstr/range_size_hash_equal.pass.cpp
index 93af58ab61c..23a38b2cf22 100644
--- a/libcxx/test/containers/unord/unord.multimap/unord.multimap.cnstr/range_size_hash_equal.pass.cpp
+++ b/libcxx/test/containers/unord/unord.multimap/unord.multimap.cnstr/range_size_hash_equal.pass.cpp
@@ -22,7 +22,7 @@
#include <cassert>
#include <cfloat>
-#include "../../../iterators.h"
+#include "../../../../iterators.h"
#include "../../../NotConstructible.h"
#include "../../../test_compare.h"
#include "../../../test_hash.h"
diff --git a/libcxx/test/containers/unord/unord.multimap/unord.multimap.cnstr/range_size_hash_equal_allocator.pass.cpp b/libcxx/test/containers/unord/unord.multimap/unord.multimap.cnstr/range_size_hash_equal_allocator.pass.cpp
index f348d69f64e..8abeb3bd04b 100644
--- a/libcxx/test/containers/unord/unord.multimap/unord.multimap.cnstr/range_size_hash_equal_allocator.pass.cpp
+++ b/libcxx/test/containers/unord/unord.multimap/unord.multimap.cnstr/range_size_hash_equal_allocator.pass.cpp
@@ -23,7 +23,7 @@
#include <cassert>
#include <cfloat>
-#include "../../../iterators.h"
+#include "../../../../iterators.h"
#include "../../../NotConstructible.h"
#include "../../../test_compare.h"
#include "../../../test_hash.h"
diff --git a/libcxx/test/containers/unord/unord.multimap/unord.multimap.modifiers/insert_init.pass.cpp b/libcxx/test/containers/unord/unord.multimap/unord.multimap.modifiers/insert_init.pass.cpp
index 4d9d2506c02..1cdc45ebee5 100644
--- a/libcxx/test/containers/unord/unord.multimap/unord.multimap.modifiers/insert_init.pass.cpp
+++ b/libcxx/test/containers/unord/unord.multimap/unord.multimap.modifiers/insert_init.pass.cpp
@@ -19,7 +19,7 @@
#include <string>
#include <cassert>
-#include "../../../iterators.h"
+#include "../../../../iterators.h"
int main()
{
diff --git a/libcxx/test/containers/unord/unord.multimap/unord.multimap.modifiers/insert_range.pass.cpp b/libcxx/test/containers/unord/unord.multimap/unord.multimap.modifiers/insert_range.pass.cpp
index 7250d1afc81..43b6c994106 100644
--- a/libcxx/test/containers/unord/unord.multimap/unord.multimap.modifiers/insert_range.pass.cpp
+++ b/libcxx/test/containers/unord/unord.multimap/unord.multimap.modifiers/insert_range.pass.cpp
@@ -20,7 +20,7 @@
#include <string>
#include <cassert>
-#include "../../../iterators.h"
+#include "../../../../iterators.h"
int main()
{
diff --git a/libcxx/test/containers/unord/unord.multiset/insert_init.pass.cpp b/libcxx/test/containers/unord/unord.multiset/insert_init.pass.cpp
index 60090d251fb..bb4216d5a7d 100644
--- a/libcxx/test/containers/unord/unord.multiset/insert_init.pass.cpp
+++ b/libcxx/test/containers/unord/unord.multiset/insert_init.pass.cpp
@@ -18,7 +18,7 @@
#include <unordered_set>
#include <cassert>
-#include "../../iterators.h"
+#include "../../../iterators.h"
int main()
{
diff --git a/libcxx/test/containers/unord/unord.multiset/insert_range.pass.cpp b/libcxx/test/containers/unord/unord.multiset/insert_range.pass.cpp
index 9cacd116ed9..44dddfdb0ba 100644
--- a/libcxx/test/containers/unord/unord.multiset/insert_range.pass.cpp
+++ b/libcxx/test/containers/unord/unord.multiset/insert_range.pass.cpp
@@ -19,7 +19,7 @@
#include <unordered_set>
#include <cassert>
-#include "../../iterators.h"
+#include "../../../iterators.h"
int main()
{
diff --git a/libcxx/test/containers/unord/unord.multiset/unord.multiset.cnstr/range.pass.cpp b/libcxx/test/containers/unord/unord.multiset/unord.multiset.cnstr/range.pass.cpp
index 6219c3ce9f8..ac977595f72 100644
--- a/libcxx/test/containers/unord/unord.multiset/unord.multiset.cnstr/range.pass.cpp
+++ b/libcxx/test/containers/unord/unord.multiset/unord.multiset.cnstr/range.pass.cpp
@@ -20,7 +20,7 @@
#include <cassert>
#include <cfloat>
-#include "../../../iterators.h"
+#include "../../../../iterators.h"
#include "../../../test_compare.h"
#include "../../../test_hash.h"
#include "../../../test_allocator.h"
diff --git a/libcxx/test/containers/unord/unord.multiset/unord.multiset.cnstr/range_size.pass.cpp b/libcxx/test/containers/unord/unord.multiset/unord.multiset.cnstr/range_size.pass.cpp
index 63d265f1101..1fdee83934f 100644
--- a/libcxx/test/containers/unord/unord.multiset/unord.multiset.cnstr/range_size.pass.cpp
+++ b/libcxx/test/containers/unord/unord.multiset/unord.multiset.cnstr/range_size.pass.cpp
@@ -20,7 +20,7 @@
#include <cassert>
#include <cfloat>
-#include "../../../iterators.h"
+#include "../../../../iterators.h"
#include "../../../test_compare.h"
#include "../../../test_hash.h"
#include "../../../test_allocator.h"
diff --git a/libcxx/test/containers/unord/unord.multiset/unord.multiset.cnstr/range_size_hash.pass.cpp b/libcxx/test/containers/unord/unord.multiset/unord.multiset.cnstr/range_size_hash.pass.cpp
index 396d9df5000..0f3ff9741d6 100644
--- a/libcxx/test/containers/unord/unord.multiset/unord.multiset.cnstr/range_size_hash.pass.cpp
+++ b/libcxx/test/containers/unord/unord.multiset/unord.multiset.cnstr/range_size_hash.pass.cpp
@@ -21,7 +21,7 @@
#include <cassert>
#include <cfloat>
-#include "../../../iterators.h"
+#include "../../../../iterators.h"
#include "../../../test_compare.h"
#include "../../../test_hash.h"
#include "../../../test_allocator.h"
diff --git a/libcxx/test/containers/unord/unord.multiset/unord.multiset.cnstr/range_size_hash_equal.pass.cpp b/libcxx/test/containers/unord/unord.multiset/unord.multiset.cnstr/range_size_hash_equal.pass.cpp
index 7b660d375d1..c0f3c310e93 100644
--- a/libcxx/test/containers/unord/unord.multiset/unord.multiset.cnstr/range_size_hash_equal.pass.cpp
+++ b/libcxx/test/containers/unord/unord.multiset/unord.multiset.cnstr/range_size_hash_equal.pass.cpp
@@ -21,7 +21,7 @@
#include <cassert>
#include <cfloat>
-#include "../../../iterators.h"
+#include "../../../../iterators.h"
#include "../../../test_compare.h"
#include "../../../test_hash.h"
#include "../../../test_allocator.h"
diff --git a/libcxx/test/containers/unord/unord.multiset/unord.multiset.cnstr/range_size_hash_equal_allocator.pass.cpp b/libcxx/test/containers/unord/unord.multiset/unord.multiset.cnstr/range_size_hash_equal_allocator.pass.cpp
index e498063e73c..585adeb18fa 100644
--- a/libcxx/test/containers/unord/unord.multiset/unord.multiset.cnstr/range_size_hash_equal_allocator.pass.cpp
+++ b/libcxx/test/containers/unord/unord.multiset/unord.multiset.cnstr/range_size_hash_equal_allocator.pass.cpp
@@ -22,7 +22,7 @@
#include <cassert>
#include <cfloat>
-#include "../../../iterators.h"
+#include "../../../../iterators.h"
#include "../../../test_compare.h"
#include "../../../test_hash.h"
#include "../../../test_allocator.h"
diff --git a/libcxx/test/containers/unord/unord.set/insert_init.pass.cpp b/libcxx/test/containers/unord/unord.set/insert_init.pass.cpp
index 370ff02308e..57588f442f1 100644
--- a/libcxx/test/containers/unord/unord.set/insert_init.pass.cpp
+++ b/libcxx/test/containers/unord/unord.set/insert_init.pass.cpp
@@ -18,7 +18,7 @@
#include <unordered_set>
#include <cassert>
-#include "../../iterators.h"
+#include "../../../iterators.h"
int main()
{
diff --git a/libcxx/test/containers/unord/unord.set/insert_range.pass.cpp b/libcxx/test/containers/unord/unord.set/insert_range.pass.cpp
index cb46cdf554b..cf713026acd 100644
--- a/libcxx/test/containers/unord/unord.set/insert_range.pass.cpp
+++ b/libcxx/test/containers/unord/unord.set/insert_range.pass.cpp
@@ -19,7 +19,7 @@
#include <unordered_set>
#include <cassert>
-#include "../../iterators.h"
+#include "../../../iterators.h"
int main()
{
diff --git a/libcxx/test/containers/unord/unord.set/unord.set.cnstr/range.pass.cpp b/libcxx/test/containers/unord/unord.set/unord.set.cnstr/range.pass.cpp
index f1f018aaa91..6419f3339af 100644
--- a/libcxx/test/containers/unord/unord.set/unord.set.cnstr/range.pass.cpp
+++ b/libcxx/test/containers/unord/unord.set/unord.set.cnstr/range.pass.cpp
@@ -20,7 +20,7 @@
#include <cassert>
#include <cfloat>
-#include "../../../iterators.h"
+#include "../../../../iterators.h"
#include "../../../test_compare.h"
#include "../../../test_hash.h"
#include "../../../test_allocator.h"
diff --git a/libcxx/test/containers/unord/unord.set/unord.set.cnstr/range_size.pass.cpp b/libcxx/test/containers/unord/unord.set/unord.set.cnstr/range_size.pass.cpp
index 34a095e8dd6..531a5f03ac6 100644
--- a/libcxx/test/containers/unord/unord.set/unord.set.cnstr/range_size.pass.cpp
+++ b/libcxx/test/containers/unord/unord.set/unord.set.cnstr/range_size.pass.cpp
@@ -20,7 +20,7 @@
#include <cassert>
#include <cfloat>
-#include "../../../iterators.h"
+#include "../../../../iterators.h"
#include "../../../test_compare.h"
#include "../../../test_hash.h"
#include "../../../test_allocator.h"
diff --git a/libcxx/test/containers/unord/unord.set/unord.set.cnstr/range_size_hash.pass.cpp b/libcxx/test/containers/unord/unord.set/unord.set.cnstr/range_size_hash.pass.cpp
index 7c60acdcc25..d84d7266082 100644
--- a/libcxx/test/containers/unord/unord.set/unord.set.cnstr/range_size_hash.pass.cpp
+++ b/libcxx/test/containers/unord/unord.set/unord.set.cnstr/range_size_hash.pass.cpp
@@ -21,7 +21,7 @@
#include <cassert>
#include <cfloat>
-#include "../../../iterators.h"
+#include "../../../../iterators.h"
#include "../../../test_compare.h"
#include "../../../test_hash.h"
#include "../../../test_allocator.h"
diff --git a/libcxx/test/containers/unord/unord.set/unord.set.cnstr/range_size_hash_equal.pass.cpp b/libcxx/test/containers/unord/unord.set/unord.set.cnstr/range_size_hash_equal.pass.cpp
index 014df1bb5cb..266c2cbb134 100644
--- a/libcxx/test/containers/unord/unord.set/unord.set.cnstr/range_size_hash_equal.pass.cpp
+++ b/libcxx/test/containers/unord/unord.set/unord.set.cnstr/range_size_hash_equal.pass.cpp
@@ -21,7 +21,7 @@
#include <cassert>
#include <cfloat>
-#include "../../../iterators.h"
+#include "../../../../iterators.h"
#include "../../../test_compare.h"
#include "../../../test_hash.h"
#include "../../../test_allocator.h"
diff --git a/libcxx/test/containers/unord/unord.set/unord.set.cnstr/range_size_hash_equal_allocator.pass.cpp b/libcxx/test/containers/unord/unord.set/unord.set.cnstr/range_size_hash_equal_allocator.pass.cpp
index a111153f813..b2e9914875d 100644
--- a/libcxx/test/containers/unord/unord.set/unord.set.cnstr/range_size_hash_equal_allocator.pass.cpp
+++ b/libcxx/test/containers/unord/unord.set/unord.set.cnstr/range_size_hash_equal_allocator.pass.cpp
@@ -22,7 +22,7 @@
#include <cassert>
#include <cfloat>
-#include "../../../iterators.h"
+#include "../../../../iterators.h"
#include "../../../test_compare.h"
#include "../../../test_hash.h"
#include "../../../test_allocator.h"
diff --git a/libcxx/test/re/iterators.h b/libcxx/test/iterators.h
index 3d2f5a8b6ff..167ed0bb63b 100644
--- a/libcxx/test/re/iterators.h
+++ b/libcxx/test/iterators.h
@@ -18,6 +18,7 @@ public:
It base() const {return it_;}
+ output_iterator () {}
explicit output_iterator(It it) : it_(it) {}
template <class U>
output_iterator(const output_iterator<U>& u) :it_(u.it_) {}
diff --git a/libcxx/test/iterators/iterator.primitives/iterator.operations/advance.pass.cpp b/libcxx/test/iterators/iterator.primitives/iterator.operations/advance.pass.cpp
index 73a0fe90ec5..db3dcc15760 100644
--- a/libcxx/test/iterators/iterator.primitives/iterator.operations/advance.pass.cpp
+++ b/libcxx/test/iterators/iterator.primitives/iterator.operations/advance.pass.cpp
@@ -21,7 +21,7 @@
#include <iterator>
#include <cassert>
-#include "../../iterators.h"
+#include "../../../iterators.h"
template <class It>
void
diff --git a/libcxx/test/iterators/iterator.primitives/iterator.operations/distance.pass.cpp b/libcxx/test/iterators/iterator.primitives/iterator.operations/distance.pass.cpp
index be3dcf48b4c..aaea842a15e 100644
--- a/libcxx/test/iterators/iterator.primitives/iterator.operations/distance.pass.cpp
+++ b/libcxx/test/iterators/iterator.primitives/iterator.operations/distance.pass.cpp
@@ -20,7 +20,7 @@
#include <iterator>
#include <cassert>
-#include "../../iterators.h"
+#include "../../../iterators.h"
template <class It>
void
diff --git a/libcxx/test/iterators/iterator.primitives/iterator.operations/next.pass.cpp b/libcxx/test/iterators/iterator.primitives/iterator.operations/next.pass.cpp
index 2b81fe535d6..6d99ed2b4b7 100644
--- a/libcxx/test/iterators/iterator.primitives/iterator.operations/next.pass.cpp
+++ b/libcxx/test/iterators/iterator.primitives/iterator.operations/next.pass.cpp
@@ -15,7 +15,7 @@
#include <iterator>
#include <cassert>
-#include "../../iterators.h"
+#include "../../../iterators.h"
template <class It>
void
diff --git a/libcxx/test/iterators/iterator.primitives/iterator.operations/prev.pass.cpp b/libcxx/test/iterators/iterator.primitives/iterator.operations/prev.pass.cpp
index 1c58b06db07..44ceb007fdb 100644
--- a/libcxx/test/iterators/iterator.primitives/iterator.operations/prev.pass.cpp
+++ b/libcxx/test/iterators/iterator.primitives/iterator.operations/prev.pass.cpp
@@ -15,7 +15,7 @@
#include <iterator>
#include <cassert>
-#include "../../iterators.h"
+#include "../../../iterators.h"
template <class It>
void
diff --git a/libcxx/test/iterators/iterators.h b/libcxx/test/iterators/iterators.h
deleted file mode 100644
index bbdeede9ff8..00000000000
--- a/libcxx/test/iterators/iterators.h
+++ /dev/null
@@ -1,251 +0,0 @@
-#ifndef ITERATORS_H
-#define ITERATORS_H
-
-#include <iterator>
-
-template <class It>
-class input_iterator
-{
- It it_;
-
- template <class U> friend class input_iterator;
-public:
- typedef std::input_iterator_tag iterator_category;
- typedef typename std::iterator_traits<It>::value_type value_type;
- typedef typename std::iterator_traits<It>::difference_type difference_type;
- typedef It pointer;
- typedef typename std::iterator_traits<It>::reference reference;
-
- It base() const {return it_;}
-
- input_iterator() : it_() {}
- explicit input_iterator(It it) : it_(it) {}
- template <class U>
- input_iterator(const input_iterator<U>& u) :it_(u.it_) {}
-
- reference operator*() const {return *it_;}
- pointer operator->() const {return it_;}
-
- input_iterator& operator++() {++it_; return *this;}
- input_iterator operator++(int)
- {input_iterator tmp(*this); ++(*this); return tmp;}
-
- friend bool operator==(const input_iterator& x, const input_iterator& y)
- {return x.it_ == y.it_;}
- friend bool operator!=(const input_iterator& x, const input_iterator& y)
- {return !(x == y);}
-};
-
-template <class T, class U>
-inline
-bool
-operator==(const input_iterator<T>& x, const input_iterator<U>& y)
-{
- return x.base() == y.base();
-}
-
-template <class T, class U>
-inline
-bool
-operator!=(const input_iterator<T>& x, const input_iterator<U>& y)
-{
- return !(x == y);
-}
-
-template <class It>
-class forward_iterator
-{
- It it_;
-
- template <class U> friend class forward_iterator;
-public:
- typedef std::forward_iterator_tag iterator_category;
- typedef typename std::iterator_traits<It>::value_type value_type;
- typedef typename std::iterator_traits<It>::difference_type difference_type;
- typedef It pointer;
- typedef typename std::iterator_traits<It>::reference reference;
-
- It base() const {return it_;}
-
- forward_iterator() : it_() {}
- explicit forward_iterator(It it) : it_(it) {}
- template <class U>
- forward_iterator(const forward_iterator<U>& u) :it_(u.it_) {}
-
- reference operator*() const {return *it_;}
- pointer operator->() const {return it_;}
-
- forward_iterator& operator++() {++it_; return *this;}
- forward_iterator operator++(int)
- {forward_iterator tmp(*this); ++(*this); return tmp;}
-
- friend bool operator==(const forward_iterator& x, const forward_iterator& y)
- {return x.it_ == y.it_;}
- friend bool operator!=(const forward_iterator& x, const forward_iterator& y)
- {return !(x == y);}
-};
-
-template <class T, class U>
-inline
-bool
-operator==(const forward_iterator<T>& x, const forward_iterator<U>& y)
-{
- return x.base() == y.base();
-}
-
-template <class T, class U>
-inline
-bool
-operator!=(const forward_iterator<T>& x, const forward_iterator<U>& y)
-{
- return !(x == y);
-}
-
-template <class It>
-class bidirectional_iterator
-{
- It it_;
-
- template <class U> friend class bidirectional_iterator;
-public:
- typedef std::bidirectional_iterator_tag iterator_category;
- typedef typename std::iterator_traits<It>::value_type value_type;
- typedef typename std::iterator_traits<It>::difference_type difference_type;
- typedef It pointer;
- typedef typename std::iterator_traits<It>::reference reference;
-
- It base() const {return it_;}
-
- bidirectional_iterator() : it_() {}
- explicit bidirectional_iterator(It it) : it_(it) {}
- template <class U>
- bidirectional_iterator(const bidirectional_iterator<U>& u) :it_(u.it_) {}
-
- reference operator*() const {return *it_;}
- pointer operator->() const {return it_;}
-
- bidirectional_iterator& operator++() {++it_; return *this;}
- bidirectional_iterator operator++(int)
- {bidirectional_iterator tmp(*this); ++(*this); return tmp;}
-
- bidirectional_iterator& operator--() {--it_; return *this;}
- bidirectional_iterator operator--(int)
- {bidirectional_iterator tmp(*this); --(*this); return tmp;}
-};
-
-template <class T, class U>
-inline
-bool
-operator==(const bidirectional_iterator<T>& x, const bidirectional_iterator<U>& y)
-{
- return x.base() == y.base();
-}
-
-template <class T, class U>
-inline
-bool
-operator!=(const bidirectional_iterator<T>& x, const bidirectional_iterator<U>& y)
-{
- return !(x == y);
-}
-
-template <class It>
-class random_access_iterator
-{
- It it_;
-
- template <class U> friend class random_access_iterator;
-public:
- typedef std::random_access_iterator_tag iterator_category;
- typedef typename std::iterator_traits<It>::value_type value_type;
- typedef typename std::iterator_traits<It>::difference_type difference_type;
- typedef It pointer;
- typedef typename std::iterator_traits<It>::reference reference;
-
- It base() const {return it_;}
-
- random_access_iterator() : it_() {}
- explicit random_access_iterator(It it) : it_(it) {}
- template <class U>
- random_access_iterator(const random_access_iterator<U>& u) :it_(u.it_) {}
-
- reference operator*() const {return *it_;}
- pointer operator->() const {return it_;}
-
- random_access_iterator& operator++() {++it_; return *this;}
- random_access_iterator operator++(int)
- {random_access_iterator tmp(*this); ++(*this); return tmp;}
-
- random_access_iterator& operator--() {--it_; return *this;}
- random_access_iterator operator--(int)
- {random_access_iterator tmp(*this); --(*this); return tmp;}
-
- random_access_iterator& operator+=(difference_type n) {it_ += n; return *this;}
- random_access_iterator operator+(difference_type n) const
- {random_access_iterator tmp(*this); tmp += n; return tmp;}
- friend random_access_iterator operator+(difference_type n, random_access_iterator x)
- {x += n; return x;}
- random_access_iterator& operator-=(difference_type n) {return *this += -n;}
- random_access_iterator operator-(difference_type n) const
- {random_access_iterator tmp(*this); tmp -= n; return tmp;}
-
- reference operator[](difference_type n) const {return it_[n];}
-};
-
-template <class T, class U>
-inline
-bool
-operator==(const random_access_iterator<T>& x, const random_access_iterator<U>& y)
-{
- return x.base() == y.base();
-}
-
-template <class T, class U>
-inline
-bool
-operator!=(const random_access_iterator<T>& x, const random_access_iterator<U>& y)
-{
- return !(x == y);
-}
-
-template <class T, class U>
-inline
-bool
-operator<(const random_access_iterator<T>& x, const random_access_iterator<U>& y)
-{
- return x.base() < y.base();
-}
-
-template <class T, class U>
-inline
-bool
-operator<=(const random_access_iterator<T>& x, const random_access_iterator<U>& y)
-{
- return !(y < x);
-}
-
-template <class T, class U>
-inline
-bool
-operator>(const random_access_iterator<T>& x, const random_access_iterator<U>& y)
-{
- return y < x;
-}
-
-template <class T, class U>
-inline
-bool
-operator>=(const random_access_iterator<T>& x, const random_access_iterator<U>& y)
-{
- return !(x < y);
-}
-
-template <class T, class U>
-inline
-typename std::iterator_traits<T>::difference_type
-operator-(const random_access_iterator<T>& x, const random_access_iterator<U>& y)
-{
- return x.base() - y.base();
-}
-
-#endif // ITERATORS_H
diff --git a/libcxx/test/iterators/predef.iterators/move.iterators/move.iter.ops/move.iter.nonmember/make_move_iterator.pass.cpp b/libcxx/test/iterators/predef.iterators/move.iterators/move.iter.ops/move.iter.nonmember/make_move_iterator.pass.cpp
index e494a76473e..6990459bd91 100644
--- a/libcxx/test/iterators/predef.iterators/move.iterators/move.iter.ops/move.iter.nonmember/make_move_iterator.pass.cpp
+++ b/libcxx/test/iterators/predef.iterators/move.iterators/move.iter.ops/move.iter.nonmember/make_move_iterator.pass.cpp
@@ -18,7 +18,7 @@
#include <iterator>
#include <cassert>
-#include "../../../../iterators.h"
+#include "../../../../../iterators.h"
template <class It>
void
diff --git a/libcxx/test/iterators/predef.iterators/move.iterators/move.iter.ops/move.iter.nonmember/minus.pass.cpp b/libcxx/test/iterators/predef.iterators/move.iterators/move.iter.ops/move.iter.nonmember/minus.pass.cpp
index 5f6b9569749..62938c9465d 100644
--- a/libcxx/test/iterators/predef.iterators/move.iterators/move.iter.ops/move.iter.nonmember/minus.pass.cpp
+++ b/libcxx/test/iterators/predef.iterators/move.iterators/move.iter.ops/move.iter.nonmember/minus.pass.cpp
@@ -20,7 +20,7 @@
#include <iterator>
#include <cassert>
-#include "../../../../iterators.h"
+#include "../../../../../iterators.h"
template <class It>
void
diff --git a/libcxx/test/iterators/predef.iterators/move.iterators/move.iter.ops/move.iter.nonmember/plus.pass.cpp b/libcxx/test/iterators/predef.iterators/move.iterators/move.iter.ops/move.iter.nonmember/plus.pass.cpp
index 55d44acc1d0..ff975f6c670 100644
--- a/libcxx/test/iterators/predef.iterators/move.iterators/move.iter.ops/move.iter.nonmember/plus.pass.cpp
+++ b/libcxx/test/iterators/predef.iterators/move.iterators/move.iter.ops/move.iter.nonmember/plus.pass.cpp
@@ -18,7 +18,7 @@
#include <iterator>
#include <cassert>
-#include "../../../../iterators.h"
+#include "../../../../../iterators.h"
template <class It>
void
diff --git a/libcxx/test/iterators/predef.iterators/move.iterators/move.iter.ops/move.iter.op.+/difference_type.pass.cpp b/libcxx/test/iterators/predef.iterators/move.iterators/move.iter.ops/move.iter.op.+/difference_type.pass.cpp
index 528e1211e7e..794fb970cc3 100644
--- a/libcxx/test/iterators/predef.iterators/move.iterators/move.iter.ops/move.iter.op.+/difference_type.pass.cpp
+++ b/libcxx/test/iterators/predef.iterators/move.iterators/move.iter.ops/move.iter.op.+/difference_type.pass.cpp
@@ -17,7 +17,7 @@
#include <iterator>
#include <cassert>
-#include "../../../../iterators.h"
+#include "../../../../../iterators.h"
template <class It>
void
diff --git a/libcxx/test/iterators/predef.iterators/move.iterators/move.iter.ops/move.iter.op.+=/difference_type.pass.cpp b/libcxx/test/iterators/predef.iterators/move.iterators/move.iter.ops/move.iter.op.+=/difference_type.pass.cpp
index 2275f5c8cb5..6b6a8991131 100644
--- a/libcxx/test/iterators/predef.iterators/move.iterators/move.iter.ops/move.iter.op.+=/difference_type.pass.cpp
+++ b/libcxx/test/iterators/predef.iterators/move.iterators/move.iter.ops/move.iter.op.+=/difference_type.pass.cpp
@@ -17,7 +17,7 @@
#include <iterator>
#include <cassert>
-#include "../../../../iterators.h"
+#include "../../../../../iterators.h"
template <class It>
void
diff --git a/libcxx/test/iterators/predef.iterators/move.iterators/move.iter.ops/move.iter.op.-/difference_type.pass.cpp b/libcxx/test/iterators/predef.iterators/move.iterators/move.iter.ops/move.iter.op.-/difference_type.pass.cpp
index 1f655701aff..5ed8e8c5baf 100644
--- a/libcxx/test/iterators/predef.iterators/move.iterators/move.iter.ops/move.iter.op.-/difference_type.pass.cpp
+++ b/libcxx/test/iterators/predef.iterators/move.iterators/move.iter.ops/move.iter.op.-/difference_type.pass.cpp
@@ -17,7 +17,7 @@
#include <iterator>
#include <cassert>
-#include "../../../../iterators.h"
+#include "../../../../../iterators.h"
template <class It>
void
diff --git a/libcxx/test/iterators/predef.iterators/move.iterators/move.iter.ops/move.iter.op.-=/difference_type.pass.cpp b/libcxx/test/iterators/predef.iterators/move.iterators/move.iter.ops/move.iter.op.-=/difference_type.pass.cpp
index e9b6278d1aa..f5439bea095 100644
--- a/libcxx/test/iterators/predef.iterators/move.iterators/move.iter.ops/move.iter.op.-=/difference_type.pass.cpp
+++ b/libcxx/test/iterators/predef.iterators/move.iterators/move.iter.ops/move.iter.op.-=/difference_type.pass.cpp
@@ -17,7 +17,7 @@
#include <iterator>
#include <cassert>
-#include "../../../../iterators.h"
+#include "../../../../../iterators.h"
template <class It>
void
diff --git a/libcxx/test/iterators/predef.iterators/move.iterators/move.iter.ops/move.iter.op.comp/op_eq.pass.cpp b/libcxx/test/iterators/predef.iterators/move.iterators/move.iter.ops/move.iter.op.comp/op_eq.pass.cpp
index 5c5fc8edf10..bc1b48bc945 100644
--- a/libcxx/test/iterators/predef.iterators/move.iterators/move.iter.ops/move.iter.op.comp/op_eq.pass.cpp
+++ b/libcxx/test/iterators/predef.iterators/move.iterators/move.iter.ops/move.iter.op.comp/op_eq.pass.cpp
@@ -19,7 +19,7 @@
#include <iterator>
#include <cassert>
-#include "../../../../iterators.h"
+#include "../../../../../iterators.h"
template <class It>
void
diff --git a/libcxx/test/iterators/predef.iterators/move.iterators/move.iter.ops/move.iter.op.comp/op_gt.pass.cpp b/libcxx/test/iterators/predef.iterators/move.iterators/move.iter.ops/move.iter.op.comp/op_gt.pass.cpp
index 1412550532b..1af51a1bd88 100644
--- a/libcxx/test/iterators/predef.iterators/move.iterators/move.iter.ops/move.iter.op.comp/op_gt.pass.cpp
+++ b/libcxx/test/iterators/predef.iterators/move.iterators/move.iter.ops/move.iter.op.comp/op_gt.pass.cpp
@@ -19,7 +19,7 @@
#include <iterator>
#include <cassert>
-#include "../../../../iterators.h"
+#include "../../../../../iterators.h"
template <class It>
void
diff --git a/libcxx/test/iterators/predef.iterators/move.iterators/move.iter.ops/move.iter.op.comp/op_gte.pass.cpp b/libcxx/test/iterators/predef.iterators/move.iterators/move.iter.ops/move.iter.op.comp/op_gte.pass.cpp
index 7e7990334b8..e4c942158ee 100644
--- a/libcxx/test/iterators/predef.iterators/move.iterators/move.iter.ops/move.iter.op.comp/op_gte.pass.cpp
+++ b/libcxx/test/iterators/predef.iterators/move.iterators/move.iter.ops/move.iter.op.comp/op_gte.pass.cpp
@@ -19,7 +19,7 @@
#include <iterator>
#include <cassert>
-#include "../../../../iterators.h"
+#include "../../../../../iterators.h"
template <class It>
void
diff --git a/libcxx/test/iterators/predef.iterators/move.iterators/move.iter.ops/move.iter.op.comp/op_lt.pass.cpp b/libcxx/test/iterators/predef.iterators/move.iterators/move.iter.ops/move.iter.op.comp/op_lt.pass.cpp
index d3e0f729c8a..d0d1e889042 100644
--- a/libcxx/test/iterators/predef.iterators/move.iterators/move.iter.ops/move.iter.op.comp/op_lt.pass.cpp
+++ b/libcxx/test/iterators/predef.iterators/move.iterators/move.iter.ops/move.iter.op.comp/op_lt.pass.cpp
@@ -19,7 +19,7 @@
#include <iterator>
#include <cassert>
-#include "../../../../iterators.h"
+#include "../../../../../iterators.h"
template <class It>
void
diff --git a/libcxx/test/iterators/predef.iterators/move.iterators/move.iter.ops/move.iter.op.comp/op_lte.pass.cpp b/libcxx/test/iterators/predef.iterators/move.iterators/move.iter.ops/move.iter.op.comp/op_lte.pass.cpp
index c6e121ecc5e..6dfecdab303 100644
--- a/libcxx/test/iterators/predef.iterators/move.iterators/move.iter.ops/move.iter.op.comp/op_lte.pass.cpp
+++ b/libcxx/test/iterators/predef.iterators/move.iterators/move.iter.ops/move.iter.op.comp/op_lte.pass.cpp
@@ -19,7 +19,7 @@
#include <iterator>
#include <cassert>
-#include "../../../../iterators.h"
+#include "../../../../../iterators.h"
template <class It>
void
diff --git a/libcxx/test/iterators/predef.iterators/move.iterators/move.iter.ops/move.iter.op.comp/op_neq.pass.cpp b/libcxx/test/iterators/predef.iterators/move.iterators/move.iter.ops/move.iter.op.comp/op_neq.pass.cpp
index 7e6d48c0bfa..3f1e517dc40 100644
--- a/libcxx/test/iterators/predef.iterators/move.iterators/move.iter.ops/move.iter.op.comp/op_neq.pass.cpp
+++ b/libcxx/test/iterators/predef.iterators/move.iterators/move.iter.ops/move.iter.op.comp/op_neq.pass.cpp
@@ -19,7 +19,7 @@
#include <iterator>
#include <cassert>
-#include "../../../../iterators.h"
+#include "../../../../../iterators.h"
template <class It>
void
diff --git a/libcxx/test/iterators/predef.iterators/move.iterators/move.iter.ops/move.iter.op.const/convert.pass.cpp b/libcxx/test/iterators/predef.iterators/move.iterators/move.iter.ops/move.iter.op.const/convert.pass.cpp
index 35b110d373e..9a5e0553f97 100644
--- a/libcxx/test/iterators/predef.iterators/move.iterators/move.iter.ops/move.iter.op.const/convert.pass.cpp
+++ b/libcxx/test/iterators/predef.iterators/move.iterators/move.iter.ops/move.iter.op.const/convert.pass.cpp
@@ -18,7 +18,7 @@
#include <iterator>
#include <cassert>
-#include "../../../../iterators.h"
+#include "../../../../../iterators.h"
template <class It, class U>
void
diff --git a/libcxx/test/iterators/predef.iterators/move.iterators/move.iter.ops/move.iter.op.const/default.pass.cpp b/libcxx/test/iterators/predef.iterators/move.iterators/move.iter.ops/move.iter.op.const/default.pass.cpp
index 78bcc4bd1a7..30e4e14dcd3 100644
--- a/libcxx/test/iterators/predef.iterators/move.iterators/move.iter.ops/move.iter.op.const/default.pass.cpp
+++ b/libcxx/test/iterators/predef.iterators/move.iterators/move.iter.ops/move.iter.op.const/default.pass.cpp
@@ -15,7 +15,7 @@
#include <iterator>
-#include "../../../../iterators.h"
+#include "../../../../../iterators.h"
template <class It>
void
diff --git a/libcxx/test/iterators/predef.iterators/move.iterators/move.iter.ops/move.iter.op.const/iter.pass.cpp b/libcxx/test/iterators/predef.iterators/move.iterators/move.iter.ops/move.iter.op.const/iter.pass.cpp
index 95e86679c8a..ef37caf4a81 100644
--- a/libcxx/test/iterators/predef.iterators/move.iterators/move.iter.ops/move.iter.op.const/iter.pass.cpp
+++ b/libcxx/test/iterators/predef.iterators/move.iterators/move.iter.ops/move.iter.op.const/iter.pass.cpp
@@ -16,7 +16,7 @@
#include <iterator>
#include <cassert>
-#include "../../../../iterators.h"
+#include "../../../../../iterators.h"
template <class It>
void
diff --git a/libcxx/test/iterators/predef.iterators/move.iterators/move.iter.ops/move.iter.op.decr/post.pass.cpp b/libcxx/test/iterators/predef.iterators/move.iterators/move.iter.ops/move.iter.op.decr/post.pass.cpp
index 7f502361e5c..bb1ddb3d6d6 100644
--- a/libcxx/test/iterators/predef.iterators/move.iterators/move.iter.ops/move.iter.op.decr/post.pass.cpp
+++ b/libcxx/test/iterators/predef.iterators/move.iterators/move.iter.ops/move.iter.op.decr/post.pass.cpp
@@ -16,7 +16,7 @@
#include <iterator>
#include <cassert>
-#include "../../../../iterators.h"
+#include "../../../../../iterators.h"
template <class It>
void
diff --git a/libcxx/test/iterators/predef.iterators/move.iterators/move.iter.ops/move.iter.op.decr/pre.pass.cpp b/libcxx/test/iterators/predef.iterators/move.iterators/move.iter.ops/move.iter.op.decr/pre.pass.cpp
index f9b0f08f545..a6ea855cc14 100644
--- a/libcxx/test/iterators/predef.iterators/move.iterators/move.iter.ops/move.iter.op.decr/pre.pass.cpp
+++ b/libcxx/test/iterators/predef.iterators/move.iterators/move.iter.ops/move.iter.op.decr/pre.pass.cpp
@@ -16,7 +16,7 @@
#include <iterator>
#include <cassert>
-#include "../../../../iterators.h"
+#include "../../../../../iterators.h"
template <class It>
void
diff --git a/libcxx/test/iterators/predef.iterators/move.iterators/move.iter.ops/move.iter.op.incr/post.pass.cpp b/libcxx/test/iterators/predef.iterators/move.iterators/move.iter.ops/move.iter.op.incr/post.pass.cpp
index 23080796f88..8ef9305d084 100644
--- a/libcxx/test/iterators/predef.iterators/move.iterators/move.iter.ops/move.iter.op.incr/post.pass.cpp
+++ b/libcxx/test/iterators/predef.iterators/move.iterators/move.iter.ops/move.iter.op.incr/post.pass.cpp
@@ -16,7 +16,7 @@
#include <iterator>
#include <cassert>
-#include "../../../../iterators.h"
+#include "../../../../../iterators.h"
template <class It>
void
diff --git a/libcxx/test/iterators/predef.iterators/move.iterators/move.iter.ops/move.iter.op.incr/pre.pass.cpp b/libcxx/test/iterators/predef.iterators/move.iterators/move.iter.ops/move.iter.op.incr/pre.pass.cpp
index 16f38f4749a..4fae863af6c 100644
--- a/libcxx/test/iterators/predef.iterators/move.iterators/move.iter.ops/move.iter.op.incr/pre.pass.cpp
+++ b/libcxx/test/iterators/predef.iterators/move.iterators/move.iter.ops/move.iter.op.incr/pre.pass.cpp
@@ -16,7 +16,7 @@
#include <iterator>
#include <cassert>
-#include "../../../../iterators.h"
+#include "../../../../../iterators.h"
template <class It>
void
diff --git a/libcxx/test/iterators/predef.iterators/move.iterators/move.iter.ops/move.iter.op.index/difference_type.pass.cpp b/libcxx/test/iterators/predef.iterators/move.iterators/move.iter.ops/move.iter.op.index/difference_type.pass.cpp
index 9d0be23c8bf..064d95eb677 100644
--- a/libcxx/test/iterators/predef.iterators/move.iterators/move.iter.ops/move.iter.op.index/difference_type.pass.cpp
+++ b/libcxx/test/iterators/predef.iterators/move.iterators/move.iter.ops/move.iter.op.index/difference_type.pass.cpp
@@ -20,7 +20,7 @@
#include <memory>
#endif
-#include "../../../../iterators.h"
+#include "../../../../../iterators.h"
template <class It>
void
diff --git a/libcxx/test/iterators/predef.iterators/move.iterators/move.iter.ops/move.iter.op=/move_iterator.pass.cpp b/libcxx/test/iterators/predef.iterators/move.iterators/move.iter.ops/move.iter.op=/move_iterator.pass.cpp
index 371b32c8093..262b2d521b2 100644
--- a/libcxx/test/iterators/predef.iterators/move.iterators/move.iter.ops/move.iter.op=/move_iterator.pass.cpp
+++ b/libcxx/test/iterators/predef.iterators/move.iterators/move.iter.ops/move.iter.op=/move_iterator.pass.cpp
@@ -19,7 +19,7 @@
#include <iterator>
#include <cassert>
-#include "../../../../iterators.h"
+#include "../../../../../iterators.h"
template <class It, class U>
void
diff --git a/libcxx/test/iterators/predef.iterators/move.iterators/move.iterator/types.pass.cpp b/libcxx/test/iterators/predef.iterators/move.iterators/move.iterator/types.pass.cpp
index e36dcccdfc6..62398aa0d8f 100644
--- a/libcxx/test/iterators/predef.iterators/move.iterators/move.iterator/types.pass.cpp
+++ b/libcxx/test/iterators/predef.iterators/move.iterators/move.iterator/types.pass.cpp
@@ -26,7 +26,7 @@
#include <iterator>
#include <type_traits>
-#include "../../../iterators.h"
+#include "../../../../iterators.h"
template <class It>
void
diff --git a/libcxx/test/iterators/predef.iterators/reverse.iterators/reverse.iter.ops/reverse.iter.cons/default.pass.cpp b/libcxx/test/iterators/predef.iterators/reverse.iterators/reverse.iter.ops/reverse.iter.cons/default.pass.cpp
index c432299cc19..a809273695e 100644
--- a/libcxx/test/iterators/predef.iterators/reverse.iterators/reverse.iter.ops/reverse.iter.cons/default.pass.cpp
+++ b/libcxx/test/iterators/predef.iterators/reverse.iterators/reverse.iter.ops/reverse.iter.cons/default.pass.cpp
@@ -15,7 +15,7 @@
#include <iterator>
-#include "../../../../iterators.h"
+#include "../../../../../iterators.h"
template <class It>
void
diff --git a/libcxx/test/iterators/predef.iterators/reverse.iterators/reverse.iter.ops/reverse.iter.cons/iter.pass.cpp b/libcxx/test/iterators/predef.iterators/reverse.iterators/reverse.iter.ops/reverse.iter.cons/iter.pass.cpp
index eb87fda64a5..899c54ad060 100644
--- a/libcxx/test/iterators/predef.iterators/reverse.iterators/reverse.iter.ops/reverse.iter.cons/iter.pass.cpp
+++ b/libcxx/test/iterators/predef.iterators/reverse.iterators/reverse.iter.ops/reverse.iter.cons/iter.pass.cpp
@@ -16,7 +16,7 @@
#include <iterator>
#include <cassert>
-#include "../../../../iterators.h"
+#include "../../../../../iterators.h"
template <class It>
void
diff --git a/libcxx/test/iterators/predef.iterators/reverse.iterators/reverse.iter.ops/reverse.iter.cons/reverse_iterator.pass.cpp b/libcxx/test/iterators/predef.iterators/reverse.iterators/reverse.iter.ops/reverse.iter.cons/reverse_iterator.pass.cpp
index 58f94905345..383200a6faa 100644
--- a/libcxx/test/iterators/predef.iterators/reverse.iterators/reverse.iter.ops/reverse.iter.cons/reverse_iterator.pass.cpp
+++ b/libcxx/test/iterators/predef.iterators/reverse.iterators/reverse.iter.ops/reverse.iter.cons/reverse_iterator.pass.cpp
@@ -18,7 +18,7 @@
#include <iterator>
#include <cassert>
-#include "../../../../iterators.h"
+#include "../../../../../iterators.h"
template <class It, class U>
void
diff --git a/libcxx/test/iterators/predef.iterators/reverse.iterators/reverse.iter.ops/reverse.iter.op!=/test.pass.cpp b/libcxx/test/iterators/predef.iterators/reverse.iterators/reverse.iter.ops/reverse.iter.op!=/test.pass.cpp
index 8cc400ad8b5..6bf2db7763a 100644
--- a/libcxx/test/iterators/predef.iterators/reverse.iterators/reverse.iter.ops/reverse.iter.op!=/test.pass.cpp
+++ b/libcxx/test/iterators/predef.iterators/reverse.iterators/reverse.iter.ops/reverse.iter.op!=/test.pass.cpp
@@ -19,7 +19,7 @@
#include <iterator>
#include <cassert>
-#include "../../../../iterators.h"
+#include "../../../../../iterators.h"
template <class It>
void
diff --git a/libcxx/test/iterators/predef.iterators/reverse.iterators/reverse.iter.ops/reverse.iter.op++/post.pass.cpp b/libcxx/test/iterators/predef.iterators/reverse.iterators/reverse.iter.ops/reverse.iter.op++/post.pass.cpp
index 095f42044ed..74cc1a53b9c 100644
--- a/libcxx/test/iterators/predef.iterators/reverse.iterators/reverse.iter.ops/reverse.iter.op++/post.pass.cpp
+++ b/libcxx/test/iterators/predef.iterators/reverse.iterators/reverse.iter.ops/reverse.iter.op++/post.pass.cpp
@@ -16,7 +16,7 @@
#include <iterator>
#include <cassert>
-#include "../../../../iterators.h"
+#include "../../../../../iterators.h"
template <class It>
void
diff --git a/libcxx/test/iterators/predef.iterators/reverse.iterators/reverse.iter.ops/reverse.iter.op++/pre.pass.cpp b/libcxx/test/iterators/predef.iterators/reverse.iterators/reverse.iter.ops/reverse.iter.op++/pre.pass.cpp
index 8b3fb62e87a..fed4fb3a5ad 100644
--- a/libcxx/test/iterators/predef.iterators/reverse.iterators/reverse.iter.ops/reverse.iter.op++/pre.pass.cpp
+++ b/libcxx/test/iterators/predef.iterators/reverse.iterators/reverse.iter.ops/reverse.iter.op++/pre.pass.cpp
@@ -16,7 +16,7 @@
#include <iterator>
#include <cassert>
-#include "../../../../iterators.h"
+#include "../../../../../iterators.h"
template <class It>
void
diff --git a/libcxx/test/iterators/predef.iterators/reverse.iterators/reverse.iter.ops/reverse.iter.op+/difference_type.pass.cpp b/libcxx/test/iterators/predef.iterators/reverse.iterators/reverse.iter.ops/reverse.iter.op+/difference_type.pass.cpp
index 73bd339629d..c823f1012a1 100644
--- a/libcxx/test/iterators/predef.iterators/reverse.iterators/reverse.iter.ops/reverse.iter.op+/difference_type.pass.cpp
+++ b/libcxx/test/iterators/predef.iterators/reverse.iterators/reverse.iter.ops/reverse.iter.op+/difference_type.pass.cpp
@@ -17,7 +17,7 @@
#include <iterator>
#include <cassert>
-#include "../../../../iterators.h"
+#include "../../../../../iterators.h"
template <class It>
void
diff --git a/libcxx/test/iterators/predef.iterators/reverse.iterators/reverse.iter.ops/reverse.iter.op+=/difference_type.pass.cpp b/libcxx/test/iterators/predef.iterators/reverse.iterators/reverse.iter.ops/reverse.iter.op+=/difference_type.pass.cpp
index 11386e622ee..69f26e2fc7f 100644
--- a/libcxx/test/iterators/predef.iterators/reverse.iterators/reverse.iter.ops/reverse.iter.op+=/difference_type.pass.cpp
+++ b/libcxx/test/iterators/predef.iterators/reverse.iterators/reverse.iter.ops/reverse.iter.op+=/difference_type.pass.cpp
@@ -17,7 +17,7 @@
#include <iterator>
#include <cassert>
-#include "../../../../iterators.h"
+#include "../../../../../iterators.h"
template <class It>
void
diff --git a/libcxx/test/iterators/predef.iterators/reverse.iterators/reverse.iter.ops/reverse.iter.op--/post.pass.cpp b/libcxx/test/iterators/predef.iterators/reverse.iterators/reverse.iter.ops/reverse.iter.op--/post.pass.cpp
index b4d24dde556..b8ec2cb564d 100644
--- a/libcxx/test/iterators/predef.iterators/reverse.iterators/reverse.iter.ops/reverse.iter.op--/post.pass.cpp
+++ b/libcxx/test/iterators/predef.iterators/reverse.iterators/reverse.iter.ops/reverse.iter.op--/post.pass.cpp
@@ -16,7 +16,7 @@
#include <iterator>
#include <cassert>
-#include "../../../../iterators.h"
+#include "../../../../../iterators.h"
template <class It>
void
diff --git a/libcxx/test/iterators/predef.iterators/reverse.iterators/reverse.iter.ops/reverse.iter.op--/pre.pass.cpp b/libcxx/test/iterators/predef.iterators/reverse.iterators/reverse.iter.ops/reverse.iter.op--/pre.pass.cpp
index a4c5b95dd6d..6292292e2ab 100644
--- a/libcxx/test/iterators/predef.iterators/reverse.iterators/reverse.iter.ops/reverse.iter.op--/pre.pass.cpp
+++ b/libcxx/test/iterators/predef.iterators/reverse.iterators/reverse.iter.ops/reverse.iter.op--/pre.pass.cpp
@@ -16,7 +16,7 @@
#include <iterator>
#include <cassert>
-#include "../../../../iterators.h"
+#include "../../../../../iterators.h"
template <class It>
void
diff --git a/libcxx/test/iterators/predef.iterators/reverse.iterators/reverse.iter.ops/reverse.iter.op-/difference_type.pass.cpp b/libcxx/test/iterators/predef.iterators/reverse.iterators/reverse.iter.ops/reverse.iter.op-/difference_type.pass.cpp
index 627f03d8824..29c600f5d88 100644
--- a/libcxx/test/iterators/predef.iterators/reverse.iterators/reverse.iter.ops/reverse.iter.op-/difference_type.pass.cpp
+++ b/libcxx/test/iterators/predef.iterators/reverse.iterators/reverse.iter.ops/reverse.iter.op-/difference_type.pass.cpp
@@ -17,7 +17,7 @@
#include <iterator>
#include <cassert>
-#include "../../../../iterators.h"
+#include "../../../../../iterators.h"
template <class It>
void
diff --git a/libcxx/test/iterators/predef.iterators/reverse.iterators/reverse.iter.ops/reverse.iter.op-=/difference_type.pass.cpp b/libcxx/test/iterators/predef.iterators/reverse.iterators/reverse.iter.ops/reverse.iter.op-=/difference_type.pass.cpp
index e3b5ae99e6f..ab34c31e00a 100644
--- a/libcxx/test/iterators/predef.iterators/reverse.iterators/reverse.iter.ops/reverse.iter.op-=/difference_type.pass.cpp
+++ b/libcxx/test/iterators/predef.iterators/reverse.iterators/reverse.iter.ops/reverse.iter.op-=/difference_type.pass.cpp
@@ -17,7 +17,7 @@
#include <iterator>
#include <cassert>
-#include "../../../../iterators.h"
+#include "../../../../../iterators.h"
template <class It>
void
diff --git a/libcxx/test/iterators/predef.iterators/reverse.iterators/reverse.iter.ops/reverse.iter.op=/reverse_iterator.pass.cpp b/libcxx/test/iterators/predef.iterators/reverse.iterators/reverse.iter.ops/reverse.iter.op=/reverse_iterator.pass.cpp
index d6bf6f3abdb..3d4b4161fb7 100644
--- a/libcxx/test/iterators/predef.iterators/reverse.iterators/reverse.iter.ops/reverse.iter.op=/reverse_iterator.pass.cpp
+++ b/libcxx/test/iterators/predef.iterators/reverse.iterators/reverse.iter.ops/reverse.iter.op=/reverse_iterator.pass.cpp
@@ -19,7 +19,7 @@
#include <iterator>
#include <cassert>
-#include "../../../../iterators.h"
+#include "../../../../../iterators.h"
template <class It, class U>
void
diff --git a/libcxx/test/iterators/predef.iterators/reverse.iterators/reverse.iter.ops/reverse.iter.op==/test.pass.cpp b/libcxx/test/iterators/predef.iterators/reverse.iterators/reverse.iter.ops/reverse.iter.op==/test.pass.cpp
index a1534920cd5..85b589f40c3 100644
--- a/libcxx/test/iterators/predef.iterators/reverse.iterators/reverse.iter.ops/reverse.iter.op==/test.pass.cpp
+++ b/libcxx/test/iterators/predef.iterators/reverse.iterators/reverse.iter.ops/reverse.iter.op==/test.pass.cpp
@@ -19,7 +19,7 @@
#include <iterator>
#include <cassert>
-#include "../../../../iterators.h"
+#include "../../../../../iterators.h"
template <class It>
void
diff --git a/libcxx/test/iterators/predef.iterators/reverse.iterators/reverse.iter.ops/reverse.iter.opdiff/test.pass.cpp b/libcxx/test/iterators/predef.iterators/reverse.iterators/reverse.iter.ops/reverse.iter.opdiff/test.pass.cpp
index 448e6746bf1..3b878ec54e7 100644
--- a/libcxx/test/iterators/predef.iterators/reverse.iterators/reverse.iter.ops/reverse.iter.opdiff/test.pass.cpp
+++ b/libcxx/test/iterators/predef.iterators/reverse.iterators/reverse.iter.ops/reverse.iter.opdiff/test.pass.cpp
@@ -20,7 +20,7 @@
#include <cstddef>
#include <cassert>
-#include "../../../../iterators.h"
+#include "../../../../../iterators.h"
template <class It1, class It2>
void
diff --git a/libcxx/test/iterators/predef.iterators/reverse.iterators/reverse.iter.ops/reverse.iter.opgt/test.pass.cpp b/libcxx/test/iterators/predef.iterators/reverse.iterators/reverse.iter.ops/reverse.iter.opgt/test.pass.cpp
index a3d95573658..18ce7bafdb0 100644
--- a/libcxx/test/iterators/predef.iterators/reverse.iterators/reverse.iter.ops/reverse.iter.opgt/test.pass.cpp
+++ b/libcxx/test/iterators/predef.iterators/reverse.iterators/reverse.iter.ops/reverse.iter.opgt/test.pass.cpp
@@ -19,7 +19,7 @@
#include <iterator>
#include <cassert>
-#include "../../../../iterators.h"
+#include "../../../../../iterators.h"
template <class It>
void
diff --git a/libcxx/test/iterators/predef.iterators/reverse.iterators/reverse.iter.ops/reverse.iter.opgt=/test.pass.cpp b/libcxx/test/iterators/predef.iterators/reverse.iterators/reverse.iter.ops/reverse.iter.opgt=/test.pass.cpp
index 9eaaf661fc0..7732a3ae9e2 100644
--- a/libcxx/test/iterators/predef.iterators/reverse.iterators/reverse.iter.ops/reverse.iter.opgt=/test.pass.cpp
+++ b/libcxx/test/iterators/predef.iterators/reverse.iterators/reverse.iter.ops/reverse.iter.opgt=/test.pass.cpp
@@ -19,7 +19,7 @@
#include <iterator>
#include <cassert>
-#include "../../../../iterators.h"
+#include "../../../../../iterators.h"
template <class It>
void
diff --git a/libcxx/test/iterators/predef.iterators/reverse.iterators/reverse.iter.ops/reverse.iter.opindex/difference_type.pass.cpp b/libcxx/test/iterators/predef.iterators/reverse.iterators/reverse.iter.ops/reverse.iter.opindex/difference_type.pass.cpp
index 084062a3cbb..9296c2bde06 100644
--- a/libcxx/test/iterators/predef.iterators/reverse.iterators/reverse.iter.ops/reverse.iter.opindex/difference_type.pass.cpp
+++ b/libcxx/test/iterators/predef.iterators/reverse.iterators/reverse.iter.ops/reverse.iter.opindex/difference_type.pass.cpp
@@ -17,7 +17,7 @@
#include <iterator>
#include <cassert>
-#include "../../../../iterators.h"
+#include "../../../../../iterators.h"
template <class It>
void
diff --git a/libcxx/test/iterators/predef.iterators/reverse.iterators/reverse.iter.ops/reverse.iter.oplt/test.pass.cpp b/libcxx/test/iterators/predef.iterators/reverse.iterators/reverse.iter.ops/reverse.iter.oplt/test.pass.cpp
index 98810afe863..fb91b060be1 100644
--- a/libcxx/test/iterators/predef.iterators/reverse.iterators/reverse.iter.ops/reverse.iter.oplt/test.pass.cpp
+++ b/libcxx/test/iterators/predef.iterators/reverse.iterators/reverse.iter.ops/reverse.iter.oplt/test.pass.cpp
@@ -19,7 +19,7 @@
#include <iterator>
#include <cassert>
-#include "../../../../iterators.h"
+#include "../../../../../iterators.h"
template <class It>
void
diff --git a/libcxx/test/iterators/predef.iterators/reverse.iterators/reverse.iter.ops/reverse.iter.oplt=/test.pass.cpp b/libcxx/test/iterators/predef.iterators/reverse.iterators/reverse.iter.ops/reverse.iter.oplt=/test.pass.cpp
index e45fba0a035..0331f02605f 100644
--- a/libcxx/test/iterators/predef.iterators/reverse.iterators/reverse.iter.ops/reverse.iter.oplt=/test.pass.cpp
+++ b/libcxx/test/iterators/predef.iterators/reverse.iterators/reverse.iter.ops/reverse.iter.oplt=/test.pass.cpp
@@ -19,7 +19,7 @@
#include <iterator>
#include <cassert>
-#include "../../../../iterators.h"
+#include "../../../../../iterators.h"
template <class It>
void
diff --git a/libcxx/test/iterators/predef.iterators/reverse.iterators/reverse.iter.ops/reverse.iter.opsum/difference_type.pass.cpp b/libcxx/test/iterators/predef.iterators/reverse.iterators/reverse.iter.ops/reverse.iter.opsum/difference_type.pass.cpp
index 93656946e55..46720b8b913 100644
--- a/libcxx/test/iterators/predef.iterators/reverse.iterators/reverse.iter.ops/reverse.iter.opsum/difference_type.pass.cpp
+++ b/libcxx/test/iterators/predef.iterators/reverse.iterators/reverse.iter.ops/reverse.iter.opsum/difference_type.pass.cpp
@@ -18,7 +18,7 @@
#include <iterator>
#include <cassert>
-#include "../../../../iterators.h"
+#include "../../../../../iterators.h"
template <class It>
void
diff --git a/libcxx/test/iterators/predef.iterators/reverse.iterators/reverse.iterator/types.pass.cpp b/libcxx/test/iterators/predef.iterators/reverse.iterators/reverse.iterator/types.pass.cpp
index 196feecaf89..5bff9806c49 100644
--- a/libcxx/test/iterators/predef.iterators/reverse.iterators/reverse.iterator/types.pass.cpp
+++ b/libcxx/test/iterators/predef.iterators/reverse.iterators/reverse.iterator/types.pass.cpp
@@ -28,7 +28,7 @@
#include <iterator>
#include <type_traits>
-#include "../../../iterators.h"
+#include "../../../../iterators.h"
template <class It>
struct find_current
diff --git a/libcxx/test/re/re.alg/re.alg.match/awk.pass.cpp b/libcxx/test/re/re.alg/re.alg.match/awk.pass.cpp
index 6f3205367a9..4b0ed7ce845 100644
--- a/libcxx/test/re/re.alg/re.alg.match/awk.pass.cpp
+++ b/libcxx/test/re/re.alg/re.alg.match/awk.pass.cpp
@@ -20,7 +20,7 @@
#include <regex>
#include <cassert>
-#include "../../iterators.h"
+#include "../../../iterators.h"
int main()
{
diff --git a/libcxx/test/re/re.alg/re.alg.match/basic.pass.cpp b/libcxx/test/re/re.alg/re.alg.match/basic.pass.cpp
index c44947f0a70..c18109c60a8 100644
--- a/libcxx/test/re/re.alg/re.alg.match/basic.pass.cpp
+++ b/libcxx/test/re/re.alg/re.alg.match/basic.pass.cpp
@@ -19,7 +19,7 @@
#include <regex>
#include <cassert>
-#include "../../iterators.h"
+#include "../../../iterators.h"
int main()
{
diff --git a/libcxx/test/re/re.alg/re.alg.match/ecma.pass.cpp b/libcxx/test/re/re.alg/re.alg.match/ecma.pass.cpp
index beab21a439c..f741622bd6b 100644
--- a/libcxx/test/re/re.alg/re.alg.match/ecma.pass.cpp
+++ b/libcxx/test/re/re.alg/re.alg.match/ecma.pass.cpp
@@ -19,7 +19,7 @@
#include <regex>
#include <cassert>
-#include "../../iterators.h"
+#include "../../../iterators.h"
int main()
{
diff --git a/libcxx/test/re/re.alg/re.alg.match/egrep.pass.cpp b/libcxx/test/re/re.alg/re.alg.match/egrep.pass.cpp
index 9e83edeaab4..2106bd1e394 100644
--- a/libcxx/test/re/re.alg/re.alg.match/egrep.pass.cpp
+++ b/libcxx/test/re/re.alg/re.alg.match/egrep.pass.cpp
@@ -19,7 +19,7 @@
#include <regex>
#include <cassert>
-#include "../../iterators.h"
+#include "../../../iterators.h"
int main()
{
diff --git a/libcxx/test/re/re.alg/re.alg.match/extended.pass.cpp b/libcxx/test/re/re.alg/re.alg.match/extended.pass.cpp
index cd742d31544..3c6be081ca0 100644
--- a/libcxx/test/re/re.alg/re.alg.match/extended.pass.cpp
+++ b/libcxx/test/re/re.alg/re.alg.match/extended.pass.cpp
@@ -19,7 +19,7 @@
#include <regex>
#include <cassert>
-#include "../../iterators.h"
+#include "../../../iterators.h"
int main()
{
diff --git a/libcxx/test/re/re.alg/re.alg.match/grep.pass.cpp b/libcxx/test/re/re.alg/re.alg.match/grep.pass.cpp
index 35aaa8ce27a..954f8a46938 100644
--- a/libcxx/test/re/re.alg/re.alg.match/grep.pass.cpp
+++ b/libcxx/test/re/re.alg/re.alg.match/grep.pass.cpp
@@ -19,7 +19,7 @@
#include <regex>
#include <cassert>
-#include "../../iterators.h"
+#include "../../../iterators.h"
int main()
{
diff --git a/libcxx/test/re/re.alg/re.alg.replace/test1.pass.cpp b/libcxx/test/re/re.alg/re.alg.replace/test1.pass.cpp
index 87dc0a63089..cc51ec3a538 100644
--- a/libcxx/test/re/re.alg/re.alg.replace/test1.pass.cpp
+++ b/libcxx/test/re/re.alg/re.alg.replace/test1.pass.cpp
@@ -22,7 +22,7 @@
#include <regex>
#include <cassert>
-#include "../../iterators.h"
+#include "../../../iterators.h"
int main()
{
diff --git a/libcxx/test/re/re.alg/re.alg.replace/test2.pass.cpp b/libcxx/test/re/re.alg/re.alg.replace/test2.pass.cpp
index 3ad1f2f5670..4be5a1292af 100644
--- a/libcxx/test/re/re.alg/re.alg.replace/test2.pass.cpp
+++ b/libcxx/test/re/re.alg/re.alg.replace/test2.pass.cpp
@@ -22,7 +22,7 @@
#include <regex>
#include <cassert>
-#include "../../iterators.h"
+#include "../../../iterators.h"
int main()
{
diff --git a/libcxx/test/re/re.alg/re.alg.search/awk.pass.cpp b/libcxx/test/re/re.alg/re.alg.search/awk.pass.cpp
index 0f4f98a0042..e8193a2911b 100644
--- a/libcxx/test/re/re.alg/re.alg.search/awk.pass.cpp
+++ b/libcxx/test/re/re.alg/re.alg.search/awk.pass.cpp
@@ -19,7 +19,7 @@
#include <regex>
#include <cassert>
-#include "../../iterators.h"
+#include "../../../iterators.h"
int main()
{
diff --git a/libcxx/test/re/re.alg/re.alg.search/basic.pass.cpp b/libcxx/test/re/re.alg/re.alg.search/basic.pass.cpp
index 19275d2c550..824c82c5546 100644
--- a/libcxx/test/re/re.alg/re.alg.search/basic.pass.cpp
+++ b/libcxx/test/re/re.alg/re.alg.search/basic.pass.cpp
@@ -19,7 +19,7 @@
#include <regex>
#include <cassert>
-#include "../../iterators.h"
+#include "../../../iterators.h"
int main()
{
diff --git a/libcxx/test/re/re.alg/re.alg.search/ecma.pass.cpp b/libcxx/test/re/re.alg/re.alg.search/ecma.pass.cpp
index 49c719a1338..52efef00a36 100644
--- a/libcxx/test/re/re.alg/re.alg.search/ecma.pass.cpp
+++ b/libcxx/test/re/re.alg/re.alg.search/ecma.pass.cpp
@@ -19,7 +19,7 @@
#include <regex>
#include <cassert>
-#include "../../iterators.h"
+#include "../../../iterators.h"
int main()
{
diff --git a/libcxx/test/re/re.alg/re.alg.search/egrep.pass.cpp b/libcxx/test/re/re.alg/re.alg.search/egrep.pass.cpp
index 85d1ace00d8..562cc082eed 100644
--- a/libcxx/test/re/re.alg/re.alg.search/egrep.pass.cpp
+++ b/libcxx/test/re/re.alg/re.alg.search/egrep.pass.cpp
@@ -19,7 +19,7 @@
#include <regex>
#include <cassert>
-#include "../../iterators.h"
+#include "../../../iterators.h"
int main()
{
diff --git a/libcxx/test/re/re.alg/re.alg.search/extended.pass.cpp b/libcxx/test/re/re.alg/re.alg.search/extended.pass.cpp
index 3ef269f7ffc..e1a5ca74be6 100644
--- a/libcxx/test/re/re.alg/re.alg.search/extended.pass.cpp
+++ b/libcxx/test/re/re.alg/re.alg.search/extended.pass.cpp
@@ -19,7 +19,7 @@
#include <regex>
#include <cassert>
-#include "../../iterators.h"
+#include "../../../iterators.h"
int main()
{
diff --git a/libcxx/test/re/re.alg/re.alg.search/grep.pass.cpp b/libcxx/test/re/re.alg/re.alg.search/grep.pass.cpp
index 6d73e64127b..018118ba007 100644
--- a/libcxx/test/re/re.alg/re.alg.search/grep.pass.cpp
+++ b/libcxx/test/re/re.alg/re.alg.search/grep.pass.cpp
@@ -19,7 +19,7 @@
#include <regex>
#include <cassert>
-#include "../../iterators.h"
+#include "../../../iterators.h"
int main()
{
diff --git a/libcxx/test/re/re.regex/re.regex.assign/assign_iter_iter_flag.pass.cpp b/libcxx/test/re/re.regex/re.regex.assign/assign_iter_iter_flag.pass.cpp
index 64551e67944..493c9fa95e8 100644
--- a/libcxx/test/re/re.regex/re.regex.assign/assign_iter_iter_flag.pass.cpp
+++ b/libcxx/test/re/re.regex/re.regex.assign/assign_iter_iter_flag.pass.cpp
@@ -19,7 +19,7 @@
#include <regex>
#include <cassert>
-#include "../../iterators.h"
+#include "../../../iterators.h"
int main()
{
diff --git a/libcxx/test/re/re.regex/re.regex.construct/iter_iter.pass.cpp b/libcxx/test/re/re.regex/re.regex.construct/iter_iter.pass.cpp
index 710b2e692ee..e16bb729ea8 100644
--- a/libcxx/test/re/re.regex/re.regex.construct/iter_iter.pass.cpp
+++ b/libcxx/test/re/re.regex/re.regex.construct/iter_iter.pass.cpp
@@ -17,7 +17,7 @@
#include <regex>
#include <cassert>
-#include "../../iterators.h"
+#include "../../../iterators.h"
template <class Iter>
void
diff --git a/libcxx/test/re/re.regex/re.regex.construct/iter_iter_flg.pass.cpp b/libcxx/test/re/re.regex/re.regex.construct/iter_iter_flg.pass.cpp
index e3d41ff0f61..37b66e9edbb 100644
--- a/libcxx/test/re/re.regex/re.regex.construct/iter_iter_flg.pass.cpp
+++ b/libcxx/test/re/re.regex/re.regex.construct/iter_iter_flg.pass.cpp
@@ -18,7 +18,7 @@
#include <regex>
#include <cassert>
-#include "../../iterators.h"
+#include "../../../iterators.h"
template <class Iter>
void
diff --git a/libcxx/test/re/re.results/re.results.form/form1.pass.cpp b/libcxx/test/re/re.results/re.results.form/form1.pass.cpp
index 1729754b07a..602311c636d 100644
--- a/libcxx/test/re/re.results/re.results.form/form1.pass.cpp
+++ b/libcxx/test/re/re.results/re.results.form/form1.pass.cpp
@@ -19,7 +19,7 @@
#include <regex>
#include <cassert>
-#include "../../iterators.h"
+#include "../../../iterators.h"
int main()
{
diff --git a/libcxx/test/re/re.results/re.results.form/form2.pass.cpp b/libcxx/test/re/re.results/re.results.form/form2.pass.cpp
index a700b5e6653..447b39b0b0b 100644
--- a/libcxx/test/re/re.results/re.results.form/form2.pass.cpp
+++ b/libcxx/test/re/re.results/re.results.form/form2.pass.cpp
@@ -21,7 +21,7 @@
#include <regex>
#include <cassert>
-#include "../../iterators.h"
+#include "../../../iterators.h"
#include "../../test_allocator.h"
int main()
diff --git a/libcxx/test/re/re.traits/iterators.h b/libcxx/test/re/re.traits/iterators.h
deleted file mode 100644
index bbdeede9ff8..00000000000
--- a/libcxx/test/re/re.traits/iterators.h
+++ /dev/null
@@ -1,251 +0,0 @@
-#ifndef ITERATORS_H
-#define ITERATORS_H
-
-#include <iterator>
-
-template <class It>
-class input_iterator
-{
- It it_;
-
- template <class U> friend class input_iterator;
-public:
- typedef std::input_iterator_tag iterator_category;
- typedef typename std::iterator_traits<It>::value_type value_type;
- typedef typename std::iterator_traits<It>::difference_type difference_type;
- typedef It pointer;
- typedef typename std::iterator_traits<It>::reference reference;
-
- It base() const {return it_;}
-
- input_iterator() : it_() {}
- explicit input_iterator(It it) : it_(it) {}
- template <class U>
- input_iterator(const input_iterator<U>& u) :it_(u.it_) {}
-
- reference operator*() const {return *it_;}
- pointer operator->() const {return it_;}
-
- input_iterator& operator++() {++it_; return *this;}
- input_iterator operator++(int)
- {input_iterator tmp(*this); ++(*this); return tmp;}
-
- friend bool operator==(const input_iterator& x, const input_iterator& y)
- {return x.it_ == y.it_;}
- friend bool operator!=(const input_iterator& x, const input_iterator& y)
- {return !(x == y);}
-};
-
-template <class T, class U>
-inline
-bool
-operator==(const input_iterator<T>& x, const input_iterator<U>& y)
-{
- return x.base() == y.base();
-}
-
-template <class T, class U>
-inline
-bool
-operator!=(const input_iterator<T>& x, const input_iterator<U>& y)
-{
- return !(x == y);
-}
-
-template <class It>
-class forward_iterator
-{
- It it_;
-
- template <class U> friend class forward_iterator;
-public:
- typedef std::forward_iterator_tag iterator_category;
- typedef typename std::iterator_traits<It>::value_type value_type;
- typedef typename std::iterator_traits<It>::difference_type difference_type;
- typedef It pointer;
- typedef typename std::iterator_traits<It>::reference reference;
-
- It base() const {return it_;}
-
- forward_iterator() : it_() {}
- explicit forward_iterator(It it) : it_(it) {}
- template <class U>
- forward_iterator(const forward_iterator<U>& u) :it_(u.it_) {}
-
- reference operator*() const {return *it_;}
- pointer operator->() const {return it_;}
-
- forward_iterator& operator++() {++it_; return *this;}
- forward_iterator operator++(int)
- {forward_iterator tmp(*this); ++(*this); return tmp;}
-
- friend bool operator==(const forward_iterator& x, const forward_iterator& y)
- {return x.it_ == y.it_;}
- friend bool operator!=(const forward_iterator& x, const forward_iterator& y)
- {return !(x == y);}
-};
-
-template <class T, class U>
-inline
-bool
-operator==(const forward_iterator<T>& x, const forward_iterator<U>& y)
-{
- return x.base() == y.base();
-}
-
-template <class T, class U>
-inline
-bool
-operator!=(const forward_iterator<T>& x, const forward_iterator<U>& y)
-{
- return !(x == y);
-}
-
-template <class It>
-class bidirectional_iterator
-{
- It it_;
-
- template <class U> friend class bidirectional_iterator;
-public:
- typedef std::bidirectional_iterator_tag iterator_category;
- typedef typename std::iterator_traits<It>::value_type value_type;
- typedef typename std::iterator_traits<It>::difference_type difference_type;
- typedef It pointer;
- typedef typename std::iterator_traits<It>::reference reference;
-
- It base() const {return it_;}
-
- bidirectional_iterator() : it_() {}
- explicit bidirectional_iterator(It it) : it_(it) {}
- template <class U>
- bidirectional_iterator(const bidirectional_iterator<U>& u) :it_(u.it_) {}
-
- reference operator*() const {return *it_;}
- pointer operator->() const {return it_;}
-
- bidirectional_iterator& operator++() {++it_; return *this;}
- bidirectional_iterator operator++(int)
- {bidirectional_iterator tmp(*this); ++(*this); return tmp;}
-
- bidirectional_iterator& operator--() {--it_; return *this;}
- bidirectional_iterator operator--(int)
- {bidirectional_iterator tmp(*this); --(*this); return tmp;}
-};
-
-template <class T, class U>
-inline
-bool
-operator==(const bidirectional_iterator<T>& x, const bidirectional_iterator<U>& y)
-{
- return x.base() == y.base();
-}
-
-template <class T, class U>
-inline
-bool
-operator!=(const bidirectional_iterator<T>& x, const bidirectional_iterator<U>& y)
-{
- return !(x == y);
-}
-
-template <class It>
-class random_access_iterator
-{
- It it_;
-
- template <class U> friend class random_access_iterator;
-public:
- typedef std::random_access_iterator_tag iterator_category;
- typedef typename std::iterator_traits<It>::value_type value_type;
- typedef typename std::iterator_traits<It>::difference_type difference_type;
- typedef It pointer;
- typedef typename std::iterator_traits<It>::reference reference;
-
- It base() const {return it_;}
-
- random_access_iterator() : it_() {}
- explicit random_access_iterator(It it) : it_(it) {}
- template <class U>
- random_access_iterator(const random_access_iterator<U>& u) :it_(u.it_) {}
-
- reference operator*() const {return *it_;}
- pointer operator->() const {return it_;}
-
- random_access_iterator& operator++() {++it_; return *this;}
- random_access_iterator operator++(int)
- {random_access_iterator tmp(*this); ++(*this); return tmp;}
-
- random_access_iterator& operator--() {--it_; return *this;}
- random_access_iterator operator--(int)
- {random_access_iterator tmp(*this); --(*this); return tmp;}
-
- random_access_iterator& operator+=(difference_type n) {it_ += n; return *this;}
- random_access_iterator operator+(difference_type n) const
- {random_access_iterator tmp(*this); tmp += n; return tmp;}
- friend random_access_iterator operator+(difference_type n, random_access_iterator x)
- {x += n; return x;}
- random_access_iterator& operator-=(difference_type n) {return *this += -n;}
- random_access_iterator operator-(difference_type n) const
- {random_access_iterator tmp(*this); tmp -= n; return tmp;}
-
- reference operator[](difference_type n) const {return it_[n];}
-};
-
-template <class T, class U>
-inline
-bool
-operator==(const random_access_iterator<T>& x, const random_access_iterator<U>& y)
-{
- return x.base() == y.base();
-}
-
-template <class T, class U>
-inline
-bool
-operator!=(const random_access_iterator<T>& x, const random_access_iterator<U>& y)
-{
- return !(x == y);
-}
-
-template <class T, class U>
-inline
-bool
-operator<(const random_access_iterator<T>& x, const random_access_iterator<U>& y)
-{
- return x.base() < y.base();
-}
-
-template <class T, class U>
-inline
-bool
-operator<=(const random_access_iterator<T>& x, const random_access_iterator<U>& y)
-{
- return !(y < x);
-}
-
-template <class T, class U>
-inline
-bool
-operator>(const random_access_iterator<T>& x, const random_access_iterator<U>& y)
-{
- return y < x;
-}
-
-template <class T, class U>
-inline
-bool
-operator>=(const random_access_iterator<T>& x, const random_access_iterator<U>& y)
-{
- return !(x < y);
-}
-
-template <class T, class U>
-inline
-typename std::iterator_traits<T>::difference_type
-operator-(const random_access_iterator<T>& x, const random_access_iterator<U>& y)
-{
- return x.base() - y.base();
-}
-
-#endif // ITERATORS_H
diff --git a/libcxx/test/re/re.traits/lookup_classname.pass.cpp b/libcxx/test/re/re.traits/lookup_classname.pass.cpp
index 313f40ef030..0db61c0b491 100644
--- a/libcxx/test/re/re.traits/lookup_classname.pass.cpp
+++ b/libcxx/test/re/re.traits/lookup_classname.pass.cpp
@@ -18,7 +18,7 @@
#include <regex>
#include <cassert>
-#include "iterators.h"
+#include "../../iterators.h"
template <class char_type>
void
diff --git a/libcxx/test/re/re.traits/lookup_collatename.pass.cpp b/libcxx/test/re/re.traits/lookup_collatename.pass.cpp
index 53cb5784fff..96acd6791f0 100644
--- a/libcxx/test/re/re.traits/lookup_collatename.pass.cpp
+++ b/libcxx/test/re/re.traits/lookup_collatename.pass.cpp
@@ -18,7 +18,7 @@
#include <regex>
#include <iterator>
#include <cassert>
-#include "iterators.h"
+#include "../../iterators.h"
template <class char_type>
void
diff --git a/libcxx/test/re/re.traits/transform.pass.cpp b/libcxx/test/re/re.traits/transform.pass.cpp
index d7e7e872e42..780826dcfcb 100644
--- a/libcxx/test/re/re.traits/transform.pass.cpp
+++ b/libcxx/test/re/re.traits/transform.pass.cpp
@@ -17,7 +17,7 @@
#include <regex>
#include <cassert>
-#include "iterators.h"
+#include "../../iterators.h"
int main()
{
diff --git a/libcxx/test/re/re.traits/transform_primary.pass.cpp b/libcxx/test/re/re.traits/transform_primary.pass.cpp
index d6d0a865952..869f12e4c34 100644
--- a/libcxx/test/re/re.traits/transform_primary.pass.cpp
+++ b/libcxx/test/re/re.traits/transform_primary.pass.cpp
@@ -18,7 +18,7 @@
#include <regex>
#include <cassert>
-#include "iterators.h"
+#include "../../iterators.h"
int main()
{
OpenPOWER on IntegriCloud