blob: 976b90c339104d3462242282f33082170347b249 [file] [log] [blame]
%language=C++
%define class-name std_name_hint_lookup
%struct-type
%{
/* 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_flag, "<atomic>", cxx11
atomic_ref, "<atomic>", cxx20
# <bitset>
bitset, "<bitset>", cxx11
# <compare>
weak_equality, "<compare>", cxx20
strong_equality, "<compare>", cxx20
partial_ordering, "<compare>", cxx20
weak_ordering, "<compare>", cxx20
strong_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
# <deque>
deque, "<deque>", cxx98
# <forward_list>
forward_list, "<forward_list>", cxx11
# <fstream>
basic_filebuf, "<fstream>", cxx98
basic_ifstream, "<fstream>", cxx98
basic_ofstream, "<fstream>", cxx98
basic_fstream, "<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
mem_fn, "<functional>", cxx11
not_fn, "<functional>", cxx17
reference_wrapper, "<functional>", cxx11
unwrap_reference, "<functional>", cxx20
unwrap_reference_t, "<functional>", cxx20
unwrap_ref_decay, "<functional>", cxx20
unwrap_ref_decay_t, "<functional>", cxx20
# <future>. */
async, "<future>", cxx11
future, "<future>", cxx11
packaged_task, "<future>", cxx11
promise, "<future>", cxx11
# <iomanip>
resetiosflags, "<iomanip>", cxx98
setiosflags, "<iomanip>", cxx98
setbase, "<iomanip>", cxx98
setfill, "<iomanip>", cxx98
setprecision, "<iomanip>", cxx98
setw, "<iomanip>", cxx98
get_money, "<iomanip>", cxx11
put_money, "<iomanip>", cxx11
get_time, "<iomanip>", cxx11
put_time, "<iomanip>", cxx11
quoted, "<iomanip>", cxx14
# <ios>
boolalpha, "<ios>", cxx98
noboolalpha, "<ios>", cxx98
showbase, "<ios>", cxx98
noshowbase, "<ios>", cxx98
showpoint, "<ios>", cxx98
noshowpoint, "<ios>", cxx98
showpos, "<ios>", cxx98
noshowpos, "<ios>", cxx98
skipws, "<ios>", cxx98
noskipws, "<ios>", cxx98
uppercase, "<ios>", cxx98
nouppercase, "<ios>", cxx98
unitbuf, "<ios>", cxx98
nounitbuf, "<ios>", cxx98
internal, "<ios>", cxx98
left, "<ios>", cxx98
right, "<ios>", cxx98
dec, "<ios>", cxx98
hex, "<ios>", cxx98
oct, "<ios>", cxx98
fixed, "<ios>", cxx98
scientific, "<ios>", cxx98
hexfloat, "<ios>", cxx11
defaultfloat, "<ios>", cxx11
# <iostream>
cin, "<iostream>", cxx98
cout, "<iostream>", cxx98
cerr, "<iostream>", cxx98
clog, "<iostream>", cxx98
wcin, "<iostream>", cxx98
wcout, "<iostream>", cxx98
wclog, "<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
# <ostream>
ostream, "<ostream>", cxx98
ends, "<ostream>", cxx98
flush, "<ostream>", cxx98
endl, "<ostream>", cxx98
emit_on_flush, "<ostream>", cxx20
noemit_on_flush, "<ostream>", cxx20
flush_emit, "<ostream>", cxx20
# <list>
list, "<list>", cxx98
# <map>
map, "<map>", cxx98
multimap, "<map>", cxx98
# <memory>
allocate_shared, "<memory>", cxx11
allocator, "<memory>", cxx98
allocator_traits, "<memory>", cxx11
make_shared, "<memory>", cxx11
make_unique, "<memory>", cxx14
shared_ptr, "<memory>", cxx11
unique_ptr, "<memory>", cxx11
weak_ptr, "<memory>", cxx11
# <memory_resource>
pmr, "<memory_resource>", cxx17
# <mutex>
mutex, "<mutex>", cxx11
timed_mutex, "<mutex>", cxx11
recursive_mutex, "<mutex>", cxx11
recursive_timed_mutex, "<mutex>", cxx11
once_flag, "<mutex>", cxx11
call_once, "<mutex>", cxx11
lock, "<mutex>", cxx11
scoped_lock, "<mutex>", cxx17
try_lock, "<mutex>", cxx11
lock_guard, "<mutex>", cxx11
unique_lock, "<mutex>", cxx11
# <optional>. */
optional, "<optional>", cxx17
make_optional, "<optional>", cxx17
# <ostream>
ostream, "<ostream>", cxx98
wostream, "<ostream>", cxx98
ends, "<ostream>", cxx98
flush, "<ostream>", cxx98
endl, "<ostream>", cxx98
# <queue>
queue, "<queue>", cxx98
priority_queue, "<queue>", cxx98
# <set>
set, "<set>", cxx98
multiset, "<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
# <sstream>
basic_stringbuf, "<sstream>", cxx98
basic_istringstream, "<sstream>", cxx98
basic_ostringstream, "<sstream>", cxx98
basic_stringstream, "<sstream>", cxx98
istringstream, "<sstream>", cxx98
ostringstream, "<sstream>", cxx98
stringstream, "<sstream>", cxx98
# <stack>
stack, "<stack>", cxx98
# <string>
basic_string, "<string>", cxx98
string, "<string>", cxx98
wstring, "<string>", cxx98
u8string, "<string>", cxx20
u16string, "<string>", cxx11
u32string, "<string>", cxx11
# <string_view>
basic_string_view, "<string_view>", cxx17
string_view, "<string_view>", cxx17
# <thread>
thread, "<thread>", cxx11
this_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>
enable_if, "<type_traits>", cxx11
enable_if_t, "<type_traits>", cxx14
invoke_result, "<type_traits>", cxx17
invoke_result_t, "<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
conjunction, "<type_traits>", cxx17
conjunction_v, "<type_traits>", cxx17
disjunction, "<type_traits>", cxx17
disjunction_v, "<type_traits>", cxx17
negation, "<type_traits>", cxx17
negation_v, "<type_traits>", cxx17
# <unordered_map>
unordered_map, "<unordered_map>", cxx11
unordered_multimap, "<unordered_map>", cxx11
# <unordered_set>
unordered_set, "<unordered_set>", cxx11
unordered_multiset, "<unordered_set>", cxx11
# <utility>
declval, "<utility>", cxx11
forward, "<utility>", cxx11
make_pair, "<utility>", cxx98
move, "<utility>", cxx11
pair, "<utility>", cxx98
# <variant>
variant, "<variant>", cxx17
visit, "<variant>", cxx17
# <vector>
vector, "<vector>", cxx98