• Home
  • History
  • Annotate
  • only in /external/lldb/tools/lldb-perf/lldbperf.xcodeproj/
reverse_iterator.pass.cpp revision f5256e16dfc425c1d466f6308d4026d529ce9e0b
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)//===----------------------------------------------------------------------===//
9868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)
10868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)// <iterator>
11c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)
122a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)// reverse_iterator
135e3f23d412006dc4db4e659864679f29341e113fTorne (Richard Coles)
14868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)// template <class U>
15c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)//   requires HasConstructor<Iter, const U&>
162a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)//   reverse_iterator(const reverse_iterator<U> &u);
172a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
18c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)#include <iterator>
19c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)#include <cassert>
20c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)
21c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)#include "../../../../iterators.h"
222a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
232a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)template <class It, class U>
242a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)void
252a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)test(U u)
262a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles){
272a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    const std::reverse_iterator<U> r2(u);
282a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    std::reverse_iterator<It> r1 = r2;
29868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)    assert(r1.base() == u);
30868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)}
31868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)
32868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)struct base {};
33868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)struct derived : base {};
34868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)
35868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)int main()
36868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles){
37868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)    derived d;
38868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)
39868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)    test<bidirectional_iterator<base*> >(bidirectional_iterator<derived*>(&d));
40868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)    test<random_access_iterator<const base*> >(random_access_iterator<derived*>(&d));
41868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)    test<base*>(&d);
42868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)}
43868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)