]> git.ipfire.org Git - thirdparty/gcc.git/blame - libstdc++-v3/testsuite/24_iterators/headers/iterator/synopsis.cc
Update copyright years.
[thirdparty/gcc.git] / libstdc++-v3 / testsuite / 24_iterators / headers / iterator / synopsis.cc
CommitLineData
8856cc8b 1// { dg-do compile }
2
f1717362 3// Copyright (C) 2007-2016 Free Software Foundation, Inc.
8856cc8b 4//
5// This file is part of the GNU ISO C++ Library. This library is free
6// software; you can redistribute it and/or modify it under the
7// terms of the GNU General Public License as published by the
6bc9506f 8// Free Software Foundation; either version 3, or (at your option)
8856cc8b 9// any later version.
10
11// This library is distributed in the hope that it will be useful,
12// but WITHOUT ANY WARRANTY; without even the implied warranty of
13// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14// GNU General Public License for more details.
15
16// You should have received a copy of the GNU General Public License along
6bc9506f 17// with this library; see the file COPYING3. If not see
18// <http://www.gnu.org/licenses/>.
8856cc8b 19
20#include <iterator>
21
22namespace std {
23
24 // 24.3, primitives:
25 template<class Iterator> struct iterator_traits;
26 template<class T> struct iterator_traits<T*>;
27
28 template<class Category, class T, class Distance,
29 class Pointer, class Reference> struct iterator;
30
31 struct input_iterator_tag;
32 struct output_iterator_tag;
33 struct forward_iterator_tag;
34 struct bidirectional_iterator_tag;
35 struct random_access_iterator_tag;
36
37 // 24.3.4, iterator operations:
38 template <class InputIterator, class Distance>
39 void
40 advance(InputIterator& i, Distance n);
41
42 template <class InputIterator>
43 typename iterator_traits<InputIterator>::difference_type
44 distance(InputIterator first, InputIterator last);
45
46 // 24.4, predefined iterators:
47 template <class Iterator> class reverse_iterator;
48
49 template <class Iterator>
50 bool operator==(const reverse_iterator<Iterator>& x,
51 const reverse_iterator<Iterator>& y);
52
53 template <class Iterator>
54 bool operator<(const reverse_iterator<Iterator>& x,
55 const reverse_iterator<Iterator>& y);
56
57 template <class Iterator>
58 bool operator!=(const reverse_iterator<Iterator>& x,
59 const reverse_iterator<Iterator>& y);
60
61 template <class Iterator>
62 bool operator>(const reverse_iterator<Iterator>& x,
63 const reverse_iterator<Iterator>& y);
64
65 template <class Iterator>
66 bool operator>=(const reverse_iterator<Iterator>& x,
67 const reverse_iterator<Iterator>& y);
68
69 template <class Iterator>
70 bool operator<=(const reverse_iterator<Iterator>& x,
71 const reverse_iterator<Iterator>& y);
72
73 template <class Iterator>
74 typename reverse_iterator<Iterator>::difference_type
75 operator-(const reverse_iterator<Iterator>& x,
76 const reverse_iterator<Iterator>& y);
77
78 template <class Iterator>
79 reverse_iterator<Iterator>
80 operator+(typename reverse_iterator<Iterator>::difference_type n,
81 const reverse_iterator<Iterator>& x);
82
83 template <class Container> class back_insert_iterator;
84
85 template <class Container>
86 back_insert_iterator<Container> back_inserter(Container& x);
87
88 template <class Container> class front_insert_iterator;
89
90 template <class Container>
91 front_insert_iterator<Container> front_inserter(Container& x);
92
93 template <class Container> class insert_iterator;
94
95 template <class Container, class Iterator>
96 insert_iterator<Container> inserter(Container& x, Iterator i);
97
98 // 24.5, stream iterators:
99 template <class T, class charT, class traits, class Distance>
100 class istream_iterator;
101
102 template <class T, class charT, class traits, class Distance>
103 bool operator==(const istream_iterator<T,charT,traits,Distance>& x,
104 const istream_iterator<T,charT,traits,Distance>& y);
105
106 template <class T, class charT, class traits, class Distance>
107 bool operator!=(const istream_iterator<T,charT,traits,Distance>& x,
108 const istream_iterator<T,charT,traits,Distance>& y);
109
110 template <class T, class charT, class traits>
111 class ostream_iterator;
112
113 template<class charT, class traits>
114 class istreambuf_iterator;
115
116 template <class charT, class traits>
117 bool
118 operator==(const istreambuf_iterator<charT,traits>&,
119 const istreambuf_iterator<charT,traits>&);
120
121 template <class charT, class traits>
122 bool operator!=(const istreambuf_iterator<charT,traits>&,
123 const istreambuf_iterator<charT,traits>&);
124
125 template <class charT, class traits>
126 class ostreambuf_iterator;
127}