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)