]> git.ipfire.org Git - thirdparty/gcc.git/blob - libstdc++-v3/testsuite/17_intro/names.cc
Update copyright years.
[thirdparty/gcc.git] / libstdc++-v3 / testsuite / 17_intro / names.cc
1 // Copyright (C) 2017-2020 Free Software Foundation, Inc.
2 //
3 // This file is part of the GNU ISO C++ Library. This library is free
4 // software; you can redistribute it and/or modify it under the
5 // terms of the GNU General Public License as published by the
6 // Free Software Foundation; either version 3, or (at your option)
7 // any later version.
8
9 // This library is distributed in the hope that it will be useful,
10 // but WITHOUT ANY WARRANTY; without even the implied warranty of
11 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 // GNU General Public License for more details.
13
14 // You should have received a copy of the GNU General Public License along
15 // with this library; see the file COPYING3. If not see
16 // <http://www.gnu.org/licenses/>.
17
18 // { dg-do compile }
19
20 // Define macros for some common variables names that we must not use for
21 // naming variables, parameters etc. in the library.
22 #define A (
23 #define B (
24 #define C (
25 #define D (
26 #define E (
27 #define F (
28 #define G (
29 #define H (
30 #define I (
31 #define J (
32 #define K (
33 #define L (
34 #define M (
35 #define N (
36 #define O (
37 #define P (
38 #define Q (
39 #define R (
40 #define S (
41 #define T (
42 #define U (
43 #define V (
44 #define W (
45 #define X (
46 #define Y (
47 #define Z (
48 #if __cplusplus >= 201103L
49 // <random> defines member functions called a() and b()
50 #else
51 #define a (
52 #define b (
53 #endif
54 // <queue> and <stack> defined data members called c
55 #define d (
56 #if __cplusplus <= 201703L
57 // <numbers> defines std::numbers::e
58 #define e (
59 #endif
60 #define f (
61 #define g (
62 #if __cplusplus >= 201402L
63 // <chrono> defines operator ""h in C++14
64 // <complex> defines operator ""i in C++14
65 #else
66 #define h (
67 #define i (
68 #endif
69 #define j (
70 #if __cplusplus >= 201103L
71 // <random> defines member functions called k()
72 #else
73 #define k (
74 #endif
75 #define l (
76 #if __cplusplus >= 201103L
77 // <random> defines member functions called m() and n()
78 #else
79 #define m (
80 #define n (
81 #endif
82 #define o (
83 #if __cplusplus >= 201103L
84 // <random> defines member functions called p()
85 #else
86 #define p (
87 #endif
88 #define q (
89 #define r (
90 #if __cplusplus >= 201103L
91 // <random> defines member functions called s() and t()
92 // <chrono> and <string> define operator ""s in C++14
93 #else
94 #define s (
95 #define t (
96 #endif
97 #define u (
98 #define v (
99 #define w (
100 #define x (
101 #define y (
102 #define z (
103
104 #define tmp (
105
106 #if __cplusplus < 201103L
107 #define uses_allocator (
108 #endif
109
110 #if __cplusplus < 201703L
111 // <charconv> defines to_chars_result::ptr and to_chars_result::ec
112 #define ec (
113 #define ptr (
114 #endif
115
116 // Common template parameter names
117 #define OutputIterator OutputIterator is not a reserved name
118 #define InputIterator InputIterator is not a reserved name
119 #define ForwardIterator ForwardIterator is not a reserved name
120 #define BidirectionalIterator BidirectionalIterator is not a reserved name
121 #define RandomAccessIterator RandomAccessIterator is not a reserved name
122 #define RandomAccessOutputIterator RandomAccessOutputIterator is not a reserved name
123 #define RAI RAI is not a reserved name
124 #define RAIter RAIter is not a reserved name
125 #define FwdIter FwdIter is not a reserved name
126 #define OutIter OutIter is not a reserved name
127 #define InIter InIter is not a reserved name
128
129 #define Alloc Alloc is not a reserved name
130 #define BinaryFunction1 BinaryFunction1 is not a reserved name
131 #define BinaryFunction2 BinaryFunction2 is not a reserved name
132 #define Char Char is not a reserved name
133 #define CharT CharT is not a reserved name
134 #define Cmp Cmp is not a reserved name
135 #define Compare Compare is not a reserved name
136 #define Const_Iterator Const_Iterator is not a reserved name
137 #define Const_Key_Reference Const_Key_Reference is not a reserved name
138 #define Const_Node_Iter Const_Node_Iter is not a reserved name
139 #define Const_Pointer Const_Pointer is not a reserved name
140 #define Const_Reference Const_Reference is not a reserved name
141 #define Data Data is not a reserved name
142 #define DiffType DiffType is not a reserved name
143 #define Eq Eq is not a reserved name
144 #define ExecPolicy ExecPolicy is not a reserved name
145 #define Expected Expected is not a reserved name
146 #define External_Load_Access External_Load_Access is not a reserved name
147 #define External_Size_Access External_Size_Access is not a reserved name
148 #define Fn Fn is not a reserved name
149 #define Function Function is not a reserved name
150 #define Functor Functor is not a reserved name
151 #define Hash Hash is not a reserved name
152 #define H1 H1 is not a reserved name
153 #define H2 H2 is not a reserved name
154 #define Head Head is not a reserved name
155 #define It It is not a reserved name
156 #define Iter Iter is not a reserved name
157 #define Iterator Iterator is not a reserved name
158 #define Key Key is not a reserved name
159 #define Mapped Mapped is not a reserved name
160 #define Node Node is not a reserved name
161 #define Node_iter Node_iter is not a reserved name
162 #define Node_ptr Node_ptr is not a reserved name
163 #define Overflow Overflow is not a reserved name
164 #define Pointer Pointer is not a reserved name
165 #define Policy Policy is not a reserved name
166 #define Pred Pred is not a reserved name
167 #define Ptr Ptr is not a reserved name
168 #define Reference Reference is not a reserved name
169 #define Seq Seq is not a reserved name
170 #define Seq_RAIter Seq_RAIter is not a reserved name
171 #define Series Series is not a reserved name
172 #define Set Set is not a reserved name
173 #define String String is not a reserved name
174 #define Tp Tp is not a reserved name
175 #define Traits Traits is not a reserved name
176 #define Type Type is not a reserved name
177 #define Value Value is not a reserved name
178 #define ValueT ValueT is not a reserved name
179 #define ValueType ValueType is not a reserved name
180
181 #ifdef _AIX
182 // See https://gcc.gnu.org/ml/libstdc++/2017-03/msg00015.html
183 #undef f
184 #undef r
185 #undef x
186 #undef y
187 #endif
188
189 #ifdef __hpux__
190 #undef d
191 #undef r
192 #endif
193
194 #if defined (__linux__) && defined (__sparc__)
195 #undef y
196 #endif
197
198 #ifdef __sun__
199 // See https://gcc.gnu.org/ml/libstdc++/2019-05/msg00175.html
200 #undef ptr
201 #endif
202
203 #include <bits/stdc++.h>