Index: clangd/StdSymbolMap.imp =================================================================== --- /dev/null +++ clangd/StdSymbolMap.imp @@ -0,0 +1,1301 @@ +//===-- StdSymbolMap.imp - ---------------------------------------*- C++ -*-===// +// +// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. +// See https://llvm.org/LICENSE.txt for license information. +// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception +// +//===----------------------------------------------------------------------===// +// Used to build a map (qualified names => include headers) for all symbols from +// C++ Standard Library (up to C++17). +// +// Automatically generated file, do not edit. +//===----------------------------------------------------------------------===// + +{ "std::_Exit", { "" } }, // C++11 +{ "std::accumulate", { "" } }, +{ "std::add_const", { "" } }, // C++11 +{ "std::add_const_t", { "" } }, // C++14 +{ "std::add_cv", { "" } }, // C++11 +{ "std::add_cv_t", { "" } }, // C++14 +{ "std::add_pointer", { "" } }, // C++11 +{ "std::add_pointer_t", { "" } }, // C++14 +{ "std::add_lvalue_reference", { "" } }, // C++11 +{ "std::add_lvalue_reference_t", { "" } }, // C++14 +{ "std::addressof", { "" } }, // C++11 +{ "std::add_rvalue_reference", { "" } }, // C++11 +{ "std::add_rvalue_reference_t", { "" } }, // C++14 +{ "std::add_volatile", { "" } }, // C++11 +{ "std::add_volatile_t", { "" } }, // C++14 +{ "std::adjacent_difference", { "" } }, +{ "std::adjacent_find", { "" } }, +{ "std::adopt_lock", { "" } }, // C++11 +{ "std::adopt_lock_t", { "" } }, // C++11 +{ "std::advance", { "" } }, +{ "std::align", { "" } }, // C++11 +{ "std::aligned_alloc", { "" } }, // C++17 +{ "std::aligned_storage", { "" } }, // C++11 +{ "std::aligned_storage_t", { "" } }, // C++14 +{ "std::aligned_union", { "" } }, // C++11 +{ "std::aligned_union_t", { "" } }, // C++14 +{ "std::alignment_of", { "" } }, // C++11 +{ "std::alignment_of_v", { "" } }, // C++17 +{ "std::align_val_t", { "" } }, // C++17 +{ "std::all_of", { "" } }, // C++11 +{ "std::allocate_shared", { "" } }, // C++11 +{ "std::allocator", { "" } }, +{ "std::allocator_arg", { "" } }, // C++11 +{ "std::allocator_arg_t", { "" } }, // C++11 +{ "std::allocator_traits", { "" } }, // C++11 +{ "std::any", { "" } }, // C++17 +{ "std::any_of", { "" } }, // C++11 +{ "std::apply", { "" } }, // C++17 +{ "std::arg", { "" } }, +{ "std::array", { "" } }, // C++11 +{ "std::as_const", { "" } }, // C++17 +{ "std::asctime", { "" } }, +{ "std::async", { "" } }, // C++11 +{ "std::at_quick_exit", { "" } }, // C++11 +{ "std::atexit", { "" } }, +{ "std::atof", { "" } }, +{ "std::atoi", { "" } }, +{ "std::atol", { "" } }, +{ "std::atoll", { "" } }, // C++11 +{ "std::atomic", { "" } }, // C++11 +{ "std::atomic_bool", { "" } }, // C++11 +{ "std::atomic_char", { "" } }, // C++11 +{ "std::atomic_char16_t", { "" } }, // C++11 +{ "std::atomic_char32_t", { "" } }, // C++11 +{ "std::atomic_int", { "" } }, // C++11 +{ "std::atomic_int8_t", { "" } }, // C++11 +{ "std::atomic_int16_t", { "" } }, // C++11 +{ "std::atomic_int32_t", { "" } }, // C++11 +{ "std::atomic_int64_t", { "" } }, // C++11 +{ "std::atomic_int_fast8_t", { "" } }, // C++11 +{ "std::atomic_int_fast16_t", { "" } }, // C++11 +{ "std::atomic_int_fast32_t", { "" } }, // C++11 +{ "std::atomic_int_fast64_t", { "" } }, // C++11 +{ "std::atomic_intmax_t", { "" } }, // C++11 +{ "std::atomic_intptr_t", { "" } }, // C++11 +{ "std::atomic_llong", { "" } }, // C++11 +{ "std::atomic_long", { "" } }, // C++11 +{ "std::atomic_ptrdiff_t", { "" } }, // C++11 +{ "std::atomic_schar", { "" } }, // C++11 +{ "std::atomic_short", { "" } }, // C++11 +{ "std::atomic_size_t", { "" } }, // C++11 +{ "std::atomic_uchar", { "" } }, // C++11 +{ "std::atomic_uint", { "" } }, // C++11 +{ "std::atomic_uint8_t", { "" } }, // C++11 +{ "std::atomic_uint16_t", { "" } }, // C++11 +{ "std::atomic_uint32_t", { "" } }, // C++11 +{ "std::atomic_uint64_t", { "" } }, // C++11 +{ "std::atomic_uint_fast8_t", { "" } }, // C++11 +{ "std::atomic_uint_fast16_t", { "" } }, // C++11 +{ "std::atomic_uint_fast32_t", { "" } }, // C++11 +{ "std::atomic_uint_fast64_t", { "" } }, // C++11 +{ "std::atomic_uint_least8_t", { "" } }, // C++11 +{ "std::atomic_uint_least16_t", { "" } }, // C++11 +{ "std::atomic_uint_least32_t", { "" } }, // C++11 +{ "std::atomic_uint_least64_t", { "" } }, // C++11 +{ "std::atomic_uintmax_t", { "" } }, // C++11 +{ "std::atomic_uintptr_t", { "" } }, // C++11 +{ "std::atomic_ullong", { "" } }, // C++11 +{ "std::atomic_ulong", { "" } }, // C++11 +{ "std::atomic_ushort", { "" } }, // C++11 +{ "std::atomic_wchar_t", { "" } }, // C++11 +{ "std::atomic_compare_exchange_strong", { "" } }, // C++11 +{ "std::atomic_compare_exchange_strong_explicit", { "" } }, // C++11 +{ "std::atomic_compare_exchange_weak", { "" } }, // C++11 +{ "std::atomic_compare_exchange_weak_explicit", { "" } }, // C++11 +{ "std::atomic_exchange", { "" } }, // C++11 +{ "std::atomic_exchange_explicit", { "" } }, // C++11 +{ "std::atomic_fetch_add", { "" } }, // C++11 +{ "std::atomic_fetch_add_explicit", { "" } }, // C++11 +{ "std::atomic_fetch_and", { "" } }, // C++11 +{ "std::atomic_fetch_and_explicit", { "" } }, // C++11 +{ "std::atomic_fetch_or", { "" } }, // C++11 +{ "std::atomic_fetch_or_explicit", { "" } }, // C++11 +{ "std::atomic_fetch_sub", { "" } }, // C++11 +{ "std::atomic_fetch_sub_explicit", { "" } }, // C++11 +{ "std::atomic_fetch_xor", { "" } }, // C++11 +{ "std::atomic_fetch_xor_explicit", { "" } }, // C++11 +{ "std::atomic_flag", { "" } }, // C++11 +{ "std::atomic_flag_clear", { "" } }, // C++11 +{ "std::atomic_flag_clear_explicit", { "" } }, // C++11 +{ "std::atomic_flag_test_and_set", { "" } }, // C++11 +{ "std::atomic_flag_test_and_set_explicit", { "" } }, // C++11 +{ "std::atomic_init", { "" } }, // C++11 +{ "std::atomic_is_lockfree", { "" } }, // C++11 +{ "std::atomic_load", { "" } }, // C++11 +{ "std::atomic_load_explicit", { "" } }, // C++11 +{ "std::atomic_signal_fence", { "" } }, // C++11 +{ "std::atomic_store", { "" } }, // C++11 +{ "std::atomic_store_explicit", { "" } }, // C++11 +{ "std::atomic_thread_fence", { "" } }, // C++11 +{ "std::atto", { "" } }, // C++11 +{ "std::auto_ptr", { "" } }, +{ "std::back_inserter", { "" } }, +{ "std::back_insert_iterator", { "" } }, +{ "std::bad_alloc", { "" } }, +{ "std::bad_any_cast", { "" } }, // C++17 +{ "std::bad_array_new_length", { "" } }, // C++11 +{ "std::bad_cast", { "" } }, +{ "std::bad_exception", { "" } }, +{ "std::bad_function_call", { "" } }, // C++11 +{ "std::bad_optional_access", { "" } }, // C++17 +{ "std::bad_typeid", { "" } }, +{ "std::bad_variant_access", { "" } }, // C++17 +{ "std::bad_weak_ptr", { "" } }, // C++11 +{ "std::basic_fstream", { "" } }, +{ "std::basic_ifstream", { "" } }, +{ "std::basic_istream", { "" } }, +{ "std::basic_ios", { "" } }, +{ "std::basic_iostream", { "" } }, +{ "std::basic_istringstream", { "" } }, +{ "std::basic_ofstream", { "" } }, +{ "std::basic_ostream", { "" } }, +{ "std::basic_ostringstream", { "" } }, +{ "std::basic_regex", { "" } }, // C++11 +{ "std::basic_streambuf", { "" } }, +{ "std::basic_string", { "" } }, +{ "std::basic_stringbuf", { "" } }, +{ "std::basic_stringstream", { "" } }, +{ "std::basic_string_view", { "" } }, // C++17 +{ "std::begin", { "" } }, // C++11 +{ "std::bernoulli_distribution", { "" } }, // C++11 +{ "std::bidirectional_iterator_tag", { "" } }, +{ "std::binary_search", { "" } }, +{ "std::bind", { "" } }, // C++11 +{ "std::binomial_distribution", { "" } }, // C++11 +{ "std::bit_and", { "" } }, +{ "std::bit_or", { "" } }, +{ "std::bit_not", { "" } }, // C++14 +{ "std::bit_xor", { "" } }, +{ "std::bitset", { "" } }, +{ "std::bool_constant", { "" } }, // C++17 +{ "std::boolalpha", { "" } }, +{ "std::boyer_moore_horspool_searcher", { "" } }, // C++17 +{ "std::boyer_moore_searcher", { "" } }, // C++17 +{ "std::bsearch", { "" } }, +{ "std::btowc", { "" } }, +{ "std::byte", { "" } }, // C++17 +{ "std::c16rtomb", { "" } }, // C++11 +{ "std::c32rtomb", { "" } }, // C++11 +{ "std::call_once", { "" } }, // C++11 +{ "std::calloc", { "" } }, +{ "std::cauchy_distribution", { "" } }, // C++11 +{ "std::cbegin", { "" } }, // C++14 +{ "std::cbrt", { "" } }, // C++11 +{ "std::ceil", { "" } }, +{ "std::cend", { "" } }, // C++14 +{ "std::centi", { "" } }, // C++11 +{ "std::cerr", { "" } }, +{ "std::char_traits", { "" } }, +{ "std::chars_format", { "" } }, // C++17 +{ "std::chi_squared_distribution", { "" } }, // C++11 +{ "std::cin", { "" } }, +{ "std::clamp", { "" } }, // C++17 +{ "std::clearerr", { "" } }, +{ "std::clock", { "" } }, +{ "std::clock_t", { "" } }, +{ "std::clog", { "" } }, +{ "std::cmatch", { "" } }, // C++11 +{ "std::codecvt", { "" } }, +{ "std::codecvt_base", { "" } }, +{ "std::codecvt_byname", { "" } }, +{ "std::codecvt_mode", { "" } }, // C++11 +{ "std::codecvt_utf16", { "" } }, // C++11 +{ "std::codecvt_utf8", { "" } }, // C++11 +{ "std::codecvt_utf8_utf16", { "" } }, // C++11 +{ "std::collate", { "" } }, +{ "std::collate_byname", { "" } }, +{ "std::common_type", { "" } }, // C++11 +{ "std::common_type_t", { "" } }, // C++14 +{ "std::complex", { "" } }, +{ "std::conditional", { "" } }, // C++11 +{ "std::conditional_t", { "" } }, // C++14 +{ "std::condition_variable", { "" } }, // C++11 +{ "std::condition_variable_any", { "" } }, // C++11 +{ "std::conjunction", { "" } }, // C++17 +{ "std::conjunction_v", { "" } }, // C++17 +{ "std::conj", { "" } }, +{ "std::copy", { "" } }, +{ "std::copy_backward", { "" } }, +{ "std::copy_if", { "" } }, // C++11 +{ "std::copy_n", { "" } }, // C++11 +{ "std::copysign", { "" } }, // C++11 +{ "std::const_pointer_cast", { "" } }, // C++11 +{ "std::count", { "" } }, +{ "std::count_if", { "" } }, +{ "std::cout", { "" } }, +{ "std::crbegin", { "" } }, // C++14 +{ "std::cref", { "" } }, // C++11 +{ "std::cregex_iterator", { "" } }, // C++11 +{ "std::cregex_token_iterator", { "" } }, // C++11 +{ "std::crend", { "" } }, // C++14 +{ "std::csub_match", { "" } }, // C++11 +{ "std::ctime", { "" } }, +{ "std::ctype", { "" } }, +{ "std::ctype_base", { "" } }, +{ "std::ctype_byname", { "" } }, +{ "std::current_exception", { "" } }, // C++11 +{ "std::cv_status", { "" } }, // C++11 +{ "std::data", { "" } }, // C++17 +{ "std::dec", { "" } }, +{ "std::deca", { "" } }, // C++11 +{ "std::decay", { "" } }, // C++11 +{ "std::decay_t", { "" } }, // C++14 +{ "std::deci", { "" } }, // C++11 +{ "std::declare_no_pointers", { "" } }, // C++11 +{ "std::declare_reachable", { "" } }, // C++11 +{ "std::declval", { "" } }, // C++11 +{ "std::default_delete", { "" } }, // C++11 +{ "std::default_random_engine", { "" } }, // C++11 +{ "std::default_searcher", { "" } }, // C++17 +{ "std::defaultfloat", { "" } }, // C++11 +{ "std::defer_lock", { "" } }, // C++11 +{ "std::defer_lock_t", { "" } }, // C++11 +{ "std::denorm_absent", { "" } }, +{ "std::denorm_indeterminate", { "" } }, +{ "std::denorm_present", { "" } }, +{ "std::deque", { "" } }, +{ "std::destroy", { "" } }, // C++17 +{ "std::destroy_at", { "" } }, // C++17 +{ "std::destroy_n", { "" } }, // C++17 +{ "std::difftime", { "" } }, +{ "std::discrete_distribution", { "" } }, // C++11 +{ "std::discard_block_engine", { "" } }, // C++11 +{ "std::disjunction", { "" } }, // C++17 +{ "std::disjunction_v", { "" } }, // C++17 +{ "std::distance", { "" } }, +{ "std::div", { "" } }, +{ "std::div_t", { "" } }, +{ "std::divides", { "" } }, +{ "std::domain_error", { "" } }, +{ "std::double_t", { "" } }, // C++11 +{ "std::dynamic_pointer_cast", { "" } }, // C++11 +{ "std::empty", { "" } }, // C++17 +{ "std::enable_if", { "" } }, // C++11 +{ "std::enable_if_t", { "" } }, // C++14 +{ "std::enable_shared_from_this", { "" } }, // C++11 +{ "std::end", { "" } }, // C++11 +{ "std::endl", { "" } }, +{ "std::ends", { "" } }, +{ "std::equal", { "" } }, +{ "std::equal_range", { "" } }, +{ "std::equal_to", { "" } }, +{ "std::erf", { "" } }, // C++11 +{ "std::erfc", { "" } }, // C++11 +{ "std::errc", { "" } }, // C++11 +{ "std::error_category", { "" } }, // C++11 +{ "std::error_code", { "" } }, // C++11 +{ "std::error_condition", { "" } }, // C++11 +{ "std::exa", { "" } }, // C++11 +{ "std::exception", { "" } }, +{ "std::exception_ptr", { "" } }, // C++11 +{ "std::exchange", { "" } }, // C++14 +{ "std::exclusive_scan", { "" } }, // C++17 +{ "std::exit", { "" } }, +{ "std::exp2", { "" } }, // C++11 +{ "std::expm1", { "" } }, // C++11 +{ "std::exponential_distribution", { "" } }, // C++11 +{ "std::extent", { "" } }, // C++11 +{ "std::extent_v", { "" } }, // C++17 +{ "std::extreme_value_distribution", { "" } }, // C++11 +{ "std::fclose", { "" } }, +{ "std::false_type", { "" } }, // C++11 +{ "std::fdim", { "" } }, // C++11 +{ "std::feclearexcept", { "" } }, // C++11 +{ "std::fegetenv", { "" } }, // C++11 +{ "std::fegetexceptflag", { "" } }, // C++11 +{ "std::fegetround", { "" } }, // C++11 +{ "std::feholdexcept", { "" } }, // C++11 +{ "std::fenv_t", { "" } }, // C++11 +{ "std::femto", { "" } }, // C++11 +{ "std::feof", { "" } }, +{ "std::feraiseexcept", { "" } }, // C++11 +{ "std::ferror", { "" } }, +{ "std::fesetenv", { "" } }, // C++11 +{ "std::fesetexceptflag", { "" } }, // C++11 +{ "std::fesetround", { "" } }, // C++11 +{ "std::fetestexcept", { "" } }, // C++11 +{ "std::feupdateenv", { "" } }, // C++11 +{ "std::fexcept_t", { "" } }, // C++11 +{ "std::fflush", { "" } }, +{ "std::fgetc", { "" } }, +{ "std::fgetpos", { "" } }, +{ "std::fgets", { "" } }, +{ "std::fgetwc", { "" } }, +{ "std::fgetws", { "" } }, +{ "std::FILE", { "" } }, +{ "std::fill", { "" } }, +{ "std::fill_n", { "" } }, +{ "std::find", { "" } }, +{ "std::find_end", { "" } }, +{ "std::find_first_of", { "" } }, +{ "std::find_if", { "" } }, +{ "std::find_if_not", { "" } }, // C++17 +{ "std::fisher_f_distribution", { "" } }, // C++11 +{ "std::fixed", { "" } }, +{ "std::float_denorm_style", { "" } }, +{ "std::float_round_style", { "" } }, +{ "std::floor", { "" } }, +{ "std::flush", { "" } }, +{ "std::fma", { "" } }, // C++11 +{ "std::fmax", { "" } }, // C++11 +{ "std::fmin", { "" } }, // C++11 +{ "std::fmod", { "" } }, +{ "std::float_t", { "" } }, // C++11 +{ "std::fopen", { "" } }, +{ "std::for_each", { "" } }, +{ "std::for_each_n", { "" } }, // C++17 +{ "std::forward", { "" } }, // C++11 +{ "std::forward_as_tuple", { "" } }, // C++11 +{ "std::forward_iterator_tag", { "" } }, +{ "std::forward_list", { "" } }, // C++11 +{ "std::fpclassify", { "" } }, // C++11 +{ "std::fpos", { "" } }, +{ "std::fpos_t", { "" } }, +{ "std::fprintf", { "" } }, +{ "std::fputc", { "" } }, +{ "std::fputs", { "" } }, +{ "std::fputwc", { "" } }, +{ "std::fputws", { "" } }, +{ "std::fread", { "" } }, +{ "std::free", { "" } }, +{ "std::freopen", { "" } }, +{ "std::frexp", { "" } }, +{ "std::front_inserter", { "" } }, +{ "std::front_insert_iterator", { "" } }, +{ "std::from_chars", { "" } }, // C++17 +{ "std::fscanf", { "" } }, +{ "std::fseek", { "" } }, +{ "std::fsetpos", { "" } }, +{ "std::fstream", { "" } }, +{ "std::ftell", { "" } }, +{ "std::function", { "" } }, // C++11 +{ "std::future", { "" } }, // C++11 +{ "std::future_category", { "" } }, // C++11 +{ "std::future_errc", { "" } }, // C++11 +{ "std::future_error", { "" } }, // C++11 +{ "std::future_status", { "" } }, // C++11 +{ "std::fwide", { "" } }, +{ "std::fwprintf", { "" } }, +{ "std::fwrite", { "" } }, +{ "std::fwscanf", { "" } }, +{ "std::gamma_distribution", { "" } }, // C++11 +{ "std::gcd", { "" } }, // C++17 +{ "std::generate", { "" } }, +{ "std::generate_canonical", { "" } }, // C++11 +{ "std::generate_n", { "" } }, +{ "std::generic_category", { "" } }, // C++11 +{ "std::geometric_distribution", { "" } }, // C++11 +{ "std::get_if", { "" } }, // C++17 +{ "std::get_money", { "" } }, // C++11 +{ "std::get_new_handler", { "" } }, // C++11 +{ "std::get_pointer_safety", { "" } }, // C++11 +{ "std::get_terminate", { "" } }, // C++11 +{ "std::get_time", { "" } }, // C++11 +{ "std::getc", { "" } }, +{ "std::getchar", { "" } }, +{ "std::getenv", { "" } }, +{ "std::gets", { "" } }, +{ "std::getwc", { "" } }, +{ "std::getwchar", { "" } }, +{ "std::giga", { "" } }, // C++11 +{ "std::gmtime", { "" } }, +{ "std::greater", { "" } }, +{ "std::greater_equal", { "" } }, +{ "std::gslice", { "" } }, +{ "std::gslice_array", { "" } }, +{ "std::hardware_constructive_interference_size", { "" } }, // C++11 +{ "std::hardware_destructive_interference_size", { "" } }, // C++11 +{ "std::has_facet", { "" } }, +{ "std::hash", { "" } }, // C++11 +{ "std::has_unique_object_representations", { "" } }, // C++17 +{ "std::has_unique_object_representations_v", { "" } }, // C++17 +{ "std::has_virtual_destructor", { "" } }, // C++11 +{ "std::has_virtual_destructor_v", { "" } }, // C++17 +{ "std::hecto", { "" } }, // C++11 +{ "std::hex", { "" } }, +{ "std::hexfloat", { "" } }, // C++11 +{ "std::holds_alternative", { "" } }, // C++17 +{ "std::hypot", { "" } }, // C++11 +{ "std::ifstream", { "" } }, +{ "std::ignore", { "" } }, // C++11 +{ "std::ilogb", { "" } }, // C++11 +{ "std::imag", { "" } }, +{ "std::imaxdiv", { "" } }, // C++11 +{ "std::imaxdiv_t", { "" } }, // C++11 +{ "std::includes", { "" } }, +{ "std::inclusive_scan", { "" } }, // C++17 +{ "std::independent_bits_engine", { "" } }, // C++11 +{ "std::indirect_array", { "" } }, +{ "std::initializer_list", { "" } }, // C++11 +{ "std::inner_product", { "" } }, +{ "std::in_place", { "" } }, // C++17 +{ "std::in_place_index", { "" } }, // C++17 +{ "std::in_place_index_t", { "" } }, // C++17 +{ "std::in_place_t", { "" } }, // C++17 +{ "std::inplace_merge", { "" } }, +{ "std::in_place_type", { "" } }, // C++17 +{ "std::in_place_type_t", { "" } }, // C++17 +{ "std::input_iterator_tag", { "" } }, +{ "std::inserter", { "" } }, +{ "std::insert_iterator", { "" } }, +{ "std::int_fast16_t", { "" } }, // C++11 +{ "std::int_fast32_t", { "" } }, // C++11 +{ "std::int_fast64_t", { "" } }, // C++11 +{ "std::int_fast8_t", { "" } }, // C++11 +{ "std::int_least16_t", { "" } }, // C++11 +{ "std::int_least32_t", { "" } }, // C++11 +{ "std::int_least64_t", { "" } }, // C++11 +{ "std::int_least8_t", { "" } }, // C++11 +{ "std::int16_t", { "" } }, // C++11 +{ "std::int32_t", { "" } }, // C++11 +{ "std::int64_t", { "" } }, // C++11 +{ "std::int8_t", { "" } }, // C++11 +{ "std::integer_sequence", { "" } }, // C++14 +{ "std::integral_constant", { "" } }, // C++11 +{ "std::internal", { "" } }, +{ "std::intmax_t", { "" } }, // C++11 +{ "std::intptr_t", { "" } }, // C++11 +{ "std::invalid_argument", { "" } }, +{ "std::invoke", { "" } }, // C++17 +{ "std::invoke_result", { "" } }, // C++17 +{ "std::invoke_result_t", { "" } }, // C++17 +{ "std::ios", { "" } }, +{ "std::io_errc", { "" } }, // C++11 +{ "std::ios_base", { "" } }, +{ "std::iostream", { "" } }, +{ "std::iostream_category", { "" } }, // C++11 +{ "std::iota", { "" } }, // C++11 +{ "std::is_abstract", { "" } }, // C++11 +{ "std::is_abstract_v", { "" } }, // C++17 +{ "std::is_aggregate", { "" } }, // C++17 +{ "std::is_aggregate_v", { "" } }, // C++17 +{ "std::is_arithmetic", { "" } }, // C++11 +{ "std::is_arithmetic_v", { "" } }, // C++17 +{ "std::is_array", { "" } }, // C++11 +{ "std::is_array_v", { "" } }, // C++17 +{ "std::is_assignable", { "" } }, // C++11 +{ "std::is_assignable_v", { "" } }, // C++17 +{ "std::is_base_of", { "" } }, // C++11 +{ "std::is_base_of_v", { "" } }, // C++17 +{ "std::is_bind_expression", { "" } }, // C++11 +{ "std::is_bind_expression_v", { "" } }, // C++17 +{ "std::is_class", { "" } }, // C++11 +{ "std::is_class_v", { "" } }, // C++17 +{ "std::is_compound", { "" } }, // C++11 +{ "std::is_compound_v", { "" } }, // C++17 +{ "std::is_const", { "" } }, // C++11 +{ "std::is_constructible", { "" } }, // C++11 +{ "std::is_constructible_v", { "" } }, // C++17 +{ "std::is_const_v", { "" } }, // C++17 +{ "std::is_convertible", { "" } }, // C++11 +{ "std::is_convertible_v", { "" } }, // C++17 +{ "std::is_copy_assignable", { "" } }, // C++11 +{ "std::is_copy_assignable_v", { "" } }, // C++17 +{ "std::is_copy_constructible", { "" } }, // C++11 +{ "std::is_copy_constructible_v", { "" } }, // C++17 +{ "std::is_default_constructible", { "" } }, // C++11 +{ "std::is_default_constructible_v", { "" } }, // C++17 +{ "std::is_destructible", { "" } }, // C++11 +{ "std::is_destructible_v", { "" } }, // C++17 +{ "std::is_empty", { "" } }, // C++11 +{ "std::is_empty_v", { "" } }, // C++17 +{ "std::is_enum", { "" } }, // C++11 +{ "std::is_enum_v", { "" } }, // C++17 +{ "std::is_error_code_enum", { "" } }, // C++11 +{ "std::is_error_condition_enum", { "" } }, // C++11 +{ "std::is_error_condition_enum_v", { "" } }, // C++17 +{ "std::is_execution_policy", { "" } }, // C++17 +{ "std::is_execution_policy_v", { "" } }, // C++17 +{ "std::is_final", { "" } }, // C++14 +{ "std::is_final_v", { "" } }, // C++17 +{ "std::is_floating_point", { "" } }, // C++11 +{ "std::is_floating_point_v", { "" } }, // C++17 +{ "std::is_function", { "" } }, // C++11 +{ "std::is_function_v", { "" } }, // C++17 +{ "std::is_fundamental", { "" } }, // C++11 +{ "std::is_fundamental_v", { "" } }, // C++17 +{ "std::is_heap", { "" } }, // C++11 +{ "std::is_heap_until", { "" } }, // C++11 +{ "std::is_integral", { "" } }, // C++11 +{ "std::is_integral_v", { "" } }, // C++17 +{ "std::is_invocable", { "" } }, // C++17 +{ "std::is_invocable_r", { "" } }, // C++17 +{ "std::is_invocable_r_v", { "" } }, // C++17 +{ "std::is_invocable_v", { "" } }, // C++17 +{ "std::is_lvalue_reference", { "" } }, // C++11 +{ "std::is_lvalue_reference_v", { "" } }, // C++17 +{ "std::is_member_function_pointer", { "" } }, // C++11 +{ "std::is_member_function_pointer_v", { "" } }, // C++17 +{ "std::is_member_object_pointer", { "" } }, // C++11 +{ "std::is_member_object_pointer_v", { "" } }, // C++17 +{ "std::is_member_pointer", { "" } }, // C++11 +{ "std::is_member_pointer_v", { "" } }, // C++17 +{ "std::is_move_assignable", { "" } }, // C++11 +{ "std::is_move_assignable_v", { "" } }, // C++17 +{ "std::is_move_constructible", { "" } }, // C++11 +{ "std::is_move_constructible_v", { "" } }, // C++17 +{ "std::is_nothrow_assignable", { "" } }, // C++11 +{ "std::is_nothrow_assignable_v", { "" } }, // C++17 +{ "std::is_nothrow_constructible", { "" } }, // C++11 +{ "std::is_nothrow_constructible_v", { "" } }, // C++17 +{ "std::is_nothrow_copy_assignable", { "" } }, // C++11 +{ "std::is_nothrow_copy_assignable_v", { "" } }, // C++17 +{ "std::is_nothrow_copy_constructible", { "" } }, // C++11 +{ "std::is_nothrow_copy_constructible_v", { "" } }, // C++17 +{ "std::is_nothrow_default_constructible", { "" } }, // C++11 +{ "std::is_nothrow_default_constructible_v", { "" } }, // C++17 +{ "std::is_nothrow_destructible", { "" } }, // C++11 +{ "std::is_nothrow_destructible_v", { "" } }, // C++17 +{ "std::is_nothrow_invocable", { "" } }, // C++17 +{ "std::is_nothrow_invocable_r", { "" } }, // C++17 +{ "std::is_nothrow_invocable_v", { "" } }, // C++17 +{ "std::is_nothrow_invocable_r_v", { "" } }, // C++17 +{ "std::is_nothrow_move_assignable", { "" } }, // C++11 +{ "std::is_nothrow_move_assignable_v", { "" } }, // C++17 +{ "std::is_nothrow_move_constructible", { "" } }, // C++11 +{ "std::is_nothrow_move_constructible_v", { "" } }, // C++17 +{ "std::is_nothrow_swappable", { "" } }, // C++17 +{ "std::is_nothrow_swappable_v", { "" } }, // C++17 +{ "std::is_nothrow_swappable_with", { "" } }, // C++17 +{ "std::is_nothrow_swappable_with_v", { "" } }, // C++17 +{ "std::is_null_pointer", { "" } }, // C++11 +{ "std::is_null_pointer_v", { "" } }, // C++17 +{ "std::is_object", { "" } }, // C++11 +{ "std::is_object_v", { "" } }, // C++17 +{ "std::is_partitioned", { "" } }, // C++11 +{ "std::is_permutation", { "" } }, // C++11 +{ "std::is_placeholder", { "" } }, // C++11 +{ "std::is_placeholder_v", { "" } }, // C++17 +{ "std::is_pod", { "" } }, // C++11 +{ "std::is_pod_v", { "" } }, // C++17 +{ "std::is_pointer", { "" } }, // C++11 +{ "std::is_pointer_v", { "" } }, // C++17 +{ "std::is_polymorphic", { "" } }, // C++11 +{ "std::is_polymorphic_v", { "" } }, // C++17 +{ "std::is_reference", { "" } }, // C++11 +{ "std::is_reference_v", { "" } }, // C++17 +{ "std::is_rvalue_reference", { "" } }, // C++11 +{ "std::is_rvalue_reference_v", { "" } }, // C++17 +{ "std::is_same", { "" } }, // C++11 +{ "std::is_same_v", { "" } }, // C++17 +{ "std::is_scalar", { "" } }, // C++11 +{ "std::is_scalar_v", { "" } }, // C++17 +{ "std::is_signed", { "" } }, // C++11 +{ "std::is_signed_v", { "" } }, // C++17 +{ "std::is_sorted", { "" } }, // C++11 +{ "std::is_sorted_until", { "" } }, // C++11 +{ "std::is_standard_layout", { "" } }, // C++11 +{ "std::is_standard_layout_v", { "" } }, // C++17 +{ "std::is_swappable", { "" } }, // C++17 +{ "std::is_swappable_v", { "" } }, // C++17 +{ "std::is_swappable_with", { "" } }, // C++17 +{ "std::is_swappable_with_v", { "" } }, // C++17 +{ "std::is_trivial", { "" } }, // C++11 +{ "std::is_trivially_assignable", { "" } }, // C++11 +{ "std::is_trivially_assignable_v", { "" } }, // C++17 +{ "std::is_trivially_constructible", { "" } }, // C++11 +{ "std::is_trivially_constructible_v", { "" } }, // C++17 +{ "std::is_trivially_copyable", { "" } }, // C++11 +{ "std::is_trivially_copyable_v", { "" } }, // C++17 +{ "std::is_trivially_copy_assignable", { "" } }, // C++11 +{ "std::is_trivially_copy_assignable_v", { "" } }, // C++17 +{ "std::is_trivially_copy_constructible", { "" } }, // C++11 +{ "std::is_trivially_copy_constructible_v", { "" } }, // C++17 +{ "std::is_trivially_default_constructible", { "" } }, // C++11 +{ "std::is_trivially_default_constructible_v", { "" } }, // C++17 +{ "std::is_trivially_destructible", { "" } }, // C++11 +{ "std::is_trivially_destructible_v", { "" } }, // C++17 +{ "std::is_trivially_move_assignable", { "" } }, // C++11 +{ "std::is_trivially_move_assignable_v", { "" } }, // C++17 +{ "std::is_trivially_move_constructible", { "" } }, // C++11 +{ "std::is_trivially_move_constructible_v", { "" } }, // C++17 +{ "std::is_trivial_v", { "" } }, // C++17 +{ "std::is_union", { "" } }, // C++11 +{ "std::is_union_v", { "" } }, // C++17 +{ "std::is_unsigned", { "" } }, // C++11 +{ "std::is_unsigned_v", { "" } }, // C++17 +{ "std::is_void", { "" } }, // C++11 +{ "std::is_void_v", { "" } }, // C++17 +{ "std::is_volatile", { "" } }, // C++11 +{ "std::is_volatile_v", { "" } }, // C++17 +{ "std::isfinite", { "" } }, // C++11 +{ "std::isgreater", { "" } }, // C++11 +{ "std::isgreaterequal", { "" } }, // C++11 +{ "std::isinf", { "" } }, // C++11 +{ "std::isless", { "" } }, // C++11 +{ "std::islessequal", { "" } }, // C++11 +{ "std::islessgreater", { "" } }, // C++11 +{ "std::isnan", { "" } }, // C++11 +{ "std::isnormal", { "" } }, // C++11 +{ "std::istream", { "" } }, +{ "std::istreambuf_iterator", { "" } }, +{ "std::istream_iterator", { "" } }, +{ "std::istringstream", { "" } }, +{ "std::isunordered", { "" } }, // C++11 +{ "std::iswalnum", { "" } }, +{ "std::iswalpha", { "" } }, +{ "std::iswblank", { "" } }, // C++11 +{ "std::iswcntrl", { "" } }, +{ "std::iswctype", { "" } }, +{ "std::iswdigit", { "" } }, +{ "std::iswgraph", { "" } }, +{ "std::iswlower", { "" } }, +{ "std::iswprint", { "" } }, +{ "std::iswpunct", { "" } }, +{ "std::iswspace", { "" } }, +{ "std::iswupper", { "" } }, +{ "std::iswxdigit", { "" } }, +{ "std::iterator", { "" } }, +{ "std::iterator_traits", { "" } }, +{ "std::iter_swap", { "" } }, +{ "std::jmp_buf", { "" } }, +{ "std::kill_dependency", { "" } }, // C++11 +{ "std::kilo", { "" } }, // C++11 +{ "std::knuth_b", { "" } }, // C++11 +{ "std::launch", { "" } }, // C++11 +{ "std::launder", { "" } }, // C++17 +{ "std::lcm", { "" } }, // C++17 +{ "std::lconv", { "" } }, +{ "std::ldexp", { "" } }, +{ "std::ldiv", { "" } }, +{ "std::ldiv_t", { "" } }, +{ "std::left", { "" } }, +{ "std::length_error", { "" } }, +{ "std::less", { "" } }, +{ "std::less_equal", { "" } }, +{ "std::lexicographical_compare", { "" } }, +{ "std::lgamma", { "" } }, // C++11 +{ "std::linear_congruential_engine", { "" } }, // C++11 +{ "std::list", { "" } }, +{ "std::lldiv", { "" } }, // C++11 +{ "std::lldiv_t", { "" } }, // C++11 +{ "std::llrint", { "" } }, // C++11 +{ "std::llround", { "" } }, // C++11 +{ "std::locale", { "" } }, +{ "std::localeconv", { "" } }, +{ "std::localtime", { "" } }, +{ "std::lock", { "" } }, // C++11 +{ "std::lock_guard", { "" } }, // C++11 +{ "std::logb", { "" } }, // C++11 +{ "std::log1p", { "" } }, // C++11 +{ "std::log2", { "" } }, // C++11 +{ "std::logical_and", { "" } }, +{ "std::logic_error", { "" } }, +{ "std::lognormal_distribution", { "" } }, // C++11 +{ "std::logical_not", { "" } }, +{ "std::logical_or", { "" } }, +{ "std::longjmp", { "" } }, +{ "std::lower_bound", { "" } }, +{ "std::lrint", { "" } }, // C++11 +{ "std::lround", { "" } }, // C++11 +{ "std::make_exception_ptr", { "" } }, // C++11 +{ "std::make_from_tuple", { "" } }, // C++17 +{ "std::make_heap", { "" } }, +{ "std::make_move_iterator", { "" } }, // C++11 +{ "std::make_optional", { "" } }, // C++17 +{ "std::make_pair", { "" } }, +{ "std::make_reverse_iterator", { "" } }, // C++14 +{ "std::make_shared", { "" } }, // C++11 +{ "std::make_signed", { "" } }, // C++11 +{ "std::make_signed_t", { "" } }, // C++14 +{ "std::make_tuple", { "" } }, // C++11 +{ "std::make_unique", { "" } }, // C++14 +{ "std::make_unsigned", { "" } }, // C++11 +{ "std::make_unsigned_t", { "" } }, // C++14 +{ "std::malloc", { "" } }, +{ "std::map", { "" } }, +{ "std::mask_array", { "" } }, +{ "std::match_results", { "" } }, // C++11 +{ "std::max", { "" } }, +{ "std::max_align_t", { "" } }, // C++11 +{ "std::max_element", { "" } }, +{ "std::mblen", { "" } }, +{ "std::mbrlen", { "" } }, +{ "std::mbrtoc16", { "" } }, // C++11 +{ "std::mbrtoc32", { "" } }, // C++11 +{ "std::mbrtowc", { "" } }, +{ "std::mbsinit", { "" } }, +{ "std::mbsrtowcs", { "" } }, +{ "std::mbstowcs", { "" } }, +{ "std::mbtowc", { "" } }, +{ "std::mega", { "" } }, // C++11 +{ "std::mem_fn", { "" } }, // C++11 +{ "std::memchr", { "" } }, +{ "std::memcmp", { "" } }, +{ "std::memcpy", { "" } }, +{ "std::memmove", { "" } }, +{ "std::memory_order", { "" } }, // C++11 +{ "std::memory_order_acq_rel", { "" } }, // C++11 +{ "std::memory_order_acquire", { "" } }, // C++11 +{ "std::memory_order_consume", { "" } }, // C++11 +{ "std::memory_order_relaxed", { "" } }, // C++11 +{ "std::memory_order_release", { "" } }, // C++11 +{ "std::memory_order_seq_cst", { "" } }, // C++11 +{ "std::memset", { "" } }, +{ "std::merge", { "" } }, +{ "std::mersenne_twister_engine", { "" } }, // C++11 +{ "std::messages", { "" } }, +{ "std::messages_base", { "" } }, +{ "std::messages_byname", { "" } }, +{ "std::micro", { "" } }, // C++11 +{ "std::milli", { "" } }, // C++11 +{ "std::min", { "" } }, +{ "std::min_element", { "" } }, +{ "std::minmax", { "" } }, // C++11 +{ "std::minmax_element", { "" } }, // C++11 +{ "std::minstd_rand", { "" } }, // C++11 +{ "std::minstd_rand0", { "" } }, // C++11 +{ "std::minus", { "" } }, +{ "std::mismatch", { "" } }, +{ "std::mktime", { "" } }, +{ "std::modf", { "" } }, +{ "std::modulus", { "" } }, +{ "std::money_base", { "" } }, +{ "std::money_get", { "" } }, +{ "std::moneypunct", { "" } }, +{ "std::moneypunct_byname", { "" } }, +{ "std::money_put", { "" } }, +{ "std::monostate", { "" } }, // C++17 +{ "std::move_backward", { "" } }, // C++11 +{ "std::move_if_noexcept", { "" } }, // C++11 +{ "std::move_iterator", { "" } }, // C++11 +{ "std::mt19937", { "" } }, // C++11 +{ "std::mt19937_64", { "" } }, // C++11 +{ "std::multimap", { "" } }, +{ "std::multiplies", { "" } }, +{ "std::multiset", { "" } }, +{ "std::mutex", { "" } }, // C++11 +{ "std::nan", { "" } }, // C++11 +{ "std::nanf", { "" } }, // C++11 +{ "std::nanl", { "" } }, // C++11 +{ "std::nano", { "" } }, // C++11 +{ "std::nearbyint", { "" } }, // C++11 +{ "std::negate", { "" } }, +{ "std::negation", { "" } }, // C++17 +{ "std::negation_v", { "" } }, // C++17 +{ "std::negative_binomial_distribution", { "" } }, // C++11 +{ "std::nested_exception", { "" } }, // C++11 +{ "std::new_handler", { "" } }, +{ "std::next", { "" } }, // C++11 +{ "std::nextafter", { "" } }, // C++11 +{ "std::next_permutation", { "" } }, +{ "std::nexttoward", { "" } }, // C++11 +{ "std::noboolalpha", { "" } }, +{ "std::none_of", { "" } }, // C++11 +{ "std::norm", { "" } }, +{ "std::normal_distribution", { "" } }, // C++11 +{ "std::noshowbase", { "" } }, +{ "std::noshowpoint", { "" } }, +{ "std::noshowpos", { "" } }, +{ "std::noskipws", { "" } }, +{ "std::not_equal_to", { "" } }, +{ "std::not_fn", { "" } }, // C++17 +{ "std::nothrow", { "" } }, +{ "std::nothrow_t", { "" } }, +{ "std::notify_all_at_thread_exit", { "" } }, // C++11 +{ "std::nounitbuf", { "" } }, +{ "std::nouppercase", { "" } }, +{ "std::nth_element", { "" } }, +{ "std::nullopt", { "" } }, // C++17 +{ "std::nullopt_t", { "" } }, // C++17 +{ "std::nullptr_t", { "" } }, // C++11 +{ "std::numeric_limits", { "" } }, +{ "std::num_get", { "" } }, +{ "std::numpunct", { "" } }, +{ "std::numpunct_byname", { "" } }, +{ "std::num_put", { "" } }, +{ "std::oct", { "" } }, +{ "std::once_flag", { "" } }, // C++11 +{ "std::ofstream", { "" } }, +{ "std::optional", { "" } }, // C++17 +{ "std::ostream", { "" } }, +{ "std::ostreambuf_iterator", { "" } }, +{ "std::ostream_iterator", { "" } }, +{ "std::ostringstream", { "" } }, +{ "std::out_of_range", { "" } }, +{ "std::output_iterator_tag", { "" } }, +{ "std::overflow_error", { "" } }, +{ "std::owner_less", { "" } }, // C++11 +{ "std::packaged_task", { "" } }, // C++11 +{ "std::pair", { "" } }, +{ "std::partial_sort", { "" } }, +{ "std::partial_sort_copy", { "" } }, +{ "std::partial_sum", { "" } }, +{ "std::partition", { "" } }, +{ "std::partition_copy", { "" } }, // C++11 +{ "std::partition_point", { "" } }, // C++11 +{ "std::perror", { "" } }, +{ "std::peta", { "" } }, // C++11 +{ "std::pico", { "" } }, // C++11 +{ "std::piecewise_constant_distribution", { "" } }, // C++11 +{ "std::piecewise_construct_t", { "" } }, // C++11 +{ "std::piecewise_linear_distribution", { "" } }, // C++11 +{ "std::plus", { "" } }, +{ "std::pointer_safety", { "" } }, // C++11 +{ "std::pointer_traits", { "" } }, // C++11 +{ "std::poisson_distribution", { "" } }, // C++11 +{ "std::polymorphic_allocator", { "" } }, // C++17 +{ "std::polar", { "" } }, +{ "std::pop_heap", { "" } }, +{ "std::prev", { "" } }, // C++11 +{ "std::prev_permutation", { "" } }, +{ "std::printf", { "" } }, +{ "std::priority_queue", { "" } }, +{ "std::proj", { "" } }, // C++11 +{ "std::promise", { "" } }, // C++11 +{ "std::ptrdiff_t", { "" } }, +{ "std::push_heap", { "" } }, +{ "std::put_money", { "" } }, // C++11 +{ "std::put_time", { "" } }, // C++11 +{ "std::putc", { "" } }, +{ "std::putchar", { "" } }, +{ "std::puts", { "" } }, +{ "std::putwc", { "" } }, +{ "std::putwchar", { "" } }, +{ "std::qsort", { "" } }, +{ "std::queue", { "" } }, +{ "std::quick_exit", { "" } }, // C++11 +{ "std::quoted", { "" } }, // C++14 +{ "std::raise", { "" } }, +{ "std::rand", { "" } }, +{ "std::random_access_iterator_tag", { "" } }, +{ "std::random_device", { "" } }, // C++11 +{ "std::random_shuffle", { "" } }, +{ "std::range_error", { "" } }, +{ "std::ranlux24", { "" } }, // C++11 +{ "std::ranlux24_base", { "" } }, // C++11 +{ "std::ranlux48", { "" } }, // C++11 +{ "std::ranlux48_base", { "" } }, // C++11 +{ "std::rank", { "" } }, // C++11 +{ "std::rank_v", { "" } }, // C++17 +{ "std::ratio", { "" } }, // C++11 +{ "std::ratio_add", { "" } }, // C++11 +{ "std::ratio_divide", { "" } }, // C++11 +{ "std::ratio_equal", { "" } }, // C++11 +{ "std::ratio_equal_v", { "" } }, // C++17 +{ "std::ratio_greater", { "" } }, // C++11 +{ "std::ratio_greater_equal", { "" } }, // C++11 +{ "std::ratio_greater_equal_v", { "" } }, // C++17 +{ "std::ratio_greater_v", { "" } }, // C++17 +{ "std::ratio_less", { "" } }, // C++11 +{ "std::ratio_less_equal", { "" } }, // C++11 +{ "std::ratio_less_equal_v", { "" } }, // C++17 +{ "std::ratio_less_v", { "" } }, // C++17 +{ "std::ratio_multiply", { "" } }, // C++11 +{ "std::ratio_not_equal", { "" } }, // C++11 +{ "std::ratio_not_equal_v", { "" } }, // C++17 +{ "std::ratio_subtract", { "" } }, // C++11 +{ "std::rbegin", { "" } }, // C++14 +{ "std::real", { "" } }, +{ "std::realloc", { "" } }, +{ "std::recursive_mutex", { "" } }, // C++11 +{ "std::recursive_timed_mutex", { "" } }, // C++11 +{ "std::reduce", { "" } }, // C++17 +{ "std::ref", { "" } }, // C++11 +{ "std::reference_wrapper", { "" } }, // C++11 +{ "std::regex", { "" } }, // C++11 +{ "std::regex_error", { "" } }, // C++11 +{ "std::regex_iterator", { "" } }, // C++11 +{ "std::regex_match", { "" } }, // C++11 +{ "std::regex_replace", { "" } }, // C++11 +{ "std::regex_search", { "" } }, // C++11 +{ "std::regex_token_iterator", { "" } }, // C++11 +{ "std::regex_traits", { "" } }, // C++11 +{ "std::reinterpret_pointer_cast", { "" } }, // C++11 +{ "std::remainder", { "" } }, // C++11 +{ "std::remove_all_extents", { "" } }, // C++11 +{ "std::remove_all_extents_t", { "" } }, // C++14 +{ "std::remove_const", { "" } }, // C++11 +{ "std::remove_const_t", { "" } }, // C++14 +{ "std::remove_copy", { "" } }, +{ "std::remove_copy_if", { "" } }, +{ "std::remove_cv", { "" } }, // C++11 +{ "std::remove_cv_t", { "" } }, // C++14 +{ "std::remove_extent", { "" } }, // C++11 +{ "std::remove_extent_t", { "" } }, // C++14 +{ "std::remove_pointer", { "" } }, // C++11 +{ "std::remove_pointer_t", { "" } }, // C++14 +{ "std::remove_reference", { "" } }, // C++11 +{ "std::remove_reference_t", { "" } }, // C++14 +{ "std::remove_volatile", { "" } }, // C++11 +{ "std::remove_volatile_t", { "" } }, // C++14 +{ "std::remquo", { "" } }, // C++11 +{ "std::rend", { "" } }, // C++14 +{ "std::rename", { "" } }, +{ "std::replace", { "" } }, +{ "std::replace_copy", { "" } }, +{ "std::replace_copy_if", { "" } }, +{ "std::replace_if", { "" } }, +{ "std::resetiosflags", { "" } }, +{ "std::result_of", { "" } }, // C++11 +{ "std::result_of_t", { "" } }, // C++14 +{ "std::rethrow_exception", { "" } }, // C++11 +{ "std::rethrow_if_nested", { "" } }, // C++11 +{ "std::reverse", { "" } }, +{ "std::reverse_copy", { "" } }, +{ "std::reverse_iterator", { "" } }, +{ "std::rewind", { "" } }, +{ "std::right", { "" } }, +{ "std::rint", { "" } }, // C++11 +{ "std::rotate", { "" } }, +{ "std::rotate_copy", { "" } }, +{ "std::round", { "" } }, // C++11 +{ "std::round_indeterminate", { "" } }, +{ "std::round_to_nearest", { "" } }, +{ "std::round_toward_infinity", { "" } }, +{ "std::round_toward_neg_infinity", { "" } }, +{ "std::round_toward_zero", { "" } }, +{ "std::runtime_error", { "" } }, +{ "std::sample", { "" } }, // C++17 +{ "std::scalbln", { "" } }, // C++11 +{ "std::scalbn", { "" } }, // C++11 +{ "std::scanf", { "" } }, +{ "std::scientific", { "" } }, +{ "std::scoped_allocator_adaptor", { "" } }, // C++11 +{ "std::search", { "" } }, +{ "std::search_n", { "" } }, +{ "std::seed_seq", { "" } }, // C++11 +{ "std::set", { "" } }, +{ "std::set_difference", { "" } }, +{ "std::set_intersection", { "" } }, +{ "std::set_new_handler", { "" } }, +{ "std::set_symmetric_difference", { "" } }, +{ "std::set_terminate", { "" } }, +{ "std::set_union", { "" } }, +{ "std::setbase", { "" } }, +{ "std::setbuf", { "" } }, +{ "std::setfill", { "" } }, +{ "std::setiosflags", { "" } }, +{ "std::setlocale", { "" } }, +{ "std::setprecision", { "" } }, +{ "std::setvbuf", { "" } }, +{ "std::setw", { "" } }, +{ "std::shared_future", { "" } }, // C++11 +{ "std::shared_lock", { "" } }, // C++14 +{ "std::shared_mutex", { "" } }, // C++17 +{ "std::shared_ptr", { "" } }, // C++11 +{ "std::shared_timed_mutex", { "" } }, // C++14 +{ "std::showbase", { "" } }, +{ "std::showpoint", { "" } }, +{ "std::showpos", { "" } }, +{ "std::shuffle", { "" } }, // C++11 +{ "std::shuffle_order_engine", { "" } }, // C++11 +{ "std::sig_atomic_t", { "" } }, +{ "std::signal", { "" } }, +{ "std::signbit", { "" } }, // C++11 +{ "std::size", { "" } }, // C++17 +{ "std::skipws", { "" } }, +{ "std::slice", { "" } }, +{ "std::slice_array", { "" } }, +{ "std::smatch", { "" } }, // C++11 +{ "std::snprintf", { "" } }, // C++11 +{ "std::sort", { "" } }, +{ "std::sort_heap", { "" } }, +{ "std::sprintf", { "" } }, +{ "std::srand", { "" } }, +{ "std::sregex_iterator", { "" } }, // C++11 +{ "std::sregex_token_iterator", { "" } }, // C++11 +{ "std::sscanf", { "" } }, +{ "std::ssub_match", { "" } }, // C++11 +{ "std::stable_partition", { "" } }, +{ "std::stable_sort", { "" } }, +{ "std::stack", { "" } }, +{ "std::static_pointer_cast", { "" } }, // C++11 +{ "std::strcat", { "" } }, +{ "std::strchr", { "" } }, +{ "std::strcmp", { "" } }, +{ "std::strcoll", { "" } }, +{ "std::strcpy", { "" } }, +{ "std::strcspn", { "" } }, +{ "std::streambuf", { "" } }, +{ "std::streamoff", { "" } }, +{ "std::streampos", { "" } }, +{ "std::streamsize", { "" } }, +{ "std::strerror", { "" } }, +{ "std::strftime", { "" } }, +{ "std::string", { "" } }, +{ "std::string_view", { "" } }, // C++17 +{ "std::stringbuf", { "" } }, +{ "std::stringstream", { "" } }, +{ "std::strlen", { "" } }, +{ "std::strncat", { "" } }, +{ "std::strncmp", { "" } }, +{ "std::strncpy", { "" } }, +{ "std::strpbrk", { "" } }, +{ "std::strrchr", { "" } }, +{ "std::strspn", { "" } }, +{ "std::strstr", { "" } }, +{ "std::strtod", { "" } }, +{ "std::strtof", { "" } }, // C++11 +{ "std::strtoimax", { "" } }, // C++11 +{ "std::strtok", { "" } }, +{ "std::strtol", { "" } }, +{ "std::strtold", { "" } }, +{ "std::strtoll", { "" } }, // C++11 +{ "std::strtoul", { "" } }, +{ "std::strtoull", { "" } }, // C++11 +{ "std::strtoumax", { "" } }, // C++11 +{ "std::strxfrm", { "" } }, +{ "std::student_t_distribution", { "" } }, // C++11 +{ "std::sub_match", { "" } }, // C++11 +{ "std::subtract_with_carry_engine", { "" } }, // C++11 +{ "std::swap", { "" } }, +{ "std::swap_ranges", { "" } }, +{ "std::swprintf", { "" } }, +{ "std::swscanf", { "" } }, +{ "std::system", { "" } }, +{ "std::system_category", { "" } }, // C++11 +{ "std::system_error", { "" } }, // C++11 +{ "std::tera", { "" } }, // C++11 +{ "std::terminate", { "" } }, +{ "std::terminate_handler", { "" } }, +{ "std::tgamma", { "" } }, // C++11 +{ "std::thread", { "" } }, // C++11 +{ "std::throw_with_nested", { "" } }, // C++11 +{ "std::tie", { "" } }, // C++11 +{ "std::time", { "" } }, +{ "std::time_base", { "" } }, +{ "std::time_get", { "" } }, +{ "std::time_get_byname", { "" } }, +{ "std::time_put", { "" } }, +{ "std::time_put_byname", { "" } }, +{ "std::time_t", { "" } }, +{ "std::timed_mutex", { "" } }, // C++11 +{ "std::timespec", { "" } }, // C++17 +{ "std::timespec_get", { "" } }, // C++17 +{ "std::tm", { "" } }, +{ "std::tmpfile", { "" } }, +{ "std::tmpnam", { "" } }, +{ "std::to_integer", { "" } }, // C++17 +{ "std::to_chars", { "" } }, // C++17 +{ "std::to_string", { "" } }, // C++11 +{ "std::towctrans", { "" } }, +{ "std::towlower", { "" } }, +{ "std::towupper", { "" } }, +{ "std::transform", { "" } }, +{ "std::transform_exclusive_scan", { "" } }, // C++17 +{ "std::transform_inclusive_scan", { "" } }, // C++17 +{ "std::transform_reduce", { "" } }, // C++17 +{ "std::true_type", { "" } }, // C++11 +{ "std::trunc", { "" } }, // C++11 +{ "std::try_lock", { "" } }, // C++11 +{ "std::try_to_lock", { "" } }, // C++11 +{ "std::try_to_lock_t", { "" } }, // C++11 +{ "std::tuple", { "" } }, // C++11 +{ "std::tuple_cat", { "" } }, // C++11 +{ "std::type_index", { "" } }, // C++11 +{ "std::type_info", { "" } }, +{ "std::u16streampos", { "" } }, // C++11 +{ "std::u16string", { "" } }, // C++11 +{ "std::u16string_view", { "" } }, // C++17 +{ "std::u32streampos", { "" } }, // C++11 +{ "std::u32string", { "" } }, // C++11 +{ "std::u32string_view", { "" } }, // C++17 +{ "std::uint_fast16_t", { "" } }, // C++11 +{ "std::uint_fast32_t", { "" } }, // C++11 +{ "std::uint_fast64_t", { "" } }, // C++11 +{ "std::uint_fast8_t", { "" } }, // C++11 +{ "std::uint_least16_t", { "" } }, // C++11 +{ "std::uint_least32_t", { "" } }, // C++11 +{ "std::uint_least64_t", { "" } }, // C++11 +{ "std::uint_least8_t", { "" } }, // C++11 +{ "std::uint16_t", { "" } }, // C++11 +{ "std::uint32_t", { "" } }, // C++11 +{ "std::uint64_t", { "" } }, // C++11 +{ "std::uint8_t", { "" } }, // C++11 +{ "std::uintmax_t", { "" } }, // C++11 +{ "std::uintptr_t", { "" } }, // C++11 +{ "std::uncaught_exceptions", { "" } }, // C++17 +{ "std::undeclare_no_pointers", { "" } }, // C++11 +{ "std::undeclare_reachable", { "" } }, // C++11 +{ "std::underflow_error", { "" } }, +{ "std::underlying_type", { "" } }, // C++11 +{ "std::underlying_type_t", { "" } }, // C++14 +{ "std::ungetc", { "" } }, +{ "std::ungetwc", { "" } }, +{ "std::uniform_int_distribution", { "" } }, // C++11 +{ "std::uniform_real_distribution", { "" } }, // C++11 +{ "std::uninitialized_copy", { "" } }, +{ "std::uninitialized_copy_n", { "" } }, // C++11 +{ "std::uninitialized_default_construct", { "" } }, // C++17 +{ "std::uninitialized_default_construct_n", { "" } }, // C++17 +{ "std::uninitialized_fill", { "" } }, +{ "std::uninitialized_fill_n", { "" } }, +{ "std::uninitialized_move", { "" } }, // C++17 +{ "std::uninitialized_move_n", { "" } }, // C++17 +{ "std::uninitialized_value_construct", { "" } }, // C++17 +{ "std::uninitialized_value_construct_n", { "" } }, // C++17 +{ "std::unique", { "" } }, +{ "std::unique_copy", { "" } }, +{ "std::unique_lock", { "" } }, // C++11 +{ "std::unique_ptr", { "" } }, // C++11 +{ "std::unitbuf", { "" } }, +{ "std::unordered_map", { "" } }, // C++11 +{ "std::unordered_multimap", { "" } }, // C++11 +{ "std::unordered_multiset", { "" } }, // C++11 +{ "std::unordered_set", { "" } }, // C++11 +{ "std::upper_bound", { "" } }, +{ "std::uppercase", { "" } }, +{ "std::use_facet", { "" } }, +{ "std::uses_allocator_v", { "" } }, // C++17 +{ "std::va_list", { "" } }, +{ "std::valarray", { "" } }, +{ "std::variant", { "" } }, // C++17 +{ "std::variant_alternative", { "" } }, // C++17 +{ "std::variant_alternative_t", { "" } }, // C++17 +{ "std::variant_npos", { "" } }, // C++17 +{ "std::variant_size", { "" } }, // C++17 +{ "std::variant_size_v", { "" } }, // C++17 +{ "std::vector", { "" } }, +{ "std::vfprintf", { "" } }, +{ "std::vfscanf", { "" } }, // C++11 +{ "std::vfwprintf", { "" } }, +{ "std::vfwscanf", { "" } }, // C++11 +{ "std::visit", { "" } }, // C++17 +{ "std::void_t", { "" } }, // C++17 +{ "std::vprintf", { "" } }, +{ "std::vscanf", { "" } }, // C++11 +{ "std::vsnprintf", { "" } }, // C++11 +{ "std::vsprintf", { "" } }, +{ "std::vsscanf", { "" } }, // C++11 +{ "std::vswprintf", { "" } }, +{ "std::vswscanf", { "" } }, // C++11 +{ "std::vwprintf", { "" } }, +{ "std::vwscanf", { "" } }, // C++11 +{ "std::wbuffer_convert", { "" } }, // C++11 +{ "std::wcerr", { "" } }, +{ "std::wcin", { "" } }, +{ "std::wclog", { "" } }, +{ "std::wcmatch", { "" } }, // C++11 +{ "std::wcout", { "" } }, +{ "std::wcregex_iterator", { "" } }, // C++11 +{ "std::wcregex_token_iterator", { "" } }, // C++11 +{ "std::wcrtomb", { "" } }, +{ "std::wcscat", { "" } }, +{ "std::wcschr", { "" } }, +{ "std::wcscmp", { "" } }, +{ "std::wcscoll", { "" } }, +{ "std::wcscpy", { "" } }, +{ "std::wcscspn", { "" } }, +{ "std::wcsftime", { "" } }, +{ "std::wcslen", { "" } }, +{ "std::wcsncat", { "" } }, +{ "std::wcsncmp", { "" } }, +{ "std::wcsncpy", { "" } }, +{ "std::wcspbrk", { "" } }, +{ "std::wcsrchr", { "" } }, +{ "std::wcsrtombs", { "" } }, +{ "std::wcsspn", { "" } }, +{ "std::wcsstr", { "" } }, +{ "std::wcstod", { "" } }, +{ "std::wcstof", { "" } }, // C++11 +{ "std::wcstoimax", { "" } }, // C++11 +{ "std::wcstok", { "" } }, +{ "std::wcstol", { "" } }, +{ "std::wcstold", { "" } }, // C++11 +{ "std::wcstoll", { "" } }, // C++11 +{ "std::wcstombs", { "" } }, +{ "std::wcstoul", { "" } }, +{ "std::wcstoull", { "" } }, // C++11 +{ "std::wcstoumax", { "" } }, // C++11 +{ "std::wcsub_match", { "" } }, // C++11 +{ "std::wcsxfrm", { "" } }, +{ "std::wctob", { "" } }, +{ "std::wctomb", { "" } }, +{ "std::wctrans", { "" } }, +{ "std::wctrans_t", { "" } }, +{ "std::wctype", { "" } }, +{ "std::wctype_t", { "" } }, +{ "std::weak_ptr", { "" } }, // C++11 +{ "std::weibull_distribution", { "" } }, // C++11 +{ "std::wfstream", { "" } }, +{ "std::wifstream", { "" } }, +{ "std::wios", { "" } }, +{ "std::wiostream", { "" } }, +{ "std::wistream", { "" } }, +{ "std::wistringstream", { "" } }, +{ "std::wmemchr", { "" } }, +{ "std::wmemcmp", { "" } }, +{ "std::wmemcpy", { "" } }, +{ "std::wmemmove", { "" } }, +{ "std::wmemset", { "" } }, +{ "std::wofstream", { "" } }, +{ "std::wostream", { "" } }, +{ "std::wstreambuf", { "" } }, +{ "std::ws", { "" } }, +{ "std::wstreampos", { "" } }, +{ "std::wostringstream", { "" } }, +{ "std::wprintf", { "" } }, +{ "std::wregex", { "" } }, // C++11 +{ "std::wscanf", { "" } }, +{ "std::wsmatch", { "" } }, // C++11 +{ "std::wsregex_iterator", { "" } }, // C++11 +{ "std::wsregex_token_iterator", { "" } }, // C++11 +{ "std::wssub_match", { "" } }, // C++11 +{ "std::wstring", { "" } }, +{ "std::wstring_convert", { "" } }, // C++11 +{ "std::wstring_view", { "" } }, // C++17 +{ "std::wstringbuf", { "" } }, +{ "std::wstringstream", { "" } }, +{ "std::yocto", { "" } }, // C++11 +{ "std::yotta", { "" } }, // C++11 +{ "std::zepto", { "" } }, // C++11 +{ "std::zetta", { "" } }, // C++11 +{ "std::abs", { "", "", "", "" } }, +{ "std::acos", { "", "", "" } }, +{ "std::acosh", { "", "" } }, // C++11 +{ "std::asin", { "", "", "" } }, +{ "std::asinh", { "", "" } }, // C++11 +{ "std::atan", { "", "", "" } }, +{ "std::atan2", { "", "" } }, +{ "std::atanh", { "", "" } }, // C++11 +{ "std::basic_filebuf", { "", "" } }, +{ "std::consume_header", { "", "" } }, // C++11 +{ "std::cos", { "", "", "" } }, +{ "std::cosh", { "", "", "" } }, +{ "std::exp", { "", "", "" } }, +{ "std::fabs", { "", "" } }, +{ "std::filebuf", { "", "" } }, +{ "std::generate_header", { "", "" } }, // C++11 +{ "std::get", { "", "" } }, // C++11 +{ "std::imaxabs", { "", "" } }, // C++11 +{ "std::isalnum", { "", "" } }, +{ "std::isalpha", { "", "" } }, +{ "std::isblank", { "", "" } }, // C++11 +{ "std::iscntrl", { "", "" } }, +{ "std::isdigit", { "", "" } }, +{ "std::isgraph", { "", "" } }, +{ "std::islower", { "", "" } }, +{ "std::isprint", { "", "" } }, +{ "std::ispunct", { "", "" } }, +{ "std::isspace", { "", "" } }, +{ "std::isupper", { "", "" } }, +{ "std::isxdigit", { "", "" } }, +{ "std::labs", { "", "" } }, +{ "std::little_endian", { "", "" } }, // C++11 +{ "std::llabs", { "", "" } }, // C++11 +{ "std::log", { "", "", "" } }, +{ "std::log10", { "", "", "" } }, +{ "std::make_error_code", { "", "" } }, // C++11 +{ "std::make_error_condition", { "", "" } }, // C++11 +{ "std::mbstate_t", { "", "" } }, +{ "std::move", { "", "" } }, // C++11 +{ "std::pow", { "", "", "" } }, +{ "std::remove", { "", "" } }, +{ "std::sin", { "", "", "" } }, +{ "std::sinh", { "", "", "" } }, +{ "std::size_t", { "", "", "", "", "", "" } }, +{ "std::sqrt", { "", "", "" } }, +{ "std::tan", { "", "", "" } }, +{ "std::tanh", { "", "", "" } }, +{ "std::tolower", { "", "" } }, +{ "std::toupper", { "", "" } }, +{ "std::tuple_element", { "", "", "" } }, // C++11 +{ "std::tuple_size", { "", "", "" } }, // C++11 +{ "std::uses_allocator", { "", "" } }, // C++11 +{ "std::wfilebuf", { "", "" } }, +{ "std::wint_t", { "", "" } }, \ No newline at end of file Index: clangd/index/CanonicalIncludes.h =================================================================== --- clangd/index/CanonicalIncludes.h +++ clangd/index/CanonicalIncludes.h @@ -44,10 +44,10 @@ void addPathSuffixMapping(llvm::StringRef Suffix, llvm::StringRef CanonicalPath); - /// Sets the canonical include for any symbol with \p QualifiedName. + /// Sets the canonical includes for any symbol with \p QualifiedName. /// Symbol mappings take precedence over header mappings. void addSymbolMapping(llvm::StringRef QualifiedName, - llvm::StringRef CanonicalPath); + llvm::SmallVector CanonicalPaths); /// Returns the canonical include for symbol with \p QualifiedName. /// \p Headers is the include stack: Headers.front() is the file declaring the @@ -64,7 +64,8 @@ /// Used to reduce the number of lookups into SuffixHeaderMapping. int MaxSuffixComponents = 0; /// A map from fully qualified symbol names to header names. - llvm::StringMap SymbolMapping; + llvm::DenseMap> + SymbolMapping; }; /// Returns a CommentHandler that parses pragma comment on include files to Index: clangd/index/CanonicalIncludes.cpp =================================================================== --- clangd/index/CanonicalIncludes.cpp +++ clangd/index/CanonicalIncludes.cpp @@ -31,9 +31,10 @@ FullPathMapping[Path] = CanonicalPath; } -void CanonicalIncludes::addSymbolMapping(llvm::StringRef QualifiedName, - llvm::StringRef CanonicalPath) { - this->SymbolMapping[QualifiedName] = CanonicalPath; +void CanonicalIncludes::addSymbolMapping( + llvm::StringRef QualifiedName, + llvm::SmallVector CanonicalPaths) { + this->SymbolMapping[QualifiedName] = std::move(CanonicalPaths); } llvm::StringRef @@ -41,8 +42,13 @@ llvm::StringRef QualifiedName) const { assert(!Headers.empty()); auto SE = SymbolMapping.find(QualifiedName); + // FIXME: support multple-header cases. STL symbols may come from different + // headers (e.g. std::move from and ), using + // qualified name can not disambiguate headers. Instead we should return all + // headers and do the disambiguation in clangd side. if (SE != SymbolMapping.end()) - return SE->second; + return SE->second.front(); + // Find the first header such that the extension is not '.inc', and isn't a // recognized non-header file auto I = llvm::find_if(Headers, [](llvm::StringRef Include) { @@ -106,55 +112,11 @@ } void addSystemHeadersMapping(CanonicalIncludes *Includes) { - static const std::vector> SymbolMap = { - {"std::addressof", ""}, - // Map symbols in to their preferred includes. - {"std::basic_filebuf", ""}, - {"std::basic_fstream", ""}, - {"std::basic_ifstream", ""}, - {"std::basic_ofstream", ""}, - {"std::filebuf", ""}, - {"std::fstream", ""}, - {"std::ifstream", ""}, - {"std::ofstream", ""}, - {"std::wfilebuf", ""}, - {"std::wfstream", ""}, - {"std::wifstream", ""}, - {"std::wofstream", ""}, - {"std::basic_ios", ""}, - {"std::ios", ""}, - {"std::wios", ""}, - {"std::basic_iostream", ""}, - {"std::iostream", ""}, - {"std::wiostream", ""}, - {"std::basic_istream", ""}, - {"std::istream", ""}, - {"std::wistream", ""}, - {"std::istreambuf_iterator", ""}, - {"std::ostreambuf_iterator", ""}, - {"std::basic_ostream", ""}, - {"std::ostream", ""}, - {"std::wostream", ""}, - {"std::basic_istringstream", ""}, - {"std::basic_ostringstream", ""}, - {"std::basic_stringbuf", ""}, - {"std::basic_stringstream", ""}, - {"std::istringstream", ""}, - {"std::ostringstream", ""}, - {"std::string", ""}, - {"std::stringbuf", ""}, - {"std::stringstream", ""}, - {"std::wistringstream", ""}, - {"std::wostringstream", ""}, - {"std::wstringbuf", ""}, - {"std::wstringstream", ""}, - {"std::basic_streambuf", ""}, - {"std::streambuf", ""}, - {"std::wstreambuf", ""}, - {"std::uint_least16_t", ""}, // redeclares these - {"std::uint_least32_t", ""}, - {"std::declval", ""}, - }; + static const std::vector< + std::pair>> + SymbolMap = { +#include "StdSymbolMap.imp" + }; for (const auto &Pair : SymbolMap) Includes->addSymbolMapping(Pair.first, Pair.second);