Everything under [re.results]
llvm-svn: 111074
diff --git a/libcxx/test/re/iterators.h b/libcxx/test/re/iterators.h
index 85332ac..8ca5e88 100644
--- a/libcxx/test/re/iterators.h
+++ b/libcxx/test/re/iterators.h
@@ -4,6 +4,32 @@
#include <iterator>
template <class It>
+class output_iterator
+{
+ It it_;
+
+ template <class U> friend class output_iterator;
+public:
+ typedef std::output_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_;}
+
+ explicit output_iterator(It it) : it_(it) {}
+ template <class U>
+ output_iterator(const output_iterator<U>& u) :it_(u.it_) {}
+
+ reference operator*() const {return *it_;}
+
+ output_iterator& operator++() {++it_; return *this;}
+ output_iterator operator++(int)
+ {output_iterator tmp(*this); ++(*this); return tmp;}
+};
+
+template <class It>
class input_iterator
{
It it_;