reverse_iterator.fail.cpp revision b64f8b07c104c6cc986570ac8ee0ed16a9f23976
1cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)//===----------------------------------------------------------------------===//
2cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)//
3cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)//                     The LLVM Compiler Infrastructure
4cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)//
5cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)// This file is dual licensed under the MIT and the University of Illinois Open
6cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)// Source Licenses. See LICENSE.TXT for details.
7cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)//
846d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)//===----------------------------------------------------------------------===//
9cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)
10cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)// <iterator>
11cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)
12cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)// reverse_iterator
13cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)
14cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)// template <class U>
15cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)//   requires HasConstructor<Iter, const U&>
16cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)//   reverse_iterator(const reverse_iterator<U> &u);
17cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)
186d86b77056ed63eb6871182f42a9fd5f07550f90Torne (Richard Coles)// test requires
19cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)
20cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)#include <iterator>
21cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)
226d86b77056ed63eb6871182f42a9fd5f07550f90Torne (Richard Coles)template <class It, class U>
236d86b77056ed63eb6871182f42a9fd5f07550f90Torne (Richard Coles)void
246d86b77056ed63eb6871182f42a9fd5f07550f90Torne (Richard Coles)test(U u)
256d86b77056ed63eb6871182f42a9fd5f07550f90Torne (Richard Coles){
266d86b77056ed63eb6871182f42a9fd5f07550f90Torne (Richard Coles)    std::reverse_iterator<U> r2(u);
276d86b77056ed63eb6871182f42a9fd5f07550f90Torne (Richard Coles)    std::reverse_iterator<It> r1 = r2;
286d86b77056ed63eb6871182f42a9fd5f07550f90Torne (Richard Coles)}
296d86b77056ed63eb6871182f42a9fd5f07550f90Torne (Richard Coles)
30cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)struct base {};
31cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)struct derived {};
32cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)
336d86b77056ed63eb6871182f42a9fd5f07550f90Torne (Richard Coles)int main()
34cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles){
35cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)    derived d;
36cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)
376d86b77056ed63eb6871182f42a9fd5f07550f90Torne (Richard Coles)    test<base*>(&d);
38cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)}
39cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)