1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
|
%language=C++
%define class-name std_name_hint_lookup
%struct-type
%{
/* This file is auto-generated by gen-cxxapi-file.py. */
/* Copyright (C) 2022 Free Software Foundation, Inc.
This file is part of GCC.
GCC is free software; you can redistribute it and/or modify it under
the terms of the GNU General Public License as published by the Free
Software Foundation; either version 3, or (at your option) any later
version.
GCC is distributed in the hope that it will be useful, but WITHOUT ANY
WARRANTY; without even the implied warranty of MERCHANTABILITY or
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
for more details.
You should have received a copy of the GNU General Public License
along with GCC; see the file COPYING3. If not see
<http://www.gnu.org/licenses/>. */
%}
struct std_name_hint
{
/* A name within "std::". */
const char *name;
/* The header name defining it within the C++ Standard Library
(with '<' and '>'). */
const char* header;
/* The dialect of C++ in which this was added. */
enum cxx_dialect min_dialect;
};
%%
# The standard-defined types, functions, and options in the std:: namespace
# as defined in the C++ language specification. The result is used in the
# get_std_name_hint functions.
# throws an exception.
#
# <any>
any, "<any>", cxx17
any_cast, "<any>", cxx17
make_any, "<any>", cxx17
# <array>
array, "<array>", cxx11
to_array, "<array>", cxx20
# <atomic>
atomic, "<atomic>", cxx11
atomic_ref, "<atomic>", cxx20
atomic_signed_lock_free, "<atomic>", cxx11
atomic_uintmax_t, "<atomic>", cxx20
atomic_unsigned_lock_free, "<atomic>", cxx11
# <bitset>
bitset, "<bitset>", cxx11
# <compare>
partial_ordering, "<compare>", cxx20
strong_equality, "<compare>", cxx20
strong_ordering, "<compare>", cxx20
weak_equality, "<compare>", cxx20
weak_ordering, "<compare>", cxx20
# <complex>
complex, "<complex>", cxx98
complex_literals, "<complex>", cxx14
# <condition_variable>
condition_variable, "<condition_variable>", cxx11
condition_variable_any, "<condition_variable>", cxx11
# <cstddef>
byte, "<cstddef>", cxx17
# <cstdint>
uint_fast16_t, "<cstdint>", cxx11
uint_fast32_t, "<cstdint>", cxx11
uint_fast64_t, "<cstdint>", cxx11
uint_fast8_t, "<cstdint>", cxx11
uint_least16_t, "<cstdint>", cxx11
uint_least32_t, "<cstdint>", cxx11
uint_least64_t, "<cstdint>", cxx11
uint_least8_t, "<cstdint>", cxx11
uintmax_t, "<cstdint>", cxx11
uintptr_t, "<cstdint>", cxx11
# <deque>
deque, "<deque>", cxx98
# <exception>
current_exception, "<exception>", cxx11
exception, "<exception>", cxx98
exception_ptr, "<exception>", cxx11
make_exception_ptr, "<exception>", cxx11
terminate, "<exception>", cxx98
uncaught_exceptions, "<exception>", cxx17
# <expected>
expected, "<expected>", cxx23
# <forward_list>
forward_list, "<forward_list>", cxx11
# <fstream>
basic_filebuf, "<fstream>", cxx98
basic_fstream, "<fstream>", cxx98
basic_ifstream, "<fstream>", cxx98
basic_ofstream, "<fstream>", cxx98
fstream, "<fstream>", cxx98
ifstream, "<fstream>", cxx98
ofstream, "<fstream>", cxx98
# <functional>
bind, "<functional>", cxx11
bind_front, "<functional>", cxx20
function, "<functional>", cxx11
hash, "<functional>", cxx11
invoke, "<functional>", cxx17
invoke_r, "<functional>", cxx23
mem_fn, "<functional>", cxx11
not_fn, "<functional>", cxx17
reference_wrapper, "<functional>", cxx11
unwrap_ref_decay, "<functional>", cxx20
unwrap_ref_decay_t, "<functional>", cxx20
unwrap_reference, "<functional>", cxx20
unwrap_reference_t, "<functional>", cxx20
# <future>
async, "<future>", cxx11
future, "<future>", cxx11
packaged_task, "<future>", cxx11
promise, "<future>", cxx11
# <iomanip>
get_money, "<iomanip>", cxx11
get_time, "<iomanip>", cxx11
put_money, "<iomanip>", cxx11
put_time, "<iomanip>", cxx11
quoted, "<iomanip>", cxx14
resetiosflags, "<iomanip>", cxx98
setbase, "<iomanip>", cxx98
setfill, "<iomanip>", cxx98
setiosflags, "<iomanip>", cxx98
setprecision, "<iomanip>", cxx98
setw, "<iomanip>", cxx98
# <ios>
boolalpha, "<ios>", cxx98
dec, "<ios>", cxx98
defaultfloat, "<ios>", cxx11
fixed, "<ios>", cxx98
hex, "<ios>", cxx98
hexfloat, "<ios>", cxx11
internal, "<ios>", cxx98
left, "<ios>", cxx98
noboolalpha, "<ios>", cxx98
noshowbase, "<ios>", cxx98
noshowpoint, "<ios>", cxx98
noshowpos, "<ios>", cxx98
noskipws, "<ios>", cxx98
nounitbuf, "<ios>", cxx98
nouppercase, "<ios>", cxx98
oct, "<ios>", cxx98
right, "<ios>", cxx98
scientific, "<ios>", cxx98
showbase, "<ios>", cxx98
showpoint, "<ios>", cxx98
showpos, "<ios>", cxx98
skipws, "<ios>", cxx98
unitbuf, "<ios>", cxx98
uppercase, "<ios>", cxx98
# <iostream>
cerr, "<iostream>", cxx98
cin, "<iostream>", cxx98
clog, "<iostream>", cxx98
cout, "<iostream>", cxx98
wcerr, "<iostream>", cxx98
wcin, "<iostream>", cxx98
wclog, "<iostream>", cxx98
wcout, "<iostream>", cxx98
# <istream>
istream, "<istream>", cxx98
ws, "<istream>", cxx98
# <iterator>
advance, "<iterator>", cxx98
back_inserter, "<iterator>", cxx98
begin, "<iterator>", cxx11
distance, "<iterator>", cxx98
end, "<iterator>", cxx11
front_inserter, "<iterator>", cxx98
inserter, "<iterator>", cxx98
istream_iterator, "<iterator>", cxx98
istreambuf_iterator, "<iterator>", cxx98
iterator_traits, "<iterator>", cxx98
move_iterator, "<iterator>", cxx11
next, "<iterator>", cxx11
ostream_iterator, "<iterator>", cxx98
ostreambuf_iterator, "<iterator>", cxx98
prev, "<iterator>", cxx11
reverse_iterator, "<iterator>", cxx98
# <list>
list, "<list>", cxx98
# <map>
map, "<map>", cxx98
multimap, "<map>", cxx98
# <memory>
addressof, "<memory>", cxx11
align, "<memory>", cxx11
allocate_shared, "<memory>", cxx11
allocate_shared_for_overwrite, "<memory>", cxx20
allocator, "<memory>", cxx98
allocator_arg, "<memory>", cxx11
allocator_arg_t, "<memory>", cxx11
allocator_traits, "<memory>", cxx11
assume_aligned, "<memory>", cxx20
bad_weak_ptr, "<memory>", cxx11
const_pointer_cast, "<memory>", cxx11
construct_at, "<memory>", cxx20
default_delete, "<memory>", cxx11
destroy, "<memory>", cxx20
destroy_at, "<memory>", cxx20
destroy_n, "<memory>", cxx20
dynamic_pointer_cast, "<memory>", cxx11
enable_shared_from_this, "<memory>", cxx11
get_deleter, "<memory>", cxx11
make_obj_using_allocator, "<memory>", cxx20
make_shared, "<memory>", cxx11
make_shared_for_overwrite, "<memory>", cxx20
make_unique, "<memory>", cxx14
make_unique_for_overwrite, "<memory>", cxx20
owner_less, "<memory>", cxx11
pointer_traits, "<memory>", cxx11
reinterpret_pointer_cast, "<memory>", cxx17
shared_ptr, "<memory>", cxx11
static_pointer_cast, "<memory>", cxx11
to_address, "<memory>", cxx11
uninitialized_construct_using_allocator, "<memory>", cxx20
unique_ptr, "<memory>", cxx11
uses_allocator, "<memory>", cxx11
uses_allocator_construction_args, "<memory>", cxx20
uses_allocator_v, "<memory>", cxx17
weak_ptr, "<memory>", cxx11
# <memory_resource>
pmr, "<memory_resource>", cxx17
pmr::get_default_resource, "<memory_resource>", cxx17
pmr::memory_resource, "<memory_resource>", cxx17
pmr::monotonic_buffer_resource, "<memory_resource>", cxx17
pmr::new_delete_resource, "<memory_resource>", cxx17
pmr::polymorphic_allocator, "<memory_resource>", cxx17
pmr::pool_options, "<memory_resource>", cxx17
pmr::set_default_resource, "<memory_resource>", cxx17
pmr::synchronized_pool_resource, "<memory_resource>", cxx17
pmr::unsynchronized_pool_resource, "<memory_resource>", cxx17
# <mutex>
call_once, "<mutex>", cxx11
lock, "<mutex>", cxx11
lock_guard, "<mutex>", cxx11
mutex, "<mutex>", cxx11
once_flag, "<mutex>", cxx11
recursive_mutex, "<mutex>", cxx11
recursive_timed_mutex, "<mutex>", cxx11
scoped_lock, "<mutex>", cxx17
timed_mutex, "<mutex>", cxx11
try_lock, "<mutex>", cxx11
unique_lock, "<mutex>", cxx11
# <new>
bad_alloc, "<new>", cxx98
hardware_constructive_interference_size, "<new>", cxx17
hardware_destructive_interference_size, "<new>", cxx17
launder, "<new>", cxx17
nothrow, "<new>", cxx98
nothrow_t, "<new>", cxx98
# <numbers>
numbers::e_v, "<numbers>", cxx20
numbers::egamma_v, "<numbers>", cxx20
numbers::inv_pi_v, "<numbers>", cxx20
numbers::inv_sqrt3_v, "<numbers>", cxx20
numbers::inv_sqrtpi_v, "<numbers>", cxx20
numbers::ln10_v, "<numbers>", cxx20
numbers::ln2_v, "<numbers>", cxx20
numbers::log10e_v, "<numbers>", cxx20
numbers::log2e_v, "<numbers>", cxx20
numbers::phi_v, "<numbers>", cxx20
numbers::pi_v, "<numbers>", cxx20
numbers::sqrt2_v, "<numbers>", cxx20
numbers::sqrt3_v, "<numbers>", cxx20
# <optional>
make_optional, "<optional>", cxx17
nullopt, "<optional>", cxx17
optional, "<optional>", cxx17
# <ostream>
emit_on_flush, "<ostream>", cxx20
endl, "<ostream>", cxx98
ends, "<ostream>", cxx98
flush, "<ostream>", cxx98
flush_emit, "<ostream>", cxx20
noemit_on_flush, "<ostream>", cxx20
ostream, "<ostream>", cxx98
wostream, "<ostream>", cxx98
# <queue>
priority_queue, "<queue>", cxx98
queue, "<queue>", cxx98
# <ranges>
ranges::enable_borrowed_range, "<ranges>", cxx20
ranges::enable_view, "<ranges>", cxx20
# <scoped_allocator>
scoped_allocator_adaptor, "<scoped_allocator>", cxx11
# <semaphore>
binary_semaphore, "<semaphore>", cxx20
counting_semaphore, "<semaphore>", cxx20
# <set>
multiset, "<set>", cxx98
set, "<set>", cxx98
# <shared_mutex>
shared_lock, "<shared_mutex>", cxx14
shared_mutex, "<shared_mutex>", cxx17
shared_timed_mutex, "<shared_mutex>", cxx14
# <source_location>
source_location, "<source_location>", cxx20
# <span>
span, "<span>", cxx20
# <spanstream>
basic_ispanstream, "<spanstream>", cxx23
basic_ospanstream, "<spanstream>", cxx23
basic_spanbuf, "<spanstream>", cxx23
basic_spanstream, "<spanstream>", cxx23
ispanstream, "<spanstream>", cxx23
ispanstream, "<spanstream>", cxx23
ospanstream, "<spanstream>", cxx23
spanbuf, "<spanstream>", cxx23
spanstream, "<spanstream>", cxx23
wispanstream, "<spanstream>", cxx23
wospanstream, "<spanstream>", cxx23
wspanbuf, "<spanstream>", cxx23
# <sstream>
basic_istringstream, "<sstream>", cxx98
basic_ostringstream, "<sstream>", cxx98
basic_stringbuf, "<sstream>", cxx98
basic_stringstream, "<sstream>", cxx98
istringstream, "<sstream>", cxx98
istringstream, "<sstream>", cxx98
ostringstream, "<sstream>", cxx98
stringbuf, "<sstream>", cxx98
stringstream, "<sstream>", cxx98
wistringstream, "<sstream>", cxx98
wostringstream, "<sstream>", cxx98
wstringbuf, "<sstream>", cxx98
# <stack>
stack, "<stack>", cxx98
# <stacktrace>
stacktrace, "<stacktrace>", cxx23
# <stdexcept>
domain_error, "<stdexcept>", cxx98
invalid_argument, "<stdexcept>", cxx98
length_error, "<stdexcept>", cxx98
logic_error, "<stdexcept>", cxx98
out_of_range, "<stdexcept>", cxx98
overflow_error, "<stdexcept>", cxx98
range_error, "<stdexcept>", cxx98
runtime_error, "<stdexcept>", cxx98
underflow_error, "<stdexcept>", cxx98
# <stop_token>
stop_callback, "<stop_token>", cxx20
stop_source, "<stop_token>", cxx20
stop_token, "<stop_token>", cxx20
# <streambuf>
basic_streambuf, "<streambuf>", cxx98
streambuf, "<streambuf>", cxx98
wstreambuf, "<streambuf>", cxx98
# <string>
basic_string, "<string>", cxx98
char_traits, "<string>", cxx98
stod, "<string>", cxx11
stof, "<string>", cxx11
stoi, "<string>", cxx11
stol, "<string>", cxx11
stold, "<string>", cxx11
stoll, "<string>", cxx11
stoul, "<string>", cxx11
stoull, "<string>", cxx11
string, "<string>", cxx98
to_string, "<string>", cxx17
to_wstring, "<string>", cxx17
u16string, "<string>", cxx11
u32string, "<string>", cxx11
u8string, "<string>", cxx20
wstring, "<string>", cxx98
# <string_view>
basic_string_view, "<string_view>", cxx17
string_view, "<string_view>", cxx17
# <system_error>
errc, "<system_error>", cxx11
error_category, "<system_error>", cxx11
error_code, "<system_error>", cxx11
error_condition, "<system_error>", cxx11
generic_category, "<system_error>", cxx11
is_error_code_enum, "<system_error>", cxx11
is_error_code_enum_v, "<system_error>", cxx17
is_error_condition_enum, "<system_error>", cxx11
is_error_condition_enum_v, "<system_error>", cxx17
make_error_code, "<system_error>", cxx11
make_error_condition, "<system_error>", cxx11
system_category, "<system_error>", cxx11
# <thread>
jthread, "<thread>", cxx20
this_thread, "<thread>", cxx11
thread, "<thread>", cxx11
# <tuple>
apply, "<tuple>", cxx17
forward_as_tuple, "<tuple>", cxx11
make_from_tuple, "<tuple>", cxx17
make_tuple, "<tuple>", cxx11
tie, "<tuple>", cxx11
tuple, "<tuple>", cxx11
tuple_cat, "<tuple>", cxx11
tuple_element, "<tuple>", cxx11
tuple_element_t, "<tuple>", cxx14
tuple_size, "<tuple>", cxx11
tuple_size_v, "<tuple>", cxx17
# <type_traits>
conjunction, "<type_traits>", cxx17
conjunction_v, "<type_traits>", cxx17
disjunction, "<type_traits>", cxx17
disjunction_v, "<type_traits>", cxx17
enable_if, "<type_traits>", cxx11
enable_if_t, "<type_traits>", cxx14
invoke_result, "<type_traits>", cxx17
invoke_result_t, "<type_traits>", cxx17
negation, "<type_traits>", cxx17
negation_v, "<type_traits>", cxx17
remove_cvref, "<type_traits>", cxx20
remove_cvref_t, "<type_traits>", cxx20
type_identity, "<type_traits>", cxx20
type_identity_t, "<type_traits>", cxx20
void_t, "<type_traits>", cxx17
# <typeindex>
type_index, "<typeindex>", cxx11
# <typeinfo>
bad_cast, "<typeinfo>", cxx98
bad_typeid, "<typeinfo>", cxx98
# <unordered_map>
unordered_map, "<unordered_map>", cxx11
unordered_multimap, "<unordered_map>", cxx11
# <unordered_set>
unordered_multiset, "<unordered_set>", cxx11
unordered_set, "<unordered_set>", cxx11
# <utility>
as_const, "<utility>", cxx17
cmp_equal, "<utility>", cxx20
cmp_greater, "<utility>", cxx20
cmp_greater_equal, "<utility>", cxx20
cmp_less, "<utility>", cxx20
cmp_less_equal, "<utility>", cxx20
cmp_not_equal, "<utility>", cxx20
declval, "<utility>", cxx11
exchange, "<utility>", cxx14
forward, "<utility>", cxx11
in_place, "<utility>", cxx17
in_place_index, "<utility>", cxx17
in_place_index_t, "<utility>", cxx17
in_place_t, "<utility>", cxx17
in_place_type, "<utility>", cxx17
in_place_type_t, "<utility>", cxx17
in_range, "<utility>", cxx20
index_sequence, "<utility>", cxx14
index_sequence_for, "<utility>", cxx14
integer_sequence, "<utility>", cxx14
make_index_sequence, "<utility>", cxx14
make_integer_sequence, "<utility>", cxx14
make_pair, "<utility>", cxx98
move, "<utility>", cxx11
move_if_noexcept, "<utility>", cxx11
pair, "<utility>", cxx98
piecewise_construct, "<utility>", cxx11
piecewise_construct_t, "<utility>", cxx11
to_underlying, "<utility>", cxx23
unreachable, "<utility>", cxx23
# <variant>
bad_variant_access, "<variant>", cxx17
holds_alternative, "<variant>", cxx17
monostate, "<variant>", cxx17
variant, "<variant>", cxx17
variant_alternative, "<variant>", cxx17
variant_alternative_t, "<variant>", cxx17
variant_npos, "<variant>", cxx17
variant_size, "<variant>", cxx17
variant_size_v, "<variant>", cxx17
visit, "<variant>", cxx17
# <vector>
vector, "<vector>", cxx98
|