make_reverse_iterator.pass.cpp revision ff137e9145641a07ff69d74e3fc599e1e9bceaad
1//===----------------------------------------------------------------------===//
2//
3//                     The LLVM Compiler Infrastructure
4//
5// This file is dual licensed under the MIT and the University of Illinois Open
6// Source Licenses. See LICENSE.TXT for details.
7//
8//===----------------------------------------------------------------------===//
9
10// <iterator>
11
12// reverse_iterator
13
14// template <class Iterator> reverse_iterator<Iterator>
15//     make_reverse_iterator(Iterator i);
16
17#include <iterator>
18#include <cassert>
19
20#include "test_iterators.h"
21
22#if _LIBCPP_STD_VER > 11
23
24template <class It>
25void
26test(It i)
27{
28    const std::reverse_iterator<It> r = std::make_reverse_iterator(i);
29    assert(r.base() == i);
30}
31
32int main()
33{
34    const char* s = "1234567890";
35    random_access_iterator<const char*>b(s);
36    random_access_iterator<const char*>e(s+10);
37    while ( b != e )
38    	test ( b++ );
39}
40#else
41int main () {}
42#endif
43