From: Ulrich Drepper Date: Thu, 20 Oct 2022 08:50:23 +0000 (+0200) Subject: Add C++ library interface data X-Git-Tag: basepoints/gcc-14~3812 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=a2e28389354495a532eb4b7124106b21236f4f72;p=thirdparty%2Fgcc.git Add C++ library interface data This patch adds a CSV file with information about the API of the standard C++ library. This information can be used in multiple ways. So far there are two use cases: - to generate the module export list for the standard C++ library - to create the name hints to compiler emits when symbols in the std namespace are not found Adding more uses can be easily done by potentially adding more columns to the CSV file and adding to the Python script which generates the output file. contrib/ 2022-10-18 Jonathan Wakely Ulrich Drepper * gcc_update: Add rule for gcc/cp/std-name-hint.gperf. gcc/cp/ 2022-10-18 Jonathan Wakely Ulrich Drepper * Make-lang.in: Add rules to generate std-name-hint.gperf. Adjust rule to generate std-name-hint.h to allow chain rule. * std-name-hint.h: Regenerated. * std-name-hint.gperf: This file is now generated. * cxxapi-data.csv: New file. CSV file with C++ API data. * gen-cxxapi-file.py: New file. Generate std-name-hint.gperf and module export source (in future). --- diff --git a/contrib/gcc_update b/contrib/gcc_update index dd8b6d0b6bf1..18c7ec46264c 100755 --- a/contrib/gcc_update +++ b/contrib/gcc_update @@ -95,6 +95,7 @@ gcc/config/rs6000/fusion.md: gcc/config/rs6000/genfusion.pl # And then, language-specific files gcc/cp/cfns.h: gcc/cp/cfns.gperf gcc/cp/std-name-hint.h: gcc/cp/std-name-hint.gperf +gcc/cp/std-name-hint.gperf: gcc/cp/cxxapi-data.csv # testsuite # Without this, _Pragma3.c can have a false negative. gcc/testsuite/gcc.dg/cpp/_Pragma3.c: gcc/testsuite/gcc.dg/cpp/mi1c.h diff --git a/gcc/cp/Make-lang.in b/gcc/cp/Make-lang.in index aa84d6827be3..291835d326ee 100644 --- a/gcc/cp/Make-lang.in +++ b/gcc/cp/Make-lang.in @@ -153,15 +153,30 @@ endif gperf -o -C -E -k '1-6,$$' -j1 -D -N 'libc_name_p' -L C++ \ $(srcdir)/cp/cfns.gperf --output-file $(srcdir)/cp/cfns.h -# The same procedure for the std-name-hint.gperf file. +# We always need the dependency on the .gperf file because it itself is generated. ifeq ($(ENABLE_MAINTAINER_RULES), true) $(srcdir)/cp/std-name-hint.h: $(srcdir)/cp/std-name-hint.gperf else -$(srcdir)/cp/std-name-hint.h: +$(srcdir)/cp/std-name-hint.h: | $(srcdir)/cp/std-name-hint.gperf endif gperf -o -C -E -k '1,2,7,11,$$' -D -N find -L C++ \ $(srcdir)/cp/std-name-hint.gperf --output-file $(srcdir)/cp/std-name-hint.h +# The std-name-hint.gperf file itself is generated from a general +# C++ API description. +ifeq ($(ENABLE_MAINTAINER_RULES), true) +$(srcdir)/cp/std-name-hint.gperf: $(srcdir)/cp/gen-cxxapi-file.py $(srcdir)/cp/cxxapi-data.csv +else +$(srcdir)/cp/std-name-hint.gperf: +endif + python3 $(srcdir)/cp/gen-cxxapi-file.py hints $(srcdir)/cp/cxxapi-data.csv > $@ +ifneq ($(ENABLE_MAINTAINER_RULES), true) +.SECONDARY: $(srcdir)/cp/std-name-hint.gperf +endif + +# This is the file that depends on the generated header file. +cp/name-lookup.o: $(srcdir)/cp/std-name-hint.h + cc1plus.fda: ../stage1-gcc/cc1plus$(exeext) ../prev-gcc/$(PERF_DATA) $(CREATE_GCOV) -binary ../stage1-gcc/cc1plus$(exeext) -gcov cc1plus.fda -profile ../prev-gcc/$(PERF_DATA) -gcov_version 1 diff --git a/gcc/cp/cxxapi-data.csv b/gcc/cp/cxxapi-data.csv new file mode 100644 index 000000000000..159daa28606d --- /dev/null +++ b/gcc/cp/cxxapi-data.csv @@ -0,0 +1,1032 @@ +# C++ API data. +# +# Copyright (C) 2022 Free Software Foundation +# This file is part of GCC. +# +# This file 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 of the License, or +# (at your option) any later version. +# +# This program 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 this program; see the file COPYING3. If not see +# . +# +# This file can be processed with gen-cxxapi-file.py to create the +# export list for the standard C++ library module and the tables for +# suggesting actions on missing symbols in the std:: namespace. +# +# The generated code is integral part of the C++ frontend but the +# content of this file is consists of information solely in the +# domain of the libstdc++ maintainers. Therefore ownership of +# this file is shared between these two groups. +# +# The format of this file must match what the gen-cxxapi-file.py +# script expects. +# column value +# 1 header file, including angle brackets +# 2 symbol name without std:: prefix +# 3 nonzero if to be exported +# 4 "no" if not to be added to the hint table else the appropriate +# enum cxx_dialect value +# 5 optional, a string used after #if in a line inserted first to +# enable conditional definitions +# +,ranges::in_fun_result,1,no +,ranges::in_in_result,1,no +,ranges::in_out_result,1,no +,ranges::in_in_out_result,1,no +,ranges::in_out_out_result,1,no +,ranges::min_max_result,1,no +,ranges::in_found_result,1,no +# unimplemented ,ranges::out_value_result,1,no +,all_of,1,no +# c++/106851 ,ranges::all_of,1,no +,any_of,1,no +# c++/106851 ,ranges::any_of,1,no +,none_of,1,no +# c++/106851 ,ranges::none_of,1,no +,for_each,1,no +,ranges::for_each_result,1,no +# c++/106851 ,ranges::for_each,1,no +,for_each_n,1,no +,ranges::for_each_n_result,1,no +# c++/106851 ,ranges::for_each_n,1,no +,find,1,no +,find_if,1,no +,find_if_not,1,no +# c++/106851 ,ranges::find,1,no +# c++/106851 ,ranges::find_if,1,no +# c++/106851 ,ranges::find_if_not,1,no +,find_end,1,no +# c++/106851 ,ranges::find_end,1,no +,find_first_of,1,no +# c++/106851 ,ranges::find_first_of,1,no +,adjacent_find,1,no +# c++/106851 ,ranges::adjacent_find,1,no +,count,1,no +,count_if,1,no +# c++/106851 ,ranges::count,1,no +# c++/106851 ,ranges::count_if,1,no +,mismatch,1,no +,ranges::mismatch_result,1,no +# c++/106851 ,ranges::mismatch,1,no +,equal,1,no +# c++/106851 ,ranges::equal,1,no +,is_permutation,1,no +# c++/106851 ,ranges::is_permutation,1,no +,search,1,no +# c++/106851 ,ranges::search,1,no +,search_n,1,no +# c++/106851 ,ranges::search_n,1,no +# unimplemented ,ranges::starts_with,1,no +# unimplemented ,ranges::ends_with,1,no +,copy,1,no +,ranges::copy_result,1,no +# c++/106851 ,ranges::copy,1,no +,copy_n,1,no +,ranges::copy_n_result,1,no +# c++/106851 ,ranges::copy_n,1,no +,copy_if,1,no +,ranges::copy_if_result,1,no +# c++/106851 ,ranges::copy_if,1,no +,copy_backward,1,no +,ranges::copy_backward_result,1,no +# c++/106851 ,ranges::copy_backward,1,no +,move,1,no +,ranges::move_result,1,no +# c++/106851 ,ranges::move,1,no +,move_backward,1,no +,ranges::move_backward_result,1,no +# c++/106851 ,ranges::move_backward,1,no +# TODO the rest +,bad_any_cast,1,no +,any,1,cxx17 +,swap,1,no +,make_any,1,cxx17 +,any_cast,1,cxx17 +,array,1,cxx11 +,operator==,1,no +,operator<=>,1,no +,swap,1,no +,to_array,1,cxx20 +,tuple_size,1,no +,tuple_element,1,no +,get,1,no +,memory_order,1,no +,kill_dependency,1,no +,atomic_ref,1,cxx20 +,atomic,1,cxx11 +,atomic_is_lock_free,1,no +,atomic_store,1,no +,atomic_store_explicit,1,no +,atomic_load,1,no +,atomic_load_explicit,1,no +,atomic_exchange,1,no +,atomic_exchange_explicit,1,no +,atomic_compare_exchange_weak,1,no +,atomic_compare_exchange_strong,1,no +,atomic_compare_exchange_weak_explicit,1,no +,atomic_compare_exchange_strong_explicit,1,no +,atomic_fetch_add,1,no +,atomic_fetch_add_explicit,1,no +,atomic_fetch_sub,1,no +,atomic_fetch_sub_explicit,1,no +,atomic_fetch_and,1,no +,atomic_fetch_and_explicit,1,no +,atomic_fetch_or,1,no +,atomic_fetch_or_explicit,1,no +,atomic_fetch_xor,1,no +,atomic_fetch_xor_explicit,1,no +,atomic_wait,1,no +,atomic_wait_explicit,1,no +,atomic_notify_one,1,no +,atomic_notify_all,1,no +,atomic_notify_all,1,no +,atomic_bool,1,no +,atomic_char,1,no +,atomic_schar,1,no +,atomic_uchar,1,no +,atomic_short,1,no +,atomic_ushort,1,no +,atomic_int,1,no +,atomic_uint,1,no +,atomic_long,1,no +,atomic_ulong,1,no +,atomic_llong,1,no +,atomic_ullong,1,no +,atomic_char8_t,1,no +,atomic_char16_t,1,no +,atomic_char32_t,1,no +,atomic_wchar_t,1,no +,atomic_int8_t,1,no +,atomic_uint8_t,1,no +,atomic_int16_t,1,no +,atomic_uint16_t,1,no +,atomic_int32_t,1,no +,atomic_uint32_t,1,no +,atomic_int64_t,1,no +,atomic_uint64_t,1,no +,atomic_int_least8_t,1,no +,atomic_uint_least8_t,1,no +,atomic_int_least16_t,1,no +,atomic_uint_least16_t,1,no +,atomic_int_least32_t,1,no +,atomic_uint_least32_t,1,no +,atomic_int_least64_t,1,no +,atomic_uint_least64_t,1,no +,atomic_int_fast8_t,1,no +,atomic_uint_fast8_t,1,no +,atomic_int_fast16_t,1,no +,atomic_uint_fast16_t,1,no +,atomic_int_fast32_t,1,no +,atomic_uint_fast32_t,1,no +,atomic_int_fast64_t,1,no +,atomic_uint_fast64_t,1,no +,atomic_intptr_t,1,no +,atomic_uintptr_t,1,no +,atomic_size_t,1,no +,atomic_ptrdiff_t,1,no +,atomic_intmax_t,1,no +,atomic_uintmax_t,1,no +,atomic_uintmax_t,1,cxx20 +,atomic_signed_lock_free,1,cxx11,__cpp_lib_atomic_lock_free_type_aliases +,atomic_unsigned_lock_free,1,cxx11,__cpp_lib_atomic_lock_free_type_aliases +# libstdc++/103934 ,atomic_flag_test,1,no +# libstdc++/103934 ,atomic_flag_test_explicit,1,no +,atomic_flag_test_and_set,1,no +,atomic_flag_test_and_set_explicit,1,no +,atomic_flag_clear,1,no +,atomic_flag_clear_explicit,1,no +# libstdc++/103934 ,atomic_flag_wait,1,no +# libstdc++/103934 ,atomic_flag_wait_explicit,1,no +# libstdc++/103934 ,atomic_flag_notify_one,1,no +# libstdc++/103934 ,atomic_flag_notify_all,1,no +,atomic_thread_fence,1,no +,atomic_signal_fence,1,no +,barrier,1,no +,bit_cast,1,no +,byteswap,1,no +,has_single_bit,1,no +,bit_ceil,1,no +,bit_floor,1,no +,bit_width,1,no +,rotl,1,no +,rotr,1,no +,countl_zero,1,no +,countl_one,1,no +,countr_zero,1,no +,countr_one,1,no +,popcount,1,no +,endian,1,no +,endian::little,1,no +,endian::big,1,no +,endian::native,1,no +,bitset,1,cxx11 +,operator&,1,no +,operator|,1,no +,operator^,1,no +,operator>>,1,no +,operator<<,1,no +,chars_format,1,no +,to_chars_result,1,no +,to_chars,1,no +,from_chars_result,1,no +,from_chars,1,no +# TODO +# TODO +,weak_equality,1,cxx20 +,strong_equality,1,cxx20 +,partial_ordering,1,cxx20 +,weak_ordering,1,cxx20 +,strong_ordering,1,cxx20 +# TODO the rest +,complex,1,cxx98 +,complex_literals,0,cxx14 +# TODO the rest +# TODO +,condition_variable,1,cxx11 +,condition_variable_any,1,cxx11 +,notify_all_at_thread_exit,1,no +,cv_status,1,no +,cv_status::no_timeout,1,no +,cv_status::timeout,1,no +,coroutine_traits,1,no +,coroutine_handle,1,no +,operator==,1,no +,operator<=>,1,no +,hash,1,no +,noop_coroutine_promise,1,no +,noop_coroutine_handle,1,no +,noop_coroutine,1,no +,suspend_never,1,no +,suspend_always,1,no +,byte,0,cxx17 +,deque,1,cxx98 +,operator==,1,no +,operator<=>,1,no +,swap,1,no +,erase,1,no +,erase_if,1,no +# c++/106851 ,pmr::deque,1,no +# TODO +,exception,1,cxx98 +,bad_exception,1,no +,nested_exception,1,no +,terminate_handler,1,no +,get_terminate,1,no +,set_terminate,1,no +,terminate,1,cxx98 +,uncaught_exceptions,1,cxx17 +,exception_ptr,1,cxx11 +,current_exception,1,cxx11 +,rethrow_exception,1,no +,make_exception_ptr,1,cxx11 +,throw_with_nested,1,no +,rethrow_if_nested,1,no +,unexpected,1,no +,bad_expected_access,1,no +,unexpect_t,1,no +,unexpect,1,no +,expected,1,cxx23 +# TODO +# ,flat_map,1,no +# ,flat_multimap,1,no +# ,sorted_unique_t,1,no +# ,sorted_unique,1,no +# ,sorted_equivalent_t,1,no +# ,sorted_equivalent,1,no +# ,erase_if,1,no +# ,uses_allocator,1,no +# ,flat_set,1,no +# ,flat_multiset,1,no +# ,sorted_unique_t,1,no +# ,sorted_unique,1,no +# ,sorted_equivalent_t,1,no +# ,sorted_equivalent,1,no +# ,erase_if,1,no +# ,uses_allocator,1,no +,forward_list,1,cxx11 +,operator==,1,no +,operator<=>,1,no +,swap,1,no +,erase,1,no +,erase_if,1,no +# c++/106851 ,pmr::forward_list,1,no +,basic_filebuf,1,no +,swap,1,no +,basic_filebuf,0,cxx98 +,filebuf,1,no +,wfilebuf,1,no +,basic_ifstream,1,cxx98 +,ifstream,1,no +,wifstream,1,no +,basic_ofstream,1,cxx98 +,ofstream,1,cxx98 +,wofstream,1,no +,basic_fstream,1,cxx98 +,fstream,1,cxx98 +,ifstream,1,cxx98 +,bind,1,cxx11 +,bind_front,1,cxx20 +,function,1,cxx11 +,hash,0,cxx11 +,invoke,1,cxx17 +,invoke_r,1,cxx23 +,mem_fn,1,cxx11 +,not_fn,1,cxx17 +,reference_wrapper,1,cxx11 +,unwrap_reference,1,cxx20 +,unwrap_reference_t,1,cxx20 +,unwrap_ref_decay,1,cxx20 +,unwrap_ref_decay_t,1,cxx20 +# TODO the rest +,future_errc,1,no +,launch,1,no +,future_status,1,no +,is_error_code_enum,1,no +,make_error_code,1,no +,make_error_condition,1,no +,future_category,1,no +,future_error,1,no +,promise,1,cxx11 +,swap,1,no +,uses_allocator,1,no +,future,1,cxx11 +,shared_future,1,no +,packaged_task,1,cxx11 +,async,1,cxx11 +,initializer_list,1,no +,begin,1,no +,end,1,no +,resetiosflags,1,cxx98 +,setiosflags,1,cxx98 +,setbase,1,cxx98 +,setfill,1,cxx98 +,setprecision,1,cxx98 +,setw,1,cxx98 +,get_money,1,cxx11 +,put_money,1,cxx11 +,get_time,1,cxx11 +,put_time,1,cxx11 +,quoted,1,cxx14 +,boolalpha,0,cxx98 +,noboolalpha,0,cxx98 +,showbase,0,cxx98 +,noshowbase,0,cxx98 +,showpoint,0,cxx98 +,noshowpoint,0,cxx98 +,showpos,0,cxx98 +,noshowpos,0,cxx98 +,skipws,0,cxx98 +,noskipws,0,cxx98 +,uppercase,0,cxx98 +,nouppercase,0,cxx98 +,unitbuf,0,cxx98 +,nounitbuf,0,cxx98 +,internal,0,cxx98 +,left,0,cxx98 +,right,0,cxx98 +,dec,0,cxx98 +,hex,0,cxx98 +,oct,0,cxx98 +,fixed,0,cxx98 +,scientific,0,cxx98 +,hexfloat,0,cxx11 +,defaultfloat,0,cxx11 +# TODO the rest +# TODO ? +,cin,1,cxx98 +,cout,1,cxx98 +,cerr,1,cxx98 +,clog,1,cxx98 +,wcin,1,cxx98 +,wcout,1,cxx98 +,wcerr,1,cxx98 +,wclog,1,cxx98 +,basic_istream,1,no +,istream,1,cxx98 +,wistream,1,no +,basic_iostream,1,no +,iostream,1,no +,wiostream,1,no +,ws,1,cxx98 +,operator>>,1,no +,advance,1,cxx98 +,back_inserter,1,cxx98 +,begin,1,cxx11 +,distance,1,cxx98 +,end,1,cxx11 +,front_inserter,1,cxx98 +,inserter,1,cxx98 +,istream_iterator,1,cxx98 +,istreambuf_iterator,1,cxx98 +,iterator_traits,1,cxx98 +,move_iterator,1,cxx11 +,next,1,cxx11 +,ostream_iterator,1,cxx98 +,ostreambuf_iterator,1,cxx98 +,prev,1,cxx11 +,reverse_iterator,1,cxx98 +# TODO the rest +,latch,1,no +,list,1,cxx98 +,operator==,1,no +,operator<=>,1,no +,swap,1,no +,erase,1,no +,erase_if,1,no +# c++/106851 ,pmr::list,1,no +# TODO +,map,1,cxx98 +,multimap,1,cxx98 +,operator==,1,no +,operator<=>,1,no +,swap,1,no +,erase,1,no +,erase_if,1,no +# c++/106851 ,pmr::map,1,no +# c++/106851 ,pmr::multimap,1,no +# unimplemented ,extents,1,no +# unimplemented ,dextents,1,no +# unimplemented ,layout_left,1,no +# unimplemented ,layout_right,1,no +# unimplemented ,layout_stride,1,no +# unimplemented ,default_accessor,1,no +# unimplemented ,mdspan,1,cxx23 +,pointer_traits,1,cxx11 +,to_address,1,cxx11 +,align,1,cxx11 +,assume_aligned,1,cxx20 +,allocator_arg_t,1,cxx11 +,allocator_arg,1,cxx11 +,uses_allocator,1,cxx11 +,uses_allocator_v,1,cxx17 +,uses_allocator_construction_args,1,cxx20 +,make_obj_using_allocator,1,cxx20 +,uninitialized_construct_using_allocator,1,cxx20 +,allocator_traits,1,cxx11 +,allocator,1,cxx98 +,operator==,1,no +,addressof,1,cxx11 +# TODO uninitialized memory algos +,construct_at,1,cxx20 +# c++/106851 ,ranges::construct_at,1,cxx20 +,destroy_at,1,cxx20 +,destroy,1,cxx20 +,destroy_n,1,cxx20 +# c++/106851 ,ranges::destroy_at,1,cxx20 +# c++/106851 ,ranges::destroy,1,cxx20 +# c++/106851 ,ranges::destroy_n,1,cxx20 +,default_delete,1,cxx11 +,unique_ptr,1,cxx11 +,make_unique,1,cxx14 +,make_unique_for_overwrite,1,cxx20 +,swap,1,no +,operator==,1,no +,operator<=>,1,no +,operator>,1,no +,operator<=,1,no +,operator>=,1,no +,operator<=>,1,no +,operator<<,1,no +,bad_weak_ptr,1,cxx11 +,shared_ptr,1,cxx11 +,make_shared,1,cxx11 +,allocate_shared,1,cxx11 +,make_shared_for_overwrite,1,cxx20 +,allocate_shared_for_overwrite,1,cxx20 +,get_deleter,1,cxx11 +,static_pointer_cast,1,cxx11 +,dynamic_pointer_cast,1,cxx11 +,const_pointer_cast,1,cxx11 +,reinterpret_pointer_cast,1,cxx17 +,weak_ptr,1,cxx11 +,owner_less,1,cxx11 +,enable_shared_from_this,1,cxx11 +,hash,1,no +,pmr,0,cxx17 +,pmr::memory_resource,1,cxx17 +,pmr::operator==,1,no +,pmr::polymorphic_allocator,1,cxx17 +,pmr::new_delete_resource,1,cxx17 +,pmr::set_default_resource,1,cxx17 +,pmr::get_default_resource,1,cxx17 +,pmr::pool_options,1,cxx17 +,pmr::synchronized_pool_resource,1,cxx17 +,pmr::unsynchronized_pool_resource,1,cxx17 +,pmr::monotonic_buffer_resource,1,cxx17 +,mutex,1,cxx11 +,recursive_mutex,1,cxx11 +,timed_mutex,1,cxx11 +,recursive_timed_mutex,1,cxx11 +,defer_lock_t,1,no +,try_to_lock_t,1,no +,adopt_lock_t,1,no +,defer_lock,1,no +,try_to_lock,1,no +,adopt_lock,1,no +,lock_guard,1,cxx11 +,scoped_lock,1,cxx17 +,unique_lock,1,cxx11 +,swap,1,no +,try_lock,1,cxx11 +,lock,1,cxx11 +,once_flag,1,cxx11 +,call_once,1,cxx11 +,bad_alloc,1,cxx98 +,bad_array_new_length,1,no +,destroying_delete_t,1,no +,destroying_delete,1,no +,align_val_t,1,no +,nothrow_t,1,cxx98 +,nothrow,1,cxx98 +,new_handler,1,no +,get_new_handler,1,no +,set_new_handler,1,no +,launder,1,cxx17 +,hardware_destructive_interference_size,1,cxx17 +,hardware_constructive_interference_size,1,cxx17 +,numbers::e_v,1,cxx20 +,numbers::log2e_v,1,cxx20 +,numbers::log10e_v,1,cxx20 +,numbers::pi_v,1,cxx20 +,numbers::inv_pi_v,1,cxx20 +,numbers::inv_sqrtpi_v,1,cxx20 +,numbers::ln2_v,1,cxx20 +,numbers::ln10_v,1,cxx20 +,numbers::sqrt2_v,1,cxx20 +,numbers::sqrt3_v,1,cxx20 +,numbers::inv_sqrt3_v,1,cxx20 +,numbers::egamma_v,1,cxx20 +,numbers::phi_v,1,cxx20 +,optional,1,cxx17 +,nullopt_t,1,no +,nullopt,1,cxx17 +,bad_optional_access,1,no +,operator==,1,no +,operator!=,1,no +,operator<,1,no +,operator>,1,no +,operator<=,1,no +,operator>=,1,no +,operator<=>,1,no +,swap,1,no +,make_optional,1,cxx17 +,hash,1,no +,basic_ostream,1,no +,ostream,1,cxx98 +,wostream,1,cxx98 +,endl,1,cxx98 +,ends,1,cxx98 +,flush,1,cxx98 +,emit_on_flush,1,cxx20 +,noemit_on_flush,1,cxx20 +,flush_emit,1,cxx20 +,operator<<,1,no +# TODO +,queue,1,cxx98 +,operator==,1,no +,operator!=,1,no +,operator<,1,no +,operator>,1,no +,operator<=,1,no +,operator>=,1,no +,operator<=>,1,no +,swap,1,no +,uses_allocator,1,no +,priority_queue,1,cxx98 +# TODO +,ranges::enable_view,1,cxx20 +,ranges::enable_borrowed_range,1,cxx20 +# TODO the rest +,ratio,1,no +,ratio_add,1,no +,ratio_subtract,1,no +,ratio_multiply,1,no +,ratio_divide,1,no +,ratio_equal,1,no +,ratio_not_equal,1,no +,ratio_less,1,no +,ratio_less_equal,1,no +,ratio_greater,1,no +,ratio_greater_equal,1,no +,ratio_equal_v,1,no +,ratio_not_equal_v,1,no +,ratio_less_v,1,no +,ratio_less_equal_v,1,no +,ratio_greater_v,1,no +,ratio_greater_equal_v,1,no +,yocto,1,no,__INTMAX_WIDTH__ > 80 +,zepto,1,no,__INTMAX_WIDTH__ > 70 +,atto,1,no +,femto,1,no +,pico,1,no +,nano,1,no +,micro,1,no +,milli,1,no +,centi,1,no +,deci,1,no +,deca,1,no +,hecto,1,no +,kilo,1,no +,mega,1,no +,giga,1,no +,tera,1,no +,peta,1,no +,exa,1,no +,zetta,1,no,__INTMAX_WIDTH__ > 70 +,yotta,1,no,__INTMAX_WIDTH__ > 80 +# TODO +,scoped_allocator_adaptor,1,cxx11 +,operator==,1,no +,counting_semaphore,1,cxx20 +,binary_semaphore,1,cxx20 +,set,1,cxx98 +,multiset,1,cxx98 +,operator==,1,no +,operator<=>,1,no +,swap,1,no +,erase,1,no +,erase_if,1,no +# c++/106851 ,pmr::set,1,no +# c++/106851 ,pmr::multiset,1,no +,shared_mutex,1,cxx17 +,shared_timed_mutex,1,cxx14 +,shared_lock,1,cxx14 +,swap,1,no +,source_location,1,cxx20 +,dynamic_extent,1,no +,span,1,cxx20 +,ranges::enable_view,1,no +,ranges::enable_borrowed_range,1,no +,as_bytes,1,no +,as_writable_bytes,1,no +,basic_spanbuf,1,cxx23 +,swap,1,no +,spanbuf,1,cxx23 +,wspanbuf,1,cxx23 +,basic_ispanstream,1,cxx23 +,ispanstream,1,cxx23 +,wispanstream,1,cxx23 +,basic_ospanstream,1,cxx23 +,ospanstream,1,cxx23 +,wospanstream,1,cxx23 +,basic_spanstream,1,cxx23 +,spanstream,1,cxx23 +,ispanstream,1,cxx23 +,basic_stringbuf,1,cxx98 +,swap,1,no +,stringbuf,1,cxx98 +,wstringbuf,1,cxx98 +,basic_istringstream,1,cxx98 +,istringstream,1,cxx98 +,wistringstream,1,cxx98 +,basic_ostringstream,1,cxx98 +,ostringstream,1,cxx98 +,wostringstream,1,cxx98 +,basic_stringstream,1,cxx98 +,stringstream,1,cxx98 +,istringstream,1,cxx98 +,stack,1,cxx98 +,operator==,1,no +,operator!=,1,no +,operator<,1,no +,operator>,1,no +,operator<=,1,no +,operator>=,1,no +,operator<=>,1,no +,swap,1,no +,uses_allocator,1,no +,stacktrace_entry,1,no +,basic_stacktrace,1,no +,stacktrace,1,cxx23 +,swap,1,no +,to_string,1,no +,operator<<,1,no +# c++/106851 ,pmr::stacktrace,1,no +,hash,1,no +,logic_error,1,cxx98 +,domain_error,1,cxx98 +,invalid_argument,1,cxx98 +,length_error,1,cxx98 +,out_of_range,1,cxx98 +,runtime_error,1,cxx98 +,range_error,1,cxx98 +,overflow_error,1,cxx98 +,underflow_error,1,cxx98 +,stop_token,1,cxx20 +,stop_source,1,cxx20 +,nostopstate_t,1,no +,nostopstate,1,no +,stop_callback,1,cxx20 +,basic_streambuf,1,cxx98 +,streambuf,1,cxx98 +,wstreambuf,1,cxx98 +,char_traits,1,cxx98 +,basic_string,1,cxx98 +,operator+,1,no +,operator==,1,no +,operator<=>,1,no +,swap,1,no +,operator<<,1,no +,operator>>,1,no +,getline,1,no +,erase,1,no +,erase_if,1,no +,string,1,cxx98 +,wstring,1,cxx98 +,u8string,1,cxx20 +,u16string,1,cxx11 +,u32string,1,cxx11 +,stoi,1,cxx11 +,stol,1,cxx11 +,stoul,1,cxx11 +,stoll,1,cxx11 +,stoull,1,cxx11 +,stof,1,cxx11 +,stod,1,cxx11 +,stold,1,cxx11 +,to_string,1,cxx17 +,to_wstring,1,cxx17 +# c++/106851 ,pmr::string,1,cxx17 +# c++/106851 ,pmr::wstring,1,cxx17 +# c++/106851 ,pmr::u8string,1,cxx20 +# c++/106851 ,pmr::u16string,1,cxx17 +# c++/106851 ,pmr::u32string,1,cxx17 +,basic_string_view,1,cxx17 +,ranges::enable_view,1,no +,ranges::enable_borrowed_range,1,no +,operator==,1,no +,operator<=>,1,no +,operator<<,1,no +,string_view,1,cxx17 +,hash,1,no +,literals::string_literals::operator""sv,1,no +,error_category,1,cxx11 +,generic_category,1,cxx11 +,system_category,1,cxx11 +,error_code,1,cxx11 +,error_condition,1,cxx11 +,is_error_code_enum,1,cxx11 +,is_error_condition_enum,1,cxx11 +,errc,1,cxx11 +,make_error_code,1,cxx11 +,make_error_condition,1,cxx11 +,operator==,1,no +,operator<=>,1,no +,hash,1,no +,is_error_code_enum_v,1,cxx17 +,is_error_condition_enum_v,1,cxx17 +,basic_syncbuf,1,no +,swap,1,no +,syncbuf,1,no +,wsyncbuf,1,no +,basic_osyncstream,1,no +,osyncstream,1,no +,wosyncstream,1,no +,thread,1,cxx11 +,swap,1,no +,jthread,1,cxx20 +,this_thread,0,cxx11 +,this_thread::get_id,1,no +,this_thread::yield,1,no +,this_thread::sleep_until,1,no +,this_thread::sleep_for,1,no +,tuple,1,cxx11 +,basic_common_reference,1,no +,common_type,1,no +,ignore,1,no +,make_tuple,1,cxx11 +,forward_as_tuple,1,cxx11 +,tie,1,cxx11 +,tuple_cat,1,cxx11 +,apply,1,cxx17 +,make_from_tuple,1,cxx17 +,tuple_size,1,cxx11 +,tuple_size_v,1,cxx17 +,tuple_element,1,cxx11 +,tuple_element_t,1,cxx14 +,get,1,no +,operator==,1,no +,operator<=>,1,no +,uses_allocator,1,no +,swap,1,no +,type_index,1,cxx11 +,hash,1,no +,type_info,1,no +,bad_cast,1,cxx98 +,bad_typeid,1,cxx98 +,enable_if,1,cxx11 +,enable_if_t,1,cxx14 +,invoke_result,1,cxx17 +,invoke_result_t,1,cxx17 +,remove_cvref,1,cxx20 +,remove_cvref_t,1,cxx20 +,type_identity,1,cxx20 +,type_identity_t,1,cxx20 +,void_t,1,cxx17 +,conjunction,1,cxx17 +,conjunction_v,1,cxx17 +,disjunction,1,cxx17 +,disjunction_v,1,cxx17 +,negation,1,cxx17 +,negation_v,1,cxx17 +,unordered_map,1,cxx11 +,unordered_multimap,1,cxx11 +,operator==,1,no +,operator<=>,1,no +,swap,1,no +,erase,1,no +,erase_if,1,no +# c++/106851 ,pmr::unordered_map,1,cxx17 +# c++/106851 ,pmr::unordered_multimap,1,cxx17 +,unordered_set,1,cxx11 +,unordered_multiset,1,cxx11 +,operator==,1,no +,operator<=>,1,no +,swap,1,no +,erase,1,no +,erase_if,1,no +# c++/106851 ,pmr::unordered_set,1,no +# c++/106851 ,pmr::unordered_multiset,1,no +,swap,1,no +,exchange,1,cxx14 +,forward,1,cxx11 +# unimplemented ,forward_like,1,cxx23 +,move,1,cxx11 +,move_if_noexcept,1,cxx11 +,as_const,1,cxx17 +,declval,1,cxx11 +,cmp_equal,1,cxx20 +,cmp_not_equal,1,cxx20 +,cmp_less,1,cxx20 +,cmp_greater,1,cxx20 +,cmp_less_equal,1,cxx20 +,cmp_greater_equal,1,cxx20 +,in_range,1,cxx20 +,to_underlying,1,cxx23 +,unreachable,1,cxx23 +,integer_sequence,1,cxx14 +,index_sequence,1,cxx14 +,make_integer_sequence,1,cxx14 +,make_index_sequence,1,cxx14 +,index_sequence_for,1,cxx14 +,pair,1,cxx98 +,operator==,1,no +,operator<=>,1,no +,basic_common_reference,1,no +,common_type,1,no +,make_pair,1,cxx98 +,tuple_size,1,no +,tuple_element,1,no +,get,1,no +,piecewise_construct_t,1,cxx11 +,piecewise_construct,1,cxx11 +,in_place_t,1,cxx17 +,in_place,1,cxx17 +,in_place_type_t,1,cxx17 +,in_place_type,1,cxx17 +,in_place_index_t,1,cxx17 +,in_place_index,1,cxx17 +# TODO +,variant,1,cxx17 +,variant_size,1,cxx17 +,variant_size_v,1,cxx17 +,variant_alternative,1,cxx17 +,variant_alternative_t,1,cxx17 +,variant_npos,1,cxx17 +,holds_alternative,1,cxx17 +,get,1,no +,get_if,1,no +,operator==,1,no +,operator!=,1,no +,operator<,1,no +,operator>,1,no +,operator<=,1,no +,operator>=,1,no +,operator<=>,1,no +,visit,1,cxx17 +,monostate,1,cxx17 +,swap,1,no +,bad_variant_access,1,cxx17 +,hash,1,no +,vector,1,cxx98 +,operator==,1,no +,operator<=>,1,no +,swap,1,no +,erase,1,no +,erase_if,1,no +,hash,1,no +# contains no exportable names +# contains no exportable names +# TODO +,fenv_t,1,no +,fexcept_t,1,no +,feclearexcept,1,no +,fegetexceptflag,1,no +,feraiseexcept,1,no +,fesetexceptflag,1,no +,fetestexcept,1,no +,fegetround,1,no +,fesetround,1,no +,fegetenv,1,no +,feholdexcept,1,no +,fesetenv,1,no +,feupdateenv,1,no +,imaxdiv_t,1,no +,imaxabs,1,no +,imaxdiv,1,no +,strtoimax,1,no +,strtoumax,1,no +,wcstoimax,1,no +,wcstoumax,1,no +,abs,1,no +,div,1,no +# only contains macros, handled by get_stdlib_header_for_name +# ,CHAR_BIT,0,cxx98 +# ,SCHAR_MIN,0,cxx98 +# ,SCHAR_MAX,0,cxx98 +# ,UCHAR_MAX,0,cxx98 +# ,CHAR_MIN,0,cxx98 +# ,CHAR_MAX,0,cxx98 +# ,MB_LEN_MAX,0,cxx98 +# ,SHRT_MIN,0,cxx98 +# ,SHRT_MAX,0,cxx98 +# ,USHRT_MAX,0,cxx98 +# ,INT_MIN,0,cxx98 +# ,INT_MAX,0,cxx98 +# ,UINT_MAX,0,cxx98 +# ,LONG_MIN,0,cxx98 +# ,LONG_MAX,0,cxx98 +# ,ULONG_MAX,0,cxx98 +# ,LLONG_MIN,0,cxx98 +# ,LLONG_MAX,0,cxx11 +# ,ULLONG_MAX,0,cxx11 +,lconv,1,no +,setlocale,1,no +,localeconv,1,no +# TODO +,jmp_buf,1,no +,longjmp,1,no +,sig_atomic_t,1,no +,signal,1,no +,raise,1,no +,va_list,1,no +,ptrdiff_t,1,no +,size_t,1,no +,max_align_t,1,no +,nullptr_t,1,no +,byte,1,no +,operator<<=,1,no +,operator<<,1,no +,operator>>=,1,no +,operator>>,1,no +,operator|=,1,no +,operator|,1,no +,operator&=,1,no +,operator&,1,no +,operator^=,1,no +,operator^,1,no +,operator~,1,no +,to_integer,1,no +,int8_t,1,no +,int16_t,1,no +,int32_t,1,no +,int64_t,1,no +,int_fast8_t,1,no +,int_fast16_t,1,no +,int_fast32_t,1,no +,int_fast64_t,1,no +,int_least8_t,1,no +,int_least16_t,1,no +,int_least32_t,1,no +,int_least64_t,1,no +,intmax_t,1,no +,intptr_t,1,no +,uint8_t,1,no +,uint16_t,1,no +,uint32_t,1,no +,uint64_t,1,no +,uint_fast8_t,1,cxx11 +,uint_fast16_t,1,cxx11 +,uint_fast32_t,1,cxx11 +,uint_fast64_t,1,cxx11 +,uint_least8_t,1,cxx11 +,uint_least16_t,1,cxx11 +,uint_least32_t,1,cxx11 +,uint_least64_t,1,cxx11 +,uintmax_t,1,cxx11 +,uintptr_t,1,cxx11 +# TODO +# TODO +# TODO +# TODO +# TODO +# TODO +# TODO diff --git a/gcc/cp/gen-cxxapi-file.py b/gcc/cp/gen-cxxapi-file.py new file mode 100644 index 000000000000..bb1f8edf3916 --- /dev/null +++ b/gcc/cp/gen-cxxapi-file.py @@ -0,0 +1,190 @@ +#!/usr/bin/env python3 + +# 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 +# . + + +# Generate gcc source files: +# - the export description of the standard C++ library module +# - the gperf tables used to hint at actions to fix problems +# related to missing symbols in the std:: namespace + +import csv +import os +import time + +# The CSV file contains the following columns: +# column value +# 1 header file, including angle brackets +# 2 symbol name without std:: prefix +# 3 nonzero if to be exported +# 4 "no" if not to be added to the hint table else the appropriate enum cxx_dialect value +# 5 optional, a string used after #if in a line inserted first to enable conditional definitions + + +def print_condition(prev, e): + if len(e) > 4 and e[4] != '': + if not prev or prev != e[4]: + if prev: + print('#endif') + print(f'#if {e[4]}') + return e[4] + if prev: + print('#endif') + return None + + +def export(script, content): + print("""// This file is auto-generated by {:s}. +#if __cplusplus <= 202002L +# if __cplusplus == 202002L +# ifdef __STRICT_ANSI__ +# error "module `std' is only available before C++23 if using -std=gnu++20" +# endif +# else +# error "module `std' is not available before C++23" +# endif +#endif + +export module std; + +import ; + +// new/delete operators in global namespace from +export using ::operator new; +export using ::operator delete; +export using ::operator new[]; +export using ::operator delete[];""".format(script)) + header = '' + printed_header = False + cond = None + for e in content: + if e[0] != header: + header = e[0] + printed_header = False + if e[2] != 0: + if not printed_header: + if cond: + print('#endif') + cond = None + print(f'\n// {header}') + printed_header = True + cond = print_condition(cond, e) + print(f'export using std::{e[1]};') + if cond: + print('#endif') + + +def hints(script, content): + print("""%language=C++ +%define class-name std_name_hint_lookup +%struct-type +%{{ +/* This file is auto-generated by {:s}. */ +/* Copyright (C) {:s} 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 +. */ +%}} +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. +#""".format(script, time.strftime('%Y'))) + header = '' + printed_header = False + for e in content: + if e[0] != header: + header = e[0] + printed_header = False + if e[3] != 'no': + if not printed_header: + print(f'# {header}') + printed_header = True + print(f'{e[1]}, "{e[0]}", {e[3]}') + + +def remove_comment(f): + for row in f: + row = row.strip() + if row[0] != '#': + yield row + + +modes = { + 'export': export, + 'hints': hints +} + + +def usage(script): + print(f'Usage: {script} [{"|".join(modes.keys())}] CSVFILE') + exit(1) + + +def main(argv): + if len(argv) < 3: + usage(argv[0] if len(argv) > 0 else '???') + + script = argv[0] + mode = argv[1] + filename = argv[2] + + if mode not in modes: + print(f"{script}: unrecognized mode '{mode}'") + usage(script) + + try: + with open(filename, 'r') as csvfile: + modes[mode](os.path.basename(script), sorted(csv.reader(remove_comment(csvfile), delimiter=','))) + except FileNotFoundError: + print(f"{script}: cannot find CSV file '{filename}'") + exit(1) + except PermissionError: + print(f"{script}: insufficient permission to read CSV file '{filename}'") + exit(1) + + +if __name__ == '__main__': + import sys + main(sys.argv) diff --git a/gcc/cp/std-name-hint.gperf b/gcc/cp/std-name-hint.gperf index 976b90c33910..c90636015db2 100644 --- a/gcc/cp/std-name-hint.gperf +++ b/gcc/cp/std-name-hint.gperf @@ -2,6 +2,7 @@ %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. @@ -47,33 +48,55 @@ array, "", cxx11 to_array, "", cxx20 # atomic, "", cxx11 -atomic_flag, "", cxx11 atomic_ref, "", cxx20 +atomic_signed_lock_free, "", cxx11 +atomic_uintmax_t, "", cxx20 +atomic_unsigned_lock_free, "", cxx11 # bitset, "", cxx11 # -weak_equality, "", cxx20 -strong_equality, "", cxx20 partial_ordering, "", cxx20 -weak_ordering, "", cxx20 +strong_equality, "", cxx20 strong_ordering, "", cxx20 +weak_equality, "", cxx20 +weak_ordering, "", cxx20 # complex, "", cxx98 complex_literals, "", cxx14 -# . */ +# condition_variable, "", cxx11 condition_variable_any, "", cxx11 # byte, "", cxx17 +# +uint_fast16_t, "", cxx11 +uint_fast32_t, "", cxx11 +uint_fast64_t, "", cxx11 +uint_fast8_t, "", cxx11 +uint_least16_t, "", cxx11 +uint_least32_t, "", cxx11 +uint_least64_t, "", cxx11 +uint_least8_t, "", cxx11 +uintmax_t, "", cxx11 +uintptr_t, "", cxx11 # deque, "", cxx98 +# +current_exception, "", cxx11 +exception, "", cxx98 +exception_ptr, "", cxx11 +make_exception_ptr, "", cxx11 +terminate, "", cxx98 +uncaught_exceptions, "", cxx17 +# +expected, "", cxx23 # forward_list, "", cxx11 # basic_filebuf, "", cxx98 +basic_fstream, "", cxx98 basic_ifstream, "", cxx98 basic_ofstream, "", cxx98 -basic_fstream, "", cxx98 fstream, "", cxx98 ifstream, "", cxx98 ofstream, "", cxx98 @@ -83,63 +106,65 @@ bind_front, "", cxx20 function, "", cxx11 hash, "", cxx11 invoke, "", cxx17 +invoke_r, "", cxx23 mem_fn, "", cxx11 not_fn, "", cxx17 reference_wrapper, "", cxx11 -unwrap_reference, "", cxx20 -unwrap_reference_t, "", cxx20 unwrap_ref_decay, "", cxx20 unwrap_ref_decay_t, "", cxx20 -# . */ +unwrap_reference, "", cxx20 +unwrap_reference_t, "", cxx20 +# async, "", cxx11 future, "", cxx11 packaged_task, "", cxx11 promise, "", cxx11 # +get_money, "", cxx11 +get_time, "", cxx11 +put_money, "", cxx11 +put_time, "", cxx11 +quoted, "", cxx14 resetiosflags, "", cxx98 -setiosflags, "", cxx98 setbase, "", cxx98 setfill, "", cxx98 +setiosflags, "", cxx98 setprecision, "", cxx98 setw, "", cxx98 -get_money, "", cxx11 -put_money, "", cxx11 -get_time, "", cxx11 -put_time, "", cxx11 -quoted, "", cxx14 # boolalpha, "", cxx98 +dec, "", cxx98 +defaultfloat, "", cxx11 +fixed, "", cxx98 +hex, "", cxx98 +hexfloat, "", cxx11 +internal, "", cxx98 +left, "", cxx98 noboolalpha, "", cxx98 -showbase, "", cxx98 noshowbase, "", cxx98 -showpoint, "", cxx98 noshowpoint, "", cxx98 -showpos, "", cxx98 noshowpos, "", cxx98 -skipws, "", cxx98 noskipws, "", cxx98 -uppercase, "", cxx98 -nouppercase, "", cxx98 -unitbuf, "", cxx98 nounitbuf, "", cxx98 -internal, "", cxx98 -left, "", cxx98 -right, "", cxx98 -dec, "", cxx98 -hex, "", cxx98 +nouppercase, "", cxx98 oct, "", cxx98 -fixed, "", cxx98 +right, "", cxx98 scientific, "", cxx98 -hexfloat, "", cxx11 -defaultfloat, "", cxx11 +showbase, "", cxx98 +showpoint, "", cxx98 +showpos, "", cxx98 +skipws, "", cxx98 +unitbuf, "", cxx98 +uppercase, "", cxx98 # -cin, "", cxx98 -cout, "", cxx98 cerr, "", cxx98 +cin, "", cxx98 clog, "", cxx98 +cout, "", cxx98 +wcerr, "", cxx98 wcin, "", cxx98 -wcout, "", cxx98 wclog, "", cxx98 +wcout, "", cxx98 # istream, "", cxx98 ws, "", cxx98 @@ -160,86 +185,213 @@ ostream_iterator, "", cxx98 ostreambuf_iterator, "", cxx98 prev, "", cxx11 reverse_iterator, "", cxx98 -# -ostream, "", cxx98 -ends, "", cxx98 -flush, "", cxx98 -endl, "", cxx98 -emit_on_flush, "", cxx20 -noemit_on_flush, "", cxx20 -flush_emit, "", cxx20 # list, "", cxx98 # map, "", cxx98 multimap, "", cxx98 # +addressof, "", cxx11 +align, "", cxx11 allocate_shared, "", cxx11 +allocate_shared_for_overwrite, "", cxx20 allocator, "", cxx98 +allocator_arg, "", cxx11 +allocator_arg_t, "", cxx11 allocator_traits, "", cxx11 +assume_aligned, "", cxx20 +bad_weak_ptr, "", cxx11 +const_pointer_cast, "", cxx11 +construct_at, "", cxx20 +default_delete, "", cxx11 +destroy, "", cxx20 +destroy_at, "", cxx20 +destroy_n, "", cxx20 +dynamic_pointer_cast, "", cxx11 +enable_shared_from_this, "", cxx11 +get_deleter, "", cxx11 +make_obj_using_allocator, "", cxx20 make_shared, "", cxx11 +make_shared_for_overwrite, "", cxx20 make_unique, "", cxx14 +make_unique_for_overwrite, "", cxx20 +owner_less, "", cxx11 +pointer_traits, "", cxx11 +reinterpret_pointer_cast, "", cxx17 shared_ptr, "", cxx11 +static_pointer_cast, "", cxx11 +to_address, "", cxx11 +uninitialized_construct_using_allocator, "", cxx20 unique_ptr, "", cxx11 +uses_allocator, "", cxx11 +uses_allocator_construction_args, "", cxx20 +uses_allocator_v, "", cxx17 weak_ptr, "", cxx11 # pmr, "", cxx17 +pmr::get_default_resource, "", cxx17 +pmr::memory_resource, "", cxx17 +pmr::monotonic_buffer_resource, "", cxx17 +pmr::new_delete_resource, "", cxx17 +pmr::polymorphic_allocator, "", cxx17 +pmr::pool_options, "", cxx17 +pmr::set_default_resource, "", cxx17 +pmr::synchronized_pool_resource, "", cxx17 +pmr::unsynchronized_pool_resource, "", cxx17 # +call_once, "", cxx11 +lock, "", cxx11 +lock_guard, "", cxx11 mutex, "", cxx11 -timed_mutex, "", cxx11 +once_flag, "", cxx11 recursive_mutex, "", cxx11 recursive_timed_mutex, "", cxx11 -once_flag, "", cxx11 -call_once, "", cxx11 -lock, "", cxx11 scoped_lock, "", cxx17 +timed_mutex, "", cxx11 try_lock, "", cxx11 -lock_guard, "", cxx11 unique_lock, "", cxx11 -# . */ -optional, "", cxx17 +# +bad_alloc, "", cxx98 +hardware_constructive_interference_size, "", cxx17 +hardware_destructive_interference_size, "", cxx17 +launder, "", cxx17 +nothrow, "", cxx98 +nothrow_t, "", cxx98 +# +numbers::e_v, "", cxx20 +numbers::egamma_v, "", cxx20 +numbers::inv_pi_v, "", cxx20 +numbers::inv_sqrt3_v, "", cxx20 +numbers::inv_sqrtpi_v, "", cxx20 +numbers::ln10_v, "", cxx20 +numbers::ln2_v, "", cxx20 +numbers::log10e_v, "", cxx20 +numbers::log2e_v, "", cxx20 +numbers::phi_v, "", cxx20 +numbers::pi_v, "", cxx20 +numbers::sqrt2_v, "", cxx20 +numbers::sqrt3_v, "", cxx20 +# make_optional, "", cxx17 +nullopt, "", cxx17 +optional, "", cxx17 # -ostream, "", cxx98 -wostream, "", cxx98 +emit_on_flush, "", cxx20 +endl, "", cxx98 ends, "", cxx98 flush, "", cxx98 -endl, "", cxx98 +flush_emit, "", cxx20 +noemit_on_flush, "", cxx20 +ostream, "", cxx98 +wostream, "", cxx98 # -queue, "", cxx98 priority_queue, "", cxx98 +queue, "", cxx98 +# +ranges::enable_borrowed_range, "", cxx20 +ranges::enable_view, "", cxx20 +# +scoped_allocator_adaptor, "", cxx11 +# +binary_semaphore, "", cxx20 +counting_semaphore, "", cxx20 # -set, "", cxx98 multiset, "", cxx98 +set, "", cxx98 # shared_lock, "", cxx14 shared_mutex, "", cxx17 shared_timed_mutex, "", cxx14 # source_location, "", cxx20 +# +span, "", cxx20 +# +basic_ispanstream, "", cxx23 +basic_ospanstream, "", cxx23 +basic_spanbuf, "", cxx23 +basic_spanstream, "", cxx23 +ispanstream, "", cxx23 +ispanstream, "", cxx23 +ospanstream, "", cxx23 +spanbuf, "", cxx23 +spanstream, "", cxx23 +wispanstream, "", cxx23 +wospanstream, "", cxx23 +wspanbuf, "", cxx23 # -basic_stringbuf, "", cxx98 basic_istringstream, "", cxx98 basic_ostringstream, "", cxx98 +basic_stringbuf, "", cxx98 basic_stringstream, "", cxx98 istringstream, "", cxx98 +istringstream, "", cxx98 ostringstream, "", cxx98 +stringbuf, "", cxx98 stringstream, "", cxx98 +wistringstream, "", cxx98 +wostringstream, "", cxx98 +wstringbuf, "", cxx98 # stack, "", cxx98 +# +stacktrace, "", cxx23 +# +domain_error, "", cxx98 +invalid_argument, "", cxx98 +length_error, "", cxx98 +logic_error, "", cxx98 +out_of_range, "", cxx98 +overflow_error, "", cxx98 +range_error, "", cxx98 +runtime_error, "", cxx98 +underflow_error, "", cxx98 +# +stop_callback, "", cxx20 +stop_source, "", cxx20 +stop_token, "", cxx20 +# +basic_streambuf, "", cxx98 +streambuf, "", cxx98 +wstreambuf, "", cxx98 # basic_string, "", cxx98 +char_traits, "", cxx98 +stod, "", cxx11 +stof, "", cxx11 +stoi, "", cxx11 +stol, "", cxx11 +stold, "", cxx11 +stoll, "", cxx11 +stoul, "", cxx11 +stoull, "", cxx11 string, "", cxx98 -wstring, "", cxx98 -u8string, "", cxx20 +to_string, "", cxx17 +to_wstring, "", cxx17 u16string, "", cxx11 u32string, "", cxx11 +u8string, "", cxx20 +wstring, "", cxx98 # basic_string_view, "", cxx17 string_view, "", cxx17 +# +errc, "", cxx11 +error_category, "", cxx11 +error_code, "", cxx11 +error_condition, "", cxx11 +generic_category, "", cxx11 +is_error_code_enum, "", cxx11 +is_error_code_enum_v, "", cxx17 +is_error_condition_enum, "", cxx11 +is_error_condition_enum_v, "", cxx17 +make_error_code, "", cxx11 +make_error_condition, "", cxx11 +system_category, "", cxx11 # -thread, "", cxx11 +jthread, "", cxx20 this_thread, "", cxx11 +thread, "", cxx11 # apply, "", cxx17 forward_as_tuple, "", cxx11 @@ -253,35 +405,73 @@ tuple_element_t, "", cxx14 tuple_size, "", cxx11 tuple_size_v, "", cxx17 # +conjunction, "", cxx17 +conjunction_v, "", cxx17 +disjunction, "", cxx17 +disjunction_v, "", cxx17 enable_if, "", cxx11 enable_if_t, "", cxx14 invoke_result, "", cxx17 invoke_result_t, "", cxx17 +negation, "", cxx17 +negation_v, "", cxx17 remove_cvref, "", cxx20 remove_cvref_t, "", cxx20 type_identity, "", cxx20 type_identity_t, "", cxx20 void_t, "", cxx17 -conjunction, "", cxx17 -conjunction_v, "", cxx17 -disjunction, "", cxx17 -disjunction_v, "", cxx17 -negation, "", cxx17 -negation_v, "", cxx17 +# +type_index, "", cxx11 +# +bad_cast, "", cxx98 +bad_typeid, "", cxx98 # unordered_map, "", cxx11 unordered_multimap, "", cxx11 # -unordered_set, "", cxx11 unordered_multiset, "", cxx11 +unordered_set, "", cxx11 # +as_const, "", cxx17 +cmp_equal, "", cxx20 +cmp_greater, "", cxx20 +cmp_greater_equal, "", cxx20 +cmp_less, "", cxx20 +cmp_less_equal, "", cxx20 +cmp_not_equal, "", cxx20 declval, "", cxx11 +exchange, "", cxx14 forward, "", cxx11 +in_place, "", cxx17 +in_place_index, "", cxx17 +in_place_index_t, "", cxx17 +in_place_t, "", cxx17 +in_place_type, "", cxx17 +in_place_type_t, "", cxx17 +in_range, "", cxx20 +index_sequence, "", cxx14 +index_sequence_for, "", cxx14 +integer_sequence, "", cxx14 +make_index_sequence, "", cxx14 +make_integer_sequence, "", cxx14 make_pair, "", cxx98 move, "", cxx11 +move_if_noexcept, "", cxx11 pair, "", cxx98 +piecewise_construct, "", cxx11 +piecewise_construct_t, "", cxx11 +to_underlying, "", cxx23 +unreachable, "", cxx23 # +bad_variant_access, "", cxx17 +holds_alternative, "", cxx17 +monostate, "", cxx17 variant, "", cxx17 +variant_alternative, "", cxx17 +variant_alternative_t, "", cxx17 +variant_npos, "", cxx17 +variant_size, "", cxx17 +variant_size_v, "", cxx17 visit, "", cxx17 # vector, "", cxx98 diff --git a/gcc/cp/std-name-hint.h b/gcc/cp/std-name-hint.h index c48eac30f909..f28a2e013444 100644 --- a/gcc/cp/std-name-hint.h +++ b/gcc/cp/std-name-hint.h @@ -1,5 +1,5 @@ /* C++ code produced by gperf version 3.1 */ -/* Command-line: gperf -o -C -E -D -N find -L C++ --output-file std-name-hint.h -k'1,2,7,11,$' std-name-hint.gperf */ +/* Command-line: gperf -o -C -E -k '1,2,7,11,$' -D -N find -L C++ --output-file std-name-hint.h std-name-hint.gperf */ #if !((' ' == 32) && ('!' == 33) && ('"' == 34) && ('#' == 35) \ && ('%' == 37) && ('&' == 38) && ('\'' == 39) && ('(' == 40) \ @@ -30,6 +30,7 @@ #line 4 "std-name-hint.gperf" +/* This file is auto-generated by gen-cxxapi-file.py. */ /* Copyright (C) 2022 Free Software Foundation, Inc. This file is part of GCC. @@ -47,7 +48,7 @@ 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 . */ -#line 23 "std-name-hint.gperf" +#line 24 "std-name-hint.gperf" struct std_name_hint { /* A name within "std::". */ @@ -60,7 +61,7 @@ struct std_name_hint /* The dialect of C++ in which this was added. */ enum cxx_dialect min_dialect; }; -/* maximum key range = 626, duplicates = 4 */ +/* maximum key range = 1387, duplicates = 6 */ class std_name_hint_lookup { @@ -75,32 +76,32 @@ std_name_hint_lookup::hash (const char *str, size_t len) { static const unsigned short asso_values[] = { - 635, 635, 635, 635, 635, 635, 635, 635, 635, 635, - 635, 635, 635, 635, 635, 635, 635, 635, 635, 635, - 635, 635, 635, 635, 635, 635, 635, 635, 635, 635, - 635, 635, 635, 635, 635, 635, 635, 635, 635, 635, - 635, 635, 635, 635, 635, 635, 635, 635, 635, 5, - 635, 0, 635, 635, 635, 635, 25, 635, 635, 635, - 635, 635, 635, 635, 635, 635, 635, 635, 635, 635, - 635, 635, 635, 635, 635, 635, 635, 635, 635, 635, - 635, 635, 635, 635, 635, 635, 635, 635, 635, 635, - 635, 635, 635, 635, 635, 45, 635, 25, 70, 165, - 20, 0, 35, 225, 190, 95, 635, 120, 183, 10, - 5, 25, 165, 5, 5, 10, 0, 55, 4, 143, - 115, 229, 635, 635, 635, 635, 635, 635, 635, 635, - 635, 635, 635, 635, 635, 635, 635, 635, 635, 635, - 635, 635, 635, 635, 635, 635, 635, 635, 635, 635, - 635, 635, 635, 635, 635, 635, 635, 635, 635, 635, - 635, 635, 635, 635, 635, 635, 635, 635, 635, 635, - 635, 635, 635, 635, 635, 635, 635, 635, 635, 635, - 635, 635, 635, 635, 635, 635, 635, 635, 635, 635, - 635, 635, 635, 635, 635, 635, 635, 635, 635, 635, - 635, 635, 635, 635, 635, 635, 635, 635, 635, 635, - 635, 635, 635, 635, 635, 635, 635, 635, 635, 635, - 635, 635, 635, 635, 635, 635, 635, 635, 635, 635, - 635, 635, 635, 635, 635, 635, 635, 635, 635, 635, - 635, 635, 635, 635, 635, 635, 635, 635, 635, 635, - 635, 635, 635, 635, 635, 635 + 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, + 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, + 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, + 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, + 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 10, + 25, 5, 20, 1412, 0, 1412, 5, 0, 15, 1412, + 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, + 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, + 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, + 1412, 1412, 1412, 1412, 1412, 260, 1412, 430, 15, 323, + 305, 5, 55, 198, 475, 125, 240, 105, 225, 50, + 5, 155, 105, 440, 85, 5, 0, 10, 15, 124, + 470, 463, 65, 1412, 1412, 1412, 1412, 1412, 1412, 1412, + 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, + 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, + 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, + 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, + 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, + 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, + 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, + 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, + 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, + 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, + 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, + 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, + 1412, 1412, 1412, 1412, 1412, 1412, 1412 }; unsigned int hval = len; @@ -120,7 +121,7 @@ std_name_hint_lookup::hash (const char *str, size_t len) case 4: case 3: case 2: - hval += asso_values[static_cast(str[1])]; + hval += asso_values[static_cast(str[1]+1)]; /*FALLTHROUGH*/ case 1: hval += asso_values[static_cast(str[0])]; @@ -134,509 +135,952 @@ std_name_hint_lookup::find (const char *str, size_t len) { enum { - TOTAL_KEYWORDS = 205, + TOTAL_KEYWORDS = 378, MIN_WORD_LENGTH = 2, - MAX_WORD_LENGTH = 22, - MIN_HASH_VALUE = 9, - MAX_HASH_VALUE = 634 + MAX_WORD_LENGTH = 39, + MIN_HASH_VALUE = 25, + MAX_HASH_VALUE = 1411 }; static const struct std_name_hint wordlist[] = { -#line 158 "std-name-hint.gperf" - {"next", "", cxx11}, -#line 212 "std-name-hint.gperf" +#line 401 "std-name-hint.gperf" + {"tuple", "", cxx11}, +#line 276 "std-name-hint.gperf" + {"nullopt", "", cxx17}, +#line 405 "std-name-hint.gperf" + {"tuple_size", "", cxx11}, +#line 469 "std-name-hint.gperf" + {"variant", "", cxx17}, +#line 403 "std-name-hint.gperf" + {"tuple_element", "", cxx11}, +#line 404 "std-name-hint.gperf" + {"tuple_element_t", "", cxx14}, +#line 426 "std-name-hint.gperf" + {"bad_cast", "", cxx98}, +#line 471 "std-name-hint.gperf" + {"variant_alternative_t", "", cxx17}, +#line 470 "std-name-hint.gperf" + {"variant_alternative", "", cxx17}, +#line 267 "std-name-hint.gperf" + {"numbers::ln2_v", "", cxx20}, +#line 266 "std-name-hint.gperf" + {"numbers::ln10_v", "", cxx20}, +#line 263 "std-name-hint.gperf" + {"numbers::inv_pi_v", "", cxx20}, +#line 300 "std-name-hint.gperf" {"set", "", cxx98}, -#line 287 "std-name-hint.gperf" - {"vector", "", cxx98}, -#line 101 "std-name-hint.gperf" +#line 183 "std-name-hint.gperf" + {"next", "", cxx11}, +#line 264 "std-name-hint.gperf" + {"numbers::inv_sqrt3_v", "", cxx20}, +#line 265 "std-name-hint.gperf" + {"numbers::inv_sqrtpi_v", "", cxx20}, +#line 361 "std-name-hint.gperf" + {"stof", "", cxx11}, +#line 129 "std-name-hint.gperf" {"setbase", "", cxx98}, -#line 165 "std-name-hint.gperf" - {"ends", "", cxx98}, -#line 205 "std-name-hint.gperf" - {"ends", "", cxx98}, -#line 86 "std-name-hint.gperf" +#line 299 "std-name-hint.gperf" + {"multiset", "", cxx98}, +#line 174 "std-name-hint.gperf" + {"begin", "", cxx11}, +#line 119 "std-name-hint.gperf" + {"future", "", cxx11}, +#line 70 "std-name-hint.gperf" + {"byte", "", cxx17}, +#line 399 "std-name-hint.gperf" + {"make_tuple", "", cxx11}, +#line 216 "std-name-hint.gperf" + {"make_unique", "", cxx14}, +#line 330 "std-name-hint.gperf" + {"stringbuf", "", cxx98}, +#line 355 "std-name-hint.gperf" + {"streambuf", "", cxx98}, +#line 456 "std-name-hint.gperf" + {"make_integer_sequence", "", cxx14}, +#line 217 "std-name-hint.gperf" + {"make_unique_for_overwrite", "", cxx20}, +#line 313 "std-name-hint.gperf" + {"basic_spanstream", "", cxx23}, +#line 326 "std-name-hint.gperf" + {"basic_stringstream", "", cxx98}, +#line 325 "std-name-hint.gperf" + {"basic_stringbuf", "", cxx98}, +#line 473 "std-name-hint.gperf" + {"variant_size", "", cxx17}, +#line 338 "std-name-hint.gperf" + {"stacktrace", "", cxx23}, +#line 110 "std-name-hint.gperf" {"mem_fn", "", cxx11}, -#line 69 "std-name-hint.gperf" - {"deque", "", cxx98}, -#line 162 "std-name-hint.gperf" - {"reverse_iterator", "", cxx98}, -#line 151 "std-name-hint.gperf" - {"end", "", cxx11}, -#line 264 "std-name-hint.gperf" +#line 312 "std-name-hint.gperf" + {"basic_spanbuf", "", cxx23}, +#line 283 "std-name-hint.gperf" + {"flush_emit", "", cxx20}, +#line 111 "std-name-hint.gperf" + {"not_fn", "", cxx17}, +#line 474 "std-name-hint.gperf" + {"variant_size_v", "", cxx17}, +#line 336 "std-name-hint.gperf" + {"stack", "", cxx98}, +#line 422 "std-name-hint.gperf" {"void_t", "", cxx17}, -#line 284 "std-name-hint.gperf" - {"variant", "", cxx17}, -#line 281 "std-name-hint.gperf" +#line 121 "std-name-hint.gperf" + {"promise", "", cxx11}, +#line 186 "std-name-hint.gperf" + {"prev", "", cxx11}, +#line 170 "std-name-hint.gperf" + {"ws", "", cxx98}, +#line 173 "std-name-hint.gperf" + {"back_inserter", "", cxx98}, +#line 131 "std-name-hint.gperf" + {"setiosflags", "", cxx98}, +#line 466 "std-name-hint.gperf" + {"bad_variant_access", "", cxx17}, +#line 288 "std-name-hint.gperf" + {"priority_queue", "", cxx98}, +#line 144 "std-name-hint.gperf" + {"noshowbase", "", cxx98}, +#line 362 "std-name-hint.gperf" + {"stoi", "", cxx11}, +#line 155 "std-name-hint.gperf" + {"showpos", "", cxx98}, +#line 153 "std-name-hint.gperf" + {"showbase", "", cxx98}, +#line 235 "std-name-hint.gperf" + {"pmr::new_delete_resource", "", cxx17}, +#line 232 "std-name-hint.gperf" + {"pmr::get_default_resource", "", cxx17}, +#line 238 "std-name-hint.gperf" + {"pmr::set_default_resource", "", cxx17}, +#line 97 "std-name-hint.gperf" + {"basic_fstream", "", cxx98}, +#line 477 "std-name-hint.gperf" + {"vector", "", cxx98}, +#line 100 "std-name-hint.gperf" + {"fstream", "", cxx98}, +#line 458 "std-name-hint.gperf" {"move", "", cxx11}, -#line 87 "std-name-hint.gperf" - {"not_fn", "", cxx17}, +#line 96 "std-name-hint.gperf" + {"basic_filebuf", "", cxx98}, +#line 281 "std-name-hint.gperf" + {"ends", "", cxx98}, +#line 398 "std-name-hint.gperf" + {"make_from_tuple", "", cxx17}, +#line 191 "std-name-hint.gperf" + {"map", "", cxx98}, +#line 271 "std-name-hint.gperf" + {"numbers::pi_v", "", cxx20}, +#line 376 "std-name-hint.gperf" + {"basic_string_view", "", cxx17}, +#line 126 "std-name-hint.gperf" + {"put_time", "", cxx11}, +#line 352 "std-name-hint.gperf" + {"stop_token", "", cxx20}, +#line 133 "std-name-hint.gperf" + {"setw", "", cxx98}, +#line 148 "std-name-hint.gperf" + {"nounitbuf", "", cxx98}, +#line 351 "std-name-hint.gperf" + {"stop_source", "", cxx20}, +#line 213 "std-name-hint.gperf" + {"make_obj_using_allocator", "", cxx20}, +#line 321 "std-name-hint.gperf" + {"wspanbuf", "", cxx23}, +#line 231 "std-name-hint.gperf" + {"pmr", "", cxx17}, +#line 472 "std-name-hint.gperf" + {"variant_npos", "", cxx17}, +#line 223 "std-name-hint.gperf" + {"to_address", "", cxx11}, +#line 460 "std-name-hint.gperf" + {"pair", "", cxx98}, #line 269 "std-name-hint.gperf" + {"numbers::log2e_v", "", cxx20}, +#line 268 "std-name-hint.gperf" + {"numbers::log10e_v", "", cxx20}, +#line 149 "std-name-hint.gperf" + {"nouppercase", "", cxx98}, +#line 368 "std-name-hint.gperf" + {"string", "", cxx98}, +#line 373 "std-name-hint.gperf" + {"u8string", "", cxx20}, +#line 145 "std-name-hint.gperf" + {"noshowpoint", "", cxx98}, +#line 310 "std-name-hint.gperf" + {"basic_ispanstream", "", cxx23}, +#line 416 "std-name-hint.gperf" {"negation", "", cxx17}, -#line 270 "std-name-hint.gperf" +#line 146 "std-name-hint.gperf" + {"noshowpos", "", cxx98}, +#line 459 "std-name-hint.gperf" + {"move_if_noexcept", "", cxx11}, +#line 169 "std-name-hint.gperf" + {"istream", "", cxx98}, +#line 314 "std-name-hint.gperf" + {"ispanstream", "", cxx23}, +#line 315 "std-name-hint.gperf" + {"ispanstream", "", cxx23}, +#line 106 "std-name-hint.gperf" + {"function", "", cxx11}, +#line 356 "std-name-hint.gperf" + {"wstreambuf", "", cxx98}, +#line 417 "std-name-hint.gperf" {"negation_v", "", cxx17}, -#line 122 "std-name-hint.gperf" - {"nouppercase", "", cxx98}, -#line 43 "std-name-hint.gperf" - {"any_cast", "", cxx17}, -#line 181 "std-name-hint.gperf" - {"make_unique", "", cxx14}, +#line 156 "std-name-hint.gperf" + {"skipws", "", cxx98}, +#line 259 "std-name-hint.gperf" + {"nothrow_t", "", cxx98}, +#line 363 "std-name-hint.gperf" + {"stol", "", cxx11}, +#line 365 "std-name-hint.gperf" + {"stoll", "", cxx11}, +#line 366 "std-name-hint.gperf" + {"stoul", "", cxx11}, +#line 367 "std-name-hint.gperf" + {"stoull", "", cxx11}, #line 147 "std-name-hint.gperf" - {"advance", "", cxx98}, -#line 157 "std-name-hint.gperf" + {"noskipws", "", cxx98}, +#line 400 "std-name-hint.gperf" + {"tie", "", cxx11}, +#line 220 "std-name-hint.gperf" + {"reinterpret_pointer_cast", "", cxx17}, +#line 358 "std-name-hint.gperf" + {"basic_string", "", cxx98}, +#line 187 "std-name-hint.gperf" + {"reverse_iterator", "", cxx98}, +#line 182 "std-name-hint.gperf" {"move_iterator", "", cxx11}, -#line 246 "std-name-hint.gperf" - {"make_from_tuple", "", cxx17}, -#line 134 "std-name-hint.gperf" - {"defaultfloat", "", cxx11}, -#line 249 "std-name-hint.gperf" - {"tuple", "", cxx11}, -#line 257 "std-name-hint.gperf" - {"enable_if_t", "", cxx14}, -#line 164 "std-name-hint.gperf" - {"ostream", "", cxx98}, -#line 203 "std-name-hint.gperf" +#line 262 "std-name-hint.gperf" + {"numbers::egamma_v", "", cxx20}, +#line 311 "std-name-hint.gperf" + {"basic_ospanstream", "", cxx23}, +#line 475 "std-name-hint.gperf" + {"visit", "", cxx17}, +#line 56 "std-name-hint.gperf" + {"bitset", "", cxx11}, +#line 285 "std-name-hint.gperf" {"ostream", "", cxx98}, -#line 261 "std-name-hint.gperf" - {"remove_cvref_t", "", cxx20}, -#line 209 "std-name-hint.gperf" - {"queue", "", cxx98}, -#line 159 "std-name-hint.gperf" - {"ostream_iterator", "", cxx98}, -#line 227 "std-name-hint.gperf" - {"stringstream", "", cxx98}, -#line 251 "std-name-hint.gperf" - {"tuple_element", "", cxx11}, -#line 252 "std-name-hint.gperf" - {"tuple_element_t", "", cxx14}, -#line 77 "std-name-hint.gperf" - {"fstream", "", cxx98}, -#line 213 "std-name-hint.gperf" - {"multiset", "", cxx98}, -#line 280 "std-name-hint.gperf" - {"make_pair", "", cxx98}, -#line 253 "std-name-hint.gperf" - {"tuple_size", "", cxx11}, -#line 100 "std-name-hint.gperf" - {"setiosflags", "", cxx98}, -#line 99 "std-name-hint.gperf" - {"resetiosflags", "", cxx98}, -#line 149 "std-name-hint.gperf" - {"begin", "", cxx11}, -#line 109 "std-name-hint.gperf" - {"quoted", "", cxx14}, -#line 275 "std-name-hint.gperf" +#line 154 "std-name-hint.gperf" + {"showpoint", "", cxx98}, +#line 316 "std-name-hint.gperf" + {"ospanstream", "", cxx23}, +#line 433 "std-name-hint.gperf" {"unordered_set", "", cxx11}, -#line 276 "std-name-hint.gperf" - {"unordered_multiset", "", cxx11}, -#line 256 "std-name-hint.gperf" - {"enable_if", "", cxx11}, -#line 95 "std-name-hint.gperf" - {"future", "", cxx11}, -#line 260 "std-name-hint.gperf" - {"remove_cvref", "", cxx20}, -#line 248 "std-name-hint.gperf" - {"tie", "", cxx11}, -#line 247 "std-name-hint.gperf" - {"make_tuple", "", cxx11}, -#line 71 "std-name-hint.gperf" - {"forward_list", "", cxx11}, -#line 79 "std-name-hint.gperf" - {"ofstream", "", cxx98}, -#line 285 "std-name-hint.gperf" - {"visit", "", cxx17}, -#line 127 "std-name-hint.gperf" - {"right", "", cxx98}, -#line 85 "std-name-hint.gperf" - {"invoke", "", cxx17}, -#line 279 "std-name-hint.gperf" - {"forward", "", cxx11}, -#line 114 "std-name-hint.gperf" - {"noshowbase", "", cxx98}, -#line 153 "std-name-hint.gperf" - {"inserter", "", cxx98}, -#line 160 "std-name-hint.gperf" - {"ostreambuf_iterator", "", cxx98}, -#line 51 "std-name-hint.gperf" - {"atomic_ref", "", cxx20}, -#line 112 "std-name-hint.gperf" - {"noboolalpha", "", cxx98}, -#line 148 "std-name-hint.gperf" - {"back_inserter", "", cxx98}, -#line 183 "std-name-hint.gperf" - {"unique_ptr", "", cxx11}, -#line 89 "std-name-hint.gperf" - {"unwrap_reference", "", cxx20}, -#line 90 "std-name-hint.gperf" - {"unwrap_reference_t", "", cxx20}, -#line 219 "std-name-hint.gperf" - {"source_location", "", cxx20}, -#line 254 "std-name-hint.gperf" - {"tuple_size_v", "", cxx17}, -#line 83 "std-name-hint.gperf" - {"function", "", cxx11}, -#line 144 "std-name-hint.gperf" - {"istream", "", cxx98}, +#line 78 "std-name-hint.gperf" + {"uint_least64_t", "", cxx11}, #line 229 "std-name-hint.gperf" - {"stack", "", cxx98}, -#line 154 "std-name-hint.gperf" + {"weak_ptr", "", cxx11}, +#line 79 "std-name-hint.gperf" + {"uint_least8_t", "", cxx11}, +#line 77 "std-name-hint.gperf" + {"uint_least32_t", "", cxx11}, +#line 76 "std-name-hint.gperf" + {"uint_least16_t", "", cxx11}, +#line 179 "std-name-hint.gperf" {"istream_iterator", "", cxx98}, -#line 123 "std-name-hint.gperf" +#line 157 "std-name-hint.gperf" {"unitbuf", "", cxx98}, -#line 224 "std-name-hint.gperf" - {"basic_stringstream", "", cxx98}, -#line 245 "std-name-hint.gperf" - {"forward_as_tuple", "", cxx11}, +#line 142 "std-name-hint.gperf" + {"left", "", cxx98}, +#line 346 "std-name-hint.gperf" + {"range_error", "", cxx98}, +#line 347 "std-name-hint.gperf" + {"runtime_error", "", cxx98}, +#line 108 "std-name-hint.gperf" + {"invoke", "", cxx17}, +#line 222 "std-name-hint.gperf" + {"static_pointer_cast", "", cxx11}, +#line 98 "std-name-hint.gperf" + {"basic_ifstream", "", cxx98}, +#line 406 "std-name-hint.gperf" + {"tuple_size_v", "", cxx17}, +#line 452 "std-name-hint.gperf" + {"index_sequence", "", cxx14}, +#line 184 "std-name-hint.gperf" + {"ostream_iterator", "", cxx98}, +#line 261 "std-name-hint.gperf" + {"numbers::e_v", "", cxx20}, #line 124 "std-name-hint.gperf" - {"nounitbuf", "", cxx98}, -#line 119 "std-name-hint.gperf" - {"skipws", "", cxx98}, -#line 75 "std-name-hint.gperf" + {"get_time", "", cxx11}, +#line 432 "std-name-hint.gperf" + {"unordered_multiset", "", cxx11}, +#line 360 "std-name-hint.gperf" + {"stod", "", cxx11}, +#line 364 "std-name-hint.gperf" + {"stold", "", cxx11}, +#line 151 "std-name-hint.gperf" + {"right", "", cxx98}, +#line 99 "std-name-hint.gperf" {"basic_ofstream", "", cxx98}, -#line 156 "std-name-hint.gperf" - {"iterator_traits", "", cxx98}, -#line 76 "std-name-hint.gperf" - {"basic_fstream", "", cxx98}, -#line 131 "std-name-hint.gperf" - {"fixed", "", cxx98}, -#line 184 "std-name-hint.gperf" - {"weak_ptr", "", cxx11}, -#line 104 "std-name-hint.gperf" - {"setw", "", cxx98}, -#line 152 "std-name-hint.gperf" - {"front_inserter", "", cxx98}, -#line 221 "std-name-hint.gperf" - {"basic_stringbuf", "", cxx98}, -#line 145 "std-name-hint.gperf" - {"ws", "", cxx98}, -#line 92 "std-name-hint.gperf" - {"unwrap_ref_decay_t", "", cxx20}, -#line 53 "std-name-hint.gperf" - {"bitset", "", cxx11}, -#line 78 "std-name-hint.gperf" - {"ifstream", "", cxx98}, -#line 138 "std-name-hint.gperf" - {"cerr", "", cxx98}, -#line 88 "std-name-hint.gperf" - {"reference_wrapper", "", cxx11}, -#line 97 "std-name-hint.gperf" - {"promise", "", cxx11}, -#line 161 "std-name-hint.gperf" - {"prev", "", cxx11}, -#line 82 "std-name-hint.gperf" - {"bind_front", "", cxx20}, -#line 186 "std-name-hint.gperf" - {"pmr", "", cxx17}, -#line 155 "std-name-hint.gperf" - {"istreambuf_iterator", "", cxx98}, -#line 188 "std-name-hint.gperf" - {"mutex", "", cxx11}, -#line 126 "std-name-hint.gperf" - {"left", "", cxx98}, -#line 128 "std-name-hint.gperf" - {"dec", "", cxx98}, +#line 379 "std-name-hint.gperf" + {"errc", "", cxx11}, #line 81 "std-name-hint.gperf" - {"bind", "", cxx11}, -#line 120 "std-name-hint.gperf" - {"noskipws", "", cxx98}, -#line 167 "std-name-hint.gperf" - {"endl", "", cxx98}, -#line 207 "std-name-hint.gperf" - {"endl", "", cxx98}, -#line 130 "std-name-hint.gperf" - {"oct", "", cxx98}, -#line 137 "std-name-hint.gperf" - {"cout", "", cxx98}, -#line 49 "std-name-hint.gperf" - {"atomic", "", cxx11}, -#line 282 "std-name-hint.gperf" - {"pair", "", cxx98}, -#line 174 "std-name-hint.gperf" - {"map", "", cxx98}, -#line 193 "std-name-hint.gperf" + {"uintptr_t", "", cxx11}, +#line 439 "std-name-hint.gperf" + {"cmp_less", "", cxx20}, +#line 402 "std-name-hint.gperf" + {"tuple_cat", "", cxx11}, +#line 381 "std-name-hint.gperf" + {"error_code", "", cxx11}, +#line 323 "std-name-hint.gperf" + {"basic_istringstream", "", cxx98}, +#line 105 "std-name-hint.gperf" + {"bind_front", "", cxx20}, +#line 455 "std-name-hint.gperf" + {"make_index_sequence", "", cxx14}, +#line 242 "std-name-hint.gperf" {"call_once", "", cxx11}, -#line 94 "std-name-hint.gperf" - {"async", "", cxx11}, -#line 116 "std-name-hint.gperf" - {"noshowpoint", "", cxx98}, -#line 204 "std-name-hint.gperf" - {"wostream", "", cxx98}, +#line 372 "std-name-hint.gperf" + {"u32string", "", cxx11}, #line 258 "std-name-hint.gperf" - {"invoke_result", "", cxx17}, -#line 118 "std-name-hint.gperf" - {"noshowpos", "", cxx98}, -#line 259 "std-name-hint.gperf" - {"invoke_result_t", "", cxx17}, -#line 241 "std-name-hint.gperf" - {"thread", "", cxx11}, -#line 103 "std-name-hint.gperf" - {"setprecision", "", cxx98}, -#line 113 "std-name-hint.gperf" - {"showbase", "", cxx98}, -#line 74 "std-name-hint.gperf" - {"basic_ifstream", "", cxx98}, + {"nothrow", "", cxx98}, +#line 371 "std-name-hint.gperf" + {"u16string", "", cxx11}, +#line 177 "std-name-hint.gperf" + {"front_inserter", "", cxx98}, +#line 83 "std-name-hint.gperf" + {"deque", "", cxx98}, +#line 112 "std-name-hint.gperf" + {"reference_wrapper", "", cxx11}, #line 178 "std-name-hint.gperf" - {"allocator", "", cxx98}, -#line 133 "std-name-hint.gperf" - {"hexfloat", "", cxx11}, -#line 117 "std-name-hint.gperf" - {"showpos", "", cxx98}, -#line 170 "std-name-hint.gperf" - {"flush_emit", "", cxx20}, -#line 250 "std-name-hint.gperf" - {"tuple_cat", "", cxx11}, -#line 179 "std-name-hint.gperf" - {"allocator_traits", "", cxx11}, -#line 191 "std-name-hint.gperf" - {"recursive_timed_mutex", "", cxx11}, -#line 108 "std-name-hint.gperf" - {"put_time", "", cxx11}, -#line 210 "std-name-hint.gperf" - {"priority_queue", "", cxx98}, -#line 190 "std-name-hint.gperf" - {"recursive_mutex", "", cxx11}, -#line 232 "std-name-hint.gperf" - {"string", "", cxx98}, -#line 107 "std-name-hint.gperf" - {"get_time", "", cxx11}, -#line 223 "std-name-hint.gperf" + {"inserter", "", cxx98}, +#line 324 "std-name-hint.gperf" {"basic_ostringstream", "", cxx98}, -#line 73 "std-name-hint.gperf" - {"basic_filebuf", "", cxx98}, -#line 272 "std-name-hint.gperf" +#line 333 "std-name-hint.gperf" + {"wostringstream", "", cxx98}, +#line 334 "std-name-hint.gperf" + {"wstringbuf", "", cxx98}, +#line 280 "std-name-hint.gperf" + {"endl", "", cxx98}, +#line 327 "std-name-hint.gperf" + {"istringstream", "", cxx98}, +#line 328 "std-name-hint.gperf" + {"istringstream", "", cxx98}, +#line 453 "std-name-hint.gperf" + {"index_sequence_for", "", cxx14}, +#line 181 "std-name-hint.gperf" + {"iterator_traits", "", cxx98}, +#line 370 "std-name-hint.gperf" + {"to_wstring", "", cxx17}, +#line 275 "std-name-hint.gperf" + {"make_optional", "", cxx17}, +#line 257 "std-name-hint.gperf" + {"launder", "", cxx17}, +#line 429 "std-name-hint.gperf" {"unordered_map", "", cxx11}, -#line 121 "std-name-hint.gperf" - {"uppercase", "", cxx98}, -#line 273 "std-name-hint.gperf" +#line 419 "std-name-hint.gperf" + {"remove_cvref_t", "", cxx20}, +#line 329 "std-name-hint.gperf" + {"ostringstream", "", cxx98}, +#line 430 "std-name-hint.gperf" {"unordered_multimap", "", cxx11}, -#line 182 "std-name-hint.gperf" +#line 388 "std-name-hint.gperf" + {"make_error_code", "", cxx11}, +#line 413 "std-name-hint.gperf" + {"enable_if_t", "", cxx14}, +#line 163 "std-name-hint.gperf" + {"cout", "", cxx98}, +#line 167 "std-name-hint.gperf" + {"wcout", "", cxx98}, +#line 389 "std-name-hint.gperf" + {"make_error_condition", "", cxx11}, +#line 394 "std-name-hint.gperf" + {"thread", "", cxx11}, +#line 369 "std-name-hint.gperf" + {"to_string", "", cxx17}, +#line 165 "std-name-hint.gperf" + {"wcin", "", cxx98}, +#line 243 "std-name-hint.gperf" + {"lock", "", cxx11}, +#line 251 "std-name-hint.gperf" + {"try_lock", "", cxx11}, +#line 237 "std-name-hint.gperf" + {"pmr::pool_options", "", cxx17}, +#line 435 "std-name-hint.gperf" + {"as_const", "", cxx17}, +#line 463 "std-name-hint.gperf" + {"to_underlying", "", cxx23}, +#line 116 "std-name-hint.gperf" + {"unwrap_reference_t", "", cxx20}, +#line 427 "std-name-hint.gperf" + {"bad_typeid", "", cxx98}, +#line 115 "std-name-hint.gperf" + {"unwrap_reference", "", cxx20}, +#line 172 "std-name-hint.gperf" + {"advance", "", cxx98}, +#line 308 "std-name-hint.gperf" + {"span", "", cxx20}, +#line 234 "std-name-hint.gperf" + {"pmr::monotonic_buffer_resource", "", cxx17}, +#line 297 "std-name-hint.gperf" + {"counting_semaphore", "", cxx20}, +#line 150 "std-name-hint.gperf" + {"oct", "", cxx98}, +#line 289 "std-name-hint.gperf" + {"queue", "", cxx98}, +#line 160 "std-name-hint.gperf" + {"cerr", "", cxx98}, +#line 176 "std-name-hint.gperf" + {"end", "", cxx11}, +#line 189 "std-name-hint.gperf" + {"list", "", cxx98}, +#line 385 "std-name-hint.gperf" + {"is_error_code_enum_v", "", cxx17}, +#line 418 "std-name-hint.gperf" + {"remove_cvref", "", cxx20}, +#line 387 "std-name-hint.gperf" + {"is_error_condition_enum_v", "", cxx17}, +#line 240 "std-name-hint.gperf" + {"pmr::unsynchronized_pool_resource", "", cxx17}, +#line 382 "std-name-hint.gperf" + {"error_condition", "", cxx11}, +#line 224 "std-name-hint.gperf" + {"uninitialized_construct_using_allocator", "", cxx20}, +#line 94 "std-name-hint.gperf" + {"forward_list", "", cxx11}, +#line 412 "std-name-hint.gperf" + {"enable_if", "", cxx11}, +#line 221 "std-name-hint.gperf" {"shared_ptr", "", cxx11}, -#line 42 "std-name-hint.gperf" - {"any", "", cxx17}, -#line 175 "std-name-hint.gperf" - {"multimap", "", cxx98}, -#line 46 "std-name-hint.gperf" - {"array", "", cxx11}, -#line 136 "std-name-hint.gperf" - {"cin", "", cxx98}, -#line 238 "std-name-hint.gperf" - {"basic_string_view", "", cxx17}, -#line 168 "std-name-hint.gperf" +#line 195 "std-name-hint.gperf" + {"align", "", cxx11}, +#line 451 "std-name-hint.gperf" + {"in_range", "", cxx20}, +#line 60 "std-name-hint.gperf" + {"strong_ordering", "", cxx20}, +#line 348 "std-name-hint.gperf" + {"underflow_error", "", cxx98}, +#line 272 "std-name-hint.gperf" + {"numbers::sqrt2_v", "", cxx20}, +#line 273 "std-name-hint.gperf" + {"numbers::sqrt3_v", "", cxx20}, +#line 89 "std-name-hint.gperf" + {"terminate", "", cxx98}, +#line 201 "std-name-hint.gperf" + {"allocator_traits", "", cxx11}, +#line 384 "std-name-hint.gperf" + {"is_error_code_enum", "", cxx11}, +#line 194 "std-name-hint.gperf" + {"addressof", "", cxx11}, +#line 386 "std-name-hint.gperf" + {"is_error_condition_enum", "", cxx11}, +#line 421 "std-name-hint.gperf" + {"type_identity_t", "", cxx20}, +#line 331 "std-name-hint.gperf" + {"stringstream", "", cxx98}, +#line 279 "std-name-hint.gperf" {"emit_on_flush", "", cxx20}, +#line 437 "std-name-hint.gperf" + {"cmp_greater", "", cxx20}, +#line 343 "std-name-hint.gperf" + {"logic_error", "", cxx98}, +#line 130 "std-name-hint.gperf" + {"setfill", "", cxx98}, +#line 332 "std-name-hint.gperf" + {"wistringstream", "", cxx98}, +#line 164 "std-name-hint.gperf" + {"wcerr", "", cxx98}, +#line 225 "std-name-hint.gperf" + {"unique_ptr", "", cxx11}, +#line 374 "std-name-hint.gperf" + {"wstring", "", cxx98}, +#line 270 "std-name-hint.gperf" + {"numbers::phi_v", "", cxx20}, +#line 236 "std-name-hint.gperf" + {"pmr::polymorphic_allocator", "", cxx17}, +#line 211 "std-name-hint.gperf" + {"enable_shared_from_this", "", cxx11}, +#line 377 "std-name-hint.gperf" + {"string_view", "", cxx17}, +#line 354 "std-name-hint.gperf" + {"basic_streambuf", "", cxx98}, #line 180 "std-name-hint.gperf" - {"make_shared", "", cxx11}, -#line 44 "std-name-hint.gperf" + {"istreambuf_iterator", "", cxx98}, +#line 245 "std-name-hint.gperf" + {"mutex", "", cxx11}, +#line 45 "std-name-hint.gperf" {"make_any", "", cxx17}, -#line 172 "std-name-hint.gperf" - {"list", "", cxx98}, -#line 226 "std-name-hint.gperf" - {"ostringstream", "", cxx98}, -#line 47 "std-name-hint.gperf" - {"to_array", "", cxx20}, -#line 150 "std-name-hint.gperf" - {"distance", "", cxx98}, -#line 197 "std-name-hint.gperf" - {"lock_guard", "", cxx11}, -#line 111 "std-name-hint.gperf" - {"boolalpha", "", cxx98}, -#line 59 "std-name-hint.gperf" - {"strong_ordering", "", cxx20}, -#line 196 "std-name-hint.gperf" - {"try_lock", "", cxx11}, -#line 267 "std-name-hint.gperf" - {"disjunction", "", cxx17}, -#line 268 "std-name-hint.gperf" - {"disjunction_v", "", cxx17}, +#line 424 "std-name-hint.gperf" + {"type_index", "", cxx11}, +#line 204 "std-name-hint.gperf" + {"const_pointer_cast", "", cxx11}, +#line 359 "std-name-hint.gperf" + {"char_traits", "", cxx98}, +#line 132 "std-name-hint.gperf" + {"setprecision", "", cxx98}, +#line 203 "std-name-hint.gperf" + {"bad_weak_ptr", "", cxx11}, +#line 317 "std-name-hint.gperf" + {"spanbuf", "", cxx23}, +#line 414 "std-name-hint.gperf" + {"invoke_result", "", cxx17}, +#line 104 "std-name-hint.gperf" + {"bind", "", cxx11}, +#line 415 "std-name-hint.gperf" + {"invoke_result_t", "", cxx17}, +#line 185 "std-name-hint.gperf" + {"ostreambuf_iterator", "", cxx98}, +#line 161 "std-name-hint.gperf" + {"cin", "", cxx98}, +#line 436 "std-name-hint.gperf" + {"cmp_equal", "", cxx20}, +#line 198 "std-name-hint.gperf" + {"allocator", "", cxx98}, +#line 162 "std-name-hint.gperf" + {"clog", "", cxx98}, +#line 441 "std-name-hint.gperf" + {"cmp_not_equal", "", cxx20}, +#line 291 "std-name-hint.gperf" + {"ranges::enable_borrowed_range", "", cxx20}, +#line 282 "std-name-hint.gperf" + {"flush", "", cxx98}, +#line 254 "std-name-hint.gperf" + {"bad_alloc", "", cxx98}, +#line 457 "std-name-hint.gperf" + {"make_pair", "", cxx98}, +#line 318 "std-name-hint.gperf" + {"spanstream", "", cxx23}, #line 67 "std-name-hint.gperf" - {"byte", "", cxx17}, -#line 115 "std-name-hint.gperf" - {"showpoint", "", cxx98}, -#line 64 "std-name-hint.gperf" {"condition_variable", "", cxx11}, -#line 129 "std-name-hint.gperf" - {"hex", "", cxx98}, -#line 141 "std-name-hint.gperf" - {"wcout", "", cxx98}, -#line 222 "std-name-hint.gperf" - {"basic_istringstream", "", cxx98}, -#line 169 "std-name-hint.gperf" - {"noemit_on_flush", "", cxx20}, #line 125 "std-name-hint.gperf" - {"internal", "", cxx98}, -#line 140 "std-name-hint.gperf" - {"wcin", "", cxx98}, -#line 234 "std-name-hint.gperf" - {"u8string", "", cxx20}, -#line 56 "std-name-hint.gperf" - {"strong_equality", "", cxx20}, + {"put_money", "", cxx11}, +#line 44 "std-name-hint.gperf" + {"any_cast", "", cxx17}, +#line 468 "std-name-hint.gperf" + {"monostate", "", cxx17}, #line 62 "std-name-hint.gperf" - {"complex_literals", "", cxx14}, -#line 194 "std-name-hint.gperf" - {"lock", "", cxx11}, -#line 189 "std-name-hint.gperf" - {"timed_mutex", "", cxx11}, -#line 231 "std-name-hint.gperf" - {"basic_string", "", cxx98}, -#line 96 "std-name-hint.gperf" + {"weak_ordering", "", cxx20}, +#line 233 "std-name-hint.gperf" + {"pmr::memory_resource", "", cxx17}, +#line 206 "std-name-hint.gperf" + {"default_delete", "", cxx11}, +#line 138 "std-name-hint.gperf" + {"fixed", "", cxx98}, +#line 86 "std-name-hint.gperf" + {"exception", "", cxx98}, +#line 192 "std-name-hint.gperf" + {"multimap", "", cxx98}, +#line 302 "std-name-hint.gperf" + {"shared_lock", "", cxx14}, +#line 448 "std-name-hint.gperf" + {"in_place_t", "", cxx17}, +#line 445 "std-name-hint.gperf" + {"in_place", "", cxx17}, +#line 345 "std-name-hint.gperf" + {"overflow_error", "", cxx98}, +#line 256 "std-name-hint.gperf" + {"hardware_destructive_interference_size", "", cxx17}, +#line 447 "std-name-hint.gperf" + {"in_place_index_t", "", cxx17}, +#line 166 "std-name-hint.gperf" + {"wclog", "", cxx98}, +#line 109 "std-name-hint.gperf" + {"invoke_r", "", cxx23}, +#line 88 "std-name-hint.gperf" + {"make_exception_ptr", "", cxx11}, +#line 344 "std-name-hint.gperf" + {"out_of_range", "", cxx98}, +#line 252 "std-name-hint.gperf" + {"unique_lock", "", cxx11}, +#line 244 "std-name-hint.gperf" + {"lock_guard", "", cxx11}, +#line 212 "std-name-hint.gperf" + {"get_deleter", "", cxx11}, +#line 438 "std-name-hint.gperf" + {"cmp_greater_equal", "", cxx20}, +#line 464 "std-name-hint.gperf" + {"unreachable", "", cxx23}, +#line 135 "std-name-hint.gperf" + {"boolalpha", "", cxx98}, +#line 120 "std-name-hint.gperf" {"packaged_task", "", cxx11}, +#line 443 "std-name-hint.gperf" + {"exchange", "", cxx14}, +#line 85 "std-name-hint.gperf" + {"current_exception", "", cxx11}, +#line 136 "std-name-hint.gperf" + {"dec", "", cxx98}, +#line 292 "std-name-hint.gperf" + {"ranges::enable_view", "", cxx20}, +#line 72 "std-name-hint.gperf" + {"uint_fast16_t", "", cxx11}, #line 239 "std-name-hint.gperf" - {"string_view", "", cxx17}, -#line 225 "std-name-hint.gperf" - {"istringstream", "", cxx98}, -#line 198 "std-name-hint.gperf" - {"unique_lock", "", cxx11}, -#line 263 "std-name-hint.gperf" - {"type_identity_t", "", cxx20}, -#line 216 "std-name-hint.gperf" - {"shared_mutex", "", cxx17}, -#line 265 "std-name-hint.gperf" + {"pmr::synchronized_pool_resource", "", cxx17}, +#line 228 "std-name-hint.gperf" + {"uses_allocator_v", "", cxx17}, +#line 227 "std-name-hint.gperf" + {"uses_allocator_construction_args", "", cxx20}, +#line 114 "std-name-hint.gperf" + {"unwrap_ref_decay_t", "", cxx20}, +#line 74 "std-name-hint.gperf" + {"uint_fast64_t", "", cxx11}, +#line 53 "std-name-hint.gperf" + {"atomic_uintmax_t", "", cxx20}, +#line 286 "std-name-hint.gperf" + {"wostream", "", cxx98}, +#line 73 "std-name-hint.gperf" + {"uint_fast32_t", "", cxx11}, +#line 320 "std-name-hint.gperf" + {"wospanstream", "", cxx23}, +#line 80 "std-name-hint.gperf" + {"uintmax_t", "", cxx11}, +#line 123 "std-name-hint.gperf" + {"get_money", "", cxx11}, +#line 52 "std-name-hint.gperf" + {"atomic_signed_lock_free", "", cxx11}, +#line 246 "std-name-hint.gperf" + {"once_flag", "", cxx11}, +#line 128 "std-name-hint.gperf" + {"resetiosflags", "", cxx98}, +#line 219 "std-name-hint.gperf" + {"pointer_traits", "", cxx11}, +#line 397 "std-name-hint.gperf" + {"forward_as_tuple", "", cxx11}, +#line 248 "std-name-hint.gperf" + {"recursive_timed_mutex", "", cxx11}, +#line 118 "std-name-hint.gperf" + {"async", "", cxx11}, +#line 226 "std-name-hint.gperf" + {"uses_allocator", "", cxx11}, +#line 51 "std-name-hint.gperf" + {"atomic_ref", "", cxx20}, +#line 127 "std-name-hint.gperf" + {"quoted", "", cxx14}, +#line 152 "std-name-hint.gperf" + {"scientific", "", cxx98}, +#line 50 "std-name-hint.gperf" + {"atomic", "", cxx11}, +#line 408 "std-name-hint.gperf" {"conjunction", "", cxx17}, -#line 266 "std-name-hint.gperf" +#line 255 "std-name-hint.gperf" + {"hardware_constructive_interference_size", "", cxx17}, +#line 444 "std-name-hint.gperf" + {"forward", "", cxx11}, +#line 409 "std-name-hint.gperf" {"conjunction_v", "", cxx17}, -#line 217 "std-name-hint.gperf" - {"shared_timed_mutex", "", cxx14}, -#line 102 "std-name-hint.gperf" - {"setfill", "", cxx98}, -#line 236 "std-name-hint.gperf" - {"u32string", "", cxx11}, -#line 235 "std-name-hint.gperf" - {"u16string", "", cxx11}, -#line 278 "std-name-hint.gperf" +#line 92 "std-name-hint.gperf" + {"expected", "", cxx23}, +#line 249 "std-name-hint.gperf" + {"scoped_lock", "", cxx17}, +#line 342 "std-name-hint.gperf" + {"length_error", "", cxx98}, +#line 87 "std-name-hint.gperf" + {"exception_ptr", "", cxx11}, +#line 341 "std-name-hint.gperf" + {"invalid_argument", "", cxx98}, +#line 247 "std-name-hint.gperf" + {"recursive_mutex", "", cxx11}, +#line 137 "std-name-hint.gperf" + {"defaultfloat", "", cxx11}, +#line 101 "std-name-hint.gperf" + {"ifstream", "", cxx98}, +#line 461 "std-name-hint.gperf" + {"piecewise_construct", "", cxx11}, +#line 390 "std-name-hint.gperf" + {"system_category", "", cxx11}, +#line 462 "std-name-hint.gperf" + {"piecewise_construct_t", "", cxx11}, +#line 442 "std-name-hint.gperf" {"declval", "", cxx11}, -#line 91 "std-name-hint.gperf" - {"unwrap_ref_decay", "", cxx20}, -#line 201 "std-name-hint.gperf" - {"make_optional", "", cxx17}, +#line 306 "std-name-hint.gperf" + {"source_location", "", cxx20}, +#line 454 "std-name-hint.gperf" + {"integer_sequence", "", cxx14}, +#line 208 "std-name-hint.gperf" + {"destroy_at", "", cxx20}, +#line 294 "std-name-hint.gperf" + {"scoped_allocator_adaptor", "", cxx11}, +#line 209 "std-name-hint.gperf" + {"destroy_n", "", cxx20}, +#line 210 "std-name-hint.gperf" + {"dynamic_pointer_cast", "", cxx11}, +#line 102 "std-name-hint.gperf" + {"ofstream", "", cxx98}, +#line 54 "std-name-hint.gperf" + {"atomic_unsigned_lock_free", "", cxx11}, +#line 319 "std-name-hint.gperf" + {"wispanstream", "", cxx23}, +#line 58 "std-name-hint.gperf" + {"partial_ordering", "", cxx20}, +#line 218 "std-name-hint.gperf" + {"owner_less", "", cxx11}, +#line 392 "std-name-hint.gperf" + {"jthread", "", cxx20}, +#line 215 "std-name-hint.gperf" + {"make_shared_for_overwrite", "", cxx20}, +#line 303 "std-name-hint.gperf" + {"shared_mutex", "", cxx17}, +#line 205 "std-name-hint.gperf" + {"construct_at", "", cxx20}, +#line 175 "std-name-hint.gperf" + {"distance", "", cxx98}, +#line 304 "std-name-hint.gperf" + {"shared_timed_mutex", "", cxx14}, +#line 410 "std-name-hint.gperf" + {"disjunction", "", cxx17}, +#line 158 "std-name-hint.gperf" + {"uppercase", "", cxx98}, +#line 411 "std-name-hint.gperf" + {"disjunction_v", "", cxx17}, +#line 47 "std-name-hint.gperf" + {"array", "", cxx11}, +#line 284 "std-name-hint.gperf" + {"noemit_on_flush", "", cxx20}, +#line 65 "std-name-hint.gperf" + {"complex_literals", "", cxx14}, +#line 340 "std-name-hint.gperf" + {"domain_error", "", cxx98}, #line 200 "std-name-hint.gperf" - {"optional", "", cxx17}, -#line 84 "std-name-hint.gperf" + {"allocator_arg_t", "", cxx11}, +#line 141 "std-name-hint.gperf" + {"internal", "", cxx98}, +#line 75 "std-name-hint.gperf" + {"uint_fast8_t", "", cxx11}, +#line 296 "std-name-hint.gperf" + {"binary_semaphore", "", cxx20}, +#line 140 "std-name-hint.gperf" + {"hexfloat", "", cxx11}, +#line 107 "std-name-hint.gperf" {"hash", "", cxx11}, -#line 166 "std-name-hint.gperf" - {"flush", "", cxx98}, -#line 206 "std-name-hint.gperf" - {"flush", "", cxx98}, -#line 244 "std-name-hint.gperf" - {"apply", "", cxx17}, +#line 420 "std-name-hint.gperf" + {"type_identity", "", cxx20}, +#line 197 "std-name-hint.gperf" + {"allocate_shared_for_overwrite", "", cxx20}, +#line 350 "std-name-hint.gperf" + {"stop_callback", "", cxx20}, +#line 139 "std-name-hint.gperf" + {"hex", "", cxx98}, +#line 48 "std-name-hint.gperf" + {"to_array", "", cxx20}, +#line 380 "std-name-hint.gperf" + {"error_category", "", cxx11}, +#line 440 "std-name-hint.gperf" + {"cmp_less_equal", "", cxx20}, +#line 43 "std-name-hint.gperf" + {"any", "", cxx17}, +#line 68 "std-name-hint.gperf" + {"condition_variable_any", "", cxx11}, +#line 383 "std-name-hint.gperf" + {"generic_category", "", cxx11}, +#line 450 "std-name-hint.gperf" + {"in_place_type_t", "", cxx17}, +#line 449 "std-name-hint.gperf" + {"in_place_type", "", cxx17}, +#line 446 "std-name-hint.gperf" + {"in_place_index", "", cxx17}, +#line 467 "std-name-hint.gperf" + {"holds_alternative", "", cxx17}, +#line 199 "std-name-hint.gperf" + {"allocator_arg", "", cxx11}, +#line 90 "std-name-hint.gperf" + {"uncaught_exceptions", "", cxx17}, +#line 214 "std-name-hint.gperf" + {"make_shared", "", cxx11}, +#line 113 "std-name-hint.gperf" + {"unwrap_ref_decay", "", cxx20}, +#line 59 "std-name-hint.gperf" + {"strong_equality", "", cxx20}, +#line 202 "std-name-hint.gperf" + {"assume_aligned", "", cxx20}, #line 61 "std-name-hint.gperf" - {"complex", "", cxx98}, -#line 242 "std-name-hint.gperf" + {"weak_equality", "", cxx20}, +#line 393 "std-name-hint.gperf" {"this_thread", "", cxx11}, -#line 177 "std-name-hint.gperf" +#line 250 "std-name-hint.gperf" + {"timed_mutex", "", cxx11}, +#line 277 "std-name-hint.gperf" + {"optional", "", cxx17}, +#line 196 "std-name-hint.gperf" {"allocate_shared", "", cxx11}, -#line 132 "std-name-hint.gperf" - {"scientific", "", cxx98}, -#line 192 "std-name-hint.gperf" - {"once_flag", "", cxx11}, -#line 106 "std-name-hint.gperf" - {"put_money", "", cxx11}, -#line 105 "std-name-hint.gperf" - {"get_money", "", cxx11}, -#line 195 "std-name-hint.gperf" - {"scoped_lock", "", cxx17}, -#line 58 "std-name-hint.gperf" - {"weak_ordering", "", cxx20}, -#line 55 "std-name-hint.gperf" - {"weak_equality", "", cxx20}, -#line 215 "std-name-hint.gperf" - {"shared_lock", "", cxx14}, -#line 50 "std-name-hint.gperf" - {"atomic_flag", "", cxx11}, -#line 142 "std-name-hint.gperf" - {"wclog", "", cxx98}, -#line 65 "std-name-hint.gperf" - {"condition_variable_any", "", cxx11}, -#line 139 "std-name-hint.gperf" - {"clog", "", cxx98}, -#line 262 "std-name-hint.gperf" - {"type_identity", "", cxx20}, -#line 233 "std-name-hint.gperf" - {"wstring", "", cxx98}, -#line 57 "std-name-hint.gperf" - {"partial_ordering", "", cxx20} +#line 207 "std-name-hint.gperf" + {"destroy", "", cxx20}, +#line 396 "std-name-hint.gperf" + {"apply", "", cxx17}, +#line 64 "std-name-hint.gperf" + {"complex", "", cxx98}, +#line 143 "std-name-hint.gperf" + {"noboolalpha", "", cxx98} }; static const short lookup[] = { -1, -1, -1, -1, -1, -1, -1, -1, - -1, 0, -1, -1, -1, 1, -1, 2, - -1, 3, -1, -228, -1, 6, -201, -2, - -1, 7, 8, -1, 9, -1, -1, -1, - -1, -1, -1, 10, 11, -1, -1, 12, - -1, 13, -1, 14, 15, -1, 16, -1, - 17, -1, -1, 18, 19, 20, -1, 21, - -1, 22, -1, -1, 23, 24, -287, -1, - 27, 28, 29, 30, 31, -1, 32, -1, - 33, 34, 35, 36, 37, -1, 38, -1, - 39, -180, -2, -1, -1, -1, 40, -1, - 41, -1, -1, -1, -1, 42, 43, -1, - 44, 45, 46, -1, 47, -1, 48, 49, - 50, 51, 52, 53, -1, -1, 54, -1, - -1, 55, 56, 57, 58, -1, 59, -1, - 60, 61, -1, 62, -1, 63, 64, -1, - 65, -1, -1, -1, 66, -1, -1, 67, - 68, 69, 70, -1, -1, 71, -1, -1, - 72, -1, 73, -1, -1, 74, 75, -1, - -1, 76, -1, 77, 78, 79, -1, 80, - 81, -1, -1, -1, -1, 82, -1, -1, - 83, -1, -1, 84, -1, 85, 86, 87, - -1, 88, 89, -1, 90, -1, -1, 91, - 92, 93, -1, 94, 95, 96, -1, 97, - -403, 100, 101, -1, 102, -107, -2, 103, - -1, -1, -1, 104, 105, 106, 107, -1, - -1, -1, -1, 108, -1, 109, 110, 111, - 112, 113, 114, 115, -1, -1, 116, 117, - -1, -1, -1, 118, 119, 120, -1, -1, - -1, -1, 121, -1, 122, -1, 123, 124, - 125, 126, -1, 127, 128, -1, -1, -1, - 129, -1, -1, -1, -1, 130, 131, -1, - -1, -1, 132, -1, 133, -1, 134, 135, - 136, -1, -1, -1, 137, -1, 138, -1, - -1, 139, -1, -1, 140, 141, -1, -1, - -1, -1, 142, 143, -1, -1, -1, 144, - 145, -1, -1, -1, -1, 146, 147, 148, - -1, -1, 149, -1, -1, 150, 151, 152, - 153, -1, -1, 154, 155, -1, -1, -1, - -1, 156, 157, 158, 159, 160, 161, -1, - -1, -1, -1, -1, 162, -1, -1, -1, - -1, -1, -1, 163, 164, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 165, 166, 167, -1, -1, -1, - 168, 169, -1, -1, 170, -1, -1, 171, - -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 172, -1, -1, -1, - 173, 174, 175, -1, -1, -1, -1, 176, - 177, -1, -1, -1, -1, 178, -1, -1, - -1, 179, -1, 180, -1, -1, -1, -1, - -1, 181, -1, -1, -1, -1, 182, -1, - -1, 183, -1, -1, -1, -620, -21, -2, - -1, -1, -1, -1, -1, -1, -1, -1, - 186, -1, -1, 187, -1, -1, -1, 188, - -1, 189, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 190, -1, 191, - -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 192, - -1, -1, -1, -1, 193, -1, -1, 194, - -1, -1, -1, -1, -1, -1, -1, -1, - -1, 195, -1, -1, -1, 196, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, - 197, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 198, -1, -1, -1, -1, - -1, -1, 199, -1, 200, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, - -1, 201, -1, -1, -1, -1, -1, -1, - -1, -1, 202, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 203, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 204 + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, 0, -1, 1, -1, -1, -1, -1, + -1, -1, -1, 2, -1, 3, 4, -1, + 5, -1, -1, 6, -1, -1, -1, -1, + -1, -1, -1, 7, -1, -1, 8, -1, + -1, -1, -1, 9, 10, -1, 11, 12, + 13, 14, 15, -1, -1, -1, -1, -1, + -1, -1, 16, -1, -1, 17, 18, -1, + 19, 20, -1, -1, -1, -1, -1, -1, + -1, 21, 22, 23, -1, -1, -474, -354, + -2, -1, -1, -1, -1, 26, -1, -1, + -1, 27, 28, -1, 29, -1, 30, -1, + 31, -1, -1, 32, 33, -1, 34, -1, + 35, 36, -1, -1, 37, 38, 39, 40, + -1, 41, -1, 42, -1, 43, -1, -1, + 44, -1, 45, 46, 47, -1, -1, -1, + 48, -1, -1, 49, 50, 51, -530, -326, + -2, 54, -1, -1, -1, -1, -1, -1, + -1, 55, 56, -1, 57, -1, -1, -1, + 58, 59, 60, -1, -1, 61, -1, -1, + -1, -1, 62, -1, -1, 63, -1, 64, + -1, 65, -1, -1, 66, 67, -1, 68, + -1, -1, 69, -1, -1, 70, 71, -1, + -1, -1, 72, -1, -1, 73, -1, -1, + -1, 74, -1, 75, 76, -1, -1, -1, + 77, -1, -1, 78, -1, 79, -1, -1, + -1, -1, 80, 81, 82, 83, -1, 84, + 85, -1, -1, -1, -649, -1, 88, 89, + 90, 91, -1, 92, 93, -637, 96, 97, + 98, 99, 100, 101, -1, 102, -1, 103, + -1, 104, -284, -2, 105, 106, 107, -1, + 108, -1, 109, -1, 110, 111, -292, -2, + 112, 113, 114, -1, -1, -1, -1, 115, + -1, 116, 117, -1, 118, -1, 119, -1, + 120, -1, -1, 121, -1, -1, -1, -1, + -1, -1, -1, 122, -1, -1, -1, -1, + 123, -1, -1, 124, -1, 125, -1, 126, + 127, -1, -1, -1, 128, -1, 129, -1, + -1, -1, -1, -1, 130, 131, -1, -1, + -1, -1, 132, -1, -1, -1, 133, -1, + -1, 134, -1, -1, -1, -1, -1, -1, + 135, -1, 136, 137, 138, 139, 140, -1, + -1, -1, 141, -1, -1, 142, -1, -1, + -1, -1, 143, -1, -1, 144, -1, 145, + -1, 146, 147, 148, -1, -1, -1, -1, + -1, -1, 149, 150, -1, -1, -1, 151, + -1, -1, -1, 152, -1, 153, -1, -775, + -1, 156, -1, 157, -224, -2, 158, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 159, -1, -1, + -1, 160, 161, 162, -1, 163, -1, 164, + -1, -1, -1, -1, -1, -1, 165, 166, + 167, -1, 168, 169, 170, 171, 172, 173, + -1, 174, 175, 176, -1, -1, 177, -1, + 178, -1, 179, 180, 181, -1, 182, 183, + -1, -1, -1, -1, -1, 184, -1, 185, + -1, 186, -1, 187, 188, 189, 190, -1, + 191, -1, -1, 192, 193, -1, 194, 195, + -1, -1, 196, -1, 197, 198, -1, -1, + -1, -1, 199, 200, -1, 201, -1, 202, + -876, -175, -2, 205, -1, 206, -1, 207, + 208, -1, -1, -1, 209, -1, 210, -1, + 211, 212, 213, -1, 214, 215, 216, 217, + 218, -1, -1, -1, -1, -1, -1, 219, + -1, 220, -1, 221, -1, 222, 223, 224, + -1, -1, -1, 225, 226, 227, -1, -1, + -1, -1, -1, -1, -1, -1, 228, 229, + -1, -1, 230, 231, -1, 232, -1, -1, + -1, -1, 233, 234, 235, 236, -1, -1, + -1, 237, -1, 238, 239, -1, 240, 241, + 242, -1, -1, 243, -1, -1, -1, -1, + -1, 244, -1, 245, -1, 246, 247, 248, + -1, -1, -1, -1, -1, 249, 250, 251, + 252, -1, -1, 253, 254, 255, -1, 256, + 257, -1, -1, 258, -1, 259, -1, -1, + 260, -1, 261, -1, -1, -1, -1, 262, + 263, -1, -1, -1, -1, -1, -1, -1, + 264, 265, -1, -1, -1, -1, 266, -1, + -1, -1, -1, -1, -1, 267, 268, -1, + -1, -1, -1, -1, -1, -1, -1, 269, + -1, -1, -1, 270, 271, 272, -1, -1, + 273, -1, -1, -1, -1, -1, -1, -1, + -1, 274, -1, -1, -1, -1, -1, 275, + -1, -1, -1, 276, -1, -1, 277, -1, + 278, -1, -1, -1, -1, 279, 280, -1, + 281, -1, -1, -1, -1, -1, 282, 283, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, 284, -1, -1, 285, 286, 287, -1, + -1, -1, -1, -1, -1, -1, 288, -1, + -1, 289, 290, -1, -1, 291, -1, -1, + -1, -1, -1, -1, -1, -1, 292, 293, + 294, -1, 295, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 296, -1, 297, -1, + -1, -1, -1, -1, 298, 299, 300, -1, + 301, 302, -1, -1, 303, -1, 304, -1, + -1, 305, -1, -1, -1, -1, -1, -1, + 306, -1, 307, -1, -1, -1, -1, 308, + 309, -1, -1, -1, 310, -1, -1, 311, + 312, -1, 313, -1, -1, -1, -1, -1, + -1, -1, -1, 314, 315, 316, 317, -1, + -1, 318, -1, -1, 319, -1, -1, -1, + -1, -1, 320, -1, -1, -1, -1, -1, + -1, 321, 322, -1, -1, 323, 324, -1, + -1, 325, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 326, + -1, -1, -1, -1, -1, 327, -1, -1, + 328, 329, -1, 330, -1, -1, -1, -1, + -1, -1, -1, 331, -1, 332, -1, -1, + 333, 334, -1, 335, -1, -1, -1, -1, + -1, 336, -1, -1, -1, -1, 337, -1, + -1, -1, -1, -1, -1, 338, -1, 339, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 340, -1, -1, -1, 341, + -1, -1, 342, -1, -1, 343, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 344, + -1, -1, -1, -1, -1, -1, -1, -1, + 345, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 346, -1, + 347, 348, -1, 349, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 350, -1, -1, + -1, 351, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 352, -1, -1, 353, -1, + 354, -1, -1, -1, 355, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 356, -1, 357, -1, 358, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, 359, -1, -1, 360, -1, -1, -1, + -1, -1, -1, -1, 361, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 362, -1, -1, + -1, 363, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 364, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, 365, -1, -1, 366, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 367, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 368, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 369, 370, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, 371, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 372, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 373, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 374, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 375, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 376, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 377 }; if (len <= MAX_WORD_LENGTH && len >= MIN_WORD_LENGTH)