test.pass.cpp revision 712522cfd8f61321b4f197ec0de02b0146afb5a5
12a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)//===----------------------------------------------------------------------===//
22a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)//
32a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)//                     The LLVM Compiler Infrastructure
42a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)//
52a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)// This file is distributed under the University of Illinois Open Source
62a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)// License. See LICENSE.TXT for details.
72a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)//
82a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)//===----------------------------------------------------------------------===//
92a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
102a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)// <iterator>
112a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
122a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)// reverse_iterator
132a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
14c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)// template <RandomAccessIterator Iter1, RandomAccessIterator Iter2>
159ab5563a3196760eb381d102cbb2bc0f7abc6a50Ben Murdoch//   requires HasGreater<Iter1, Iter2>
162a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)//   bool
172a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)//   operator<=(const reverse_iterator<Iter1>& x, const reverse_iterator<Iter2>& y);
185d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)
195d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)#include <iterator>
205d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)#include <cassert>
215d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)
222a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#include "../../../../iterators.h"
232a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
242a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)template <class It>
252a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)void
262a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)test(It l, It r, bool x)
272a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles){
282a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    const std::reverse_iterator<It> r1(l);
292a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    const std::reverse_iterator<It> r2(r);
302a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    assert((r1 <= r2) == x);
312a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)}
322a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
332a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)int main()
342a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles){
352a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    const char* s = "1234567890";
362a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    test(random_access_iterator<const char*>(s), random_access_iterator<const char*>(s), true);
372a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    test(random_access_iterator<const char*>(s), random_access_iterator<const char*>(s+1), false);
382a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    test(random_access_iterator<const char*>(s+1), random_access_iterator<const char*>(s), true);
392a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    test(s, s, true);
402a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    test(s, s+1, false);
412a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    test(s+1, s, true);
422a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)}
432a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)