1 //===----------------------------------------------------------------------===//
3 // The LLVM Compiler Infrastructure
5 // This file is dual licensed under the MIT and the University of Illinois Open
6 // Source Licenses. See LICENSE.TXT for details.
8 //===----------------------------------------------------------------------===//
14 // pointer operator->() const;
16 // Be sure to respect LWG 198:
17 // http://www.open-std.org/jtc1/sc22/wg21/docs/lwg-defects.html#198
18 // LWG 198 was superseded by LWG 2360
19 // http://www.open-std.org/jtc1/sc22/wg21/docs/lwg-defects.html#2360
33 int get() const {return data_;}
35 friend bool operator==(const A& x, const A& y)
36 {return x.data_ == y.data_;}
41 test(It i, typename std::iterator_traits<It>::value_type x)
43 std::reverse_iterator<It> r(i);
44 assert(r->get() == x.get());
51 B(int d=1) : data_(d) {}
54 int get() const {return data_;}
56 friend bool operator==(const B& x, const B& y)
57 {return x.data_ == y.data_;}
58 const B *operator&() const { return nullptr; }
59 B *operator&() { return nullptr; }
74 std::list<B>::const_iterator i = l.begin();
75 assert ( i->get() == 0 ); ++i;
76 assert ( i->get() == 1 ); ++i;
77 assert ( i->get() == 2 ); ++i;
78 assert ( i == l.end ());
82 std::list<B>::const_reverse_iterator ri = l.rbegin();
83 assert ( ri->get() == 2 ); ++ri;
84 assert ( ri->get() == 1 ); ++ri;
85 assert ( ri->get() == 0 ); ++ri;
86 assert ( ri == l.rend ());