Last active
September 9, 2022 09:58
-
-
Save pasko/701288f9aa8ba8d5146bab53076f3793 to your computer and use it in GitHub Desktop.
This file has been truncated, but you can view the full file.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# 1 "../../base/rand_util_posix.cc" | |
# 1 "<built-in>" 1 | |
# 1 "<built-in>" 3 | |
#define __llvm__ 1 | |
#define __clang__ 1 | |
#define __clang_major__ 16 | |
#define __clang_minor__ 0 | |
#define __clang_patchlevel__ 0 | |
#define __clang_version__ "16.0.0 (https://chromium.googlesource.com/a/external/github.com/llvm/llvm-project fed71b04fb3cc6b1a5a21f64c26104962d816300)" | |
#define __GNUC__ 4 | |
#define __GNUC_MINOR__ 2 | |
#define __GNUC_PATCHLEVEL__ 1 | |
#define __GXX_ABI_VERSION 1002 | |
#define __GNUG__ 4 | |
#define __GXX_WEAK__ 1 | |
#define __ATOMIC_RELAXED 0 | |
#define __ATOMIC_CONSUME 1 | |
#define __ATOMIC_ACQUIRE 2 | |
#define __ATOMIC_RELEASE 3 | |
#define __ATOMIC_ACQ_REL 4 | |
#define __ATOMIC_SEQ_CST 5 | |
#define __OPENCL_MEMORY_SCOPE_WORK_ITEM 0 | |
#define __OPENCL_MEMORY_SCOPE_WORK_GROUP 1 | |
#define __OPENCL_MEMORY_SCOPE_DEVICE 2 | |
#define __OPENCL_MEMORY_SCOPE_ALL_SVM_DEVICES 3 | |
#define __OPENCL_MEMORY_SCOPE_SUB_GROUP 4 | |
#define __PRAGMA_REDEFINE_EXTNAME 1 | |
#define __VERSION__ "Clang 16.0.0 (https://chromium.googlesource.com/a/external/github.com/llvm/llvm-project fed71b04fb3cc6b1a5a21f64c26104962d816300)" | |
#define __STRICT_ANSI__ 1 | |
#define __GXX_EXPERIMENTAL_CXX0X__ 1 | |
#define __OBJC_BOOL_IS_BOOL 0 | |
#define __cpp_unicode_characters 200704L | |
#define __cpp_raw_strings 200710L | |
#define __cpp_unicode_literals 200710L | |
#define __cpp_user_defined_literals 200809L | |
#define __cpp_lambdas 200907L | |
#define __cpp_constexpr 201603L | |
#define __cpp_constexpr_in_decltype 201711L | |
#define __cpp_range_based_for 201603L | |
#define __cpp_static_assert 201411L | |
#define __cpp_decltype 200707L | |
#define __cpp_attributes 200809L | |
#define __cpp_rvalue_references 200610L | |
#define __cpp_variadic_templates 200704L | |
#define __cpp_initializer_lists 200806L | |
#define __cpp_delegating_constructors 200604L | |
#define __cpp_nsdmi 200809L | |
#define __cpp_inheriting_constructors 201511L | |
#define __cpp_ref_qualifiers 200710L | |
#define __cpp_alias_templates 200704L | |
#define __cpp_threadsafe_static_init 200806L | |
#define __cpp_binary_literals 201304L | |
#define __cpp_digit_separators 201309L | |
#define __cpp_init_captures 201304L | |
#define __cpp_generic_lambdas 201304L | |
#define __cpp_decltype_auto 201304L | |
#define __cpp_return_type_deduction 201304L | |
#define __cpp_aggregate_nsdmi 201304L | |
#define __cpp_variable_templates 201304L | |
#define __cpp_hex_float 201603L | |
#define __cpp_inline_variables 201606L | |
#define __cpp_noexcept_function_type 201510L | |
#define __cpp_capture_star_this 201603L | |
#define __cpp_if_constexpr 201606L | |
#define __cpp_deduction_guides 201703L | |
#define __cpp_template_auto 201606L | |
#define __cpp_namespace_attributes 201411L | |
#define __cpp_enumerator_attributes 201411L | |
#define __cpp_nested_namespace_definitions 201411L | |
#define __cpp_variadic_using 201611L | |
#define __cpp_aggregate_bases 201603L | |
#define __cpp_structured_bindings 201606L | |
#define __cpp_nontype_template_args 201411L | |
#define __cpp_fold_expressions 201603L | |
#define __cpp_guaranteed_copy_elision 201606L | |
#define __cpp_nontype_template_parameter_auto 201606L | |
#define __cpp_aligned_new 201606L | |
#define __cpp_impl_destroying_delete 201806L | |
#define __CONSTANT_CFSTRINGS__ 1 | |
#define __DEPRECATED 1 | |
#define __private_extern__ extern | |
#define __clang_literal_encoding__ "UTF-8" | |
#define __clang_wide_literal_encoding__ "UTF-32" | |
#define __OPTIMIZE__ 1 | |
#define __ORDER_LITTLE_ENDIAN__ 1234 | |
#define __ORDER_BIG_ENDIAN__ 4321 | |
#define __ORDER_PDP_ENDIAN__ 3412 | |
#define __BYTE_ORDER__ __ORDER_LITTLE_ENDIAN__ | |
#define __LITTLE_ENDIAN__ 1 | |
#define _LP64 1 | |
#define __LP64__ 1 | |
#define __CHAR_BIT__ 8 | |
#define __BOOL_WIDTH__ 8 | |
#define __SHRT_WIDTH__ 16 | |
#define __INT_WIDTH__ 32 | |
#define __LONG_WIDTH__ 64 | |
#define __LLONG_WIDTH__ 64 | |
#define __BITINT_MAXWIDTH__ 128 | |
#define __SCHAR_MAX__ 127 | |
#define __SHRT_MAX__ 32767 | |
#define __INT_MAX__ 2147483647 | |
#define __LONG_MAX__ 9223372036854775807L | |
#define __LONG_LONG_MAX__ 9223372036854775807LL | |
#define __WCHAR_MAX__ 2147483647 | |
#define __WCHAR_WIDTH__ 32 | |
#define __WINT_MAX__ 4294967295U | |
#define __WINT_WIDTH__ 32 | |
#define __INTMAX_MAX__ 9223372036854775807L | |
#define __INTMAX_WIDTH__ 64 | |
#define __SIZE_MAX__ 18446744073709551615UL | |
#define __SIZE_WIDTH__ 64 | |
#define __UINTMAX_MAX__ 18446744073709551615UL | |
#define __UINTMAX_WIDTH__ 64 | |
#define __PTRDIFF_MAX__ 9223372036854775807L | |
#define __PTRDIFF_WIDTH__ 64 | |
#define __INTPTR_MAX__ 9223372036854775807L | |
#define __INTPTR_WIDTH__ 64 | |
#define __UINTPTR_MAX__ 18446744073709551615UL | |
#define __UINTPTR_WIDTH__ 64 | |
#define __SIZEOF_DOUBLE__ 8 | |
#define __SIZEOF_FLOAT__ 4 | |
#define __SIZEOF_INT__ 4 | |
#define __SIZEOF_LONG__ 8 | |
#define __SIZEOF_LONG_DOUBLE__ 16 | |
#define __SIZEOF_LONG_LONG__ 8 | |
#define __SIZEOF_POINTER__ 8 | |
#define __SIZEOF_SHORT__ 2 | |
#define __SIZEOF_PTRDIFF_T__ 8 | |
#define __SIZEOF_SIZE_T__ 8 | |
#define __SIZEOF_WCHAR_T__ 4 | |
#define __SIZEOF_WINT_T__ 4 | |
#define __SIZEOF_INT128__ 16 | |
#define __INTMAX_TYPE__ long int | |
#define __INTMAX_FMTd__ "ld" | |
#define __INTMAX_FMTi__ "li" | |
#define __INTMAX_C_SUFFIX__ L | |
#define __UINTMAX_TYPE__ long unsigned int | |
#define __UINTMAX_FMTo__ "lo" | |
#define __UINTMAX_FMTu__ "lu" | |
#define __UINTMAX_FMTx__ "lx" | |
#define __UINTMAX_FMTX__ "lX" | |
#define __UINTMAX_C_SUFFIX__ UL | |
#define __PTRDIFF_TYPE__ long int | |
#define __PTRDIFF_FMTd__ "ld" | |
#define __PTRDIFF_FMTi__ "li" | |
#define __INTPTR_TYPE__ long int | |
#define __INTPTR_FMTd__ "ld" | |
#define __INTPTR_FMTi__ "li" | |
#define __SIZE_TYPE__ long unsigned int | |
#define __SIZE_FMTo__ "lo" | |
#define __SIZE_FMTu__ "lu" | |
#define __SIZE_FMTx__ "lx" | |
#define __SIZE_FMTX__ "lX" | |
#define __WCHAR_TYPE__ int | |
#define __WINT_TYPE__ unsigned int | |
#define __SIG_ATOMIC_MAX__ 2147483647 | |
#define __SIG_ATOMIC_WIDTH__ 32 | |
#define __CHAR16_TYPE__ unsigned short | |
#define __CHAR32_TYPE__ unsigned int | |
#define __UINTPTR_TYPE__ long unsigned int | |
#define __UINTPTR_FMTo__ "lo" | |
#define __UINTPTR_FMTu__ "lu" | |
#define __UINTPTR_FMTx__ "lx" | |
#define __UINTPTR_FMTX__ "lX" | |
#define __FLT16_DENORM_MIN__ 5.9604644775390625e-8F16 | |
#define __FLT16_HAS_DENORM__ 1 | |
#define __FLT16_DIG__ 3 | |
#define __FLT16_DECIMAL_DIG__ 5 | |
#define __FLT16_EPSILON__ 9.765625e-4F16 | |
#define __FLT16_HAS_INFINITY__ 1 | |
#define __FLT16_HAS_QUIET_NAN__ 1 | |
#define __FLT16_MANT_DIG__ 11 | |
#define __FLT16_MAX_10_EXP__ 4 | |
#define __FLT16_MAX_EXP__ 16 | |
#define __FLT16_MAX__ 6.5504e+4F16 | |
#define __FLT16_MIN_10_EXP__ (-4) | |
#define __FLT16_MIN_EXP__ (-13) | |
#define __FLT16_MIN__ 6.103515625e-5F16 | |
#define __FLT_DENORM_MIN__ 1.40129846e-45F | |
#define __FLT_HAS_DENORM__ 1 | |
#define __FLT_DIG__ 6 | |
#define __FLT_DECIMAL_DIG__ 9 | |
#define __FLT_EPSILON__ 1.19209290e-7F | |
#define __FLT_HAS_INFINITY__ 1 | |
#define __FLT_HAS_QUIET_NAN__ 1 | |
#define __FLT_MANT_DIG__ 24 | |
#define __FLT_MAX_10_EXP__ 38 | |
#define __FLT_MAX_EXP__ 128 | |
#define __FLT_MAX__ 3.40282347e+38F | |
#define __FLT_MIN_10_EXP__ (-37) | |
#define __FLT_MIN_EXP__ (-125) | |
#define __FLT_MIN__ 1.17549435e-38F | |
#define __DBL_DENORM_MIN__ 4.9406564584124654e-324 | |
#define __DBL_HAS_DENORM__ 1 | |
#define __DBL_DIG__ 15 | |
#define __DBL_DECIMAL_DIG__ 17 | |
#define __DBL_EPSILON__ 2.2204460492503131e-16 | |
#define __DBL_HAS_INFINITY__ 1 | |
#define __DBL_HAS_QUIET_NAN__ 1 | |
#define __DBL_MANT_DIG__ 53 | |
#define __DBL_MAX_10_EXP__ 308 | |
#define __DBL_MAX_EXP__ 1024 | |
#define __DBL_MAX__ 1.7976931348623157e+308 | |
#define __DBL_MIN_10_EXP__ (-307) | |
#define __DBL_MIN_EXP__ (-1021) | |
#define __DBL_MIN__ 2.2250738585072014e-308 | |
#define __LDBL_DENORM_MIN__ 3.64519953188247460253e-4951L | |
#define __LDBL_HAS_DENORM__ 1 | |
#define __LDBL_DIG__ 18 | |
#define __LDBL_DECIMAL_DIG__ 21 | |
#define __LDBL_EPSILON__ 1.08420217248550443401e-19L | |
#define __LDBL_HAS_INFINITY__ 1 | |
#define __LDBL_HAS_QUIET_NAN__ 1 | |
#define __LDBL_MANT_DIG__ 64 | |
#define __LDBL_MAX_10_EXP__ 4932 | |
#define __LDBL_MAX_EXP__ 16384 | |
#define __LDBL_MAX__ 1.18973149535723176502e+4932L | |
#define __LDBL_MIN_10_EXP__ (-4931) | |
#define __LDBL_MIN_EXP__ (-16381) | |
#define __LDBL_MIN__ 3.36210314311209350626e-4932L | |
#define __POINTER_WIDTH__ 64 | |
#define __BIGGEST_ALIGNMENT__ 16 | |
#define __WINT_UNSIGNED__ 1 | |
#define __INT8_TYPE__ signed char | |
#define __INT8_FMTd__ "hhd" | |
#define __INT8_FMTi__ "hhi" | |
#define __INT8_C_SUFFIX__ | |
#define __INT16_TYPE__ short | |
#define __INT16_FMTd__ "hd" | |
#define __INT16_FMTi__ "hi" | |
#define __INT16_C_SUFFIX__ | |
#define __INT32_TYPE__ int | |
#define __INT32_FMTd__ "d" | |
#define __INT32_FMTi__ "i" | |
#define __INT32_C_SUFFIX__ | |
#define __INT64_TYPE__ long int | |
#define __INT64_FMTd__ "ld" | |
#define __INT64_FMTi__ "li" | |
#define __INT64_C_SUFFIX__ L | |
#define __UINT8_TYPE__ unsigned char | |
#define __UINT8_FMTo__ "hho" | |
#define __UINT8_FMTu__ "hhu" | |
#define __UINT8_FMTx__ "hhx" | |
#define __UINT8_FMTX__ "hhX" | |
#define __UINT8_C_SUFFIX__ | |
#define __UINT8_MAX__ 255 | |
#define __INT8_MAX__ 127 | |
#define __UINT16_TYPE__ unsigned short | |
#define __UINT16_FMTo__ "ho" | |
#define __UINT16_FMTu__ "hu" | |
#define __UINT16_FMTx__ "hx" | |
#define __UINT16_FMTX__ "hX" | |
#define __UINT16_C_SUFFIX__ | |
#define __UINT16_MAX__ 65535 | |
#define __INT16_MAX__ 32767 | |
#define __UINT32_TYPE__ unsigned int | |
#define __UINT32_FMTo__ "o" | |
#define __UINT32_FMTu__ "u" | |
#define __UINT32_FMTx__ "x" | |
#define __UINT32_FMTX__ "X" | |
#define __UINT32_C_SUFFIX__ U | |
#define __UINT32_MAX__ 4294967295U | |
#define __INT32_MAX__ 2147483647 | |
#define __UINT64_TYPE__ long unsigned int | |
#define __UINT64_FMTo__ "lo" | |
#define __UINT64_FMTu__ "lu" | |
#define __UINT64_FMTx__ "lx" | |
#define __UINT64_FMTX__ "lX" | |
#define __UINT64_C_SUFFIX__ UL | |
#define __UINT64_MAX__ 18446744073709551615UL | |
#define __INT64_MAX__ 9223372036854775807L | |
#define __INT_LEAST8_TYPE__ signed char | |
#define __INT_LEAST8_MAX__ 127 | |
#define __INT_LEAST8_WIDTH__ 8 | |
#define __INT_LEAST8_FMTd__ "hhd" | |
#define __INT_LEAST8_FMTi__ "hhi" | |
#define __UINT_LEAST8_TYPE__ unsigned char | |
#define __UINT_LEAST8_MAX__ 255 | |
#define __UINT_LEAST8_FMTo__ "hho" | |
#define __UINT_LEAST8_FMTu__ "hhu" | |
#define __UINT_LEAST8_FMTx__ "hhx" | |
#define __UINT_LEAST8_FMTX__ "hhX" | |
#define __INT_LEAST16_TYPE__ short | |
#define __INT_LEAST16_MAX__ 32767 | |
#define __INT_LEAST16_WIDTH__ 16 | |
#define __INT_LEAST16_FMTd__ "hd" | |
#define __INT_LEAST16_FMTi__ "hi" | |
#define __UINT_LEAST16_TYPE__ unsigned short | |
#define __UINT_LEAST16_MAX__ 65535 | |
#define __UINT_LEAST16_FMTo__ "ho" | |
#define __UINT_LEAST16_FMTu__ "hu" | |
#define __UINT_LEAST16_FMTx__ "hx" | |
#define __UINT_LEAST16_FMTX__ "hX" | |
#define __INT_LEAST32_TYPE__ int | |
#define __INT_LEAST32_MAX__ 2147483647 | |
#define __INT_LEAST32_WIDTH__ 32 | |
#define __INT_LEAST32_FMTd__ "d" | |
#define __INT_LEAST32_FMTi__ "i" | |
#define __UINT_LEAST32_TYPE__ unsigned int | |
#define __UINT_LEAST32_MAX__ 4294967295U | |
#define __UINT_LEAST32_FMTo__ "o" | |
#define __UINT_LEAST32_FMTu__ "u" | |
#define __UINT_LEAST32_FMTx__ "x" | |
#define __UINT_LEAST32_FMTX__ "X" | |
#define __INT_LEAST64_TYPE__ long int | |
#define __INT_LEAST64_MAX__ 9223372036854775807L | |
#define __INT_LEAST64_WIDTH__ 64 | |
#define __INT_LEAST64_FMTd__ "ld" | |
#define __INT_LEAST64_FMTi__ "li" | |
#define __UINT_LEAST64_TYPE__ long unsigned int | |
#define __UINT_LEAST64_MAX__ 18446744073709551615UL | |
#define __UINT_LEAST64_FMTo__ "lo" | |
#define __UINT_LEAST64_FMTu__ "lu" | |
#define __UINT_LEAST64_FMTx__ "lx" | |
#define __UINT_LEAST64_FMTX__ "lX" | |
#define __INT_FAST8_TYPE__ signed char | |
#define __INT_FAST8_MAX__ 127 | |
#define __INT_FAST8_WIDTH__ 8 | |
#define __INT_FAST8_FMTd__ "hhd" | |
#define __INT_FAST8_FMTi__ "hhi" | |
#define __UINT_FAST8_TYPE__ unsigned char | |
#define __UINT_FAST8_MAX__ 255 | |
#define __UINT_FAST8_FMTo__ "hho" | |
#define __UINT_FAST8_FMTu__ "hhu" | |
#define __UINT_FAST8_FMTx__ "hhx" | |
#define __UINT_FAST8_FMTX__ "hhX" | |
#define __INT_FAST16_TYPE__ short | |
#define __INT_FAST16_MAX__ 32767 | |
#define __INT_FAST16_WIDTH__ 16 | |
#define __INT_FAST16_FMTd__ "hd" | |
#define __INT_FAST16_FMTi__ "hi" | |
#define __UINT_FAST16_TYPE__ unsigned short | |
#define __UINT_FAST16_MAX__ 65535 | |
#define __UINT_FAST16_FMTo__ "ho" | |
#define __UINT_FAST16_FMTu__ "hu" | |
#define __UINT_FAST16_FMTx__ "hx" | |
#define __UINT_FAST16_FMTX__ "hX" | |
#define __INT_FAST32_TYPE__ int | |
#define __INT_FAST32_MAX__ 2147483647 | |
#define __INT_FAST32_WIDTH__ 32 | |
#define __INT_FAST32_FMTd__ "d" | |
#define __INT_FAST32_FMTi__ "i" | |
#define __UINT_FAST32_TYPE__ unsigned int | |
#define __UINT_FAST32_MAX__ 4294967295U | |
#define __UINT_FAST32_FMTo__ "o" | |
#define __UINT_FAST32_FMTu__ "u" | |
#define __UINT_FAST32_FMTx__ "x" | |
#define __UINT_FAST32_FMTX__ "X" | |
#define __INT_FAST64_TYPE__ long int | |
#define __INT_FAST64_MAX__ 9223372036854775807L | |
#define __INT_FAST64_WIDTH__ 64 | |
#define __INT_FAST64_FMTd__ "ld" | |
#define __INT_FAST64_FMTi__ "li" | |
#define __UINT_FAST64_TYPE__ long unsigned int | |
#define __UINT_FAST64_MAX__ 18446744073709551615UL | |
#define __UINT_FAST64_FMTo__ "lo" | |
#define __UINT_FAST64_FMTu__ "lu" | |
#define __UINT_FAST64_FMTx__ "lx" | |
#define __UINT_FAST64_FMTX__ "lX" | |
#define __USER_LABEL_PREFIX__ | |
#define __FINITE_MATH_ONLY__ 0 | |
#define __GNUC_GNU_INLINE__ 1 | |
#define __GCC_ATOMIC_TEST_AND_SET_TRUEVAL 1 | |
#define __CLANG_ATOMIC_BOOL_LOCK_FREE 2 | |
#define __CLANG_ATOMIC_CHAR_LOCK_FREE 2 | |
#define __CLANG_ATOMIC_CHAR16_T_LOCK_FREE 2 | |
#define __CLANG_ATOMIC_CHAR32_T_LOCK_FREE 2 | |
#define __CLANG_ATOMIC_WCHAR_T_LOCK_FREE 2 | |
#define __CLANG_ATOMIC_SHORT_LOCK_FREE 2 | |
#define __CLANG_ATOMIC_INT_LOCK_FREE 2 | |
#define __CLANG_ATOMIC_LONG_LOCK_FREE 2 | |
#define __CLANG_ATOMIC_LLONG_LOCK_FREE 2 | |
#define __CLANG_ATOMIC_POINTER_LOCK_FREE 2 | |
#define __GCC_ATOMIC_BOOL_LOCK_FREE 2 | |
#define __GCC_ATOMIC_CHAR_LOCK_FREE 2 | |
#define __GCC_ATOMIC_CHAR16_T_LOCK_FREE 2 | |
#define __GCC_ATOMIC_CHAR32_T_LOCK_FREE 2 | |
#define __GCC_ATOMIC_WCHAR_T_LOCK_FREE 2 | |
#define __GCC_ATOMIC_SHORT_LOCK_FREE 2 | |
#define __GCC_ATOMIC_INT_LOCK_FREE 2 | |
#define __GCC_ATOMIC_LONG_LOCK_FREE 2 | |
#define __GCC_ATOMIC_LLONG_LOCK_FREE 2 | |
#define __GCC_ATOMIC_POINTER_LOCK_FREE 2 | |
#define __PIC__ 2 | |
#define __pic__ 2 | |
#define __FLT_RADIX__ 2 | |
#define __DECIMAL_DIG__ __LDBL_DECIMAL_DIG__ | |
#define __SSP__ 1 | |
#define __GCC_ASM_FLAG_OUTPUTS__ 1 | |
#define __code_model_small__ 1 | |
#define __amd64__ 1 | |
#define __amd64 1 | |
#define __x86_64 1 | |
#define __x86_64__ 1 | |
#define __SEG_GS 1 | |
#define __SEG_FS 1 | |
#define __seg_gs __attribute__((address_space(256))) | |
#define __seg_fs __attribute__((address_space(257))) | |
#define __k8 1 | |
#define __k8__ 1 | |
#define __tune_k8__ 1 | |
#define __REGISTER_PREFIX__ | |
#define __NO_MATH_INLINES 1 | |
#define __FXSR__ 1 | |
#define __SSE3__ 1 | |
#define __SSE2__ 1 | |
#define __SSE2_MATH__ 1 | |
#define __SSE__ 1 | |
#define __SSE_MATH__ 1 | |
#define __MMX__ 1 | |
#define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_1 1 | |
#define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_2 1 | |
#define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_4 1 | |
#define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_8 1 | |
#define __SIZEOF_FLOAT128__ 16 | |
#define __unix 1 | |
#define __unix__ 1 | |
#define __linux 1 | |
#define __linux__ 1 | |
#define __ELF__ 1 | |
#define __gnu_linux__ 1 | |
#define _REENTRANT 1 | |
#define _GNU_SOURCE 1 | |
#define __FLOAT128__ 1 | |
#define __STDC__ 1 | |
#define __STDC_HOSTED__ 1 | |
#define __cplusplus 201703L | |
#define __STDCPP_DEFAULT_NEW_ALIGNMENT__ 16UL | |
#define __STDCPP_THREADS__ 1 | |
#define __STDC_UTF_16__ 1 | |
#define __STDC_UTF_32__ 1 | |
# 1 "<command line>" 1 | |
#define BASE_IMPLEMENTATION 1 | |
#define USE_SYMBOLIZE 1 | |
#define USE_UDEV 1 | |
#define USE_AURA 1 | |
#define USE_GLIB 1 | |
#define USE_OZONE 1 | |
#define __STDC_CONSTANT_MACROS 1 | |
#define __STDC_FORMAT_MACROS 1 | |
#define _FORTIFY_SOURCE 2 | |
#define _FILE_OFFSET_BITS 64 | |
#define _LARGEFILE_SOURCE 1 | |
#define _LARGEFILE64_SOURCE 1 | |
#define _GNU_SOURCE 1 | |
#define CR_CLANG_REVISION "llvmorg-16-init-3375-gfed71b04-2" | |
#define _LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS 1 | |
#define _LIBCXXABI_DISABLE_VISIBILITY_ANNOTATIONS 1 | |
#define CR_LIBCXX_REVISION 0bcb3f7dbb17aec41ef73530bfea8e54be5c2e79 | |
#define CR_SYSROOT_HASH cb4fa34f1faddafb72cace35faf62a611f2ca7c9 | |
#define NDEBUG 1 | |
#define NVALGRIND 1 | |
#define DYNAMIC_ANNOTATIONS_ENABLED 0 | |
#define GLIB_VERSION_MAX_ALLOWED GLIB_VERSION_2_40 | |
#define GLIB_VERSION_MIN_REQUIRED GLIB_VERSION_2_40 | |
#define GLOG_EXPORT | |
#define U_USING_ICU_NAMESPACE 0 | |
#define U_ENABLE_DYLOAD 0 | |
#define USE_CHROMIUM_ICU 1 | |
#define U_ENABLE_TRACING 1 | |
#define U_ENABLE_RESOURCE_TRACING 0 | |
#define U_STATIC_IMPLEMENTATION 1 | |
#define ICU_UTIL_DATA_IMPL ICU_UTIL_DATA_FILE | |
#define __DATE__ | |
#define __TIME__ | |
#define __TIMESTAMP__ | |
#define PROTOBUF_ALLOW_DEPRECATED 1 | |
#define __GCC_HAVE_DWARF2_CFI_ASM 1 | |
# 1 "<built-in>" 2 | |
# 1 "../../base/rand_util_posix.cc" 2 | |
# 1 "../../base/rand_util.h" 1 | |
#define BASE_RAND_UTIL_H_ | |
# 1 "../../buildtools/third_party/libc++/trunk/include/stddef.h" 1 3 | |
# 20 "../../buildtools/third_party/libc++/trunk/include/stddef.h" 3 | |
#define _LIBCPP_STDDEF_H | |
# 39 "../../buildtools/third_party/libc++/trunk/include/stddef.h" 3 | |
# 1 "../../buildtools/third_party/libc++/trunk/include/__config" 1 3 | |
# 11 "../../buildtools/third_party/libc++/trunk/include/__config" 3 | |
#define _LIBCPP___CONFIG | |
# 1 "../../buildtools/third_party/libc++/__config_site" 1 3 | |
#define _LIBCPP_CONFIG_SITE | |
# 14 "../../buildtools/third_party/libc++/__config_site" 3 | |
#define _LIBCPP_ABI_NAMESPACE Cr | |
#define _LIBCPP_ABI_VERSION 2 | |
# 27 "../../buildtools/third_party/libc++/__config_site" 3 | |
#define _LIBCPP_HAS_NO_VENDOR_AVAILABILITY_ANNOTATIONS | |
# 38 "../../buildtools/third_party/libc++/__config_site" 3 | |
#define _LIBCPP_ENABLE_ASSERTIONS_DEFAULT 1 | |
# 48 "../../buildtools/third_party/libc++/__config_site" 3 | |
#define _LIBCPP_NO_AUTO_LINK | |
#define _LIBCPP_REMOVE_TRANSITIVE_INCLUDES | |
# 14 "../../buildtools/third_party/libc++/trunk/include/__config" 2 3 | |
# 23 "../../buildtools/third_party/libc++/trunk/include/__config" 3 | |
#define _LIBCPP_VERSION 16000 | |
#define _LIBCPP_CONCAT_IMPL(_X,_Y) _X##_Y | |
#define _LIBCPP_CONCAT(_X,_Y) _LIBCPP_CONCAT_IMPL(_X, _Y) | |
#define _LIBCPP_VERSIONED_IDENTIFIER _LIBCPP_CONCAT(v, _LIBCPP_VERSION) | |
# 46 "../../buildtools/third_party/libc++/trunk/include/__config" 3 | |
#define _LIBCPP_STD_VER 17 | |
#define _LIBCPP_OBJECT_FORMAT_ELF 1 | |
# 71 "../../buildtools/third_party/libc++/trunk/include/__config" 3 | |
#define _LIBCPP_ABI_ALTERNATE_STRING_LAYOUT | |
#define _LIBCPP_ABI_INCOMPLETE_TYPES_IN_DEQUE | |
#define _LIBCPP_ABI_LIST_REMOVE_NODE_POINTER_UB | |
#define _LIBCPP_ABI_TREE_REMOVE_NODE_POINTER_UB | |
#define _LIBCPP_ABI_FIX_UNORDERED_NODE_POINTER_UB | |
#define _LIBCPP_ABI_FORWARD_LIST_REMOVE_NODE_POINTER_UB | |
#define _LIBCPP_ABI_FIX_UNORDERED_CONTAINER_SIZE_TYPE | |
#define _LIBCPP_ABI_BAD_FUNCTION_CALL_KEY_FUNCTION | |
#define _LIBCPP_ABI_BAD_FUNCTION_CALL_GOOD_WHAT_MESSAGE | |
#define _LIBCPP_ABI_OPTIMIZED_LOCALE_NUM_GET | |
#define _LIBCPP_ABI_NO_ITERATOR_BASES | |
#define _LIBCPP_ABI_VARIANT_INDEX_TYPE_OPTIMIZATION | |
#define _LIBCPP_ABI_OPTIMIZED_FUNCTION | |
#define _LIBCPP_ABI_REGEX_CONSTANTS_NONZERO | |
#define _LIBCPP_ABI_STRING_OPTIMIZED_EXTERNAL_INSTANTIATION | |
#define _LIBCPP_ABI_ENABLE_UNIQUE_PTR_TRIVIAL_ABI | |
#define _LIBCPP_ABI_ENABLE_SHARED_PTR_TRIVIAL_ABI | |
#define _LIBCPP_ABI_NO_RANDOM_DEVICE_COMPATIBILITY_LAYOUT | |
#define _LIBCPP_ABI_DO_NOT_EXPORT_BASIC_STRING_COMMON | |
#define _LIBCPP_ABI_DO_NOT_EXPORT_VECTOR_BASE_COMMON | |
#define _LIBCPP_ABI_BITSET_VECTOR_BOOL_CONST_SUBSCRIPT_RETURN_BOOL | |
#define _LIBCPP_ABI_DO_NOT_EXPORT_TO_CHARS_BASE_10 | |
# 150 "../../buildtools/third_party/libc++/trunk/include/__config" 3 | |
#define _LIBCPP_ABI_ENABLE_ADDITIONAL_IOSTREAM_EXPLICIT_INSTANTIATIONS_1 | |
#define _LIBCPP_ABI_BAD_FUNCTION_CALL_KEY_FUNCTION | |
#define _LIBCPP_TOSTRING2(x) #x | |
#define _LIBCPP_TOSTRING(x) _LIBCPP_TOSTRING2(x) | |
# 195 "../../buildtools/third_party/libc++/trunk/include/__config" 3 | |
#define __has_keyword(__x) !(__is_identifier(__x)) | |
# 205 "../../buildtools/third_party/libc++/trunk/include/__config" 3 | |
#define _LIBCPP_COMPILER_CLANG_BASED | |
#define _LIBCPP_CLANG_VER (__clang_major__ * 100 + __clang_minor__) | |
# 238 "../../buildtools/third_party/libc++/trunk/include/__config" 3 | |
#define _LIBCPP_ABI_ITANIUM | |
# 255 "../../buildtools/third_party/libc++/trunk/include/__config" 3 | |
#define _LIBCPP_HAS_NO_INCOMPLETE_FORMAT | |
# 1 "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/features.h" 1 3 4 | |
# 19 "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/features.h" 3 4 | |
#define _FEATURES_H 1 | |
# 120 "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/features.h" 3 4 | |
#undef __USE_ISOC11 | |
#undef __USE_ISOC99 | |
#undef __USE_ISOC95 | |
#undef __USE_ISOCXX11 | |
#undef __USE_POSIX | |
#undef __USE_POSIX2 | |
#undef __USE_POSIX199309 | |
#undef __USE_POSIX199506 | |
#undef __USE_XOPEN | |
#undef __USE_XOPEN_EXTENDED | |
#undef __USE_UNIX98 | |
#undef __USE_XOPEN2K | |
#undef __USE_XOPEN2KXSI | |
#undef __USE_XOPEN2K8 | |
#undef __USE_XOPEN2K8XSI | |
#undef __USE_LARGEFILE | |
#undef __USE_LARGEFILE64 | |
#undef __USE_FILE_OFFSET64 | |
#undef __USE_MISC | |
#undef __USE_ATFILE | |
#undef __USE_GNU | |
#undef __USE_FORTIFY_LEVEL | |
#undef __KERNEL_STRICT_NAMES | |
#undef __GLIBC_USE_ISOC2X | |
#undef __GLIBC_USE_DEPRECATED_GETS | |
#undef __GLIBC_USE_DEPRECATED_SCANF | |
#define __KERNEL_STRICT_NAMES | |
# 161 "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/features.h" 3 4 | |
#define __GNUC_PREREQ(maj,min) ((__GNUC__ << 16) + __GNUC_MINOR__ >= ((maj) << 16) + (min)) | |
# 172 "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/features.h" 3 4 | |
#define __glibc_clang_prereq(maj,min) ((__clang_major__ << 16) + __clang_minor__ >= ((maj) << 16) + (min)) | |
#define __GLIBC_USE(F) __GLIBC_USE_ ## F | |
# 194 "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/features.h" 3 4 | |
#undef _ISOC95_SOURCE | |
#define _ISOC95_SOURCE 1 | |
#undef _ISOC99_SOURCE | |
#define _ISOC99_SOURCE 1 | |
#undef _ISOC11_SOURCE | |
#define _ISOC11_SOURCE 1 | |
#undef _ISOC2X_SOURCE | |
#define _ISOC2X_SOURCE 1 | |
#undef _POSIX_SOURCE | |
#define _POSIX_SOURCE 1 | |
#undef _POSIX_C_SOURCE | |
#define _POSIX_C_SOURCE 200809L | |
#undef _XOPEN_SOURCE | |
#define _XOPEN_SOURCE 700 | |
#undef _XOPEN_SOURCE_EXTENDED | |
#define _XOPEN_SOURCE_EXTENDED 1 | |
#undef _LARGEFILE64_SOURCE | |
#define _LARGEFILE64_SOURCE 1 | |
#undef _DEFAULT_SOURCE | |
#define _DEFAULT_SOURCE 1 | |
#undef _ATFILE_SOURCE | |
#define _ATFILE_SOURCE 1 | |
# 226 "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/features.h" 3 4 | |
#undef _DEFAULT_SOURCE | |
#define _DEFAULT_SOURCE 1 | |
#define __GLIBC_USE_ISOC2X 1 | |
#define __USE_ISOC11 1 | |
#define __USE_ISOC99 1 | |
#define __USE_ISOC95 1 | |
#define __USE_ISOC11 1 | |
#define __USE_ISOCXX11 1 | |
#define __USE_ISOC99 1 | |
# 278 "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/features.h" 3 4 | |
#undef _POSIX_SOURCE | |
#define _POSIX_SOURCE 1 | |
#undef _POSIX_C_SOURCE | |
#define _POSIX_C_SOURCE 200809L | |
# 316 "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/features.h" 3 4 | |
#define __USE_POSIX 1 | |
#define __USE_POSIX2 1 | |
#define __USE_POSIX199309 1 | |
#define __USE_POSIX199506 1 | |
#define __USE_XOPEN2K 1 | |
#undef __USE_ISOC95 | |
#define __USE_ISOC95 1 | |
#undef __USE_ISOC99 | |
#define __USE_ISOC99 1 | |
#define __USE_XOPEN2K8 1 | |
#undef _ATFILE_SOURCE | |
#define _ATFILE_SOURCE 1 | |
#define __USE_XOPEN 1 | |
#define __USE_XOPEN_EXTENDED 1 | |
#define __USE_UNIX98 1 | |
#undef _LARGEFILE_SOURCE | |
#define _LARGEFILE_SOURCE 1 | |
#define __USE_XOPEN2K8 1 | |
#define __USE_XOPEN2K8XSI 1 | |
#define __USE_XOPEN2K 1 | |
#define __USE_XOPEN2KXSI 1 | |
#undef __USE_ISOC95 | |
#define __USE_ISOC95 1 | |
#undef __USE_ISOC99 | |
#define __USE_ISOC99 1 | |
# 372 "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/features.h" 3 4 | |
#define __USE_LARGEFILE 1 | |
#define __USE_LARGEFILE64 1 | |
#define __USE_FILE_OFFSET64 1 | |
#define __USE_MISC 1 | |
#define __USE_ATFILE 1 | |
#define __USE_GNU 1 | |
#define __USE_FORTIFY_LEVEL 2 | |
# 411 "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/features.h" 3 4 | |
#define __GLIBC_USE_DEPRECATED_GETS 0 | |
# 434 "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/features.h" 3 4 | |
#define __GLIBC_USE_DEPRECATED_SCANF 0 | |
# 1 "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/stdc-predef.h" 1 3 4 | |
# 19 "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/stdc-predef.h" 3 4 | |
#define _STDC_PREDEF_H 1 | |
# 41 "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/stdc-predef.h" 3 4 | |
#define __STDC_IEC_559__ 1 | |
#define __STDC_IEC_559_COMPLEX__ 1 | |
#define __STDC_ISO_10646__ 201706L | |
# 440 "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/features.h" 2 3 4 | |
#undef __GNU_LIBRARY__ | |
#define __GNU_LIBRARY__ 6 | |
#define __GLIBC__ 2 | |
#define __GLIBC_MINOR__ 17 | |
#define __GLIBC_PREREQ(maj,min) ((__GLIBC__ << 16) + __GLIBC_MINOR__ >= ((maj) << 16) + (min)) | |
# 1 "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/x86_64-linux-gnu/sys/cdefs.h" 1 3 4 | |
# 19 "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/x86_64-linux-gnu/sys/cdefs.h" 3 4 | |
#define _SYS_CDEFS_H 1 | |
# 34 "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/x86_64-linux-gnu/sys/cdefs.h" 3 4 | |
#undef __P | |
#undef __PMT | |
# 45 "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/x86_64-linux-gnu/sys/cdefs.h" 3 4 | |
#define __LEAF | |
#define __LEAF_ATTR | |
# 61 "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/x86_64-linux-gnu/sys/cdefs.h" 3 4 | |
#define __THROW throw () | |
#define __THROWNL throw () | |
#define __NTH(fct) __LEAF_ATTR fct throw () | |
#define __NTHNL(fct) fct throw () | |
# 92 "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/x86_64-linux-gnu/sys/cdefs.h" 3 4 | |
#define __glibc_clang_has_extension(ext) __has_extension (ext) | |
#define __P(args) args | |
#define __PMT(args) args | |
#define __CONCAT(x,y) x ## y | |
#define __STRING(x) #x | |
#define __ptr_t void * | |
#define __BEGIN_DECLS extern "C" { | |
#define __END_DECLS } | |
#define __bos(ptr) __builtin_object_size (ptr, __USE_FORTIFY_LEVEL > 1) | |
#define __bos0(ptr) __builtin_object_size (ptr, 0) | |
#define __warndecl(name,msg) extern void name (void) | |
#define __warnattr(msg) | |
#define __errordecl(name,msg) extern void name (void) | |
# 148 "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/x86_64-linux-gnu/sys/cdefs.h" 3 4 | |
#define __flexarr [] | |
#define __glibc_c99_flexarr_available 1 | |
# 174 "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/x86_64-linux-gnu/sys/cdefs.h" 3 4 | |
#define __REDIRECT(name,proto,alias) name proto __asm__ (__ASMNAME (#alias)) | |
#define __REDIRECT_NTH(name,proto,alias) name proto __THROW __asm__ (__ASMNAME (#alias)) | |
#define __REDIRECT_NTHNL(name,proto,alias) name proto __THROWNL __asm__ (__ASMNAME (#alias)) | |
#define __ASMNAME(cname) __ASMNAME2 (__USER_LABEL_PREFIX__, cname) | |
#define __ASMNAME2(prefix,cname) __STRING (prefix) cname | |
# 208 "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/x86_64-linux-gnu/sys/cdefs.h" 3 4 | |
#define __attribute_malloc__ __attribute__ ((__malloc__)) | |
# 219 "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/x86_64-linux-gnu/sys/cdefs.h" 3 4 | |
#define __attribute_alloc_size__(params) | |
#define __attribute_pure__ __attribute__ ((__pure__)) | |
#define __attribute_const__ __attribute__ ((__const__)) | |
#define __attribute_used__ __attribute__ ((__used__)) | |
#define __attribute_noinline__ __attribute__ ((__noinline__)) | |
#define __attribute_deprecated__ __attribute__ ((__deprecated__)) | |
# 261 "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/x86_64-linux-gnu/sys/cdefs.h" 3 4 | |
#define __attribute_deprecated_msg__(msg) __attribute__ ((__deprecated__ (msg))) | |
# 274 "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/x86_64-linux-gnu/sys/cdefs.h" 3 4 | |
#define __attribute_format_arg__(x) __attribute__ ((__format_arg__ (x))) | |
# 284 "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/x86_64-linux-gnu/sys/cdefs.h" 3 4 | |
#define __attribute_format_strfmon__(a,b) __attribute__ ((__format__ (__strfmon__, a, b))) | |
#define __nonnull(params) __attribute__ ((__nonnull__ params)) | |
#define __attribute_warn_unused_result__ __attribute__ ((__warn_unused_result__)) | |
#define __wur __attribute_warn_unused_result__ | |
# 318 "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/x86_64-linux-gnu/sys/cdefs.h" 3 4 | |
#undef __always_inline | |
#define __always_inline __inline __attribute__ ((__always_inline__)) | |
# 330 "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/x86_64-linux-gnu/sys/cdefs.h" 3 4 | |
#define __attribute_artificial__ | |
# 346 "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/x86_64-linux-gnu/sys/cdefs.h" 3 4 | |
#define __extern_inline extern __inline __attribute__ ((__gnu_inline__)) | |
#define __extern_always_inline extern __always_inline __attribute__ ((__gnu_inline__)) | |
#define __fortify_function __extern_always_inline __attribute_artificial__ | |
# 390 "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/x86_64-linux-gnu/sys/cdefs.h" 3 4 | |
#define __restrict_arr | |
# 402 "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/x86_64-linux-gnu/sys/cdefs.h" 3 4 | |
#define __glibc_unlikely(cond) __builtin_expect ((cond), 0) | |
#define __glibc_likely(cond) __builtin_expect ((cond), 1) | |
#define __glibc_has_attribute(attr) __has_attribute (attr) | |
#define _Noreturn __attribute__ ((__noreturn__)) | |
# 431 "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/x86_64-linux-gnu/sys/cdefs.h" 3 4 | |
#define __attribute_nonstring__ | |
#undef __attribute_copy__ | |
#define __attribute_copy__(arg) | |
# 452 "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/x86_64-linux-gnu/sys/cdefs.h" 3 4 | |
# 1 "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/x86_64-linux-gnu/bits/wordsize.h" 1 3 4 | |
#define __WORDSIZE 64 | |
#define __WORDSIZE_TIME64_COMPAT32 1 | |
#define __SYSCALL_WORDSIZE 64 | |
# 453 "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/x86_64-linux-gnu/sys/cdefs.h" 2 3 4 | |
# 1 "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/x86_64-linux-gnu/bits/long-double.h" 1 3 4 | |
# 21 "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/x86_64-linux-gnu/bits/long-double.h" 3 4 | |
#define __LONG_DOUBLE_USES_FLOAT128 0 | |
# 454 "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/x86_64-linux-gnu/sys/cdefs.h" 2 3 4 | |
# 475 "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/x86_64-linux-gnu/sys/cdefs.h" 3 4 | |
#define __LDBL_REDIR1(name,proto,alias) name proto | |
#define __LDBL_REDIR(name,proto) name proto | |
#define __LDBL_REDIR1_NTH(name,proto,alias) name proto __THROW | |
#define __LDBL_REDIR_NTH(name,proto) name proto __THROW | |
#define __LDBL_REDIR_DECL(name) | |
#define __REDIRECT_LDBL(name,proto,alias) __REDIRECT (name, proto, alias) | |
#define __REDIRECT_NTH_LDBL(name,proto,alias) __REDIRECT_NTH (name, proto, alias) | |
# 493 "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/x86_64-linux-gnu/sys/cdefs.h" 3 4 | |
#define __glibc_macro_warning1(message) _Pragma (#message) | |
#define __glibc_macro_warning(message) __glibc_macro_warning1 (GCC warning message) | |
# 514 "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/x86_64-linux-gnu/sys/cdefs.h" 3 4 | |
#define __HAVE_GENERIC_SELECTION 0 | |
# 462 "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/features.h" 2 3 4 | |
# 477 "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/features.h" 3 4 | |
#define __USE_EXTERN_INLINES 1 | |
# 1 "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/x86_64-linux-gnu/gnu/stubs.h" 1 3 4 | |
# 10 "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/x86_64-linux-gnu/gnu/stubs.h" 3 4 | |
# 1 "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/x86_64-linux-gnu/gnu/stubs-64.h" 1 3 4 | |
# 10 "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/x86_64-linux-gnu/gnu/stubs-64.h" 3 4 | |
#define __stub___compat_bdflush | |
#define __stub_chflags | |
#define __stub_fchflags | |
#define __stub_gtty | |
#define __stub_lchmod | |
#define __stub_revoke | |
#define __stub_setlogin | |
#define __stub_sigreturn | |
#define __stub_sstk | |
#define __stub_stty | |
# 11 "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/x86_64-linux-gnu/gnu/stubs.h" 2 3 4 | |
# 486 "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/features.h" 2 3 4 | |
# 261 "../../buildtools/third_party/libc++/trunk/include/__config" 2 3 | |
#define _LIBCPP_GLIBC_PREREQ(a,b) __GLIBC_PREREQ(a, b) | |
# 274 "../../buildtools/third_party/libc++/trunk/include/__config" 3 | |
#define _LIBCPP_LITTLE_ENDIAN | |
# 286 "../../buildtools/third_party/libc++/trunk/include/__config" 3 | |
#define _LIBCPP_LITTLE_ENDIAN | |
# 392 "../../buildtools/third_party/libc++/trunk/include/__config" 3 | |
#define _LIBCPP_USING_DEV_RANDOM | |
# 407 "../../buildtools/third_party/libc++/trunk/include/__config" 3 | |
#define _LIBCPP_NO_CFI __attribute__((__no_sanitize__("cfi"))) | |
#define _LIBCPP_ALIGNOF(_Tp) alignof(_Tp) | |
#define _ALIGNAS_TYPE(x) alignas(x) | |
#define _ALIGNAS(x) alignas(x) | |
#define _LIBCPP_NORETURN [[noreturn]] | |
#define _NOEXCEPT noexcept | |
#define _NOEXCEPT_(x) noexcept(x) | |
#define _LIBCPP_CONSTEXPR constexpr | |
# 442 "../../buildtools/third_party/libc++/trunk/include/__config" 3 | |
#define _LIBCPP_NO_EXCEPTIONS | |
#define _LIBCPP_PREFERRED_ALIGNOF(_Tp) __alignof(_Tp) | |
# 471 "../../buildtools/third_party/libc++/trunk/include/__config" 3 | |
#define _LIBCPP_HAS_NO_ASAN | |
#define _LIBCPP_DISABLE_UBSAN_UNSIGNED_INTEGER_CHECK __attribute__((__no_sanitize__("unsigned-integer-overflow"))) | |
#define _LIBCPP_ALWAYS_INLINE __attribute__((__always_inline__)) | |
#define _LIBCPP_DISABLE_EXTENSION_WARNING __extension__ | |
# 562 "../../buildtools/third_party/libc++/trunk/include/__config" 3 | |
#define _LIBCPP_VISIBILITY(vis) | |
#define _LIBCPP_HIDDEN _LIBCPP_VISIBILITY("hidden") | |
#define _LIBCPP_FUNC_VIS _LIBCPP_VISIBILITY("default") | |
#define _LIBCPP_TYPE_VIS _LIBCPP_VISIBILITY("default") | |
#define _LIBCPP_TEMPLATE_DATA_VIS _LIBCPP_VISIBILITY("default") | |
#define _LIBCPP_EXPORTED_FROM_ABI _LIBCPP_VISIBILITY("default") | |
#define _LIBCPP_EXCEPTION_ABI _LIBCPP_VISIBILITY("default") | |
#define _LIBCPP_EXTERN_TEMPLATE_TYPE_VIS _LIBCPP_VISIBILITY("default") | |
#define _LIBCPP_CLASS_TEMPLATE_INSTANTIATION_VIS | |
#define _LIBCPP_OVERRIDABLE_FUNC_VIS _LIBCPP_VISIBILITY("default") | |
#define _LIBCPP_METHOD_TEMPLATE_IMPLICIT_INSTANTIATION_VIS | |
# 593 "../../buildtools/third_party/libc++/trunk/include/__config" 3 | |
#define _LIBCPP_TEMPLATE_VIS | |
#define _LIBCPP_ENUM_VIS | |
#define _LIBCPP_EXCLUDE_FROM_EXPLICIT_INSTANTIATION __attribute__((__exclude_from_explicit_instantiation__)) | |
# 637 "../../buildtools/third_party/libc++/trunk/include/__config" 3 | |
#define _LIBCPP_HIDE_FROM_ABI _LIBCPP_HIDDEN _LIBCPP_EXCLUDE_FROM_EXPLICIT_INSTANTIATION __attribute__((__abi_tag__(_LIBCPP_TOSTRING(_LIBCPP_VERSIONED_IDENTIFIER)))) | |
# 651 "../../buildtools/third_party/libc++/trunk/include/__config" 3 | |
#define _LIBCPP_HIDE_FROM_ABI_AFTER_V1 _LIBCPP_HIDE_FROM_ABI | |
#define _LIBCPP_INLINE_VISIBILITY _LIBCPP_HIDE_FROM_ABI | |
#define _LIBCPP_BEGIN_NAMESPACE_STD namespace std { inline namespace _LIBCPP_ABI_NAMESPACE { | |
#define _LIBCPP_END_NAMESPACE_STD }} | |
#define _VSTD std | |
namespace std { inline namespace Cr { }} | |
#define _LIBCPP_BEGIN_NAMESPACE_FILESYSTEM _LIBCPP_BEGIN_NAMESPACE_STD inline namespace __fs { namespace filesystem { | |
#define _LIBCPP_END_NAMESPACE_FILESYSTEM _LIBCPP_END_NAMESPACE_STD }} | |
#define _VSTD_FS std::__fs::filesystem | |
#define _LIBCPP_PREFERRED_OVERLOAD __attribute__((__enable_if__(true, ""))) | |
#define _LIBCPP_CONSTEVAL _LIBCPP_CONSTEXPR | |
#define _LIBCPP_NOALIAS __attribute__((__malloc__)) | |
#define _LIBCPP_USING_IF_EXISTS __attribute__((__using_if_exists__)) | |
# 718 "../../buildtools/third_party/libc++/trunk/include/__config" 3 | |
#define _LIBCPP_DECLARE_STRONG_ENUM(x) enum class _LIBCPP_ENUM_VIS x | |
#define _LIBCPP_DECLARE_STRONG_ENUM_EPILOG(x) | |
# 756 "../../buildtools/third_party/libc++/trunk/include/__config" 3 | |
#define _LIBCPP_HAS_NO_CHAR8_T | |
#define _LIBCPP_DEPRECATED __attribute__((deprecated)) | |
#define _LIBCPP_DEPRECATED_(m) __attribute__((deprecated(m))) | |
# 780 "../../buildtools/third_party/libc++/trunk/include/__config" 3 | |
#define _LIBCPP_DEPRECATED_IN_CXX11 _LIBCPP_DEPRECATED | |
#define _LIBCPP_DEPRECATED_IN_CXX14 _LIBCPP_DEPRECATED | |
#define _LIBCPP_DEPRECATED_IN_CXX17 _LIBCPP_DEPRECATED | |
#define _LIBCPP_DEPRECATED_IN_CXX20 | |
#define _LIBCPP_DEPRECATED_WITH_CHAR8_T | |
#define _LIBCPP_SUPPRESS_DEPRECATED_PUSH _Pragma("GCC diagnostic push") _Pragma("GCC diagnostic ignored \"-Wdeprecated\"") _Pragma("GCC diagnostic ignored \"-Wdeprecated-declarations\"") | |
#define _LIBCPP_SUPPRESS_DEPRECATED_POP _Pragma("GCC diagnostic pop") | |
#define _LIBCPP_EXPLICIT_AFTER_CXX11 explicit | |
#define _LIBCPP_CONSTEXPR_SINCE_CXX14 constexpr | |
#define _LIBCPP_CONSTEXPR_SINCE_CXX17 constexpr | |
#define _LIBCPP_CONSTEXPR_SINCE_CXX20 | |
#define _LIBCPP_CONSTEXPR_SINCE_CXX23 | |
#define _LIBCPP_NODISCARD [[nodiscard]] | |
# 862 "../../buildtools/third_party/libc++/trunk/include/__config" 3 | |
#define _LIBCPP_NODISCARD_EXT _LIBCPP_NODISCARD | |
#define _LIBCPP_NODISCARD_AFTER_CXX17 _LIBCPP_NODISCARD | |
#define _LIBCPP_NO_DESTROY __attribute__((__no_destroy__)) | |
# 886 "../../buildtools/third_party/libc++/trunk/include/__config" 3 | |
#define _LIBCPP_NO_RTTI | |
#define _LIBCPP_WEAK __attribute__((__weak__)) | |
# 913 "../../buildtools/third_party/libc++/trunk/include/__config" 3 | |
#define _LIBCPP_HAS_THREAD_API_PTHREAD | |
# 968 "../../buildtools/third_party/libc++/trunk/include/__config" 3 | |
#define _LIBCPP_HAS_TRIVIAL_MUTEX_DESTRUCTION | |
# 994 "../../buildtools/third_party/libc++/trunk/include/__config" 3 | |
#define _LIBCPP_HAS_C_ATOMIC_IMP | |
# 1004 "../../buildtools/third_party/libc++/trunk/include/__config" 3 | |
#define _LIBCPP_ATOMIC_FLAG_TYPE bool | |
# 1030 "../../buildtools/third_party/libc++/trunk/include/__config" 3 | |
#define _LIBCPP_THREAD_SAFETY_ANNOTATION(x) | |
#define _LIBCPP_CONSTINIT __attribute__((__require_constant_initialization__)) | |
#define _LIBCPP_DIAGNOSE_WARNING(...) __attribute__((__diagnose_if__(__VA_ARGS__, "warning"))) | |
#define _LIBCPP_FALLTHROUGH() [[fallthrough]] | |
#define _LIBCPP_NODEBUG __attribute__((__nodebug__)) | |
#define _LIBCPP_STANDALONE_DEBUG __attribute__((__standalone_debug__)) | |
#define _LIBCPP_PREFERRED_NAME(x) __attribute__((__preferred_name__(x))) | |
# 1081 "../../buildtools/third_party/libc++/trunk/include/__config" 3 | |
#define _LIBCPP_IF_WIDE_CHARACTERS(...) __VA_ARGS__ | |
#define _LIBCPP_DECLSPEC_EMPTY_BASES | |
# 1108 "../../buildtools/third_party/libc++/trunk/include/__config" 3 | |
#define _LIBCPP_HAS_NO_CXX20_COROUTINES | |
#define _LIBCPP_PUSH_MACROS _Pragma("push_macro(\"min\")") _Pragma("push_macro(\"max\")") | |
#define _LIBCPP_POP_MACROS _Pragma("pop_macro(\"min\")") _Pragma("pop_macro(\"max\")") | |
# 1132 "../../buildtools/third_party/libc++/trunk/include/__config" 3 | |
#define _LIBCPP_FOPEN_CLOEXEC_MODE | |
# 1143 "../../buildtools/third_party/libc++/trunk/include/__config" 3 | |
#define _LIBCPP_INIT_PRIORITY_MAX __attribute__((__init_priority__(100))) | |
#define _LIBCPP_ATTRIBUTE_FORMAT(archetype,format_string_index,first_format_arg_index) __attribute__((__format__(archetype, format_string_index, first_format_arg_index))) | |
# 1168 "../../buildtools/third_party/libc++/trunk/include/__config" 3 | |
#define _LIBCPP_NO_UNIQUE_ADDRESS [[no_unique_address]] | |
# 1180 "../../buildtools/third_party/libc++/trunk/include/__config" 3 | |
#define _LIBCPP_DIAGNOSTIC_PUSH _Pragma("clang diagnostic push") | |
#define _LIBCPP_DIAGNOSTIC_POP _Pragma("clang diagnostic pop") | |
#define _LIBCPP_CLANG_DIAGNOSTIC_IGNORED(str) _Pragma(_LIBCPP_TOSTRING(clang diagnostic ignored str)) | |
#define _LIBCPP_GCC_DIAGNOSTIC_IGNORED(str) | |
# 1200 "../../buildtools/third_party/libc++/trunk/include/__config" 3 | |
#define _LIBCPP_PACKED_BYTE_FOR_AIX | |
#define _LIBCPP_PACKED_BYTE_FOR_AIX_END | |
#define _LIBCPP_PACKED __attribute__((__packed__)) | |
# 40 "../../buildtools/third_party/libc++/trunk/include/stddef.h" 2 3 | |
# 43 "../../buildtools/third_party/libc++/trunk/include/stddef.h" 3 | |
# 1 "../../third_party/llvm-build/Release+Asserts/lib/clang/16.0.0/include/stddef.h" 1 3 | |
# 19 "../../third_party/llvm-build/Release+Asserts/lib/clang/16.0.0/include/stddef.h" 3 | |
#define __STDDEF_H | |
#define __need_ptrdiff_t | |
#define __need_size_t | |
#define __need_wchar_t | |
#define __need_NULL | |
#define __need_STDDEF_H_misc | |
#define _PTRDIFF_T | |
typedef long int ptrdiff_t; | |
#undef __need_ptrdiff_t | |
#define _SIZE_T | |
typedef long unsigned int size_t; | |
#undef __need_size_t | |
# 77 "../../third_party/llvm-build/Release+Asserts/lib/clang/16.0.0/include/stddef.h" 3 | |
#undef __need_wchar_t | |
#undef NULL | |
#define NULL __null | |
# 97 "../../third_party/llvm-build/Release+Asserts/lib/clang/16.0.0/include/stddef.h" 3 | |
#undef __need_NULL | |
# 1 "../../third_party/llvm-build/Release+Asserts/lib/clang/16.0.0/include/__stddef_max_align_t.h" 1 3 | |
# 11 "../../third_party/llvm-build/Release+Asserts/lib/clang/16.0.0/include/__stddef_max_align_t.h" 3 | |
#define __CLANG_MAX_ALIGN_T_DEFINED | |
typedef struct { | |
long long __clang_max_align_nonce1 | |
__attribute__((__aligned__(__alignof__(long long)))); | |
long double __clang_max_align_nonce2 | |
__attribute__((__aligned__(__alignof__(long double)))); | |
} max_align_t; | |
# 104 "../../third_party/llvm-build/Release+Asserts/lib/clang/16.0.0/include/stddef.h" 2 3 | |
#define offsetof(t,d) __builtin_offsetof(t, d) | |
#undef __need_STDDEF_H_misc | |
# 46 "../../buildtools/third_party/libc++/trunk/include/stddef.h" 2 3 | |
typedef decltype(nullptr) nullptr_t; | |
# 9 "../../base/rand_util.h" 2 | |
# 1 "../../buildtools/third_party/libc++/trunk/include/stdint.h" 1 3 | |
# 15 "../../buildtools/third_party/libc++/trunk/include/stdint.h" 3 | |
#define _LIBCPP_STDINT_H | |
# 110 "../../buildtools/third_party/libc++/trunk/include/stdint.h" 3 | |
#define __STDC_LIMIT_MACROS | |
# 1 "../../third_party/llvm-build/Release+Asserts/lib/clang/16.0.0/include/stdint.h" 1 3 | |
# 14 "../../third_party/llvm-build/Release+Asserts/lib/clang/16.0.0/include/stdint.h" 3 | |
#define __CLANG_STDINT_H | |
# 52 "../../third_party/llvm-build/Release+Asserts/lib/clang/16.0.0/include/stdint.h" 3 | |
# 1 "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/stdint.h" 1 3 4 | |
# 23 "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/stdint.h" 3 4 | |
#define _STDINT_H 1 | |
#define __GLIBC_INTERNAL_STARTING_HEADER_IMPLEMENTATION | |
# 1 "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/x86_64-linux-gnu/bits/libc-header-start.h" 1 3 4 | |
# 31 "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/x86_64-linux-gnu/bits/libc-header-start.h" 3 4 | |
#undef __GLIBC_INTERNAL_STARTING_HEADER_IMPLEMENTATION | |
#undef __GLIBC_USE_LIB_EXT2 | |
#define __GLIBC_USE_LIB_EXT2 1 | |
#undef __GLIBC_USE_IEC_60559_BFP_EXT | |
#define __GLIBC_USE_IEC_60559_BFP_EXT 1 | |
#undef __GLIBC_USE_IEC_60559_BFP_EXT_C2X | |
#define __GLIBC_USE_IEC_60559_BFP_EXT_C2X 1 | |
#undef __GLIBC_USE_IEC_60559_FUNCS_EXT | |
#define __GLIBC_USE_IEC_60559_FUNCS_EXT 1 | |
#undef __GLIBC_USE_IEC_60559_FUNCS_EXT_C2X | |
#define __GLIBC_USE_IEC_60559_FUNCS_EXT_C2X 1 | |
#undef __GLIBC_USE_IEC_60559_TYPES_EXT | |
#define __GLIBC_USE_IEC_60559_TYPES_EXT 1 | |
# 27 "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/stdint.h" 2 3 4 | |
# 1 "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/x86_64-linux-gnu/bits/types.h" 1 3 4 | |
# 24 "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/x86_64-linux-gnu/bits/types.h" 3 4 | |
#define _BITS_TYPES_H 1 | |
# 1 "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/x86_64-linux-gnu/bits/wordsize.h" 1 3 4 | |
#define __WORDSIZE 64 | |
#define __WORDSIZE_TIME64_COMPAT32 1 | |
#define __SYSCALL_WORDSIZE 64 | |
# 28 "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/x86_64-linux-gnu/bits/types.h" 2 3 4 | |
# 1 "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/x86_64-linux-gnu/bits/timesize.h" 1 3 4 | |
# 24 "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/x86_64-linux-gnu/bits/timesize.h" 3 4 | |
#define __TIMESIZE __WORDSIZE | |
# 29 "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/x86_64-linux-gnu/bits/types.h" 2 3 4 | |
typedef unsigned char __u_char; | |
typedef unsigned short int __u_short; | |
typedef unsigned int __u_int; | |
typedef unsigned long int __u_long; | |
typedef signed char __int8_t; | |
typedef unsigned char __uint8_t; | |
typedef signed short int __int16_t; | |
typedef unsigned short int __uint16_t; | |
typedef signed int __int32_t; | |
typedef unsigned int __uint32_t; | |
typedef signed long int __int64_t; | |
typedef unsigned long int __uint64_t; | |
typedef __int8_t __int_least8_t; | |
typedef __uint8_t __uint_least8_t; | |
typedef __int16_t __int_least16_t; | |
typedef __uint16_t __uint_least16_t; | |
typedef __int32_t __int_least32_t; | |
typedef __uint32_t __uint_least32_t; | |
typedef __int64_t __int_least64_t; | |
typedef __uint64_t __uint_least64_t; | |
typedef long int __quad_t; | |
typedef unsigned long int __u_quad_t; | |
typedef long int __intmax_t; | |
typedef unsigned long int __uintmax_t; | |
# 109 "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/x86_64-linux-gnu/bits/types.h" 3 4 | |
#define __S16_TYPE short int | |
#define __U16_TYPE unsigned short int | |
#define __S32_TYPE int | |
#define __U32_TYPE unsigned int | |
#define __SLONGWORD_TYPE long int | |
#define __ULONGWORD_TYPE unsigned long int | |
# 128 "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/x86_64-linux-gnu/bits/types.h" 3 4 | |
#define __SQUAD_TYPE long int | |
#define __UQUAD_TYPE unsigned long int | |
#define __SWORD_TYPE long int | |
#define __UWORD_TYPE unsigned long int | |
#define __SLONG32_TYPE int | |
#define __ULONG32_TYPE unsigned int | |
#define __S64_TYPE long int | |
#define __U64_TYPE unsigned long int | |
#define __STD_TYPE typedef | |
# 1 "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/x86_64-linux-gnu/bits/typesizes.h" 1 3 4 | |
# 24 "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/x86_64-linux-gnu/bits/typesizes.h" 3 4 | |
#define _BITS_TYPESIZES_H 1 | |
# 34 "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/x86_64-linux-gnu/bits/typesizes.h" 3 4 | |
#define __SYSCALL_SLONG_TYPE __SLONGWORD_TYPE | |
#define __SYSCALL_ULONG_TYPE __ULONGWORD_TYPE | |
#define __DEV_T_TYPE __UQUAD_TYPE | |
#define __UID_T_TYPE __U32_TYPE | |
#define __GID_T_TYPE __U32_TYPE | |
#define __INO_T_TYPE __SYSCALL_ULONG_TYPE | |
#define __INO64_T_TYPE __UQUAD_TYPE | |
#define __MODE_T_TYPE __U32_TYPE | |
#define __NLINK_T_TYPE __SYSCALL_ULONG_TYPE | |
#define __FSWORD_T_TYPE __SYSCALL_SLONG_TYPE | |
#define __OFF_T_TYPE __SYSCALL_SLONG_TYPE | |
#define __OFF64_T_TYPE __SQUAD_TYPE | |
#define __PID_T_TYPE __S32_TYPE | |
#define __RLIM_T_TYPE __SYSCALL_ULONG_TYPE | |
#define __RLIM64_T_TYPE __UQUAD_TYPE | |
#define __BLKCNT_T_TYPE __SYSCALL_SLONG_TYPE | |
#define __BLKCNT64_T_TYPE __SQUAD_TYPE | |
#define __FSBLKCNT_T_TYPE __SYSCALL_ULONG_TYPE | |
#define __FSBLKCNT64_T_TYPE __UQUAD_TYPE | |
#define __FSFILCNT_T_TYPE __SYSCALL_ULONG_TYPE | |
#define __FSFILCNT64_T_TYPE __UQUAD_TYPE | |
#define __ID_T_TYPE __U32_TYPE | |
#define __CLOCK_T_TYPE __SYSCALL_SLONG_TYPE | |
#define __TIME_T_TYPE __SYSCALL_SLONG_TYPE | |
#define __USECONDS_T_TYPE __U32_TYPE | |
#define __SUSECONDS_T_TYPE __SYSCALL_SLONG_TYPE | |
#define __DADDR_T_TYPE __S32_TYPE | |
#define __KEY_T_TYPE __S32_TYPE | |
#define __CLOCKID_T_TYPE __S32_TYPE | |
#define __TIMER_T_TYPE void * | |
#define __BLKSIZE_T_TYPE __SYSCALL_SLONG_TYPE | |
#define __FSID_T_TYPE struct { int __val[2]; } | |
#define __SSIZE_T_TYPE __SWORD_TYPE | |
#define __CPU_MASK_TYPE __SYSCALL_ULONG_TYPE | |
#define __OFF_T_MATCHES_OFF64_T 1 | |
#define __INO_T_MATCHES_INO64_T 1 | |
#define __RLIM_T_MATCHES_RLIM64_T 1 | |
#define __STATFS_MATCHES_STATFS64 1 | |
#define __FD_SETSIZE 1024 | |
# 142 "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/x86_64-linux-gnu/bits/types.h" 2 3 4 | |
# 1 "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/x86_64-linux-gnu/bits/time64.h" 1 3 4 | |
# 24 "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/x86_64-linux-gnu/bits/time64.h" 3 4 | |
#define _BITS_TIME64_H 1 | |
#define __TIME64_T_TYPE __TIME_T_TYPE | |
# 143 "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/x86_64-linux-gnu/bits/types.h" 2 3 4 | |
typedef unsigned long int __dev_t; | |
typedef unsigned int __uid_t; | |
typedef unsigned int __gid_t; | |
typedef unsigned long int __ino_t; | |
typedef unsigned long int __ino64_t; | |
typedef unsigned int __mode_t; | |
typedef unsigned long int __nlink_t; | |
typedef long int __off_t; | |
typedef long int __off64_t; | |
typedef int __pid_t; | |
typedef struct { int __val[2]; } __fsid_t; | |
typedef long int __clock_t; | |
typedef unsigned long int __rlim_t; | |
typedef unsigned long int __rlim64_t; | |
typedef unsigned int __id_t; | |
typedef long int __time_t; | |
typedef unsigned int __useconds_t; | |
typedef long int __suseconds_t; | |
typedef int __daddr_t; | |
typedef int __key_t; | |
typedef int __clockid_t; | |
typedef void * __timer_t; | |
typedef long int __blksize_t; | |
typedef long int __blkcnt_t; | |
typedef long int __blkcnt64_t; | |
typedef unsigned long int __fsblkcnt_t; | |
typedef unsigned long int __fsblkcnt64_t; | |
typedef unsigned long int __fsfilcnt_t; | |
typedef unsigned long int __fsfilcnt64_t; | |
typedef long int __fsword_t; | |
typedef long int __ssize_t; | |
typedef long int __syscall_slong_t; | |
typedef unsigned long int __syscall_ulong_t; | |
typedef __off64_t __loff_t; | |
typedef char *__caddr_t; | |
typedef long int __intptr_t; | |
typedef unsigned int __socklen_t; | |
typedef int __sig_atomic_t; | |
# 225 "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/x86_64-linux-gnu/bits/types.h" 3 4 | |
#undef __STD_TYPE | |
# 28 "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/stdint.h" 2 3 4 | |
# 1 "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/x86_64-linux-gnu/bits/wchar.h" 1 3 4 | |
# 20 "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/x86_64-linux-gnu/bits/wchar.h" 3 4 | |
#define _BITS_WCHAR_H 1 | |
# 34 "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/x86_64-linux-gnu/bits/wchar.h" 3 4 | |
#define __WCHAR_MAX __WCHAR_MAX__ | |
# 46 "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/x86_64-linux-gnu/bits/wchar.h" 3 4 | |
#define __WCHAR_MIN (-__WCHAR_MAX - 1) | |
# 29 "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/stdint.h" 2 3 4 | |
# 1 "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/x86_64-linux-gnu/bits/wordsize.h" 1 3 4 | |
#define __WORDSIZE 64 | |
#define __WORDSIZE_TIME64_COMPAT32 1 | |
#define __SYSCALL_WORDSIZE 64 | |
# 30 "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/stdint.h" 2 3 4 | |
# 1 "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/x86_64-linux-gnu/bits/stdint-intn.h" 1 3 4 | |
# 20 "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/x86_64-linux-gnu/bits/stdint-intn.h" 3 4 | |
#define _BITS_STDINT_INTN_H 1 | |
typedef __int8_t int8_t; | |
typedef __int16_t int16_t; | |
typedef __int32_t int32_t; | |
typedef __int64_t int64_t; | |
# 35 "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/stdint.h" 2 3 4 | |
# 1 "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/x86_64-linux-gnu/bits/stdint-uintn.h" 1 3 4 | |
# 20 "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/x86_64-linux-gnu/bits/stdint-uintn.h" 3 4 | |
#define _BITS_STDINT_UINTN_H 1 | |
typedef __uint8_t uint8_t; | |
typedef __uint16_t uint16_t; | |
typedef __uint32_t uint32_t; | |
typedef __uint64_t uint64_t; | |
# 38 "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/stdint.h" 2 3 4 | |
typedef __int_least8_t int_least8_t; | |
typedef __int_least16_t int_least16_t; | |
typedef __int_least32_t int_least32_t; | |
typedef __int_least64_t int_least64_t; | |
typedef __uint_least8_t uint_least8_t; | |
typedef __uint_least16_t uint_least16_t; | |
typedef __uint_least32_t uint_least32_t; | |
typedef __uint_least64_t uint_least64_t; | |
typedef signed char int_fast8_t; | |
typedef long int int_fast16_t; | |
typedef long int int_fast32_t; | |
typedef long int int_fast64_t; | |
# 71 "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/stdint.h" 3 4 | |
typedef unsigned char uint_fast8_t; | |
typedef unsigned long int uint_fast16_t; | |
typedef unsigned long int uint_fast32_t; | |
typedef unsigned long int uint_fast64_t; | |
# 87 "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/stdint.h" 3 4 | |
typedef long int intptr_t; | |
#define __intptr_t_defined | |
typedef unsigned long int uintptr_t; | |
# 101 "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/stdint.h" 3 4 | |
typedef __intmax_t intmax_t; | |
typedef __uintmax_t uintmax_t; | |
#define __INT64_C(c) c ## L | |
#define __UINT64_C(c) c ## UL | |
#define INT8_MIN (-128) | |
#define INT16_MIN (-32767-1) | |
#define INT32_MIN (-2147483647-1) | |
#define INT64_MIN (-__INT64_C(9223372036854775807)-1) | |
#define INT8_MAX (127) | |
#define INT16_MAX (32767) | |
#define INT32_MAX (2147483647) | |
#define INT64_MAX (__INT64_C(9223372036854775807)) | |
#define UINT8_MAX (255) | |
#define UINT16_MAX (65535) | |
#define UINT32_MAX (4294967295U) | |
#define UINT64_MAX (__UINT64_C(18446744073709551615)) | |
#define INT_LEAST8_MIN (-128) | |
#define INT_LEAST16_MIN (-32767-1) | |
#define INT_LEAST32_MIN (-2147483647-1) | |
#define INT_LEAST64_MIN (-__INT64_C(9223372036854775807)-1) | |
#define INT_LEAST8_MAX (127) | |
#define INT_LEAST16_MAX (32767) | |
#define INT_LEAST32_MAX (2147483647) | |
#define INT_LEAST64_MAX (__INT64_C(9223372036854775807)) | |
#define UINT_LEAST8_MAX (255) | |
#define UINT_LEAST16_MAX (65535) | |
#define UINT_LEAST32_MAX (4294967295U) | |
#define UINT_LEAST64_MAX (__UINT64_C(18446744073709551615)) | |
#define INT_FAST8_MIN (-128) | |
#define INT_FAST16_MIN (-9223372036854775807L-1) | |
#define INT_FAST32_MIN (-9223372036854775807L-1) | |
#define INT_FAST64_MIN (-__INT64_C(9223372036854775807)-1) | |
#define INT_FAST8_MAX (127) | |
#define INT_FAST16_MAX (9223372036854775807L) | |
#define INT_FAST32_MAX (9223372036854775807L) | |
#define INT_FAST64_MAX (__INT64_C(9223372036854775807)) | |
#define UINT_FAST8_MAX (255) | |
#define UINT_FAST16_MAX (18446744073709551615UL) | |
#define UINT_FAST32_MAX (18446744073709551615UL) | |
#define UINT_FAST64_MAX (__UINT64_C(18446744073709551615)) | |
#define INTPTR_MIN (-9223372036854775807L-1) | |
#define INTPTR_MAX (9223372036854775807L) | |
#define UINTPTR_MAX (18446744073709551615UL) | |
#define INTMAX_MIN (-__INT64_C(9223372036854775807)-1) | |
#define INTMAX_MAX (__INT64_C(9223372036854775807)) | |
#define UINTMAX_MAX (__UINT64_C(18446744073709551615)) | |
#define PTRDIFF_MIN (-9223372036854775807L-1) | |
#define PTRDIFF_MAX (9223372036854775807L) | |
# 222 "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/stdint.h" 3 4 | |
#define SIG_ATOMIC_MIN (-2147483647-1) | |
#define SIG_ATOMIC_MAX (2147483647) | |
#define SIZE_MAX (18446744073709551615UL) | |
# 239 "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/stdint.h" 3 4 | |
#define WCHAR_MIN __WCHAR_MIN | |
#define WCHAR_MAX __WCHAR_MAX | |
#define WINT_MIN (0u) | |
#define WINT_MAX (4294967295u) | |
#define INT8_C(c) c | |
#define INT16_C(c) c | |
#define INT32_C(c) c | |
#define INT64_C(c) c ## L | |
#define UINT8_C(c) c | |
#define UINT16_C(c) c | |
#define UINT32_C(c) c ## U | |
#define UINT64_C(c) c ## UL | |
#define INTMAX_C(c) c ## L | |
#define UINTMAX_C(c) c ## UL | |
#define INT8_WIDTH 8 | |
#define UINT8_WIDTH 8 | |
#define INT16_WIDTH 16 | |
#define UINT16_WIDTH 16 | |
#define INT32_WIDTH 32 | |
#define UINT32_WIDTH 32 | |
#define INT64_WIDTH 64 | |
#define UINT64_WIDTH 64 | |
#define INT_LEAST8_WIDTH 8 | |
#define UINT_LEAST8_WIDTH 8 | |
#define INT_LEAST16_WIDTH 16 | |
#define UINT_LEAST16_WIDTH 16 | |
#define INT_LEAST32_WIDTH 32 | |
#define UINT_LEAST32_WIDTH 32 | |
#define INT_LEAST64_WIDTH 64 | |
#define UINT_LEAST64_WIDTH 64 | |
#define INT_FAST8_WIDTH 8 | |
#define UINT_FAST8_WIDTH 8 | |
#define INT_FAST16_WIDTH __WORDSIZE | |
#define UINT_FAST16_WIDTH __WORDSIZE | |
#define INT_FAST32_WIDTH __WORDSIZE | |
#define UINT_FAST32_WIDTH __WORDSIZE | |
#define INT_FAST64_WIDTH 64 | |
#define UINT_FAST64_WIDTH 64 | |
#define INTPTR_WIDTH __WORDSIZE | |
#define UINTPTR_WIDTH __WORDSIZE | |
#define INTMAX_WIDTH 64 | |
#define UINTMAX_WIDTH 64 | |
#define PTRDIFF_WIDTH __WORDSIZE | |
#define SIG_ATOMIC_WIDTH 32 | |
#define SIZE_WIDTH __WORDSIZE | |
#define WCHAR_WIDTH 32 | |
#define WINT_WIDTH 32 | |
# 53 "../../third_party/llvm-build/Release+Asserts/lib/clang/16.0.0/include/stdint.h" 2 3 | |
# 124 "../../buildtools/third_party/libc++/trunk/include/stdint.h" 2 3 | |
# 10 "../../base/rand_util.h" 2 | |
# 1 "../../buildtools/third_party/libc++/trunk/include/algorithm" 1 3 | |
# 11 "../../buildtools/third_party/libc++/trunk/include/algorithm" 3 | |
#define _LIBCPP_ALGORITHM | |
# 1706 "../../buildtools/third_party/libc++/trunk/include/algorithm" 3 | |
# 1 "../../buildtools/third_party/libc++/trunk/include/__assert" 1 3 | |
# 11 "../../buildtools/third_party/libc++/trunk/include/__assert" 3 | |
#define _LIBCPP___ASSERT | |
# 1 "../../buildtools/third_party/libc++/trunk/include/__verbose_abort" 1 3 | |
# 11 "../../buildtools/third_party/libc++/trunk/include/__verbose_abort" 3 | |
#define _LIBCPP___VERBOSE_ABORT | |
# 1 "../../buildtools/third_party/libc++/trunk/include/__availability" 1 3 | |
# 11 "../../buildtools/third_party/libc++/trunk/include/__availability" 3 | |
#define _LIBCPP___AVAILABILITY | |
# 17 "../../buildtools/third_party/libc++/trunk/include/__availability" 3 | |
# 86 "../../buildtools/third_party/libc++/trunk/include/__availability" 3 | |
#define _LIBCPP_AVAILABILITY_SHARED_MUTEX | |
# 98 "../../buildtools/third_party/libc++/trunk/include/__availability" 3 | |
#define _LIBCPP_AVAILABILITY_BAD_OPTIONAL_ACCESS | |
#define _LIBCPP_AVAILABILITY_BAD_VARIANT_ACCESS | |
#define _LIBCPP_AVAILABILITY_BAD_ANY_CAST | |
#define _LIBCPP_AVAILABILITY_UNCAUGHT_EXCEPTIONS | |
#define _LIBCPP_AVAILABILITY_SIZED_NEW_DELETE | |
#define _LIBCPP_AVAILABILITY_FUTURE_ERROR | |
#define _LIBCPP_AVAILABILITY_TYPEINFO_VTABLE | |
#define _LIBCPP_AVAILABILITY_LOCALE_CATEGORY | |
#define _LIBCPP_AVAILABILITY_ATOMIC_SHARED_PTR | |
#define _LIBCPP_AVAILABILITY_FILESYSTEM | |
#define _LIBCPP_AVAILABILITY_FILESYSTEM_PUSH | |
#define _LIBCPP_AVAILABILITY_FILESYSTEM_POP | |
#define _LIBCPP_AVAILABILITY_TO_CHARS_FLOATING_POINT | |
#define _LIBCPP_AVAILABILITY_SYNC | |
# 156 "../../buildtools/third_party/libc++/trunk/include/__availability" 3 | |
#define _LIBCPP_AVAILABILITY_FORMAT | |
# 288 "../../buildtools/third_party/libc++/trunk/include/__availability" 3 | |
#define _LIBCPP_AVAILABILITY_FUTURE | |
#define _LIBCPP_AVAILABILITY_THROW_BAD_ANY_CAST | |
#define _LIBCPP_AVAILABILITY_THROW_BAD_OPTIONAL_ACCESS | |
#define _LIBCPP_AVAILABILITY_THROW_BAD_VARIANT_ACCESS | |
# 14 "../../buildtools/third_party/libc++/trunk/include/__verbose_abort" 2 3 | |
# 18 "../../buildtools/third_party/libc++/trunk/include/__verbose_abort" 3 | |
# 42 "../../buildtools/third_party/libc++/trunk/include/__verbose_abort" 3 | |
namespace std { inline namespace Cr { | |
[[noreturn]] __attribute__((__format__(__printf__, 1, 2))) | |
void __libcpp_verbose_abort(const char *__format, ...); | |
}} | |
# 15 "../../buildtools/third_party/libc++/trunk/include/__assert" 2 3 | |
# 18 "../../buildtools/third_party/libc++/trunk/include/__assert" 3 | |
# 37 "../../buildtools/third_party/libc++/trunk/include/__assert" 3 | |
#define _LIBCPP_ENABLE_ASSERTIONS _LIBCPP_ENABLE_ASSERTIONS_DEFAULT | |
#define _LIBCPP_ASSERT(expression,message) (__builtin_expect(static_cast<bool>(expression), 1) ? (void)0 : ::std::__libcpp_verbose_abort("%s:%d: assertion %s failed: %s", __FILE__, __LINE__, #expression, message)) | |
# 1707 "../../buildtools/third_party/libc++/trunk/include/algorithm" 2 3 | |
# 1 "../../buildtools/third_party/libc++/trunk/include/__bits" 1 3 | |
# 11 "../../buildtools/third_party/libc++/trunk/include/__bits" 3 | |
#define _LIBCPP___BITS | |
# 17 "../../buildtools/third_party/libc++/trunk/include/__bits" 3 | |
# 1 "../../buildtools/third_party/libc++/trunk/include/__undef_macros" 1 3 | |
# 21 "../../buildtools/third_party/libc++/trunk/include/__bits" 2 3 | |
namespace std { inline namespace Cr { | |
inline __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) constexpr | |
int __libcpp_ctz(unsigned __x) noexcept { return __builtin_ctz(__x); } | |
inline __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) constexpr | |
int __libcpp_ctz(unsigned long __x) noexcept { return __builtin_ctzl(__x); } | |
inline __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) constexpr | |
int __libcpp_ctz(unsigned long long __x) noexcept { return __builtin_ctzll(__x); } | |
inline __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) constexpr | |
int __libcpp_clz(unsigned __x) noexcept { return __builtin_clz(__x); } | |
inline __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) constexpr | |
int __libcpp_clz(unsigned long __x) noexcept { return __builtin_clzl(__x); } | |
inline __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) constexpr | |
int __libcpp_clz(unsigned long long __x) noexcept { return __builtin_clzll(__x); } | |
inline __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) constexpr | |
int __libcpp_clz(__uint128_t __x) noexcept { | |
# 58 "../../buildtools/third_party/libc++/trunk/include/__bits" 3 | |
return ((__x >> 64) == 0) | |
? (64 + __builtin_clzll(static_cast<unsigned long long>(__x))) | |
: __builtin_clzll(static_cast<unsigned long long>(__x >> 64)); | |
} | |
inline __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) constexpr | |
int __libcpp_popcount(unsigned __x) noexcept { return __builtin_popcount(__x); } | |
inline __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) constexpr | |
int __libcpp_popcount(unsigned long __x) noexcept { return __builtin_popcountl(__x); } | |
inline __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) constexpr | |
int __libcpp_popcount(unsigned long long __x) noexcept { return __builtin_popcountll(__x); } | |
# 158 "../../buildtools/third_party/libc++/trunk/include/__bits" 3 | |
}} | |
# 1708 "../../buildtools/third_party/libc++/trunk/include/algorithm" 2 3 | |
# 1 "../../buildtools/third_party/libc++/trunk/include/__debug" 1 3 | |
# 11 "../../buildtools/third_party/libc++/trunk/include/__debug" 3 | |
#define _LIBCPP___DEBUG | |
# 1 "../../buildtools/third_party/libc++/trunk/include/cstddef" 1 3 | |
# 11 "../../buildtools/third_party/libc++/trunk/include/cstddef" 3 | |
#define _LIBCPP_CSTDDEF | |
# 38 "../../buildtools/third_party/libc++/trunk/include/cstddef" 3 | |
# 1 "../../buildtools/third_party/libc++/trunk/include/__type_traits/enable_if.h" 1 3 | |
# 10 "../../buildtools/third_party/libc++/trunk/include/__type_traits/enable_if.h" 3 | |
#define _LIBCPP___TYPE_TRAITS_ENABLE_IF_H | |
# 16 "../../buildtools/third_party/libc++/trunk/include/__type_traits/enable_if.h" 3 | |
namespace std { inline namespace Cr { | |
template <bool, class _Tp = void> struct enable_if {}; | |
template <class _Tp> struct enable_if<true, _Tp> {typedef _Tp type;}; | |
template <bool _Bp, class _Tp = void> using __enable_if_t __attribute__((__nodebug__)) = typename enable_if<_Bp, _Tp>::type; | |
template <bool _Bp, class _Tp = void> using enable_if_t = typename enable_if<_Bp, _Tp>::type; | |
}} | |
# 39 "../../buildtools/third_party/libc++/trunk/include/cstddef" 2 3 | |
# 1 "../../buildtools/third_party/libc++/trunk/include/__type_traits/integral_constant.h" 1 3 | |
# 10 "../../buildtools/third_party/libc++/trunk/include/__type_traits/integral_constant.h" 3 | |
#define _LIBCPP___TYPE_TRAITS_INTEGRAL_CONSTANT_H | |
# 16 "../../buildtools/third_party/libc++/trunk/include/__type_traits/integral_constant.h" 3 | |
namespace std { inline namespace Cr { | |
template <class _Tp, _Tp __v> | |
struct integral_constant | |
{ | |
static constexpr const _Tp value = __v; | |
typedef _Tp value_type; | |
typedef integral_constant type; | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) | |
constexpr operator value_type() const noexcept {return value;} | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) | |
constexpr value_type operator ()() const noexcept {return value;} | |
}; | |
template <class _Tp, _Tp __v> | |
constexpr const _Tp integral_constant<_Tp, __v>::value; | |
typedef integral_constant<bool, true> true_type; | |
typedef integral_constant<bool, false> false_type; | |
template <bool _Val> | |
using _BoolConstant __attribute__((__nodebug__)) = integral_constant<bool, _Val>; | |
template <bool __b> | |
using bool_constant = integral_constant<bool, __b>; | |
}} | |
# 40 "../../buildtools/third_party/libc++/trunk/include/cstddef" 2 3 | |
# 1 "../../buildtools/third_party/libc++/trunk/include/__type_traits/is_integral.h" 1 3 | |
# 10 "../../buildtools/third_party/libc++/trunk/include/__type_traits/is_integral.h" 3 | |
#define _LIBCPP___TYPE_TRAITS_IS_INTEGRAL_H | |
# 1 "../../buildtools/third_party/libc++/trunk/include/__type_traits/remove_cv.h" 1 3 | |
# 10 "../../buildtools/third_party/libc++/trunk/include/__type_traits/remove_cv.h" 3 | |
#define _LIBCPP___TYPE_TRAITS_REMOVE_CV_H | |
# 1 "../../buildtools/third_party/libc++/trunk/include/__type_traits/remove_const.h" 1 3 | |
# 10 "../../buildtools/third_party/libc++/trunk/include/__type_traits/remove_const.h" 3 | |
#define _LIBCPP___TYPE_TRAITS_REMOVE_CONST_H | |
# 16 "../../buildtools/third_party/libc++/trunk/include/__type_traits/remove_const.h" 3 | |
namespace std { inline namespace Cr { | |
template <class _Tp> | |
struct remove_const { | |
using type __attribute__((__nodebug__)) = __remove_const(_Tp); | |
}; | |
template <class _Tp> | |
using __remove_const_t = __remove_const(_Tp); | |
# 37 "../../buildtools/third_party/libc++/trunk/include/__type_traits/remove_const.h" 3 | |
template <class _Tp> using remove_const_t = __remove_const_t<_Tp>; | |
}} | |
# 14 "../../buildtools/third_party/libc++/trunk/include/__type_traits/remove_cv.h" 2 3 | |
# 1 "../../buildtools/third_party/libc++/trunk/include/__type_traits/remove_volatile.h" 1 3 | |
# 10 "../../buildtools/third_party/libc++/trunk/include/__type_traits/remove_volatile.h" 3 | |
#define _LIBCPP___TYPE_TRAITS_REMOVE_VOLATILE_H | |
# 16 "../../buildtools/third_party/libc++/trunk/include/__type_traits/remove_volatile.h" 3 | |
namespace std { inline namespace Cr { | |
template <class _Tp> | |
struct remove_volatile { | |
using type __attribute__((__nodebug__)) = __remove_volatile(_Tp); | |
}; | |
template <class _Tp> | |
using __remove_volatile_t = __remove_volatile(_Tp); | |
# 37 "../../buildtools/third_party/libc++/trunk/include/__type_traits/remove_volatile.h" 3 | |
template <class _Tp> using remove_volatile_t = __remove_volatile_t<_Tp>; | |
}} | |
# 15 "../../buildtools/third_party/libc++/trunk/include/__type_traits/remove_cv.h" 2 3 | |
# 18 "../../buildtools/third_party/libc++/trunk/include/__type_traits/remove_cv.h" 3 | |
namespace std { inline namespace Cr { | |
template <class _Tp> | |
struct remove_cv { | |
using type __attribute__((__nodebug__)) = __remove_cv(_Tp); | |
}; | |
template <class _Tp> | |
using __remove_cv_t = __remove_cv(_Tp); | |
# 39 "../../buildtools/third_party/libc++/trunk/include/__type_traits/remove_cv.h" 3 | |
template <class _Tp> using remove_cv_t = __remove_cv_t<_Tp>; | |
}} | |
# 15 "../../buildtools/third_party/libc++/trunk/include/__type_traits/is_integral.h" 2 3 | |
# 18 "../../buildtools/third_party/libc++/trunk/include/__type_traits/is_integral.h" 3 | |
namespace std { inline namespace Cr { | |
template <class _Tp> struct __libcpp_is_integral { enum { value = 0 }; }; | |
template <> struct __libcpp_is_integral<bool> { enum { value = 1 }; }; | |
template <> struct __libcpp_is_integral<char> { enum { value = 1 }; }; | |
template <> struct __libcpp_is_integral<signed char> { enum { value = 1 }; }; | |
template <> struct __libcpp_is_integral<unsigned char> { enum { value = 1 }; }; | |
template <> struct __libcpp_is_integral<wchar_t> { enum { value = 1 }; }; | |
template <> struct __libcpp_is_integral<char16_t> { enum { value = 1 }; }; | |
template <> struct __libcpp_is_integral<char32_t> { enum { value = 1 }; }; | |
template <> struct __libcpp_is_integral<short> { enum { value = 1 }; }; | |
template <> struct __libcpp_is_integral<unsigned short> { enum { value = 1 }; }; | |
template <> struct __libcpp_is_integral<int> { enum { value = 1 }; }; | |
template <> struct __libcpp_is_integral<unsigned int> { enum { value = 1 }; }; | |
template <> struct __libcpp_is_integral<long> { enum { value = 1 }; }; | |
template <> struct __libcpp_is_integral<unsigned long> { enum { value = 1 }; }; | |
template <> struct __libcpp_is_integral<long long> { enum { value = 1 }; }; | |
template <> struct __libcpp_is_integral<unsigned long long> { enum { value = 1 }; }; | |
template <> struct __libcpp_is_integral<__int128_t> { enum { value = 1 }; }; | |
template <> struct __libcpp_is_integral<__uint128_t> { enum { value = 1 }; }; | |
template <class _Tp> | |
struct is_integral : _BoolConstant<__is_integral(_Tp)> { }; | |
template <class _Tp> | |
inline constexpr bool is_integral_v = __is_integral(_Tp); | |
# 70 "../../buildtools/third_party/libc++/trunk/include/__type_traits/is_integral.h" 3 | |
}} | |
# 41 "../../buildtools/third_party/libc++/trunk/include/cstddef" 2 3 | |
# 1 "../../buildtools/third_party/libc++/trunk/include/version" 1 3 | |
# 11 "../../buildtools/third_party/libc++/trunk/include/version" 3 | |
#define _LIBCPP_VERSIONH | |
# 205 "../../buildtools/third_party/libc++/trunk/include/version" 3 | |
#define __cpp_lib_chrono_udls 201304L | |
#define __cpp_lib_complex_udls 201309L | |
#define __cpp_lib_exchange_function 201304L | |
#define __cpp_lib_generic_associative_lookup 201304L | |
#define __cpp_lib_integer_sequence 201304L | |
#define __cpp_lib_integral_constant_callable 201304L | |
#define __cpp_lib_is_final 201402L | |
#define __cpp_lib_is_null_pointer 201309L | |
#define __cpp_lib_make_reverse_iterator 201402L | |
#define __cpp_lib_make_unique 201304L | |
#define __cpp_lib_null_iterators 201304L | |
#define __cpp_lib_quoted_string_io 201304L | |
#define __cpp_lib_result_of_sfinae 201210L | |
#define __cpp_lib_robust_nonmodifying_seq_ops 201304L | |
#define __cpp_lib_shared_timed_mutex 201402L | |
#define __cpp_lib_string_udls 201304L | |
#define __cpp_lib_transformation_trait_aliases 201304L | |
#define __cpp_lib_transparent_operators 201210L | |
#define __cpp_lib_tuple_element_t 201402L | |
#define __cpp_lib_tuples_by_type 201304L | |
#define __cpp_lib_addressof_constexpr 201603L | |
#define __cpp_lib_allocator_traits_is_always_equal 201411L | |
#define __cpp_lib_any 201606L | |
#define __cpp_lib_apply 201603L | |
#define __cpp_lib_array_constexpr 201603L | |
#define __cpp_lib_as_const 201510L | |
#define __cpp_lib_atomic_is_always_lock_free 201603L | |
#define __cpp_lib_bool_constant 201505L | |
#define __cpp_lib_boyer_moore_searcher 201603L | |
#define __cpp_lib_byte 201603L | |
#define __cpp_lib_chrono 201611L | |
#define __cpp_lib_clamp 201603L | |
#define __cpp_lib_enable_shared_from_this 201603L | |
#define __cpp_lib_filesystem 201703L | |
#define __cpp_lib_gcd_lcm 201606L | |
#define __cpp_lib_has_unique_object_representations 201606L | |
#define __cpp_lib_hypot 201603L | |
#define __cpp_lib_incomplete_container_elements 201505L | |
#define __cpp_lib_invoke 201411L | |
#define __cpp_lib_is_aggregate 201703L | |
#define __cpp_lib_is_invocable 201703L | |
#define __cpp_lib_is_swappable 201603L | |
#define __cpp_lib_launder 201606L | |
#define __cpp_lib_logical_traits 201510L | |
#define __cpp_lib_make_from_tuple 201606L | |
#define __cpp_lib_map_try_emplace 201411L | |
#define __cpp_lib_node_extract 201606L | |
#define __cpp_lib_nonmember_container_access 201411L | |
#define __cpp_lib_not_fn 201603L | |
#define __cpp_lib_optional 201606L | |
#define __cpp_lib_raw_memory_algorithms 201606L | |
#define __cpp_lib_sample 201603L | |
#define __cpp_lib_scoped_lock 201703L | |
#define __cpp_lib_shared_mutex 201505L | |
#define __cpp_lib_shared_ptr_arrays 201611L | |
#define __cpp_lib_shared_ptr_weak_type 201606L | |
#define __cpp_lib_string_view 201606L | |
#undef __cpp_lib_transparent_operators | |
#define __cpp_lib_transparent_operators 201510L | |
#define __cpp_lib_type_trait_variable_templates 201510L | |
#define __cpp_lib_uncaught_exceptions 201411L | |
#define __cpp_lib_unordered_map_try_emplace 201411L | |
#define __cpp_lib_variant 202102L | |
#define __cpp_lib_void_t 201411L | |
# 42 "../../buildtools/third_party/libc++/trunk/include/cstddef" 2 3 | |
# 1 "../../buildtools/third_party/libc++/trunk/include/stddef.h" 1 3 | |
# 44 "../../buildtools/third_party/libc++/trunk/include/cstddef" 2 3 | |
# 55 "../../buildtools/third_party/libc++/trunk/include/cstddef" 3 | |
namespace std { inline namespace Cr { | |
using ::nullptr_t; | |
using ::ptrdiff_t __attribute__((__using_if_exists__)); | |
using ::size_t __attribute__((__using_if_exists__)); | |
using ::max_align_t __attribute__((__using_if_exists__)); | |
}} | |
namespace std | |
{ | |
enum class byte : unsigned char {}; | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) constexpr byte operator| (byte __lhs, byte __rhs) noexcept | |
{ | |
return static_cast<byte>( | |
static_cast<unsigned char>( | |
static_cast<unsigned int>(__lhs) | static_cast<unsigned int>(__rhs) | |
)); | |
} | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) constexpr byte& operator|=(byte& __lhs, byte __rhs) noexcept | |
{ return __lhs = __lhs | __rhs; } | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) constexpr byte operator& (byte __lhs, byte __rhs) noexcept | |
{ | |
return static_cast<byte>( | |
static_cast<unsigned char>( | |
static_cast<unsigned int>(__lhs) & static_cast<unsigned int>(__rhs) | |
)); | |
} | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) constexpr byte& operator&=(byte& __lhs, byte __rhs) noexcept | |
{ return __lhs = __lhs & __rhs; } | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) constexpr byte operator^ (byte __lhs, byte __rhs) noexcept | |
{ | |
return static_cast<byte>( | |
static_cast<unsigned char>( | |
static_cast<unsigned int>(__lhs) ^ static_cast<unsigned int>(__rhs) | |
)); | |
} | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) constexpr byte& operator^=(byte& __lhs, byte __rhs) noexcept | |
{ return __lhs = __lhs ^ __rhs; } | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) constexpr byte operator~ (byte __b) noexcept | |
{ | |
return static_cast<byte>( | |
static_cast<unsigned char>( | |
~static_cast<unsigned int>(__b) | |
)); | |
} | |
template <class _Tp> | |
using _EnableByteOverload = __enable_if_t<is_integral<_Tp>::value, byte>; | |
template <class _Integer> | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) constexpr _EnableByteOverload<_Integer> & | |
operator<<=(byte& __lhs, _Integer __shift) noexcept | |
{ return __lhs = __lhs << __shift; } | |
template <class _Integer> | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) constexpr _EnableByteOverload<_Integer> | |
operator<< (byte __lhs, _Integer __shift) noexcept | |
{ return static_cast<byte>(static_cast<unsigned char>(static_cast<unsigned int>(__lhs) << __shift)); } | |
template <class _Integer> | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) constexpr _EnableByteOverload<_Integer> & | |
operator>>=(byte& __lhs, _Integer __shift) noexcept | |
{ return __lhs = __lhs >> __shift; } | |
template <class _Integer> | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) constexpr _EnableByteOverload<_Integer> | |
operator>> (byte __lhs, _Integer __shift) noexcept | |
{ return static_cast<byte>(static_cast<unsigned char>(static_cast<unsigned int>(__lhs) >> __shift)); } | |
template <class _Integer, class = _EnableByteOverload<_Integer> > | |
[[nodiscard]] __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) constexpr _Integer | |
to_integer(byte __b) noexcept { return static_cast<_Integer>(__b); } | |
} | |
# 16 "../../buildtools/third_party/libc++/trunk/include/__debug" 2 3 | |
# 1 "../../buildtools/third_party/libc++/trunk/include/type_traits" 1 3 | |
# 11 "../../buildtools/third_party/libc++/trunk/include/type_traits" 3 | |
#define _LIBCPP_TYPE_TRAITS | |
# 421 "../../buildtools/third_party/libc++/trunk/include/type_traits" 3 | |
# 1 "../../buildtools/third_party/libc++/trunk/include/__functional/invoke.h" 1 3 | |
# 11 "../../buildtools/third_party/libc++/trunk/include/__functional/invoke.h" 3 | |
#define _LIBCPP___FUNCTIONAL_INVOKE_H | |
# 1 "../../buildtools/third_party/libc++/trunk/include/__type_traits/add_lvalue_reference.h" 1 3 | |
# 10 "../../buildtools/third_party/libc++/trunk/include/__type_traits/add_lvalue_reference.h" 3 | |
#define _LIBCPP___TYPE_TRAITS_ADD_LVALUE_REFERENCE_H | |
# 1 "../../buildtools/third_party/libc++/trunk/include/__type_traits/is_referenceable.h" 1 3 | |
# 10 "../../buildtools/third_party/libc++/trunk/include/__type_traits/is_referenceable.h" 3 | |
#define _LIBCPP___TYPE_TRAITS_IS_REFERENCEABLE_H | |
# 1 "../../buildtools/third_party/libc++/trunk/include/__type_traits/is_same.h" 1 3 | |
# 10 "../../buildtools/third_party/libc++/trunk/include/__type_traits/is_same.h" 3 | |
#define _LIBCPP___TYPE_TRAITS_IS_SAME_H | |
# 17 "../../buildtools/third_party/libc++/trunk/include/__type_traits/is_same.h" 3 | |
namespace std { inline namespace Cr { | |
template <class _Tp, class _Up> | |
struct is_same : _BoolConstant<__is_same(_Tp, _Up)> { }; | |
template <class _Tp, class _Up> | |
inline constexpr bool is_same_v = __is_same(_Tp, _Up); | |
# 36 "../../buildtools/third_party/libc++/trunk/include/__type_traits/is_same.h" 3 | |
template <class _Tp, class _Up> | |
using _IsSame = _BoolConstant<__is_same(_Tp, _Up)>; | |
template <class _Tp, class _Up> | |
using _IsNotSame = _BoolConstant<!__is_same(_Tp, _Up)>; | |
}} | |
# 15 "../../buildtools/third_party/libc++/trunk/include/__type_traits/is_referenceable.h" 2 3 | |
# 18 "../../buildtools/third_party/libc++/trunk/include/__type_traits/is_referenceable.h" 3 | |
namespace std { inline namespace Cr { | |
struct __libcpp_is_referenceable_impl { | |
template <class _Tp> | |
static _Tp& __test(int); | |
template <class _Tp> | |
static false_type __test(...); | |
}; | |
template <class _Tp> | |
struct __libcpp_is_referenceable | |
: integral_constant<bool, _IsNotSame<decltype(__libcpp_is_referenceable_impl::__test<_Tp>(0)), false_type>::value> { | |
}; | |
}} | |
# 14 "../../buildtools/third_party/libc++/trunk/include/__type_traits/add_lvalue_reference.h" 2 3 | |
# 17 "../../buildtools/third_party/libc++/trunk/include/__type_traits/add_lvalue_reference.h" 3 | |
namespace std { inline namespace Cr { | |
template <class _Tp> | |
using __add_lvalue_reference_t = __add_lvalue_reference(_Tp); | |
# 42 "../../buildtools/third_party/libc++/trunk/include/__type_traits/add_lvalue_reference.h" 3 | |
template <class _Tp> | |
struct add_lvalue_reference { | |
using type __attribute__((__nodebug__)) = __add_lvalue_reference_t<_Tp>; | |
}; | |
template <class _Tp> using add_lvalue_reference_t = __add_lvalue_reference_t<_Tp>; | |
}} | |
# 15 "../../buildtools/third_party/libc++/trunk/include/__functional/invoke.h" 2 3 | |
# 1 "../../buildtools/third_party/libc++/trunk/include/__type_traits/apply_cv.h" 1 3 | |
# 10 "../../buildtools/third_party/libc++/trunk/include/__type_traits/apply_cv.h" 3 | |
#define _LIBCPP___TYPE_TRAITS_APPLY_CV_H | |
# 1 "../../buildtools/third_party/libc++/trunk/include/__type_traits/is_const.h" 1 3 | |
# 10 "../../buildtools/third_party/libc++/trunk/include/__type_traits/is_const.h" 3 | |
#define _LIBCPP___TYPE_TRAITS_IS_CONST_H | |
# 17 "../../buildtools/third_party/libc++/trunk/include/__type_traits/is_const.h" 3 | |
namespace std { inline namespace Cr { | |
template <class _Tp> | |
struct is_const : _BoolConstant<__is_const(_Tp)> { }; | |
template <class _Tp> | |
inline constexpr bool is_const_v = __is_const(_Tp); | |
# 43 "../../buildtools/third_party/libc++/trunk/include/__type_traits/is_const.h" 3 | |
}} | |
# 14 "../../buildtools/third_party/libc++/trunk/include/__type_traits/apply_cv.h" 2 3 | |
# 1 "../../buildtools/third_party/libc++/trunk/include/__type_traits/is_volatile.h" 1 3 | |
# 10 "../../buildtools/third_party/libc++/trunk/include/__type_traits/is_volatile.h" 3 | |
#define _LIBCPP___TYPE_TRAITS_IS_VOLATILE_H | |
# 17 "../../buildtools/third_party/libc++/trunk/include/__type_traits/is_volatile.h" 3 | |
namespace std { inline namespace Cr { | |
template <class _Tp> | |
struct is_volatile : _BoolConstant<__is_volatile(_Tp)> { }; | |
template <class _Tp> | |
inline constexpr bool is_volatile_v = __is_volatile(_Tp); | |
# 43 "../../buildtools/third_party/libc++/trunk/include/__type_traits/is_volatile.h" 3 | |
}} | |
# 15 "../../buildtools/third_party/libc++/trunk/include/__type_traits/apply_cv.h" 2 3 | |
# 1 "../../buildtools/third_party/libc++/trunk/include/__type_traits/remove_reference.h" 1 3 | |
# 10 "../../buildtools/third_party/libc++/trunk/include/__type_traits/remove_reference.h" 3 | |
#define _LIBCPP___TYPE_TRAITS_REMOVE_REFERENCE_H | |
# 17 "../../buildtools/third_party/libc++/trunk/include/__type_traits/remove_reference.h" 3 | |
namespace std { inline namespace Cr { | |
template <class _Tp> | |
struct remove_reference { | |
using type __attribute__((__nodebug__)) = __remove_reference_t(_Tp); | |
}; | |
template <class _Tp> | |
using __libcpp_remove_reference_t = __remove_reference_t(_Tp); | |
# 39 "../../buildtools/third_party/libc++/trunk/include/__type_traits/remove_reference.h" 3 | |
template <class _Tp> using remove_reference_t = __libcpp_remove_reference_t<_Tp>; | |
}} | |
# 16 "../../buildtools/third_party/libc++/trunk/include/__type_traits/apply_cv.h" 2 3 | |
# 20 "../../buildtools/third_party/libc++/trunk/include/__type_traits/apply_cv.h" 3 | |
namespace std { inline namespace Cr { | |
template <class _Tp, class _Up, bool = is_const<__libcpp_remove_reference_t<_Tp> >::value, | |
bool = is_volatile<__libcpp_remove_reference_t<_Tp> >::value> | |
struct __apply_cv | |
{ | |
typedef __attribute__((__nodebug__)) _Up type; | |
}; | |
template <class _Tp, class _Up> | |
struct __apply_cv<_Tp, _Up, true, false> | |
{ | |
typedef __attribute__((__nodebug__)) const _Up type; | |
}; | |
template <class _Tp, class _Up> | |
struct __apply_cv<_Tp, _Up, false, true> | |
{ | |
typedef volatile _Up type; | |
}; | |
template <class _Tp, class _Up> | |
struct __apply_cv<_Tp, _Up, true, true> | |
{ | |
typedef const volatile _Up type; | |
}; | |
template <class _Tp, class _Up> | |
struct __apply_cv<_Tp&, _Up, false, false> | |
{ | |
typedef _Up& type; | |
}; | |
template <class _Tp, class _Up> | |
struct __apply_cv<_Tp&, _Up, true, false> | |
{ | |
typedef const _Up& type; | |
}; | |
template <class _Tp, class _Up> | |
struct __apply_cv<_Tp&, _Up, false, true> | |
{ | |
typedef volatile _Up& type; | |
}; | |
template <class _Tp, class _Up> | |
struct __apply_cv<_Tp&, _Up, true, true> | |
{ | |
typedef const volatile _Up& type; | |
}; | |
}} | |
# 16 "../../buildtools/third_party/libc++/trunk/include/__functional/invoke.h" 2 3 | |
# 1 "../../buildtools/third_party/libc++/trunk/include/__type_traits/conditional.h" 1 3 | |
# 10 "../../buildtools/third_party/libc++/trunk/include/__type_traits/conditional.h" 3 | |
#define _LIBCPP___TYPE_TRAITS_CONDITIONAL_H | |
# 16 "../../buildtools/third_party/libc++/trunk/include/__type_traits/conditional.h" 3 | |
namespace std { inline namespace Cr { | |
template <bool> | |
struct _IfImpl; | |
template <> | |
struct _IfImpl<true> { | |
template <class _IfRes, class _ElseRes> | |
using _Select __attribute__((__nodebug__)) = _IfRes; | |
}; | |
template <> | |
struct _IfImpl<false> { | |
template <class _IfRes, class _ElseRes> | |
using _Select __attribute__((__nodebug__)) = _ElseRes; | |
}; | |
template <bool _Cond, class _IfRes, class _ElseRes> | |
using _If __attribute__((__nodebug__)) = typename _IfImpl<_Cond>::template _Select<_IfRes, _ElseRes>; | |
template <bool _Bp, class _If, class _Then> | |
struct conditional {typedef _If type;}; | |
template <class _If, class _Then> | |
struct conditional<false, _If, _Then> {typedef _Then type;}; | |
template <bool _Bp, class _IfRes, class _ElseRes> | |
using conditional_t = typename conditional<_Bp, _IfRes, _ElseRes>::type; | |
template <bool _Bp, class _If, class _Then> using __conditional_t = typename conditional<_Bp, _If, _Then>::type; | |
}} | |
# 17 "../../buildtools/third_party/libc++/trunk/include/__functional/invoke.h" 2 3 | |
# 1 "../../buildtools/third_party/libc++/trunk/include/__type_traits/decay.h" 1 3 | |
# 10 "../../buildtools/third_party/libc++/trunk/include/__type_traits/decay.h" 3 | |
#define _LIBCPP___TYPE_TRAITS_DECAY_H | |
# 1 "../../buildtools/third_party/libc++/trunk/include/__type_traits/add_pointer.h" 1 3 | |
# 10 "../../buildtools/third_party/libc++/trunk/include/__type_traits/add_pointer.h" 3 | |
#define _LIBCPP___TYPE_TRAITS_ADD_POINTER_H | |
# 1 "../../buildtools/third_party/libc++/trunk/include/__type_traits/is_void.h" 1 3 | |
# 10 "../../buildtools/third_party/libc++/trunk/include/__type_traits/is_void.h" 3 | |
#define _LIBCPP___TYPE_TRAITS_IS_VOID_H | |
# 17 "../../buildtools/third_party/libc++/trunk/include/__type_traits/is_void.h" 3 | |
namespace std { inline namespace Cr { | |
template <class _Tp> | |
struct is_void : _BoolConstant<__is_void(_Tp)> { }; | |
template <class _Tp> | |
inline constexpr bool is_void_v = __is_void(_Tp); | |
# 43 "../../buildtools/third_party/libc++/trunk/include/__type_traits/is_void.h" 3 | |
}} | |
# 16 "../../buildtools/third_party/libc++/trunk/include/__type_traits/add_pointer.h" 2 3 | |
# 21 "../../buildtools/third_party/libc++/trunk/include/__type_traits/add_pointer.h" 3 | |
namespace std { inline namespace Cr { | |
template <class _Tp> | |
using __add_pointer_t = __add_pointer(_Tp); | |
# 44 "../../buildtools/third_party/libc++/trunk/include/__type_traits/add_pointer.h" 3 | |
template <class _Tp> | |
struct add_pointer { | |
using type __attribute__((__nodebug__)) = __add_pointer_t<_Tp>; | |
}; | |
template <class _Tp> using add_pointer_t = __add_pointer_t<_Tp>; | |
}} | |
# 14 "../../buildtools/third_party/libc++/trunk/include/__type_traits/decay.h" 2 3 | |
# 1 "../../buildtools/third_party/libc++/trunk/include/__type_traits/is_array.h" 1 3 | |
# 10 "../../buildtools/third_party/libc++/trunk/include/__type_traits/is_array.h" 3 | |
#define _LIBCPP___TYPE_TRAITS_IS_ARRAY_H | |
# 18 "../../buildtools/third_party/libc++/trunk/include/__type_traits/is_array.h" 3 | |
namespace std { inline namespace Cr { | |
# 36 "../../buildtools/third_party/libc++/trunk/include/__type_traits/is_array.h" 3 | |
template <class _Tp> struct is_array | |
: public false_type {}; | |
template <class _Tp> struct is_array<_Tp[]> | |
: public true_type {}; | |
template <class _Tp, size_t _Np> struct is_array<_Tp[_Np]> | |
: public true_type {}; | |
template <class _Tp> | |
inline constexpr bool is_array_v = is_array<_Tp>::value; | |
}} | |
# 16 "../../buildtools/third_party/libc++/trunk/include/__type_traits/decay.h" 2 3 | |
# 1 "../../buildtools/third_party/libc++/trunk/include/__type_traits/is_function.h" 1 3 | |
# 10 "../../buildtools/third_party/libc++/trunk/include/__type_traits/is_function.h" 3 | |
#define _LIBCPP___TYPE_TRAITS_IS_FUNCTIONAL_H | |
# 1 "../../buildtools/third_party/libc++/trunk/include/__type_traits/is_reference.h" 1 3 | |
# 10 "../../buildtools/third_party/libc++/trunk/include/__type_traits/is_reference.h" 3 | |
#define _LIBCPP___TYPE_TRAITS_IS_REFERENCE_H | |
# 17 "../../buildtools/third_party/libc++/trunk/include/__type_traits/is_reference.h" 3 | |
namespace std { inline namespace Cr { | |
template<class _Tp> | |
struct is_lvalue_reference : _BoolConstant<__is_lvalue_reference(_Tp)> { }; | |
template<class _Tp> | |
struct is_rvalue_reference : _BoolConstant<__is_rvalue_reference(_Tp)> { }; | |
template<class _Tp> | |
struct is_reference : _BoolConstant<__is_reference(_Tp)> { }; | |
template <class _Tp> | |
inline constexpr bool is_reference_v = __is_reference(_Tp); | |
template <class _Tp> | |
inline constexpr bool is_lvalue_reference_v = __is_lvalue_reference(_Tp); | |
template <class _Tp> | |
inline constexpr bool is_rvalue_reference_v = __is_rvalue_reference(_Tp); | |
# 68 "../../buildtools/third_party/libc++/trunk/include/__type_traits/is_reference.h" 3 | |
}} | |
# 16 "../../buildtools/third_party/libc++/trunk/include/__type_traits/is_function.h" 2 3 | |
# 19 "../../buildtools/third_party/libc++/trunk/include/__type_traits/is_function.h" 3 | |
namespace std { inline namespace Cr { | |
template <class _Tp> | |
struct is_function : integral_constant<bool, __is_function(_Tp)> {}; | |
# 37 "../../buildtools/third_party/libc++/trunk/include/__type_traits/is_function.h" 3 | |
template <class _Tp> | |
inline constexpr bool is_function_v = is_function<_Tp>::value; | |
}} | |
# 17 "../../buildtools/third_party/libc++/trunk/include/__type_traits/decay.h" 2 3 | |
# 1 "../../buildtools/third_party/libc++/trunk/include/__type_traits/remove_extent.h" 1 3 | |
# 10 "../../buildtools/third_party/libc++/trunk/include/__type_traits/remove_extent.h" 3 | |
#define _LIBCPP___TYPE_TRAITS_REMOVE_EXTENT_H | |
# 17 "../../buildtools/third_party/libc++/trunk/include/__type_traits/remove_extent.h" 3 | |
namespace std { inline namespace Cr { | |
template <class _Tp> | |
struct remove_extent { | |
using type __attribute__((__nodebug__)) = __remove_extent(_Tp); | |
}; | |
template <class _Tp> | |
using __remove_extent_t = __remove_extent(_Tp); | |
# 42 "../../buildtools/third_party/libc++/trunk/include/__type_traits/remove_extent.h" 3 | |
template <class _Tp> using remove_extent_t = __remove_extent_t<_Tp>; | |
}} | |
# 20 "../../buildtools/third_party/libc++/trunk/include/__type_traits/decay.h" 2 3 | |
# 24 "../../buildtools/third_party/libc++/trunk/include/__type_traits/decay.h" 3 | |
namespace std { inline namespace Cr { | |
template <class _Tp> | |
struct decay { | |
using type __attribute__((__nodebug__)) = __decay(_Tp); | |
}; | |
# 66 "../../buildtools/third_party/libc++/trunk/include/__type_traits/decay.h" 3 | |
template <class _Tp> using decay_t = typename decay<_Tp>::type; | |
}} | |
# 18 "../../buildtools/third_party/libc++/trunk/include/__functional/invoke.h" 2 3 | |
# 1 "../../buildtools/third_party/libc++/trunk/include/__type_traits/is_base_of.h" 1 3 | |
# 10 "../../buildtools/third_party/libc++/trunk/include/__type_traits/is_base_of.h" 3 | |
#define _LIBCPP___TYPE_TRAITS_IS_BASE_OF_H | |
# 17 "../../buildtools/third_party/libc++/trunk/include/__type_traits/is_base_of.h" 3 | |
namespace std { inline namespace Cr { | |
template <class _Bp, class _Dp> | |
struct is_base_of | |
: public integral_constant<bool, __is_base_of(_Bp, _Dp)> {}; | |
template <class _Bp, class _Dp> | |
inline constexpr bool is_base_of_v = __is_base_of(_Bp, _Dp); | |
}} | |
# 21 "../../buildtools/third_party/libc++/trunk/include/__functional/invoke.h" 2 3 | |
# 1 "../../buildtools/third_party/libc++/trunk/include/__type_traits/is_core_convertible.h" 1 3 | |
# 10 "../../buildtools/third_party/libc++/trunk/include/__type_traits/is_core_convertible.h" 3 | |
#define _LIBCPP___TYPE_TRAITS_IS_CORE_CONVERTIBLE_H | |
# 17 "../../buildtools/third_party/libc++/trunk/include/__type_traits/is_core_convertible.h" 3 | |
namespace std { inline namespace Cr { | |
template <class _Tp, class _Up, class = void> | |
struct __is_core_convertible : public false_type {}; | |
template <class _Tp, class _Up> | |
struct __is_core_convertible<_Tp, _Up, decltype( | |
static_cast<void(*)(_Up)>(0) ( static_cast<_Tp(*)()>(0)() ) | |
)> : public true_type {}; | |
}} | |
# 22 "../../buildtools/third_party/libc++/trunk/include/__functional/invoke.h" 2 3 | |
# 1 "../../buildtools/third_party/libc++/trunk/include/__type_traits/is_member_function_pointer.h" 1 3 | |
# 10 "../../buildtools/third_party/libc++/trunk/include/__type_traits/is_member_function_pointer.h" 3 | |
#define _LIBCPP___TYPE_TRAITS_IS_MEMBER_FUNCTION_POINTER_H | |
# 20 "../../buildtools/third_party/libc++/trunk/include/__type_traits/is_member_function_pointer.h" 3 | |
namespace std { inline namespace Cr { | |
template <class _Tp> struct __libcpp_is_member_pointer { | |
enum { | |
__is_member = false, | |
__is_func = false, | |
__is_obj = false | |
}; | |
}; | |
template <class _Tp, class _Up> struct __libcpp_is_member_pointer<_Tp _Up::*> { | |
enum { | |
__is_member = true, | |
__is_func = is_function<_Tp>::value, | |
__is_obj = !__is_func, | |
}; | |
}; | |
template<class _Tp> | |
struct is_member_function_pointer | |
: _BoolConstant<__is_member_function_pointer(_Tp)> { }; | |
template <class _Tp> | |
inline constexpr bool is_member_function_pointer_v = __is_member_function_pointer(_Tp); | |
# 62 "../../buildtools/third_party/libc++/trunk/include/__type_traits/is_member_function_pointer.h" 3 | |
}} | |
# 23 "../../buildtools/third_party/libc++/trunk/include/__functional/invoke.h" 2 3 | |
# 1 "../../buildtools/third_party/libc++/trunk/include/__type_traits/is_member_object_pointer.h" 1 3 | |
# 10 "../../buildtools/third_party/libc++/trunk/include/__type_traits/is_member_object_pointer.h" 3 | |
#define _LIBCPP___TYPE_TRAITS_IS_MEMBER_OBJECT_POINTER_H | |
# 17 "../../buildtools/third_party/libc++/trunk/include/__type_traits/is_member_object_pointer.h" 3 | |
namespace std { inline namespace Cr { | |
template<class _Tp> | |
struct is_member_object_pointer | |
: _BoolConstant<__is_member_object_pointer(_Tp)> { }; | |
template <class _Tp> | |
inline constexpr bool is_member_object_pointer_v = __is_member_object_pointer(_Tp); | |
# 44 "../../buildtools/third_party/libc++/trunk/include/__type_traits/is_member_object_pointer.h" 3 | |
}} | |
# 24 "../../buildtools/third_party/libc++/trunk/include/__functional/invoke.h" 2 3 | |
# 1 "../../buildtools/third_party/libc++/trunk/include/__type_traits/is_reference_wrapper.h" 1 3 | |
# 10 "../../buildtools/third_party/libc++/trunk/include/__type_traits/is_reference_wrapper.h" 3 | |
#define _LIBCPP___TYPE_TRAITS_IS_REFERENCE_WRAPPER_H | |
# 18 "../../buildtools/third_party/libc++/trunk/include/__type_traits/is_reference_wrapper.h" 3 | |
namespace std { inline namespace Cr { | |
template <class _Tp> class reference_wrapper; | |
template <class _Tp> struct __is_reference_wrapper_impl : public false_type {}; | |
template <class _Tp> struct __is_reference_wrapper_impl<reference_wrapper<_Tp> > : public true_type {}; | |
template <class _Tp> struct __is_reference_wrapper | |
: public __is_reference_wrapper_impl<__remove_cv_t<_Tp> > {}; | |
}} | |
# 25 "../../buildtools/third_party/libc++/trunk/include/__functional/invoke.h" 2 3 | |
# 1 "../../buildtools/third_party/libc++/trunk/include/__type_traits/nat.h" 1 3 | |
# 10 "../../buildtools/third_party/libc++/trunk/include/__type_traits/nat.h" 3 | |
#define _LIBCPP___TYPE_TRAITS_NAT_H | |
# 16 "../../buildtools/third_party/libc++/trunk/include/__type_traits/nat.h" 3 | |
namespace std { inline namespace Cr { | |
struct __nat | |
{ | |
__nat() = delete; | |
__nat(const __nat&) = delete; | |
__nat& operator=(const __nat&) = delete; | |
~__nat() = delete; | |
}; | |
}} | |
# 28 "../../buildtools/third_party/libc++/trunk/include/__functional/invoke.h" 2 3 | |
# 1 "../../buildtools/third_party/libc++/trunk/include/__utility/declval.h" 1 3 | |
# 10 "../../buildtools/third_party/libc++/trunk/include/__utility/declval.h" 3 | |
#define _LIBCPP___UTILITY_DECLVAL_H | |
# 16 "../../buildtools/third_party/libc++/trunk/include/__utility/declval.h" 3 | |
namespace std { inline namespace Cr { | |
#pragma GCC diagnostic push | |
# 22 "../../buildtools/third_party/libc++/trunk/include/__utility/declval.h" 3 | |
#pragma GCC diagnostic ignored "-Wdeprecated" | |
# 22 "../../buildtools/third_party/libc++/trunk/include/__utility/declval.h" 3 | |
#pragma GCC diagnostic ignored "-Wdeprecated-declarations" | |
template <class _Tp> | |
_Tp&& __declval(int); | |
template <class _Tp> | |
_Tp __declval(long); | |
#pragma GCC diagnostic pop | |
template <class _Tp> | |
decltype(__declval<_Tp>(0)) declval() noexcept; | |
}} | |
# 30 "../../buildtools/third_party/libc++/trunk/include/__functional/invoke.h" 2 3 | |
# 1 "../../buildtools/third_party/libc++/trunk/include/__utility/forward.h" 1 3 | |
# 11 "../../buildtools/third_party/libc++/trunk/include/__utility/forward.h" 3 | |
#define _LIBCPP___UTILITY_FORWARD_H | |
# 19 "../../buildtools/third_party/libc++/trunk/include/__utility/forward.h" 3 | |
namespace std { inline namespace Cr { | |
template <class _Tp> | |
[[nodiscard]] inline __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) constexpr _Tp&& | |
forward(__libcpp_remove_reference_t<_Tp>& __t) noexcept { | |
return static_cast<_Tp&&>(__t); | |
} | |
template <class _Tp> | |
[[nodiscard]] inline __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) constexpr _Tp&& | |
forward(__libcpp_remove_reference_t<_Tp>&& __t) noexcept { | |
static_assert(!is_lvalue_reference<_Tp>::value, "cannot forward an rvalue as an lvalue"); | |
return static_cast<_Tp&&>(__t); | |
} | |
}} | |
# 31 "../../buildtools/third_party/libc++/trunk/include/__functional/invoke.h" 2 3 | |
# 34 "../../buildtools/third_party/libc++/trunk/include/__functional/invoke.h" 3 | |
namespace std { inline namespace Cr { | |
struct __any | |
{ | |
__any(...); | |
}; | |
template <class _MP, bool _IsMemberFunctionPtr, bool _IsMemberObjectPtr> | |
struct __member_pointer_traits_imp | |
{ | |
}; | |
template <class _Rp, class _Class, class ..._Param> | |
struct __member_pointer_traits_imp<_Rp (_Class::*)(_Param...), true, false> | |
{ | |
typedef _Class _ClassType; | |
typedef _Rp _ReturnType; | |
typedef _Rp (_FnType) (_Param...); | |
}; | |
template <class _Rp, class _Class, class ..._Param> | |
struct __member_pointer_traits_imp<_Rp (_Class::*)(_Param..., ...), true, false> | |
{ | |
typedef _Class _ClassType; | |
typedef _Rp _ReturnType; | |
typedef _Rp (_FnType) (_Param..., ...); | |
}; | |
template <class _Rp, class _Class, class ..._Param> | |
struct __member_pointer_traits_imp<_Rp (_Class::*)(_Param...) const, true, false> | |
{ | |
typedef _Class const _ClassType; | |
typedef _Rp _ReturnType; | |
typedef _Rp (_FnType) (_Param...); | |
}; | |
template <class _Rp, class _Class, class ..._Param> | |
struct __member_pointer_traits_imp<_Rp (_Class::*)(_Param..., ...) const, true, false> | |
{ | |
typedef _Class const _ClassType; | |
typedef _Rp _ReturnType; | |
typedef _Rp (_FnType) (_Param..., ...); | |
}; | |
template <class _Rp, class _Class, class ..._Param> | |
struct __member_pointer_traits_imp<_Rp (_Class::*)(_Param...) volatile, true, false> | |
{ | |
typedef _Class volatile _ClassType; | |
typedef _Rp _ReturnType; | |
typedef _Rp (_FnType) (_Param...); | |
}; | |
template <class _Rp, class _Class, class ..._Param> | |
struct __member_pointer_traits_imp<_Rp (_Class::*)(_Param..., ...) volatile, true, false> | |
{ | |
typedef _Class volatile _ClassType; | |
typedef _Rp _ReturnType; | |
typedef _Rp (_FnType) (_Param..., ...); | |
}; | |
template <class _Rp, class _Class, class ..._Param> | |
struct __member_pointer_traits_imp<_Rp (_Class::*)(_Param...) const volatile, true, false> | |
{ | |
typedef _Class const volatile _ClassType; | |
typedef _Rp _ReturnType; | |
typedef _Rp (_FnType) (_Param...); | |
}; | |
template <class _Rp, class _Class, class ..._Param> | |
struct __member_pointer_traits_imp<_Rp (_Class::*)(_Param..., ...) const volatile, true, false> | |
{ | |
typedef _Class const volatile _ClassType; | |
typedef _Rp _ReturnType; | |
typedef _Rp (_FnType) (_Param..., ...); | |
}; | |
template <class _Rp, class _Class, class ..._Param> | |
struct __member_pointer_traits_imp<_Rp (_Class::*)(_Param...) &, true, false> | |
{ | |
typedef _Class& _ClassType; | |
typedef _Rp _ReturnType; | |
typedef _Rp (_FnType) (_Param...); | |
}; | |
template <class _Rp, class _Class, class ..._Param> | |
struct __member_pointer_traits_imp<_Rp (_Class::*)(_Param..., ...) &, true, false> | |
{ | |
typedef _Class& _ClassType; | |
typedef _Rp _ReturnType; | |
typedef _Rp (_FnType) (_Param..., ...); | |
}; | |
template <class _Rp, class _Class, class ..._Param> | |
struct __member_pointer_traits_imp<_Rp (_Class::*)(_Param...) const&, true, false> | |
{ | |
typedef _Class const& _ClassType; | |
typedef _Rp _ReturnType; | |
typedef _Rp (_FnType) (_Param...); | |
}; | |
template <class _Rp, class _Class, class ..._Param> | |
struct __member_pointer_traits_imp<_Rp (_Class::*)(_Param..., ...) const&, true, false> | |
{ | |
typedef _Class const& _ClassType; | |
typedef _Rp _ReturnType; | |
typedef _Rp (_FnType) (_Param..., ...); | |
}; | |
template <class _Rp, class _Class, class ..._Param> | |
struct __member_pointer_traits_imp<_Rp (_Class::*)(_Param...) volatile&, true, false> | |
{ | |
typedef _Class volatile& _ClassType; | |
typedef _Rp _ReturnType; | |
typedef _Rp (_FnType) (_Param...); | |
}; | |
template <class _Rp, class _Class, class ..._Param> | |
struct __member_pointer_traits_imp<_Rp (_Class::*)(_Param..., ...) volatile&, true, false> | |
{ | |
typedef _Class volatile& _ClassType; | |
typedef _Rp _ReturnType; | |
typedef _Rp (_FnType) (_Param..., ...); | |
}; | |
template <class _Rp, class _Class, class ..._Param> | |
struct __member_pointer_traits_imp<_Rp (_Class::*)(_Param...) const volatile&, true, false> | |
{ | |
typedef _Class const volatile& _ClassType; | |
typedef _Rp _ReturnType; | |
typedef _Rp (_FnType) (_Param...); | |
}; | |
template <class _Rp, class _Class, class ..._Param> | |
struct __member_pointer_traits_imp<_Rp (_Class::*)(_Param..., ...) const volatile&, true, false> | |
{ | |
typedef _Class const volatile& _ClassType; | |
typedef _Rp _ReturnType; | |
typedef _Rp (_FnType) (_Param..., ...); | |
}; | |
template <class _Rp, class _Class, class ..._Param> | |
struct __member_pointer_traits_imp<_Rp (_Class::*)(_Param...) &&, true, false> | |
{ | |
typedef _Class&& _ClassType; | |
typedef _Rp _ReturnType; | |
typedef _Rp (_FnType) (_Param...); | |
}; | |
template <class _Rp, class _Class, class ..._Param> | |
struct __member_pointer_traits_imp<_Rp (_Class::*)(_Param..., ...) &&, true, false> | |
{ | |
typedef _Class&& _ClassType; | |
typedef _Rp _ReturnType; | |
typedef _Rp (_FnType) (_Param..., ...); | |
}; | |
template <class _Rp, class _Class, class ..._Param> | |
struct __member_pointer_traits_imp<_Rp (_Class::*)(_Param...) const&&, true, false> | |
{ | |
typedef _Class const&& _ClassType; | |
typedef _Rp _ReturnType; | |
typedef _Rp (_FnType) (_Param...); | |
}; | |
template <class _Rp, class _Class, class ..._Param> | |
struct __member_pointer_traits_imp<_Rp (_Class::*)(_Param..., ...) const&&, true, false> | |
{ | |
typedef _Class const&& _ClassType; | |
typedef _Rp _ReturnType; | |
typedef _Rp (_FnType) (_Param..., ...); | |
}; | |
template <class _Rp, class _Class, class ..._Param> | |
struct __member_pointer_traits_imp<_Rp (_Class::*)(_Param...) volatile&&, true, false> | |
{ | |
typedef _Class volatile&& _ClassType; | |
typedef _Rp _ReturnType; | |
typedef _Rp (_FnType) (_Param...); | |
}; | |
template <class _Rp, class _Class, class ..._Param> | |
struct __member_pointer_traits_imp<_Rp (_Class::*)(_Param..., ...) volatile&&, true, false> | |
{ | |
typedef _Class volatile&& _ClassType; | |
typedef _Rp _ReturnType; | |
typedef _Rp (_FnType) (_Param..., ...); | |
}; | |
template <class _Rp, class _Class, class ..._Param> | |
struct __member_pointer_traits_imp<_Rp (_Class::*)(_Param...) const volatile&&, true, false> | |
{ | |
typedef _Class const volatile&& _ClassType; | |
typedef _Rp _ReturnType; | |
typedef _Rp (_FnType) (_Param...); | |
}; | |
template <class _Rp, class _Class, class ..._Param> | |
struct __member_pointer_traits_imp<_Rp (_Class::*)(_Param..., ...) const volatile&&, true, false> | |
{ | |
typedef _Class const volatile&& _ClassType; | |
typedef _Rp _ReturnType; | |
typedef _Rp (_FnType) (_Param..., ...); | |
}; | |
template <class _Rp, class _Class> | |
struct __member_pointer_traits_imp<_Rp _Class::*, false, true> | |
{ | |
typedef _Class _ClassType; | |
typedef _Rp _ReturnType; | |
}; | |
template <class _MP> | |
struct __member_pointer_traits | |
: public __member_pointer_traits_imp<__remove_cv_t<_MP>, | |
is_member_function_pointer<_MP>::value, | |
is_member_object_pointer<_MP>::value> | |
{ | |
}; | |
template <class _DecayedFp> | |
struct __member_pointer_class_type {}; | |
template <class _Ret, class _ClassType> | |
struct __member_pointer_class_type<_Ret _ClassType::*> { | |
typedef _ClassType type; | |
}; | |
template <class _Fp, class _A0, | |
class _DecayFp = typename decay<_Fp>::type, | |
class _DecayA0 = typename decay<_A0>::type, | |
class _ClassT = typename __member_pointer_class_type<_DecayFp>::type> | |
using __enable_if_bullet1 = typename enable_if | |
< | |
is_member_function_pointer<_DecayFp>::value | |
&& is_base_of<_ClassT, _DecayA0>::value | |
>::type; | |
template <class _Fp, class _A0, | |
class _DecayFp = typename decay<_Fp>::type, | |
class _DecayA0 = typename decay<_A0>::type> | |
using __enable_if_bullet2 = typename enable_if | |
< | |
is_member_function_pointer<_DecayFp>::value | |
&& __is_reference_wrapper<_DecayA0>::value | |
>::type; | |
template <class _Fp, class _A0, | |
class _DecayFp = typename decay<_Fp>::type, | |
class _DecayA0 = typename decay<_A0>::type, | |
class _ClassT = typename __member_pointer_class_type<_DecayFp>::type> | |
using __enable_if_bullet3 = typename enable_if | |
< | |
is_member_function_pointer<_DecayFp>::value | |
&& !is_base_of<_ClassT, _DecayA0>::value | |
&& !__is_reference_wrapper<_DecayA0>::value | |
>::type; | |
template <class _Fp, class _A0, | |
class _DecayFp = typename decay<_Fp>::type, | |
class _DecayA0 = typename decay<_A0>::type, | |
class _ClassT = typename __member_pointer_class_type<_DecayFp>::type> | |
using __enable_if_bullet4 = typename enable_if | |
< | |
is_member_object_pointer<_DecayFp>::value | |
&& is_base_of<_ClassT, _DecayA0>::value | |
>::type; | |
template <class _Fp, class _A0, | |
class _DecayFp = typename decay<_Fp>::type, | |
class _DecayA0 = typename decay<_A0>::type> | |
using __enable_if_bullet5 = typename enable_if | |
< | |
is_member_object_pointer<_DecayFp>::value | |
&& __is_reference_wrapper<_DecayA0>::value | |
>::type; | |
template <class _Fp, class _A0, | |
class _DecayFp = typename decay<_Fp>::type, | |
class _DecayA0 = typename decay<_A0>::type, | |
class _ClassT = typename __member_pointer_class_type<_DecayFp>::type> | |
using __enable_if_bullet6 = typename enable_if | |
< | |
is_member_object_pointer<_DecayFp>::value | |
&& !is_base_of<_ClassT, _DecayA0>::value | |
&& !__is_reference_wrapper<_DecayA0>::value | |
>::type; | |
template <class ..._Args> | |
__nat __invoke(__any, _Args&& ...__args); | |
template <class _Fp, class _A0, class ..._Args, | |
class = __enable_if_bullet1<_Fp, _A0> > | |
inline __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) | |
constexpr decltype((std::declval<_A0>().*std::declval<_Fp>())(std::declval<_Args>()...)) | |
__invoke(_Fp&& __f, _A0&& __a0, _Args&& ...__args) | |
noexcept(noexcept((static_cast<_A0&&>(__a0).*__f)(static_cast<_Args&&>(__args)...))) | |
{ return (static_cast<_A0&&>(__a0).*__f)(static_cast<_Args&&>(__args)...); } | |
template <class _Fp, class _A0, class ..._Args, | |
class = __enable_if_bullet2<_Fp, _A0> > | |
inline __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) | |
constexpr decltype((std::declval<_A0>().get().*std::declval<_Fp>())(std::declval<_Args>()...)) | |
__invoke(_Fp&& __f, _A0&& __a0, _Args&& ...__args) | |
noexcept(noexcept((__a0.get().*__f)(static_cast<_Args&&>(__args)...))) | |
{ return (__a0.get().*__f)(static_cast<_Args&&>(__args)...); } | |
template <class _Fp, class _A0, class ..._Args, | |
class = __enable_if_bullet3<_Fp, _A0> > | |
inline __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) | |
constexpr decltype(((*std::declval<_A0>()).*std::declval<_Fp>())(std::declval<_Args>()...)) | |
__invoke(_Fp&& __f, _A0&& __a0, _Args&& ...__args) | |
noexcept(noexcept(((*static_cast<_A0&&>(__a0)).*__f)(static_cast<_Args&&>(__args)...))) | |
{ return ((*static_cast<_A0&&>(__a0)).*__f)(static_cast<_Args&&>(__args)...); } | |
template <class _Fp, class _A0, | |
class = __enable_if_bullet4<_Fp, _A0> > | |
inline __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) | |
constexpr decltype(std::declval<_A0>().*std::declval<_Fp>()) | |
__invoke(_Fp&& __f, _A0&& __a0) | |
noexcept(noexcept(static_cast<_A0&&>(__a0).*__f)) | |
{ return static_cast<_A0&&>(__a0).*__f; } | |
template <class _Fp, class _A0, | |
class = __enable_if_bullet5<_Fp, _A0> > | |
inline __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) | |
constexpr decltype(std::declval<_A0>().get().*std::declval<_Fp>()) | |
__invoke(_Fp&& __f, _A0&& __a0) | |
noexcept(noexcept(__a0.get().*__f)) | |
{ return __a0.get().*__f; } | |
template <class _Fp, class _A0, | |
class = __enable_if_bullet6<_Fp, _A0> > | |
inline __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) | |
constexpr decltype((*std::declval<_A0>()).*std::declval<_Fp>()) | |
__invoke(_Fp&& __f, _A0&& __a0) | |
noexcept(noexcept((*static_cast<_A0&&>(__a0)).*__f)) | |
{ return (*static_cast<_A0&&>(__a0)).*__f; } | |
template <class _Fp, class ..._Args> | |
inline __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) | |
constexpr decltype(std::declval<_Fp>()(std::declval<_Args>()...)) | |
__invoke(_Fp&& __f, _Args&& ...__args) | |
noexcept(noexcept(static_cast<_Fp&&>(__f)(static_cast<_Args&&>(__args)...))) | |
{ return static_cast<_Fp&&>(__f)(static_cast<_Args&&>(__args)...); } | |
template <class _Ret, class _Fp, class ..._Args> | |
struct __invokable_r | |
{ | |
template <class _XFp, class ..._XArgs> | |
static decltype(std::__invoke(declval<_XFp>(), declval<_XArgs>()...)) __try_call(int); | |
template <class _XFp, class ..._XArgs> | |
static __nat __try_call(...); | |
using _Result = decltype(__try_call<_Fp, _Args...>(0)); | |
using type = typename conditional< | |
_IsNotSame<_Result, __nat>::value, | |
typename conditional< is_void<_Ret>::value, true_type, __is_core_convertible<_Result, _Ret> >::type, | |
false_type >::type; | |
static const bool value = type::value; | |
}; | |
template <class _Fp, class ..._Args> | |
using __invokable = __invokable_r<void, _Fp, _Args...>; | |
template <bool _IsInvokable, bool _IsCVVoid, class _Ret, class _Fp, class ..._Args> | |
struct __nothrow_invokable_r_imp { | |
static const bool value = false; | |
}; | |
template <class _Ret, class _Fp, class ..._Args> | |
struct __nothrow_invokable_r_imp<true, false, _Ret, _Fp, _Args...> | |
{ | |
typedef __nothrow_invokable_r_imp _ThisT; | |
template <class _Tp> | |
static void __test_noexcept(_Tp) noexcept; | |
static const bool value = noexcept(_ThisT::__test_noexcept<_Ret>( | |
std::__invoke(declval<_Fp>(), declval<_Args>()...))); | |
}; | |
template <class _Ret, class _Fp, class ..._Args> | |
struct __nothrow_invokable_r_imp<true, true, _Ret, _Fp, _Args...> | |
{ | |
static const bool value = noexcept( | |
std::__invoke(declval<_Fp>(), declval<_Args>()...)); | |
}; | |
template <class _Ret, class _Fp, class ..._Args> | |
using __nothrow_invokable_r = | |
__nothrow_invokable_r_imp< | |
__invokable_r<_Ret, _Fp, _Args...>::value, | |
is_void<_Ret>::value, | |
_Ret, _Fp, _Args... | |
>; | |
template <class _Fp, class ..._Args> | |
using __nothrow_invokable = | |
__nothrow_invokable_r_imp< | |
__invokable<_Fp, _Args...>::value, | |
true, void, _Fp, _Args... | |
>; | |
template <class _Fp, class ..._Args> | |
struct __invoke_of | |
: public enable_if< | |
__invokable<_Fp, _Args...>::value, | |
typename __invokable_r<void, _Fp, _Args...>::_Result> | |
{ | |
}; | |
template <class _Ret, bool = is_void<_Ret>::value> | |
struct __invoke_void_return_wrapper | |
{ | |
template <class ..._Args> | |
static _Ret __call(_Args&&... __args) { | |
return std::__invoke(std::forward<_Args>(__args)...); | |
} | |
}; | |
template <class _Ret> | |
struct __invoke_void_return_wrapper<_Ret, true> | |
{ | |
template <class ..._Args> | |
static void __call(_Args&&... __args) { | |
std::__invoke(std::forward<_Args>(__args)...); | |
} | |
}; | |
template <class _Fn, class ..._Args> | |
struct is_invocable | |
: integral_constant<bool, __invokable<_Fn, _Args...>::value> {}; | |
template <class _Ret, class _Fn, class ..._Args> | |
struct is_invocable_r | |
: integral_constant<bool, __invokable_r<_Ret, _Fn, _Args...>::value> {}; | |
template <class _Fn, class ..._Args> | |
inline constexpr bool is_invocable_v = is_invocable<_Fn, _Args...>::value; | |
template <class _Ret, class _Fn, class ..._Args> | |
inline constexpr bool is_invocable_r_v = is_invocable_r<_Ret, _Fn, _Args...>::value; | |
template <class _Fn, class ..._Args> | |
struct is_nothrow_invocable | |
: integral_constant<bool, __nothrow_invokable<_Fn, _Args...>::value> {}; | |
template <class _Ret, class _Fn, class ..._Args> | |
struct is_nothrow_invocable_r | |
: integral_constant<bool, __nothrow_invokable_r<_Ret, _Fn, _Args...>::value> {}; | |
template <class _Fn, class ..._Args> | |
inline constexpr bool is_nothrow_invocable_v = is_nothrow_invocable<_Fn, _Args...>::value; | |
template <class _Ret, class _Fn, class ..._Args> | |
inline constexpr bool is_nothrow_invocable_r_v = is_nothrow_invocable_r<_Ret, _Fn, _Args...>::value; | |
template <class _Fn, class... _Args> | |
struct invoke_result | |
: __invoke_of<_Fn, _Args...> | |
{ | |
}; | |
template <class _Fn, class... _Args> | |
using invoke_result_t = typename invoke_result<_Fn, _Args...>::type; | |
template <class _Fn, class ..._Args> | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) invoke_result_t<_Fn, _Args...> | |
invoke(_Fn&& __f, _Args&&... __args) | |
noexcept(is_nothrow_invocable_v<_Fn, _Args...>) | |
{ | |
return std::__invoke(std::forward<_Fn>(__f), std::forward<_Args>(__args)...); | |
} | |
}} | |
# 422 "../../buildtools/third_party/libc++/trunk/include/type_traits" 2 3 | |
# 1 "../../buildtools/third_party/libc++/trunk/include/__fwd/hash.h" 1 3 | |
# 10 "../../buildtools/third_party/libc++/trunk/include/__fwd/hash.h" 3 | |
#define _LIBCPP___FWD_HASH_H | |
# 16 "../../buildtools/third_party/libc++/trunk/include/__fwd/hash.h" 3 | |
namespace std { inline namespace Cr { | |
template <class> | |
struct hash; | |
}} | |
# 423 "../../buildtools/third_party/libc++/trunk/include/type_traits" 2 3 | |
# 1 "../../buildtools/third_party/libc++/trunk/include/__type_traits/add_const.h" 1 3 | |
# 10 "../../buildtools/third_party/libc++/trunk/include/__type_traits/add_const.h" 3 | |
#define _LIBCPP___TYPE_TRAITS_ADD_CONST_H | |
# 16 "../../buildtools/third_party/libc++/trunk/include/__type_traits/add_const.h" 3 | |
namespace std { inline namespace Cr { | |
template <class _Tp> struct add_const { | |
typedef __attribute__((__nodebug__)) const _Tp type; | |
}; | |
template <class _Tp> using add_const_t = typename add_const<_Tp>::type; | |
}} | |
# 424 "../../buildtools/third_party/libc++/trunk/include/type_traits" 2 3 | |
# 1 "../../buildtools/third_party/libc++/trunk/include/__type_traits/add_cv.h" 1 3 | |
# 10 "../../buildtools/third_party/libc++/trunk/include/__type_traits/add_cv.h" 3 | |
#define _LIBCPP___TYPE_TRAITS_ADD_CV_H | |
# 16 "../../buildtools/third_party/libc++/trunk/include/__type_traits/add_cv.h" 3 | |
namespace std { inline namespace Cr { | |
template <class _Tp> struct add_cv { | |
typedef __attribute__((__nodebug__)) const volatile _Tp type; | |
}; | |
template <class _Tp> using add_cv_t = typename add_cv<_Tp>::type; | |
}} | |
# 425 "../../buildtools/third_party/libc++/trunk/include/type_traits" 2 3 | |
# 1 "../../buildtools/third_party/libc++/trunk/include/__type_traits/add_rvalue_reference.h" 1 3 | |
# 10 "../../buildtools/third_party/libc++/trunk/include/__type_traits/add_rvalue_reference.h" 3 | |
#define _LIBCPP___TYPE_TRAITS_ADD_RVALUE_REFERENCE_H | |
# 17 "../../buildtools/third_party/libc++/trunk/include/__type_traits/add_rvalue_reference.h" 3 | |
namespace std { inline namespace Cr { | |
template <class _Tp> | |
using __add_rvalue_reference_t = __add_rvalue_reference(_Tp); | |
# 42 "../../buildtools/third_party/libc++/trunk/include/__type_traits/add_rvalue_reference.h" 3 | |
template <class _Tp> | |
struct add_rvalue_reference { | |
using type = __add_rvalue_reference_t<_Tp>; | |
}; | |
template <class _Tp> | |
using add_rvalue_reference_t = __add_rvalue_reference_t<_Tp>; | |
}} | |
# 428 "../../buildtools/third_party/libc++/trunk/include/type_traits" 2 3 | |
# 1 "../../buildtools/third_party/libc++/trunk/include/__type_traits/add_volatile.h" 1 3 | |
# 10 "../../buildtools/third_party/libc++/trunk/include/__type_traits/add_volatile.h" 3 | |
#define _LIBCPP___TYPE_TRAITS_ADD_VOLATILE_H | |
# 16 "../../buildtools/third_party/libc++/trunk/include/__type_traits/add_volatile.h" 3 | |
namespace std { inline namespace Cr { | |
template <class _Tp> struct add_volatile { | |
typedef __attribute__((__nodebug__)) volatile _Tp type; | |
}; | |
template <class _Tp> using add_volatile_t = typename add_volatile<_Tp>::type; | |
}} | |
# 429 "../../buildtools/third_party/libc++/trunk/include/type_traits" 2 3 | |
# 1 "../../buildtools/third_party/libc++/trunk/include/__type_traits/aligned_storage.h" 1 3 | |
# 10 "../../buildtools/third_party/libc++/trunk/include/__type_traits/aligned_storage.h" 3 | |
#define _LIBCPP___TYPE_TRAITS_ALIGNED_STORAGE_H | |
# 1 "../../buildtools/third_party/libc++/trunk/include/__type_traits/type_list.h" 1 3 | |
# 10 "../../buildtools/third_party/libc++/trunk/include/__type_traits/type_list.h" 3 | |
#define _LIBCPP___TYPE_TRAITS_TYPE_LIST_H | |
# 17 "../../buildtools/third_party/libc++/trunk/include/__type_traits/type_list.h" 3 | |
namespace std { inline namespace Cr { | |
template <class _Hp, class _Tp> | |
struct __type_list | |
{ | |
typedef _Hp _Head; | |
typedef _Tp _Tail; | |
}; | |
template <class _TypeList, size_t _Size, bool = _Size <= sizeof(typename _TypeList::_Head)> struct __find_first; | |
template <class _Hp, class _Tp, size_t _Size> | |
struct __find_first<__type_list<_Hp, _Tp>, _Size, true> | |
{ | |
typedef __attribute__((__nodebug__)) _Hp type; | |
}; | |
template <class _Hp, class _Tp, size_t _Size> | |
struct __find_first<__type_list<_Hp, _Tp>, _Size, false> | |
{ | |
typedef __attribute__((__nodebug__)) typename __find_first<_Tp, _Size>::type type; | |
}; | |
}} | |
# 17 "../../buildtools/third_party/libc++/trunk/include/__type_traits/aligned_storage.h" 2 3 | |
# 21 "../../buildtools/third_party/libc++/trunk/include/__type_traits/aligned_storage.h" 3 | |
namespace std { inline namespace Cr { | |
template <class _Tp> | |
struct __align_type | |
{ | |
static const size_t value = __alignof(_Tp); | |
typedef _Tp type; | |
}; | |
struct __struct_double {long double __lx;}; | |
struct __struct_double4 {double __lx[4];}; | |
typedef | |
__type_list<__align_type<unsigned char>, | |
__type_list<__align_type<unsigned short>, | |
__type_list<__align_type<unsigned int>, | |
__type_list<__align_type<unsigned long>, | |
__type_list<__align_type<unsigned long long>, | |
__type_list<__align_type<double>, | |
__type_list<__align_type<long double>, | |
__type_list<__align_type<__struct_double>, | |
__type_list<__align_type<__struct_double4>, | |
__type_list<__align_type<int*>, | |
__nat | |
> > > > > > > > > > __all_types; | |
template <size_t _Align> | |
struct alignas(_Align) __fallback_overaligned {}; | |
template <class _TL, size_t _Align> struct __find_pod; | |
template <class _Hp, size_t _Align> | |
struct __find_pod<__type_list<_Hp, __nat>, _Align> | |
{ | |
typedef typename conditional< | |
_Align == _Hp::value, | |
typename _Hp::type, | |
__fallback_overaligned<_Align> | |
>::type type; | |
}; | |
template <class _Hp, class _Tp, size_t _Align> | |
struct __find_pod<__type_list<_Hp, _Tp>, _Align> | |
{ | |
typedef typename conditional< | |
_Align == _Hp::value, | |
typename _Hp::type, | |
typename __find_pod<_Tp, _Align>::type | |
>::type type; | |
}; | |
template <class _TL, size_t _Len> struct __find_max_align; | |
template <class _Hp, size_t _Len> | |
struct __find_max_align<__type_list<_Hp, __nat>, _Len> : public integral_constant<size_t, _Hp::value> {}; | |
template <size_t _Len, size_t _A1, size_t _A2> | |
struct __select_align | |
{ | |
private: | |
static const size_t __min = _A2 < _A1 ? _A2 : _A1; | |
static const size_t __max = _A1 < _A2 ? _A2 : _A1; | |
public: | |
static const size_t value = _Len < __max ? __min : __max; | |
}; | |
template <class _Hp, class _Tp, size_t _Len> | |
struct __find_max_align<__type_list<_Hp, _Tp>, _Len> | |
: public integral_constant<size_t, __select_align<_Len, _Hp::value, __find_max_align<_Tp, _Len>::value>::value> {}; | |
template <size_t _Len, size_t _Align = __find_max_align<__all_types, _Len>::value> | |
struct aligned_storage | |
{ | |
typedef typename __find_pod<__all_types, _Align>::type _Aligner; | |
union type | |
{ | |
_Aligner __align; | |
unsigned char __data[(_Len + _Align - 1)/_Align * _Align]; | |
}; | |
}; | |
template <size_t _Len, size_t _Align = __find_max_align<__all_types, _Len>::value> | |
using aligned_storage_t = typename aligned_storage<_Len, _Align>::type; | |
#define _CREATE_ALIGNED_STORAGE_SPECIALIZATION(n) template <size_t _Len>struct _LIBCPP_TEMPLATE_VIS aligned_storage<_Len, n>{ struct _ALIGNAS(n) type { unsigned char __lx[(_Len + n - 1)/n * n]; };} | |
# 119 "../../buildtools/third_party/libc++/trunk/include/__type_traits/aligned_storage.h" 3 | |
template <size_t _Len>struct aligned_storage<_Len, 0x1>{ struct alignas(0x1) type { unsigned char __lx[(_Len + 0x1 - 1)/0x1 * 0x1]; };}; | |
template <size_t _Len>struct aligned_storage<_Len, 0x2>{ struct alignas(0x2) type { unsigned char __lx[(_Len + 0x2 - 1)/0x2 * 0x2]; };}; | |
template <size_t _Len>struct aligned_storage<_Len, 0x4>{ struct alignas(0x4) type { unsigned char __lx[(_Len + 0x4 - 1)/0x4 * 0x4]; };}; | |
template <size_t _Len>struct aligned_storage<_Len, 0x8>{ struct alignas(0x8) type { unsigned char __lx[(_Len + 0x8 - 1)/0x8 * 0x8]; };}; | |
template <size_t _Len>struct aligned_storage<_Len, 0x10>{ struct alignas(0x10) type { unsigned char __lx[(_Len + 0x10 - 1)/0x10 * 0x10]; };}; | |
template <size_t _Len>struct aligned_storage<_Len, 0x20>{ struct alignas(0x20) type { unsigned char __lx[(_Len + 0x20 - 1)/0x20 * 0x20]; };}; | |
template <size_t _Len>struct aligned_storage<_Len, 0x40>{ struct alignas(0x40) type { unsigned char __lx[(_Len + 0x40 - 1)/0x40 * 0x40]; };}; | |
template <size_t _Len>struct aligned_storage<_Len, 0x80>{ struct alignas(0x80) type { unsigned char __lx[(_Len + 0x80 - 1)/0x80 * 0x80]; };}; | |
template <size_t _Len>struct aligned_storage<_Len, 0x100>{ struct alignas(0x100) type { unsigned char __lx[(_Len + 0x100 - 1)/0x100 * 0x100]; };}; | |
template <size_t _Len>struct aligned_storage<_Len, 0x200>{ struct alignas(0x200) type { unsigned char __lx[(_Len + 0x200 - 1)/0x200 * 0x200]; };}; | |
template <size_t _Len>struct aligned_storage<_Len, 0x400>{ struct alignas(0x400) type { unsigned char __lx[(_Len + 0x400 - 1)/0x400 * 0x400]; };}; | |
template <size_t _Len>struct aligned_storage<_Len, 0x800>{ struct alignas(0x800) type { unsigned char __lx[(_Len + 0x800 - 1)/0x800 * 0x800]; };}; | |
template <size_t _Len>struct aligned_storage<_Len, 0x1000>{ struct alignas(0x1000) type { unsigned char __lx[(_Len + 0x1000 - 1)/0x1000 * 0x1000]; };}; | |
template <size_t _Len>struct aligned_storage<_Len, 0x2000>{ struct alignas(0x2000) type { unsigned char __lx[(_Len + 0x2000 - 1)/0x2000 * 0x2000]; };}; | |
template <size_t _Len>struct aligned_storage<_Len, 0x4000>{ struct alignas(0x4000) type { unsigned char __lx[(_Len + 0x4000 - 1)/0x4000 * 0x4000]; };}; | |
#undef _CREATE_ALIGNED_STORAGE_SPECIALIZATION | |
}} | |
# 430 "../../buildtools/third_party/libc++/trunk/include/type_traits" 2 3 | |
# 1 "../../buildtools/third_party/libc++/trunk/include/__type_traits/aligned_union.h" 1 3 | |
# 10 "../../buildtools/third_party/libc++/trunk/include/__type_traits/aligned_union.h" 3 | |
#define _LIBCPP___TYPE_TRAITS_ALIGNED_UNION_H | |
# 19 "../../buildtools/third_party/libc++/trunk/include/__type_traits/aligned_union.h" 3 | |
namespace std { inline namespace Cr { | |
template <size_t _I0, size_t ..._In> | |
struct __static_max; | |
template <size_t _I0> | |
struct __static_max<_I0> | |
{ | |
static const size_t value = _I0; | |
}; | |
template <size_t _I0, size_t _I1, size_t ..._In> | |
struct __static_max<_I0, _I1, _In...> | |
{ | |
static const size_t value = _I0 >= _I1 ? __static_max<_I0, _In...>::value : | |
__static_max<_I1, _In...>::value; | |
}; | |
template <size_t _Len, class _Type0, class ..._Types> | |
struct aligned_union | |
{ | |
static const size_t alignment_value = __static_max<__alignof(_Type0), | |
__alignof(_Types)...>::value; | |
static const size_t __len = __static_max<_Len, sizeof(_Type0), | |
sizeof(_Types)...>::value; | |
typedef typename aligned_storage<__len, alignment_value>::type type; | |
}; | |
template <size_t _Len, class ..._Types> using aligned_union_t = typename aligned_union<_Len, _Types...>::type; | |
}} | |
# 431 "../../buildtools/third_party/libc++/trunk/include/type_traits" 2 3 | |
# 1 "../../buildtools/third_party/libc++/trunk/include/__type_traits/alignment_of.h" 1 3 | |
# 10 "../../buildtools/third_party/libc++/trunk/include/__type_traits/alignment_of.h" 3 | |
#define _LIBCPP___TYPE_TRAITS_ALIGNMENT_OF_H | |
# 18 "../../buildtools/third_party/libc++/trunk/include/__type_traits/alignment_of.h" 3 | |
namespace std { inline namespace Cr { | |
template <class _Tp> struct alignment_of | |
: public integral_constant<size_t, alignof(_Tp)> {}; | |
template <class _Tp> | |
inline constexpr size_t alignment_of_v = alignof(_Tp); | |
}} | |
# 432 "../../buildtools/third_party/libc++/trunk/include/type_traits" 2 3 | |
# 1 "../../buildtools/third_party/libc++/trunk/include/__type_traits/can_extract_key.h" 1 3 | |
# 10 "../../buildtools/third_party/libc++/trunk/include/__type_traits/can_extract_key.h" 3 | |
#define _LIBCPP___TYPE_TRAITS_CAN_EXTRACT_KEY_H | |
# 1 "../../buildtools/third_party/libc++/trunk/include/__fwd/pair.h" 1 3 | |
# 10 "../../buildtools/third_party/libc++/trunk/include/__fwd/pair.h" 3 | |
#define _LIBCPP___FWD_PAIR_H | |
# 16 "../../buildtools/third_party/libc++/trunk/include/__fwd/pair.h" 3 | |
namespace std { inline namespace Cr { | |
template <class, class> | |
struct pair; | |
}} | |
# 14 "../../buildtools/third_party/libc++/trunk/include/__type_traits/can_extract_key.h" 2 3 | |
# 1 "../../buildtools/third_party/libc++/trunk/include/__type_traits/remove_const_ref.h" 1 3 | |
# 10 "../../buildtools/third_party/libc++/trunk/include/__type_traits/remove_const_ref.h" 3 | |
#define _LIBCPP___TYPE_TRAITS_REMOVE_CONST_REF_H | |
# 18 "../../buildtools/third_party/libc++/trunk/include/__type_traits/remove_const_ref.h" 3 | |
namespace std { inline namespace Cr { | |
template <class _Tp> | |
using __remove_const_ref_t = __remove_const_t<__libcpp_remove_reference_t<_Tp> >; | |
}} | |
# 19 "../../buildtools/third_party/libc++/trunk/include/__type_traits/can_extract_key.h" 2 3 | |
# 22 "../../buildtools/third_party/libc++/trunk/include/__type_traits/can_extract_key.h" 3 | |
namespace std { inline namespace Cr { | |
struct __extract_key_fail_tag {}; | |
struct __extract_key_self_tag {}; | |
struct __extract_key_first_tag {}; | |
template <class _ValTy, class _Key, | |
class _RawValTy = __remove_const_ref_t<_ValTy> > | |
struct __can_extract_key | |
: conditional<_IsSame<_RawValTy, _Key>::value, __extract_key_self_tag, | |
__extract_key_fail_tag>::type {}; | |
template <class _Pair, class _Key, class _First, class _Second> | |
struct __can_extract_key<_Pair, _Key, pair<_First, _Second> > | |
: conditional<_IsSame<__remove_const_t<_First>, _Key>::value, | |
__extract_key_first_tag, __extract_key_fail_tag>::type {}; | |
template <class _ValTy, class _Key, class _ContainerValueTy, | |
class _RawValTy = __remove_const_ref_t<_ValTy> > | |
struct __can_extract_map_key | |
: integral_constant<bool, _IsSame<_RawValTy, _Key>::value> {}; | |
template <class _ValTy, class _Key, class _RawValTy> | |
struct __can_extract_map_key<_ValTy, _Key, _Key, _RawValTy> | |
: false_type {}; | |
}} | |
# 434 "../../buildtools/third_party/libc++/trunk/include/type_traits" 2 3 | |
# 1 "../../buildtools/third_party/libc++/trunk/include/__type_traits/common_reference.h" 1 3 | |
# 10 "../../buildtools/third_party/libc++/trunk/include/__type_traits/common_reference.h" 3 | |
#define _LIBCPP___TYPE_TRAITS_COMMON_REFERENCE_H | |
# 1 "../../buildtools/third_party/libc++/trunk/include/__type_traits/common_type.h" 1 3 | |
# 10 "../../buildtools/third_party/libc++/trunk/include/__type_traits/common_type.h" 3 | |
#define _LIBCPP___TYPE_TRAITS_COMMON_TYPE_H | |
# 1 "../../buildtools/third_party/libc++/trunk/include/__type_traits/remove_cvref.h" 1 3 | |
# 10 "../../buildtools/third_party/libc++/trunk/include/__type_traits/remove_cvref.h" 3 | |
#define _LIBCPP___TYPE_TRAITS_REMOVE_CVREF_H | |
# 19 "../../buildtools/third_party/libc++/trunk/include/__type_traits/remove_cvref.h" 3 | |
namespace std { inline namespace Cr { | |
template <class _Tp> | |
using __remove_cvref_t __attribute__((__nodebug__)) = __remove_cvref(_Tp); | |
template <class _Tp, class _Up> | |
struct __is_same_uncvref : _IsSame<__remove_cvref_t<_Tp>, __remove_cvref_t<_Up> > {}; | |
# 43 "../../buildtools/third_party/libc++/trunk/include/__type_traits/remove_cvref.h" 3 | |
}} | |
# 17 "../../buildtools/third_party/libc++/trunk/include/__type_traits/common_type.h" 2 3 | |
# 1 "../../buildtools/third_party/libc++/trunk/include/__type_traits/void_t.h" 1 3 | |
# 10 "../../buildtools/third_party/libc++/trunk/include/__type_traits/void_t.h" 3 | |
#define _LIBCPP___TYPE_TRAITS_VOID_T_H | |
# 16 "../../buildtools/third_party/libc++/trunk/include/__type_traits/void_t.h" 3 | |
namespace std { inline namespace Cr { | |
template <class...> using void_t = void; | |
template <class> | |
struct __void_t { typedef void type; }; | |
}} | |
# 18 "../../buildtools/third_party/libc++/trunk/include/__type_traits/common_type.h" 2 3 | |
# 22 "../../buildtools/third_party/libc++/trunk/include/__type_traits/common_type.h" 3 | |
namespace std { inline namespace Cr { | |
# 44 "../../buildtools/third_party/libc++/trunk/include/__type_traits/common_type.h" 3 | |
template <class _Tp, class _Up, class = void> | |
struct __common_type2_imp {}; | |
template <class _Tp, class _Up> | |
struct __common_type2_imp<_Tp, _Up, | |
typename __void_t<decltype( | |
true ? declval<_Tp>() : declval<_Up>() | |
)>::type> | |
{ | |
typedef __attribute__((__nodebug__)) typename decay<decltype( | |
true ? declval<_Tp>() : declval<_Up>() | |
)>::type type; | |
}; | |
template <class, class = void> | |
struct __common_type_impl {}; | |
#define _LIBCPP_OPTIONAL_PACK(...) , __VA_ARGS__ | |
template <class... _Tp> | |
struct __common_types; | |
template <class... _Tp> | |
struct common_type; | |
# 83 "../../buildtools/third_party/libc++/trunk/include/__type_traits/common_type.h" 3 | |
template <class _Tp, class _Up> | |
struct __common_type_impl< | |
__common_types<_Tp, _Up>, | |
typename __void_t<typename common_type<_Tp, _Up>::type>::type> | |
{ | |
typedef typename common_type<_Tp, _Up>::type type; | |
}; | |
template <class _Tp, class _Up, class _Vp , class... _Rest> | |
struct __common_type_impl< | |
__common_types<_Tp, _Up, _Vp , _Rest...>, | |
typename __void_t<typename common_type<_Tp, _Up>::type>::type> | |
: __common_type_impl<__common_types<typename common_type<_Tp, _Up>::type, | |
_Vp , _Rest...> > { | |
}; | |
template <> | |
struct common_type<> {}; | |
template <class _Tp> | |
struct common_type<_Tp> | |
: public common_type<_Tp, _Tp> {}; | |
template <class _Tp, class _Up> | |
struct common_type<_Tp, _Up> | |
: conditional< | |
_IsSame<_Tp, typename decay<_Tp>::type>::value && _IsSame<_Up, typename decay<_Up>::type>::value, | |
__common_type2_imp<_Tp, _Up>, | |
common_type<typename decay<_Tp>::type, typename decay<_Up>::type> | |
>::type | |
{}; | |
template <class _Tp, class _Up, class _Vp , class... _Rest> | |
struct | |
common_type<_Tp, _Up, _Vp , _Rest...> | |
: __common_type_impl< | |
__common_types<_Tp, _Up, _Vp , _Rest...> > {}; | |
#undef _LIBCPP_OPTIONAL_PACK | |
template <class ..._Tp> using common_type_t = typename common_type<_Tp...>::type; | |
}} | |
# 14 "../../buildtools/third_party/libc++/trunk/include/__type_traits/common_reference.h" 2 3 | |
# 1 "../../buildtools/third_party/libc++/trunk/include/__type_traits/copy_cv.h" 1 3 | |
# 10 "../../buildtools/third_party/libc++/trunk/include/__type_traits/copy_cv.h" 3 | |
#define _LIBCPP___TYPE_TRAITS_COPY_CV_H | |
# 19 "../../buildtools/third_party/libc++/trunk/include/__type_traits/copy_cv.h" 3 | |
namespace std { inline namespace Cr { | |
template <class _From, class _To> | |
struct __copy_cv | |
{ | |
using type = _To; | |
}; | |
template <class _From, class _To> | |
struct __copy_cv<const _From, _To> | |
{ | |
using type = typename add_const<_To>::type; | |
}; | |
template <class _From, class _To> | |
struct __copy_cv<volatile _From, _To> | |
{ | |
using type = typename add_volatile<_To>::type; | |
}; | |
template <class _From, class _To> | |
struct __copy_cv<const volatile _From, _To> | |
{ | |
using type = typename add_cv<_To>::type; | |
}; | |
template <class _From, class _To> | |
using __copy_cv_t = typename __copy_cv<_From, _To>::type; | |
}} | |
# 15 "../../buildtools/third_party/libc++/trunk/include/__type_traits/common_reference.h" 2 3 | |
# 1 "../../buildtools/third_party/libc++/trunk/include/__type_traits/copy_cvref.h" 1 3 | |
# 10 "../../buildtools/third_party/libc++/trunk/include/__type_traits/copy_cvref.h" 3 | |
#define _LIBCPP___TYPE_TRAITS_COPY_CVREF_H | |
# 19 "../../buildtools/third_party/libc++/trunk/include/__type_traits/copy_cvref.h" 3 | |
namespace std { inline namespace Cr { | |
template <class _From, class _To> | |
struct __copy_cvref | |
{ | |
using type = __copy_cv_t<_From, _To>; | |
}; | |
template <class _From, class _To> | |
struct __copy_cvref<_From&, _To> | |
{ | |
using type = __add_lvalue_reference_t<__copy_cv_t<_From, _To> >; | |
}; | |
template <class _From, class _To> | |
struct __copy_cvref<_From&&, _To> | |
{ | |
using type = __add_rvalue_reference_t<__copy_cv_t<_From, _To> >; | |
}; | |
template <class _From, class _To> | |
using __copy_cvref_t = typename __copy_cvref<_From, _To>::type; | |
}} | |
# 16 "../../buildtools/third_party/libc++/trunk/include/__type_traits/common_reference.h" 2 3 | |
# 1 "../../buildtools/third_party/libc++/trunk/include/__type_traits/is_convertible.h" 1 3 | |
# 10 "../../buildtools/third_party/libc++/trunk/include/__type_traits/is_convertible.h" 3 | |
#define _LIBCPP___TYPE_TRAITS_IS_CONVERTIBLE_H | |
# 23 "../../buildtools/third_party/libc++/trunk/include/__type_traits/is_convertible.h" 3 | |
namespace std { inline namespace Cr { | |
template <class _T1, class _T2> struct is_convertible | |
: public integral_constant<bool, __is_convertible_to(_T1, _T2)> {}; | |
# 102 "../../buildtools/third_party/libc++/trunk/include/__type_traits/is_convertible.h" 3 | |
template <class _From, class _To> | |
inline constexpr bool is_convertible_v = is_convertible<_From, _To>::value; | |
}} | |
# 17 "../../buildtools/third_party/libc++/trunk/include/__type_traits/common_reference.h" 2 3 | |
# 25 "../../buildtools/third_party/libc++/trunk/include/__type_traits/common_reference.h" 3 | |
namespace std { inline namespace Cr { | |
# 186 "../../buildtools/third_party/libc++/trunk/include/__type_traits/common_reference.h" 3 | |
}} | |
# 435 "../../buildtools/third_party/libc++/trunk/include/type_traits" 2 3 | |
# 1 "../../buildtools/third_party/libc++/trunk/include/__type_traits/conjunction.h" 1 3 | |
# 10 "../../buildtools/third_party/libc++/trunk/include/__type_traits/conjunction.h" 3 | |
#define _LIBCPP___TYPE_TRAITS_CONJUNCTION_H | |
# 19 "../../buildtools/third_party/libc++/trunk/include/__type_traits/conjunction.h" 3 | |
namespace std { inline namespace Cr { | |
template <class _Arg, class... _Args> | |
struct __conjunction_impl { | |
using type = conditional_t<!bool(_Arg::value), _Arg, typename __conjunction_impl<_Args...>::type>; | |
}; | |
template <class _Arg> | |
struct __conjunction_impl<_Arg> { | |
using type = _Arg; | |
}; | |
template <class... _Args> | |
struct conjunction : __conjunction_impl<true_type, _Args...>::type {}; | |
template<class... _Args> | |
inline constexpr bool conjunction_v = conjunction<_Args...>::value; | |
template <class...> | |
using __expand_to_true = true_type; | |
template <class... _Pred> | |
__expand_to_true<__enable_if_t<_Pred::value>...> __and_helper(int); | |
template <class...> | |
false_type __and_helper(...); | |
template <class... _Pred> | |
using _And __attribute__((__nodebug__)) = decltype(__and_helper<_Pred...>(0)); | |
}} | |
# 438 "../../buildtools/third_party/libc++/trunk/include/type_traits" 2 3 | |
# 1 "../../buildtools/third_party/libc++/trunk/include/__type_traits/dependent_type.h" 1 3 | |
# 10 "../../buildtools/third_party/libc++/trunk/include/__type_traits/dependent_type.h" 3 | |
#define _LIBCPP___TYPE_TRAITS_DEPENDENT_TYPE_H | |
# 16 "../../buildtools/third_party/libc++/trunk/include/__type_traits/dependent_type.h" 3 | |
namespace std { inline namespace Cr { | |
template <class _Tp, bool> | |
struct __dependent_type : public _Tp {}; | |
}} | |
# 440 "../../buildtools/third_party/libc++/trunk/include/type_traits" 2 3 | |
# 1 "../../buildtools/third_party/libc++/trunk/include/__type_traits/disjunction.h" 1 3 | |
# 10 "../../buildtools/third_party/libc++/trunk/include/__type_traits/disjunction.h" 3 | |
#define _LIBCPP___TYPE_TRAITS_DISJUNCTION_H | |
# 17 "../../buildtools/third_party/libc++/trunk/include/__type_traits/disjunction.h" 3 | |
namespace std { inline namespace Cr { | |
template <bool> | |
struct _OrImpl; | |
template <> | |
struct _OrImpl<true> { | |
template <class _Res, class _First, class... _Rest> | |
using _Result __attribute__((__nodebug__)) = | |
typename _OrImpl<!bool(_First::value) && sizeof...(_Rest) != 0>::template _Result<_First, _Rest...>; | |
}; | |
template <> | |
struct _OrImpl<false> { | |
template <class _Res, class...> | |
using _Result = _Res; | |
}; | |
template <class... _Args> | |
using _Or __attribute__((__nodebug__)) = typename _OrImpl<sizeof...(_Args) != 0>::template _Result<false_type, _Args...>; | |
template <class... _Args> | |
struct disjunction : _Or<_Args...> {}; | |
template <class... _Args> | |
inline constexpr bool disjunction_v = _Or<_Args...>::value; | |
}} | |
# 441 "../../buildtools/third_party/libc++/trunk/include/type_traits" 2 3 | |
# 1 "../../buildtools/third_party/libc++/trunk/include/__type_traits/extent.h" 1 3 | |
# 10 "../../buildtools/third_party/libc++/trunk/include/__type_traits/extent.h" 3 | |
#define _LIBCPP___TYPE_TRAITS_EXTENT_H | |
# 18 "../../buildtools/third_party/libc++/trunk/include/__type_traits/extent.h" 3 | |
namespace std { inline namespace Cr { | |
template<class _Tp, size_t _Dim = 0> | |
struct extent | |
: integral_constant<size_t, __array_extent(_Tp, _Dim)> { }; | |
template <class _Tp, unsigned _Ip = 0> | |
inline constexpr size_t extent_v = __array_extent(_Tp, _Ip); | |
# 53 "../../buildtools/third_party/libc++/trunk/include/__type_traits/extent.h" 3 | |
}} | |
# 443 "../../buildtools/third_party/libc++/trunk/include/type_traits" 2 3 | |
# 1 "../../buildtools/third_party/libc++/trunk/include/__type_traits/has_unique_object_representation.h" 1 3 | |
# 10 "../../buildtools/third_party/libc++/trunk/include/__type_traits/has_unique_object_representation.h" 3 | |
#define _LIBCPP___TYPE_TRAITS_HAS_UNIQUE_OBJECT_REPRESENTATION_H | |
# 1 "../../buildtools/third_party/libc++/trunk/include/__type_traits/remove_all_extents.h" 1 3 | |
# 10 "../../buildtools/third_party/libc++/trunk/include/__type_traits/remove_all_extents.h" 3 | |
#define _LIBCPP___TYPE_TRAITS_REMOVE_ALL_EXTENTS_H | |
# 17 "../../buildtools/third_party/libc++/trunk/include/__type_traits/remove_all_extents.h" 3 | |
namespace std { inline namespace Cr { | |
template <class _Tp> | |
struct remove_all_extents { | |
using type __attribute__((__nodebug__)) = __remove_all_extents(_Tp); | |
}; | |
template <class _Tp> | |
using __remove_all_extents_t = __remove_all_extents(_Tp); | |
# 42 "../../buildtools/third_party/libc++/trunk/include/__type_traits/remove_all_extents.h" 3 | |
template <class _Tp> using remove_all_extents_t = __remove_all_extents_t<_Tp>; | |
}} | |
# 15 "../../buildtools/third_party/libc++/trunk/include/__type_traits/has_unique_object_representation.h" 2 3 | |
# 19 "../../buildtools/third_party/libc++/trunk/include/__type_traits/has_unique_object_representation.h" 3 | |
namespace std { inline namespace Cr { | |
template <class _Tp> struct has_unique_object_representations | |
: public integral_constant<bool, | |
__has_unique_object_representations(remove_cv_t<remove_all_extents_t<_Tp>>)> {}; | |
template <class _Tp> | |
inline constexpr bool has_unique_object_representations_v = has_unique_object_representations<_Tp>::value; | |
}} | |
# 444 "../../buildtools/third_party/libc++/trunk/include/type_traits" 2 3 | |
# 1 "../../buildtools/third_party/libc++/trunk/include/__type_traits/has_virtual_destructor.h" 1 3 | |
# 10 "../../buildtools/third_party/libc++/trunk/include/__type_traits/has_virtual_destructor.h" 3 | |
#define _LIBCPP___TYPE_TRAITS_HAS_VIRTUAL_DESTRUCTOR_H | |
# 17 "../../buildtools/third_party/libc++/trunk/include/__type_traits/has_virtual_destructor.h" 3 | |
namespace std { inline namespace Cr { | |
template <class _Tp> struct has_virtual_destructor | |
: public integral_constant<bool, __has_virtual_destructor(_Tp)> {}; | |
template <class _Tp> | |
inline constexpr bool has_virtual_destructor_v = __has_virtual_destructor(_Tp); | |
}} | |
# 445 "../../buildtools/third_party/libc++/trunk/include/type_traits" 2 3 | |
# 1 "../../buildtools/third_party/libc++/trunk/include/__type_traits/is_abstract.h" 1 3 | |
# 10 "../../buildtools/third_party/libc++/trunk/include/__type_traits/is_abstract.h" 3 | |
#define _LIBCPP___TYPE_TRAITS_IS_ABSTRACT_H | |
# 17 "../../buildtools/third_party/libc++/trunk/include/__type_traits/is_abstract.h" 3 | |
namespace std { inline namespace Cr { | |
template <class _Tp> struct is_abstract | |
: public integral_constant<bool, __is_abstract(_Tp)> {}; | |
template <class _Tp> | |
inline constexpr bool is_abstract_v = __is_abstract(_Tp); | |
}} | |
# 447 "../../buildtools/third_party/libc++/trunk/include/type_traits" 2 3 | |
# 1 "../../buildtools/third_party/libc++/trunk/include/__type_traits/is_aggregate.h" 1 3 | |
# 10 "../../buildtools/third_party/libc++/trunk/include/__type_traits/is_aggregate.h" 3 | |
#define _LIBCPP___TYPE_TRAITS_IS_AGGREGATE_H | |
# 17 "../../buildtools/third_party/libc++/trunk/include/__type_traits/is_aggregate.h" 3 | |
namespace std { inline namespace Cr { | |
template <class _Tp> struct | |
is_aggregate : public integral_constant<bool, __is_aggregate(_Tp)> {}; | |
template <class _Tp> | |
inline constexpr bool is_aggregate_v = __is_aggregate(_Tp); | |
}} | |
# 448 "../../buildtools/third_party/libc++/trunk/include/type_traits" 2 3 | |
# 1 "../../buildtools/third_party/libc++/trunk/include/__type_traits/is_arithmetic.h" 1 3 | |
# 10 "../../buildtools/third_party/libc++/trunk/include/__type_traits/is_arithmetic.h" 3 | |
#define _LIBCPP___TYPE_TRAITS_IS_ARITHMETIC_H | |
# 1 "../../buildtools/third_party/libc++/trunk/include/__type_traits/is_floating_point.h" 1 3 | |
# 10 "../../buildtools/third_party/libc++/trunk/include/__type_traits/is_floating_point.h" 3 | |
#define _LIBCPP___TYPE_TRAITS_IS_FLOATING_POINT_H | |
# 18 "../../buildtools/third_party/libc++/trunk/include/__type_traits/is_floating_point.h" 3 | |
namespace std { inline namespace Cr { | |
template <class _Tp> struct __libcpp_is_floating_point : public false_type {}; | |
template <> struct __libcpp_is_floating_point<float> : public true_type {}; | |
template <> struct __libcpp_is_floating_point<double> : public true_type {}; | |
template <> struct __libcpp_is_floating_point<long double> : public true_type {}; | |
template <class _Tp> struct is_floating_point | |
: public __libcpp_is_floating_point<__remove_cv_t<_Tp> > {}; | |
template <class _Tp> | |
inline constexpr bool is_floating_point_v = is_floating_point<_Tp>::value; | |
}} | |
# 15 "../../buildtools/third_party/libc++/trunk/include/__type_traits/is_arithmetic.h" 2 3 | |
# 19 "../../buildtools/third_party/libc++/trunk/include/__type_traits/is_arithmetic.h" 3 | |
namespace std { inline namespace Cr { | |
template <class _Tp> struct is_arithmetic | |
: public integral_constant<bool, is_integral<_Tp>::value || | |
is_floating_point<_Tp>::value> {}; | |
template <class _Tp> | |
inline constexpr bool is_arithmetic_v = is_arithmetic<_Tp>::value; | |
}} | |
# 449 "../../buildtools/third_party/libc++/trunk/include/type_traits" 2 3 | |
# 1 "../../buildtools/third_party/libc++/trunk/include/__type_traits/is_assignable.h" 1 3 | |
# 10 "../../buildtools/third_party/libc++/trunk/include/__type_traits/is_assignable.h" 3 | |
#define _LIBCPP___TYPE_TRAITS_IS_ASSIGNABLE_H | |
# 17 "../../buildtools/third_party/libc++/trunk/include/__type_traits/is_assignable.h" 3 | |
namespace std { inline namespace Cr { | |
template<class _Tp, class _Up> | |
struct is_assignable : _BoolConstant<__is_assignable(_Tp, _Up)> { }; | |
template <class _Tp, class _Arg> | |
inline constexpr bool is_assignable_v = __is_assignable(_Tp, _Arg); | |
}} | |
# 451 "../../buildtools/third_party/libc++/trunk/include/type_traits" 2 3 | |
# 1 "../../buildtools/third_party/libc++/trunk/include/__type_traits/is_bounded_array.h" 1 3 | |
# 10 "../../buildtools/third_party/libc++/trunk/include/__type_traits/is_bounded_array.h" 3 | |
#define _LIBCPP___TYPE_TRAITS_IS_BOUNDED_ARRAY_H | |
# 18 "../../buildtools/third_party/libc++/trunk/include/__type_traits/is_bounded_array.h" 3 | |
namespace std { inline namespace Cr { | |
template <class> struct __libcpp_is_bounded_array : false_type {}; | |
template <class _Tp, size_t _Np> struct __libcpp_is_bounded_array<_Tp[_Np]> : true_type {}; | |
# 36 "../../buildtools/third_party/libc++/trunk/include/__type_traits/is_bounded_array.h" 3 | |
}} | |
# 453 "../../buildtools/third_party/libc++/trunk/include/type_traits" 2 3 | |
# 1 "../../buildtools/third_party/libc++/trunk/include/__type_traits/is_callable.h" 1 3 | |
# 10 "../../buildtools/third_party/libc++/trunk/include/__type_traits/is_callable.h" 3 | |
#define _LIBCPP___TYPE_TRAITS_IS_CALLABLE_H | |
# 18 "../../buildtools/third_party/libc++/trunk/include/__type_traits/is_callable.h" 3 | |
namespace std { inline namespace Cr { | |
template<class _Func, class... _Args, class = decltype(std::declval<_Func>()(std::declval<_Args>()...))> | |
true_type __is_callable_helper(int); | |
template<class...> | |
false_type __is_callable_helper(...); | |
template<class _Func, class... _Args> | |
struct __is_callable : decltype(__is_callable_helper<_Func, _Args...>(0)) {}; | |
}} | |
# 454 "../../buildtools/third_party/libc++/trunk/include/type_traits" 2 3 | |
# 1 "../../buildtools/third_party/libc++/trunk/include/__type_traits/is_char_like_type.h" 1 3 | |
# 10 "../../buildtools/third_party/libc++/trunk/include/__type_traits/is_char_like_type.h" 3 | |
#define _LIBCPP___TYPE_TRAITS_IS_CHAR_LIKE_TYPE_H | |
# 1 "../../buildtools/third_party/libc++/trunk/include/__type_traits/is_standard_layout.h" 1 3 | |
# 10 "../../buildtools/third_party/libc++/trunk/include/__type_traits/is_standard_layout.h" 3 | |
#define _LIBCPP___TYPE_TRAITS_IS_STANDARD_LAYOUT_H | |
# 17 "../../buildtools/third_party/libc++/trunk/include/__type_traits/is_standard_layout.h" 3 | |
namespace std { inline namespace Cr { | |
template <class _Tp> struct is_standard_layout | |
: public integral_constant<bool, __is_standard_layout(_Tp)> | |
{}; | |
template <class _Tp> | |
inline constexpr bool is_standard_layout_v = __is_standard_layout(_Tp); | |
}} | |
# 15 "../../buildtools/third_party/libc++/trunk/include/__type_traits/is_char_like_type.h" 2 3 | |
# 1 "../../buildtools/third_party/libc++/trunk/include/__type_traits/is_trivial.h" 1 3 | |
# 10 "../../buildtools/third_party/libc++/trunk/include/__type_traits/is_trivial.h" 3 | |
#define _LIBCPP___TYPE_TRAITS_IS_TRIVIAL_H | |
# 17 "../../buildtools/third_party/libc++/trunk/include/__type_traits/is_trivial.h" 3 | |
namespace std { inline namespace Cr { | |
template <class _Tp> struct is_trivial | |
: public integral_constant<bool, __is_trivial(_Tp)> | |
{}; | |
template <class _Tp> | |
inline constexpr bool is_trivial_v = __is_trivial(_Tp); | |
}} | |
# 16 "../../buildtools/third_party/libc++/trunk/include/__type_traits/is_char_like_type.h" 2 3 | |
# 19 "../../buildtools/third_party/libc++/trunk/include/__type_traits/is_char_like_type.h" 3 | |
namespace std { inline namespace Cr { | |
template <class _CharT> | |
using _IsCharLikeType = _And<is_standard_layout<_CharT>, is_trivial<_CharT> >; | |
}} | |
# 455 "../../buildtools/third_party/libc++/trunk/include/type_traits" 2 3 | |
# 1 "../../buildtools/third_party/libc++/trunk/include/__type_traits/is_class.h" 1 3 | |
# 10 "../../buildtools/third_party/libc++/trunk/include/__type_traits/is_class.h" 3 | |
#define _LIBCPP___TYPE_TRAITS_IS_CLASS_H | |
# 17 "../../buildtools/third_party/libc++/trunk/include/__type_traits/is_class.h" 3 | |
namespace std { inline namespace Cr { | |
template <class _Tp> struct is_class | |
: public integral_constant<bool, __is_class(_Tp)> {}; | |
template <class _Tp> | |
inline constexpr bool is_class_v = __is_class(_Tp); | |
}} | |
# 456 "../../buildtools/third_party/libc++/trunk/include/type_traits" 2 3 | |
# 1 "../../buildtools/third_party/libc++/trunk/include/__type_traits/is_compound.h" 1 3 | |
# 10 "../../buildtools/third_party/libc++/trunk/include/__type_traits/is_compound.h" 3 | |
#define _LIBCPP___TYPE_TRAITS_IS_COMPOUND_H | |
# 1 "../../buildtools/third_party/libc++/trunk/include/__type_traits/is_fundamental.h" 1 3 | |
# 10 "../../buildtools/third_party/libc++/trunk/include/__type_traits/is_fundamental.h" 3 | |
#define _LIBCPP___TYPE_TRAITS_IS_FUNDAMENTAL_H | |
# 1 "../../buildtools/third_party/libc++/trunk/include/__type_traits/is_null_pointer.h" 1 3 | |
# 10 "../../buildtools/third_party/libc++/trunk/include/__type_traits/is_null_pointer.h" 3 | |
#define _LIBCPP___TYPE_TRAITS_IS_NULL_POINTER_H | |
# 19 "../../buildtools/third_party/libc++/trunk/include/__type_traits/is_null_pointer.h" 3 | |
namespace std { inline namespace Cr { | |
template <class _Tp> struct __is_nullptr_t_impl : public false_type {}; | |
template <> struct __is_nullptr_t_impl<nullptr_t> : public true_type {}; | |
template <class _Tp> struct __is_nullptr_t | |
: public __is_nullptr_t_impl<__remove_cv_t<_Tp> > {}; | |
template <class _Tp> struct is_null_pointer | |
: public __is_nullptr_t_impl<__remove_cv_t<_Tp> > {}; | |
template <class _Tp> | |
inline constexpr bool is_null_pointer_v = is_null_pointer<_Tp>::value; | |
}} | |
# 15 "../../buildtools/third_party/libc++/trunk/include/__type_traits/is_fundamental.h" 2 3 | |
# 19 "../../buildtools/third_party/libc++/trunk/include/__type_traits/is_fundamental.h" 3 | |
namespace std { inline namespace Cr { | |
template<class _Tp> | |
struct is_fundamental : _BoolConstant<__is_fundamental(_Tp)> { }; | |
template <class _Tp> | |
inline constexpr bool is_fundamental_v = __is_fundamental(_Tp); | |
# 47 "../../buildtools/third_party/libc++/trunk/include/__type_traits/is_fundamental.h" 3 | |
}} | |
# 15 "../../buildtools/third_party/libc++/trunk/include/__type_traits/is_compound.h" 2 3 | |
# 18 "../../buildtools/third_party/libc++/trunk/include/__type_traits/is_compound.h" 3 | |
namespace std { inline namespace Cr { | |
template<class _Tp> | |
struct is_compound : _BoolConstant<__is_compound(_Tp)> { }; | |
template <class _Tp> | |
inline constexpr bool is_compound_v = __is_compound(_Tp); | |
# 44 "../../buildtools/third_party/libc++/trunk/include/__type_traits/is_compound.h" 3 | |
}} | |
# 457 "../../buildtools/third_party/libc++/trunk/include/type_traits" 2 3 | |
# 1 "../../buildtools/third_party/libc++/trunk/include/__type_traits/is_constant_evaluated.h" 1 3 | |
# 10 "../../buildtools/third_party/libc++/trunk/include/__type_traits/is_constant_evaluated.h" 3 | |
#define _LIBCPP___TYPE_TRAITS_IS_CONSTANT_EVALUATED_H | |
# 16 "../../buildtools/third_party/libc++/trunk/include/__type_traits/is_constant_evaluated.h" 3 | |
namespace std { inline namespace Cr { | |
# 27 "../../buildtools/third_party/libc++/trunk/include/__type_traits/is_constant_evaluated.h" 3 | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) inline constexpr | |
bool __libcpp_is_constant_evaluated() noexcept { return __builtin_is_constant_evaluated(); } | |
}} | |
# 459 "../../buildtools/third_party/libc++/trunk/include/type_traits" 2 3 | |
# 1 "../../buildtools/third_party/libc++/trunk/include/__type_traits/is_constructible.h" 1 3 | |
# 10 "../../buildtools/third_party/libc++/trunk/include/__type_traits/is_constructible.h" 3 | |
#define _LIBCPP___TYPE_IS_CONSTRUCTIBLE_H | |
# 17 "../../buildtools/third_party/libc++/trunk/include/__type_traits/is_constructible.h" 3 | |
namespace std { inline namespace Cr { | |
template <class _Tp, class ..._Args> | |
struct is_constructible | |
: public integral_constant<bool, __is_constructible(_Tp, _Args...)> | |
{ }; | |
template <class _Tp, class ..._Args> | |
inline constexpr bool is_constructible_v = __is_constructible(_Tp, _Args...); | |
}} | |
# 460 "../../buildtools/third_party/libc++/trunk/include/type_traits" 2 3 | |
# 1 "../../buildtools/third_party/libc++/trunk/include/__type_traits/is_copy_assignable.h" 1 3 | |
# 10 "../../buildtools/third_party/libc++/trunk/include/__type_traits/is_copy_assignable.h" 3 | |
#define _LIBCPP___TYPE_TRAITS_IS_COPY_ASSIGNABLE_H | |
# 19 "../../buildtools/third_party/libc++/trunk/include/__type_traits/is_copy_assignable.h" 3 | |
namespace std { inline namespace Cr { | |
template <class _Tp> | |
struct is_copy_assignable | |
: public integral_constant< | |
bool, | |
__is_assignable(__add_lvalue_reference_t<_Tp>, | |
__add_lvalue_reference_t<typename add_const<_Tp>::type>)> {}; | |
template <class _Tp> | |
inline constexpr bool is_copy_assignable_v = is_copy_assignable<_Tp>::value; | |
}} | |
# 462 "../../buildtools/third_party/libc++/trunk/include/type_traits" 2 3 | |
# 1 "../../buildtools/third_party/libc++/trunk/include/__type_traits/is_copy_constructible.h" 1 3 | |
# 10 "../../buildtools/third_party/libc++/trunk/include/__type_traits/is_copy_constructible.h" 3 | |
#define _LIBCPP___TYPE_TRAITS_IS_COPY_CONSTRUCTIBLE_H | |
# 19 "../../buildtools/third_party/libc++/trunk/include/__type_traits/is_copy_constructible.h" 3 | |
namespace std { inline namespace Cr { | |
template <class _Tp> | |
struct is_copy_constructible | |
: public integral_constant< | |
bool, | |
__is_constructible(_Tp, __add_lvalue_reference_t<typename add_const<_Tp>::type>)> {}; | |
template <class _Tp> | |
inline constexpr bool is_copy_constructible_v = is_copy_constructible<_Tp>::value; | |
}} | |
# 463 "../../buildtools/third_party/libc++/trunk/include/type_traits" 2 3 | |
# 1 "../../buildtools/third_party/libc++/trunk/include/__type_traits/is_default_constructible.h" 1 3 | |
# 10 "../../buildtools/third_party/libc++/trunk/include/__type_traits/is_default_constructible.h" 3 | |
#define _LIBCPP___TYPE_TRAITS_IS_DEFAULT_CONSTRUCTIBLE_H | |
# 17 "../../buildtools/third_party/libc++/trunk/include/__type_traits/is_default_constructible.h" 3 | |
namespace std { inline namespace Cr { | |
template <class _Tp> | |
struct is_default_constructible | |
: public integral_constant<bool, __is_constructible(_Tp)> | |
{}; | |
template <class _Tp> | |
inline constexpr bool is_default_constructible_v = __is_constructible(_Tp); | |
}} | |
# 464 "../../buildtools/third_party/libc++/trunk/include/type_traits" 2 3 | |
# 1 "../../buildtools/third_party/libc++/trunk/include/__type_traits/is_destructible.h" 1 3 | |
# 10 "../../buildtools/third_party/libc++/trunk/include/__type_traits/is_destructible.h" 3 | |
#define _LIBCPP___TYPE_TRAITS_IS_DESTRUCTIBLE_H | |
# 21 "../../buildtools/third_party/libc++/trunk/include/__type_traits/is_destructible.h" 3 | |
namespace std { inline namespace Cr { | |
# 44 "../../buildtools/third_party/libc++/trunk/include/__type_traits/is_destructible.h" 3 | |
template <class> | |
struct __is_destructible_apply { typedef int type; }; | |
template <typename _Tp> | |
struct __is_destructor_wellformed { | |
template <typename _Tp1> | |
static true_type __test ( | |
typename __is_destructible_apply<decltype(declval<_Tp1&>().~_Tp1())>::type | |
); | |
template <typename _Tp1> | |
static false_type __test (...); | |
static const bool value = decltype(__test<_Tp>(12))::value; | |
}; | |
template <class _Tp, bool> | |
struct __destructible_imp; | |
template <class _Tp> | |
struct __destructible_imp<_Tp, false> | |
: public integral_constant<bool, | |
__is_destructor_wellformed<__remove_all_extents_t<_Tp> >::value> {}; | |
template <class _Tp> | |
struct __destructible_imp<_Tp, true> | |
: public true_type {}; | |
template <class _Tp, bool> | |
struct __destructible_false; | |
template <class _Tp> | |
struct __destructible_false<_Tp, false> : public __destructible_imp<_Tp, is_reference<_Tp>::value> {}; | |
template <class _Tp> | |
struct __destructible_false<_Tp, true> : public false_type {}; | |
template <class _Tp> | |
struct is_destructible | |
: public __destructible_false<_Tp, is_function<_Tp>::value> {}; | |
template <class _Tp> | |
struct is_destructible<_Tp[]> | |
: public false_type {}; | |
template <> | |
struct is_destructible<void> | |
: public false_type {}; | |
template <class _Tp> | |
inline constexpr bool is_destructible_v = is_destructible<_Tp>::value; | |
}} | |
# 465 "../../buildtools/third_party/libc++/trunk/include/type_traits" 2 3 | |
# 1 "../../buildtools/third_party/libc++/trunk/include/__type_traits/is_empty.h" 1 3 | |
# 10 "../../buildtools/third_party/libc++/trunk/include/__type_traits/is_empty.h" 3 | |
#define _LIBCPP___TYPE_TRAITS_IS_EMPTY_H | |
# 17 "../../buildtools/third_party/libc++/trunk/include/__type_traits/is_empty.h" 3 | |
namespace std { inline namespace Cr { | |
template <class _Tp> | |
struct is_empty | |
: public integral_constant<bool, __is_empty(_Tp)> {}; | |
template <class _Tp> | |
inline constexpr bool is_empty_v = __is_empty(_Tp); | |
}} | |
# 466 "../../buildtools/third_party/libc++/trunk/include/type_traits" 2 3 | |
# 1 "../../buildtools/third_party/libc++/trunk/include/__type_traits/is_enum.h" 1 3 | |
# 10 "../../buildtools/third_party/libc++/trunk/include/__type_traits/is_enum.h" 3 | |
#define _LIBCPP___TYPE_TRAITS_IS_ENUM_H | |
# 17 "../../buildtools/third_party/libc++/trunk/include/__type_traits/is_enum.h" 3 | |
namespace std { inline namespace Cr { | |
template <class _Tp> struct is_enum | |
: public integral_constant<bool, __is_enum(_Tp)> {}; | |
template <class _Tp> | |
inline constexpr bool is_enum_v = __is_enum(_Tp); | |
}} | |
# 467 "../../buildtools/third_party/libc++/trunk/include/type_traits" 2 3 | |
# 1 "../../buildtools/third_party/libc++/trunk/include/__type_traits/is_final.h" 1 3 | |
# 10 "../../buildtools/third_party/libc++/trunk/include/__type_traits/is_final.h" 3 | |
#define _LIBCPP___TYPE_TRAITS_IS_FINAL_H | |
# 17 "../../buildtools/third_party/libc++/trunk/include/__type_traits/is_final.h" 3 | |
namespace std { inline namespace Cr { | |
template <class _Tp> struct | |
__libcpp_is_final : public integral_constant<bool, __is_final(_Tp)> {}; | |
template <class _Tp> struct | |
is_final : public integral_constant<bool, __is_final(_Tp)> {}; | |
template <class _Tp> | |
inline constexpr bool is_final_v = __is_final(_Tp); | |
}} | |
# 468 "../../buildtools/third_party/libc++/trunk/include/type_traits" 2 3 | |
# 1 "../../buildtools/third_party/libc++/trunk/include/__type_traits/is_implicitly_default_constructible.h" 1 3 | |
# 10 "../../buildtools/third_party/libc++/trunk/include/__type_traits/is_implicitly_default_constructible.h" 3 | |
#define _LIBCPP___TYPE_TRAITS_IS_IMPLICITLY_DEFAULT_CONSTRUCTIBLE_H | |
# 18 "../../buildtools/third_party/libc++/trunk/include/__type_traits/is_implicitly_default_constructible.h" 3 | |
namespace std { inline namespace Cr { | |
template <class _Tp> | |
void __test_implicit_default_constructible(_Tp); | |
template <class _Tp, class = void, class = typename is_default_constructible<_Tp>::type> | |
struct __is_implicitly_default_constructible | |
: false_type | |
{ }; | |
template <class _Tp> | |
struct __is_implicitly_default_constructible<_Tp, decltype(__test_implicit_default_constructible<_Tp const&>({})), true_type> | |
: true_type | |
{ }; | |
template <class _Tp> | |
struct __is_implicitly_default_constructible<_Tp, decltype(__test_implicit_default_constructible<_Tp const&>({})), false_type> | |
: false_type | |
{ }; | |
}} | |
# 472 "../../buildtools/third_party/libc++/trunk/include/type_traits" 2 3 | |
# 1 "../../buildtools/third_party/libc++/trunk/include/__type_traits/is_literal_type.h" 1 3 | |
# 10 "../../buildtools/third_party/libc++/trunk/include/__type_traits/is_literal_type.h" 3 | |
#define _LIBCPP___TYPE_TRAITS_IS_LITERAL_TYPE | |
# 17 "../../buildtools/third_party/libc++/trunk/include/__type_traits/is_literal_type.h" 3 | |
namespace std { inline namespace Cr { | |
template <class _Tp> struct __attribute__((deprecated)) is_literal_type | |
: public integral_constant<bool, __is_literal_type(_Tp)> | |
{}; | |
template <class _Tp> | |
__attribute__((deprecated)) inline constexpr bool is_literal_type_v = __is_literal_type(_Tp); | |
}} | |
# 474 "../../buildtools/third_party/libc++/trunk/include/type_traits" 2 3 | |
# 1 "../../buildtools/third_party/libc++/trunk/include/__type_traits/is_member_pointer.h" 1 3 | |
# 10 "../../buildtools/third_party/libc++/trunk/include/__type_traits/is_member_pointer.h" 3 | |
#define _LIBCPP___TYPE_TRAITS_IS_MEMBER_POINTER_H | |
# 17 "../../buildtools/third_party/libc++/trunk/include/__type_traits/is_member_pointer.h" 3 | |
namespace std { inline namespace Cr { | |
template<class _Tp> | |
struct is_member_pointer : _BoolConstant<__is_member_pointer(_Tp)> { }; | |
template <class _Tp> | |
inline constexpr bool is_member_pointer_v = __is_member_pointer(_Tp); | |
# 43 "../../buildtools/third_party/libc++/trunk/include/__type_traits/is_member_pointer.h" 3 | |
}} | |
# 477 "../../buildtools/third_party/libc++/trunk/include/type_traits" 2 3 | |
# 1 "../../buildtools/third_party/libc++/trunk/include/__type_traits/is_move_assignable.h" 1 3 | |
# 10 "../../buildtools/third_party/libc++/trunk/include/__type_traits/is_move_assignable.h" 3 | |
#define _LIBCPP___TYPE_TRAITS_IS_MOVE_ASSIGNABLE_H | |
# 19 "../../buildtools/third_party/libc++/trunk/include/__type_traits/is_move_assignable.h" 3 | |
namespace std { inline namespace Cr { | |
template <class _Tp> | |
struct is_move_assignable | |
: public integral_constant< | |
bool, | |
__is_assignable(__add_lvalue_reference_t<_Tp>, __add_rvalue_reference_t<_Tp>)> {}; | |
template <class _Tp> | |
inline constexpr bool is_move_assignable_v = is_move_assignable<_Tp>::value; | |
}} | |
# 478 "../../buildtools/third_party/libc++/trunk/include/type_traits" 2 3 | |
# 1 "../../buildtools/third_party/libc++/trunk/include/__type_traits/is_move_constructible.h" 1 3 | |
# 10 "../../buildtools/third_party/libc++/trunk/include/__type_traits/is_move_constructible.h" 3 | |
#define _LIBCPP___TYPE_TRAITS_IS_MOVE_CONSTRUCTIBLE_H | |
# 18 "../../buildtools/third_party/libc++/trunk/include/__type_traits/is_move_constructible.h" 3 | |
namespace std { inline namespace Cr { | |
template <class _Tp> | |
struct is_move_constructible | |
: public integral_constant<bool, __is_constructible(_Tp, __add_rvalue_reference_t<_Tp>)> | |
{}; | |
template <class _Tp> | |
inline constexpr bool is_move_constructible_v = is_move_constructible<_Tp>::value; | |
}} | |
# 479 "../../buildtools/third_party/libc++/trunk/include/type_traits" 2 3 | |
# 1 "../../buildtools/third_party/libc++/trunk/include/__type_traits/is_nothrow_assignable.h" 1 3 | |
# 10 "../../buildtools/third_party/libc++/trunk/include/__type_traits/is_nothrow_assignable.h" 3 | |
#define _LIBCPP___TYPE_TRAITS_IS_NOTHROW_ASSIGNABLE_H | |
# 17 "../../buildtools/third_party/libc++/trunk/include/__type_traits/is_nothrow_assignable.h" 3 | |
namespace std { inline namespace Cr { | |
template <class _Tp, class _Arg> | |
struct is_nothrow_assignable | |
: public integral_constant<bool, __is_nothrow_assignable(_Tp, _Arg)> {}; | |
template <class _Tp, class _Arg> | |
inline constexpr bool is_nothrow_assignable_v = __is_nothrow_assignable(_Tp, _Arg); | |
}} | |
# 480 "../../buildtools/third_party/libc++/trunk/include/type_traits" 2 3 | |
# 1 "../../buildtools/third_party/libc++/trunk/include/__type_traits/is_nothrow_constructible.h" 1 3 | |
# 10 "../../buildtools/third_party/libc++/trunk/include/__type_traits/is_nothrow_constructible.h" 3 | |
#define _LIBCPP___TYPE_TRAITS_IS_NOTHROW_CONSTRUCTIBLE_H | |
# 17 "../../buildtools/third_party/libc++/trunk/include/__type_traits/is_nothrow_constructible.h" 3 | |
namespace std { inline namespace Cr { | |
template < | |
class _Tp, class... _Args> | |
struct is_nothrow_constructible | |
: public integral_constant<bool, __is_nothrow_constructible(_Tp, _Args...)> {}; | |
# 68 "../../buildtools/third_party/libc++/trunk/include/__type_traits/is_nothrow_constructible.h" 3 | |
template <class _Tp, class ..._Args> | |
inline constexpr bool is_nothrow_constructible_v = is_nothrow_constructible<_Tp, _Args...>::value; | |
}} | |
# 481 "../../buildtools/third_party/libc++/trunk/include/type_traits" 2 3 | |
# 1 "../../buildtools/third_party/libc++/trunk/include/__type_traits/is_nothrow_convertible.h" 1 3 | |
# 10 "../../buildtools/third_party/libc++/trunk/include/__type_traits/is_nothrow_convertible.h" 3 | |
#define _LIBCPP___TYPE_TRAITS_IS_NOTHROW_CONVERTIBLE_H | |
# 1 "../../buildtools/third_party/libc++/trunk/include/__type_traits/lazy.h" 1 3 | |
# 10 "../../buildtools/third_party/libc++/trunk/include/__type_traits/lazy.h" 3 | |
#define _LIBCPP___TYPE_TRAITS_LAZY_H | |
# 16 "../../buildtools/third_party/libc++/trunk/include/__type_traits/lazy.h" 3 | |
namespace std { inline namespace Cr { | |
template <template <class...> class _Func, class ..._Args> | |
struct _Lazy : _Func<_Args...> {}; | |
}} | |
# 19 "../../buildtools/third_party/libc++/trunk/include/__type_traits/is_nothrow_convertible.h" 2 3 | |
# 23 "../../buildtools/third_party/libc++/trunk/include/__type_traits/is_nothrow_convertible.h" 3 | |
namespace std { inline namespace Cr { | |
# 51 "../../buildtools/third_party/libc++/trunk/include/__type_traits/is_nothrow_convertible.h" 3 | |
}} | |
# 482 "../../buildtools/third_party/libc++/trunk/include/type_traits" 2 3 | |
# 1 "../../buildtools/third_party/libc++/trunk/include/__type_traits/is_nothrow_copy_assignable.h" 1 3 | |
# 10 "../../buildtools/third_party/libc++/trunk/include/__type_traits/is_nothrow_copy_assignable.h" 3 | |
#define _LIBCPP___TYPE_TRAITS_IS_NOTHROW_COPY_ASSIGNABLE_H | |
# 19 "../../buildtools/third_party/libc++/trunk/include/__type_traits/is_nothrow_copy_assignable.h" 3 | |
namespace std { inline namespace Cr { | |
template <class _Tp> | |
struct is_nothrow_copy_assignable | |
: public integral_constant< | |
bool, | |
__is_nothrow_assignable( | |
__add_lvalue_reference_t<_Tp>, | |
__add_lvalue_reference_t<typename add_const<_Tp>::type>)> {}; | |
template <class _Tp> | |
inline constexpr bool is_nothrow_copy_assignable_v = is_nothrow_copy_assignable<_Tp>::value; | |
}} | |
# 483 "../../buildtools/third_party/libc++/trunk/include/type_traits" 2 3 | |
# 1 "../../buildtools/third_party/libc++/trunk/include/__type_traits/is_nothrow_copy_constructible.h" 1 3 | |
# 10 "../../buildtools/third_party/libc++/trunk/include/__type_traits/is_nothrow_copy_constructible.h" 3 | |
#define _LIBCPP___TYPE_TRAITS_IS_NOTHROW_COPY_CONSTRUCTIBLE_H | |
# 20 "../../buildtools/third_party/libc++/trunk/include/__type_traits/is_nothrow_copy_constructible.h" 3 | |
namespace std { inline namespace Cr { | |
# 33 "../../buildtools/third_party/libc++/trunk/include/__type_traits/is_nothrow_copy_constructible.h" 3 | |
template <class _Tp> | |
struct is_nothrow_copy_constructible | |
: public integral_constant< | |
bool, | |
__is_nothrow_constructible(_Tp, typename add_lvalue_reference<typename add_const<_Tp>::type>::type)> {}; | |
template <class _Tp> | |
inline constexpr bool is_nothrow_copy_constructible_v = is_nothrow_copy_constructible<_Tp>::value; | |
}} | |
# 484 "../../buildtools/third_party/libc++/trunk/include/type_traits" 2 3 | |
# 1 "../../buildtools/third_party/libc++/trunk/include/__type_traits/is_nothrow_default_constructible.h" 1 3 | |
# 10 "../../buildtools/third_party/libc++/trunk/include/__type_traits/is_nothrow_default_constructible.h" 3 | |
#define _LIBCPP___TYPE_TRAITS_IS_NOTHROW_DEFAULT_CONSTRUCTIBLE_H | |
# 17 "../../buildtools/third_party/libc++/trunk/include/__type_traits/is_nothrow_default_constructible.h" 3 | |
namespace std { inline namespace Cr { | |
template <class _Tp> struct is_nothrow_default_constructible | |
: public integral_constant<bool, __is_nothrow_constructible(_Tp)> | |
{}; | |
template <class _Tp> | |
inline constexpr bool is_nothrow_default_constructible_v = __is_nothrow_constructible(_Tp); | |
}} | |
# 485 "../../buildtools/third_party/libc++/trunk/include/type_traits" 2 3 | |
# 1 "../../buildtools/third_party/libc++/trunk/include/__type_traits/is_nothrow_destructible.h" 1 3 | |
# 10 "../../buildtools/third_party/libc++/trunk/include/__type_traits/is_nothrow_destructible.h" 3 | |
#define _LIBCPP___TYPE_TRAITS_IS_NOTHROW_DESTRUCTIBLE_H | |
# 1 "../../buildtools/third_party/libc++/trunk/include/__type_traits/is_scalar.h" 1 3 | |
# 10 "../../buildtools/third_party/libc++/trunk/include/__type_traits/is_scalar.h" 3 | |
#define _LIBCPP___TYPE_TRAITS_IS_SCALAR_H | |
# 1 "../../buildtools/third_party/libc++/trunk/include/__type_traits/is_pointer.h" 1 3 | |
# 10 "../../buildtools/third_party/libc++/trunk/include/__type_traits/is_pointer.h" 3 | |
#define _LIBCPP___TYPE_TRAITS_IS_POINTER_H | |
# 18 "../../buildtools/third_party/libc++/trunk/include/__type_traits/is_pointer.h" 3 | |
namespace std { inline namespace Cr { | |
template<class _Tp> | |
struct is_pointer : _BoolConstant<__is_pointer(_Tp)> { }; | |
template <class _Tp> | |
inline constexpr bool is_pointer_v = __is_pointer(_Tp); | |
# 55 "../../buildtools/third_party/libc++/trunk/include/__type_traits/is_pointer.h" 3 | |
}} | |
# 18 "../../buildtools/third_party/libc++/trunk/include/__type_traits/is_scalar.h" 2 3 | |
# 21 "../../buildtools/third_party/libc++/trunk/include/__type_traits/is_scalar.h" 3 | |
namespace std { inline namespace Cr { | |
template<class _Tp> | |
struct is_scalar : _BoolConstant<__is_scalar(_Tp)> { }; | |
template <class _Tp> | |
inline constexpr bool is_scalar_v = __is_scalar(_Tp); | |
# 59 "../../buildtools/third_party/libc++/trunk/include/__type_traits/is_scalar.h" 3 | |
}} | |
# 17 "../../buildtools/third_party/libc++/trunk/include/__type_traits/is_nothrow_destructible.h" 2 3 | |
# 23 "../../buildtools/third_party/libc++/trunk/include/__type_traits/is_nothrow_destructible.h" 3 | |
namespace std { inline namespace Cr { | |
template <bool, class _Tp> struct __libcpp_is_nothrow_destructible; | |
template <class _Tp> | |
struct __libcpp_is_nothrow_destructible<false, _Tp> | |
: public false_type | |
{ | |
}; | |
template <class _Tp> | |
struct __libcpp_is_nothrow_destructible<true, _Tp> | |
: public integral_constant<bool, noexcept(declval<_Tp>().~_Tp()) > | |
{ | |
}; | |
template <class _Tp> | |
struct is_nothrow_destructible | |
: public __libcpp_is_nothrow_destructible<is_destructible<_Tp>::value, _Tp> | |
{ | |
}; | |
template <class _Tp, size_t _Ns> | |
struct is_nothrow_destructible<_Tp[_Ns]> | |
: public is_nothrow_destructible<_Tp> | |
{ | |
}; | |
template <class _Tp> | |
struct is_nothrow_destructible<_Tp&> | |
: public true_type | |
{ | |
}; | |
template <class _Tp> | |
struct is_nothrow_destructible<_Tp&&> | |
: public true_type | |
{ | |
}; | |
# 83 "../../buildtools/third_party/libc++/trunk/include/__type_traits/is_nothrow_destructible.h" 3 | |
template <class _Tp> | |
inline constexpr bool is_nothrow_destructible_v = is_nothrow_destructible<_Tp>::value; | |
}} | |
# 486 "../../buildtools/third_party/libc++/trunk/include/type_traits" 2 3 | |
# 1 "../../buildtools/third_party/libc++/trunk/include/__type_traits/is_nothrow_move_assignable.h" 1 3 | |
# 10 "../../buildtools/third_party/libc++/trunk/include/__type_traits/is_nothrow_move_assignable.h" 3 | |
#define _LIBCPP___TYPE_TRAITS_IS_NOTHROW_MOVE_ASSIGNABLE_H | |
# 19 "../../buildtools/third_party/libc++/trunk/include/__type_traits/is_nothrow_move_assignable.h" 3 | |
namespace std { inline namespace Cr { | |
template <class _Tp> | |
struct is_nothrow_move_assignable | |
: public integral_constant< | |
bool, | |
__is_nothrow_assignable(__add_lvalue_reference_t<_Tp>, __add_rvalue_reference_t<_Tp>)> { | |
}; | |
template <class _Tp> | |
inline constexpr bool is_nothrow_move_assignable_v = is_nothrow_move_assignable<_Tp>::value; | |
}} | |
# 487 "../../buildtools/third_party/libc++/trunk/include/type_traits" 2 3 | |
# 1 "../../buildtools/third_party/libc++/trunk/include/__type_traits/is_nothrow_move_constructible.h" 1 3 | |
# 10 "../../buildtools/third_party/libc++/trunk/include/__type_traits/is_nothrow_move_constructible.h" 3 | |
#define _LIBCPP___TYPE_TRAITS_IS_NOTHROW_MOVE_CONSTRUCTIBLE_H | |
# 19 "../../buildtools/third_party/libc++/trunk/include/__type_traits/is_nothrow_move_constructible.h" 3 | |
namespace std { inline namespace Cr { | |
template <class _Tp> struct is_nothrow_move_constructible | |
: public integral_constant<bool, __is_nothrow_constructible(_Tp, __add_rvalue_reference_t<_Tp>)> | |
{}; | |
# 39 "../../buildtools/third_party/libc++/trunk/include/__type_traits/is_nothrow_move_constructible.h" 3 | |
template <class _Tp> | |
inline constexpr bool is_nothrow_move_constructible_v = is_nothrow_move_constructible<_Tp>::value; | |
}} | |
# 488 "../../buildtools/third_party/libc++/trunk/include/type_traits" 2 3 | |
# 1 "../../buildtools/third_party/libc++/trunk/include/__type_traits/is_object.h" 1 3 | |
# 10 "../../buildtools/third_party/libc++/trunk/include/__type_traits/is_object.h" 3 | |
#define _LIBCPP___TYPE_TRAITS_IS_OBJECT_H | |
# 1 "../../buildtools/third_party/libc++/trunk/include/__type_traits/is_union.h" 1 3 | |
# 10 "../../buildtools/third_party/libc++/trunk/include/__type_traits/is_union.h" 3 | |
#define _LIBCPP___TYPE_TRAITS_IS_UNION_H | |
# 17 "../../buildtools/third_party/libc++/trunk/include/__type_traits/is_union.h" 3 | |
namespace std { inline namespace Cr { | |
template <class _Tp> struct is_union | |
: public integral_constant<bool, __is_union(_Tp)> {}; | |
template <class _Tp> | |
inline constexpr bool is_union_v = __is_union(_Tp); | |
}} | |
# 18 "../../buildtools/third_party/libc++/trunk/include/__type_traits/is_object.h" 2 3 | |
# 21 "../../buildtools/third_party/libc++/trunk/include/__type_traits/is_object.h" 3 | |
namespace std { inline namespace Cr { | |
template<class _Tp> | |
struct is_object : _BoolConstant<__is_object(_Tp)> { }; | |
template <class _Tp> | |
inline constexpr bool is_object_v = __is_object(_Tp); | |
# 50 "../../buildtools/third_party/libc++/trunk/include/__type_traits/is_object.h" 3 | |
}} | |
# 490 "../../buildtools/third_party/libc++/trunk/include/type_traits" 2 3 | |
# 1 "../../buildtools/third_party/libc++/trunk/include/__type_traits/is_pod.h" 1 3 | |
# 10 "../../buildtools/third_party/libc++/trunk/include/__type_traits/is_pod.h" 3 | |
#define _LIBCPP___TYPE_TRAITS_IS_POD_H | |
# 17 "../../buildtools/third_party/libc++/trunk/include/__type_traits/is_pod.h" 3 | |
namespace std { inline namespace Cr { | |
template <class _Tp> struct is_pod | |
: public integral_constant<bool, __is_pod(_Tp)> {}; | |
template <class _Tp> | |
inline constexpr bool is_pod_v = __is_pod(_Tp); | |
}} | |
# 491 "../../buildtools/third_party/libc++/trunk/include/type_traits" 2 3 | |
# 1 "../../buildtools/third_party/libc++/trunk/include/__type_traits/is_polymorphic.h" 1 3 | |
# 10 "../../buildtools/third_party/libc++/trunk/include/__type_traits/is_polymorphic.h" 3 | |
#define _LIBCPP___TYPE_TRAITS_IS_POLYMORPHIC_H | |
# 17 "../../buildtools/third_party/libc++/trunk/include/__type_traits/is_polymorphic.h" 3 | |
namespace std { inline namespace Cr { | |
template <class _Tp> | |
struct is_polymorphic | |
: public integral_constant<bool, __is_polymorphic(_Tp)> {}; | |
template <class _Tp> | |
inline constexpr bool is_polymorphic_v = __is_polymorphic(_Tp); | |
}} | |
# 493 "../../buildtools/third_party/libc++/trunk/include/type_traits" 2 3 | |
# 1 "../../buildtools/third_party/libc++/trunk/include/__type_traits/is_scoped_enum.h" 1 3 | |
# 10 "../../buildtools/third_party/libc++/trunk/include/__type_traits/is_scoped_enum.h" 3 | |
#define _LIBCPP___TYPE_TRAITS_IS_SCOPED_ENUM_H | |
# 1 "../../buildtools/third_party/libc++/trunk/include/__type_traits/underlying_type.h" 1 3 | |
# 10 "../../buildtools/third_party/libc++/trunk/include/__type_traits/underlying_type.h" 3 | |
#define _LIBCPP___TYPE_TRAITS_UNDERLYING_TYPE_H | |
# 17 "../../buildtools/third_party/libc++/trunk/include/__type_traits/underlying_type.h" 3 | |
namespace std { inline namespace Cr { | |
template <class _Tp, bool = is_enum<_Tp>::value> struct __underlying_type_impl; | |
template <class _Tp> | |
struct __underlying_type_impl<_Tp, false> {}; | |
template <class _Tp> | |
struct __underlying_type_impl<_Tp, true> | |
{ | |
typedef __underlying_type(_Tp) type; | |
}; | |
template <class _Tp> | |
struct underlying_type : __underlying_type_impl<_Tp, is_enum<_Tp>::value> {}; | |
template <class _Tp> using underlying_type_t = typename underlying_type<_Tp>::type; | |
}} | |
# 17 "../../buildtools/third_party/libc++/trunk/include/__type_traits/is_scoped_enum.h" 2 3 | |
# 20 "../../buildtools/third_party/libc++/trunk/include/__type_traits/is_scoped_enum.h" 3 | |
namespace std { inline namespace Cr { | |
# 40 "../../buildtools/third_party/libc++/trunk/include/__type_traits/is_scoped_enum.h" 3 | |
}} | |
# 499 "../../buildtools/third_party/libc++/trunk/include/type_traits" 2 3 | |
# 1 "../../buildtools/third_party/libc++/trunk/include/__type_traits/is_signed.h" 1 3 | |
# 10 "../../buildtools/third_party/libc++/trunk/include/__type_traits/is_signed.h" 3 | |
#define _LIBCPP___TYPE_TRAITS_IS_SIGNED_H | |
# 17 "../../buildtools/third_party/libc++/trunk/include/__type_traits/is_signed.h" 3 | |
namespace std { inline namespace Cr { | |
template<class _Tp> | |
struct is_signed : _BoolConstant<__is_signed(_Tp)> { }; | |
template <class _Tp> | |
inline constexpr bool is_signed_v = __is_signed(_Tp); | |
# 53 "../../buildtools/third_party/libc++/trunk/include/__type_traits/is_signed.h" 3 | |
}} | |
# 500 "../../buildtools/third_party/libc++/trunk/include/type_traits" 2 3 | |
# 1 "../../buildtools/third_party/libc++/trunk/include/__type_traits/is_swappable.h" 1 3 | |
# 10 "../../buildtools/third_party/libc++/trunk/include/__type_traits/is_swappable.h" 3 | |
#define _LIBCPP___TYPE_TRAITS_IS_SWAPPABLE_H | |
# 29 "../../buildtools/third_party/libc++/trunk/include/__type_traits/is_swappable.h" 3 | |
namespace std { inline namespace Cr { | |
template <class _Tp> struct __is_swappable; | |
template <class _Tp> struct __is_nothrow_swappable; | |
template <class _Tp> | |
using __swap_result_t = typename enable_if<is_move_constructible<_Tp>::value && is_move_assignable<_Tp>::value>::type; | |
template <class _Tp> | |
inline __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) | |
__swap_result_t<_Tp> | |
swap(_Tp& __x, _Tp& __y) noexcept(is_nothrow_move_constructible<_Tp>::value && is_nothrow_move_assignable<_Tp>::value); | |
template<class _Tp, size_t _Np> | |
inline __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) | |
typename enable_if< | |
__is_swappable<_Tp>::value | |
>::type | |
swap(_Tp (&__a)[_Np], _Tp (&__b)[_Np]) noexcept(__is_nothrow_swappable<_Tp>::value); | |
namespace __detail | |
{ | |
template <class _Tp, class _Up = _Tp, | |
bool _NotVoid = !is_void<_Tp>::value && !is_void<_Up>::value> | |
struct __swappable_with | |
{ | |
template <class _LHS, class _RHS> | |
static decltype(swap(declval<_LHS>(), declval<_RHS>())) | |
__test_swap(int); | |
template <class, class> | |
static __nat __test_swap(long); | |
typedef decltype((__test_swap<_Tp, _Up>(0))) __swap1; | |
typedef decltype((__test_swap<_Up, _Tp>(0))) __swap2; | |
static const bool value = _IsNotSame<__swap1, __nat>::value | |
&& _IsNotSame<__swap2, __nat>::value; | |
}; | |
template <class _Tp, class _Up> | |
struct __swappable_with<_Tp, _Up, false> : false_type {}; | |
template <class _Tp, class _Up = _Tp, bool _Swappable = __swappable_with<_Tp, _Up>::value> | |
struct __nothrow_swappable_with { | |
static const bool value = | |
noexcept(swap(declval<_Tp>(), declval<_Up>())) | |
&& noexcept(swap(declval<_Up>(), declval<_Tp>())); | |
}; | |
template <class _Tp, class _Up> | |
struct __nothrow_swappable_with<_Tp, _Up, false> : false_type {}; | |
} | |
template <class _Tp> | |
struct __is_swappable | |
: public integral_constant<bool, __detail::__swappable_with<_Tp&>::value> | |
{ | |
}; | |
template <class _Tp> | |
struct __is_nothrow_swappable | |
: public integral_constant<bool, __detail::__nothrow_swappable_with<_Tp&>::value> | |
{ | |
}; | |
template <class _Tp, class _Up> | |
struct is_swappable_with | |
: public integral_constant<bool, __detail::__swappable_with<_Tp, _Up>::value> | |
{ | |
}; | |
template <class _Tp> | |
struct is_swappable | |
: public conditional< | |
__libcpp_is_referenceable<_Tp>::value, | |
is_swappable_with< | |
__add_lvalue_reference_t<_Tp>, | |
__add_lvalue_reference_t<_Tp> >, | |
false_type | |
>::type | |
{ | |
}; | |
template <class _Tp, class _Up> | |
struct is_nothrow_swappable_with | |
: public integral_constant<bool, __detail::__nothrow_swappable_with<_Tp, _Up>::value> | |
{ | |
}; | |
template <class _Tp> | |
struct is_nothrow_swappable | |
: public conditional< | |
__libcpp_is_referenceable<_Tp>::value, | |
is_nothrow_swappable_with< | |
__add_lvalue_reference_t<_Tp>, | |
__add_lvalue_reference_t<_Tp> >, | |
false_type | |
>::type | |
{ | |
}; | |
template <class _Tp, class _Up> | |
inline constexpr bool is_swappable_with_v = is_swappable_with<_Tp, _Up>::value; | |
template <class _Tp> | |
inline constexpr bool is_swappable_v = is_swappable<_Tp>::value; | |
template <class _Tp, class _Up> | |
inline constexpr bool is_nothrow_swappable_with_v = is_nothrow_swappable_with<_Tp, _Up>::value; | |
template <class _Tp> | |
inline constexpr bool is_nothrow_swappable_v = is_nothrow_swappable<_Tp>::value; | |
}} | |
# 502 "../../buildtools/third_party/libc++/trunk/include/type_traits" 2 3 | |
# 1 "../../buildtools/third_party/libc++/trunk/include/__type_traits/is_trivially_assignable.h" 1 3 | |
# 10 "../../buildtools/third_party/libc++/trunk/include/__type_traits/is_trivially_assignable.h" 3 | |
#define _LIBCPP___TYPE_TRAITS_IS_TRIVIALLY_ASSIGNABLE_H | |
# 17 "../../buildtools/third_party/libc++/trunk/include/__type_traits/is_trivially_assignable.h" 3 | |
namespace std { inline namespace Cr { | |
template <class _Tp, class _Arg> | |
struct is_trivially_assignable | |
: integral_constant<bool, __is_trivially_assignable(_Tp, _Arg)> | |
{ }; | |
template <class _Tp, class _Arg> | |
inline constexpr bool is_trivially_assignable_v = __is_trivially_assignable(_Tp, _Arg); | |
}} | |
# 504 "../../buildtools/third_party/libc++/trunk/include/type_traits" 2 3 | |
# 1 "../../buildtools/third_party/libc++/trunk/include/__type_traits/is_trivially_constructible.h" 1 3 | |
# 10 "../../buildtools/third_party/libc++/trunk/include/__type_traits/is_trivially_constructible.h" 3 | |
#define _LIBCPP___TYPE_TRAITS_IS_TRIVIALLY_CONSTRUCTIBLE_H | |
# 17 "../../buildtools/third_party/libc++/trunk/include/__type_traits/is_trivially_constructible.h" 3 | |
namespace std { inline namespace Cr { | |
template <class _Tp, class... _Args> | |
struct is_trivially_constructible | |
: integral_constant<bool, __is_trivially_constructible(_Tp, _Args...)> | |
{ | |
}; | |
template <class _Tp, class... _Args> | |
inline constexpr bool is_trivially_constructible_v = __is_trivially_constructible(_Tp, _Args...); | |
}} | |
# 505 "../../buildtools/third_party/libc++/trunk/include/type_traits" 2 3 | |
# 1 "../../buildtools/third_party/libc++/trunk/include/__type_traits/is_trivially_copy_assignable.h" 1 3 | |
# 10 "../../buildtools/third_party/libc++/trunk/include/__type_traits/is_trivially_copy_assignable.h" 3 | |
#define _LIBCPP___TYPE_TRAITS_IS_TRIVIALLY_COPY_ASSIGNABLE_H | |
# 19 "../../buildtools/third_party/libc++/trunk/include/__type_traits/is_trivially_copy_assignable.h" 3 | |
namespace std { inline namespace Cr { | |
template <class _Tp> | |
struct is_trivially_copy_assignable | |
: public integral_constant< | |
bool, | |
__is_trivially_assignable( | |
__add_lvalue_reference_t<_Tp>, | |
__add_lvalue_reference_t<typename add_const<_Tp>::type>)> {}; | |
template <class _Tp> | |
inline constexpr bool is_trivially_copy_assignable_v = is_trivially_copy_assignable<_Tp>::value; | |
}} | |
# 506 "../../buildtools/third_party/libc++/trunk/include/type_traits" 2 3 | |
# 1 "../../buildtools/third_party/libc++/trunk/include/__type_traits/is_trivially_copy_constructible.h" 1 3 | |
# 10 "../../buildtools/third_party/libc++/trunk/include/__type_traits/is_trivially_copy_constructible.h" 3 | |
#define _LIBCPP___TYPE_TRAITS_IS_TRIVIALLY_COPY_CONSTRUCTIBLE_H | |
# 18 "../../buildtools/third_party/libc++/trunk/include/__type_traits/is_trivially_copy_constructible.h" 3 | |
namespace std { inline namespace Cr { | |
template <class _Tp> struct is_trivially_copy_constructible | |
: public integral_constant<bool, __is_trivially_constructible(_Tp, __add_lvalue_reference_t<const _Tp>)> | |
{}; | |
template <class _Tp> | |
inline constexpr bool is_trivially_copy_constructible_v = is_trivially_copy_constructible<_Tp>::value; | |
}} | |
# 507 "../../buildtools/third_party/libc++/trunk/include/type_traits" 2 3 | |
# 1 "../../buildtools/third_party/libc++/trunk/include/__type_traits/is_trivially_copyable.h" 1 3 | |
# 10 "../../buildtools/third_party/libc++/trunk/include/__type_traits/is_trivially_copyable.h" 3 | |
#define _LIBCPP___TYPE_TRAITS_IS_TRIVIALLY_COPYABLE_H | |
# 17 "../../buildtools/third_party/libc++/trunk/include/__type_traits/is_trivially_copyable.h" 3 | |
namespace std { inline namespace Cr { | |
template <class _Tp> struct is_trivially_copyable | |
: public integral_constant<bool, __is_trivially_copyable(_Tp)> | |
{}; | |
template <class _Tp> | |
inline constexpr bool is_trivially_copyable_v = __is_trivially_copyable(_Tp); | |
}} | |
# 508 "../../buildtools/third_party/libc++/trunk/include/type_traits" 2 3 | |
# 1 "../../buildtools/third_party/libc++/trunk/include/__type_traits/is_trivially_default_constructible.h" 1 3 | |
# 10 "../../buildtools/third_party/libc++/trunk/include/__type_traits/is_trivially_default_constructible.h" 3 | |
#define _LIBCPP___TYPE_TRAITS_IS_TRIVIALLY_DEFAULT_CONSTRUCTIBLE_H | |
# 17 "../../buildtools/third_party/libc++/trunk/include/__type_traits/is_trivially_default_constructible.h" 3 | |
namespace std { inline namespace Cr { | |
template <class _Tp> struct is_trivially_default_constructible | |
: public integral_constant<bool, __is_trivially_constructible(_Tp)> | |
{}; | |
template <class _Tp> | |
inline constexpr bool is_trivially_default_constructible_v = __is_trivially_constructible(_Tp); | |
}} | |
# 509 "../../buildtools/third_party/libc++/trunk/include/type_traits" 2 3 | |
# 1 "../../buildtools/third_party/libc++/trunk/include/__type_traits/is_trivially_destructible.h" 1 3 | |
# 10 "../../buildtools/third_party/libc++/trunk/include/__type_traits/is_trivially_destructible.h" 3 | |
#define _LIBCPP___TYPE_TRAITS_IS_TRIVIALLY_DESTRUCTIBLE_H | |
# 17 "../../buildtools/third_party/libc++/trunk/include/__type_traits/is_trivially_destructible.h" 3 | |
namespace std { inline namespace Cr { | |
template <class _Tp> struct is_trivially_destructible | |
: public integral_constant<bool, __is_trivially_destructible(_Tp)> {}; | |
# 38 "../../buildtools/third_party/libc++/trunk/include/__type_traits/is_trivially_destructible.h" 3 | |
template <class _Tp> | |
inline constexpr bool is_trivially_destructible_v = is_trivially_destructible<_Tp>::value; | |
}} | |
# 510 "../../buildtools/third_party/libc++/trunk/include/type_traits" 2 3 | |
# 1 "../../buildtools/third_party/libc++/trunk/include/__type_traits/is_trivially_move_assignable.h" 1 3 | |
# 10 "../../buildtools/third_party/libc++/trunk/include/__type_traits/is_trivially_move_assignable.h" 3 | |
#define _LIBCPP___TYPE_TRAITS_IS_TRIVIALLY_MOVE_ASSIGNABLE_H | |
# 19 "../../buildtools/third_party/libc++/trunk/include/__type_traits/is_trivially_move_assignable.h" 3 | |
namespace std { inline namespace Cr { | |
template <class _Tp> | |
struct is_trivially_move_assignable | |
: public integral_constant< | |
bool, | |
__is_trivially_assignable(__add_lvalue_reference_t<_Tp>, __add_rvalue_reference_t<_Tp>)> {}; | |
template <class _Tp> | |
inline constexpr bool is_trivially_move_assignable_v = is_trivially_move_assignable<_Tp>::value; | |
}} | |
# 511 "../../buildtools/third_party/libc++/trunk/include/type_traits" 2 3 | |
# 1 "../../buildtools/third_party/libc++/trunk/include/__type_traits/is_trivially_move_constructible.h" 1 3 | |
# 10 "../../buildtools/third_party/libc++/trunk/include/__type_traits/is_trivially_move_constructible.h" 3 | |
#define _LIBCPP___TYPE_TRAITS_IS_TRIVIALLY_MOVE_CONSTRUCTIBLE_H | |
# 18 "../../buildtools/third_party/libc++/trunk/include/__type_traits/is_trivially_move_constructible.h" 3 | |
namespace std { inline namespace Cr { | |
template <class _Tp> | |
struct is_trivially_move_constructible | |
: public integral_constant<bool, __is_trivially_constructible(_Tp, __add_rvalue_reference_t<_Tp>)> {}; | |
template <class _Tp> | |
inline constexpr bool is_trivially_move_constructible_v = is_trivially_move_constructible<_Tp>::value; | |
}} | |
# 512 "../../buildtools/third_party/libc++/trunk/include/type_traits" 2 3 | |
# 1 "../../buildtools/third_party/libc++/trunk/include/__type_traits/is_unbounded_array.h" 1 3 | |
# 10 "../../buildtools/third_party/libc++/trunk/include/__type_traits/is_unbounded_array.h" 3 | |
#define _LIBCPP___TYPE_TRAITS_IS_UNBOUNDED_ARRAY_H | |
# 17 "../../buildtools/third_party/libc++/trunk/include/__type_traits/is_unbounded_array.h" 3 | |
namespace std { inline namespace Cr { | |
template <class> struct __libcpp_is_unbounded_array : false_type {}; | |
template <class _Tp> struct __libcpp_is_unbounded_array<_Tp[]> : true_type {}; | |
# 35 "../../buildtools/third_party/libc++/trunk/include/__type_traits/is_unbounded_array.h" 3 | |
}} | |
# 513 "../../buildtools/third_party/libc++/trunk/include/type_traits" 2 3 | |
# 1 "../../buildtools/third_party/libc++/trunk/include/__type_traits/is_unsigned.h" 1 3 | |
# 10 "../../buildtools/third_party/libc++/trunk/include/__type_traits/is_unsigned.h" 3 | |
#define _LIBCPP___TYPE_TRAITS_IS_UNSIGNED_H | |
# 19 "../../buildtools/third_party/libc++/trunk/include/__type_traits/is_unsigned.h" 3 | |
namespace std { inline namespace Cr { | |
template<class _Tp> | |
struct is_unsigned : _BoolConstant<__is_unsigned(_Tp)> { }; | |
template <class _Tp> | |
inline constexpr bool is_unsigned_v = __is_unsigned(_Tp); | |
# 56 "../../buildtools/third_party/libc++/trunk/include/__type_traits/is_unsigned.h" 3 | |
}} | |
# 515 "../../buildtools/third_party/libc++/trunk/include/type_traits" 2 3 | |
# 1 "../../buildtools/third_party/libc++/trunk/include/__type_traits/make_const_lvalue_ref.h" 1 3 | |
# 10 "../../buildtools/third_party/libc++/trunk/include/__type_traits/make_const_lvalue_ref.h" 3 | |
#define _LIBCPP___TYPE_TRAITS_MAKE_CONST_LVALUE_REF_H | |
# 17 "../../buildtools/third_party/libc++/trunk/include/__type_traits/make_const_lvalue_ref.h" 3 | |
namespace std { inline namespace Cr { | |
template<class _Tp> | |
using __make_const_lvalue_ref = const __libcpp_remove_reference_t<_Tp>&; | |
}} | |
# 518 "../../buildtools/third_party/libc++/trunk/include/type_traits" 2 3 | |
# 1 "../../buildtools/third_party/libc++/trunk/include/__type_traits/make_signed.h" 1 3 | |
# 10 "../../buildtools/third_party/libc++/trunk/include/__type_traits/make_signed.h" 3 | |
#define _LIBCPP___TYPE_TRAITS_MAKE_SIGNED_H | |
# 22 "../../buildtools/third_party/libc++/trunk/include/__type_traits/make_signed.h" 3 | |
namespace std { inline namespace Cr { | |
template <class _Tp> | |
using __make_signed_t = __make_signed(_Tp); | |
# 75 "../../buildtools/third_party/libc++/trunk/include/__type_traits/make_signed.h" 3 | |
template <class _Tp> | |
struct make_signed { | |
using type __attribute__((__nodebug__)) = __make_signed_t<_Tp>; | |
}; | |
template <class _Tp> using make_signed_t = __make_signed_t<_Tp>; | |
}} | |
# 519 "../../buildtools/third_party/libc++/trunk/include/type_traits" 2 3 | |
# 1 "../../buildtools/third_party/libc++/trunk/include/__type_traits/make_unsigned.h" 1 3 | |
# 10 "../../buildtools/third_party/libc++/trunk/include/__type_traits/make_unsigned.h" 3 | |
#define _LIBCPP___TYPE_TRAITS_MAKE_UNSIGNED_H | |
# 24 "../../buildtools/third_party/libc++/trunk/include/__type_traits/make_unsigned.h" 3 | |
namespace std { inline namespace Cr { | |
template <class _Tp> | |
using __make_unsigned_t = __make_unsigned(_Tp); | |
# 77 "../../buildtools/third_party/libc++/trunk/include/__type_traits/make_unsigned.h" 3 | |
template <class _Tp> | |
struct make_unsigned { | |
using type __attribute__((__nodebug__)) = __make_unsigned_t<_Tp>; | |
}; | |
template <class _Tp> using make_unsigned_t = __make_unsigned_t<_Tp>; | |
template <class _Tp> | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) constexpr | |
__make_unsigned_t<_Tp> __to_unsigned_like(_Tp __x) noexcept { | |
return static_cast<__make_unsigned_t<_Tp> >(__x); | |
} | |
template <class _Tp, class _Up> | |
using __copy_unsigned_t = __conditional_t<is_unsigned<_Tp>::value, __make_unsigned_t<_Up>, _Up>; | |
}} | |
# 520 "../../buildtools/third_party/libc++/trunk/include/type_traits" 2 3 | |
# 1 "../../buildtools/third_party/libc++/trunk/include/__type_traits/maybe_const.h" 1 3 | |
# 10 "../../buildtools/third_party/libc++/trunk/include/__type_traits/maybe_const.h" 3 | |
#define _LIBCPP___TYPE_TRAITS_MAYBE_CONST_H | |
# 17 "../../buildtools/third_party/libc++/trunk/include/__type_traits/maybe_const.h" 3 | |
namespace std { inline namespace Cr { | |
template<bool _Const, class _Tp> | |
using __maybe_const = typename conditional<_Const, const _Tp, _Tp>::type; | |
}} | |
# 521 "../../buildtools/third_party/libc++/trunk/include/type_traits" 2 3 | |
# 1 "../../buildtools/third_party/libc++/trunk/include/__type_traits/negation.h" 1 3 | |
# 10 "../../buildtools/third_party/libc++/trunk/include/__type_traits/negation.h" 3 | |
#define _LIBCPP___TYPE_TRAITS_NEGATION_H | |
# 17 "../../buildtools/third_party/libc++/trunk/include/__type_traits/negation.h" 3 | |
namespace std { inline namespace Cr { | |
template <class _Pred> | |
struct _Not : _BoolConstant<!_Pred::value> {}; | |
template <class _Tp> | |
struct negation : _Not<_Tp> {}; | |
template<class _Tp> | |
inline constexpr bool negation_v = !_Tp::value; | |
}} | |
# 522 "../../buildtools/third_party/libc++/trunk/include/type_traits" 2 3 | |
# 1 "../../buildtools/third_party/libc++/trunk/include/__type_traits/rank.h" 1 3 | |
# 10 "../../buildtools/third_party/libc++/trunk/include/__type_traits/rank.h" 3 | |
#define _LIBCPP___TYPE_TRAITS_RANK_H | |
# 18 "../../buildtools/third_party/libc++/trunk/include/__type_traits/rank.h" 3 | |
namespace std { inline namespace Cr { | |
# 30 "../../buildtools/third_party/libc++/trunk/include/__type_traits/rank.h" 3 | |
template <class _Tp> struct rank | |
: public integral_constant<size_t, 0> {}; | |
template <class _Tp> struct rank<_Tp[]> | |
: public integral_constant<size_t, rank<_Tp>::value + 1> {}; | |
template <class _Tp, size_t _Np> struct rank<_Tp[_Np]> | |
: public integral_constant<size_t, rank<_Tp>::value + 1> {}; | |
template <class _Tp> | |
inline constexpr size_t rank_v = rank<_Tp>::value; | |
}} | |
# 523 "../../buildtools/third_party/libc++/trunk/include/type_traits" 2 3 | |
# 1 "../../buildtools/third_party/libc++/trunk/include/__type_traits/remove_pointer.h" 1 3 | |
# 10 "../../buildtools/third_party/libc++/trunk/include/__type_traits/remove_pointer.h" 3 | |
#define _LIBCPP___TYPE_TRAITS_REMOVE_POINTER_H | |
# 16 "../../buildtools/third_party/libc++/trunk/include/__type_traits/remove_pointer.h" 3 | |
namespace std { inline namespace Cr { | |
template <class _Tp> | |
struct remove_pointer { | |
using type __attribute__((__nodebug__)) = __remove_pointer(_Tp); | |
}; | |
template <class _Tp> | |
using __remove_pointer_t = __remove_pointer(_Tp); | |
# 40 "../../buildtools/third_party/libc++/trunk/include/__type_traits/remove_pointer.h" 3 | |
template <class _Tp> using remove_pointer_t = __remove_pointer_t<_Tp>; | |
}} | |
# 529 "../../buildtools/third_party/libc++/trunk/include/type_traits" 2 3 | |
# 1 "../../buildtools/third_party/libc++/trunk/include/__type_traits/result_of.h" 1 3 | |
# 10 "../../buildtools/third_party/libc++/trunk/include/__type_traits/result_of.h" 3 | |
#define _LIBCPP___TYPE_TRAITS_RESULT_OF_H | |
# 17 "../../buildtools/third_party/libc++/trunk/include/__type_traits/result_of.h" 3 | |
namespace std { inline namespace Cr { | |
template <class _Callable> class __attribute__((deprecated)) result_of; | |
template <class _Fp, class ..._Args> | |
class result_of<_Fp(_Args...)> | |
: public __invoke_of<_Fp, _Args...> | |
{ | |
}; | |
template <class _Tp> using result_of_t __attribute__((deprecated)) = typename result_of<_Tp>::type; | |
}} | |
# 532 "../../buildtools/third_party/libc++/trunk/include/type_traits" 2 3 | |
# 1 "../../buildtools/third_party/libc++/trunk/include/__type_traits/type_identity.h" 1 3 | |
# 10 "../../buildtools/third_party/libc++/trunk/include/__type_traits/type_identity.h" 3 | |
#define _LIBCPP___TYPE_TRAITS_TYPE_IDENTITY_H | |
# 16 "../../buildtools/third_party/libc++/trunk/include/__type_traits/type_identity.h" 3 | |
namespace std { inline namespace Cr { | |
template <class _Tp> | |
struct __type_identity { typedef _Tp type; }; | |
template <class _Tp> | |
using __type_identity_t __attribute__((__nodebug__)) = typename __type_identity<_Tp>::type; | |
}} | |
# 533 "../../buildtools/third_party/libc++/trunk/include/type_traits" 2 3 | |
# 1 "../../buildtools/third_party/libc++/trunk/include/cstdint" 1 3 | |
# 11 "../../buildtools/third_party/libc++/trunk/include/cstdint" 3 | |
#define _LIBCPP_CSTDINT | |
# 158 "../../buildtools/third_party/libc++/trunk/include/cstdint" 3 | |
namespace std { inline namespace Cr { | |
using ::int8_t __attribute__((__using_if_exists__)); | |
using ::int16_t __attribute__((__using_if_exists__)); | |
using ::int32_t __attribute__((__using_if_exists__)); | |
using ::int64_t __attribute__((__using_if_exists__)); | |
using ::uint8_t __attribute__((__using_if_exists__)); | |
using ::uint16_t __attribute__((__using_if_exists__)); | |
using ::uint32_t __attribute__((__using_if_exists__)); | |
using ::uint64_t __attribute__((__using_if_exists__)); | |
using ::int_least8_t __attribute__((__using_if_exists__)); | |
using ::int_least16_t __attribute__((__using_if_exists__)); | |
using ::int_least32_t __attribute__((__using_if_exists__)); | |
using ::int_least64_t __attribute__((__using_if_exists__)); | |
using ::uint_least8_t __attribute__((__using_if_exists__)); | |
using ::uint_least16_t __attribute__((__using_if_exists__)); | |
using ::uint_least32_t __attribute__((__using_if_exists__)); | |
using ::uint_least64_t __attribute__((__using_if_exists__)); | |
using ::int_fast8_t __attribute__((__using_if_exists__)); | |
using ::int_fast16_t __attribute__((__using_if_exists__)); | |
using ::int_fast32_t __attribute__((__using_if_exists__)); | |
using ::int_fast64_t __attribute__((__using_if_exists__)); | |
using ::uint_fast8_t __attribute__((__using_if_exists__)); | |
using ::uint_fast16_t __attribute__((__using_if_exists__)); | |
using ::uint_fast32_t __attribute__((__using_if_exists__)); | |
using ::uint_fast64_t __attribute__((__using_if_exists__)); | |
using ::intptr_t __attribute__((__using_if_exists__)); | |
using ::uintptr_t __attribute__((__using_if_exists__)); | |
using ::intmax_t __attribute__((__using_if_exists__)); | |
using ::uintmax_t __attribute__((__using_if_exists__)); | |
}} | |
# 538 "../../buildtools/third_party/libc++/trunk/include/type_traits" 2 3 | |
# 542 "../../buildtools/third_party/libc++/trunk/include/type_traits" 3 | |
# 17 "../../buildtools/third_party/libc++/trunk/include/__debug" 2 3 | |
# 20 "../../buildtools/third_party/libc++/trunk/include/__debug" 3 | |
# 34 "../../buildtools/third_party/libc++/trunk/include/__debug" 3 | |
#define _LIBCPP_DEBUG_ASSERT(x,m) ((void)0) | |
# 212 "../../buildtools/third_party/libc++/trunk/include/__debug" 3 | |
namespace std { inline namespace Cr { | |
template <class _Tp> | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) constexpr inline void __debug_db_insert_c(_Tp* __c) { | |
(void)(__c); | |
} | |
template <class _Tp> | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) constexpr inline void __debug_db_insert_i(_Tp* __i) { | |
(void)(__i); | |
} | |
template <class _Tp> | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) constexpr inline void __debug_db_erase_c(_Tp* __c) { | |
(void)(__c); | |
} | |
template <class _Tp> | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) constexpr inline void __debug_db_swap(_Tp* __lhs, _Tp* __rhs) { | |
(void)(__lhs); | |
(void)(__rhs); | |
} | |
template <class _Tp> | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) constexpr inline void __debug_db_invalidate_all(_Tp* __c) { | |
(void)(__c); | |
} | |
}} | |
# 1710 "../../buildtools/third_party/libc++/trunk/include/algorithm" 2 3 | |
# 1 "../../buildtools/third_party/libc++/trunk/include/cstring" 1 3 | |
# 11 "../../buildtools/third_party/libc++/trunk/include/cstring" 3 | |
#define _LIBCPP_CSTRING | |
# 62 "../../buildtools/third_party/libc++/trunk/include/cstring" 3 | |
# 1 "../../buildtools/third_party/libc++/trunk/include/string.h" 1 3 | |
# 11 "../../buildtools/third_party/libc++/trunk/include/string.h" 3 | |
#define _LIBCPP_STRING_H | |
# 58 "../../buildtools/third_party/libc++/trunk/include/string.h" 3 | |
# 1 "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/string.h" 1 3 4 | |
# 23 "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/string.h" 3 4 | |
#define _STRING_H 1 | |
#define __GLIBC_INTERNAL_STARTING_HEADER_IMPLEMENTATION | |
# 1 "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/x86_64-linux-gnu/bits/libc-header-start.h" 1 3 4 | |
# 31 "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/x86_64-linux-gnu/bits/libc-header-start.h" 3 4 | |
#undef __GLIBC_INTERNAL_STARTING_HEADER_IMPLEMENTATION | |
#undef __GLIBC_USE_LIB_EXT2 | |
#define __GLIBC_USE_LIB_EXT2 1 | |
#undef __GLIBC_USE_IEC_60559_BFP_EXT | |
#define __GLIBC_USE_IEC_60559_BFP_EXT 1 | |
#undef __GLIBC_USE_IEC_60559_BFP_EXT_C2X | |
#define __GLIBC_USE_IEC_60559_BFP_EXT_C2X 1 | |
#undef __GLIBC_USE_IEC_60559_FUNCS_EXT | |
#define __GLIBC_USE_IEC_60559_FUNCS_EXT 1 | |
#undef __GLIBC_USE_IEC_60559_FUNCS_EXT_C2X | |
#define __GLIBC_USE_IEC_60559_FUNCS_EXT_C2X 1 | |
#undef __GLIBC_USE_IEC_60559_TYPES_EXT | |
#define __GLIBC_USE_IEC_60559_TYPES_EXT 1 | |
# 27 "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/string.h" 2 3 4 | |
extern "C" { | |
#define __need_size_t | |
#define __need_NULL | |
# 1 "../../buildtools/third_party/libc++/trunk/include/stddef.h" 1 3 4 | |
# 15 "../../buildtools/third_party/libc++/trunk/include/stddef.h" 3 | |
# 1 "../../third_party/llvm-build/Release+Asserts/lib/clang/16.0.0/include/stddef.h" 1 3 | |
# 48 "../../third_party/llvm-build/Release+Asserts/lib/clang/16.0.0/include/stddef.h" 3 | |
#undef __need_size_t | |
# 81 "../../third_party/llvm-build/Release+Asserts/lib/clang/16.0.0/include/stddef.h" 3 | |
#undef NULL | |
#define NULL __null | |
# 97 "../../third_party/llvm-build/Release+Asserts/lib/clang/16.0.0/include/stddef.h" 3 | |
#undef __need_NULL | |
# 18 "../../buildtools/third_party/libc++/trunk/include/stddef.h" 2 3 | |
# 34 "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/string.h" 2 3 4 | |
#define __CORRECT_ISO_CPP_STRING_H_PROTO | |
extern void *memcpy (void *__restrict __dest, const void *__restrict __src, | |
size_t __n) throw () __attribute__ ((__nonnull__ (1, 2))); | |
extern void *memmove (void *__dest, const void *__src, size_t __n) | |
throw () __attribute__ ((__nonnull__ (1, 2))); | |
extern void *memccpy (void *__restrict __dest, const void *__restrict __src, | |
int __c, size_t __n) | |
throw () __attribute__ ((__nonnull__ (1, 2))); | |
extern void *memset (void *__s, int __c, size_t __n) throw () __attribute__ ((__nonnull__ (1))); | |
extern int memcmp (const void *__s1, const void *__s2, size_t __n) | |
throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); | |
extern "C++" | |
{ | |
extern void *memchr (void *__s, int __c, size_t __n) | |
throw () __asm ("memchr") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); | |
extern const void *memchr (const void *__s, int __c, size_t __n) | |
throw () __asm ("memchr") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); | |
extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) void * | |
memchr (void *__s, int __c, size_t __n) throw () | |
{ | |
return __builtin_memchr (__s, __c, __n); | |
} | |
extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) const void * | |
memchr (const void *__s, int __c, size_t __n) throw () | |
{ | |
return __builtin_memchr (__s, __c, __n); | |
} | |
} | |
# 99 "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/string.h" 3 4 | |
extern "C++" void *rawmemchr (void *__s, int __c) | |
throw () __asm ("rawmemchr") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); | |
extern "C++" const void *rawmemchr (const void *__s, int __c) | |
throw () __asm ("rawmemchr") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); | |
extern "C++" void *memrchr (void *__s, int __c, size_t __n) | |
throw () __asm ("memrchr") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); | |
extern "C++" const void *memrchr (const void *__s, int __c, size_t __n) | |
throw () __asm ("memrchr") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); | |
# 122 "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/string.h" 3 4 | |
extern char *strcpy (char *__restrict __dest, const char *__restrict __src) | |
throw () __attribute__ ((__nonnull__ (1, 2))); | |
extern char *strncpy (char *__restrict __dest, | |
const char *__restrict __src, size_t __n) | |
throw () __attribute__ ((__nonnull__ (1, 2))); | |
extern char *strcat (char *__restrict __dest, const char *__restrict __src) | |
throw () __attribute__ ((__nonnull__ (1, 2))); | |
extern char *strncat (char *__restrict __dest, const char *__restrict __src, | |
size_t __n) throw () __attribute__ ((__nonnull__ (1, 2))); | |
extern int strcmp (const char *__s1, const char *__s2) | |
throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); | |
extern int strncmp (const char *__s1, const char *__s2, size_t __n) | |
throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); | |
extern int strcoll (const char *__s1, const char *__s2) | |
throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); | |
extern size_t strxfrm (char *__restrict __dest, | |
const char *__restrict __src, size_t __n) | |
throw () __attribute__ ((__nonnull__ (2))); | |
# 1 "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/x86_64-linux-gnu/bits/types/locale_t.h" 1 3 4 | |
# 20 "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/x86_64-linux-gnu/bits/types/locale_t.h" 3 4 | |
#define _BITS_TYPES_LOCALE_T_H 1 | |
# 1 "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/x86_64-linux-gnu/bits/types/__locale_t.h" 1 3 4 | |
# 21 "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/x86_64-linux-gnu/bits/types/__locale_t.h" 3 4 | |
#define _BITS_TYPES___LOCALE_T_H 1 | |
struct __locale_struct | |
{ | |
struct __locale_data *__locales[13]; | |
const unsigned short int *__ctype_b; | |
const int *__ctype_tolower; | |
const int *__ctype_toupper; | |
const char *__names[13]; | |
}; | |
typedef struct __locale_struct *__locale_t; | |
# 23 "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/x86_64-linux-gnu/bits/types/locale_t.h" 2 3 4 | |
typedef __locale_t locale_t; | |
# 154 "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/string.h" 2 3 4 | |
extern int strcoll_l (const char *__s1, const char *__s2, locale_t __l) | |
throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2, 3))); | |
extern size_t strxfrm_l (char *__dest, const char *__src, size_t __n, | |
locale_t __l) throw () __attribute__ ((__nonnull__ (2, 4))); | |
extern char *strdup (const char *__s) | |
throw () __attribute__ ((__malloc__)) __attribute__ ((__nonnull__ (1))); | |
extern char *strndup (const char *__string, size_t __n) | |
throw () __attribute__ ((__malloc__)) __attribute__ ((__nonnull__ (1))); | |
#define strdupa(s) (__extension__ ({ const char *__old = (s); size_t __len = strlen (__old) + 1; char *__new = (char *) __builtin_alloca (__len); (char *) memcpy (__new, __old, __len); })) | |
# 191 "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/string.h" 3 4 | |
#define strndupa(s,n) (__extension__ ({ const char *__old = (s); size_t __len = strnlen (__old, (n)); char *__new = (char *) __builtin_alloca (__len + 1); __new[__len] = '\0'; (char *) memcpy (__new, __old, __len); })) | |
# 204 "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/string.h" 3 4 | |
extern "C++" | |
{ | |
extern char *strchr (char *__s, int __c) | |
throw () __asm ("strchr") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); | |
extern const char *strchr (const char *__s, int __c) | |
throw () __asm ("strchr") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); | |
extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) char * | |
strchr (char *__s, int __c) throw () | |
{ | |
return __builtin_strchr (__s, __c); | |
} | |
extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) const char * | |
strchr (const char *__s, int __c) throw () | |
{ | |
return __builtin_strchr (__s, __c); | |
} | |
} | |
extern "C++" | |
{ | |
extern char *strrchr (char *__s, int __c) | |
throw () __asm ("strrchr") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); | |
extern const char *strrchr (const char *__s, int __c) | |
throw () __asm ("strrchr") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); | |
extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) char * | |
strrchr (char *__s, int __c) throw () | |
{ | |
return __builtin_strrchr (__s, __c); | |
} | |
extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) const char * | |
strrchr (const char *__s, int __c) throw () | |
{ | |
return __builtin_strrchr (__s, __c); | |
} | |
} | |
# 261 "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/string.h" 3 4 | |
extern "C++" char *strchrnul (char *__s, int __c) | |
throw () __asm ("strchrnul") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); | |
extern "C++" const char *strchrnul (const char *__s, int __c) | |
throw () __asm ("strchrnul") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); | |
# 273 "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/string.h" 3 4 | |
extern size_t strcspn (const char *__s, const char *__reject) | |
throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); | |
extern size_t strspn (const char *__s, const char *__accept) | |
throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); | |
extern "C++" | |
{ | |
extern char *strpbrk (char *__s, const char *__accept) | |
throw () __asm ("strpbrk") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); | |
extern const char *strpbrk (const char *__s, const char *__accept) | |
throw () __asm ("strpbrk") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); | |
extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) char * | |
strpbrk (char *__s, const char *__accept) throw () | |
{ | |
return __builtin_strpbrk (__s, __accept); | |
} | |
extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) const char * | |
strpbrk (const char *__s, const char *__accept) throw () | |
{ | |
return __builtin_strpbrk (__s, __accept); | |
} | |
} | |
extern "C++" | |
{ | |
extern char *strstr (char *__haystack, const char *__needle) | |
throw () __asm ("strstr") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); | |
extern const char *strstr (const char *__haystack, const char *__needle) | |
throw () __asm ("strstr") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); | |
extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) char * | |
strstr (char *__haystack, const char *__needle) throw () | |
{ | |
return __builtin_strstr (__haystack, __needle); | |
} | |
extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) const char * | |
strstr (const char *__haystack, const char *__needle) throw () | |
{ | |
return __builtin_strstr (__haystack, __needle); | |
} | |
} | |
extern char *strtok (char *__restrict __s, const char *__restrict __delim) | |
throw () __attribute__ ((__nonnull__ (2))); | |
extern char *__strtok_r (char *__restrict __s, | |
const char *__restrict __delim, | |
char **__restrict __save_ptr) | |
throw () __attribute__ ((__nonnull__ (2, 3))); | |
extern char *strtok_r (char *__restrict __s, const char *__restrict __delim, | |
char **__restrict __save_ptr) | |
throw () __attribute__ ((__nonnull__ (2, 3))); | |
extern "C++" char *strcasestr (char *__haystack, const char *__needle) | |
throw () __asm ("strcasestr") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); | |
extern "C++" const char *strcasestr (const char *__haystack, | |
const char *__needle) | |
throw () __asm ("strcasestr") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); | |
# 369 "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/string.h" 3 4 | |
extern void *memmem (const void *__haystack, size_t __haystacklen, | |
const void *__needle, size_t __needlelen) | |
throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 3))); | |
extern void *__mempcpy (void *__restrict __dest, | |
const void *__restrict __src, size_t __n) | |
throw () __attribute__ ((__nonnull__ (1, 2))); | |
extern void *mempcpy (void *__restrict __dest, | |
const void *__restrict __src, size_t __n) | |
throw () __attribute__ ((__nonnull__ (1, 2))); | |
extern size_t strlen (const char *__s) | |
throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); | |
extern size_t strnlen (const char *__string, size_t __maxlen) | |
throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); | |
extern char *strerror (int __errnum) throw (); | |
# 421 "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/string.h" 3 4 | |
extern char *strerror_r (int __errnum, char *__buf, size_t __buflen) | |
throw () __attribute__ ((__nonnull__ (2))) __attribute__ ((__warn_unused_result__)); | |
extern char *strerror_l (int __errnum, locale_t __l) throw (); | |
# 1 "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/strings.h" 1 3 4 | |
# 19 "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/strings.h" 3 4 | |
#define _STRINGS_H 1 | |
#define __need_size_t | |
# 1 "../../buildtools/third_party/libc++/trunk/include/stddef.h" 1 3 4 | |
# 15 "../../buildtools/third_party/libc++/trunk/include/stddef.h" 3 | |
# 1 "../../third_party/llvm-build/Release+Asserts/lib/clang/16.0.0/include/stddef.h" 1 3 | |
# 48 "../../third_party/llvm-build/Release+Asserts/lib/clang/16.0.0/include/stddef.h" 3 | |
#undef __need_size_t | |
# 18 "../../buildtools/third_party/libc++/trunk/include/stddef.h" 2 3 | |
# 24 "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/strings.h" 2 3 4 | |
extern "C" { | |
extern int bcmp (const void *__s1, const void *__s2, size_t __n) | |
throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); | |
extern void bcopy (const void *__src, void *__dest, size_t __n) | |
throw () __attribute__ ((__nonnull__ (1, 2))); | |
extern void bzero (void *__s, size_t __n) throw () __attribute__ ((__nonnull__ (1))); | |
# 68 "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/strings.h" 3 4 | |
extern char *index (const char *__s, int __c) | |
throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); | |
# 96 "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/strings.h" 3 4 | |
extern char *rindex (const char *__s, int __c) | |
throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); | |
extern int ffs (int __i) throw () __attribute__ ((__const__)); | |
extern int ffsl (long int __l) throw () __attribute__ ((__const__)); | |
__extension__ extern int ffsll (long long int __ll) | |
throw () __attribute__ ((__const__)); | |
extern int strcasecmp (const char *__s1, const char *__s2) | |
throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); | |
extern int strncasecmp (const char *__s1, const char *__s2, size_t __n) | |
throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); | |
extern int strcasecmp_l (const char *__s1, const char *__s2, locale_t __loc) | |
throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2, 3))); | |
extern int strncasecmp_l (const char *__s1, const char *__s2, | |
size_t __n, locale_t __loc) | |
throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2, 4))); | |
} | |
# 1 "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/x86_64-linux-gnu/bits/strings_fortified.h" 1 3 4 | |
# 20 "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/x86_64-linux-gnu/bits/strings_fortified.h" 3 4 | |
#define __STRINGS_FORTIFIED 1 | |
extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) void | |
bcopy (const void *__src, void *__dest, size_t __len) throw () | |
{ | |
(void) __builtin___memmove_chk (__dest, __src, __len, __builtin_object_size (__dest, 0)); | |
} | |
extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) void | |
bzero (void *__dest, size_t __len) throw () | |
{ | |
(void) __builtin___memset_chk (__dest, '\0', __len, __builtin_object_size (__dest, 0)); | |
} | |
# 145 "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/strings.h" 2 3 4 | |
# 433 "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/string.h" 2 3 4 | |
extern void explicit_bzero (void *__s, size_t __n) throw () __attribute__ ((__nonnull__ (1))); | |
extern char *strsep (char **__restrict __stringp, | |
const char *__restrict __delim) | |
throw () __attribute__ ((__nonnull__ (1, 2))); | |
extern char *strsignal (int __sig) throw (); | |
extern char *__stpcpy (char *__restrict __dest, const char *__restrict __src) | |
throw () __attribute__ ((__nonnull__ (1, 2))); | |
extern char *stpcpy (char *__restrict __dest, const char *__restrict __src) | |
throw () __attribute__ ((__nonnull__ (1, 2))); | |
extern char *__stpncpy (char *__restrict __dest, | |
const char *__restrict __src, size_t __n) | |
throw () __attribute__ ((__nonnull__ (1, 2))); | |
extern char *stpncpy (char *__restrict __dest, | |
const char *__restrict __src, size_t __n) | |
throw () __attribute__ ((__nonnull__ (1, 2))); | |
extern int strverscmp (const char *__s1, const char *__s2) | |
throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); | |
extern char *strfry (char *__string) throw () __attribute__ ((__nonnull__ (1))); | |
extern void *memfrob (void *__s, size_t __n) throw () __attribute__ ((__nonnull__ (1))); | |
extern "C++" char *basename (char *__filename) | |
throw () __asm ("basename") __attribute__ ((__nonnull__ (1))); | |
extern "C++" const char *basename (const char *__filename) | |
throw () __asm ("basename") __attribute__ ((__nonnull__ (1))); | |
# 495 "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/string.h" 3 4 | |
# 1 "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/x86_64-linux-gnu/bits/string_fortified.h" 1 3 4 | |
# 19 "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/x86_64-linux-gnu/bits/string_fortified.h" 3 4 | |
#define _BITS_STRING_FORTIFIED_H 1 | |
extern void __warn_memset_zero_len (void); | |
extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) void * | |
memcpy (void *__restrict __dest, const void *__restrict __src, size_t __len) throw () | |
{ | |
return __builtin___memcpy_chk (__dest, __src, __len, __builtin_object_size (__dest, 0)); | |
} | |
extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) void * | |
memmove (void *__dest, const void *__src, size_t __len) throw () | |
{ | |
return __builtin___memmove_chk (__dest, __src, __len, __builtin_object_size (__dest, 0)); | |
} | |
extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) void * | |
mempcpy (void *__restrict __dest, const void *__restrict __src, size_t __len) throw () | |
{ | |
return __builtin___mempcpy_chk (__dest, __src, __len, __builtin_object_size (__dest, 0)); | |
} | |
# 58 "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/x86_64-linux-gnu/bits/string_fortified.h" 3 4 | |
extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) void * | |
memset (void *__dest, int __ch, size_t __len) throw () | |
{ | |
if (__builtin_constant_p (__len) && __len == 0 | |
&& (!__builtin_constant_p (__ch) || __ch != 0)) | |
{ | |
__warn_memset_zero_len (); | |
return __dest; | |
} | |
return __builtin___memset_chk (__dest, __ch, __len, __builtin_object_size (__dest, 0)); | |
} | |
void __explicit_bzero_chk (void *__dest, size_t __len, size_t __destlen) | |
throw () __attribute__ ((__nonnull__ (1))); | |
extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) void | |
explicit_bzero (void *__dest, size_t __len) throw () | |
{ | |
__explicit_bzero_chk (__dest, __len, __builtin_object_size (__dest, 0)); | |
} | |
extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) char * | |
strcpy (char *__restrict __dest, const char *__restrict __src) throw () | |
{ | |
return __builtin___strcpy_chk (__dest, __src, __builtin_object_size (__dest, 2 > 1)); | |
} | |
extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) char * | |
stpcpy (char *__restrict __dest, const char *__restrict __src) throw () | |
{ | |
return __builtin___stpcpy_chk (__dest, __src, __builtin_object_size (__dest, 2 > 1)); | |
} | |
extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) char * | |
strncpy (char *__restrict __dest, const char *__restrict __src, size_t __len) throw () | |
{ | |
return __builtin___strncpy_chk (__dest, __src, __len, __builtin_object_size (__dest, 2 > 1)); | |
} | |
extern char *__stpncpy_chk (char *__dest, const char *__src, size_t __n, | |
size_t __destlen) throw (); | |
extern char *__stpncpy_alias (char *__dest, const char *__src, size_t __n) throw () __asm__ ("" "stpncpy"); | |
extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) char * | |
stpncpy (char *__dest, const char *__src, size_t __n) throw () | |
{ | |
if (__builtin_object_size (__dest, 2 > 1) != (size_t) -1 | |
&& (!__builtin_constant_p (__n) || __n > __builtin_object_size (__dest, 2 > 1))) | |
return __stpncpy_chk (__dest, __src, __n, __builtin_object_size (__dest, 2 > 1)); | |
return __stpncpy_alias (__dest, __src, __n); | |
} | |
extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) char * | |
strcat (char *__restrict __dest, const char *__restrict __src) throw () | |
{ | |
return __builtin___strcat_chk (__dest, __src, __builtin_object_size (__dest, 2 > 1)); | |
} | |
extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) char * | |
strncat (char *__restrict __dest, const char *__restrict __src, size_t __len) throw () | |
{ | |
return __builtin___strncat_chk (__dest, __src, __len, __builtin_object_size (__dest, 2 > 1)); | |
} | |
# 496 "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/string.h" 2 3 4 | |
} | |
# 61 "../../buildtools/third_party/libc++/trunk/include/string.h" 2 3 | |
#define _LIBCPP_STRING_H_HAS_CONST_OVERLOADS | |
# 63 "../../buildtools/third_party/libc++/trunk/include/cstring" 2 3 | |
# 74 "../../buildtools/third_party/libc++/trunk/include/cstring" 3 | |
namespace std { inline namespace Cr { | |
using ::size_t __attribute__((__using_if_exists__)); | |
using ::memcpy __attribute__((__using_if_exists__)); | |
using ::memmove __attribute__((__using_if_exists__)); | |
using ::strcpy __attribute__((__using_if_exists__)); | |
using ::strncpy __attribute__((__using_if_exists__)); | |
using ::strcat __attribute__((__using_if_exists__)); | |
using ::strncat __attribute__((__using_if_exists__)); | |
using ::memcmp __attribute__((__using_if_exists__)); | |
using ::strcmp __attribute__((__using_if_exists__)); | |
using ::strncmp __attribute__((__using_if_exists__)); | |
using ::strcoll __attribute__((__using_if_exists__)); | |
using ::strxfrm __attribute__((__using_if_exists__)); | |
using ::memchr __attribute__((__using_if_exists__)); | |
using ::strchr __attribute__((__using_if_exists__)); | |
using ::strcspn __attribute__((__using_if_exists__)); | |
using ::strpbrk __attribute__((__using_if_exists__)); | |
using ::strrchr __attribute__((__using_if_exists__)); | |
using ::strspn __attribute__((__using_if_exists__)); | |
using ::strstr __attribute__((__using_if_exists__)); | |
using ::strtok __attribute__((__using_if_exists__)); | |
using ::memset __attribute__((__using_if_exists__)); | |
using ::strerror __attribute__((__using_if_exists__)); | |
using ::strlen __attribute__((__using_if_exists__)); | |
}} | |
# 1712 "../../buildtools/third_party/libc++/trunk/include/algorithm" 2 3 | |
# 1 "../../buildtools/third_party/libc++/trunk/include/__algorithm/adjacent_find.h" 1 3 | |
# 11 "../../buildtools/third_party/libc++/trunk/include/__algorithm/adjacent_find.h" 3 | |
#define _LIBCPP___ALGORITHM_ADJACENT_FIND_H | |
# 1 "../../buildtools/third_party/libc++/trunk/include/__algorithm/comp.h" 1 3 | |
# 10 "../../buildtools/third_party/libc++/trunk/include/__algorithm/comp.h" 3 | |
#define _LIBCPP___ALGORITHM_COMP_H | |
# 16 "../../buildtools/third_party/libc++/trunk/include/__algorithm/comp.h" 3 | |
namespace std { inline namespace Cr { | |
template <class _T1, class _T2 = _T1> | |
struct __equal_to | |
{ | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) constexpr bool operator()(const _T1& __x, const _T1& __y) const {return __x == __y;} | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) constexpr bool operator()(const _T1& __x, const _T2& __y) const {return __x == __y;} | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) constexpr bool operator()(const _T2& __x, const _T1& __y) const {return __x == __y;} | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) constexpr bool operator()(const _T2& __x, const _T2& __y) const {return __x == __y;} | |
}; | |
template <class _T1> | |
struct __equal_to<_T1, _T1> | |
{ | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) constexpr | |
bool operator()(const _T1& __x, const _T1& __y) const {return __x == __y;} | |
}; | |
template <class _T1> | |
struct __equal_to<const _T1, _T1> | |
{ | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) constexpr | |
bool operator()(const _T1& __x, const _T1& __y) const {return __x == __y;} | |
}; | |
template <class _T1> | |
struct __equal_to<_T1, const _T1> | |
{ | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) constexpr | |
bool operator()(const _T1& __x, const _T1& __y) const {return __x == __y;} | |
}; | |
template <class _T1, class _T2 = _T1> | |
struct __less | |
{ | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) constexpr | |
bool operator()(const _T1& __x, const _T1& __y) const {return __x < __y;} | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) constexpr | |
bool operator()(const _T1& __x, const _T2& __y) const {return __x < __y;} | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) constexpr | |
bool operator()(const _T2& __x, const _T1& __y) const {return __x < __y;} | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) constexpr | |
bool operator()(const _T2& __x, const _T2& __y) const {return __x < __y;} | |
}; | |
template <class _T1> | |
struct __less<_T1, _T1> | |
{ | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) constexpr | |
bool operator()(const _T1& __x, const _T1& __y) const {return __x < __y;} | |
}; | |
template <class _T1> | |
struct __less<const _T1, _T1> | |
{ | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) constexpr | |
bool operator()(const _T1& __x, const _T1& __y) const {return __x < __y;} | |
}; | |
template <class _T1> | |
struct __less<_T1, const _T1> | |
{ | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) constexpr | |
bool operator()(const _T1& __x, const _T1& __y) const {return __x < __y;} | |
}; | |
}} | |
# 14 "../../buildtools/third_party/libc++/trunk/include/__algorithm/adjacent_find.h" 2 3 | |
# 1 "../../buildtools/third_party/libc++/trunk/include/__algorithm/iterator_operations.h" 1 3 | |
# 10 "../../buildtools/third_party/libc++/trunk/include/__algorithm/iterator_operations.h" 3 | |
#define _LIBCPP___ALGORITHM_ITERATOR_OPERATIONS_H | |
# 1 "../../buildtools/third_party/libc++/trunk/include/__algorithm/iter_swap.h" 1 3 | |
# 10 "../../buildtools/third_party/libc++/trunk/include/__algorithm/iter_swap.h" 3 | |
#define _LIBCPP___ALGORITHM_ITER_SWAP_H | |
# 1 "../../buildtools/third_party/libc++/trunk/include/__utility/swap.h" 1 3 | |
# 10 "../../buildtools/third_party/libc++/trunk/include/__utility/swap.h" 3 | |
#define _LIBCPP___UTILITY_SWAP_H | |
# 1 "../../buildtools/third_party/libc++/trunk/include/__utility/move.h" 1 3 | |
# 11 "../../buildtools/third_party/libc++/trunk/include/__utility/move.h" 3 | |
#define _LIBCPP___UTILITY_MOVE_H | |
# 18 "../../buildtools/third_party/libc++/trunk/include/__utility/move.h" 3 | |
namespace std { inline namespace Cr { | |
template <class _Tp> | |
[[nodiscard]] inline __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) constexpr __libcpp_remove_reference_t<_Tp>&& | |
move(_Tp&& __t) noexcept { | |
typedef __attribute__((__nodebug__)) __libcpp_remove_reference_t<_Tp> _Up; | |
return static_cast<_Up&&>(__t); | |
} | |
template <class _Tp> | |
using __move_if_noexcept_result_t = | |
typename conditional<!is_nothrow_move_constructible<_Tp>::value && is_copy_constructible<_Tp>::value, const _Tp&, | |
_Tp&&>::type; | |
template <class _Tp> | |
[[nodiscard]] inline __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) constexpr __move_if_noexcept_result_t<_Tp> | |
move_if_noexcept(_Tp& __x) noexcept { | |
return std::move(__x); | |
} | |
}} | |
# 15 "../../buildtools/third_party/libc++/trunk/include/__utility/swap.h" 2 3 | |
# 20 "../../buildtools/third_party/libc++/trunk/include/__utility/swap.h" 3 | |
namespace std { inline namespace Cr { | |
template <class _Tp> | |
using __swap_result_t = typename enable_if<is_move_constructible<_Tp>::value && is_move_assignable<_Tp>::value>::type; | |
template <class _Tp> | |
inline __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) __swap_result_t<_Tp> swap(_Tp& __x, _Tp& __y) | |
noexcept(is_nothrow_move_constructible<_Tp>::value&& is_nothrow_move_assignable<_Tp>::value) { | |
_Tp __t(std::move(__x)); | |
__x = std::move(__y); | |
__y = std::move(__t); | |
} | |
template <class _Tp, size_t _Np> | |
inline __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) typename enable_if<__is_swappable<_Tp>::value>::type | |
swap(_Tp (&__a)[_Np], _Tp (&__b)[_Np]) noexcept(__is_nothrow_swappable<_Tp>::value) { | |
for (size_t __i = 0; __i != _Np; ++__i) { | |
swap(__a[__i], __b[__i]); | |
} | |
} | |
}} | |
# 15 "../../buildtools/third_party/libc++/trunk/include/__algorithm/iter_swap.h" 2 3 | |
# 18 "../../buildtools/third_party/libc++/trunk/include/__algorithm/iter_swap.h" 3 | |
namespace std { inline namespace Cr { | |
template <class _ForwardIterator1, class _ForwardIterator2> | |
inline __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) void iter_swap(_ForwardIterator1 __a, | |
_ForwardIterator2 __b) | |
noexcept(noexcept(swap(*declval<_ForwardIterator1>(), *declval<_ForwardIterator2>()))) { | |
swap(*__a, *__b); | |
} | |
}} | |
# 13 "../../buildtools/third_party/libc++/trunk/include/__algorithm/iterator_operations.h" 2 3 | |
# 1 "../../buildtools/third_party/libc++/trunk/include/__algorithm/ranges_iterator_concept.h" 1 3 | |
# 10 "../../buildtools/third_party/libc++/trunk/include/__algorithm/ranges_iterator_concept.h" 3 | |
#define _LIBCPP___ALGORITHM_RANGES_ITERATOR_CONCEPT_H | |
# 1 "../../buildtools/third_party/libc++/trunk/include/__iterator/concepts.h" 1 3 | |
# 11 "../../buildtools/third_party/libc++/trunk/include/__iterator/concepts.h" 3 | |
#define _LIBCPP___ITERATOR_CONCEPTS_H | |
# 1 "../../buildtools/third_party/libc++/trunk/include/__iterator/incrementable_traits.h" 1 3 | |
# 11 "../../buildtools/third_party/libc++/trunk/include/__iterator/incrementable_traits.h" 3 | |
#define _LIBCPP___ITERATOR_INCREMENTABLE_TRAITS_H | |
# 1 "../../buildtools/third_party/libc++/trunk/include/__type_traits/is_primary_template.h" 1 3 | |
# 10 "../../buildtools/third_party/libc++/trunk/include/__type_traits/is_primary_template.h" 3 | |
#define _LIBCPP___TYPE_TRAITS_IS_PRIMARY_TEMPLATE_H | |
# 1 "../../buildtools/third_party/libc++/trunk/include/__type_traits/is_valid_expansion.h" 1 3 | |
# 10 "../../buildtools/third_party/libc++/trunk/include/__type_traits/is_valid_expansion.h" 3 | |
#define _LIBCPP___TYPE_TRAITS_IS_VALID_EXPANSION_H | |
# 17 "../../buildtools/third_party/libc++/trunk/include/__type_traits/is_valid_expansion.h" 3 | |
namespace std { inline namespace Cr { | |
template <template <class...> class _Templ, class ..._Args, class = _Templ<_Args...> > | |
true_type __sfinae_test_impl(int); | |
template <template <class...> class, class ...> | |
false_type __sfinae_test_impl(...); | |
template <template <class ...> class _Templ, class ..._Args> | |
using _IsValidExpansion __attribute__((__nodebug__)) = decltype(__sfinae_test_impl<_Templ, _Args...>(0)); | |
}} | |
# 16 "../../buildtools/third_party/libc++/trunk/include/__type_traits/is_primary_template.h" 2 3 | |
# 19 "../../buildtools/third_party/libc++/trunk/include/__type_traits/is_primary_template.h" 3 | |
namespace std { inline namespace Cr { | |
template <class _Tp> | |
using __test_for_primary_template = __enable_if_t< | |
_IsSame<_Tp, typename _Tp::__primary_template>::value | |
>; | |
template <class _Tp> | |
using __is_primary_template = _IsValidExpansion< | |
__test_for_primary_template, _Tp | |
>; | |
}} | |
# 15 "../../buildtools/third_party/libc++/trunk/include/__iterator/incrementable_traits.h" 2 3 | |
# 1 "../../buildtools/third_party/libc++/trunk/include/concepts" 1 3 | |
# 11 "../../buildtools/third_party/libc++/trunk/include/concepts" 3 | |
#define _LIBCPP_CONCEPTS | |
# 133 "../../buildtools/third_party/libc++/trunk/include/concepts" 3 | |
# 1 "../../buildtools/third_party/libc++/trunk/include/__concepts/arithmetic.h" 1 3 | |
# 10 "../../buildtools/third_party/libc++/trunk/include/__concepts/arithmetic.h" 3 | |
#define _LIBCPP___CONCEPTS_ARITHMETIC_H | |
# 1 "../../buildtools/third_party/libc++/trunk/include/__type_traits/is_signed_integer.h" 1 3 | |
# 10 "../../buildtools/third_party/libc++/trunk/include/__type_traits/is_signed_integer.h" 3 | |
#define _LIBCPP___TYPE_TRAITS_IS_SIGNED_INTEGER_H | |
# 17 "../../buildtools/third_party/libc++/trunk/include/__type_traits/is_signed_integer.h" 3 | |
namespace std { inline namespace Cr { | |
template <class _Tp> struct __libcpp_is_signed_integer : public false_type {}; | |
template <> struct __libcpp_is_signed_integer<signed char> : public true_type {}; | |
template <> struct __libcpp_is_signed_integer<signed short> : public true_type {}; | |
template <> struct __libcpp_is_signed_integer<signed int> : public true_type {}; | |
template <> struct __libcpp_is_signed_integer<signed long> : public true_type {}; | |
template <> struct __libcpp_is_signed_integer<signed long long> : public true_type {}; | |
template <> struct __libcpp_is_signed_integer<__int128_t> : public true_type {}; | |
}} | |
# 14 "../../buildtools/third_party/libc++/trunk/include/__concepts/arithmetic.h" 2 3 | |
# 1 "../../buildtools/third_party/libc++/trunk/include/__type_traits/is_unsigned_integer.h" 1 3 | |
# 10 "../../buildtools/third_party/libc++/trunk/include/__type_traits/is_unsigned_integer.h" 3 | |
#define _LIBCPP___TYPE_TRAITS_IS_UNSIGNED_INTEGER_H | |
# 17 "../../buildtools/third_party/libc++/trunk/include/__type_traits/is_unsigned_integer.h" 3 | |
namespace std { inline namespace Cr { | |
template <class _Tp> struct __libcpp_is_unsigned_integer : public false_type {}; | |
template <> struct __libcpp_is_unsigned_integer<unsigned char> : public true_type {}; | |
template <> struct __libcpp_is_unsigned_integer<unsigned short> : public true_type {}; | |
template <> struct __libcpp_is_unsigned_integer<unsigned int> : public true_type {}; | |
template <> struct __libcpp_is_unsigned_integer<unsigned long> : public true_type {}; | |
template <> struct __libcpp_is_unsigned_integer<unsigned long long> : public true_type {}; | |
template <> struct __libcpp_is_unsigned_integer<__uint128_t> : public true_type {}; | |
}} | |
# 15 "../../buildtools/third_party/libc++/trunk/include/__concepts/arithmetic.h" 2 3 | |
# 19 "../../buildtools/third_party/libc++/trunk/include/__concepts/arithmetic.h" 3 | |
namespace std { inline namespace Cr { | |
# 48 "../../buildtools/third_party/libc++/trunk/include/__concepts/arithmetic.h" 3 | |
}} | |
# 134 "../../buildtools/third_party/libc++/trunk/include/concepts" 2 3 | |
# 1 "../../buildtools/third_party/libc++/trunk/include/__concepts/assignable.h" 1 3 | |
# 10 "../../buildtools/third_party/libc++/trunk/include/__concepts/assignable.h" 3 | |
#define _LIBCPP___CONCEPTS_ASSIGNABLE_H | |
# 1 "../../buildtools/third_party/libc++/trunk/include/__concepts/common_reference_with.h" 1 3 | |
# 10 "../../buildtools/third_party/libc++/trunk/include/__concepts/common_reference_with.h" 3 | |
#define _LIBCPP___CONCEPTS_COMMON_REFERENCE_WITH_H | |
# 1 "../../buildtools/third_party/libc++/trunk/include/__concepts/convertible_to.h" 1 3 | |
# 10 "../../buildtools/third_party/libc++/trunk/include/__concepts/convertible_to.h" 3 | |
#define _LIBCPP___CONCEPTS_CONVERTIBLE_TO_H | |
# 18 "../../buildtools/third_party/libc++/trunk/include/__concepts/convertible_to.h" 3 | |
namespace std { inline namespace Cr { | |
# 35 "../../buildtools/third_party/libc++/trunk/include/__concepts/convertible_to.h" 3 | |
}} | |
# 13 "../../buildtools/third_party/libc++/trunk/include/__concepts/common_reference_with.h" 2 3 | |
# 1 "../../buildtools/third_party/libc++/trunk/include/__concepts/same_as.h" 1 3 | |
# 10 "../../buildtools/third_party/libc++/trunk/include/__concepts/same_as.h" 3 | |
#define _LIBCPP___CONCEPTS_SAME_AS_H | |
# 17 "../../buildtools/third_party/libc++/trunk/include/__concepts/same_as.h" 3 | |
namespace std { inline namespace Cr { | |
# 33 "../../buildtools/third_party/libc++/trunk/include/__concepts/same_as.h" 3 | |
}} | |
# 14 "../../buildtools/third_party/libc++/trunk/include/__concepts/common_reference_with.h" 2 3 | |
# 19 "../../buildtools/third_party/libc++/trunk/include/__concepts/common_reference_with.h" 3 | |
namespace std { inline namespace Cr { | |
# 35 "../../buildtools/third_party/libc++/trunk/include/__concepts/common_reference_with.h" 3 | |
}} | |
# 13 "../../buildtools/third_party/libc++/trunk/include/__concepts/assignable.h" 2 3 | |
# 21 "../../buildtools/third_party/libc++/trunk/include/__concepts/assignable.h" 3 | |
namespace std { inline namespace Cr { | |
# 39 "../../buildtools/third_party/libc++/trunk/include/__concepts/assignable.h" 3 | |
}} | |
# 135 "../../buildtools/third_party/libc++/trunk/include/concepts" 2 3 | |
# 1 "../../buildtools/third_party/libc++/trunk/include/__concepts/boolean_testable.h" 1 3 | |
# 10 "../../buildtools/third_party/libc++/trunk/include/__concepts/boolean_testable.h" 3 | |
#define _LIBCPP___CONCEPTS_BOOLEAN_TESTABLE_H | |
# 18 "../../buildtools/third_party/libc++/trunk/include/__concepts/boolean_testable.h" 3 | |
namespace std { inline namespace Cr { | |
# 36 "../../buildtools/third_party/libc++/trunk/include/__concepts/boolean_testable.h" 3 | |
}} | |
# 136 "../../buildtools/third_party/libc++/trunk/include/concepts" 2 3 | |
# 1 "../../buildtools/third_party/libc++/trunk/include/__concepts/class_or_enum.h" 1 3 | |
# 10 "../../buildtools/third_party/libc++/trunk/include/__concepts/class_or_enum.h" 3 | |
#define _LIBCPP___CONCEPTS_CLASS_OR_ENUM_H | |
# 17 "../../buildtools/third_party/libc++/trunk/include/__concepts/class_or_enum.h" 3 | |
namespace std { inline namespace Cr { | |
# 35 "../../buildtools/third_party/libc++/trunk/include/__concepts/class_or_enum.h" 3 | |
}} | |
# 137 "../../buildtools/third_party/libc++/trunk/include/concepts" 2 3 | |
# 1 "../../buildtools/third_party/libc++/trunk/include/__concepts/common_with.h" 1 3 | |
# 10 "../../buildtools/third_party/libc++/trunk/include/__concepts/common_with.h" 3 | |
#define _LIBCPP___CONCEPTS_COMMON_WITH_H | |
# 19 "../../buildtools/third_party/libc++/trunk/include/__concepts/common_with.h" 3 | |
namespace std { inline namespace Cr { | |
# 45 "../../buildtools/third_party/libc++/trunk/include/__concepts/common_with.h" 3 | |
}} | |
# 139 "../../buildtools/third_party/libc++/trunk/include/concepts" 2 3 | |
# 1 "../../buildtools/third_party/libc++/trunk/include/__concepts/constructible.h" 1 3 | |
# 10 "../../buildtools/third_party/libc++/trunk/include/__concepts/constructible.h" 3 | |
#define _LIBCPP___CONCEPTS_CONSTRUCTIBLE_H | |
# 1 "../../buildtools/third_party/libc++/trunk/include/__concepts/destructible.h" 1 3 | |
# 10 "../../buildtools/third_party/libc++/trunk/include/__concepts/destructible.h" 3 | |
#define _LIBCPP___CONCEPTS_DESTRUCTIBLE_H | |
# 17 "../../buildtools/third_party/libc++/trunk/include/__concepts/destructible.h" 3 | |
namespace std { inline namespace Cr { | |
# 30 "../../buildtools/third_party/libc++/trunk/include/__concepts/destructible.h" 3 | |
}} | |
# 14 "../../buildtools/third_party/libc++/trunk/include/__concepts/constructible.h" 2 3 | |
# 19 "../../buildtools/third_party/libc++/trunk/include/__concepts/constructible.h" 3 | |
namespace std { inline namespace Cr { | |
# 54 "../../buildtools/third_party/libc++/trunk/include/__concepts/constructible.h" 3 | |
}} | |
# 140 "../../buildtools/third_party/libc++/trunk/include/concepts" 2 3 | |
# 1 "../../buildtools/third_party/libc++/trunk/include/__concepts/copyable.h" 1 3 | |
# 10 "../../buildtools/third_party/libc++/trunk/include/__concepts/copyable.h" 3 | |
#define _LIBCPP___CONCEPTS_COPYABLE_H | |
# 1 "../../buildtools/third_party/libc++/trunk/include/__concepts/movable.h" 1 3 | |
# 10 "../../buildtools/third_party/libc++/trunk/include/__concepts/movable.h" 3 | |
#define _LIBCPP___CONCEPTS_MOVABLE_H | |
# 1 "../../buildtools/third_party/libc++/trunk/include/__concepts/swappable.h" 1 3 | |
# 10 "../../buildtools/third_party/libc++/trunk/include/__concepts/swappable.h" 3 | |
#define _LIBCPP___CONCEPTS_SWAPPABLE_H | |
# 1 "../../buildtools/third_party/libc++/trunk/include/__utility/exchange.h" 1 3 | |
# 10 "../../buildtools/third_party/libc++/trunk/include/__utility/exchange.h" 3 | |
#define _LIBCPP___UTILITY_EXCHANGE_H | |
# 19 "../../buildtools/third_party/libc++/trunk/include/__utility/exchange.h" 3 | |
namespace std { inline namespace Cr { | |
template<class _T1, class _T2 = _T1> | |
inline __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) | |
_T1 exchange(_T1& __obj, _T2&& __new_value) | |
noexcept(is_nothrow_move_constructible<_T1>::value && is_nothrow_assignable<_T1&, _T2>::value) | |
{ | |
_T1 __old_value = std::move(__obj); | |
__obj = std::forward<_T2>(__new_value); | |
return __old_value; | |
} | |
}} | |
# 18 "../../buildtools/third_party/libc++/trunk/include/__concepts/swappable.h" 2 3 | |
# 25 "../../buildtools/third_party/libc++/trunk/include/__concepts/swappable.h" 3 | |
namespace std { inline namespace Cr { | |
# 115 "../../buildtools/third_party/libc++/trunk/include/__concepts/swappable.h" 3 | |
}} | |
# 15 "../../buildtools/third_party/libc++/trunk/include/__concepts/movable.h" 2 3 | |
# 20 "../../buildtools/third_party/libc++/trunk/include/__concepts/movable.h" 3 | |
namespace std { inline namespace Cr { | |
# 37 "../../buildtools/third_party/libc++/trunk/include/__concepts/movable.h" 3 | |
}} | |
# 15 "../../buildtools/third_party/libc++/trunk/include/__concepts/copyable.h" 2 3 | |
# 19 "../../buildtools/third_party/libc++/trunk/include/__concepts/copyable.h" 3 | |
namespace std { inline namespace Cr { | |
# 37 "../../buildtools/third_party/libc++/trunk/include/__concepts/copyable.h" 3 | |
}} | |
# 142 "../../buildtools/third_party/libc++/trunk/include/concepts" 2 3 | |
# 1 "../../buildtools/third_party/libc++/trunk/include/__concepts/derived_from.h" 1 3 | |
# 10 "../../buildtools/third_party/libc++/trunk/include/__concepts/derived_from.h" 3 | |
#define _LIBCPP___CONCEPTS_DERIVED_FROM_H | |
# 17 "../../buildtools/third_party/libc++/trunk/include/__concepts/derived_from.h" 3 | |
namespace std { inline namespace Cr { | |
# 32 "../../buildtools/third_party/libc++/trunk/include/__concepts/derived_from.h" 3 | |
}} | |
# 143 "../../buildtools/third_party/libc++/trunk/include/concepts" 2 3 | |
# 1 "../../buildtools/third_party/libc++/trunk/include/__concepts/different_from.h" 1 3 | |
# 10 "../../buildtools/third_party/libc++/trunk/include/__concepts/different_from.h" 3 | |
#define _LIBCPP___CONCEPTS_DIFFERENT_FROM_H | |
# 18 "../../buildtools/third_party/libc++/trunk/include/__concepts/different_from.h" 3 | |
namespace std { inline namespace Cr { | |
# 29 "../../buildtools/third_party/libc++/trunk/include/__concepts/different_from.h" 3 | |
}} | |
# 145 "../../buildtools/third_party/libc++/trunk/include/concepts" 2 3 | |
# 1 "../../buildtools/third_party/libc++/trunk/include/__concepts/equality_comparable.h" 1 3 | |
# 10 "../../buildtools/third_party/libc++/trunk/include/__concepts/equality_comparable.h" 3 | |
#define _LIBCPP___CONCEPTS_EQUALITY_COMPARABLE_H | |
# 20 "../../buildtools/third_party/libc++/trunk/include/__concepts/equality_comparable.h" 3 | |
namespace std { inline namespace Cr { | |
# 52 "../../buildtools/third_party/libc++/trunk/include/__concepts/equality_comparable.h" 3 | |
}} | |
# 146 "../../buildtools/third_party/libc++/trunk/include/concepts" 2 3 | |
# 1 "../../buildtools/third_party/libc++/trunk/include/__concepts/invocable.h" 1 3 | |
# 10 "../../buildtools/third_party/libc++/trunk/include/__concepts/invocable.h" 3 | |
#define _LIBCPP___CONCEPTS_INVOCABLE_H | |
# 19 "../../buildtools/third_party/libc++/trunk/include/__concepts/invocable.h" 3 | |
namespace std { inline namespace Cr { | |
# 39 "../../buildtools/third_party/libc++/trunk/include/__concepts/invocable.h" 3 | |
}} | |
# 147 "../../buildtools/third_party/libc++/trunk/include/concepts" 2 3 | |
# 1 "../../buildtools/third_party/libc++/trunk/include/__concepts/predicate.h" 1 3 | |
# 10 "../../buildtools/third_party/libc++/trunk/include/__concepts/predicate.h" 3 | |
#define _LIBCPP___CONCEPTS_PREDICATE_H | |
# 19 "../../buildtools/third_party/libc++/trunk/include/__concepts/predicate.h" 3 | |
namespace std { inline namespace Cr { | |
# 33 "../../buildtools/third_party/libc++/trunk/include/__concepts/predicate.h" 3 | |
}} | |
# 149 "../../buildtools/third_party/libc++/trunk/include/concepts" 2 3 | |
# 1 "../../buildtools/third_party/libc++/trunk/include/__concepts/regular.h" 1 3 | |
# 10 "../../buildtools/third_party/libc++/trunk/include/__concepts/regular.h" 3 | |
#define _LIBCPP___CONCEPTS_REGULAR_H | |
# 1 "../../buildtools/third_party/libc++/trunk/include/__concepts/semiregular.h" 1 3 | |
# 10 "../../buildtools/third_party/libc++/trunk/include/__concepts/semiregular.h" 3 | |
#define _LIBCPP___CONCEPTS_SEMIREGULAR_H | |
# 18 "../../buildtools/third_party/libc++/trunk/include/__concepts/semiregular.h" 3 | |
namespace std { inline namespace Cr { | |
# 31 "../../buildtools/third_party/libc++/trunk/include/__concepts/semiregular.h" 3 | |
}} | |
# 14 "../../buildtools/third_party/libc++/trunk/include/__concepts/regular.h" 2 3 | |
# 18 "../../buildtools/third_party/libc++/trunk/include/__concepts/regular.h" 3 | |
namespace std { inline namespace Cr { | |
# 31 "../../buildtools/third_party/libc++/trunk/include/__concepts/regular.h" 3 | |
}} | |
# 150 "../../buildtools/third_party/libc++/trunk/include/concepts" 2 3 | |
# 1 "../../buildtools/third_party/libc++/trunk/include/__concepts/relation.h" 1 3 | |
# 10 "../../buildtools/third_party/libc++/trunk/include/__concepts/relation.h" 3 | |
#define _LIBCPP___CONCEPTS_RELATION_H | |
# 17 "../../buildtools/third_party/libc++/trunk/include/__concepts/relation.h" 3 | |
namespace std { inline namespace Cr { | |
# 42 "../../buildtools/third_party/libc++/trunk/include/__concepts/relation.h" 3 | |
}} | |
# 151 "../../buildtools/third_party/libc++/trunk/include/concepts" 2 3 | |
# 1 "../../buildtools/third_party/libc++/trunk/include/__concepts/totally_ordered.h" 1 3 | |
# 10 "../../buildtools/third_party/libc++/trunk/include/__concepts/totally_ordered.h" 3 | |
#define _LIBCPP___CONCEPTS_TOTALLY_ORDERED_H | |
# 19 "../../buildtools/third_party/libc++/trunk/include/__concepts/totally_ordered.h" 3 | |
namespace std { inline namespace Cr { | |
# 55 "../../buildtools/third_party/libc++/trunk/include/__concepts/totally_ordered.h" 3 | |
}} | |
# 155 "../../buildtools/third_party/libc++/trunk/include/concepts" 2 3 | |
# 160 "../../buildtools/third_party/libc++/trunk/include/concepts" 3 | |
# 16 "../../buildtools/third_party/libc++/trunk/include/__iterator/incrementable_traits.h" 2 3 | |
# 21 "../../buildtools/third_party/libc++/trunk/include/__iterator/incrementable_traits.h" 3 | |
namespace std { inline namespace Cr { | |
# 72 "../../buildtools/third_party/libc++/trunk/include/__iterator/incrementable_traits.h" 3 | |
}} | |
# 15 "../../buildtools/third_party/libc++/trunk/include/__iterator/concepts.h" 2 3 | |
# 1 "../../buildtools/third_party/libc++/trunk/include/__iterator/iter_move.h" 1 3 | |
# 11 "../../buildtools/third_party/libc++/trunk/include/__iterator/iter_move.h" 3 | |
#define _LIBCPP___ITERATOR_ITER_MOVE_H | |
# 1 "../../buildtools/third_party/libc++/trunk/include/__iterator/iterator_traits.h" 1 3 | |
# 11 "../../buildtools/third_party/libc++/trunk/include/__iterator/iterator_traits.h" 3 | |
#define _LIBCPP___ITERATOR_ITERATOR_TRAITS_H | |
# 1 "../../buildtools/third_party/libc++/trunk/include/__iterator/readable_traits.h" 1 3 | |
# 11 "../../buildtools/third_party/libc++/trunk/include/__iterator/readable_traits.h" 3 | |
#define _LIBCPP___ITERATOR_READABLE_TRAITS_H | |
# 19 "../../buildtools/third_party/libc++/trunk/include/__iterator/readable_traits.h" 3 | |
namespace std { inline namespace Cr { | |
# 84 "../../buildtools/third_party/libc++/trunk/include/__iterator/readable_traits.h" 3 | |
}} | |
# 17 "../../buildtools/third_party/libc++/trunk/include/__iterator/iterator_traits.h" 2 3 | |
# 23 "../../buildtools/third_party/libc++/trunk/include/__iterator/iterator_traits.h" 3 | |
namespace std { inline namespace Cr { | |
# 48 "../../buildtools/third_party/libc++/trunk/include/__iterator/iterator_traits.h" 3 | |
template <class _Iter> | |
struct iterator_traits; | |
struct input_iterator_tag {}; | |
struct output_iterator_tag {}; | |
struct forward_iterator_tag : public input_iterator_tag {}; | |
struct bidirectional_iterator_tag : public forward_iterator_tag {}; | |
struct random_access_iterator_tag : public bidirectional_iterator_tag {}; | |
template <class _Iter> | |
struct __iter_traits_cache { | |
using type = _If< | |
__is_primary_template<iterator_traits<_Iter> >::value, | |
_Iter, | |
iterator_traits<_Iter> | |
>; | |
}; | |
template <class _Iter> | |
using _ITER_TRAITS = typename __iter_traits_cache<_Iter>::type; | |
struct __iter_concept_concept_test { | |
template <class _Iter> | |
using _Apply = typename _ITER_TRAITS<_Iter>::iterator_concept; | |
}; | |
struct __iter_concept_category_test { | |
template <class _Iter> | |
using _Apply = typename _ITER_TRAITS<_Iter>::iterator_category; | |
}; | |
struct __iter_concept_random_fallback { | |
template <class _Iter> | |
using _Apply = __enable_if_t< | |
__is_primary_template<iterator_traits<_Iter> >::value, | |
random_access_iterator_tag | |
>; | |
}; | |
template <class _Iter, class _Tester> struct __test_iter_concept | |
: _IsValidExpansion<_Tester::template _Apply, _Iter>, | |
_Tester | |
{ | |
}; | |
template <class _Iter> | |
struct __iter_concept_cache { | |
using type = _Or< | |
__test_iter_concept<_Iter, __iter_concept_concept_test>, | |
__test_iter_concept<_Iter, __iter_concept_category_test>, | |
__test_iter_concept<_Iter, __iter_concept_random_fallback> | |
>; | |
}; | |
template <class _Iter> | |
using _ITER_CONCEPT = typename __iter_concept_cache<_Iter>::type::template _Apply<_Iter>; | |
template <class _Tp> | |
struct __has_iterator_typedefs | |
{ | |
private: | |
template <class _Up> static false_type __test(...); | |
template <class _Up> static true_type __test(typename __void_t<typename _Up::iterator_category>::type* = 0, | |
typename __void_t<typename _Up::difference_type>::type* = 0, | |
typename __void_t<typename _Up::value_type>::type* = 0, | |
typename __void_t<typename _Up::reference>::type* = 0, | |
typename __void_t<typename _Up::pointer>::type* = 0); | |
public: | |
static const bool value = decltype(__test<_Tp>(0,0,0,0,0))::value; | |
}; | |
template <class _Tp> | |
struct __has_iterator_category | |
{ | |
private: | |
template <class _Up> static false_type __test(...); | |
template <class _Up> static true_type __test(typename _Up::iterator_category* = nullptr); | |
public: | |
static const bool value = decltype(__test<_Tp>(nullptr))::value; | |
}; | |
template <class _Tp> | |
struct __has_iterator_concept | |
{ | |
private: | |
template <class _Up> static false_type __test(...); | |
template <class _Up> static true_type __test(typename _Up::iterator_concept* = nullptr); | |
public: | |
static const bool value = decltype(__test<_Tp>(nullptr))::value; | |
}; | |
# 367 "../../buildtools/third_party/libc++/trunk/include/__iterator/iterator_traits.h" 3 | |
template <class _Iter, bool> struct __iterator_traits {}; | |
template <class _Iter, bool> struct __iterator_traits_impl {}; | |
template <class _Iter> | |
struct __iterator_traits_impl<_Iter, true> | |
{ | |
typedef typename _Iter::difference_type difference_type; | |
typedef typename _Iter::value_type value_type; | |
typedef typename _Iter::pointer pointer; | |
typedef typename _Iter::reference reference; | |
typedef typename _Iter::iterator_category iterator_category; | |
}; | |
template <class _Iter> | |
struct __iterator_traits<_Iter, true> | |
: __iterator_traits_impl | |
< | |
_Iter, | |
is_convertible<typename _Iter::iterator_category, input_iterator_tag>::value || | |
is_convertible<typename _Iter::iterator_category, output_iterator_tag>::value | |
> | |
{}; | |
template <class _Iter> | |
struct iterator_traits | |
: __iterator_traits<_Iter, __has_iterator_typedefs<_Iter>::value> { | |
using __primary_template = iterator_traits; | |
}; | |
template<class _Tp> | |
struct iterator_traits<_Tp*> | |
{ | |
typedef ptrdiff_t difference_type; | |
typedef __remove_cv_t<_Tp> value_type; | |
typedef _Tp* pointer; | |
typedef _Tp& reference; | |
typedef random_access_iterator_tag iterator_category; | |
}; | |
template <class _Tp, class _Up, bool = __has_iterator_category<iterator_traits<_Tp> >::value> | |
struct __has_iterator_category_convertible_to | |
: is_convertible<typename iterator_traits<_Tp>::iterator_category, _Up> | |
{}; | |
template <class _Tp, class _Up> | |
struct __has_iterator_category_convertible_to<_Tp, _Up, false> : false_type {}; | |
template <class _Tp, class _Up, bool = __has_iterator_concept<_Tp>::value> | |
struct __has_iterator_concept_convertible_to | |
: is_convertible<typename _Tp::iterator_concept, _Up> | |
{}; | |
template <class _Tp, class _Up> | |
struct __has_iterator_concept_convertible_to<_Tp, _Up, false> : false_type {}; | |
template <class _Tp> | |
struct __is_cpp17_input_iterator : public __has_iterator_category_convertible_to<_Tp, input_iterator_tag> {}; | |
template <class _Tp> | |
struct __is_cpp17_forward_iterator : public __has_iterator_category_convertible_to<_Tp, forward_iterator_tag> {}; | |
template <class _Tp> | |
struct __is_cpp17_bidirectional_iterator : public __has_iterator_category_convertible_to<_Tp, bidirectional_iterator_tag> {}; | |
template <class _Tp> | |
struct __is_cpp17_random_access_iterator : public __has_iterator_category_convertible_to<_Tp, random_access_iterator_tag> {}; | |
# 462 "../../buildtools/third_party/libc++/trunk/include/__iterator/iterator_traits.h" 3 | |
template <class _Tp> | |
struct __is_cpp17_contiguous_iterator : false_type {}; | |
template <class _Up> | |
struct __is_cpp17_contiguous_iterator<_Up*> : true_type {}; | |
template <class _Iter> | |
class __wrap_iter; | |
template <class _Tp> | |
struct __is_exactly_cpp17_input_iterator | |
: public integral_constant<bool, | |
__has_iterator_category_convertible_to<_Tp, input_iterator_tag>::value && | |
!__has_iterator_category_convertible_to<_Tp, forward_iterator_tag>::value> {}; | |
template <class _Tp> | |
struct __is_exactly_cpp17_forward_iterator | |
: public integral_constant<bool, | |
__has_iterator_category_convertible_to<_Tp, forward_iterator_tag>::value && | |
!__has_iterator_category_convertible_to<_Tp, bidirectional_iterator_tag>::value> {}; | |
template <class _Tp> | |
struct __is_exactly_cpp17_bidirectional_iterator | |
: public integral_constant<bool, | |
__has_iterator_category_convertible_to<_Tp, bidirectional_iterator_tag>::value && | |
!__has_iterator_category_convertible_to<_Tp, random_access_iterator_tag>::value> {}; | |
template<class _InputIterator> | |
using __iter_value_type = typename iterator_traits<_InputIterator>::value_type; | |
template<class _InputIterator> | |
using __iter_key_type = __remove_const_t<typename iterator_traits<_InputIterator>::value_type::first_type>; | |
template<class _InputIterator> | |
using __iter_mapped_type = typename iterator_traits<_InputIterator>::value_type::second_type; | |
template<class _InputIterator> | |
using __iter_to_alloc_type = pair< | |
typename add_const<typename iterator_traits<_InputIterator>::value_type::first_type>::type, | |
typename iterator_traits<_InputIterator>::value_type::second_type>; | |
template <class _Iter> | |
using __iterator_category_type = typename iterator_traits<_Iter>::iterator_category; | |
template <class _Iter> | |
using __iterator_pointer_type = typename iterator_traits<_Iter>::pointer; | |
template <class _Iter> | |
using __iter_diff_t = typename iterator_traits<_Iter>::difference_type; | |
template<class _InputIterator> | |
using __iter_value_type = typename iterator_traits<_InputIterator>::value_type; | |
}} | |
# 16 "../../buildtools/third_party/libc++/trunk/include/__iterator/iter_move.h" 2 3 | |
# 22 "../../buildtools/third_party/libc++/trunk/include/__iterator/iter_move.h" 3 | |
namespace std { inline namespace Cr { | |
# 97 "../../buildtools/third_party/libc++/trunk/include/__iterator/iter_move.h" 3 | |
}} | |
# 16 "../../buildtools/third_party/libc++/trunk/include/__iterator/concepts.h" 2 3 | |
# 1 "../../buildtools/third_party/libc++/trunk/include/__memory/pointer_traits.h" 1 3 | |
# 11 "../../buildtools/third_party/libc++/trunk/include/__memory/pointer_traits.h" 3 | |
#define _LIBCPP___MEMORY_POINTER_TRAITS_H | |
# 1 "../../buildtools/third_party/libc++/trunk/include/__memory/addressof.h" 1 3 | |
# 11 "../../buildtools/third_party/libc++/trunk/include/__memory/addressof.h" 3 | |
#define _LIBCPP___MEMORY_ADDRESSOF_H | |
# 17 "../../buildtools/third_party/libc++/trunk/include/__memory/addressof.h" 3 | |
namespace std { inline namespace Cr { | |
template <class _Tp> | |
inline constexpr | |
__attribute__((__no_sanitize__("cfi"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) | |
_Tp* | |
addressof(_Tp& __x) noexcept | |
{ | |
return __builtin_addressof(__x); | |
} | |
# 71 "../../buildtools/third_party/libc++/trunk/include/__memory/addressof.h" 3 | |
template <class _Tp> _Tp* addressof(const _Tp&&) noexcept = delete; | |
}} | |
# 15 "../../buildtools/third_party/libc++/trunk/include/__memory/pointer_traits.h" 2 3 | |
# 20 "../../buildtools/third_party/libc++/trunk/include/__memory/pointer_traits.h" 3 | |
namespace std { inline namespace Cr { | |
template <class _Tp, class = void> | |
struct __has_element_type : false_type {}; | |
template <class _Tp> | |
struct __has_element_type<_Tp, | |
typename __void_t<typename _Tp::element_type>::type> : true_type {}; | |
template <class _Ptr, bool = __has_element_type<_Ptr>::value> | |
struct __pointer_traits_element_type; | |
template <class _Ptr> | |
struct __pointer_traits_element_type<_Ptr, true> | |
{ | |
typedef __attribute__((__nodebug__)) typename _Ptr::element_type type; | |
}; | |
template <template <class, class...> class _Sp, class _Tp, class ..._Args> | |
struct __pointer_traits_element_type<_Sp<_Tp, _Args...>, true> | |
{ | |
typedef __attribute__((__nodebug__)) typename _Sp<_Tp, _Args...>::element_type type; | |
}; | |
template <template <class, class...> class _Sp, class _Tp, class ..._Args> | |
struct __pointer_traits_element_type<_Sp<_Tp, _Args...>, false> | |
{ | |
typedef __attribute__((__nodebug__)) _Tp type; | |
}; | |
template <class _Tp, class = void> | |
struct __has_difference_type : false_type {}; | |
template <class _Tp> | |
struct __has_difference_type<_Tp, | |
typename __void_t<typename _Tp::difference_type>::type> : true_type {}; | |
template <class _Ptr, bool = __has_difference_type<_Ptr>::value> | |
struct __pointer_traits_difference_type | |
{ | |
typedef __attribute__((__nodebug__)) ptrdiff_t type; | |
}; | |
template <class _Ptr> | |
struct __pointer_traits_difference_type<_Ptr, true> | |
{ | |
typedef __attribute__((__nodebug__)) typename _Ptr::difference_type type; | |
}; | |
template <class _Tp, class _Up> | |
struct __has_rebind | |
{ | |
private: | |
template <class _Xp> static false_type __test(...); | |
#pragma GCC diagnostic push | |
# 76 "../../buildtools/third_party/libc++/trunk/include/__memory/pointer_traits.h" 3 | |
#pragma GCC diagnostic ignored "-Wdeprecated" | |
# 76 "../../buildtools/third_party/libc++/trunk/include/__memory/pointer_traits.h" 3 | |
#pragma GCC diagnostic ignored "-Wdeprecated-declarations" | |
template <class _Xp> static true_type __test(typename _Xp::template rebind<_Up>* = 0); | |
#pragma GCC diagnostic pop | |
public: | |
static const bool value = decltype(__test<_Tp>(0))::value; | |
}; | |
template <class _Tp, class _Up, bool = __has_rebind<_Tp, _Up>::value> | |
struct __pointer_traits_rebind | |
{ | |
typedef __attribute__((__nodebug__)) typename _Tp::template rebind<_Up> type; | |
}; | |
template <template <class, class...> class _Sp, class _Tp, class ..._Args, class _Up> | |
struct __pointer_traits_rebind<_Sp<_Tp, _Args...>, _Up, true> | |
{ | |
typedef __attribute__((__nodebug__)) typename _Sp<_Tp, _Args...>::template rebind<_Up> type; | |
}; | |
template <template <class, class...> class _Sp, class _Tp, class ..._Args, class _Up> | |
struct __pointer_traits_rebind<_Sp<_Tp, _Args...>, _Up, false> | |
{ | |
typedef _Sp<_Up, _Args...> type; | |
}; | |
template <class _Ptr> | |
struct pointer_traits | |
{ | |
typedef _Ptr pointer; | |
typedef typename __pointer_traits_element_type<pointer>::type element_type; | |
typedef typename __pointer_traits_difference_type<pointer>::type difference_type; | |
template <class _Up> using rebind = typename __pointer_traits_rebind<pointer, _Up>::type; | |
private: | |
struct __nat {}; | |
public: | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) | |
static pointer pointer_to(typename conditional<is_void<element_type>::value, | |
__nat, element_type>::type& __r) | |
{return pointer::pointer_to(__r);} | |
}; | |
template <class _Tp> | |
struct pointer_traits<_Tp*> | |
{ | |
typedef _Tp* pointer; | |
typedef _Tp element_type; | |
typedef ptrdiff_t difference_type; | |
template <class _Up> using rebind = _Up*; | |
private: | |
struct __nat {}; | |
public: | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) | |
static pointer pointer_to(typename conditional<is_void<element_type>::value, | |
__nat, element_type>::type& __r) noexcept | |
{return std::addressof(__r);} | |
}; | |
template <class _From, class _To> | |
using __rebind_pointer_t = typename pointer_traits<_From>::template rebind<_To>; | |
template <class _Pointer, class = void> | |
struct __to_address_helper; | |
template <class _Tp> | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) constexpr | |
_Tp* __to_address(_Tp* __p) noexcept { | |
static_assert(!is_function<_Tp>::value, "_Tp is a function type"); | |
return __p; | |
} | |
template <class _Pointer, class = void> | |
struct _HasToAddress : false_type {}; | |
template <class _Pointer> | |
struct _HasToAddress<_Pointer, | |
decltype((void)pointer_traits<_Pointer>::to_address(declval<const _Pointer&>())) | |
> : true_type {}; | |
template <class _Pointer, class = void> | |
struct _HasArrow : false_type {}; | |
template <class _Pointer> | |
struct _HasArrow<_Pointer, | |
decltype((void)declval<const _Pointer&>().operator->()) | |
> : true_type {}; | |
template <class _Pointer> | |
struct _IsFancyPointer { | |
static const bool value = _HasArrow<_Pointer>::value || _HasToAddress<_Pointer>::value; | |
}; | |
template <class _Pointer, class = __enable_if_t< | |
_And<is_class<_Pointer>, _IsFancyPointer<_Pointer> >::value | |
> > | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) constexpr | |
typename decay<decltype(__to_address_helper<_Pointer>::__call(declval<const _Pointer&>()))>::type | |
__to_address(const _Pointer& __p) noexcept { | |
return __to_address_helper<_Pointer>::__call(__p); | |
} | |
template <class _Pointer, class> | |
struct __to_address_helper { | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) constexpr | |
static decltype(std::__to_address(declval<const _Pointer&>().operator->())) | |
__call(const _Pointer& __p) noexcept { | |
return std::__to_address(__p.operator->()); | |
} | |
}; | |
template <class _Pointer> | |
struct __to_address_helper<_Pointer, decltype((void)pointer_traits<_Pointer>::to_address(declval<const _Pointer&>()))> { | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) constexpr | |
static decltype(pointer_traits<_Pointer>::to_address(declval<const _Pointer&>())) | |
__call(const _Pointer& __p) noexcept { | |
return pointer_traits<_Pointer>::to_address(__p); | |
} | |
}; | |
# 237 "../../buildtools/third_party/libc++/trunk/include/__memory/pointer_traits.h" 3 | |
}} | |
# 19 "../../buildtools/third_party/libc++/trunk/include/__iterator/concepts.h" 2 3 | |
# 25 "../../buildtools/third_party/libc++/trunk/include/__iterator/concepts.h" 3 | |
namespace std { inline namespace Cr { | |
# 278 "../../buildtools/third_party/libc++/trunk/include/__iterator/concepts.h" 3 | |
}} | |
# 14 "../../buildtools/third_party/libc++/trunk/include/__algorithm/ranges_iterator_concept.h" 2 3 | |
# 19 "../../buildtools/third_party/libc++/trunk/include/__algorithm/ranges_iterator_concept.h" 3 | |
# 14 "../../buildtools/third_party/libc++/trunk/include/__algorithm/iterator_operations.h" 2 3 | |
# 1 "../../buildtools/third_party/libc++/trunk/include/__iterator/advance.h" 1 3 | |
# 11 "../../buildtools/third_party/libc++/trunk/include/__iterator/advance.h" 3 | |
#define _LIBCPP___ITERATOR_ADVANCE_H | |
# 1 "../../buildtools/third_party/libc++/trunk/include/__utility/convert_to_integral.h" 1 3 | |
# 10 "../../buildtools/third_party/libc++/trunk/include/__utility/convert_to_integral.h" 3 | |
#define _LIBCPP___UTILITY_CONVERT_TO_INTEGRAL_H | |
# 20 "../../buildtools/third_party/libc++/trunk/include/__utility/convert_to_integral.h" 3 | |
namespace std { inline namespace Cr { | |
inline __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) constexpr | |
int __convert_to_integral(int __val) { return __val; } | |
inline __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) constexpr | |
unsigned __convert_to_integral(unsigned __val) { return __val; } | |
inline __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) constexpr | |
long __convert_to_integral(long __val) { return __val; } | |
inline __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) constexpr | |
unsigned long __convert_to_integral(unsigned long __val) { return __val; } | |
inline __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) constexpr | |
long long __convert_to_integral(long long __val) { return __val; } | |
inline __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) constexpr | |
unsigned long long __convert_to_integral(unsigned long long __val) {return __val; } | |
template<typename _Fp> | |
inline __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) constexpr | |
typename enable_if<is_floating_point<_Fp>::value, long long>::type | |
__convert_to_integral(_Fp __val) { return __val; } | |
inline __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) constexpr | |
__int128_t __convert_to_integral(__int128_t __val) { return __val; } | |
inline __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) constexpr | |
__uint128_t __convert_to_integral(__uint128_t __val) { return __val; } | |
template <class _Tp, bool = is_enum<_Tp>::value> | |
struct __sfinae_underlying_type | |
{ | |
typedef typename underlying_type<_Tp>::type type; | |
typedef decltype(((type)1) + 0) __promoted_type; | |
}; | |
template <class _Tp> | |
struct __sfinae_underlying_type<_Tp, false> {}; | |
template <class _Tp> | |
inline __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) constexpr | |
typename __sfinae_underlying_type<_Tp>::__promoted_type | |
__convert_to_integral(_Tp __val) { return __val; } | |
}} | |
# 19 "../../buildtools/third_party/libc++/trunk/include/__iterator/advance.h" 2 3 | |
# 1 "../../buildtools/third_party/libc++/trunk/include/__utility/unreachable.h" 1 3 | |
# 10 "../../buildtools/third_party/libc++/trunk/include/__utility/unreachable.h" 3 | |
#define _LIBCPP___UTILITY_UNREACHABLE_H | |
# 1 "../../buildtools/third_party/libc++/trunk/include/cstdlib" 1 3 | |
# 11 "../../buildtools/third_party/libc++/trunk/include/cstdlib" 3 | |
#define _LIBCPP_CSTDLIB | |
# 87 "../../buildtools/third_party/libc++/trunk/include/cstdlib" 3 | |
# 1 "../../buildtools/third_party/libc++/trunk/include/stdlib.h" 1 3 | |
# 19 "../../buildtools/third_party/libc++/trunk/include/stdlib.h" 3 | |
#define _LIBCPP_STDLIB_H | |
# 91 "../../buildtools/third_party/libc++/trunk/include/stdlib.h" 3 | |
# 1 "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/stdlib.h" 1 3 4 | |
# 24 "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/stdlib.h" 3 4 | |
#define __GLIBC_INTERNAL_STARTING_HEADER_IMPLEMENTATION | |
# 1 "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/x86_64-linux-gnu/bits/libc-header-start.h" 1 3 4 | |
# 31 "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/x86_64-linux-gnu/bits/libc-header-start.h" 3 4 | |
#undef __GLIBC_INTERNAL_STARTING_HEADER_IMPLEMENTATION | |
#undef __GLIBC_USE_LIB_EXT2 | |
#define __GLIBC_USE_LIB_EXT2 1 | |
#undef __GLIBC_USE_IEC_60559_BFP_EXT | |
#define __GLIBC_USE_IEC_60559_BFP_EXT 1 | |
#undef __GLIBC_USE_IEC_60559_BFP_EXT_C2X | |
#define __GLIBC_USE_IEC_60559_BFP_EXT_C2X 1 | |
#undef __GLIBC_USE_IEC_60559_FUNCS_EXT | |
#define __GLIBC_USE_IEC_60559_FUNCS_EXT 1 | |
#undef __GLIBC_USE_IEC_60559_FUNCS_EXT_C2X | |
#define __GLIBC_USE_IEC_60559_FUNCS_EXT_C2X 1 | |
#undef __GLIBC_USE_IEC_60559_TYPES_EXT | |
#define __GLIBC_USE_IEC_60559_TYPES_EXT 1 | |
# 26 "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/stdlib.h" 2 3 4 | |
#define __need_size_t | |
#define __need_wchar_t | |
#define __need_NULL | |
# 1 "../../buildtools/third_party/libc++/trunk/include/stddef.h" 1 3 4 | |
# 15 "../../buildtools/third_party/libc++/trunk/include/stddef.h" 3 | |
# 1 "../../third_party/llvm-build/Release+Asserts/lib/clang/16.0.0/include/stddef.h" 1 3 | |
# 48 "../../third_party/llvm-build/Release+Asserts/lib/clang/16.0.0/include/stddef.h" 3 | |
#undef __need_size_t | |
# 77 "../../third_party/llvm-build/Release+Asserts/lib/clang/16.0.0/include/stddef.h" 3 | |
#undef __need_wchar_t | |
#undef NULL | |
#define NULL __null | |
# 97 "../../third_party/llvm-build/Release+Asserts/lib/clang/16.0.0/include/stddef.h" 3 | |
#undef __need_NULL | |
# 18 "../../buildtools/third_party/libc++/trunk/include/stddef.h" 2 3 | |
# 32 "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/stdlib.h" 2 3 4 | |
extern "C" { | |
#define _STDLIB_H 1 | |
# 1 "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/x86_64-linux-gnu/bits/waitflags.h" 1 3 4 | |
# 25 "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/x86_64-linux-gnu/bits/waitflags.h" 3 4 | |
#define WNOHANG 1 | |
#define WUNTRACED 2 | |
#define WSTOPPED 2 | |
#define WEXITED 4 | |
#define WCONTINUED 8 | |
#define WNOWAIT 0x01000000 | |
#define __WNOTHREAD 0x20000000 | |
#define __WALL 0x40000000 | |
#define __WCLONE 0x80000000 | |
#define __ENUM_IDTYPE_T 1 | |
#undef P_ALL | |
#undef P_PID | |
#undef P_PGID | |
typedef enum | |
{ | |
P_ALL, | |
P_PID, | |
P_PGID | |
} idtype_t; | |
# 40 "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/stdlib.h" 2 3 4 | |
# 1 "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/x86_64-linux-gnu/bits/waitstatus.h" 1 3 4 | |
# 28 "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/x86_64-linux-gnu/bits/waitstatus.h" 3 4 | |
#define __WEXITSTATUS(status) (((status) & 0xff00) >> 8) | |
#define __WTERMSIG(status) ((status) & 0x7f) | |
#define __WSTOPSIG(status) __WEXITSTATUS(status) | |
#define __WIFEXITED(status) (__WTERMSIG(status) == 0) | |
#define __WIFSIGNALED(status) (((signed char) (((status) & 0x7f) + 1) >> 1) > 0) | |
#define __WIFSTOPPED(status) (((status) & 0xff) == 0x7f) | |
#define __WIFCONTINUED(status) ((status) == __W_CONTINUED) | |
#define __WCOREDUMP(status) ((status) & __WCOREFLAG) | |
#define __W_EXITCODE(ret,sig) ((ret) << 8 | (sig)) | |
#define __W_STOPCODE(sig) ((sig) << 8 | 0x7f) | |
#define __W_CONTINUED 0xffff | |
#define __WCOREFLAG 0x80 | |
# 41 "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/stdlib.h" 2 3 4 | |
#define WEXITSTATUS(status) __WEXITSTATUS (status) | |
#define WTERMSIG(status) __WTERMSIG (status) | |
#define WSTOPSIG(status) __WSTOPSIG (status) | |
#define WIFEXITED(status) __WIFEXITED (status) | |
#define WIFSIGNALED(status) __WIFSIGNALED (status) | |
#define WIFSTOPPED(status) __WIFSTOPPED (status) | |
#define WIFCONTINUED(status) __WIFCONTINUED (status) | |
# 1 "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/x86_64-linux-gnu/bits/floatn.h" 1 3 4 | |
# 20 "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/x86_64-linux-gnu/bits/floatn.h" 3 4 | |
#define _BITS_FLOATN_H | |
# 35 "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/x86_64-linux-gnu/bits/floatn.h" 3 4 | |
#define __HAVE_FLOAT128 0 | |
#define __HAVE_DISTINCT_FLOAT128 0 | |
#define __HAVE_FLOAT64X 1 | |
#define __HAVE_FLOAT64X_LONG_DOUBLE 1 | |
# 120 "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/x86_64-linux-gnu/bits/floatn.h" 3 4 | |
# 1 "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/x86_64-linux-gnu/bits/floatn-common.h" 1 3 4 | |
# 21 "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/x86_64-linux-gnu/bits/floatn-common.h" 3 4 | |
#define _BITS_FLOATN_COMMON_H | |
# 1 "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/x86_64-linux-gnu/bits/long-double.h" 1 3 4 | |
# 21 "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/x86_64-linux-gnu/bits/long-double.h" 3 4 | |
#define __LONG_DOUBLE_USES_FLOAT128 0 | |
# 25 "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/x86_64-linux-gnu/bits/floatn-common.h" 2 3 4 | |
# 34 "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/x86_64-linux-gnu/bits/floatn-common.h" 3 4 | |
#define __HAVE_FLOAT16 0 | |
#define __HAVE_FLOAT32 1 | |
#define __HAVE_FLOAT64 1 | |
#define __HAVE_FLOAT32X 1 | |
#define __HAVE_FLOAT128X 0 | |
# 52 "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/x86_64-linux-gnu/bits/floatn-common.h" 3 4 | |
#define __HAVE_DISTINCT_FLOAT16 __HAVE_FLOAT16 | |
#define __HAVE_DISTINCT_FLOAT32 0 | |
#define __HAVE_DISTINCT_FLOAT64 0 | |
#define __HAVE_DISTINCT_FLOAT32X 0 | |
#define __HAVE_DISTINCT_FLOAT64X 0 | |
#define __HAVE_DISTINCT_FLOAT128X __HAVE_FLOAT128X | |
#define __HAVE_FLOAT128_UNLIKE_LDBL (__HAVE_DISTINCT_FLOAT128 && __LDBL_MANT_DIG__ != 113) | |
#define __HAVE_FLOATN_NOT_TYPEDEF 0 | |
# 91 "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/x86_64-linux-gnu/bits/floatn-common.h" 3 4 | |
#define __f32(x) x##f | |
# 102 "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/x86_64-linux-gnu/bits/floatn-common.h" 3 4 | |
#define __f64(x) x | |
#define __f32x(x) x | |
#define __f64x(x) x##l | |
# 149 "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/x86_64-linux-gnu/bits/floatn-common.h" 3 4 | |
#define __CFLOAT32 _Complex float | |
# 160 "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/x86_64-linux-gnu/bits/floatn-common.h" 3 4 | |
#define __CFLOAT64 _Complex double | |
#define __CFLOAT32X _Complex double | |
#define __CFLOAT64X _Complex long double | |
# 214 "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/x86_64-linux-gnu/bits/floatn-common.h" 3 4 | |
typedef float _Float32; | |
#define __builtin_huge_valf32() (__builtin_huge_valf ()) | |
#define __builtin_inff32() (__builtin_inff ()) | |
#define __builtin_nanf32(x) (__builtin_nanf (x)) | |
#define __builtin_nansf32(x) (__builtin_nansf (x)) | |
# 251 "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/x86_64-linux-gnu/bits/floatn-common.h" 3 4 | |
typedef double _Float64; | |
#define __builtin_huge_valf64() (__builtin_huge_val ()) | |
#define __builtin_inff64() (__builtin_inf ()) | |
#define __builtin_nanf64(x) (__builtin_nan (x)) | |
#define __builtin_nansf64(x) (__builtin_nans (x)) | |
# 268 "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/x86_64-linux-gnu/bits/floatn-common.h" 3 4 | |
typedef double _Float32x; | |
#define __builtin_huge_valf32x() (__builtin_huge_val ()) | |
#define __builtin_inff32x() (__builtin_inf ()) | |
#define __builtin_nanf32x(x) (__builtin_nan (x)) | |
#define __builtin_nansf32x(x) (__builtin_nans (x)) | |
# 285 "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/x86_64-linux-gnu/bits/floatn-common.h" 3 4 | |
typedef long double _Float64x; | |
#define __builtin_huge_valf64x() (__builtin_huge_vall ()) | |
#define __builtin_inff64x() (__builtin_infl ()) | |
#define __builtin_nanf64x(x) (__builtin_nanl (x)) | |
#define __builtin_nansf64x(x) (__builtin_nansl (x)) | |
# 121 "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/x86_64-linux-gnu/bits/floatn.h" 2 3 4 | |
# 56 "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/stdlib.h" 2 3 4 | |
typedef struct | |
{ | |
int quot; | |
int rem; | |
} div_t; | |
typedef struct | |
{ | |
long int quot; | |
long int rem; | |
} ldiv_t; | |
#define __ldiv_t_defined 1 | |
__extension__ typedef struct | |
{ | |
long long int quot; | |
long long int rem; | |
} lldiv_t; | |
#define __lldiv_t_defined 1 | |
#define RAND_MAX 2147483647 | |
#define EXIT_FAILURE 1 | |
#define EXIT_SUCCESS 0 | |
#define MB_CUR_MAX (__ctype_get_mb_cur_max ()) | |
extern size_t __ctype_get_mb_cur_max (void) throw () __attribute__ ((__warn_unused_result__)); | |
extern double atof (const char *__nptr) | |
throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__)); | |
extern int atoi (const char *__nptr) | |
throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__)); | |
extern long int atol (const char *__nptr) | |
throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__)); | |
__extension__ extern long long int atoll (const char *__nptr) | |
throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__)); | |
extern double strtod (const char *__restrict __nptr, | |
char **__restrict __endptr) | |
throw () __attribute__ ((__nonnull__ (1))); | |
extern float strtof (const char *__restrict __nptr, | |
char **__restrict __endptr) throw () __attribute__ ((__nonnull__ (1))); | |
extern long double strtold (const char *__restrict __nptr, | |
char **__restrict __endptr) | |
throw () __attribute__ ((__nonnull__ (1))); | |
# 140 "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/stdlib.h" 3 4 | |
extern _Float32 strtof32 (const char *__restrict __nptr, | |
char **__restrict __endptr) | |
throw () __attribute__ ((__nonnull__ (1))); | |
extern _Float64 strtof64 (const char *__restrict __nptr, | |
char **__restrict __endptr) | |
throw () __attribute__ ((__nonnull__ (1))); | |
# 158 "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/stdlib.h" 3 4 | |
extern _Float32x strtof32x (const char *__restrict __nptr, | |
char **__restrict __endptr) | |
throw () __attribute__ ((__nonnull__ (1))); | |
extern _Float64x strtof64x (const char *__restrict __nptr, | |
char **__restrict __endptr) | |
throw () __attribute__ ((__nonnull__ (1))); | |
# 176 "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/stdlib.h" 3 4 | |
extern long int strtol (const char *__restrict __nptr, | |
char **__restrict __endptr, int __base) | |
throw () __attribute__ ((__nonnull__ (1))); | |
extern unsigned long int strtoul (const char *__restrict __nptr, | |
char **__restrict __endptr, int __base) | |
throw () __attribute__ ((__nonnull__ (1))); | |
__extension__ | |
extern long long int strtoq (const char *__restrict __nptr, | |
char **__restrict __endptr, int __base) | |
throw () __attribute__ ((__nonnull__ (1))); | |
__extension__ | |
extern unsigned long long int strtouq (const char *__restrict __nptr, | |
char **__restrict __endptr, int __base) | |
throw () __attribute__ ((__nonnull__ (1))); | |
__extension__ | |
extern long long int strtoll (const char *__restrict __nptr, | |
char **__restrict __endptr, int __base) | |
throw () __attribute__ ((__nonnull__ (1))); | |
__extension__ | |
extern unsigned long long int strtoull (const char *__restrict __nptr, | |
char **__restrict __endptr, int __base) | |
throw () __attribute__ ((__nonnull__ (1))); | |
extern int strfromd (char *__dest, size_t __size, const char *__format, | |
double __f) | |
throw () __attribute__ ((__nonnull__ (3))); | |
extern int strfromf (char *__dest, size_t __size, const char *__format, | |
float __f) | |
throw () __attribute__ ((__nonnull__ (3))); | |
extern int strfroml (char *__dest, size_t __size, const char *__format, | |
long double __f) | |
throw () __attribute__ ((__nonnull__ (3))); | |
# 232 "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/stdlib.h" 3 4 | |
extern int strfromf32 (char *__dest, size_t __size, const char * __format, | |
_Float32 __f) | |
throw () __attribute__ ((__nonnull__ (3))); | |
extern int strfromf64 (char *__dest, size_t __size, const char * __format, | |
_Float64 __f) | |
throw () __attribute__ ((__nonnull__ (3))); | |
# 250 "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/stdlib.h" 3 4 | |
extern int strfromf32x (char *__dest, size_t __size, const char * __format, | |
_Float32x __f) | |
throw () __attribute__ ((__nonnull__ (3))); | |
extern int strfromf64x (char *__dest, size_t __size, const char * __format, | |
_Float64x __f) | |
throw () __attribute__ ((__nonnull__ (3))); | |
# 274 "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/stdlib.h" 3 4 | |
extern long int strtol_l (const char *__restrict __nptr, | |
char **__restrict __endptr, int __base, | |
locale_t __loc) throw () __attribute__ ((__nonnull__ (1, 4))); | |
extern unsigned long int strtoul_l (const char *__restrict __nptr, | |
char **__restrict __endptr, | |
int __base, locale_t __loc) | |
throw () __attribute__ ((__nonnull__ (1, 4))); | |
__extension__ | |
extern long long int strtoll_l (const char *__restrict __nptr, | |
char **__restrict __endptr, int __base, | |
locale_t __loc) | |
throw () __attribute__ ((__nonnull__ (1, 4))); | |
__extension__ | |
extern unsigned long long int strtoull_l (const char *__restrict __nptr, | |
char **__restrict __endptr, | |
int __base, locale_t __loc) | |
throw () __attribute__ ((__nonnull__ (1, 4))); | |
extern double strtod_l (const char *__restrict __nptr, | |
char **__restrict __endptr, locale_t __loc) | |
throw () __attribute__ ((__nonnull__ (1, 3))); | |
extern float strtof_l (const char *__restrict __nptr, | |
char **__restrict __endptr, locale_t __loc) | |
throw () __attribute__ ((__nonnull__ (1, 3))); | |
extern long double strtold_l (const char *__restrict __nptr, | |
char **__restrict __endptr, | |
locale_t __loc) | |
throw () __attribute__ ((__nonnull__ (1, 3))); | |
# 316 "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/stdlib.h" 3 4 | |
extern _Float32 strtof32_l (const char *__restrict __nptr, | |
char **__restrict __endptr, | |
locale_t __loc) | |
throw () __attribute__ ((__nonnull__ (1, 3))); | |
extern _Float64 strtof64_l (const char *__restrict __nptr, | |
char **__restrict __endptr, | |
locale_t __loc) | |
throw () __attribute__ ((__nonnull__ (1, 3))); | |
# 337 "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/stdlib.h" 3 4 | |
extern _Float32x strtof32x_l (const char *__restrict __nptr, | |
char **__restrict __endptr, | |
locale_t __loc) | |
throw () __attribute__ ((__nonnull__ (1, 3))); | |
extern _Float64x strtof64x_l (const char *__restrict __nptr, | |
char **__restrict __endptr, | |
locale_t __loc) | |
throw () __attribute__ ((__nonnull__ (1, 3))); | |
# 360 "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/stdlib.h" 3 4 | |
extern __inline __attribute__ ((__gnu_inline__)) int | |
atoi (const char *__nptr) throw () | |
{ | |
return (int) strtol (__nptr, (char **) __null, 10); | |
} | |
extern __inline __attribute__ ((__gnu_inline__)) long int | |
atol (const char *__nptr) throw () | |
{ | |
return strtol (__nptr, (char **) __null, 10); | |
} | |
__extension__ extern __inline __attribute__ ((__gnu_inline__)) long long int | |
atoll (const char *__nptr) throw () | |
{ | |
return strtoll (__nptr, (char **) __null, 10); | |
} | |
# 385 "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/stdlib.h" 3 4 | |
extern char *l64a (long int __n) throw () __attribute__ ((__warn_unused_result__)); | |
extern long int a64l (const char *__s) | |
throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__)); | |
# 1 "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/x86_64-linux-gnu/sys/types.h" 1 3 4 | |
# 23 "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/x86_64-linux-gnu/sys/types.h" 3 4 | |
#define _SYS_TYPES_H 1 | |
extern "C" { | |
typedef __u_char u_char; | |
typedef __u_short u_short; | |
typedef __u_int u_int; | |
typedef __u_long u_long; | |
typedef __quad_t quad_t; | |
typedef __u_quad_t u_quad_t; | |
typedef __fsid_t fsid_t; | |
#define __u_char_defined | |
typedef __loff_t loff_t; | |
typedef __ino64_t ino_t; | |
#define __ino_t_defined | |
typedef __ino64_t ino64_t; | |
#define __ino64_t_defined | |
typedef __dev_t dev_t; | |
#define __dev_t_defined | |
typedef __gid_t gid_t; | |
#define __gid_t_defined | |
typedef __mode_t mode_t; | |
#define __mode_t_defined | |
typedef __nlink_t nlink_t; | |
#define __nlink_t_defined | |
typedef __uid_t uid_t; | |
#define __uid_t_defined | |
typedef __off64_t off_t; | |
#define __off_t_defined | |
typedef __off64_t off64_t; | |
#define __off64_t_defined | |
typedef __pid_t pid_t; | |
#define __pid_t_defined | |
typedef __id_t id_t; | |
#define __id_t_defined | |
typedef __ssize_t ssize_t; | |
#define __ssize_t_defined | |
typedef __daddr_t daddr_t; | |
typedef __caddr_t caddr_t; | |
#define __daddr_t_defined | |
typedef __key_t key_t; | |
#define __key_t_defined | |
# 1 "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/x86_64-linux-gnu/bits/types/clock_t.h" 1 3 4 | |
#define __clock_t_defined 1 | |
typedef __clock_t clock_t; | |
# 127 "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/x86_64-linux-gnu/sys/types.h" 2 3 4 | |
# 1 "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/x86_64-linux-gnu/bits/types/clockid_t.h" 1 3 4 | |
#define __clockid_t_defined 1 | |
typedef __clockid_t clockid_t; | |
# 129 "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/x86_64-linux-gnu/sys/types.h" 2 3 4 | |
# 1 "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/x86_64-linux-gnu/bits/types/time_t.h" 1 3 4 | |
#define __time_t_defined 1 | |
typedef __time_t time_t; | |
# 130 "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/x86_64-linux-gnu/sys/types.h" 2 3 4 | |
# 1 "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/x86_64-linux-gnu/bits/types/timer_t.h" 1 3 4 | |
#define __timer_t_defined 1 | |
typedef __timer_t timer_t; | |
# 131 "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/x86_64-linux-gnu/sys/types.h" 2 3 4 | |
typedef __useconds_t useconds_t; | |
#define __useconds_t_defined | |
typedef __suseconds_t suseconds_t; | |
#define __suseconds_t_defined | |
#define __need_size_t | |
# 1 "../../buildtools/third_party/libc++/trunk/include/stddef.h" 1 3 4 | |
# 15 "../../buildtools/third_party/libc++/trunk/include/stddef.h" 3 | |
# 1 "../../third_party/llvm-build/Release+Asserts/lib/clang/16.0.0/include/stddef.h" 1 3 | |
# 48 "../../third_party/llvm-build/Release+Asserts/lib/clang/16.0.0/include/stddef.h" 3 | |
#undef __need_size_t | |
# 18 "../../buildtools/third_party/libc++/trunk/include/stddef.h" 2 3 | |
# 145 "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/x86_64-linux-gnu/sys/types.h" 2 3 4 | |
typedef unsigned long int ulong; | |
typedef unsigned short int ushort; | |
typedef unsigned int uint; | |
typedef __uint8_t u_int8_t; | |
typedef __uint16_t u_int16_t; | |
typedef __uint32_t u_int32_t; | |
typedef __uint64_t u_int64_t; | |
typedef int register_t __attribute__ ((__mode__ (__word__))); | |
#define __BIT_TYPES_DEFINED__ 1 | |
# 1 "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/endian.h" 1 3 4 | |
# 19 "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/endian.h" 3 4 | |
#define _ENDIAN_H 1 | |
# 1 "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/x86_64-linux-gnu/bits/endian.h" 1 3 4 | |
# 20 "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/x86_64-linux-gnu/bits/endian.h" 3 4 | |
#define _BITS_ENDIAN_H 1 | |
# 30 "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/x86_64-linux-gnu/bits/endian.h" 3 4 | |
#define __LITTLE_ENDIAN 1234 | |
#define __BIG_ENDIAN 4321 | |
#define __PDP_ENDIAN 3412 | |
# 1 "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/x86_64-linux-gnu/bits/endianness.h" 1 3 4 | |
#define _BITS_ENDIANNESS_H 1 | |
#define __BYTE_ORDER __LITTLE_ENDIAN | |
# 36 "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/x86_64-linux-gnu/bits/endian.h" 2 3 4 | |
#define __FLOAT_WORD_ORDER __BYTE_ORDER | |
#define __LONG_LONG_PAIR(HI,LO) LO, HI | |
# 25 "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/endian.h" 2 3 4 | |
#define LITTLE_ENDIAN __LITTLE_ENDIAN | |
#define BIG_ENDIAN __BIG_ENDIAN | |
#define PDP_ENDIAN __PDP_ENDIAN | |
#define BYTE_ORDER __BYTE_ORDER | |
# 1 "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/x86_64-linux-gnu/bits/byteswap.h" 1 3 4 | |
# 24 "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/x86_64-linux-gnu/bits/byteswap.h" 3 4 | |
#define _BITS_BYTESWAP_H 1 | |
#define __bswap_constant_16(x) ((__uint16_t) ((((x) >> 8) & 0xff) | (((x) & 0xff) << 8))) | |
static __inline __uint16_t | |
__bswap_16 (__uint16_t __bsx) | |
{ | |
return ((__uint16_t) ((((__bsx) >> 8) & 0xff) | (((__bsx) & 0xff) << 8))); | |
} | |
#define __bswap_constant_32(x) ((((x) & 0xff000000u) >> 24) | (((x) & 0x00ff0000u) >> 8) | (((x) & 0x0000ff00u) << 8) | (((x) & 0x000000ffu) << 24)) | |
static __inline __uint32_t | |
__bswap_32 (__uint32_t __bsx) | |
{ | |
return ((((__bsx) & 0xff000000u) >> 24) | (((__bsx) & 0x00ff0000u) >> 8) | (((__bsx) & 0x0000ff00u) << 8) | (((__bsx) & 0x000000ffu) << 24)); | |
} | |
#define __bswap_constant_64(x) ((((x) & 0xff00000000000000ull) >> 56) | (((x) & 0x00ff000000000000ull) >> 40) | (((x) & 0x0000ff0000000000ull) >> 24) | (((x) & 0x000000ff00000000ull) >> 8) | (((x) & 0x00000000ff000000ull) << 8) | (((x) & 0x0000000000ff0000ull) << 24) | (((x) & 0x000000000000ff00ull) << 40) | (((x) & 0x00000000000000ffull) << 56)) | |
# 69 "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/x86_64-linux-gnu/bits/byteswap.h" 3 4 | |
__extension__ static __inline __uint64_t | |
__bswap_64 (__uint64_t __bsx) | |
{ | |
return ((((__bsx) & 0xff00000000000000ull) >> 56) | (((__bsx) & 0x00ff000000000000ull) >> 40) | (((__bsx) & 0x0000ff0000000000ull) >> 24) | (((__bsx) & 0x000000ff00000000ull) >> 8) | (((__bsx) & 0x00000000ff000000ull) << 8) | (((__bsx) & 0x0000000000ff0000ull) << 24) | (((__bsx) & 0x000000000000ff00ull) << 40) | (((__bsx) & 0x00000000000000ffull) << 56)); | |
} | |
# 36 "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/endian.h" 2 3 4 | |
# 1 "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/x86_64-linux-gnu/bits/uintn-identity.h" 1 3 4 | |
# 24 "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/x86_64-linux-gnu/bits/uintn-identity.h" 3 4 | |
#define _BITS_UINTN_IDENTITY_H 1 | |
static __inline __uint16_t | |
__uint16_identity (__uint16_t __x) | |
{ | |
return __x; | |
} | |
static __inline __uint32_t | |
__uint32_identity (__uint32_t __x) | |
{ | |
return __x; | |
} | |
static __inline __uint64_t | |
__uint64_identity (__uint64_t __x) | |
{ | |
return __x; | |
} | |
# 37 "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/endian.h" 2 3 4 | |
#define htobe16(x) __bswap_16 (x) | |
#define htole16(x) __uint16_identity (x) | |
#define be16toh(x) __bswap_16 (x) | |
#define le16toh(x) __uint16_identity (x) | |
#define htobe32(x) __bswap_32 (x) | |
#define htole32(x) __uint32_identity (x) | |
#define be32toh(x) __bswap_32 (x) | |
#define le32toh(x) __uint32_identity (x) | |
#define htobe64(x) __bswap_64 (x) | |
#define htole64(x) __uint64_identity (x) | |
#define be64toh(x) __bswap_64 (x) | |
#define le64toh(x) __uint64_identity (x) | |
# 177 "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/x86_64-linux-gnu/sys/types.h" 2 3 4 | |
# 1 "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/x86_64-linux-gnu/sys/select.h" 1 3 4 | |
# 22 "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/x86_64-linux-gnu/sys/select.h" 3 4 | |
#define _SYS_SELECT_H 1 | |
# 1 "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/x86_64-linux-gnu/bits/select.h" 1 3 4 | |
# 22 "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/x86_64-linux-gnu/bits/select.h" 3 4 | |
# 1 "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/x86_64-linux-gnu/bits/wordsize.h" 1 3 4 | |
#define __WORDSIZE 64 | |
#define __WORDSIZE_TIME64_COMPAT32 1 | |
#define __SYSCALL_WORDSIZE 64 | |
# 23 "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/x86_64-linux-gnu/bits/select.h" 2 3 4 | |
#define __FD_ZERO_STOS "stosq" | |
#define __FD_ZERO(fdsp) do { int __d0, __d1; __asm__ __volatile__ ("cld; rep; " __FD_ZERO_STOS : "=c" (__d0), "=D" (__d1) : "a" (0), "0" (sizeof (fd_set) / sizeof (__fd_mask)), "1" (&__FDS_BITS (fdsp)[0]) : "memory"); } while (0) | |
# 58 "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/x86_64-linux-gnu/bits/select.h" 3 4 | |
#define __FD_SET(d,set) ((void) (__FDS_BITS (set)[__FD_ELT (d)] |= __FD_MASK (d))) | |
#define __FD_CLR(d,set) ((void) (__FDS_BITS (set)[__FD_ELT (d)] &= ~__FD_MASK (d))) | |
#define __FD_ISSET(d,set) ((__FDS_BITS (set)[__FD_ELT (d)] & __FD_MASK (d)) != 0) | |
# 31 "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/x86_64-linux-gnu/sys/select.h" 2 3 4 | |
# 1 "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/x86_64-linux-gnu/bits/types/sigset_t.h" 1 3 4 | |
#define __sigset_t_defined 1 | |
# 1 "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h" 1 3 4 | |
#define ____sigset_t_defined | |
#define _SIGSET_NWORDS (1024 / (8 * sizeof (unsigned long int))) | |
typedef struct | |
{ | |
unsigned long int __val[(1024 / (8 * sizeof (unsigned long int)))]; | |
} __sigset_t; | |
# 5 "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/x86_64-linux-gnu/bits/types/sigset_t.h" 2 3 4 | |
typedef __sigset_t sigset_t; | |
# 34 "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/x86_64-linux-gnu/sys/select.h" 2 3 4 | |
# 1 "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h" 1 3 4 | |
#define __timeval_defined 1 | |
struct timeval | |
{ | |
__time_t tv_sec; | |
__suseconds_t tv_usec; | |
}; | |
# 38 "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/x86_64-linux-gnu/sys/select.h" 2 3 4 | |
# 1 "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h" 1 3 4 | |
#define _STRUCT_TIMESPEC 1 | |
struct timespec | |
{ | |
__time_t tv_sec; | |
__syscall_slong_t tv_nsec; | |
# 26 "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h" 3 4 | |
}; | |
# 40 "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/x86_64-linux-gnu/sys/select.h" 2 3 4 | |
# 49 "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/x86_64-linux-gnu/sys/select.h" 3 4 | |
typedef long int __fd_mask; | |
#undef __NFDBITS | |
#define __NFDBITS (8 * (int) sizeof (__fd_mask)) | |
#define __FD_ELT(d) ((d) / __NFDBITS) | |
#define __FD_MASK(d) ((__fd_mask) (1UL << ((d) % __NFDBITS))) | |
typedef struct | |
{ | |
__fd_mask fds_bits[1024 / (8 * (int) sizeof (__fd_mask))]; | |
#define __FDS_BITS(set) ((set)->fds_bits) | |
} fd_set; | |
#define FD_SETSIZE __FD_SETSIZE | |
typedef __fd_mask fd_mask; | |
#define NFDBITS __NFDBITS | |
#define FD_SET(fd,fdsetp) __FD_SET (fd, fdsetp) | |
#define FD_CLR(fd,fdsetp) __FD_CLR (fd, fdsetp) | |
#define FD_ISSET(fd,fdsetp) __FD_ISSET (fd, fdsetp) | |
#define FD_ZERO(fdsetp) __FD_ZERO (fdsetp) | |
extern "C" { | |
# 101 "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/x86_64-linux-gnu/sys/select.h" 3 4 | |
extern int select (int __nfds, fd_set *__restrict __readfds, | |
fd_set *__restrict __writefds, | |
fd_set *__restrict __exceptfds, | |
struct timeval *__restrict __timeout); | |
# 113 "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/x86_64-linux-gnu/sys/select.h" 3 4 | |
extern int pselect (int __nfds, fd_set *__restrict __readfds, | |
fd_set *__restrict __writefds, | |
fd_set *__restrict __exceptfds, | |
const struct timespec *__restrict __timeout, | |
const __sigset_t *__restrict __sigmask); | |
# 1 "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/x86_64-linux-gnu/bits/select2.h" 1 3 4 | |
# 24 "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/x86_64-linux-gnu/bits/select2.h" 3 4 | |
extern long int __fdelt_chk (long int __d); | |
extern long int __fdelt_warn (long int __d) | |
; | |
#undef __FD_ELT | |
#define __FD_ELT(d) __extension__ ({ long int __d = (d); (__builtin_constant_p (__d) ? (0 <= __d && __d < __FD_SETSIZE ? (__d / __NFDBITS) : __fdelt_warn (__d)) : __fdelt_chk (__d)); }) | |
# 124 "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/x86_64-linux-gnu/sys/select.h" 2 3 4 | |
} | |
# 180 "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/x86_64-linux-gnu/sys/types.h" 2 3 4 | |
typedef __blksize_t blksize_t; | |
#define __blksize_t_defined | |
# 205 "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/x86_64-linux-gnu/sys/types.h" 3 4 | |
typedef __blkcnt64_t blkcnt_t; | |
#define __blkcnt_t_defined | |
typedef __fsblkcnt64_t fsblkcnt_t; | |
#define __fsblkcnt_t_defined | |
typedef __fsfilcnt64_t fsfilcnt_t; | |
#define __fsfilcnt_t_defined | |
typedef __blkcnt64_t blkcnt64_t; | |
typedef __fsblkcnt64_t fsblkcnt64_t; | |
typedef __fsfilcnt64_t fsfilcnt64_t; | |
# 1 "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h" 1 3 4 | |
# 20 "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h" 3 4 | |
#define _BITS_PTHREADTYPES_COMMON_H 1 | |
# 1 "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/x86_64-linux-gnu/bits/thread-shared-types.h" 1 3 4 | |
# 20 "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/x86_64-linux-gnu/bits/thread-shared-types.h" 3 4 | |
#define _THREAD_SHARED_TYPES_H 1 | |
# 44 "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/x86_64-linux-gnu/bits/thread-shared-types.h" 3 4 | |
# 1 "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h" 1 3 4 | |
# 19 "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h" 3 4 | |
#define _BITS_PTHREADTYPES_ARCH_H 1 | |
# 1 "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/x86_64-linux-gnu/bits/wordsize.h" 1 3 4 | |
#define __WORDSIZE 64 | |
#define __WORDSIZE_TIME64_COMPAT32 1 | |
#define __SYSCALL_WORDSIZE 64 | |
# 22 "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h" 2 3 4 | |
#define __SIZEOF_PTHREAD_MUTEX_T 40 | |
#define __SIZEOF_PTHREAD_ATTR_T 56 | |
#define __SIZEOF_PTHREAD_RWLOCK_T 56 | |
#define __SIZEOF_PTHREAD_BARRIER_T 32 | |
# 41 "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h" 3 4 | |
#define __SIZEOF_PTHREAD_MUTEXATTR_T 4 | |
#define __SIZEOF_PTHREAD_COND_T 48 | |
#define __SIZEOF_PTHREAD_CONDATTR_T 4 | |
#define __SIZEOF_PTHREAD_RWLOCKATTR_T 8 | |
#define __SIZEOF_PTHREAD_BARRIERATTR_T 4 | |
#define __LOCK_ALIGNMENT | |
#define __ONCE_ALIGNMENT | |
# 45 "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/x86_64-linux-gnu/bits/thread-shared-types.h" 2 3 4 | |
typedef struct __pthread_internal_list | |
{ | |
struct __pthread_internal_list *__prev; | |
struct __pthread_internal_list *__next; | |
} __pthread_list_t; | |
typedef struct __pthread_internal_slist | |
{ | |
struct __pthread_internal_slist *__next; | |
} __pthread_slist_t; | |
# 74 "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/x86_64-linux-gnu/bits/thread-shared-types.h" 3 4 | |
# 1 "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/x86_64-linux-gnu/bits/struct_mutex.h" 1 3 4 | |
# 20 "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/x86_64-linux-gnu/bits/struct_mutex.h" 3 4 | |
#define _THREAD_MUTEX_INTERNAL_H 1 | |
struct __pthread_mutex_s | |
{ | |
int __lock; | |
unsigned int __count; | |
int __owner; | |
unsigned int __nusers; | |
int __kind; | |
short __spins; | |
short __elision; | |
__pthread_list_t __list; | |
#define __PTHREAD_MUTEX_HAVE_PREV 1 | |
# 53 "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/x86_64-linux-gnu/bits/struct_mutex.h" 3 4 | |
}; | |
#define __PTHREAD_MUTEX_INITIALIZER(__kind) 0, 0, 0, 0, __kind, 0, 0, { 0, 0 } | |
# 75 "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/x86_64-linux-gnu/bits/thread-shared-types.h" 2 3 4 | |
# 87 "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/x86_64-linux-gnu/bits/thread-shared-types.h" 3 4 | |
# 1 "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/x86_64-linux-gnu/bits/struct_rwlock.h" 1 3 4 | |
# 21 "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/x86_64-linux-gnu/bits/struct_rwlock.h" 3 4 | |
#define _RWLOCK_INTERNAL_H | |
struct __pthread_rwlock_arch_t | |
{ | |
unsigned int __readers; | |
unsigned int __writers; | |
unsigned int __wrphase_futex; | |
unsigned int __writers_futex; | |
unsigned int __pad3; | |
unsigned int __pad4; | |
int __cur_writer; | |
int __shared; | |
signed char __rwelision; | |
unsigned char __pad1[7]; | |
#define __PTHREAD_RWLOCK_ELISION_EXTRA 0, { 0, 0, 0, 0, 0, 0, 0 } | |
unsigned long int __pad2; | |
unsigned int __flags; | |
# 55 "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/x86_64-linux-gnu/bits/struct_rwlock.h" 3 4 | |
}; | |
#define __PTHREAD_RWLOCK_INITIALIZER(__flags) 0, 0, 0, 0, 0, 0, 0, 0, __PTHREAD_RWLOCK_ELISION_EXTRA, 0, __flags | |
# 88 "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/x86_64-linux-gnu/bits/thread-shared-types.h" 2 3 4 | |
struct __pthread_cond_s | |
{ | |
__extension__ union | |
{ | |
__extension__ unsigned long long int __wseq; | |
struct | |
{ | |
unsigned int __low; | |
unsigned int __high; | |
} __wseq32; | |
}; | |
__extension__ union | |
{ | |
__extension__ unsigned long long int __g1_start; | |
struct | |
{ | |
unsigned int __low; | |
unsigned int __high; | |
} __g1_start32; | |
}; | |
unsigned int __g_refs[2] ; | |
unsigned int __g_size[2]; | |
unsigned int __g1_orig_size; | |
unsigned int __wrefs; | |
unsigned int __g_signals[2]; | |
}; | |
# 24 "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h" 2 3 4 | |
typedef unsigned long int pthread_t; | |
typedef union | |
{ | |
char __size[4]; | |
int __align; | |
} pthread_mutexattr_t; | |
typedef union | |
{ | |
char __size[4]; | |
int __align; | |
} pthread_condattr_t; | |
typedef unsigned int pthread_key_t; | |
typedef int pthread_once_t; | |
union pthread_attr_t | |
{ | |
char __size[56]; | |
long int __align; | |
}; | |
typedef union pthread_attr_t pthread_attr_t; | |
#define __have_pthread_attr_t 1 | |
typedef union | |
{ | |
struct __pthread_mutex_s __data; | |
char __size[40]; | |
long int __align; | |
} pthread_mutex_t; | |
typedef union | |
{ | |
struct __pthread_cond_s __data; | |
char __size[48]; | |
__extension__ long long int __align; | |
} pthread_cond_t; | |
typedef union | |
{ | |
struct __pthread_rwlock_arch_t __data; | |
char __size[56]; | |
long int __align; | |
} pthread_rwlock_t; | |
typedef union | |
{ | |
char __size[8]; | |
long int __align; | |
} pthread_rwlockattr_t; | |
typedef volatile int pthread_spinlock_t; | |
typedef union | |
{ | |
char __size[32]; | |
long int __align; | |
} pthread_barrier_t; | |
typedef union | |
{ | |
char __size[4]; | |
int __align; | |
} pthread_barrierattr_t; | |
# 228 "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/x86_64-linux-gnu/sys/types.h" 2 3 4 | |
} | |
# 395 "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/stdlib.h" 2 3 4 | |
extern long int random (void) throw (); | |
extern void srandom (unsigned int __seed) throw (); | |
extern char *initstate (unsigned int __seed, char *__statebuf, | |
size_t __statelen) throw () __attribute__ ((__nonnull__ (2))); | |
extern char *setstate (char *__statebuf) throw () __attribute__ ((__nonnull__ (1))); | |
struct random_data | |
{ | |
int32_t *fptr; | |
int32_t *rptr; | |
int32_t *state; | |
int rand_type; | |
int rand_deg; | |
int rand_sep; | |
int32_t *end_ptr; | |
}; | |
extern int random_r (struct random_data *__restrict __buf, | |
int32_t *__restrict __result) throw () __attribute__ ((__nonnull__ (1, 2))); | |
extern int srandom_r (unsigned int __seed, struct random_data *__buf) | |
throw () __attribute__ ((__nonnull__ (2))); | |
extern int initstate_r (unsigned int __seed, char *__restrict __statebuf, | |
size_t __statelen, | |
struct random_data *__restrict __buf) | |
throw () __attribute__ ((__nonnull__ (2, 4))); | |
extern int setstate_r (char *__restrict __statebuf, | |
struct random_data *__restrict __buf) | |
throw () __attribute__ ((__nonnull__ (1, 2))); | |
extern int rand (void) throw (); | |
extern void srand (unsigned int __seed) throw (); | |
extern int rand_r (unsigned int *__seed) throw (); | |
extern double drand48 (void) throw (); | |
extern double erand48 (unsigned short int __xsubi[3]) throw () __attribute__ ((__nonnull__ (1))); | |
extern long int lrand48 (void) throw (); | |
extern long int nrand48 (unsigned short int __xsubi[3]) | |
throw () __attribute__ ((__nonnull__ (1))); | |
extern long int mrand48 (void) throw (); | |
extern long int jrand48 (unsigned short int __xsubi[3]) | |
throw () __attribute__ ((__nonnull__ (1))); | |
extern void srand48 (long int __seedval) throw (); | |
extern unsigned short int *seed48 (unsigned short int __seed16v[3]) | |
throw () __attribute__ ((__nonnull__ (1))); | |
extern void lcong48 (unsigned short int __param[7]) throw () __attribute__ ((__nonnull__ (1))); | |
struct drand48_data | |
{ | |
unsigned short int __x[3]; | |
unsigned short int __old_x[3]; | |
unsigned short int __c; | |
unsigned short int __init; | |
__extension__ unsigned long long int __a; | |
}; | |
extern int drand48_r (struct drand48_data *__restrict __buffer, | |
double *__restrict __result) throw () __attribute__ ((__nonnull__ (1, 2))); | |
extern int erand48_r (unsigned short int __xsubi[3], | |
struct drand48_data *__restrict __buffer, | |
double *__restrict __result) throw () __attribute__ ((__nonnull__ (1, 2))); | |
extern int lrand48_r (struct drand48_data *__restrict __buffer, | |
long int *__restrict __result) | |
throw () __attribute__ ((__nonnull__ (1, 2))); | |
extern int nrand48_r (unsigned short int __xsubi[3], | |
struct drand48_data *__restrict __buffer, | |
long int *__restrict __result) | |
throw () __attribute__ ((__nonnull__ (1, 2))); | |
extern int mrand48_r (struct drand48_data *__restrict __buffer, | |
long int *__restrict __result) | |
throw () __attribute__ ((__nonnull__ (1, 2))); | |
extern int jrand48_r (unsigned short int __xsubi[3], | |
struct drand48_data *__restrict __buffer, | |
long int *__restrict __result) | |
throw () __attribute__ ((__nonnull__ (1, 2))); | |
extern int srand48_r (long int __seedval, struct drand48_data *__buffer) | |
throw () __attribute__ ((__nonnull__ (2))); | |
extern int seed48_r (unsigned short int __seed16v[3], | |
struct drand48_data *__buffer) throw () __attribute__ ((__nonnull__ (1, 2))); | |
extern int lcong48_r (unsigned short int __param[7], | |
struct drand48_data *__buffer) | |
throw () __attribute__ ((__nonnull__ (1, 2))); | |
extern void *malloc (size_t __size) throw () __attribute__ ((__malloc__)) | |
__attribute__ ((__warn_unused_result__)); | |
extern void *calloc (size_t __nmemb, size_t __size) | |
throw () __attribute__ ((__malloc__)) __attribute__ ((__warn_unused_result__)); | |
extern void *realloc (void *__ptr, size_t __size) | |
throw () __attribute__ ((__warn_unused_result__)) ; | |
extern void *reallocarray (void *__ptr, size_t __nmemb, size_t __size) | |
throw () __attribute__ ((__warn_unused_result__)) | |
; | |
extern void free (void *__ptr) throw (); | |
# 1 "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/alloca.h" 1 3 4 | |
# 19 "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/alloca.h" 3 4 | |
#define _ALLOCA_H 1 | |
#define __need_size_t | |
# 1 "../../buildtools/third_party/libc++/trunk/include/stddef.h" 1 3 4 | |
# 15 "../../buildtools/third_party/libc++/trunk/include/stddef.h" 3 | |
# 1 "../../third_party/llvm-build/Release+Asserts/lib/clang/16.0.0/include/stddef.h" 1 3 | |
# 48 "../../third_party/llvm-build/Release+Asserts/lib/clang/16.0.0/include/stddef.h" 3 | |
#undef __need_size_t | |
# 18 "../../buildtools/third_party/libc++/trunk/include/stddef.h" 2 3 | |
# 25 "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/alloca.h" 2 3 4 | |
extern "C" { | |
#undef alloca | |
extern void *alloca (size_t __size) throw (); | |
#define alloca(size) __builtin_alloca (size) | |
} | |
# 569 "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/stdlib.h" 2 3 4 | |
extern void *valloc (size_t __size) throw () __attribute__ ((__malloc__)) | |
__attribute__ ((__warn_unused_result__)); | |
extern int posix_memalign (void **__memptr, size_t __alignment, size_t __size) | |
throw () __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__)); | |
extern void *aligned_alloc (size_t __alignment, size_t __size) | |
throw () __attribute__ ((__malloc__)) __attribute__ ((__warn_unused_result__)); | |
extern void abort (void) throw () __attribute__ ((__noreturn__)); | |
extern int atexit (void (*__func) (void)) throw () __attribute__ ((__nonnull__ (1))); | |
extern "C++" int at_quick_exit (void (*__func) (void)) | |
throw () __asm ("at_quick_exit") __attribute__ ((__nonnull__ (1))); | |
# 610 "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/stdlib.h" 3 4 | |
extern int on_exit (void (*__func) (int __status, void *__arg), void *__arg) | |
throw () __attribute__ ((__nonnull__ (1))); | |
extern void exit (int __status) throw () __attribute__ ((__noreturn__)); | |
extern void quick_exit (int __status) throw () __attribute__ ((__noreturn__)); | |
extern void _Exit (int __status) throw () __attribute__ ((__noreturn__)); | |
extern char *getenv (const char *__name) throw () __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__)); | |
extern char *secure_getenv (const char *__name) | |
throw () __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__)); | |
extern int putenv (char *__string) throw () __attribute__ ((__nonnull__ (1))); | |
extern int setenv (const char *__name, const char *__value, int __replace) | |
throw () __attribute__ ((__nonnull__ (2))); | |
extern int unsetenv (const char *__name) throw () __attribute__ ((__nonnull__ (1))); | |
extern int clearenv (void) throw (); | |
# 675 "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/stdlib.h" 3 4 | |
extern char *mktemp (char *__template) throw () __attribute__ ((__nonnull__ (1))); | |
# 691 "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/stdlib.h" 3 4 | |
extern int mkstemp (char *__template) __asm__ ("" "mkstemp64") | |
__attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__)); | |
extern int mkstemp64 (char *__template) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__)); | |
# 713 "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/stdlib.h" 3 4 | |
extern int mkstemps (char *__template, int __suffixlen) __asm__ ("" "mkstemps64") __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__)); | |
extern int mkstemps64 (char *__template, int __suffixlen) | |
__attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__)); | |
# 731 "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/stdlib.h" 3 4 | |
extern char *mkdtemp (char *__template) throw () __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__)); | |
# 745 "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/stdlib.h" 3 4 | |
extern int mkostemp (char *__template, int __flags) __asm__ ("" "mkostemp64") | |
__attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__)); | |
extern int mkostemp64 (char *__template, int __flags) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__)); | |
# 766 "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/stdlib.h" 3 4 | |
extern int mkostemps (char *__template, int __suffixlen, int __flags) __asm__ ("" "mkostemps64") | |
__attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__)); | |
extern int mkostemps64 (char *__template, int __suffixlen, int __flags) | |
__attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__)); | |
# 784 "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/stdlib.h" 3 4 | |
extern int system (const char *__command) __attribute__ ((__warn_unused_result__)); | |
extern char *canonicalize_file_name (const char *__name) | |
throw () __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__)); | |
# 800 "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/stdlib.h" 3 4 | |
extern char *realpath (const char *__restrict __name, | |
char *__restrict __resolved) throw () __attribute__ ((__warn_unused_result__)); | |
#define __COMPAR_FN_T | |
typedef int (*__compar_fn_t) (const void *, const void *); | |
typedef __compar_fn_t comparison_fn_t; | |
typedef int (*__compar_d_fn_t) (const void *, const void *, void *); | |
extern void *bsearch (const void *__key, const void *__base, | |
size_t __nmemb, size_t __size, __compar_fn_t __compar) | |
__attribute__ ((__nonnull__ (1, 2, 5))) __attribute__ ((__warn_unused_result__)); | |
# 1 "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h" 1 3 4 | |
# 19 "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h" 3 4 | |
extern __inline __attribute__ ((__gnu_inline__)) void * | |
bsearch (const void *__key, const void *__base, size_t __nmemb, size_t __size, | |
__compar_fn_t __compar) | |
{ | |
size_t __l, __u, __idx; | |
const void *__p; | |
int __comparison; | |
__l = 0; | |
__u = __nmemb; | |
while (__l < __u) | |
{ | |
__idx = (__l + __u) / 2; | |
__p = (void *) (((const char *) __base) + (__idx * __size)); | |
__comparison = (*__compar) (__key, __p); | |
if (__comparison < 0) | |
__u = __idx; | |
else if (__comparison > 0) | |
__l = __idx + 1; | |
else | |
return (void *) __p; | |
} | |
return __null; | |
} | |
# 826 "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/stdlib.h" 2 3 4 | |
extern void qsort (void *__base, size_t __nmemb, size_t __size, | |
__compar_fn_t __compar) __attribute__ ((__nonnull__ (1, 4))); | |
extern void qsort_r (void *__base, size_t __nmemb, size_t __size, | |
__compar_d_fn_t __compar, void *__arg) | |
__attribute__ ((__nonnull__ (1, 4))); | |
extern int abs (int __x) throw () __attribute__ ((__const__)) __attribute__ ((__warn_unused_result__)); | |
extern long int labs (long int __x) throw () __attribute__ ((__const__)) __attribute__ ((__warn_unused_result__)); | |
__extension__ extern long long int llabs (long long int __x) | |
throw () __attribute__ ((__const__)) __attribute__ ((__warn_unused_result__)); | |
extern div_t div (int __numer, int __denom) | |
throw () __attribute__ ((__const__)) __attribute__ ((__warn_unused_result__)); | |
extern ldiv_t ldiv (long int __numer, long int __denom) | |
throw () __attribute__ ((__const__)) __attribute__ ((__warn_unused_result__)); | |
__extension__ extern lldiv_t lldiv (long long int __numer, | |
long long int __denom) | |
throw () __attribute__ ((__const__)) __attribute__ ((__warn_unused_result__)); | |
# 872 "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/stdlib.h" 3 4 | |
extern char *ecvt (double __value, int __ndigit, int *__restrict __decpt, | |
int *__restrict __sign) throw () __attribute__ ((__nonnull__ (3, 4))) __attribute__ ((__warn_unused_result__)); | |
extern char *fcvt (double __value, int __ndigit, int *__restrict __decpt, | |
int *__restrict __sign) throw () __attribute__ ((__nonnull__ (3, 4))) __attribute__ ((__warn_unused_result__)); | |
extern char *gcvt (double __value, int __ndigit, char *__buf) | |
throw () __attribute__ ((__nonnull__ (3))) __attribute__ ((__warn_unused_result__)); | |
extern char *qecvt (long double __value, int __ndigit, | |
int *__restrict __decpt, int *__restrict __sign) | |
throw () __attribute__ ((__nonnull__ (3, 4))) __attribute__ ((__warn_unused_result__)); | |
extern char *qfcvt (long double __value, int __ndigit, | |
int *__restrict __decpt, int *__restrict __sign) | |
throw () __attribute__ ((__nonnull__ (3, 4))) __attribute__ ((__warn_unused_result__)); | |
extern char *qgcvt (long double __value, int __ndigit, char *__buf) | |
throw () __attribute__ ((__nonnull__ (3))) __attribute__ ((__warn_unused_result__)); | |
extern int ecvt_r (double __value, int __ndigit, int *__restrict __decpt, | |
int *__restrict __sign, char *__restrict __buf, | |
size_t __len) throw () __attribute__ ((__nonnull__ (3, 4, 5))); | |
extern int fcvt_r (double __value, int __ndigit, int *__restrict __decpt, | |
int *__restrict __sign, char *__restrict __buf, | |
size_t __len) throw () __attribute__ ((__nonnull__ (3, 4, 5))); | |
extern int qecvt_r (long double __value, int __ndigit, | |
int *__restrict __decpt, int *__restrict __sign, | |
char *__restrict __buf, size_t __len) | |
throw () __attribute__ ((__nonnull__ (3, 4, 5))); | |
extern int qfcvt_r (long double __value, int __ndigit, | |
int *__restrict __decpt, int *__restrict __sign, | |
char *__restrict __buf, size_t __len) | |
throw () __attribute__ ((__nonnull__ (3, 4, 5))); | |
extern int mblen (const char *__s, size_t __n) throw (); | |
extern int mbtowc (wchar_t *__restrict __pwc, | |
const char *__restrict __s, size_t __n) throw (); | |
extern int wctomb (char *__s, wchar_t __wchar) throw (); | |
extern size_t mbstowcs (wchar_t *__restrict __pwcs, | |
const char *__restrict __s, size_t __n) throw (); | |
extern size_t wcstombs (char *__restrict __s, | |
const wchar_t *__restrict __pwcs, size_t __n) | |
throw (); | |
extern int rpmatch (const char *__response) throw () __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__)); | |
# 957 "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/stdlib.h" 3 4 | |
extern int getsubopt (char **__restrict __optionp, | |
char *const *__restrict __tokens, | |
char **__restrict __valuep) | |
throw () __attribute__ ((__nonnull__ (1, 2, 3))) __attribute__ ((__warn_unused_result__)); | |
extern int posix_openpt (int __oflag) __attribute__ ((__warn_unused_result__)); | |
extern int grantpt (int __fd) throw (); | |
extern int unlockpt (int __fd) throw (); | |
extern char *ptsname (int __fd) throw () __attribute__ ((__warn_unused_result__)); | |
extern int ptsname_r (int __fd, char *__buf, size_t __buflen) | |
throw () __attribute__ ((__nonnull__ (2))); | |
extern int getpt (void); | |
extern int getloadavg (double __loadavg[], int __nelem) | |
throw () __attribute__ ((__nonnull__ (1))); | |
# 1013 "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/stdlib.h" 3 4 | |
# 1 "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/x86_64-linux-gnu/bits/stdlib-float.h" 1 3 4 | |
# 24 "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/x86_64-linux-gnu/bits/stdlib-float.h" 3 4 | |
extern __inline __attribute__ ((__gnu_inline__)) double | |
atof (const char *__nptr) throw () | |
{ | |
return strtod (__nptr, (char **) __null); | |
} | |
# 1014 "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/stdlib.h" 2 3 4 | |
# 1 "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/x86_64-linux-gnu/bits/stdlib.h" 1 3 4 | |
# 23 "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/x86_64-linux-gnu/bits/stdlib.h" 3 4 | |
extern char *__realpath_chk (const char *__restrict __name, | |
char *__restrict __resolved, | |
size_t __resolvedlen) throw () __attribute__ ((__warn_unused_result__)); | |
extern char *__realpath_alias (const char *__restrict __name, char *__restrict __resolved) throw () __asm__ ("" "realpath") __attribute__ ((__warn_unused_result__)); | |
extern char *__realpath_chk_warn (const char *__restrict __name, char *__restrict __resolved, size_t __resolvedlen) throw () __asm__ ("" "__realpath_chk") __attribute__ ((__warn_unused_result__)) | |
; | |
extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__warn_unused_result__)) char * | |
realpath (const char *__restrict __name, char *__restrict __resolved) throw () | |
{ | |
if (__builtin_object_size (__resolved, 2 > 1) != (size_t) -1) | |
{ | |
return __realpath_chk (__name, __resolved, __builtin_object_size (__resolved, 2 > 1)); | |
} | |
return __realpath_alias (__name, __resolved); | |
} | |
extern int __ptsname_r_chk (int __fd, char *__buf, size_t __buflen, | |
size_t __nreal) throw () __attribute__ ((__nonnull__ (2))); | |
extern int __ptsname_r_alias (int __fd, char *__buf, size_t __buflen) throw () __asm__ ("" "ptsname_r") | |
__attribute__ ((__nonnull__ (2))); | |
extern int __ptsname_r_chk_warn (int __fd, char *__buf, size_t __buflen, size_t __nreal) throw () __asm__ ("" "__ptsname_r_chk") | |
__attribute__ ((__nonnull__ (2))) ; | |
extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) int | |
ptsname_r (int __fd, char *__buf, size_t __buflen) throw () | |
{ | |
if (__builtin_object_size (__buf, 2 > 1) != (size_t) -1) | |
{ | |
if (!__builtin_constant_p (__buflen)) | |
return __ptsname_r_chk (__fd, __buf, __buflen, __builtin_object_size (__buf, 2 > 1)); | |
if (__buflen > __builtin_object_size (__buf, 2 > 1)) | |
return __ptsname_r_chk_warn (__fd, __buf, __buflen, __builtin_object_size (__buf, 2 > 1)); | |
} | |
return __ptsname_r_alias (__fd, __buf, __buflen); | |
} | |
extern int __wctomb_chk (char *__s, wchar_t __wchar, size_t __buflen) | |
throw () __attribute__ ((__warn_unused_result__)); | |
extern int __wctomb_alias (char *__s, wchar_t __wchar) throw () __asm__ ("" "wctomb") __attribute__ ((__warn_unused_result__)); | |
extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__warn_unused_result__)) int | |
wctomb (char *__s, wchar_t __wchar) throw () | |
{ | |
#define __STDLIB_MB_LEN_MAX 16 | |
if (__builtin_object_size (__s, 2 > 1) != (size_t) -1 && 16 > __builtin_object_size (__s, 2 > 1)) | |
return __wctomb_chk (__s, __wchar, __builtin_object_size (__s, 2 > 1)); | |
return __wctomb_alias (__s, __wchar); | |
} | |
extern size_t __mbstowcs_chk (wchar_t *__restrict __dst, | |
const char *__restrict __src, | |
size_t __len, size_t __dstlen) throw (); | |
extern size_t __mbstowcs_alias (wchar_t *__restrict __dst, const char *__restrict __src, size_t __len) throw () __asm__ ("" "mbstowcs"); | |
extern size_t __mbstowcs_chk_warn (wchar_t *__restrict __dst, const char *__restrict __src, size_t __len, size_t __dstlen) throw () __asm__ ("" "__mbstowcs_chk") | |
; | |
extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) size_t | |
mbstowcs (wchar_t *__restrict __dst, const char *__restrict __src, size_t __len) throw () | |
{ | |
if (__builtin_object_size (__dst, 2 > 1) != (size_t) -1) | |
{ | |
if (!__builtin_constant_p (__len)) | |
return __mbstowcs_chk (__dst, __src, __len, | |
__builtin_object_size (__dst, 2 > 1) / sizeof (wchar_t)); | |
if (__len > __builtin_object_size (__dst, 2 > 1) / sizeof (wchar_t)) | |
return __mbstowcs_chk_warn (__dst, __src, __len, | |
__builtin_object_size (__dst, 2 > 1) / sizeof (wchar_t)); | |
} | |
return __mbstowcs_alias (__dst, __src, __len); | |
} | |
extern size_t __wcstombs_chk (char *__restrict __dst, | |
const wchar_t *__restrict __src, | |
size_t __len, size_t __dstlen) throw (); | |
extern size_t __wcstombs_alias (char *__restrict __dst, const wchar_t *__restrict __src, size_t __len) throw () __asm__ ("" "wcstombs"); | |
extern size_t __wcstombs_chk_warn (char *__restrict __dst, const wchar_t *__restrict __src, size_t __len, size_t __dstlen) throw () __asm__ ("" "__wcstombs_chk") | |
; | |
extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) size_t | |
wcstombs (char *__restrict __dst, const wchar_t *__restrict __src, size_t __len) throw () | |
{ | |
if (__builtin_object_size (__dst, 2 > 1) != (size_t) -1) | |
{ | |
if (!__builtin_constant_p (__len)) | |
return __wcstombs_chk (__dst, __src, __len, __builtin_object_size (__dst, 2 > 1)); | |
if (__len > __builtin_object_size (__dst, 2 > 1)) | |
return __wcstombs_chk_warn (__dst, __src, __len, __builtin_object_size (__dst, 2 > 1)); | |
} | |
return __wcstombs_alias (__dst, __src, __len); | |
} | |
# 1018 "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/stdlib.h" 2 3 4 | |
} | |
# 94 "../../buildtools/third_party/libc++/trunk/include/stdlib.h" 2 3 | |
extern "C++" { | |
# 111 "../../buildtools/third_party/libc++/trunk/include/stdlib.h" 3 | |
inline __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) long abs(long __x) noexcept { | |
return __builtin_labs(__x); | |
} | |
inline __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) long long abs(long long __x) noexcept { | |
return __builtin_llabs(__x); | |
} | |
inline __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) float abs(float __lcpp_x) noexcept { | |
return __builtin_fabsf(__lcpp_x); | |
} | |
inline __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) double abs(double __lcpp_x) noexcept { | |
return __builtin_fabs(__lcpp_x); | |
} | |
inline __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) long double | |
abs(long double __lcpp_x) noexcept { | |
return __builtin_fabsl(__lcpp_x); | |
} | |
# 148 "../../buildtools/third_party/libc++/trunk/include/stdlib.h" 3 | |
inline __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) ldiv_t div(long __x, long __y) noexcept { | |
return ::ldiv(__x, __y); | |
} | |
inline __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) lldiv_t div(long long __x, | |
long long __y) noexcept { | |
return ::lldiv(__x, __y); | |
} | |
} | |
# 88 "../../buildtools/third_party/libc++/trunk/include/cstdlib" 2 3 | |
# 99 "../../buildtools/third_party/libc++/trunk/include/cstdlib" 3 | |
namespace std { inline namespace Cr { | |
using ::size_t __attribute__((__using_if_exists__)); | |
using ::div_t __attribute__((__using_if_exists__)); | |
using ::ldiv_t __attribute__((__using_if_exists__)); | |
using ::lldiv_t __attribute__((__using_if_exists__)); | |
using ::atof __attribute__((__using_if_exists__)); | |
using ::atoi __attribute__((__using_if_exists__)); | |
using ::atol __attribute__((__using_if_exists__)); | |
using ::atoll __attribute__((__using_if_exists__)); | |
using ::strtod __attribute__((__using_if_exists__)); | |
using ::strtof __attribute__((__using_if_exists__)); | |
using ::strtold __attribute__((__using_if_exists__)); | |
using ::strtol __attribute__((__using_if_exists__)); | |
using ::strtoll __attribute__((__using_if_exists__)); | |
using ::strtoul __attribute__((__using_if_exists__)); | |
using ::strtoull __attribute__((__using_if_exists__)); | |
using ::rand __attribute__((__using_if_exists__)); | |
using ::srand __attribute__((__using_if_exists__)); | |
using ::calloc __attribute__((__using_if_exists__)); | |
using ::free __attribute__((__using_if_exists__)); | |
using ::malloc __attribute__((__using_if_exists__)); | |
using ::realloc __attribute__((__using_if_exists__)); | |
using ::abort __attribute__((__using_if_exists__)); | |
using ::atexit __attribute__((__using_if_exists__)); | |
using ::exit __attribute__((__using_if_exists__)); | |
using ::_Exit __attribute__((__using_if_exists__)); | |
using ::getenv __attribute__((__using_if_exists__)); | |
using ::system __attribute__((__using_if_exists__)); | |
using ::bsearch __attribute__((__using_if_exists__)); | |
using ::qsort __attribute__((__using_if_exists__)); | |
using ::abs __attribute__((__using_if_exists__)); | |
using ::labs __attribute__((__using_if_exists__)); | |
using ::llabs __attribute__((__using_if_exists__)); | |
using ::div __attribute__((__using_if_exists__)); | |
using ::ldiv __attribute__((__using_if_exists__)); | |
using ::lldiv __attribute__((__using_if_exists__)); | |
using ::mblen __attribute__((__using_if_exists__)); | |
using ::mbtowc __attribute__((__using_if_exists__)); | |
using ::wctomb __attribute__((__using_if_exists__)); | |
using ::mbstowcs __attribute__((__using_if_exists__)); | |
using ::wcstombs __attribute__((__using_if_exists__)); | |
using ::at_quick_exit __attribute__((__using_if_exists__)); | |
using ::quick_exit __attribute__((__using_if_exists__)); | |
using ::aligned_alloc __attribute__((__using_if_exists__)); | |
}} | |
# 14 "../../buildtools/third_party/libc++/trunk/include/__utility/unreachable.h" 2 3 | |
# 17 "../../buildtools/third_party/libc++/trunk/include/__utility/unreachable.h" 3 | |
namespace std { inline namespace Cr { | |
[[noreturn]] __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) inline void __libcpp_unreachable() | |
{ | |
__builtin_unreachable(); | |
} | |
}} | |
# 21 "../../buildtools/third_party/libc++/trunk/include/__iterator/advance.h" 2 3 | |
# 1 "../../buildtools/third_party/libc++/trunk/include/limits" 1 3 | |
# 11 "../../buildtools/third_party/libc++/trunk/include/limits" 3 | |
#define _LIBCPP_LIMITS | |
# 115 "../../buildtools/third_party/libc++/trunk/include/limits" 3 | |
# 1 "../../buildtools/third_party/libc++/trunk/include/__undef_macros" 1 3 | |
# 119 "../../buildtools/third_party/libc++/trunk/include/limits" 2 3 | |
namespace std { inline namespace Cr { | |
enum float_round_style | |
{ | |
round_indeterminate = -1, | |
round_toward_zero = 0, | |
round_to_nearest = 1, | |
round_toward_infinity = 2, | |
round_toward_neg_infinity = 3 | |
}; | |
enum float_denorm_style | |
{ | |
denorm_indeterminate = -1, | |
denorm_absent = 0, | |
denorm_present = 1 | |
}; | |
template <class _Tp, bool = is_arithmetic<_Tp>::value> | |
class __libcpp_numeric_limits | |
{ | |
protected: | |
typedef _Tp type; | |
static constexpr const bool is_specialized = false; | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) static constexpr type min() noexcept {return type();} | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) static constexpr type max() noexcept {return type();} | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) static constexpr type lowest() noexcept {return type();} | |
static constexpr const int digits = 0; | |
static constexpr const int digits10 = 0; | |
static constexpr const int max_digits10 = 0; | |
static constexpr const bool is_signed = false; | |
static constexpr const bool is_integer = false; | |
static constexpr const bool is_exact = false; | |
static constexpr const int radix = 0; | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) static constexpr type epsilon() noexcept {return type();} | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) static constexpr type round_error() noexcept {return type();} | |
static constexpr const int min_exponent = 0; | |
static constexpr const int min_exponent10 = 0; | |
static constexpr const int max_exponent = 0; | |
static constexpr const int max_exponent10 = 0; | |
static constexpr const bool has_infinity = false; | |
static constexpr const bool has_quiet_NaN = false; | |
static constexpr const bool has_signaling_NaN = false; | |
static constexpr const float_denorm_style has_denorm = denorm_absent; | |
static constexpr const bool has_denorm_loss = false; | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) static constexpr type infinity() noexcept {return type();} | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) static constexpr type quiet_NaN() noexcept {return type();} | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) static constexpr type signaling_NaN() noexcept {return type();} | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) static constexpr type denorm_min() noexcept {return type();} | |
static constexpr const bool is_iec559 = false; | |
static constexpr const bool is_bounded = false; | |
static constexpr const bool is_modulo = false; | |
static constexpr const bool traps = false; | |
static constexpr const bool tinyness_before = false; | |
static constexpr const float_round_style round_style = round_toward_zero; | |
}; | |
template <class _Tp, int __digits, bool _IsSigned> | |
struct __libcpp_compute_min | |
{ | |
static constexpr const _Tp value = _Tp(_Tp(1) << __digits); | |
}; | |
template <class _Tp, int __digits> | |
struct __libcpp_compute_min<_Tp, __digits, false> | |
{ | |
static constexpr const _Tp value = _Tp(0); | |
}; | |
template <class _Tp> | |
class __libcpp_numeric_limits<_Tp, true> | |
{ | |
protected: | |
typedef _Tp type; | |
static constexpr const bool is_specialized = true; | |
static constexpr const bool is_signed = type(-1) < type(0); | |
static constexpr const int digits = static_cast<int>(sizeof(type) * 8 - is_signed); | |
static constexpr const int digits10 = digits * 3 / 10; | |
static constexpr const int max_digits10 = 0; | |
static constexpr const type __min = __libcpp_compute_min<type, digits, is_signed>::value; | |
static constexpr const type __max = is_signed ? type(type(~0) ^ __min) : type(~0); | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) static constexpr type min() noexcept {return __min;} | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) static constexpr type max() noexcept {return __max;} | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) static constexpr type lowest() noexcept {return min();} | |
static constexpr const bool is_integer = true; | |
static constexpr const bool is_exact = true; | |
static constexpr const int radix = 2; | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) static constexpr type epsilon() noexcept {return type(0);} | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) static constexpr type round_error() noexcept {return type(0);} | |
static constexpr const int min_exponent = 0; | |
static constexpr const int min_exponent10 = 0; | |
static constexpr const int max_exponent = 0; | |
static constexpr const int max_exponent10 = 0; | |
static constexpr const bool has_infinity = false; | |
static constexpr const bool has_quiet_NaN = false; | |
static constexpr const bool has_signaling_NaN = false; | |
static constexpr const float_denorm_style has_denorm = denorm_absent; | |
static constexpr const bool has_denorm_loss = false; | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) static constexpr type infinity() noexcept {return type(0);} | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) static constexpr type quiet_NaN() noexcept {return type(0);} | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) static constexpr type signaling_NaN() noexcept {return type(0);} | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) static constexpr type denorm_min() noexcept {return type(0);} | |
static constexpr const bool is_iec559 = false; | |
static constexpr const bool is_bounded = true; | |
static constexpr const bool is_modulo = !std::is_signed<_Tp>::value; | |
static constexpr const bool traps = true; | |
static constexpr const bool tinyness_before = false; | |
static constexpr const float_round_style round_style = round_toward_zero; | |
}; | |
template <> | |
class __libcpp_numeric_limits<bool, true> | |
{ | |
protected: | |
typedef bool type; | |
static constexpr const bool is_specialized = true; | |
static constexpr const bool is_signed = false; | |
static constexpr const int digits = 1; | |
static constexpr const int digits10 = 0; | |
static constexpr const int max_digits10 = 0; | |
static constexpr const type __min = false; | |
static constexpr const type __max = true; | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) static constexpr type min() noexcept {return __min;} | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) static constexpr type max() noexcept {return __max;} | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) static constexpr type lowest() noexcept {return min();} | |
static constexpr const bool is_integer = true; | |
static constexpr const bool is_exact = true; | |
static constexpr const int radix = 2; | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) static constexpr type epsilon() noexcept {return type(0);} | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) static constexpr type round_error() noexcept {return type(0);} | |
static constexpr const int min_exponent = 0; | |
static constexpr const int min_exponent10 = 0; | |
static constexpr const int max_exponent = 0; | |
static constexpr const int max_exponent10 = 0; | |
static constexpr const bool has_infinity = false; | |
static constexpr const bool has_quiet_NaN = false; | |
static constexpr const bool has_signaling_NaN = false; | |
static constexpr const float_denorm_style has_denorm = denorm_absent; | |
static constexpr const bool has_denorm_loss = false; | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) static constexpr type infinity() noexcept {return type(0);} | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) static constexpr type quiet_NaN() noexcept {return type(0);} | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) static constexpr type signaling_NaN() noexcept {return type(0);} | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) static constexpr type denorm_min() noexcept {return type(0);} | |
static constexpr const bool is_iec559 = false; | |
static constexpr const bool is_bounded = true; | |
static constexpr const bool is_modulo = false; | |
static constexpr const bool traps = false; | |
static constexpr const bool tinyness_before = false; | |
static constexpr const float_round_style round_style = round_toward_zero; | |
}; | |
template <> | |
class __libcpp_numeric_limits<float, true> | |
{ | |
protected: | |
typedef float type; | |
static constexpr const bool is_specialized = true; | |
static constexpr const bool is_signed = true; | |
static constexpr const int digits = 24; | |
static constexpr const int digits10 = 6; | |
static constexpr const int max_digits10 = 2+(digits * 30103l)/100000l; | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) static constexpr type min() noexcept {return 1.17549435e-38F;} | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) static constexpr type max() noexcept {return 3.40282347e+38F;} | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) static constexpr type lowest() noexcept {return -max();} | |
static constexpr const bool is_integer = false; | |
static constexpr const bool is_exact = false; | |
static constexpr const int radix = 2; | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) static constexpr type epsilon() noexcept {return 1.19209290e-7F;} | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) static constexpr type round_error() noexcept {return 0.5F;} | |
static constexpr const int min_exponent = (-125); | |
static constexpr const int min_exponent10 = (-37); | |
static constexpr const int max_exponent = 128; | |
static constexpr const int max_exponent10 = 38; | |
static constexpr const bool has_infinity = true; | |
static constexpr const bool has_quiet_NaN = true; | |
static constexpr const bool has_signaling_NaN = true; | |
static constexpr const float_denorm_style has_denorm = denorm_present; | |
static constexpr const bool has_denorm_loss = false; | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) static constexpr type infinity() noexcept {return __builtin_huge_valf();} | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) static constexpr type quiet_NaN() noexcept {return __builtin_nanf("");} | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) static constexpr type signaling_NaN() noexcept {return __builtin_nansf("");} | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) static constexpr type denorm_min() noexcept {return 1.40129846e-45F;} | |
static constexpr const bool is_iec559 = true; | |
static constexpr const bool is_bounded = true; | |
static constexpr const bool is_modulo = false; | |
static constexpr const bool traps = false; | |
static constexpr const bool tinyness_before = false; | |
static constexpr const float_round_style round_style = round_to_nearest; | |
}; | |
template <> | |
class __libcpp_numeric_limits<double, true> | |
{ | |
protected: | |
typedef double type; | |
static constexpr const bool is_specialized = true; | |
static constexpr const bool is_signed = true; | |
static constexpr const int digits = 53; | |
static constexpr const int digits10 = 15; | |
static constexpr const int max_digits10 = 2+(digits * 30103l)/100000l; | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) static constexpr type min() noexcept {return 2.2250738585072014e-308;} | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) static constexpr type max() noexcept {return 1.7976931348623157e+308;} | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) static constexpr type lowest() noexcept {return -max();} | |
static constexpr const bool is_integer = false; | |
static constexpr const bool is_exact = false; | |
static constexpr const int radix = 2; | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) static constexpr type epsilon() noexcept {return 2.2204460492503131e-16;} | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) static constexpr type round_error() noexcept {return 0.5;} | |
static constexpr const int min_exponent = (-1021); | |
static constexpr const int min_exponent10 = (-307); | |
static constexpr const int max_exponent = 1024; | |
static constexpr const int max_exponent10 = 308; | |
static constexpr const bool has_infinity = true; | |
static constexpr const bool has_quiet_NaN = true; | |
static constexpr const bool has_signaling_NaN = true; | |
static constexpr const float_denorm_style has_denorm = denorm_present; | |
static constexpr const bool has_denorm_loss = false; | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) static constexpr type infinity() noexcept {return __builtin_huge_val();} | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) static constexpr type quiet_NaN() noexcept {return __builtin_nan("");} | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) static constexpr type signaling_NaN() noexcept {return __builtin_nans("");} | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) static constexpr type denorm_min() noexcept {return 4.9406564584124654e-324;} | |
static constexpr const bool is_iec559 = true; | |
static constexpr const bool is_bounded = true; | |
static constexpr const bool is_modulo = false; | |
static constexpr const bool traps = false; | |
static constexpr const bool tinyness_before = false; | |
static constexpr const float_round_style round_style = round_to_nearest; | |
}; | |
template <> | |
class __libcpp_numeric_limits<long double, true> | |
{ | |
protected: | |
typedef long double type; | |
static constexpr const bool is_specialized = true; | |
static constexpr const bool is_signed = true; | |
static constexpr const int digits = 64; | |
static constexpr const int digits10 = 18; | |
static constexpr const int max_digits10 = 2+(digits * 30103l)/100000l; | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) static constexpr type min() noexcept {return 3.36210314311209350626e-4932L;} | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) static constexpr type max() noexcept {return 1.18973149535723176502e+4932L;} | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) static constexpr type lowest() noexcept {return -max();} | |
static constexpr const bool is_integer = false; | |
static constexpr const bool is_exact = false; | |
static constexpr const int radix = 2; | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) static constexpr type epsilon() noexcept {return 1.08420217248550443401e-19L;} | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) static constexpr type round_error() noexcept {return 0.5L;} | |
static constexpr const int min_exponent = (-16381); | |
static constexpr const int min_exponent10 = (-4931); | |
static constexpr const int max_exponent = 16384; | |
static constexpr const int max_exponent10 = 4932; | |
static constexpr const bool has_infinity = true; | |
static constexpr const bool has_quiet_NaN = true; | |
static constexpr const bool has_signaling_NaN = true; | |
static constexpr const float_denorm_style has_denorm = denorm_present; | |
static constexpr const bool has_denorm_loss = false; | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) static constexpr type infinity() noexcept {return __builtin_huge_vall();} | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) static constexpr type quiet_NaN() noexcept {return __builtin_nanl("");} | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) static constexpr type signaling_NaN() noexcept {return __builtin_nansl("");} | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) static constexpr type denorm_min() noexcept {return 3.64519953188247460253e-4951L;} | |
static constexpr const bool is_iec559 = true; | |
static constexpr const bool is_bounded = true; | |
static constexpr const bool is_modulo = false; | |
static constexpr const bool traps = false; | |
static constexpr const bool tinyness_before = false; | |
static constexpr const float_round_style round_style = round_to_nearest; | |
}; | |
template <class _Tp> | |
class numeric_limits | |
: private __libcpp_numeric_limits<__remove_cv_t<_Tp> > | |
{ | |
typedef __libcpp_numeric_limits<__remove_cv_t<_Tp> > __base; | |
typedef typename __base::type type; | |
public: | |
static constexpr const bool is_specialized = __base::is_specialized; | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) static constexpr type min() noexcept {return __base::min();} | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) static constexpr type max() noexcept {return __base::max();} | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) static constexpr type lowest() noexcept {return __base::lowest();} | |
static constexpr const int digits = __base::digits; | |
static constexpr const int digits10 = __base::digits10; | |
static constexpr const int max_digits10 = __base::max_digits10; | |
static constexpr const bool is_signed = __base::is_signed; | |
static constexpr const bool is_integer = __base::is_integer; | |
static constexpr const bool is_exact = __base::is_exact; | |
static constexpr const int radix = __base::radix; | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) static constexpr type epsilon() noexcept {return __base::epsilon();} | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) static constexpr type round_error() noexcept {return __base::round_error();} | |
static constexpr const int min_exponent = __base::min_exponent; | |
static constexpr const int min_exponent10 = __base::min_exponent10; | |
static constexpr const int max_exponent = __base::max_exponent; | |
static constexpr const int max_exponent10 = __base::max_exponent10; | |
static constexpr const bool has_infinity = __base::has_infinity; | |
static constexpr const bool has_quiet_NaN = __base::has_quiet_NaN; | |
static constexpr const bool has_signaling_NaN = __base::has_signaling_NaN; | |
static constexpr const float_denorm_style has_denorm = __base::has_denorm; | |
static constexpr const bool has_denorm_loss = __base::has_denorm_loss; | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) static constexpr type infinity() noexcept {return __base::infinity();} | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) static constexpr type quiet_NaN() noexcept {return __base::quiet_NaN();} | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) static constexpr type signaling_NaN() noexcept {return __base::signaling_NaN();} | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) static constexpr type denorm_min() noexcept {return __base::denorm_min();} | |
static constexpr const bool is_iec559 = __base::is_iec559; | |
static constexpr const bool is_bounded = __base::is_bounded; | |
static constexpr const bool is_modulo = __base::is_modulo; | |
static constexpr const bool traps = __base::traps; | |
static constexpr const bool tinyness_before = __base::tinyness_before; | |
static constexpr const float_round_style round_style = __base::round_style; | |
}; | |
template <class _Tp> | |
constexpr const bool numeric_limits<_Tp>::is_specialized; | |
template <class _Tp> | |
constexpr const int numeric_limits<_Tp>::digits; | |
template <class _Tp> | |
constexpr const int numeric_limits<_Tp>::digits10; | |
template <class _Tp> | |
constexpr const int numeric_limits<_Tp>::max_digits10; | |
template <class _Tp> | |
constexpr const bool numeric_limits<_Tp>::is_signed; | |
template <class _Tp> | |
constexpr const bool numeric_limits<_Tp>::is_integer; | |
template <class _Tp> | |
constexpr const bool numeric_limits<_Tp>::is_exact; | |
template <class _Tp> | |
constexpr const int numeric_limits<_Tp>::radix; | |
template <class _Tp> | |
constexpr const int numeric_limits<_Tp>::min_exponent; | |
template <class _Tp> | |
constexpr const int numeric_limits<_Tp>::min_exponent10; | |
template <class _Tp> | |
constexpr const int numeric_limits<_Tp>::max_exponent; | |
template <class _Tp> | |
constexpr const int numeric_limits<_Tp>::max_exponent10; | |
template <class _Tp> | |
constexpr const bool numeric_limits<_Tp>::has_infinity; | |
template <class _Tp> | |
constexpr const bool numeric_limits<_Tp>::has_quiet_NaN; | |
template <class _Tp> | |
constexpr const bool numeric_limits<_Tp>::has_signaling_NaN; | |
template <class _Tp> | |
constexpr const float_denorm_style numeric_limits<_Tp>::has_denorm; | |
template <class _Tp> | |
constexpr const bool numeric_limits<_Tp>::has_denorm_loss; | |
template <class _Tp> | |
constexpr const bool numeric_limits<_Tp>::is_iec559; | |
template <class _Tp> | |
constexpr const bool numeric_limits<_Tp>::is_bounded; | |
template <class _Tp> | |
constexpr const bool numeric_limits<_Tp>::is_modulo; | |
template <class _Tp> | |
constexpr const bool numeric_limits<_Tp>::traps; | |
template <class _Tp> | |
constexpr const bool numeric_limits<_Tp>::tinyness_before; | |
template <class _Tp> | |
constexpr const float_round_style numeric_limits<_Tp>::round_style; | |
template <class _Tp> | |
class numeric_limits<const _Tp> | |
: private numeric_limits<_Tp> | |
{ | |
typedef numeric_limits<_Tp> __base; | |
typedef _Tp type; | |
public: | |
static constexpr const bool is_specialized = __base::is_specialized; | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) static constexpr type min() noexcept {return __base::min();} | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) static constexpr type max() noexcept {return __base::max();} | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) static constexpr type lowest() noexcept {return __base::lowest();} | |
static constexpr const int digits = __base::digits; | |
static constexpr const int digits10 = __base::digits10; | |
static constexpr const int max_digits10 = __base::max_digits10; | |
static constexpr const bool is_signed = __base::is_signed; | |
static constexpr const bool is_integer = __base::is_integer; | |
static constexpr const bool is_exact = __base::is_exact; | |
static constexpr const int radix = __base::radix; | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) static constexpr type epsilon() noexcept {return __base::epsilon();} | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) static constexpr type round_error() noexcept {return __base::round_error();} | |
static constexpr const int min_exponent = __base::min_exponent; | |
static constexpr const int min_exponent10 = __base::min_exponent10; | |
static constexpr const int max_exponent = __base::max_exponent; | |
static constexpr const int max_exponent10 = __base::max_exponent10; | |
static constexpr const bool has_infinity = __base::has_infinity; | |
static constexpr const bool has_quiet_NaN = __base::has_quiet_NaN; | |
static constexpr const bool has_signaling_NaN = __base::has_signaling_NaN; | |
static constexpr const float_denorm_style has_denorm = __base::has_denorm; | |
static constexpr const bool has_denorm_loss = __base::has_denorm_loss; | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) static constexpr type infinity() noexcept {return __base::infinity();} | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) static constexpr type quiet_NaN() noexcept {return __base::quiet_NaN();} | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) static constexpr type signaling_NaN() noexcept {return __base::signaling_NaN();} | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) static constexpr type denorm_min() noexcept {return __base::denorm_min();} | |
static constexpr const bool is_iec559 = __base::is_iec559; | |
static constexpr const bool is_bounded = __base::is_bounded; | |
static constexpr const bool is_modulo = __base::is_modulo; | |
static constexpr const bool traps = __base::traps; | |
static constexpr const bool tinyness_before = __base::tinyness_before; | |
static constexpr const float_round_style round_style = __base::round_style; | |
}; | |
template <class _Tp> | |
constexpr const bool numeric_limits<const _Tp>::is_specialized; | |
template <class _Tp> | |
constexpr const int numeric_limits<const _Tp>::digits; | |
template <class _Tp> | |
constexpr const int numeric_limits<const _Tp>::digits10; | |
template <class _Tp> | |
constexpr const int numeric_limits<const _Tp>::max_digits10; | |
template <class _Tp> | |
constexpr const bool numeric_limits<const _Tp>::is_signed; | |
template <class _Tp> | |
constexpr const bool numeric_limits<const _Tp>::is_integer; | |
template <class _Tp> | |
constexpr const bool numeric_limits<const _Tp>::is_exact; | |
template <class _Tp> | |
constexpr const int numeric_limits<const _Tp>::radix; | |
template <class _Tp> | |
constexpr const int numeric_limits<const _Tp>::min_exponent; | |
template <class _Tp> | |
constexpr const int numeric_limits<const _Tp>::min_exponent10; | |
template <class _Tp> | |
constexpr const int numeric_limits<const _Tp>::max_exponent; | |
template <class _Tp> | |
constexpr const int numeric_limits<const _Tp>::max_exponent10; | |
template <class _Tp> | |
constexpr const bool numeric_limits<const _Tp>::has_infinity; | |
template <class _Tp> | |
constexpr const bool numeric_limits<const _Tp>::has_quiet_NaN; | |
template <class _Tp> | |
constexpr const bool numeric_limits<const _Tp>::has_signaling_NaN; | |
template <class _Tp> | |
constexpr const float_denorm_style numeric_limits<const _Tp>::has_denorm; | |
template <class _Tp> | |
constexpr const bool numeric_limits<const _Tp>::has_denorm_loss; | |
template <class _Tp> | |
constexpr const bool numeric_limits<const _Tp>::is_iec559; | |
template <class _Tp> | |
constexpr const bool numeric_limits<const _Tp>::is_bounded; | |
template <class _Tp> | |
constexpr const bool numeric_limits<const _Tp>::is_modulo; | |
template <class _Tp> | |
constexpr const bool numeric_limits<const _Tp>::traps; | |
template <class _Tp> | |
constexpr const bool numeric_limits<const _Tp>::tinyness_before; | |
template <class _Tp> | |
constexpr const float_round_style numeric_limits<const _Tp>::round_style; | |
template <class _Tp> | |
class numeric_limits<volatile _Tp> | |
: private numeric_limits<_Tp> | |
{ | |
typedef numeric_limits<_Tp> __base; | |
typedef _Tp type; | |
public: | |
static constexpr const bool is_specialized = __base::is_specialized; | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) static constexpr type min() noexcept {return __base::min();} | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) static constexpr type max() noexcept {return __base::max();} | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) static constexpr type lowest() noexcept {return __base::lowest();} | |
static constexpr const int digits = __base::digits; | |
static constexpr const int digits10 = __base::digits10; | |
static constexpr const int max_digits10 = __base::max_digits10; | |
static constexpr const bool is_signed = __base::is_signed; | |
static constexpr const bool is_integer = __base::is_integer; | |
static constexpr const bool is_exact = __base::is_exact; | |
static constexpr const int radix = __base::radix; | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) static constexpr type epsilon() noexcept {return __base::epsilon();} | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) static constexpr type round_error() noexcept {return __base::round_error();} | |
static constexpr const int min_exponent = __base::min_exponent; | |
static constexpr const int min_exponent10 = __base::min_exponent10; | |
static constexpr const int max_exponent = __base::max_exponent; | |
static constexpr const int max_exponent10 = __base::max_exponent10; | |
static constexpr const bool has_infinity = __base::has_infinity; | |
static constexpr const bool has_quiet_NaN = __base::has_quiet_NaN; | |
static constexpr const bool has_signaling_NaN = __base::has_signaling_NaN; | |
static constexpr const float_denorm_style has_denorm = __base::has_denorm; | |
static constexpr const bool has_denorm_loss = __base::has_denorm_loss; | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) static constexpr type infinity() noexcept {return __base::infinity();} | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) static constexpr type quiet_NaN() noexcept {return __base::quiet_NaN();} | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) static constexpr type signaling_NaN() noexcept {return __base::signaling_NaN();} | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) static constexpr type denorm_min() noexcept {return __base::denorm_min();} | |
static constexpr const bool is_iec559 = __base::is_iec559; | |
static constexpr const bool is_bounded = __base::is_bounded; | |
static constexpr const bool is_modulo = __base::is_modulo; | |
static constexpr const bool traps = __base::traps; | |
static constexpr const bool tinyness_before = __base::tinyness_before; | |
static constexpr const float_round_style round_style = __base::round_style; | |
}; | |
template <class _Tp> | |
constexpr const bool numeric_limits<volatile _Tp>::is_specialized; | |
template <class _Tp> | |
constexpr const int numeric_limits<volatile _Tp>::digits; | |
template <class _Tp> | |
constexpr const int numeric_limits<volatile _Tp>::digits10; | |
template <class _Tp> | |
constexpr const int numeric_limits<volatile _Tp>::max_digits10; | |
template <class _Tp> | |
constexpr const bool numeric_limits<volatile _Tp>::is_signed; | |
template <class _Tp> | |
constexpr const bool numeric_limits<volatile _Tp>::is_integer; | |
template <class _Tp> | |
constexpr const bool numeric_limits<volatile _Tp>::is_exact; | |
template <class _Tp> | |
constexpr const int numeric_limits<volatile _Tp>::radix; | |
template <class _Tp> | |
constexpr const int numeric_limits<volatile _Tp>::min_exponent; | |
template <class _Tp> | |
constexpr const int numeric_limits<volatile _Tp>::min_exponent10; | |
template <class _Tp> | |
constexpr const int numeric_limits<volatile _Tp>::max_exponent; | |
template <class _Tp> | |
constexpr const int numeric_limits<volatile _Tp>::max_exponent10; | |
template <class _Tp> | |
constexpr const bool numeric_limits<volatile _Tp>::has_infinity; | |
template <class _Tp> | |
constexpr const bool numeric_limits<volatile _Tp>::has_quiet_NaN; | |
template <class _Tp> | |
constexpr const bool numeric_limits<volatile _Tp>::has_signaling_NaN; | |
template <class _Tp> | |
constexpr const float_denorm_style numeric_limits<volatile _Tp>::has_denorm; | |
template <class _Tp> | |
constexpr const bool numeric_limits<volatile _Tp>::has_denorm_loss; | |
template <class _Tp> | |
constexpr const bool numeric_limits<volatile _Tp>::is_iec559; | |
template <class _Tp> | |
constexpr const bool numeric_limits<volatile _Tp>::is_bounded; | |
template <class _Tp> | |
constexpr const bool numeric_limits<volatile _Tp>::is_modulo; | |
template <class _Tp> | |
constexpr const bool numeric_limits<volatile _Tp>::traps; | |
template <class _Tp> | |
constexpr const bool numeric_limits<volatile _Tp>::tinyness_before; | |
template <class _Tp> | |
constexpr const float_round_style numeric_limits<volatile _Tp>::round_style; | |
template <class _Tp> | |
class numeric_limits<const volatile _Tp> | |
: private numeric_limits<_Tp> | |
{ | |
typedef numeric_limits<_Tp> __base; | |
typedef _Tp type; | |
public: | |
static constexpr const bool is_specialized = __base::is_specialized; | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) static constexpr type min() noexcept {return __base::min();} | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) static constexpr type max() noexcept {return __base::max();} | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) static constexpr type lowest() noexcept {return __base::lowest();} | |
static constexpr const int digits = __base::digits; | |
static constexpr const int digits10 = __base::digits10; | |
static constexpr const int max_digits10 = __base::max_digits10; | |
static constexpr const bool is_signed = __base::is_signed; | |
static constexpr const bool is_integer = __base::is_integer; | |
static constexpr const bool is_exact = __base::is_exact; | |
static constexpr const int radix = __base::radix; | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) static constexpr type epsilon() noexcept {return __base::epsilon();} | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) static constexpr type round_error() noexcept {return __base::round_error();} | |
static constexpr const int min_exponent = __base::min_exponent; | |
static constexpr const int min_exponent10 = __base::min_exponent10; | |
static constexpr const int max_exponent = __base::max_exponent; | |
static constexpr const int max_exponent10 = __base::max_exponent10; | |
static constexpr const bool has_infinity = __base::has_infinity; | |
static constexpr const bool has_quiet_NaN = __base::has_quiet_NaN; | |
static constexpr const bool has_signaling_NaN = __base::has_signaling_NaN; | |
static constexpr const float_denorm_style has_denorm = __base::has_denorm; | |
static constexpr const bool has_denorm_loss = __base::has_denorm_loss; | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) static constexpr type infinity() noexcept {return __base::infinity();} | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) static constexpr type quiet_NaN() noexcept {return __base::quiet_NaN();} | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) static constexpr type signaling_NaN() noexcept {return __base::signaling_NaN();} | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) static constexpr type denorm_min() noexcept {return __base::denorm_min();} | |
static constexpr const bool is_iec559 = __base::is_iec559; | |
static constexpr const bool is_bounded = __base::is_bounded; | |
static constexpr const bool is_modulo = __base::is_modulo; | |
static constexpr const bool traps = __base::traps; | |
static constexpr const bool tinyness_before = __base::tinyness_before; | |
static constexpr const float_round_style round_style = __base::round_style; | |
}; | |
template <class _Tp> | |
constexpr const bool numeric_limits<const volatile _Tp>::is_specialized; | |
template <class _Tp> | |
constexpr const int numeric_limits<const volatile _Tp>::digits; | |
template <class _Tp> | |
constexpr const int numeric_limits<const volatile _Tp>::digits10; | |
template <class _Tp> | |
constexpr const int numeric_limits<const volatile _Tp>::max_digits10; | |
template <class _Tp> | |
constexpr const bool numeric_limits<const volatile _Tp>::is_signed; | |
template <class _Tp> | |
constexpr const bool numeric_limits<const volatile _Tp>::is_integer; | |
template <class _Tp> | |
constexpr const bool numeric_limits<const volatile _Tp>::is_exact; | |
template <class _Tp> | |
constexpr const int numeric_limits<const volatile _Tp>::radix; | |
template <class _Tp> | |
constexpr const int numeric_limits<const volatile _Tp>::min_exponent; | |
template <class _Tp> | |
constexpr const int numeric_limits<const volatile _Tp>::min_exponent10; | |
template <class _Tp> | |
constexpr const int numeric_limits<const volatile _Tp>::max_exponent; | |
template <class _Tp> | |
constexpr const int numeric_limits<const volatile _Tp>::max_exponent10; | |
template <class _Tp> | |
constexpr const bool numeric_limits<const volatile _Tp>::has_infinity; | |
template <class _Tp> | |
constexpr const bool numeric_limits<const volatile _Tp>::has_quiet_NaN; | |
template <class _Tp> | |
constexpr const bool numeric_limits<const volatile _Tp>::has_signaling_NaN; | |
template <class _Tp> | |
constexpr const float_denorm_style numeric_limits<const volatile _Tp>::has_denorm; | |
template <class _Tp> | |
constexpr const bool numeric_limits<const volatile _Tp>::has_denorm_loss; | |
template <class _Tp> | |
constexpr const bool numeric_limits<const volatile _Tp>::is_iec559; | |
template <class _Tp> | |
constexpr const bool numeric_limits<const volatile _Tp>::is_bounded; | |
template <class _Tp> | |
constexpr const bool numeric_limits<const volatile _Tp>::is_modulo; | |
template <class _Tp> | |
constexpr const bool numeric_limits<const volatile _Tp>::traps; | |
template <class _Tp> | |
constexpr const bool numeric_limits<const volatile _Tp>::tinyness_before; | |
template <class _Tp> | |
constexpr const float_round_style numeric_limits<const volatile _Tp>::round_style; | |
}} | |
# 24 "../../buildtools/third_party/libc++/trunk/include/__iterator/advance.h" 2 3 | |
# 28 "../../buildtools/third_party/libc++/trunk/include/__iterator/advance.h" 3 | |
namespace std { inline namespace Cr { | |
template <class _InputIter> | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) constexpr | |
void __advance(_InputIter& __i, typename iterator_traits<_InputIter>::difference_type __n, input_iterator_tag) { | |
for (; __n > 0; --__n) | |
++__i; | |
} | |
template <class _BiDirIter> | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) constexpr | |
void __advance(_BiDirIter& __i, typename iterator_traits<_BiDirIter>::difference_type __n, bidirectional_iterator_tag) { | |
if (__n >= 0) | |
for (; __n > 0; --__n) | |
++__i; | |
else | |
for (; __n < 0; ++__n) | |
--__i; | |
} | |
template <class _RandIter> | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) constexpr | |
void __advance(_RandIter& __i, typename iterator_traits<_RandIter>::difference_type __n, random_access_iterator_tag) { | |
__i += __n; | |
} | |
template < | |
class _InputIter, class _Distance, | |
class _IntegralDistance = decltype(std::__convert_to_integral(declval<_Distance>())), | |
class = __enable_if_t<is_integral<_IntegralDistance>::value> > | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) constexpr | |
void advance(_InputIter& __i, _Distance __orig_n) { | |
typedef typename iterator_traits<_InputIter>::difference_type _Difference; | |
_Difference __n = static_cast<_Difference>(std::__convert_to_integral(__orig_n)); | |
(__builtin_expect(static_cast<bool>(__n >= 0 || __is_cpp17_bidirectional_iterator<_InputIter>::value), 1) ? (void)0 : ::std::__libcpp_verbose_abort("%s:%d: assertion %s failed: %s", "../../buildtools/third_party/libc++/trunk/include/__iterator/advance.h", 65, "__n >= 0 || __is_cpp17_bidirectional_iterator<_InputIter>::value", "Attempt to advance(it, n) with negative n on a non-bidirectional iterator")); | |
std::__advance(__i, __n, typename iterator_traits<_InputIter>::iterator_category()); | |
} | |
# 198 "../../buildtools/third_party/libc++/trunk/include/__iterator/advance.h" 3 | |
}} | |
# 16 "../../buildtools/third_party/libc++/trunk/include/__algorithm/iterator_operations.h" 2 3 | |
# 1 "../../buildtools/third_party/libc++/trunk/include/__iterator/distance.h" 1 3 | |
# 11 "../../buildtools/third_party/libc++/trunk/include/__iterator/distance.h" 3 | |
#define _LIBCPP___ITERATOR_DISTANCE_H | |
# 1 "../../buildtools/third_party/libc++/trunk/include/__ranges/access.h" 1 3 | |
# 10 "../../buildtools/third_party/libc++/trunk/include/__ranges/access.h" 3 | |
#define _LIBCPP___RANGES_ACCESS_H | |
# 1 "../../buildtools/third_party/libc++/trunk/include/__ranges/enable_borrowed_range.h" 1 3 | |
# 11 "../../buildtools/third_party/libc++/trunk/include/__ranges/enable_borrowed_range.h" 3 | |
#define _LIBCPP___RANGES_ENABLE_BORROWED_RANGE_H | |
# 21 "../../buildtools/third_party/libc++/trunk/include/__ranges/enable_borrowed_range.h" 3 | |
namespace std { inline namespace Cr { | |
# 38 "../../buildtools/third_party/libc++/trunk/include/__ranges/enable_borrowed_range.h" 3 | |
}} | |
# 17 "../../buildtools/third_party/libc++/trunk/include/__ranges/access.h" 2 3 | |
# 1 "../../buildtools/third_party/libc++/trunk/include/__utility/auto_cast.h" 1 3 | |
# 11 "../../buildtools/third_party/libc++/trunk/include/__utility/auto_cast.h" 3 | |
#define _LIBCPP___UTILITY_AUTO_CAST_H | |
# 18 "../../buildtools/third_party/libc++/trunk/include/__utility/auto_cast.h" 3 | |
#define _LIBCPP_AUTO_CAST(expr) static_cast<typename decay<decltype((expr))>::type>(expr) | |
# 18 "../../buildtools/third_party/libc++/trunk/include/__ranges/access.h" 2 3 | |
# 22 "../../buildtools/third_party/libc++/trunk/include/__ranges/access.h" 3 | |
namespace std { inline namespace Cr { | |
# 222 "../../buildtools/third_party/libc++/trunk/include/__ranges/access.h" 3 | |
}} | |
# 18 "../../buildtools/third_party/libc++/trunk/include/__iterator/distance.h" 2 3 | |
# 1 "../../buildtools/third_party/libc++/trunk/include/__ranges/concepts.h" 1 3 | |
# 10 "../../buildtools/third_party/libc++/trunk/include/__ranges/concepts.h" 3 | |
#define _LIBCPP___RANGES_CONCEPTS_H | |
# 22 "../../buildtools/third_party/libc++/trunk/include/__ranges/concepts.h" 3 | |
# 1 "../../buildtools/third_party/libc++/trunk/include/__ranges/data.h" 1 3 | |
# 10 "../../buildtools/third_party/libc++/trunk/include/__ranges/data.h" 3 | |
#define _LIBCPP___RANGES_DATA_H | |
# 23 "../../buildtools/third_party/libc++/trunk/include/__ranges/data.h" 3 | |
namespace std { inline namespace Cr { | |
# 104 "../../buildtools/third_party/libc++/trunk/include/__ranges/data.h" 3 | |
}} | |
# 23 "../../buildtools/third_party/libc++/trunk/include/__ranges/concepts.h" 2 3 | |
# 1 "../../buildtools/third_party/libc++/trunk/include/__ranges/enable_view.h" 1 3 | |
# 11 "../../buildtools/third_party/libc++/trunk/include/__ranges/enable_view.h" 3 | |
#define _LIBCPP___RANGES_ENABLE_VIEW_H | |
# 19 "../../buildtools/third_party/libc++/trunk/include/__ranges/enable_view.h" 3 | |
namespace std { inline namespace Cr { | |
# 45 "../../buildtools/third_party/libc++/trunk/include/__ranges/enable_view.h" 3 | |
}} | |
# 25 "../../buildtools/third_party/libc++/trunk/include/__ranges/concepts.h" 2 3 | |
# 1 "../../buildtools/third_party/libc++/trunk/include/__ranges/size.h" 1 3 | |
# 10 "../../buildtools/third_party/libc++/trunk/include/__ranges/size.h" 3 | |
#define _LIBCPP___RANGES_SIZE_H | |
# 24 "../../buildtools/third_party/libc++/trunk/include/__ranges/size.h" 3 | |
namespace std { inline namespace Cr { | |
# 141 "../../buildtools/third_party/libc++/trunk/include/__ranges/size.h" 3 | |
}} | |
# 26 "../../buildtools/third_party/libc++/trunk/include/__ranges/concepts.h" 2 3 | |
# 1 "../../buildtools/third_party/libc++/trunk/include/initializer_list" 1 3 | |
# 11 "../../buildtools/third_party/libc++/trunk/include/initializer_list" 3 | |
#define _LIBCPP_INITIALIZER_LIST | |
# 51 "../../buildtools/third_party/libc++/trunk/include/initializer_list" 3 | |
namespace std | |
{ | |
template<class _Ep> | |
class initializer_list | |
{ | |
const _Ep* __begin_; | |
size_t __size_; | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) | |
constexpr | |
initializer_list(const _Ep* __b, size_t __s) noexcept | |
: __begin_(__b), | |
__size_(__s) | |
{} | |
public: | |
typedef _Ep value_type; | |
typedef const _Ep& reference; | |
typedef const _Ep& const_reference; | |
typedef size_t size_type; | |
typedef const _Ep* iterator; | |
typedef const _Ep* const_iterator; | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) | |
constexpr | |
initializer_list() noexcept : __begin_(nullptr), __size_(0) {} | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) | |
constexpr | |
size_t size() const noexcept {return __size_;} | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) | |
constexpr | |
const _Ep* begin() const noexcept {return __begin_;} | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) | |
constexpr | |
const _Ep* end() const noexcept {return __begin_ + __size_;} | |
}; | |
template<class _Ep> | |
inline __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) | |
constexpr | |
const _Ep* | |
begin(initializer_list<_Ep> __il) noexcept | |
{ | |
return __il.begin(); | |
} | |
template<class _Ep> | |
inline __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) | |
constexpr | |
const _Ep* | |
end(initializer_list<_Ep> __il) noexcept | |
{ | |
return __il.end(); | |
} | |
} | |
# 27 "../../buildtools/third_party/libc++/trunk/include/__ranges/concepts.h" 2 3 | |
# 31 "../../buildtools/third_party/libc++/trunk/include/__ranges/concepts.h" 3 | |
namespace std { inline namespace Cr { | |
# 140 "../../buildtools/third_party/libc++/trunk/include/__ranges/concepts.h" 3 | |
}} | |
# 19 "../../buildtools/third_party/libc++/trunk/include/__iterator/distance.h" 2 3 | |
# 24 "../../buildtools/third_party/libc++/trunk/include/__iterator/distance.h" 3 | |
namespace std { inline namespace Cr { | |
template <class _InputIter> | |
inline __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) constexpr | |
typename iterator_traits<_InputIter>::difference_type | |
__distance(_InputIter __first, _InputIter __last, input_iterator_tag) | |
{ | |
typename iterator_traits<_InputIter>::difference_type __r(0); | |
for (; __first != __last; ++__first) | |
++__r; | |
return __r; | |
} | |
template <class _RandIter> | |
inline __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) constexpr | |
typename iterator_traits<_RandIter>::difference_type | |
__distance(_RandIter __first, _RandIter __last, random_access_iterator_tag) | |
{ | |
return __last - __first; | |
} | |
template <class _InputIter> | |
inline __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) constexpr | |
typename iterator_traits<_InputIter>::difference_type | |
distance(_InputIter __first, _InputIter __last) | |
{ | |
return std::__distance(__first, __last, typename iterator_traits<_InputIter>::iterator_category()); | |
} | |
# 105 "../../buildtools/third_party/libc++/trunk/include/__iterator/distance.h" 3 | |
}} | |
# 17 "../../buildtools/third_party/libc++/trunk/include/__algorithm/iterator_operations.h" 2 3 | |
# 1 "../../buildtools/third_party/libc++/trunk/include/__iterator/iter_swap.h" 1 3 | |
# 10 "../../buildtools/third_party/libc++/trunk/include/__iterator/iter_swap.h" 3 | |
#define _LIBCPP___ITERATOR_ITER_SWAP_H | |
# 24 "../../buildtools/third_party/libc++/trunk/include/__iterator/iter_swap.h" 3 | |
namespace std { inline namespace Cr { | |
# 104 "../../buildtools/third_party/libc++/trunk/include/__iterator/iter_swap.h" 3 | |
}} | |
# 20 "../../buildtools/third_party/libc++/trunk/include/__algorithm/iterator_operations.h" 2 3 | |
# 1 "../../buildtools/third_party/libc++/trunk/include/__iterator/next.h" 1 3 | |
# 11 "../../buildtools/third_party/libc++/trunk/include/__iterator/next.h" 3 | |
#define _LIBCPP___ITERATOR_NEXT_H | |
# 23 "../../buildtools/third_party/libc++/trunk/include/__iterator/next.h" 3 | |
namespace std { inline namespace Cr { | |
template <class _InputIter> | |
inline __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) constexpr | |
typename enable_if<__is_cpp17_input_iterator<_InputIter>::value, _InputIter>::type | |
next(_InputIter __x, typename iterator_traits<_InputIter>::difference_type __n = 1) { | |
(__builtin_expect(static_cast<bool>(__n >= 0 || __is_cpp17_bidirectional_iterator<_InputIter>::value), 1) ? (void)0 : ::std::__libcpp_verbose_abort("%s:%d: assertion %s failed: %s", "../../buildtools/third_party/libc++/trunk/include/__iterator/next.h", 32, "__n >= 0 || __is_cpp17_bidirectional_iterator<_InputIter>::value", "Attempt to next(it, n) with negative n on a non-bidirectional iterator")); | |
std::advance(__x, __n); | |
return __x; | |
} | |
# 82 "../../buildtools/third_party/libc++/trunk/include/__iterator/next.h" 3 | |
}} | |
# 22 "../../buildtools/third_party/libc++/trunk/include/__algorithm/iterator_operations.h" 2 3 | |
# 1 "../../buildtools/third_party/libc++/trunk/include/__iterator/prev.h" 1 3 | |
# 11 "../../buildtools/third_party/libc++/trunk/include/__iterator/prev.h" 3 | |
#define _LIBCPP___ITERATOR_PREV_H | |
# 23 "../../buildtools/third_party/libc++/trunk/include/__iterator/prev.h" 3 | |
namespace std { inline namespace Cr { | |
template <class _InputIter> | |
inline __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) constexpr | |
typename enable_if<__is_cpp17_input_iterator<_InputIter>::value, _InputIter>::type | |
prev(_InputIter __x, typename iterator_traits<_InputIter>::difference_type __n = 1) { | |
(__builtin_expect(static_cast<bool>(__n <= 0 || __is_cpp17_bidirectional_iterator<_InputIter>::value), 1) ? (void)0 : ::std::__libcpp_verbose_abort("%s:%d: assertion %s failed: %s", "../../buildtools/third_party/libc++/trunk/include/__iterator/prev.h", 32, "__n <= 0 || __is_cpp17_bidirectional_iterator<_InputIter>::value", "Attempt to prev(it, n) with a positive n on a non-bidirectional iterator")); | |
std::advance(__x, -__n); | |
return __x; | |
} | |
# 75 "../../buildtools/third_party/libc++/trunk/include/__iterator/prev.h" 3 | |
}} | |
# 23 "../../buildtools/third_party/libc++/trunk/include/__algorithm/iterator_operations.h" 2 3 | |
# 31 "../../buildtools/third_party/libc++/trunk/include/__algorithm/iterator_operations.h" 3 | |
namespace std { inline namespace Cr { | |
template <class _AlgPolicy> struct _IterOps; | |
# 63 "../../buildtools/third_party/libc++/trunk/include/__algorithm/iterator_operations.h" 3 | |
struct _ClassicAlgPolicy {}; | |
template <> | |
struct _IterOps<_ClassicAlgPolicy> { | |
template <class _Iter> | |
using __value_type = typename iterator_traits<_Iter>::value_type; | |
template <class _Iter> | |
using __iterator_category = typename iterator_traits<_Iter>::iterator_category; | |
template <class _Iter> | |
using __difference_type = typename iterator_traits<_Iter>::difference_type; | |
template <class _Iter, class _Distance> | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) constexpr | |
static void advance(_Iter& __iter, _Distance __count) { | |
std::advance(__iter, __count); | |
} | |
template <class _Iter> | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) constexpr | |
static typename iterator_traits<_Iter>::difference_type distance(_Iter __first, _Iter __last) { | |
return std::distance(__first, __last); | |
} | |
template <class _Iter> | |
using __deref_t = decltype(*std::declval<_Iter&>()); | |
template <class _Iter> | |
using __move_t = decltype(std::move(*std::declval<_Iter&>())); | |
template <class _Iter> | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) constexpr | |
static void __validate_iter_reference() { | |
static_assert(is_same<__deref_t<_Iter>, typename iterator_traits<__remove_cvref_t<_Iter> >::reference>::value, | |
"It looks like your iterator's `iterator_traits<It>::reference` does not match the return type of " | |
"dereferencing the iterator, i.e., calling `*it`. This is undefined behavior according to [input.iterators] " | |
"and can lead to dangling reference issues at runtime, so we are flagging this."); | |
} | |
template <class _Iter> | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) constexpr static | |
__enable_if_t< | |
is_reference<__deref_t<_Iter> >::value, | |
__move_t<_Iter> > | |
__iter_move(_Iter&& __i) { | |
__validate_iter_reference<_Iter>(); | |
return std::move(*std::forward<_Iter>(__i)); | |
} | |
template <class _Iter> | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) constexpr static | |
__enable_if_t< | |
!is_reference<__deref_t<_Iter> >::value, | |
__deref_t<_Iter> > | |
__iter_move(_Iter&& __i) { | |
__validate_iter_reference<_Iter>(); | |
return *std::forward<_Iter>(__i); | |
} | |
template <class _Iter1, class _Iter2> | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) constexpr | |
static void iter_swap(_Iter1&& __a, _Iter2&& __b) { | |
std::iter_swap(std::forward<_Iter1>(__a), std::forward<_Iter2>(__b)); | |
} | |
template <class _Iterator> | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) static constexpr | |
_Iterator next(_Iterator, _Iterator __last) { | |
return __last; | |
} | |
template <class _Iter> | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) static constexpr | |
__remove_cvref_t<_Iter> next(_Iter&& __it, | |
typename iterator_traits<__remove_cvref_t<_Iter> >::difference_type __n = 1) { | |
return std::next(std::forward<_Iter>(__it), __n); | |
} | |
template <class _Iter> | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) static constexpr | |
__remove_cvref_t<_Iter> prev(_Iter&& __iter, | |
typename iterator_traits<__remove_cvref_t<_Iter> >::difference_type __n = 1) { | |
return std::prev(std::forward<_Iter>(__iter), __n); | |
} | |
template <class _Iter> | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) static constexpr | |
void __advance_to(_Iter& __first, _Iter __last) { | |
__first = __last; | |
} | |
}; | |
}} | |
# 15 "../../buildtools/third_party/libc++/trunk/include/__algorithm/adjacent_find.h" 2 3 | |
# 21 "../../buildtools/third_party/libc++/trunk/include/__algorithm/adjacent_find.h" 3 | |
namespace std { inline namespace Cr { | |
template <class _Iter, class _Sent, class _BinaryPredicate> | |
[[nodiscard]] __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) _Iter | |
__adjacent_find(_Iter __first, _Sent __last, _BinaryPredicate&& __pred) { | |
if (__first == __last) | |
return __first; | |
_Iter __i = __first; | |
while (++__i != __last) { | |
if (__pred(*__first, *__i)) | |
return __first; | |
__first = __i; | |
} | |
return __i; | |
} | |
template <class _ForwardIterator, class _BinaryPredicate> | |
[[nodiscard]] inline __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) _ForwardIterator | |
adjacent_find(_ForwardIterator __first, _ForwardIterator __last, _BinaryPredicate __pred) { | |
return std::__adjacent_find(std::move(__first), std::move(__last), __pred); | |
} | |
template <class _ForwardIterator> | |
[[nodiscard]] inline __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) _ForwardIterator | |
adjacent_find(_ForwardIterator __first, _ForwardIterator __last) { | |
typedef typename iterator_traits<_ForwardIterator>::value_type __v; | |
return std::adjacent_find(std::move(__first), std::move(__last), __equal_to<__v>()); | |
} | |
}} | |
# 1716 "../../buildtools/third_party/libc++/trunk/include/algorithm" 2 3 | |
# 1 "../../buildtools/third_party/libc++/trunk/include/__algorithm/all_of.h" 1 3 | |
# 11 "../../buildtools/third_party/libc++/trunk/include/__algorithm/all_of.h" 3 | |
#define _LIBCPP___ALGORITHM_ALL_OF_H | |
# 17 "../../buildtools/third_party/libc++/trunk/include/__algorithm/all_of.h" 3 | |
namespace std { inline namespace Cr { | |
template <class _InputIterator, class _Predicate> | |
[[nodiscard]] inline __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) bool | |
all_of(_InputIterator __first, _InputIterator __last, _Predicate __pred) { | |
for (; __first != __last; ++__first) | |
if (!__pred(*__first)) | |
return false; | |
return true; | |
} | |
}} | |
# 1717 "../../buildtools/third_party/libc++/trunk/include/algorithm" 2 3 | |
# 1 "../../buildtools/third_party/libc++/trunk/include/__algorithm/any_of.h" 1 3 | |
# 11 "../../buildtools/third_party/libc++/trunk/include/__algorithm/any_of.h" 3 | |
#define _LIBCPP___ALGORITHM_ANY_OF_H | |
# 17 "../../buildtools/third_party/libc++/trunk/include/__algorithm/any_of.h" 3 | |
namespace std { inline namespace Cr { | |
template <class _InputIterator, class _Predicate> | |
[[nodiscard]] inline __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) bool | |
any_of(_InputIterator __first, _InputIterator __last, _Predicate __pred) { | |
for (; __first != __last; ++__first) | |
if (__pred(*__first)) | |
return true; | |
return false; | |
} | |
}} | |
# 1718 "../../buildtools/third_party/libc++/trunk/include/algorithm" 2 3 | |
# 1 "../../buildtools/third_party/libc++/trunk/include/__algorithm/binary_search.h" 1 3 | |
# 10 "../../buildtools/third_party/libc++/trunk/include/__algorithm/binary_search.h" 3 | |
#define _LIBCPP___ALGORITHM_BINARY_SEARCH_H | |
# 1 "../../buildtools/third_party/libc++/trunk/include/__algorithm/comp_ref_type.h" 1 3 | |
# 10 "../../buildtools/third_party/libc++/trunk/include/__algorithm/comp_ref_type.h" 3 | |
#define _LIBCPP___ALGORITHM_COMP_REF_TYPE_H | |
# 18 "../../buildtools/third_party/libc++/trunk/include/__algorithm/comp_ref_type.h" 3 | |
namespace std { inline namespace Cr { | |
template <class _Compare> | |
struct __debug_less | |
{ | |
_Compare &__comp_; | |
constexpr | |
__debug_less(_Compare& __c) : __comp_(__c) {} | |
template <class _Tp, class _Up> | |
constexpr | |
bool operator()(const _Tp& __x, const _Up& __y) | |
{ | |
bool __r = __comp_(__x, __y); | |
if (__r) | |
__do_compare_assert(0, __y, __x); | |
return __r; | |
} | |
template <class _Tp, class _Up> | |
constexpr | |
bool operator()(_Tp& __x, _Up& __y) | |
{ | |
bool __r = __comp_(__x, __y); | |
if (__r) | |
__do_compare_assert(0, __y, __x); | |
return __r; | |
} | |
template <class _LHS, class _RHS> | |
constexpr | |
inline __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) | |
decltype((void)declval<_Compare&>()( | |
declval<_LHS &>(), declval<_RHS &>())) | |
__do_compare_assert(int, _LHS & __l, _RHS & __r) { | |
((void)0); | |
(void)__l; | |
(void)__r; | |
} | |
template <class _LHS, class _RHS> | |
constexpr | |
inline __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) | |
void __do_compare_assert(long, _LHS &, _RHS &) {} | |
}; | |
template <class _Comp> | |
struct __comp_ref_type { | |
typedef _Comp& type; | |
}; | |
}} | |
# 14 "../../buildtools/third_party/libc++/trunk/include/__algorithm/binary_search.h" 2 3 | |
# 1 "../../buildtools/third_party/libc++/trunk/include/__algorithm/lower_bound.h" 1 3 | |
# 10 "../../buildtools/third_party/libc++/trunk/include/__algorithm/lower_bound.h" 3 | |
#define _LIBCPP___ALGORITHM_LOWER_BOUND_H | |
# 1 "../../buildtools/third_party/libc++/trunk/include/__algorithm/half_positive.h" 1 3 | |
# 10 "../../buildtools/third_party/libc++/trunk/include/__algorithm/half_positive.h" 3 | |
#define _LIBCPP___ALGORITHM_HALF_POSITIVE_H | |
# 17 "../../buildtools/third_party/libc++/trunk/include/__algorithm/half_positive.h" 3 | |
namespace std { inline namespace Cr { | |
template <typename _Integral> | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) constexpr | |
typename enable_if | |
< | |
is_integral<_Integral>::value, | |
_Integral | |
>::type | |
__half_positive(_Integral __value) | |
{ | |
return static_cast<_Integral>(static_cast<__make_unsigned_t<_Integral> >(__value) / 2); | |
} | |
template <typename _Tp> | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) constexpr | |
typename enable_if | |
< | |
!is_integral<_Tp>::value, | |
_Tp | |
>::type | |
__half_positive(_Tp __value) | |
{ | |
return __value / 2; | |
} | |
}} | |
# 14 "../../buildtools/third_party/libc++/trunk/include/__algorithm/lower_bound.h" 2 3 | |
# 1 "../../buildtools/third_party/libc++/trunk/include/__functional/identity.h" 1 3 | |
# 11 "../../buildtools/third_party/libc++/trunk/include/__functional/identity.h" 3 | |
#define _LIBCPP___FUNCTIONAL_IDENTITY_H | |
# 18 "../../buildtools/third_party/libc++/trunk/include/__functional/identity.h" 3 | |
namespace std { inline namespace Cr { | |
struct __identity { | |
template <class _Tp> | |
[[nodiscard]] constexpr _Tp&& operator()(_Tp&& __t) const noexcept { | |
return std::forward<_Tp>(__t); | |
} | |
using is_transparent = void; | |
}; | |
# 44 "../../buildtools/third_party/libc++/trunk/include/__functional/identity.h" 3 | |
}} | |
# 17 "../../buildtools/third_party/libc++/trunk/include/__algorithm/lower_bound.h" 2 3 | |
# 27 "../../buildtools/third_party/libc++/trunk/include/__algorithm/lower_bound.h" 3 | |
namespace std { inline namespace Cr { | |
template <class _AlgPolicy, class _Iter, class _Sent, class _Type, class _Proj, class _Comp> | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) | |
_Iter __lower_bound_impl(_Iter __first, _Sent __last, const _Type& __value, _Comp& __comp, _Proj& __proj) { | |
auto __len = _IterOps<_AlgPolicy>::distance(__first, __last); | |
while (__len != 0) { | |
auto __l2 = std::__half_positive(__len); | |
_Iter __m = __first; | |
_IterOps<_AlgPolicy>::advance(__m, __l2); | |
if (std::__invoke(__comp, std::__invoke(__proj, *__m), __value)) { | |
__first = ++__m; | |
__len -= __l2 + 1; | |
} else { | |
__len = __l2; | |
} | |
} | |
return __first; | |
} | |
template <class _ForwardIterator, class _Tp, class _Compare> | |
[[nodiscard]] inline __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) | |
_ForwardIterator lower_bound(_ForwardIterator __first, _ForwardIterator __last, const _Tp& __value, _Compare __comp) { | |
static_assert(__is_callable<_Compare, decltype(*__first), const _Tp&>::value, | |
"The comparator has to be callable"); | |
auto __proj = std::__identity(); | |
return std::__lower_bound_impl<_ClassicAlgPolicy>(__first, __last, __value, __comp, __proj); | |
} | |
template <class _ForwardIterator, class _Tp> | |
[[nodiscard]] inline __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) | |
_ForwardIterator lower_bound(_ForwardIterator __first, _ForwardIterator __last, const _Tp& __value) { | |
return std::lower_bound(__first, __last, __value, | |
__less<typename iterator_traits<_ForwardIterator>::value_type, _Tp>()); | |
} | |
}} | |
# 15 "../../buildtools/third_party/libc++/trunk/include/__algorithm/binary_search.h" 2 3 | |
# 20 "../../buildtools/third_party/libc++/trunk/include/__algorithm/binary_search.h" 3 | |
namespace std { inline namespace Cr { | |
template <class _ForwardIterator, class _Tp, class _Compare> | |
[[nodiscard]] inline | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) | |
bool | |
binary_search(_ForwardIterator __first, _ForwardIterator __last, const _Tp& __value, _Compare __comp) | |
{ | |
using _Comp_ref = typename __comp_ref_type<_Compare>::type; | |
__first = std::lower_bound<_ForwardIterator, _Tp, _Comp_ref>(__first, __last, __value, __comp); | |
return __first != __last && !__comp(__value, *__first); | |
} | |
template <class _ForwardIterator, class _Tp> | |
[[nodiscard]] inline | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) | |
bool | |
binary_search(_ForwardIterator __first, _ForwardIterator __last, const _Tp& __value) | |
{ | |
return std::binary_search(__first, __last, __value, | |
__less<typename iterator_traits<_ForwardIterator>::value_type, _Tp>()); | |
} | |
}} | |
# 1719 "../../buildtools/third_party/libc++/trunk/include/algorithm" 2 3 | |
# 1 "../../buildtools/third_party/libc++/trunk/include/__algorithm/clamp.h" 1 3 | |
# 10 "../../buildtools/third_party/libc++/trunk/include/__algorithm/clamp.h" 3 | |
#define _LIBCPP___ALGORITHM_CLAMP_H | |
# 18 "../../buildtools/third_party/libc++/trunk/include/__algorithm/clamp.h" 3 | |
namespace std { inline namespace Cr { | |
template<class _Tp, class _Compare> | |
[[nodiscard]] inline | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) constexpr | |
const _Tp& | |
clamp(const _Tp& __v, const _Tp& __lo, const _Tp& __hi, _Compare __comp) | |
{ | |
(__builtin_expect(static_cast<bool>(!__comp(__hi, __lo)), 1) ? (void)0 : ::std::__libcpp_verbose_abort("%s:%d: assertion %s failed: %s", "../../buildtools/third_party/libc++/trunk/include/__algorithm/clamp.h", 29, "!__comp(__hi, __lo)", "Bad bounds passed to std::clamp")); | |
return __comp(__v, __lo) ? __lo : __comp(__hi, __v) ? __hi : __v; | |
} | |
template<class _Tp> | |
[[nodiscard]] inline | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) constexpr | |
const _Tp& | |
clamp(const _Tp& __v, const _Tp& __lo, const _Tp& __hi) | |
{ | |
return std::clamp(__v, __lo, __hi, __less<_Tp>()); | |
} | |
}} | |
# 1720 "../../buildtools/third_party/libc++/trunk/include/algorithm" 2 3 | |
# 1 "../../buildtools/third_party/libc++/trunk/include/__algorithm/copy.h" 1 3 | |
# 10 "../../buildtools/third_party/libc++/trunk/include/__algorithm/copy.h" 3 | |
#define _LIBCPP___ALGORITHM_COPY_H | |
# 1 "../../buildtools/third_party/libc++/trunk/include/__algorithm/unwrap_iter.h" 1 3 | |
# 10 "../../buildtools/third_party/libc++/trunk/include/__algorithm/unwrap_iter.h" 3 | |
#define _LIBCPP___ALGORITHM_UNWRAP_ITER_H | |
# 20 "../../buildtools/third_party/libc++/trunk/include/__algorithm/unwrap_iter.h" 3 | |
namespace std { inline namespace Cr { | |
# 33 "../../buildtools/third_party/libc++/trunk/include/__algorithm/unwrap_iter.h" 3 | |
template <class _Iter, bool = __is_cpp17_contiguous_iterator<_Iter>::value> | |
struct __unwrap_iter_impl { | |
static __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) constexpr _Iter __rewrap(_Iter, _Iter __iter) { return __iter; } | |
static __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) constexpr _Iter __unwrap(_Iter __i) noexcept { return __i; } | |
}; | |
template <class _Iter> | |
struct __unwrap_iter_impl<_Iter, true> { | |
using _ToAddressT = decltype(std::__to_address(std::declval<_Iter>())); | |
static __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) constexpr _Iter __rewrap(_Iter __orig_iter, _ToAddressT __unwrapped_iter) { | |
return __orig_iter + (__unwrapped_iter - std::__to_address(__orig_iter)); | |
} | |
static __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) constexpr _ToAddressT __unwrap(_Iter __i) noexcept { | |
return std::__to_address(__i); | |
} | |
}; | |
template<class _Iter, | |
class _Impl = __unwrap_iter_impl<_Iter>, | |
__enable_if_t<is_copy_constructible<_Iter>::value, int> = 0> | |
inline __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) constexpr | |
decltype(_Impl::__unwrap(std::declval<_Iter>())) __unwrap_iter(_Iter __i) noexcept { | |
return _Impl::__unwrap(__i); | |
} | |
template <class _OrigIter, class _Iter, class _Impl = __unwrap_iter_impl<_OrigIter> > | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) constexpr _OrigIter __rewrap_iter(_OrigIter __orig_iter, _Iter __iter) noexcept { | |
return _Impl::__rewrap(std::move(__orig_iter), std::move(__iter)); | |
} | |
}} | |
# 13 "../../buildtools/third_party/libc++/trunk/include/__algorithm/copy.h" 2 3 | |
# 1 "../../buildtools/third_party/libc++/trunk/include/__algorithm/unwrap_range.h" 1 3 | |
# 10 "../../buildtools/third_party/libc++/trunk/include/__algorithm/unwrap_range.h" 3 | |
#define _LIBCPP___ALGORITHM_UNWRAP_RANGE_H | |
# 1 "../../buildtools/third_party/libc++/trunk/include/__utility/pair.h" 1 3 | |
# 10 "../../buildtools/third_party/libc++/trunk/include/__utility/pair.h" 3 | |
#define _LIBCPP___UTILITY_PAIR_H | |
# 1 "../../buildtools/third_party/libc++/trunk/include/__compare/common_comparison_category.h" 1 3 | |
# 10 "../../buildtools/third_party/libc++/trunk/include/__compare/common_comparison_category.h" 3 | |
#define _LIBCPP___COMPARE_COMMON_COMPARISON_CATEGORY_H | |
# 1 "../../buildtools/third_party/libc++/trunk/include/__compare/ordering.h" 1 3 | |
# 10 "../../buildtools/third_party/libc++/trunk/include/__compare/ordering.h" 3 | |
#define _LIBCPP___COMPARE_ORDERING_H | |
# 17 "../../buildtools/third_party/libc++/trunk/include/__compare/ordering.h" 3 | |
namespace std { inline namespace Cr { | |
# 323 "../../buildtools/third_party/libc++/trunk/include/__compare/ordering.h" 3 | |
}} | |
# 13 "../../buildtools/third_party/libc++/trunk/include/__compare/common_comparison_category.h" 2 3 | |
# 18 "../../buildtools/third_party/libc++/trunk/include/__compare/common_comparison_category.h" 3 | |
namespace std { inline namespace Cr { | |
# 92 "../../buildtools/third_party/libc++/trunk/include/__compare/common_comparison_category.h" 3 | |
}} | |
# 13 "../../buildtools/third_party/libc++/trunk/include/__utility/pair.h" 2 3 | |
# 1 "../../buildtools/third_party/libc++/trunk/include/__compare/synth_three_way.h" 1 3 | |
# 10 "../../buildtools/third_party/libc++/trunk/include/__compare/synth_three_way.h" 3 | |
#define _LIBCPP___COMPARE_SYNTH_THREE_WAY_H | |
# 1 "../../buildtools/third_party/libc++/trunk/include/__compare/three_way_comparable.h" 1 3 | |
# 10 "../../buildtools/third_party/libc++/trunk/include/__compare/three_way_comparable.h" 3 | |
#define _LIBCPP___COMPARE_THREE_WAY_COMPARABLE_H | |
# 24 "../../buildtools/third_party/libc++/trunk/include/__compare/three_way_comparable.h" 3 | |
namespace std { inline namespace Cr { | |
# 57 "../../buildtools/third_party/libc++/trunk/include/__compare/three_way_comparable.h" 3 | |
}} | |
# 14 "../../buildtools/third_party/libc++/trunk/include/__compare/synth_three_way.h" 2 3 | |
# 20 "../../buildtools/third_party/libc++/trunk/include/__compare/synth_three_way.h" 3 | |
namespace std { inline namespace Cr { | |
# 49 "../../buildtools/third_party/libc++/trunk/include/__compare/synth_three_way.h" 3 | |
}} | |
# 14 "../../buildtools/third_party/libc++/trunk/include/__utility/pair.h" 2 3 | |
# 1 "../../buildtools/third_party/libc++/trunk/include/__functional/unwrap_ref.h" 1 3 | |
# 10 "../../buildtools/third_party/libc++/trunk/include/__functional/unwrap_ref.h" 3 | |
#define _LIBCPP___FUNCTIONAL_UNWRAP_REF_H | |
# 16 "../../buildtools/third_party/libc++/trunk/include/__functional/unwrap_ref.h" 3 | |
namespace std { inline namespace Cr { | |
template <class _Tp> | |
struct __unwrap_reference { typedef __attribute__((__nodebug__)) _Tp type; }; | |
template <class _Tp> | |
class reference_wrapper; | |
template <class _Tp> | |
struct __unwrap_reference<reference_wrapper<_Tp> > { typedef __attribute__((__nodebug__)) _Tp& type; }; | |
template <class _Tp> | |
struct decay; | |
# 46 "../../buildtools/third_party/libc++/trunk/include/__functional/unwrap_ref.h" 3 | |
template <class _Tp> | |
struct __unwrap_ref_decay | |
: __unwrap_reference<typename decay<_Tp>::type> | |
{ }; | |
}} | |
# 16 "../../buildtools/third_party/libc++/trunk/include/__utility/pair.h" 2 3 | |
# 1 "../../buildtools/third_party/libc++/trunk/include/__fwd/get.h" 1 3 | |
# 10 "../../buildtools/third_party/libc++/trunk/include/__fwd/get.h" 3 | |
#define _LIBCPP___FWD_GET_H | |
# 1 "../../buildtools/third_party/libc++/trunk/include/__fwd/array.h" 1 3 | |
# 10 "../../buildtools/third_party/libc++/trunk/include/__fwd/array.h" 3 | |
#define _LIBCPP___FWD_ARRAY_H | |
# 17 "../../buildtools/third_party/libc++/trunk/include/__fwd/array.h" 3 | |
namespace std { inline namespace Cr { | |
template <class _Tp, size_t _Size> | |
struct array; | |
}} | |
# 14 "../../buildtools/third_party/libc++/trunk/include/__fwd/get.h" 2 3 | |
# 1 "../../buildtools/third_party/libc++/trunk/include/__fwd/tuple.h" 1 3 | |
# 10 "../../buildtools/third_party/libc++/trunk/include/__fwd/tuple.h" 3 | |
#define _LIBCPP___FWD_TUPLE_H | |
# 16 "../../buildtools/third_party/libc++/trunk/include/__fwd/tuple.h" 3 | |
namespace std { inline namespace Cr { | |
template <class...> | |
class tuple; | |
}} | |
# 16 "../../buildtools/third_party/libc++/trunk/include/__fwd/get.h" 2 3 | |
# 1 "../../buildtools/third_party/libc++/trunk/include/__tuple/tuple_element.h" 1 3 | |
# 10 "../../buildtools/third_party/libc++/trunk/include/__tuple/tuple_element.h" 3 | |
#define _LIBCPP___TUPLE_TUPLE_ELEMENT_H | |
# 1 "../../buildtools/third_party/libc++/trunk/include/__tuple/tuple_indices.h" 1 3 | |
# 10 "../../buildtools/third_party/libc++/trunk/include/__tuple/tuple_indices.h" 3 | |
#define _LIBCPP___TUPLE_MAKE_TUPLE_INDICES_H | |
# 1 "../../buildtools/third_party/libc++/trunk/include/__utility/integer_sequence.h" 1 3 | |
# 10 "../../buildtools/third_party/libc++/trunk/include/__utility/integer_sequence.h" 3 | |
#define _LIBCPP___UTILITY_INTEGER_SEQUENCE_H | |
# 17 "../../buildtools/third_party/libc++/trunk/include/__utility/integer_sequence.h" 3 | |
namespace std { inline namespace Cr { | |
template <size_t...> struct __tuple_indices; | |
template <class _IdxType, _IdxType... _Values> | |
struct __integer_sequence { | |
template <template <class _OIdxType, _OIdxType...> class _ToIndexSeq, class _ToIndexType> | |
using __convert = _ToIndexSeq<_ToIndexType, _Values...>; | |
template <size_t _Sp> | |
using __to_tuple_indices = __tuple_indices<(_Values + _Sp)...>; | |
}; | |
# 76 "../../buildtools/third_party/libc++/trunk/include/__utility/integer_sequence.h" 3 | |
template <size_t _Ep, size_t _Sp> | |
using __make_indices_imp = | |
typename __make_integer_seq<__integer_sequence, size_t, _Ep - _Sp>::template | |
__to_tuple_indices<_Sp>; | |
# 89 "../../buildtools/third_party/libc++/trunk/include/__utility/integer_sequence.h" 3 | |
template<class _Tp, _Tp... _Ip> | |
struct integer_sequence | |
{ | |
typedef _Tp value_type; | |
static_assert( is_integral<_Tp>::value, | |
"std::integer_sequence can only be instantiated with an integral type" ); | |
static | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) | |
constexpr | |
size_t | |
size() noexcept { return sizeof...(_Ip); } | |
}; | |
template<size_t... _Ip> | |
using index_sequence = integer_sequence<size_t, _Ip...>; | |
template <class _Tp, _Tp _Ep> | |
using __make_integer_sequence __attribute__((__nodebug__)) = __make_integer_seq<integer_sequence, _Tp, _Ep>; | |
# 131 "../../buildtools/third_party/libc++/trunk/include/__utility/integer_sequence.h" 3 | |
template<class _Tp, _Tp _Np> | |
using make_integer_sequence = __make_integer_sequence<_Tp, _Np>; | |
template<size_t _Np> | |
using make_index_sequence = make_integer_sequence<size_t, _Np>; | |
template<class... _Tp> | |
using index_sequence_for = make_index_sequence<sizeof...(_Tp)>; | |
}} | |
# 14 "../../buildtools/third_party/libc++/trunk/include/__tuple/tuple_indices.h" 2 3 | |
# 18 "../../buildtools/third_party/libc++/trunk/include/__tuple/tuple_indices.h" 3 | |
namespace std { inline namespace Cr { | |
template <size_t...> struct __tuple_indices {}; | |
template <size_t _Ep, size_t _Sp = 0> | |
struct __make_tuple_indices | |
{ | |
static_assert(_Sp <= _Ep, "__make_tuple_indices input error"); | |
typedef __make_indices_imp<_Ep, _Sp> type; | |
}; | |
}} | |
# 14 "../../buildtools/third_party/libc++/trunk/include/__tuple/tuple_element.h" 2 3 | |
# 1 "../../buildtools/third_party/libc++/trunk/include/__tuple/tuple_types.h" 1 3 | |
# 10 "../../buildtools/third_party/libc++/trunk/include/__tuple/tuple_types.h" 3 | |
#define _LIBCPP___TUPLE_TUPLE_TYPES_H | |
# 16 "../../buildtools/third_party/libc++/trunk/include/__tuple/tuple_types.h" 3 | |
namespace std { inline namespace Cr { | |
template <class ..._Tp> struct __tuple_types {}; | |
}} | |
# 15 "../../buildtools/third_party/libc++/trunk/include/__tuple/tuple_element.h" 2 3 | |
# 22 "../../buildtools/third_party/libc++/trunk/include/__tuple/tuple_element.h" 3 | |
namespace std { inline namespace Cr { | |
template <size_t _Ip, class _Tp> struct tuple_element; | |
template <size_t _Ip, class _Tp> | |
struct tuple_element<_Ip, const _Tp> | |
{ | |
typedef __attribute__((__nodebug__)) typename add_const<typename tuple_element<_Ip, _Tp>::type>::type type; | |
}; | |
template <size_t _Ip, class _Tp> | |
struct tuple_element<_Ip, volatile _Tp> | |
{ | |
typedef __attribute__((__nodebug__)) typename add_volatile<typename tuple_element<_Ip, _Tp>::type>::type type; | |
}; | |
template <size_t _Ip, class _Tp> | |
struct tuple_element<_Ip, const volatile _Tp> | |
{ | |
typedef __attribute__((__nodebug__)) typename add_cv<typename tuple_element<_Ip, _Tp>::type>::type type; | |
}; | |
# 77 "../../buildtools/third_party/libc++/trunk/include/__tuple/tuple_element.h" 3 | |
template <size_t _Ip, class ..._Types> | |
struct tuple_element<_Ip, __tuple_types<_Types...> > | |
{ | |
static_assert(_Ip < sizeof...(_Types), "tuple_element index out of range"); | |
typedef __attribute__((__nodebug__)) __type_pack_element<_Ip, _Types...> type; | |
}; | |
template <size_t _Ip, class ..._Tp> | |
using tuple_element_t __attribute__((__nodebug__)) = typename tuple_element <_Ip, _Tp...>::type; | |
}} | |
# 17 "../../buildtools/third_party/libc++/trunk/include/__fwd/get.h" 2 3 | |
# 21 "../../buildtools/third_party/libc++/trunk/include/__fwd/get.h" 3 | |
namespace std { inline namespace Cr { | |
template <size_t _Ip, class ..._Tp> | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) constexpr | |
typename tuple_element<_Ip, tuple<_Tp...> >::type& | |
get(tuple<_Tp...>&) noexcept; | |
template <size_t _Ip, class ..._Tp> | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) constexpr | |
const typename tuple_element<_Ip, tuple<_Tp...> >::type& | |
get(const tuple<_Tp...>&) noexcept; | |
template <size_t _Ip, class ..._Tp> | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) constexpr | |
typename tuple_element<_Ip, tuple<_Tp...> >::type&& | |
get(tuple<_Tp...>&&) noexcept; | |
template <size_t _Ip, class ..._Tp> | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) constexpr | |
const typename tuple_element<_Ip, tuple<_Tp...> >::type&& | |
get(const tuple<_Tp...>&&) noexcept; | |
template <size_t _Ip, class _T1, class _T2> | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) constexpr | |
typename tuple_element<_Ip, pair<_T1, _T2> >::type& | |
get(pair<_T1, _T2>&) noexcept; | |
template <size_t _Ip, class _T1, class _T2> | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) constexpr | |
const typename tuple_element<_Ip, pair<_T1, _T2> >::type& | |
get(const pair<_T1, _T2>&) noexcept; | |
template <size_t _Ip, class _T1, class _T2> | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) constexpr | |
typename tuple_element<_Ip, pair<_T1, _T2> >::type&& | |
get(pair<_T1, _T2>&&) noexcept; | |
template <size_t _Ip, class _T1, class _T2> | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) constexpr | |
const typename tuple_element<_Ip, pair<_T1, _T2> >::type&& | |
get(const pair<_T1, _T2>&&) noexcept; | |
template <size_t _Ip, class _Tp, size_t _Size> | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) constexpr | |
_Tp& | |
get(array<_Tp, _Size>&) noexcept; | |
template <size_t _Ip, class _Tp, size_t _Size> | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) constexpr | |
const _Tp& | |
get(const array<_Tp, _Size>&) noexcept; | |
template <size_t _Ip, class _Tp, size_t _Size> | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) constexpr | |
_Tp&& | |
get(array<_Tp, _Size>&&) noexcept; | |
template <size_t _Ip, class _Tp, size_t _Size> | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) constexpr | |
const _Tp&& | |
get(const array<_Tp, _Size>&&) noexcept; | |
}} | |
# 17 "../../buildtools/third_party/libc++/trunk/include/__utility/pair.h" 2 3 | |
# 1 "../../buildtools/third_party/libc++/trunk/include/__tuple/sfinae_helpers.h" 1 3 | |
# 10 "../../buildtools/third_party/libc++/trunk/include/__tuple/sfinae_helpers.h" 3 | |
#define _LIBCPP___TUPLE_SFINAE_HELPERS_H | |
# 1 "../../buildtools/third_party/libc++/trunk/include/__tuple/make_tuple_types.h" 1 3 | |
# 10 "../../buildtools/third_party/libc++/trunk/include/__tuple/make_tuple_types.h" 3 | |
#define _LIBCPP___TUPLE_MAKE_TUPLE_TYPES_H | |
# 1 "../../buildtools/third_party/libc++/trunk/include/__tuple/apply_cv.h" 1 3 | |
# 10 "../../buildtools/third_party/libc++/trunk/include/__tuple/apply_cv.h" 3 | |
#define _LIBCPP___TUPLE_APPLY_CV_H | |
# 20 "../../buildtools/third_party/libc++/trunk/include/__tuple/apply_cv.h" 3 | |
namespace std { inline namespace Cr { | |
template <bool _ApplyLV, bool _ApplyConst, bool _ApplyVolatile> | |
struct __apply_cv_mf; | |
template <> | |
struct __apply_cv_mf<false, false, false> { | |
template <class _Tp> using __apply = _Tp; | |
}; | |
template <> | |
struct __apply_cv_mf<false, true, false> { | |
template <class _Tp> using __apply __attribute__((__nodebug__)) = const _Tp; | |
}; | |
template <> | |
struct __apply_cv_mf<false, false, true> { | |
template <class _Tp> using __apply __attribute__((__nodebug__)) = volatile _Tp; | |
}; | |
template <> | |
struct __apply_cv_mf<false, true, true> { | |
template <class _Tp> using __apply __attribute__((__nodebug__)) = const volatile _Tp; | |
}; | |
template <> | |
struct __apply_cv_mf<true, false, false> { | |
template <class _Tp> using __apply __attribute__((__nodebug__)) = _Tp&; | |
}; | |
template <> | |
struct __apply_cv_mf<true, true, false> { | |
template <class _Tp> using __apply __attribute__((__nodebug__)) = const _Tp&; | |
}; | |
template <> | |
struct __apply_cv_mf<true, false, true> { | |
template <class _Tp> using __apply __attribute__((__nodebug__)) = volatile _Tp&; | |
}; | |
template <> | |
struct __apply_cv_mf<true, true, true> { | |
template <class _Tp> using __apply __attribute__((__nodebug__)) = const volatile _Tp&; | |
}; | |
template <class _Tp, class _RawTp = __libcpp_remove_reference_t<_Tp> > | |
using __apply_cv_t __attribute__((__nodebug__)) = __apply_cv_mf< | |
is_lvalue_reference<_Tp>::value, | |
is_const<_RawTp>::value, | |
is_volatile<_RawTp>::value>; | |
}} | |
# 16 "../../buildtools/third_party/libc++/trunk/include/__tuple/make_tuple_types.h" 2 3 | |
# 1 "../../buildtools/third_party/libc++/trunk/include/__tuple/tuple_size.h" 1 3 | |
# 10 "../../buildtools/third_party/libc++/trunk/include/__tuple/tuple_size.h" 3 | |
#define _LIBCPP___TUPLE_TUPLE_SIZE_H | |
# 21 "../../buildtools/third_party/libc++/trunk/include/__tuple/tuple_size.h" 3 | |
namespace std { inline namespace Cr { | |
template <class _Tp> struct tuple_size; | |
template <class _Tp, class...> | |
using __enable_if_tuple_size_imp = _Tp; | |
template <class _Tp> | |
struct tuple_size<__enable_if_tuple_size_imp< | |
const _Tp, | |
__enable_if_t<!is_volatile<_Tp>::value>, | |
integral_constant<size_t, sizeof(tuple_size<_Tp>)>>> | |
: public integral_constant<size_t, tuple_size<_Tp>::value> {}; | |
template <class _Tp> | |
struct tuple_size<__enable_if_tuple_size_imp< | |
volatile _Tp, | |
__enable_if_t<!is_const<_Tp>::value>, | |
integral_constant<size_t, sizeof(tuple_size<_Tp>)>>> | |
: public integral_constant<size_t, tuple_size<_Tp>::value> {}; | |
template <class _Tp> | |
struct tuple_size<__enable_if_tuple_size_imp< | |
const volatile _Tp, | |
integral_constant<size_t, sizeof(tuple_size<_Tp>)>>> | |
: public integral_constant<size_t, tuple_size<_Tp>::value> {}; | |
# 59 "../../buildtools/third_party/libc++/trunk/include/__tuple/tuple_size.h" 3 | |
template <class ..._Tp> | |
struct tuple_size<tuple<_Tp...> > | |
: public integral_constant<size_t, sizeof...(_Tp)> | |
{ | |
}; | |
template <class ..._Tp> | |
struct tuple_size<__tuple_types<_Tp...> > | |
: public integral_constant<size_t, sizeof...(_Tp)> | |
{ | |
}; | |
}} | |
# 19 "../../buildtools/third_party/libc++/trunk/include/__tuple/make_tuple_types.h" 2 3 | |
# 26 "../../buildtools/third_party/libc++/trunk/include/__tuple/make_tuple_types.h" 3 | |
namespace std { inline namespace Cr { | |
template <class _TupleTypes, class _TupleIndices> | |
struct __make_tuple_types_flat; | |
template <template <class...> class _Tuple, class ..._Types, size_t ..._Idx> | |
struct __make_tuple_types_flat<_Tuple<_Types...>, __tuple_indices<_Idx...>> { | |
template <class _Tp, class _ApplyFn = __apply_cv_t<_Tp>> | |
using __apply_quals __attribute__((__nodebug__)) = __tuple_types< | |
typename _ApplyFn::template __apply<__type_pack_element<_Idx, _Types...>>... | |
>; | |
}; | |
template <class _Vt, size_t _Np, size_t ..._Idx> | |
struct __make_tuple_types_flat<array<_Vt, _Np>, __tuple_indices<_Idx...>> { | |
template <size_t> | |
using __value_type = _Vt; | |
template <class _Tp, class _ApplyFn = __apply_cv_t<_Tp>> | |
using __apply_quals = __tuple_types< | |
typename _ApplyFn::template __apply<__value_type<_Idx>>... | |
>; | |
}; | |
template <class _Tp, size_t _Ep = tuple_size<__libcpp_remove_reference_t<_Tp> >::value, | |
size_t _Sp = 0, | |
bool _SameSize = (_Ep == tuple_size<__libcpp_remove_reference_t<_Tp> >::value)> | |
struct __make_tuple_types | |
{ | |
static_assert(_Sp <= _Ep, "__make_tuple_types input error"); | |
using _RawTp = __remove_cv_t<__libcpp_remove_reference_t<_Tp> >; | |
using _Maker = __make_tuple_types_flat<_RawTp, typename __make_tuple_indices<_Ep, _Sp>::type>; | |
using type = typename _Maker::template __apply_quals<_Tp>; | |
}; | |
template <class ..._Types, size_t _Ep> | |
struct __make_tuple_types<tuple<_Types...>, _Ep, 0, true> { | |
typedef __attribute__((__nodebug__)) __tuple_types<_Types...> type; | |
}; | |
template <class ..._Types, size_t _Ep> | |
struct __make_tuple_types<__tuple_types<_Types...>, _Ep, 0, true> { | |
typedef __attribute__((__nodebug__)) __tuple_types<_Types...> type; | |
}; | |
}} | |
# 15 "../../buildtools/third_party/libc++/trunk/include/__tuple/sfinae_helpers.h" 2 3 | |
# 1 "../../buildtools/third_party/libc++/trunk/include/__tuple/tuple_like.h" 1 3 | |
# 10 "../../buildtools/third_party/libc++/trunk/include/__tuple/tuple_like.h" 3 | |
#define _LIBCPP___TUPLE_TUPLE_LIKE_H | |
# 22 "../../buildtools/third_party/libc++/trunk/include/__tuple/tuple_like.h" 3 | |
namespace std { inline namespace Cr { | |
template <class _Tp> struct __tuple_like : false_type {}; | |
template <class _Tp> struct __tuple_like<const _Tp> : public __tuple_like<_Tp> {}; | |
template <class _Tp> struct __tuple_like<volatile _Tp> : public __tuple_like<_Tp> {}; | |
template <class _Tp> struct __tuple_like<const volatile _Tp> : public __tuple_like<_Tp> {}; | |
template <class... _Tp> struct __tuple_like<tuple<_Tp...> > : true_type {}; | |
template <class _T1, class _T2> struct __tuple_like<pair<_T1, _T2> > : true_type {}; | |
template <class _Tp, size_t _Size> struct __tuple_like<array<_Tp, _Size> > : true_type {}; | |
template <class... _Tp> struct __tuple_like<__tuple_types<_Tp...> > : true_type {}; | |
}} | |
# 17 "../../buildtools/third_party/libc++/trunk/include/__tuple/sfinae_helpers.h" 2 3 | |
# 31 "../../buildtools/third_party/libc++/trunk/include/__tuple/sfinae_helpers.h" 3 | |
namespace std { inline namespace Cr { | |
template <bool ..._Preds> | |
struct __all_dummy; | |
template <bool ..._Pred> | |
struct __all : _IsSame<__all_dummy<_Pred...>, __all_dummy<((void)_Pred, true)...>> {}; | |
struct __tuple_sfinae_base { | |
template <template <class, class...> class _Trait, | |
class ..._LArgs, class ..._RArgs> | |
static auto __do_test(__tuple_types<_LArgs...>, __tuple_types<_RArgs...>) | |
-> __all<__enable_if_t<_Trait<_LArgs, _RArgs>::value, bool>{true}...>; | |
template <template <class...> class> | |
static auto __do_test(...) -> false_type; | |
template <class _FromArgs, class _ToArgs> | |
using __constructible = decltype(__do_test<is_constructible>(_ToArgs{}, _FromArgs{})); | |
template <class _FromArgs, class _ToArgs> | |
using __convertible = decltype(__do_test<is_convertible>(_FromArgs{}, _ToArgs{})); | |
template <class _FromArgs, class _ToArgs> | |
using __assignable = decltype(__do_test<is_assignable>(_ToArgs{}, _FromArgs{})); | |
}; | |
template <class _Tp, class _Up, bool = __tuple_like<__libcpp_remove_reference_t<_Tp> >::value, | |
bool = __tuple_like<_Up>::value> | |
struct __tuple_convertible | |
: public false_type {}; | |
template <class _Tp, class _Up> | |
struct __tuple_convertible<_Tp, _Up, true, true> | |
: public __tuple_sfinae_base::__convertible< | |
typename __make_tuple_types<_Tp>::type | |
, typename __make_tuple_types<_Up>::type | |
> | |
{}; | |
template <class _Tp, class _Up, bool = __tuple_like<__libcpp_remove_reference_t<_Tp> >::value, | |
bool = __tuple_like<_Up>::value> | |
struct __tuple_constructible | |
: public false_type {}; | |
template <class _Tp, class _Up> | |
struct __tuple_constructible<_Tp, _Up, true, true> | |
: public __tuple_sfinae_base::__constructible< | |
typename __make_tuple_types<_Tp>::type | |
, typename __make_tuple_types<_Up>::type | |
> | |
{}; | |
template <class _Tp, class _Up, bool = __tuple_like<__libcpp_remove_reference_t<_Tp> >::value, | |
bool = __tuple_like<_Up>::value> | |
struct __tuple_assignable | |
: public false_type {}; | |
template <class _Tp, class _Up> | |
struct __tuple_assignable<_Tp, _Up, true, true> | |
: public __tuple_sfinae_base::__assignable< | |
typename __make_tuple_types<_Tp>::type | |
, typename __make_tuple_types<_Up&>::type | |
> | |
{}; | |
template <size_t _Ip, class ..._Tp> | |
struct tuple_element<_Ip, tuple<_Tp...> > | |
{ | |
typedef __attribute__((__nodebug__)) typename tuple_element<_Ip, __tuple_types<_Tp...> >::type type; | |
}; | |
template <bool _IsTuple, class _SizeTrait, size_t _Expected> | |
struct __tuple_like_with_size_imp : false_type {}; | |
template <class _SizeTrait, size_t _Expected> | |
struct __tuple_like_with_size_imp<true, _SizeTrait, _Expected> | |
: integral_constant<bool, _SizeTrait::value == _Expected> {}; | |
template <class _Tuple, size_t _ExpectedSize, class _RawTuple = __libcpp_remove_reference_t<_Tuple> > | |
using __tuple_like_with_size __attribute__((__nodebug__)) = __tuple_like_with_size_imp< | |
__tuple_like<_RawTuple>::value, | |
tuple_size<_RawTuple>, _ExpectedSize | |
>; | |
struct __check_tuple_constructor_fail { | |
static constexpr bool __enable_explicit_default() { return false; } | |
static constexpr bool __enable_implicit_default() { return false; } | |
template <class ...> | |
static constexpr bool __enable_explicit() { return false; } | |
template <class ...> | |
static constexpr bool __enable_implicit() { return false; } | |
template <class ...> | |
static constexpr bool __enable_assign() { return false; } | |
}; | |
template <bool _CanCopy, bool _CanMove> | |
struct __sfinae_ctor_base {}; | |
template <> | |
struct __sfinae_ctor_base<false, false> { | |
__sfinae_ctor_base() = default; | |
__sfinae_ctor_base(__sfinae_ctor_base const&) = delete; | |
__sfinae_ctor_base(__sfinae_ctor_base &&) = delete; | |
__sfinae_ctor_base& operator=(__sfinae_ctor_base const&) = default; | |
__sfinae_ctor_base& operator=(__sfinae_ctor_base&&) = default; | |
}; | |
template <> | |
struct __sfinae_ctor_base<true, false> { | |
__sfinae_ctor_base() = default; | |
__sfinae_ctor_base(__sfinae_ctor_base const&) = default; | |
__sfinae_ctor_base(__sfinae_ctor_base &&) = delete; | |
__sfinae_ctor_base& operator=(__sfinae_ctor_base const&) = default; | |
__sfinae_ctor_base& operator=(__sfinae_ctor_base&&) = default; | |
}; | |
template <> | |
struct __sfinae_ctor_base<false, true> { | |
__sfinae_ctor_base() = default; | |
__sfinae_ctor_base(__sfinae_ctor_base const&) = delete; | |
__sfinae_ctor_base(__sfinae_ctor_base &&) = default; | |
__sfinae_ctor_base& operator=(__sfinae_ctor_base const&) = default; | |
__sfinae_ctor_base& operator=(__sfinae_ctor_base&&) = default; | |
}; | |
template <bool _CanCopy, bool _CanMove> | |
struct __sfinae_assign_base {}; | |
template <> | |
struct __sfinae_assign_base<false, false> { | |
__sfinae_assign_base() = default; | |
__sfinae_assign_base(__sfinae_assign_base const&) = default; | |
__sfinae_assign_base(__sfinae_assign_base &&) = default; | |
__sfinae_assign_base& operator=(__sfinae_assign_base const&) = delete; | |
__sfinae_assign_base& operator=(__sfinae_assign_base&&) = delete; | |
}; | |
template <> | |
struct __sfinae_assign_base<true, false> { | |
__sfinae_assign_base() = default; | |
__sfinae_assign_base(__sfinae_assign_base const&) = default; | |
__sfinae_assign_base(__sfinae_assign_base &&) = default; | |
__sfinae_assign_base& operator=(__sfinae_assign_base const&) = default; | |
__sfinae_assign_base& operator=(__sfinae_assign_base&&) = delete; | |
}; | |
template <> | |
struct __sfinae_assign_base<false, true> { | |
__sfinae_assign_base() = default; | |
__sfinae_assign_base(__sfinae_assign_base const&) = default; | |
__sfinae_assign_base(__sfinae_assign_base &&) = default; | |
__sfinae_assign_base& operator=(__sfinae_assign_base const&) = delete; | |
__sfinae_assign_base& operator=(__sfinae_assign_base&&) = default; | |
}; | |
}} | |
# 19 "../../buildtools/third_party/libc++/trunk/include/__utility/pair.h" 2 3 | |
# 1 "../../buildtools/third_party/libc++/trunk/include/__utility/piecewise_construct.h" 1 3 | |
# 10 "../../buildtools/third_party/libc++/trunk/include/__utility/piecewise_construct.h" 3 | |
#define _LIBCPP___UTILITY_PIECEWISE_CONSTRUCT_H | |
# 16 "../../buildtools/third_party/libc++/trunk/include/__utility/piecewise_construct.h" 3 | |
namespace std { inline namespace Cr { | |
struct piecewise_construct_t { explicit piecewise_construct_t() = default; }; | |
constexpr piecewise_construct_t piecewise_construct = piecewise_construct_t(); | |
}} | |
# 26 "../../buildtools/third_party/libc++/trunk/include/__utility/pair.h" 2 3 | |
# 31 "../../buildtools/third_party/libc++/trunk/include/__utility/pair.h" 3 | |
namespace std { inline namespace Cr { | |
# 45 "../../buildtools/third_party/libc++/trunk/include/__utility/pair.h" 3 | |
template <class _T1, class _T2> | |
struct pair | |
{ | |
typedef _T1 first_type; | |
typedef _T2 second_type; | |
_T1 first; | |
_T2 second; | |
pair(pair const&) = default; | |
pair(pair&&) = default; | |
# 78 "../../buildtools/third_party/libc++/trunk/include/__utility/pair.h" 3 | |
struct _CheckArgs { | |
template <int&...> | |
static constexpr bool __enable_explicit_default() { | |
return is_default_constructible<_T1>::value | |
&& is_default_constructible<_T2>::value | |
&& !__enable_implicit_default<>(); | |
} | |
template <int&...> | |
static constexpr bool __enable_implicit_default() { | |
return __is_implicitly_default_constructible<_T1>::value | |
&& __is_implicitly_default_constructible<_T2>::value; | |
} | |
template <class _U1, class _U2> | |
static constexpr bool __enable_explicit() { | |
return is_constructible<first_type, _U1>::value | |
&& is_constructible<second_type, _U2>::value | |
&& (!is_convertible<_U1, first_type>::value | |
|| !is_convertible<_U2, second_type>::value); | |
} | |
template <class _U1, class _U2> | |
static constexpr bool __enable_implicit() { | |
return is_constructible<first_type, _U1>::value | |
&& is_constructible<second_type, _U2>::value | |
&& is_convertible<_U1, first_type>::value | |
&& is_convertible<_U2, second_type>::value; | |
} | |
}; | |
template <bool _MaybeEnable> | |
using _CheckArgsDep __attribute__((__nodebug__)) = typename conditional< | |
_MaybeEnable, _CheckArgs, __check_tuple_constructor_fail>::type; | |
struct _CheckTupleLikeConstructor { | |
template <class _Tuple> | |
static constexpr bool __enable_implicit() { | |
return __tuple_convertible<_Tuple, pair>::value; | |
} | |
template <class _Tuple> | |
static constexpr bool __enable_explicit() { | |
return __tuple_constructible<_Tuple, pair>::value | |
&& !__tuple_convertible<_Tuple, pair>::value; | |
} | |
template <class _Tuple> | |
static constexpr bool __enable_assign() { | |
return __tuple_assignable<_Tuple, pair>::value; | |
} | |
}; | |
template <class _Tuple> | |
using _CheckTLC __attribute__((__nodebug__)) = typename conditional< | |
__tuple_like_with_size<_Tuple, 2>::value | |
&& !is_same<typename decay<_Tuple>::type, pair>::value, | |
_CheckTupleLikeConstructor, | |
__check_tuple_constructor_fail | |
>::type; | |
template<bool _Dummy = true, typename enable_if< | |
_CheckArgsDep<_Dummy>::__enable_explicit_default() | |
>::type* = nullptr> | |
explicit __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) constexpr | |
pair() noexcept(is_nothrow_default_constructible<first_type>::value && is_nothrow_default_constructible<second_type>::value) | |
: first(), second() {} | |
template<bool _Dummy = true, typename enable_if< | |
_CheckArgsDep<_Dummy>::__enable_implicit_default() | |
>::type* = nullptr> | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) constexpr | |
pair() noexcept(is_nothrow_default_constructible<first_type>::value && is_nothrow_default_constructible<second_type>::value) | |
: first(), second() {} | |
template <bool _Dummy = true, typename enable_if< | |
_CheckArgsDep<_Dummy>::template __enable_explicit<_T1 const&, _T2 const&>() | |
>::type* = nullptr> | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) constexpr | |
explicit pair(_T1 const& __t1, _T2 const& __t2) | |
noexcept(is_nothrow_copy_constructible<first_type>::value && is_nothrow_copy_constructible<second_type>::value) | |
: first(__t1), second(__t2) {} | |
template<bool _Dummy = true, typename enable_if< | |
_CheckArgsDep<_Dummy>::template __enable_implicit<_T1 const&, _T2 const&>() | |
>::type* = nullptr> | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) constexpr | |
pair(_T1 const& __t1, _T2 const& __t2) | |
noexcept(is_nothrow_copy_constructible<first_type>::value && is_nothrow_copy_constructible<second_type>::value) | |
: first(__t1), second(__t2) {} | |
template < | |
class _U1, class _U2, | |
typename enable_if<_CheckArgs::template __enable_explicit<_U1, _U2>()>::type* = nullptr | |
> | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) constexpr | |
explicit pair(_U1&& __u1, _U2&& __u2) | |
noexcept((is_nothrow_constructible<first_type, _U1>::value && is_nothrow_constructible<second_type, _U2>::value)) | |
: first(std::forward<_U1>(__u1)), second(std::forward<_U2>(__u2)) {} | |
template < | |
class _U1, class _U2, | |
typename enable_if<_CheckArgs::template __enable_implicit<_U1, _U2>()>::type* = nullptr | |
> | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) constexpr | |
pair(_U1&& __u1, _U2&& __u2) | |
noexcept((is_nothrow_constructible<first_type, _U1>::value && is_nothrow_constructible<second_type, _U2>::value)) | |
: first(std::forward<_U1>(__u1)), second(std::forward<_U2>(__u2)) {} | |
template<class _U1, class _U2, typename enable_if< | |
_CheckArgs::template __enable_explicit<_U1 const&, _U2 const&>() | |
>::type* = nullptr> | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) constexpr | |
explicit pair(pair<_U1, _U2> const& __p) | |
noexcept((is_nothrow_constructible<first_type, _U1 const&>::value && is_nothrow_constructible<second_type, _U2 const&>::value)) | |
: first(__p.first), second(__p.second) {} | |
template<class _U1, class _U2, typename enable_if< | |
_CheckArgs::template __enable_implicit<_U1 const&, _U2 const&>() | |
>::type* = nullptr> | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) constexpr | |
pair(pair<_U1, _U2> const& __p) | |
noexcept((is_nothrow_constructible<first_type, _U1 const&>::value && is_nothrow_constructible<second_type, _U2 const&>::value)) | |
: first(__p.first), second(__p.second) {} | |
template<class _U1, class _U2, typename enable_if< | |
_CheckArgs::template __enable_explicit<_U1, _U2>() | |
>::type* = nullptr> | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) constexpr | |
explicit pair(pair<_U1, _U2>&&__p) | |
noexcept((is_nothrow_constructible<first_type, _U1&&>::value && is_nothrow_constructible<second_type, _U2&&>::value)) | |
: first(std::forward<_U1>(__p.first)), second(std::forward<_U2>(__p.second)) {} | |
template<class _U1, class _U2, typename enable_if< | |
_CheckArgs::template __enable_implicit<_U1, _U2>() | |
>::type* = nullptr> | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) constexpr | |
pair(pair<_U1, _U2>&& __p) | |
noexcept((is_nothrow_constructible<first_type, _U1&&>::value && is_nothrow_constructible<second_type, _U2&&>::value)) | |
: first(std::forward<_U1>(__p.first)), second(std::forward<_U2>(__p.second)) {} | |
template<class _Tuple, typename enable_if< | |
_CheckTLC<_Tuple>::template __enable_explicit<_Tuple>() | |
>::type* = nullptr> | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) constexpr | |
explicit pair(_Tuple&& __p) | |
: first(std::get<0>(std::forward<_Tuple>(__p))), | |
second(std::get<1>(std::forward<_Tuple>(__p))) {} | |
template<class _Tuple, typename enable_if< | |
_CheckTLC<_Tuple>::template __enable_implicit<_Tuple>() | |
>::type* = nullptr> | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) constexpr | |
pair(_Tuple&& __p) | |
: first(std::get<0>(std::forward<_Tuple>(__p))), | |
second(std::get<1>(std::forward<_Tuple>(__p))) {} | |
template <class... _Args1, class... _Args2> | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) | |
pair(piecewise_construct_t __pc, | |
tuple<_Args1...> __first_args, tuple<_Args2...> __second_args) | |
noexcept((is_nothrow_constructible<first_type, _Args1...>::value && is_nothrow_constructible<second_type, _Args2...>::value)) | |
: pair(__pc, __first_args, __second_args, | |
typename __make_tuple_indices<sizeof...(_Args1)>::type(), | |
typename __make_tuple_indices<sizeof...(_Args2) >::type()) {} | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) | |
pair& operator=(typename conditional< | |
is_copy_assignable<first_type>::value && | |
is_copy_assignable<second_type>::value, | |
pair, __nat>::type const& __p) | |
noexcept(is_nothrow_copy_assignable<first_type>::value && is_nothrow_copy_assignable<second_type>::value) | |
{ | |
first = __p.first; | |
second = __p.second; | |
return *this; | |
} | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) | |
pair& operator=(typename conditional< | |
is_move_assignable<first_type>::value && | |
is_move_assignable<second_type>::value, | |
pair, __nat>::type&& __p) | |
noexcept(is_nothrow_move_assignable<first_type>::value && is_nothrow_move_assignable<second_type>::value) | |
{ | |
first = std::forward<first_type>(__p.first); | |
second = std::forward<second_type>(__p.second); | |
return *this; | |
} | |
template <class _Tuple, typename enable_if< | |
_CheckTLC<_Tuple>::template __enable_assign<_Tuple>() | |
>::type* = nullptr> | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) | |
pair& operator=(_Tuple&& __p) { | |
first = std::get<0>(std::forward<_Tuple>(__p)); | |
second = std::get<1>(std::forward<_Tuple>(__p)); | |
return *this; | |
} | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) | |
void | |
swap(pair& __p) noexcept(__is_nothrow_swappable<first_type>::value && __is_nothrow_swappable<second_type>::value) | |
{ | |
using std::swap; | |
swap(first, __p.first); | |
swap(second, __p.second); | |
} | |
private: | |
template <class... _Args1, class... _Args2, size_t... _I1, size_t... _I2> | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) | |
pair(piecewise_construct_t, | |
tuple<_Args1...>& __first_args, tuple<_Args2...>& __second_args, | |
__tuple_indices<_I1...>, __tuple_indices<_I2...>); | |
}; | |
template<class _T1, class _T2> | |
pair(_T1, _T2) -> pair<_T1, _T2>; | |
template <class _T1, class _T2> | |
inline __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) constexpr | |
bool | |
operator==(const pair<_T1,_T2>& __x, const pair<_T1,_T2>& __y) | |
{ | |
return __x.first == __y.first && __x.second == __y.second; | |
} | |
# 352 "../../buildtools/third_party/libc++/trunk/include/__utility/pair.h" 3 | |
template <class _T1, class _T2> | |
inline __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) constexpr | |
bool | |
operator!=(const pair<_T1,_T2>& __x, const pair<_T1,_T2>& __y) | |
{ | |
return !(__x == __y); | |
} | |
template <class _T1, class _T2> | |
inline __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) constexpr | |
bool | |
operator< (const pair<_T1,_T2>& __x, const pair<_T1,_T2>& __y) | |
{ | |
return __x.first < __y.first || (!(__y.first < __x.first) && __x.second < __y.second); | |
} | |
template <class _T1, class _T2> | |
inline __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) constexpr | |
bool | |
operator> (const pair<_T1,_T2>& __x, const pair<_T1,_T2>& __y) | |
{ | |
return __y < __x; | |
} | |
template <class _T1, class _T2> | |
inline __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) constexpr | |
bool | |
operator>=(const pair<_T1,_T2>& __x, const pair<_T1,_T2>& __y) | |
{ | |
return !(__x < __y); | |
} | |
template <class _T1, class _T2> | |
inline __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) constexpr | |
bool | |
operator<=(const pair<_T1,_T2>& __x, const pair<_T1,_T2>& __y) | |
{ | |
return !(__y < __x); | |
} | |
# 410 "../../buildtools/third_party/libc++/trunk/include/__utility/pair.h" 3 | |
template <class _T1, class _T2> | |
inline __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) | |
typename enable_if | |
< | |
__is_swappable<_T1>::value && | |
__is_swappable<_T2>::value, | |
void | |
>::type | |
swap(pair<_T1, _T2>& __x, pair<_T1, _T2>& __y) | |
noexcept((__is_nothrow_swappable<_T1>::value && __is_nothrow_swappable<_T2>::value)) | |
{ | |
__x.swap(__y); | |
} | |
template <class _T1, class _T2> | |
inline __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) constexpr | |
pair<typename __unwrap_ref_decay<_T1>::type, typename __unwrap_ref_decay<_T2>::type> | |
make_pair(_T1&& __t1, _T2&& __t2) | |
{ | |
return pair<typename __unwrap_ref_decay<_T1>::type, typename __unwrap_ref_decay<_T2>::type> | |
(std::forward<_T1>(__t1), std::forward<_T2>(__t2)); | |
} | |
template <class _T1, class _T2> | |
struct tuple_size<pair<_T1, _T2> > | |
: public integral_constant<size_t, 2> {}; | |
template <size_t _Ip, class _T1, class _T2> | |
struct tuple_element<_Ip, pair<_T1, _T2> > | |
{ | |
static_assert(_Ip < 2, "Index out of bounds in std::tuple_element<std::pair<T1, T2>>"); | |
}; | |
template <class _T1, class _T2> | |
struct tuple_element<0, pair<_T1, _T2> > | |
{ | |
typedef __attribute__((__nodebug__)) _T1 type; | |
}; | |
template <class _T1, class _T2> | |
struct tuple_element<1, pair<_T1, _T2> > | |
{ | |
typedef __attribute__((__nodebug__)) _T2 type; | |
}; | |
template <size_t _Ip> struct __get_pair; | |
template <> | |
struct __get_pair<0> | |
{ | |
template <class _T1, class _T2> | |
static | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) constexpr | |
_T1& | |
get(pair<_T1, _T2>& __p) noexcept {return __p.first;} | |
template <class _T1, class _T2> | |
static | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) constexpr | |
const _T1& | |
get(const pair<_T1, _T2>& __p) noexcept {return __p.first;} | |
template <class _T1, class _T2> | |
static | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) constexpr | |
_T1&& | |
get(pair<_T1, _T2>&& __p) noexcept {return std::forward<_T1>(__p.first);} | |
template <class _T1, class _T2> | |
static | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) constexpr | |
const _T1&& | |
get(const pair<_T1, _T2>&& __p) noexcept {return std::forward<const _T1>(__p.first);} | |
}; | |
template <> | |
struct __get_pair<1> | |
{ | |
template <class _T1, class _T2> | |
static | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) constexpr | |
_T2& | |
get(pair<_T1, _T2>& __p) noexcept {return __p.second;} | |
template <class _T1, class _T2> | |
static | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) constexpr | |
const _T2& | |
get(const pair<_T1, _T2>& __p) noexcept {return __p.second;} | |
template <class _T1, class _T2> | |
static | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) constexpr | |
_T2&& | |
get(pair<_T1, _T2>&& __p) noexcept {return std::forward<_T2>(__p.second);} | |
template <class _T1, class _T2> | |
static | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) constexpr | |
const _T2&& | |
get(const pair<_T1, _T2>&& __p) noexcept {return std::forward<const _T2>(__p.second);} | |
}; | |
template <size_t _Ip, class _T1, class _T2> | |
inline __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) constexpr | |
typename tuple_element<_Ip, pair<_T1, _T2> >::type& | |
get(pair<_T1, _T2>& __p) noexcept | |
{ | |
return __get_pair<_Ip>::get(__p); | |
} | |
template <size_t _Ip, class _T1, class _T2> | |
inline __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) constexpr | |
const typename tuple_element<_Ip, pair<_T1, _T2> >::type& | |
get(const pair<_T1, _T2>& __p) noexcept | |
{ | |
return __get_pair<_Ip>::get(__p); | |
} | |
template <size_t _Ip, class _T1, class _T2> | |
inline __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) constexpr | |
typename tuple_element<_Ip, pair<_T1, _T2> >::type&& | |
get(pair<_T1, _T2>&& __p) noexcept | |
{ | |
return __get_pair<_Ip>::get(std::move(__p)); | |
} | |
template <size_t _Ip, class _T1, class _T2> | |
inline __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) constexpr | |
const typename tuple_element<_Ip, pair<_T1, _T2> >::type&& | |
get(const pair<_T1, _T2>&& __p) noexcept | |
{ | |
return __get_pair<_Ip>::get(std::move(__p)); | |
} | |
template <class _T1, class _T2> | |
inline __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) | |
constexpr _T1 & get(pair<_T1, _T2>& __p) noexcept | |
{ | |
return __get_pair<0>::get(__p); | |
} | |
template <class _T1, class _T2> | |
inline __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) | |
constexpr _T1 const & get(pair<_T1, _T2> const& __p) noexcept | |
{ | |
return __get_pair<0>::get(__p); | |
} | |
template <class _T1, class _T2> | |
inline __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) | |
constexpr _T1 && get(pair<_T1, _T2>&& __p) noexcept | |
{ | |
return __get_pair<0>::get(std::move(__p)); | |
} | |
template <class _T1, class _T2> | |
inline __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) | |
constexpr _T1 const && get(pair<_T1, _T2> const&& __p) noexcept | |
{ | |
return __get_pair<0>::get(std::move(__p)); | |
} | |
template <class _T1, class _T2> | |
inline __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) | |
constexpr _T1 & get(pair<_T2, _T1>& __p) noexcept | |
{ | |
return __get_pair<1>::get(__p); | |
} | |
template <class _T1, class _T2> | |
inline __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) | |
constexpr _T1 const & get(pair<_T2, _T1> const& __p) noexcept | |
{ | |
return __get_pair<1>::get(__p); | |
} | |
template <class _T1, class _T2> | |
inline __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) | |
constexpr _T1 && get(pair<_T2, _T1>&& __p) noexcept | |
{ | |
return __get_pair<1>::get(std::move(__p)); | |
} | |
template <class _T1, class _T2> | |
inline __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) | |
constexpr _T1 const && get(pair<_T2, _T1> const&& __p) noexcept | |
{ | |
return __get_pair<1>::get(std::move(__p)); | |
} | |
}} | |
# 20 "../../buildtools/third_party/libc++/trunk/include/__algorithm/unwrap_range.h" 2 3 | |
# 23 "../../buildtools/third_party/libc++/trunk/include/__algorithm/unwrap_range.h" 3 | |
namespace std { inline namespace Cr { | |
# 84 "../../buildtools/third_party/libc++/trunk/include/__algorithm/unwrap_range.h" 3 | |
template <class _Iter, class _Unwrapped = decltype(std::__unwrap_iter(std::declval<_Iter>()))> | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) constexpr pair<_Unwrapped, _Unwrapped> __unwrap_range(_Iter __first, _Iter __last) { | |
return std::make_pair(std::__unwrap_iter(std::move(__first)), std::__unwrap_iter(std::move(__last))); | |
} | |
template <class _Iter, class _Unwrapped = decltype(std::__unwrap_iter(std::declval<_Iter>()))> | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) constexpr _Iter __rewrap_range(_Iter __orig_iter, _Unwrapped __iter) { | |
return std::__rewrap_iter(std::move(__orig_iter), std::move(__iter)); | |
} | |
}} | |
# 14 "../../buildtools/third_party/libc++/trunk/include/__algorithm/copy.h" 2 3 | |
# 1 "../../buildtools/third_party/libc++/trunk/include/__iterator/reverse_iterator.h" 1 3 | |
# 11 "../../buildtools/third_party/libc++/trunk/include/__iterator/reverse_iterator.h" 3 | |
#define _LIBCPP___ITERATOR_REVERSE_ITERATOR_H | |
# 1 "../../buildtools/third_party/libc++/trunk/include/__compare/compare_three_way_result.h" 1 3 | |
# 10 "../../buildtools/third_party/libc++/trunk/include/__compare/compare_three_way_result.h" 3 | |
#define _LIBCPP___COMPARE_COMPARE_THREE_WAY_RESULT_H | |
# 18 "../../buildtools/third_party/libc++/trunk/include/__compare/compare_three_way_result.h" 3 | |
namespace std { inline namespace Cr { | |
# 42 "../../buildtools/third_party/libc++/trunk/include/__compare/compare_three_way_result.h" 3 | |
}} | |
# 15 "../../buildtools/third_party/libc++/trunk/include/__iterator/reverse_iterator.h" 2 3 | |
# 1 "../../buildtools/third_party/libc++/trunk/include/__iterator/iterator.h" 1 3 | |
# 11 "../../buildtools/third_party/libc++/trunk/include/__iterator/iterator.h" 3 | |
#define _LIBCPP___ITERATOR_ITERATOR_H | |
# 18 "../../buildtools/third_party/libc++/trunk/include/__iterator/iterator.h" 3 | |
namespace std { inline namespace Cr { | |
template<class _Category, class _Tp, class _Distance = ptrdiff_t, | |
class _Pointer = _Tp*, class _Reference = _Tp&> | |
struct __attribute__((deprecated)) iterator | |
{ | |
typedef _Tp value_type; | |
typedef _Distance difference_type; | |
typedef _Pointer pointer; | |
typedef _Reference reference; | |
typedef _Category iterator_category; | |
}; | |
}} | |
# 24 "../../buildtools/third_party/libc++/trunk/include/__iterator/reverse_iterator.h" 2 3 | |
# 1 "../../buildtools/third_party/libc++/trunk/include/__ranges/subrange.h" 1 3 | |
# 10 "../../buildtools/third_party/libc++/trunk/include/__ranges/subrange.h" 3 | |
#define _LIBCPP___RANGES_SUBRANGE_H | |
# 26 "../../buildtools/third_party/libc++/trunk/include/__ranges/subrange.h" 3 | |
# 1 "../../buildtools/third_party/libc++/trunk/include/__ranges/dangling.h" 1 3 | |
# 11 "../../buildtools/third_party/libc++/trunk/include/__ranges/dangling.h" 3 | |
#define _LIBCPP___RANGES_DANGLING_H | |
# 20 "../../buildtools/third_party/libc++/trunk/include/__ranges/dangling.h" 3 | |
namespace std { inline namespace Cr { | |
# 40 "../../buildtools/third_party/libc++/trunk/include/__ranges/dangling.h" 3 | |
}} | |
# 27 "../../buildtools/third_party/libc++/trunk/include/__ranges/subrange.h" 2 3 | |
# 1 "../../buildtools/third_party/libc++/trunk/include/__ranges/view_interface.h" 1 3 | |
# 10 "../../buildtools/third_party/libc++/trunk/include/__ranges/view_interface.h" 3 | |
#define _LIBCPP___RANGES_VIEW_INTERFACE_H | |
# 22 "../../buildtools/third_party/libc++/trunk/include/__ranges/view_interface.h" 3 | |
# 1 "../../buildtools/third_party/libc++/trunk/include/__ranges/empty.h" 1 3 | |
# 10 "../../buildtools/third_party/libc++/trunk/include/__ranges/empty.h" 3 | |
#define _LIBCPP___RANGES_EMPTY_H | |
# 21 "../../buildtools/third_party/libc++/trunk/include/__ranges/empty.h" 3 | |
namespace std { inline namespace Cr { | |
# 80 "../../buildtools/third_party/libc++/trunk/include/__ranges/empty.h" 3 | |
}} | |
# 23 "../../buildtools/third_party/libc++/trunk/include/__ranges/view_interface.h" 2 3 | |
# 27 "../../buildtools/third_party/libc++/trunk/include/__ranges/view_interface.h" 3 | |
namespace std { inline namespace Cr { | |
# 172 "../../buildtools/third_party/libc++/trunk/include/__ranges/view_interface.h" 3 | |
}} | |
# 30 "../../buildtools/third_party/libc++/trunk/include/__ranges/subrange.h" 2 3 | |
# 37 "../../buildtools/third_party/libc++/trunk/include/__ranges/subrange.h" 3 | |
namespace std { inline namespace Cr { | |
# 292 "../../buildtools/third_party/libc++/trunk/include/__ranges/subrange.h" 3 | |
}} | |
# 32 "../../buildtools/third_party/libc++/trunk/include/__iterator/reverse_iterator.h" 2 3 | |
# 37 "../../buildtools/third_party/libc++/trunk/include/__iterator/reverse_iterator.h" 3 | |
namespace std { inline namespace Cr { | |
#pragma GCC diagnostic push | |
# 41 "../../buildtools/third_party/libc++/trunk/include/__iterator/reverse_iterator.h" 3 | |
#pragma GCC diagnostic ignored "-Wdeprecated" | |
# 41 "../../buildtools/third_party/libc++/trunk/include/__iterator/reverse_iterator.h" 3 | |
#pragma GCC diagnostic ignored "-Wdeprecated-declarations" | |
template <class _Iter> | |
class reverse_iterator | |
{ | |
#pragma GCC diagnostic pop | |
private: | |
# 63 "../../buildtools/third_party/libc++/trunk/include/__iterator/reverse_iterator.h" 3 | |
protected: | |
_Iter current; | |
public: | |
using iterator_type = _Iter; | |
using iterator_category = _If<__is_cpp17_random_access_iterator<_Iter>::value, | |
random_access_iterator_tag, | |
typename iterator_traits<_Iter>::iterator_category>; | |
using pointer = typename iterator_traits<_Iter>::pointer; | |
using value_type = typename iterator_traits<_Iter>::value_type; | |
using difference_type = typename iterator_traits<_Iter>::difference_type; | |
using reference = typename iterator_traits<_Iter>::reference; | |
# 109 "../../buildtools/third_party/libc++/trunk/include/__iterator/reverse_iterator.h" 3 | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) constexpr | |
reverse_iterator() : current() {} | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) constexpr | |
explicit reverse_iterator(_Iter __x) : current(__x) {} | |
template <class _Up, class = __enable_if_t< | |
!is_same<_Up, _Iter>::value && is_convertible<_Up const&, _Iter>::value | |
> > | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) constexpr | |
reverse_iterator(const reverse_iterator<_Up>& __u) | |
: current(__u.base()) | |
{ } | |
template <class _Up, class = __enable_if_t< | |
!is_same<_Up, _Iter>::value && | |
is_convertible<_Up const&, _Iter>::value && | |
is_assignable<_Iter&, _Up const&>::value | |
> > | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) constexpr | |
reverse_iterator& operator=(const reverse_iterator<_Up>& __u) { | |
current = __u.base(); | |
return *this; | |
} | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) constexpr | |
_Iter base() const {return current;} | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) constexpr | |
reference operator*() const {_Iter __tmp = current; return *--__tmp;} | |
# 151 "../../buildtools/third_party/libc++/trunk/include/__iterator/reverse_iterator.h" 3 | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) constexpr | |
pointer operator->() const { | |
return std::addressof(operator*()); | |
} | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) constexpr | |
reverse_iterator& operator++() {--current; return *this;} | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) constexpr | |
reverse_iterator operator++(int) {reverse_iterator __tmp(*this); --current; return __tmp;} | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) constexpr | |
reverse_iterator& operator--() {++current; return *this;} | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) constexpr | |
reverse_iterator operator--(int) {reverse_iterator __tmp(*this); ++current; return __tmp;} | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) constexpr | |
reverse_iterator operator+(difference_type __n) const {return reverse_iterator(current - __n);} | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) constexpr | |
reverse_iterator& operator+=(difference_type __n) {current -= __n; return *this;} | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) constexpr | |
reverse_iterator operator-(difference_type __n) const {return reverse_iterator(current + __n);} | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) constexpr | |
reverse_iterator& operator-=(difference_type __n) {current += __n; return *this;} | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) constexpr | |
reference operator[](difference_type __n) const {return *(*this + __n);} | |
# 196 "../../buildtools/third_party/libc++/trunk/include/__iterator/reverse_iterator.h" 3 | |
}; | |
template <class _Iter> | |
struct __is_reverse_iterator : false_type {}; | |
template <class _Iter> | |
struct __is_reverse_iterator<reverse_iterator<_Iter> > : true_type {}; | |
template <class _Iter1, class _Iter2> | |
inline __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) constexpr | |
bool | |
operator==(const reverse_iterator<_Iter1>& __x, const reverse_iterator<_Iter2>& __y) | |
{ | |
return __x.base() == __y.base(); | |
} | |
template <class _Iter1, class _Iter2> | |
inline __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) constexpr | |
bool | |
operator<(const reverse_iterator<_Iter1>& __x, const reverse_iterator<_Iter2>& __y) | |
{ | |
return __x.base() > __y.base(); | |
} | |
template <class _Iter1, class _Iter2> | |
inline __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) constexpr | |
bool | |
operator!=(const reverse_iterator<_Iter1>& __x, const reverse_iterator<_Iter2>& __y) | |
{ | |
return __x.base() != __y.base(); | |
} | |
template <class _Iter1, class _Iter2> | |
inline __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) constexpr | |
bool | |
operator>(const reverse_iterator<_Iter1>& __x, const reverse_iterator<_Iter2>& __y) | |
{ | |
return __x.base() < __y.base(); | |
} | |
template <class _Iter1, class _Iter2> | |
inline __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) constexpr | |
bool | |
operator>=(const reverse_iterator<_Iter1>& __x, const reverse_iterator<_Iter2>& __y) | |
{ | |
return __x.base() <= __y.base(); | |
} | |
template <class _Iter1, class _Iter2> | |
inline __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) constexpr | |
bool | |
operator<=(const reverse_iterator<_Iter1>& __x, const reverse_iterator<_Iter2>& __y) | |
{ | |
return __x.base() >= __y.base(); | |
} | |
# 293 "../../buildtools/third_party/libc++/trunk/include/__iterator/reverse_iterator.h" 3 | |
template <class _Iter1, class _Iter2> | |
inline __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) constexpr | |
auto | |
operator-(const reverse_iterator<_Iter1>& __x, const reverse_iterator<_Iter2>& __y) | |
-> decltype(__y.base() - __x.base()) | |
{ | |
return __y.base() - __x.base(); | |
} | |
# 311 "../../buildtools/third_party/libc++/trunk/include/__iterator/reverse_iterator.h" 3 | |
template <class _Iter> | |
inline __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) constexpr | |
reverse_iterator<_Iter> | |
operator+(typename reverse_iterator<_Iter>::difference_type __n, const reverse_iterator<_Iter>& __x) | |
{ | |
return reverse_iterator<_Iter>(__x.base() - __n); | |
} | |
# 326 "../../buildtools/third_party/libc++/trunk/include/__iterator/reverse_iterator.h" 3 | |
template <class _Iter> | |
inline __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) constexpr | |
reverse_iterator<_Iter> make_reverse_iterator(_Iter __i) | |
{ | |
return reverse_iterator<_Iter>(__i); | |
} | |
template <class _Iter> | |
using __unconstrained_reverse_iterator = reverse_iterator<_Iter>; | |
# 486 "../../buildtools/third_party/libc++/trunk/include/__iterator/reverse_iterator.h" 3 | |
template <template <class> class _RevIter1, template <class> class _RevIter2, class _Iter> | |
struct __unwrap_reverse_iter_impl { | |
using _UnwrappedIter = decltype(__unwrap_iter_impl<_Iter>::__unwrap(std::declval<_Iter>())); | |
using _ReverseWrapper = _RevIter1<_RevIter2<_Iter> >; | |
static __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) constexpr _ReverseWrapper | |
__rewrap(_ReverseWrapper __orig_iter, _UnwrappedIter __unwrapped_iter) { | |
return _ReverseWrapper( | |
_RevIter2<_Iter>(__unwrap_iter_impl<_Iter>::__rewrap(__orig_iter.base().base(), __unwrapped_iter))); | |
} | |
static __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) constexpr _UnwrappedIter __unwrap(_ReverseWrapper __i) noexcept { | |
return __unwrap_iter_impl<_Iter>::__unwrap(__i.base().base()); | |
} | |
}; | |
# 512 "../../buildtools/third_party/libc++/trunk/include/__iterator/reverse_iterator.h" 3 | |
template <class _Iter, bool __b> | |
struct __unwrap_iter_impl<reverse_iterator<reverse_iterator<_Iter> >, __b> | |
: __unwrap_reverse_iter_impl<reverse_iterator, reverse_iterator, _Iter> {}; | |
# 532 "../../buildtools/third_party/libc++/trunk/include/__iterator/reverse_iterator.h" 3 | |
}} | |
# 17 "../../buildtools/third_party/libc++/trunk/include/__algorithm/copy.h" 2 3 | |
# 24 "../../buildtools/third_party/libc++/trunk/include/__algorithm/copy.h" 3 | |
namespace std { inline namespace Cr { | |
template <class _InIter, class _Sent, class _OutIter> | |
inline __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) constexpr | |
pair<_InIter, _OutIter> __copy_impl(_InIter __first, _Sent __last, _OutIter __result) { | |
while (__first != __last) { | |
*__result = *__first; | |
++__first; | |
++__result; | |
} | |
return pair<_InIter, _OutIter>(std::move(__first), std::move(__result)); | |
} | |
template <class _InValueT, | |
class _OutValueT, | |
class = __enable_if_t<is_same<__remove_const_t<_InValueT>, _OutValueT>::value | |
&& is_trivially_copy_assignable<_OutValueT>::value> > | |
inline __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) constexpr | |
pair<_InValueT*, _OutValueT*> __copy_impl(_InValueT* __first, _InValueT* __last, _OutValueT* __result) { | |
if (__libcpp_is_constant_evaluated() | |
&& !is_trivially_copyable<_InValueT>::value | |
) | |
return std::__copy_impl<_InValueT*, _InValueT*, _OutValueT*>(__first, __last, __result); | |
const size_t __n = static_cast<size_t>(__last - __first); | |
if (__n > 0) | |
::__builtin_memmove(__result, __first, __n * sizeof(_OutValueT)); | |
return std::make_pair(__first + __n, __result + __n); | |
} | |
template <class _InIter, class _OutIter, | |
__enable_if_t<is_same<__remove_const_t<__iter_value_type<_InIter> >, __iter_value_type<_OutIter> >::value | |
&& __is_cpp17_contiguous_iterator<typename _InIter::iterator_type>::value | |
&& __is_cpp17_contiguous_iterator<typename _OutIter::iterator_type>::value | |
&& is_trivially_copy_assignable<__iter_value_type<_OutIter> >::value | |
&& __is_reverse_iterator<_InIter>::value | |
&& __is_reverse_iterator<_OutIter>::value, int> = 0> | |
inline __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) constexpr | |
pair<_InIter, _OutIter> | |
__copy_impl(_InIter __first, _InIter __last, _OutIter __result) { | |
auto __first_base = std::__unwrap_iter(__first.base()); | |
auto __last_base = std::__unwrap_iter(__last.base()); | |
auto __result_base = std::__unwrap_iter(__result.base()); | |
auto __result_first = __result_base - (__first_base - __last_base); | |
std::__copy_impl(__last_base, __first_base, __result_first); | |
return std::make_pair(__last, _OutIter(std::__rewrap_iter(__result.base(), __result_first))); | |
} | |
template <class _InIter, class _Sent, class _OutIter, | |
__enable_if_t<!(is_copy_constructible<_InIter>::value | |
&& is_copy_constructible<_Sent>::value | |
&& is_copy_constructible<_OutIter>::value), int> = 0 > | |
inline __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) constexpr | |
pair<_InIter, _OutIter> __copy(_InIter __first, _Sent __last, _OutIter __result) { | |
return std::__copy_impl(std::move(__first), std::move(__last), std::move(__result)); | |
} | |
template <class _InIter, class _Sent, class _OutIter, | |
__enable_if_t<is_copy_constructible<_InIter>::value | |
&& is_copy_constructible<_Sent>::value | |
&& is_copy_constructible<_OutIter>::value, int> = 0> | |
inline __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) constexpr | |
pair<_InIter, _OutIter> __copy(_InIter __first, _Sent __last, _OutIter __result) { | |
auto __range = std::__unwrap_range(__first, __last); | |
auto __ret = std::__copy_impl(std::move(__range.first), std::move(__range.second), std::__unwrap_iter(__result)); | |
return std::make_pair( | |
std::__rewrap_range<_Sent>(__first, __ret.first), std::__rewrap_iter(__result, __ret.second)); | |
} | |
template <class _InputIterator, class _OutputIterator> | |
inline __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) | |
_OutputIterator | |
copy(_InputIterator __first, _InputIterator __last, _OutputIterator __result) { | |
return std::__copy(__first, __last, __result).second; | |
} | |
}} | |
# 1723 "../../buildtools/third_party/libc++/trunk/include/algorithm" 2 3 | |
# 1 "../../buildtools/third_party/libc++/trunk/include/__algorithm/copy_backward.h" 1 3 | |
# 10 "../../buildtools/third_party/libc++/trunk/include/__algorithm/copy_backward.h" 3 | |
#define _LIBCPP___ALGORITHM_COPY_BACKWARD_H | |
# 1 "../../buildtools/third_party/libc++/trunk/include/__algorithm/ranges_copy.h" 1 3 | |
# 10 "../../buildtools/third_party/libc++/trunk/include/__algorithm/ranges_copy.h" 3 | |
#define _LIBCPP___ALGORITHM_RANGES_COPY_H | |
# 1 "../../buildtools/third_party/libc++/trunk/include/__algorithm/in_out_result.h" 1 3 | |
# 11 "../../buildtools/third_party/libc++/trunk/include/__algorithm/in_out_result.h" 3 | |
#define _LIBCPP___ALGORITHM_IN_OUT_RESULT_H | |
# 19 "../../buildtools/third_party/libc++/trunk/include/__algorithm/in_out_result.h" 3 | |
namespace std { inline namespace Cr { | |
# 51 "../../buildtools/third_party/libc++/trunk/include/__algorithm/in_out_result.h" 3 | |
}} | |
# 14 "../../buildtools/third_party/libc++/trunk/include/__algorithm/ranges_copy.h" 2 3 | |
# 25 "../../buildtools/third_party/libc++/trunk/include/__algorithm/ranges_copy.h" 3 | |
# 15 "../../buildtools/third_party/libc++/trunk/include/__algorithm/copy_backward.h" 2 3 | |
# 28 "../../buildtools/third_party/libc++/trunk/include/__algorithm/copy_backward.h" 3 | |
namespace std { inline namespace Cr { | |
template <class _AlgPolicy, class _InputIterator, class _OutputIterator, | |
__enable_if_t<is_same<_AlgPolicy, _ClassicAlgPolicy>::value, int> = 0> | |
inline __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) constexpr pair<_InputIterator, _OutputIterator> | |
__copy_backward(_InputIterator __first, _InputIterator __last, _OutputIterator __result) { | |
auto __ret = std::__copy( | |
__unconstrained_reverse_iterator<_InputIterator>(__last), | |
__unconstrained_reverse_iterator<_InputIterator>(__first), | |
__unconstrained_reverse_iterator<_OutputIterator>(__result)); | |
return pair<_InputIterator, _OutputIterator>(__ret.first.base(), __ret.second.base()); | |
} | |
# 54 "../../buildtools/third_party/libc++/trunk/include/__algorithm/copy_backward.h" 3 | |
template <class _BidirectionalIterator1, class _BidirectionalIterator2> | |
inline __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) _BidirectionalIterator2 | |
copy_backward(_BidirectionalIterator1 __first, _BidirectionalIterator1 __last, _BidirectionalIterator2 __result) { | |
return std::__copy_backward<_ClassicAlgPolicy>(__first, __last, __result).second; | |
} | |
}} | |
# 1724 "../../buildtools/third_party/libc++/trunk/include/algorithm" 2 3 | |
# 1 "../../buildtools/third_party/libc++/trunk/include/__algorithm/copy_if.h" 1 3 | |
# 10 "../../buildtools/third_party/libc++/trunk/include/__algorithm/copy_if.h" 3 | |
#define _LIBCPP___ALGORITHM_COPY_IF_H | |
# 16 "../../buildtools/third_party/libc++/trunk/include/__algorithm/copy_if.h" 3 | |
namespace std { inline namespace Cr { | |
template<class _InputIterator, class _OutputIterator, class _Predicate> | |
inline __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) | |
_OutputIterator | |
copy_if(_InputIterator __first, _InputIterator __last, | |
_OutputIterator __result, _Predicate __pred) | |
{ | |
for (; __first != __last; ++__first) | |
{ | |
if (__pred(*__first)) | |
{ | |
*__result = *__first; | |
++__result; | |
} | |
} | |
return __result; | |
} | |
}} | |
# 1725 "../../buildtools/third_party/libc++/trunk/include/algorithm" 2 3 | |
# 1 "../../buildtools/third_party/libc++/trunk/include/__algorithm/copy_n.h" 1 3 | |
# 10 "../../buildtools/third_party/libc++/trunk/include/__algorithm/copy_n.h" 3 | |
#define _LIBCPP___ALGORITHM_COPY_N_H | |
# 20 "../../buildtools/third_party/libc++/trunk/include/__algorithm/copy_n.h" 3 | |
namespace std { inline namespace Cr { | |
template<class _InputIterator, class _Size, class _OutputIterator> | |
inline __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) | |
typename enable_if | |
< | |
__is_cpp17_input_iterator<_InputIterator>::value && | |
!__is_cpp17_random_access_iterator<_InputIterator>::value, | |
_OutputIterator | |
>::type | |
copy_n(_InputIterator __first, _Size __orig_n, _OutputIterator __result) | |
{ | |
typedef decltype(std::__convert_to_integral(__orig_n)) _IntegralSize; | |
_IntegralSize __n = __orig_n; | |
if (__n > 0) | |
{ | |
*__result = *__first; | |
++__result; | |
for (--__n; __n > 0; --__n) | |
{ | |
++__first; | |
*__result = *__first; | |
++__result; | |
} | |
} | |
return __result; | |
} | |
template<class _InputIterator, class _Size, class _OutputIterator> | |
inline __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) | |
typename enable_if | |
< | |
__is_cpp17_random_access_iterator<_InputIterator>::value, | |
_OutputIterator | |
>::type | |
copy_n(_InputIterator __first, _Size __orig_n, _OutputIterator __result) | |
{ | |
typedef typename iterator_traits<_InputIterator>::difference_type difference_type; | |
typedef decltype(std::__convert_to_integral(__orig_n)) _IntegralSize; | |
_IntegralSize __n = __orig_n; | |
return std::copy(__first, __first + difference_type(__n), __result); | |
} | |
}} | |
# 1726 "../../buildtools/third_party/libc++/trunk/include/algorithm" 2 3 | |
# 1 "../../buildtools/third_party/libc++/trunk/include/__algorithm/count.h" 1 3 | |
# 11 "../../buildtools/third_party/libc++/trunk/include/__algorithm/count.h" 3 | |
#define _LIBCPP___ALGORITHM_COUNT_H | |
# 18 "../../buildtools/third_party/libc++/trunk/include/__algorithm/count.h" 3 | |
namespace std { inline namespace Cr { | |
template <class _InputIterator, class _Tp> | |
[[nodiscard]] inline __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) | |
typename iterator_traits<_InputIterator>::difference_type | |
count(_InputIterator __first, _InputIterator __last, const _Tp& __value) { | |
typename iterator_traits<_InputIterator>::difference_type __r(0); | |
for (; __first != __last; ++__first) | |
if (*__first == __value) | |
++__r; | |
return __r; | |
} | |
}} | |
# 1727 "../../buildtools/third_party/libc++/trunk/include/algorithm" 2 3 | |
# 1 "../../buildtools/third_party/libc++/trunk/include/__algorithm/count_if.h" 1 3 | |
# 11 "../../buildtools/third_party/libc++/trunk/include/__algorithm/count_if.h" 3 | |
#define _LIBCPP___ALGORITHM_COUNT_IF_H | |
# 18 "../../buildtools/third_party/libc++/trunk/include/__algorithm/count_if.h" 3 | |
namespace std { inline namespace Cr { | |
template <class _InputIterator, class _Predicate> | |
[[nodiscard]] inline __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) | |
typename iterator_traits<_InputIterator>::difference_type | |
count_if(_InputIterator __first, _InputIterator __last, _Predicate __pred) { | |
typename iterator_traits<_InputIterator>::difference_type __r(0); | |
for (; __first != __last; ++__first) | |
if (__pred(*__first)) | |
++__r; | |
return __r; | |
} | |
}} | |
# 1728 "../../buildtools/third_party/libc++/trunk/include/algorithm" 2 3 | |
# 1 "../../buildtools/third_party/libc++/trunk/include/__algorithm/equal.h" 1 3 | |
# 11 "../../buildtools/third_party/libc++/trunk/include/__algorithm/equal.h" 3 | |
#define _LIBCPP___ALGORITHM_EQUAL_H | |
# 20 "../../buildtools/third_party/libc++/trunk/include/__algorithm/equal.h" 3 | |
namespace std { inline namespace Cr { | |
template <class _InputIterator1, class _InputIterator2, class _BinaryPredicate> | |
[[nodiscard]] inline __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) bool | |
equal(_InputIterator1 __first1, _InputIterator1 __last1, _InputIterator2 __first2, _BinaryPredicate __pred) { | |
for (; __first1 != __last1; ++__first1, (void)++__first2) | |
if (!__pred(*__first1, *__first2)) | |
return false; | |
return true; | |
} | |
template <class _InputIterator1, class _InputIterator2> | |
[[nodiscard]] inline __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) bool | |
equal(_InputIterator1 __first1, _InputIterator1 __last1, _InputIterator2 __first2) { | |
typedef typename iterator_traits<_InputIterator1>::value_type __v1; | |
typedef typename iterator_traits<_InputIterator2>::value_type __v2; | |
return std::equal(__first1, __last1, __first2, __equal_to<__v1, __v2>()); | |
} | |
template <class _BinaryPredicate, class _InputIterator1, class _InputIterator2> | |
inline __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) bool | |
__equal(_InputIterator1 __first1, _InputIterator1 __last1, _InputIterator2 __first2, _InputIterator2 __last2, | |
_BinaryPredicate __pred, input_iterator_tag, input_iterator_tag) { | |
for (; __first1 != __last1 && __first2 != __last2; ++__first1, (void)++__first2) | |
if (!__pred(*__first1, *__first2)) | |
return false; | |
return __first1 == __last1 && __first2 == __last2; | |
} | |
template <class _BinaryPredicate, class _RandomAccessIterator1, class _RandomAccessIterator2> | |
inline __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) bool | |
__equal(_RandomAccessIterator1 __first1, _RandomAccessIterator1 __last1, _RandomAccessIterator2 __first2, | |
_RandomAccessIterator2 __last2, _BinaryPredicate __pred, random_access_iterator_tag, | |
random_access_iterator_tag) { | |
if (std::distance(__first1, __last1) != std::distance(__first2, __last2)) | |
return false; | |
return std::equal<_RandomAccessIterator1, _RandomAccessIterator2, | |
_BinaryPredicate&>(__first1, __last1, __first2, __pred); | |
} | |
template <class _InputIterator1, class _InputIterator2, class _BinaryPredicate> | |
[[nodiscard]] inline __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) bool | |
equal(_InputIterator1 __first1, _InputIterator1 __last1, _InputIterator2 __first2, _InputIterator2 __last2, | |
_BinaryPredicate __pred) { | |
return std::__equal<_BinaryPredicate&>( | |
__first1, __last1, __first2, __last2, __pred, typename iterator_traits<_InputIterator1>::iterator_category(), | |
typename iterator_traits<_InputIterator2>::iterator_category()); | |
} | |
template <class _InputIterator1, class _InputIterator2> | |
[[nodiscard]] inline __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) bool | |
equal(_InputIterator1 __first1, _InputIterator1 __last1, _InputIterator2 __first2, _InputIterator2 __last2) { | |
typedef typename iterator_traits<_InputIterator1>::value_type __v1; | |
typedef typename iterator_traits<_InputIterator2>::value_type __v2; | |
return std::__equal(__first1, __last1, __first2, __last2, __equal_to<__v1, __v2>(), | |
typename iterator_traits<_InputIterator1>::iterator_category(), | |
typename iterator_traits<_InputIterator2>::iterator_category()); | |
} | |
}} | |
# 1729 "../../buildtools/third_party/libc++/trunk/include/algorithm" 2 3 | |
# 1 "../../buildtools/third_party/libc++/trunk/include/__algorithm/equal_range.h" 1 3 | |
# 10 "../../buildtools/third_party/libc++/trunk/include/__algorithm/equal_range.h" 3 | |
#define _LIBCPP___ALGORITHM_EQUAL_RANGE_H | |
# 1 "../../buildtools/third_party/libc++/trunk/include/__algorithm/upper_bound.h" 1 3 | |
# 10 "../../buildtools/third_party/libc++/trunk/include/__algorithm/upper_bound.h" 3 | |
#define _LIBCPP___ALGORITHM_UPPER_BOUND_H | |
# 26 "../../buildtools/third_party/libc++/trunk/include/__algorithm/upper_bound.h" 3 | |
namespace std { inline namespace Cr { | |
template <class _AlgPolicy, class _Compare, class _Iter, class _Sent, class _Tp, class _Proj> | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) _Iter | |
__upper_bound(_Iter __first, _Sent __last, const _Tp& __value, _Compare&& __comp, _Proj&& __proj) { | |
auto __len = _IterOps<_AlgPolicy>::distance(__first, __last); | |
while (__len != 0) { | |
auto __half_len = std::__half_positive(__len); | |
auto __mid = _IterOps<_AlgPolicy>::next(__first, __half_len); | |
if (std::__invoke(__comp, __value, std::__invoke(__proj, *__mid))) | |
__len = __half_len; | |
else { | |
__first = ++__mid; | |
__len -= __half_len + 1; | |
} | |
} | |
return __first; | |
} | |
template <class _ForwardIterator, class _Tp, class _Compare> | |
[[nodiscard]] inline __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) _ForwardIterator | |
upper_bound(_ForwardIterator __first, _ForwardIterator __last, const _Tp& __value, _Compare __comp) { | |
static_assert(is_copy_constructible<_ForwardIterator>::value, | |
"Iterator has to be copy constructible"); | |
return std::__upper_bound<_ClassicAlgPolicy>( | |
std::move(__first), std::move(__last), __value, std::move(__comp), std::__identity()); | |
} | |
template <class _ForwardIterator, class _Tp> | |
[[nodiscard]] inline __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) _ForwardIterator | |
upper_bound(_ForwardIterator __first, _ForwardIterator __last, const _Tp& __value) { | |
return std::upper_bound( | |
std::move(__first), | |
std::move(__last), | |
__value, | |
__less<_Tp, typename iterator_traits<_ForwardIterator>::value_type>()); | |
} | |
}} | |
# 18 "../../buildtools/third_party/libc++/trunk/include/__algorithm/equal_range.h" 2 3 | |
# 32 "../../buildtools/third_party/libc++/trunk/include/__algorithm/equal_range.h" 3 | |
namespace std { inline namespace Cr { | |
template <class _AlgPolicy, class _Compare, class _Iter, class _Sent, class _Tp, class _Proj> | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) pair<_Iter, _Iter> | |
__equal_range(_Iter __first, _Sent __last, const _Tp& __value, _Compare&& __comp, _Proj&& __proj) { | |
auto __len = _IterOps<_AlgPolicy>::distance(__first, __last); | |
_Iter __end = _IterOps<_AlgPolicy>::next(__first, __last); | |
while (__len != 0) { | |
auto __half_len = std::__half_positive(__len); | |
_Iter __mid = _IterOps<_AlgPolicy>::next(__first, __half_len); | |
if (std::__invoke(__comp, std::__invoke(__proj, *__mid), __value)) { | |
__first = ++__mid; | |
__len -= __half_len + 1; | |
} else if (std::__invoke(__comp, __value, std::__invoke(__proj, *__mid))) { | |
__end = __mid; | |
__len = __half_len; | |
} else { | |
_Iter __mp1 = __mid; | |
return pair<_Iter, _Iter>( | |
std::__lower_bound_impl<_AlgPolicy>(__first, __mid, __value, __comp, __proj), | |
std::__upper_bound<_AlgPolicy>(++__mp1, __end, __value, __comp, __proj)); | |
} | |
} | |
return pair<_Iter, _Iter>(__first, __first); | |
} | |
template <class _ForwardIterator, class _Tp, class _Compare> | |
[[nodiscard]] __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) pair<_ForwardIterator, _ForwardIterator> | |
equal_range(_ForwardIterator __first, _ForwardIterator __last, const _Tp& __value, _Compare __comp) { | |
static_assert(__is_callable<_Compare, decltype(*__first), const _Tp&>::value, | |
"The comparator has to be callable"); | |
static_assert(is_copy_constructible<_ForwardIterator>::value, | |
"Iterator has to be copy constructible"); | |
typedef typename __comp_ref_type<_Compare>::type _Comp_ref; | |
return std::__equal_range<_ClassicAlgPolicy>( | |
std::move(__first), std::move(__last), __value, static_cast<_Comp_ref>(__comp), std::__identity()); | |
} | |
template <class _ForwardIterator, class _Tp> | |
[[nodiscard]] __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) pair<_ForwardIterator, _ForwardIterator> | |
equal_range(_ForwardIterator __first, _ForwardIterator __last, const _Tp& __value) { | |
return std::equal_range( | |
std::move(__first), | |
std::move(__last), | |
__value, | |
__less<typename iterator_traits<_ForwardIterator>::value_type, _Tp>()); | |
} | |
}} | |
# 1730 "../../buildtools/third_party/libc++/trunk/include/algorithm" 2 3 | |
# 1 "../../buildtools/third_party/libc++/trunk/include/__algorithm/fill.h" 1 3 | |
# 10 "../../buildtools/third_party/libc++/trunk/include/__algorithm/fill.h" 3 | |
#define _LIBCPP___ALGORITHM_FILL_H | |
# 1 "../../buildtools/third_party/libc++/trunk/include/__algorithm/fill_n.h" 1 3 | |
# 10 "../../buildtools/third_party/libc++/trunk/include/__algorithm/fill_n.h" 3 | |
#define _LIBCPP___ALGORITHM_FILL_N_H | |
# 19 "../../buildtools/third_party/libc++/trunk/include/__algorithm/fill_n.h" 3 | |
namespace std { inline namespace Cr { | |
template <class _OutputIterator, class _Size, class _Tp> | |
inline __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) | |
_OutputIterator | |
__fill_n(_OutputIterator __first, _Size __n, const _Tp& __value) | |
{ | |
for (; __n > 0; ++__first, (void) --__n) | |
*__first = __value; | |
return __first; | |
} | |
template <class _OutputIterator, class _Size, class _Tp> | |
inline __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) | |
_OutputIterator | |
fill_n(_OutputIterator __first, _Size __n, const _Tp& __value) | |
{ | |
return std::__fill_n(__first, std::__convert_to_integral(__n), __value); | |
} | |
}} | |
# 13 "../../buildtools/third_party/libc++/trunk/include/__algorithm/fill.h" 2 3 | |
# 19 "../../buildtools/third_party/libc++/trunk/include/__algorithm/fill.h" 3 | |
namespace std { inline namespace Cr { | |
template <class _ForwardIterator, class _Tp> | |
inline __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) | |
void | |
__fill(_ForwardIterator __first, _ForwardIterator __last, const _Tp& __value, forward_iterator_tag) | |
{ | |
for (; __first != __last; ++__first) | |
*__first = __value; | |
} | |
template <class _RandomAccessIterator, class _Tp> | |
inline __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) | |
void | |
__fill(_RandomAccessIterator __first, _RandomAccessIterator __last, const _Tp& __value, random_access_iterator_tag) | |
{ | |
std::fill_n(__first, __last - __first, __value); | |
} | |
template <class _ForwardIterator, class _Tp> | |
inline __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) | |
void | |
fill(_ForwardIterator __first, _ForwardIterator __last, const _Tp& __value) | |
{ | |
std::__fill(__first, __last, __value, typename iterator_traits<_ForwardIterator>::iterator_category()); | |
} | |
}} | |
# 1731 "../../buildtools/third_party/libc++/trunk/include/algorithm" 2 3 | |
# 1 "../../buildtools/third_party/libc++/trunk/include/__algorithm/find.h" 1 3 | |
# 11 "../../buildtools/third_party/libc++/trunk/include/__algorithm/find.h" 3 | |
#define _LIBCPP___ALGORITHM_FIND_H | |
# 17 "../../buildtools/third_party/libc++/trunk/include/__algorithm/find.h" 3 | |
namespace std { inline namespace Cr { | |
template <class _InputIterator, class _Tp> | |
[[nodiscard]] inline __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) _InputIterator | |
find(_InputIterator __first, _InputIterator __last, const _Tp& __value) { | |
for (; __first != __last; ++__first) | |
if (*__first == __value) | |
break; | |
return __first; | |
} | |
}} | |
# 1733 "../../buildtools/third_party/libc++/trunk/include/algorithm" 2 3 | |
# 1 "../../buildtools/third_party/libc++/trunk/include/__algorithm/find_end.h" 1 3 | |
# 11 "../../buildtools/third_party/libc++/trunk/include/__algorithm/find_end.h" 3 | |
#define _LIBCPP___ALGORITHM_FIND_END_OF_H | |
# 1 "../../buildtools/third_party/libc++/trunk/include/__algorithm/search.h" 1 3 | |
# 11 "../../buildtools/third_party/libc++/trunk/include/__algorithm/search.h" 3 | |
#define _LIBCPP___ALGORITHM_SEARCH_H | |
# 26 "../../buildtools/third_party/libc++/trunk/include/__algorithm/search.h" 3 | |
namespace std { inline namespace Cr { | |
template <class _AlgPolicy, | |
class _Iter1, class _Sent1, | |
class _Iter2, class _Sent2, | |
class _Pred, | |
class _Proj1, | |
class _Proj2> | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) constexpr | |
pair<_Iter1, _Iter1> __search_forward_impl(_Iter1 __first1, _Sent1 __last1, | |
_Iter2 __first2, _Sent2 __last2, | |
_Pred& __pred, | |
_Proj1& __proj1, | |
_Proj2& __proj2) { | |
if (__first2 == __last2) | |
return std::make_pair(__first1, __first1); | |
while (true) { | |
while (true) { | |
if (__first1 == __last1) { | |
_IterOps<_AlgPolicy>::__advance_to(__first1, __last1); | |
return std::make_pair(__first1, __first1); | |
} | |
if (std::__invoke(__pred, std::__invoke(__proj1, *__first1), std::__invoke(__proj2, *__first2))) | |
break; | |
++__first1; | |
} | |
_Iter1 __m1 = __first1; | |
_Iter2 __m2 = __first2; | |
while (true) { | |
if (++__m2 == __last2) | |
return std::make_pair(__first1, ++__m1); | |
if (++__m1 == __last1) { | |
return std::make_pair(__m1, __m1); | |
} | |
if (!std::__invoke(__pred, std::__invoke(__proj1, *__m1), std::__invoke(__proj2, *__m2))) | |
{ | |
++__first1; | |
break; | |
} | |
} | |
} | |
} | |
template <class _AlgPolicy, | |
class _Iter1, class _Sent1, | |
class _Iter2, class _Sent2, | |
class _Pred, | |
class _Proj1, | |
class _Proj2, | |
class _DiffT1, | |
class _DiffT2> | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) constexpr | |
pair<_Iter1, _Iter1> __search_random_access_impl(_Iter1 __first1, _Sent1 __last1, | |
_Iter2 __first2, _Sent2 __last2, | |
_Pred& __pred, | |
_Proj1& __proj1, | |
_Proj2& __proj2, | |
_DiffT1 __size1, | |
_DiffT2 __size2) { | |
const _Iter1 __s = __first1 + __size1 - _DiffT1(__size2 - 1); | |
while (true) { | |
while (true) { | |
if (__first1 == __s) { | |
_IterOps<_AlgPolicy>::__advance_to(__first1, __last1); | |
return std::make_pair(__first1, __first1); | |
} | |
if (std::__invoke(__pred, std::__invoke(__proj1, *__first1), std::__invoke(__proj2, *__first2))) | |
break; | |
++__first1; | |
} | |
_Iter1 __m1 = __first1; | |
_Iter2 __m2 = __first2; | |
while (true) { | |
if (++__m2 == __last2) | |
return std::make_pair(__first1, __first1 + _DiffT1(__size2)); | |
++__m1; | |
if (!std::__invoke(__pred, std::__invoke(__proj1, *__m1), std::__invoke(__proj2, *__m2))) { | |
++__first1; | |
break; | |
} | |
} | |
} | |
} | |
template <class _Iter1, class _Sent1, | |
class _Iter2, class _Sent2, | |
class _Pred, | |
class _Proj1, | |
class _Proj2> | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) constexpr | |
pair<_Iter1, _Iter1> __search_impl(_Iter1 __first1, _Sent1 __last1, | |
_Iter2 __first2, _Sent2 __last2, | |
_Pred& __pred, | |
_Proj1& __proj1, | |
_Proj2& __proj2, | |
__enable_if_t<__is_cpp17_random_access_iterator<_Iter1>::value | |
&& __is_cpp17_random_access_iterator<_Iter2>::value>* = nullptr) { | |
auto __size2 = __last2 - __first2; | |
if (__size2 == 0) | |
return std::make_pair(__first1, __first1); | |
auto __size1 = __last1 - __first1; | |
if (__size1 < __size2) { | |
return std::make_pair(__last1, __last1); | |
} | |
return std::__search_random_access_impl<_ClassicAlgPolicy>(__first1, __last1, | |
__first2, __last2, | |
__pred, | |
__proj1, | |
__proj2, | |
__size1, | |
__size2); | |
} | |
template <class _Iter1, class _Sent1, | |
class _Iter2, class _Sent2, | |
class _Pred, | |
class _Proj1, | |
class _Proj2> | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) constexpr | |
pair<_Iter1, _Iter1> __search_impl(_Iter1 __first1, _Sent1 __last1, | |
_Iter2 __first2, _Sent2 __last2, | |
_Pred& __pred, | |
_Proj1& __proj1, | |
_Proj2& __proj2, | |
__enable_if_t<__is_cpp17_forward_iterator<_Iter1>::value | |
&& __is_cpp17_forward_iterator<_Iter2>::value | |
&& !(__is_cpp17_random_access_iterator<_Iter1>::value | |
&& __is_cpp17_random_access_iterator<_Iter2>::value)>* = nullptr) { | |
return std::__search_forward_impl<_ClassicAlgPolicy>(__first1, __last1, | |
__first2, __last2, | |
__pred, | |
__proj1, | |
__proj2); | |
} | |
template <class _ForwardIterator1, class _ForwardIterator2, class _BinaryPredicate> | |
[[nodiscard]] inline __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) | |
_ForwardIterator1 search(_ForwardIterator1 __first1, _ForwardIterator1 __last1, | |
_ForwardIterator2 __first2, _ForwardIterator2 __last2, | |
_BinaryPredicate __pred) { | |
static_assert(__is_callable<_BinaryPredicate, decltype(*__first1), decltype(*__first2)>::value, | |
"BinaryPredicate has to be callable"); | |
auto __proj = __identity(); | |
return std::__search_impl(__first1, __last1, __first2, __last2, __pred, __proj, __proj).first; | |
} | |
template <class _ForwardIterator1, class _ForwardIterator2> | |
[[nodiscard]] inline __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) | |
_ForwardIterator1 search(_ForwardIterator1 __first1, _ForwardIterator1 __last1, | |
_ForwardIterator2 __first2, _ForwardIterator2 __last2) { | |
using __v1 = typename iterator_traits<_ForwardIterator1>::value_type; | |
using __v2 = typename iterator_traits<_ForwardIterator2>::value_type; | |
return std::search(__first1, __last1, __first2, __last2, __equal_to<__v1, __v2>()); | |
} | |
template <class _ForwardIterator, class _Searcher> | |
[[nodiscard]] __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) _ForwardIterator | |
search(_ForwardIterator __f, _ForwardIterator __l, const _Searcher& __s) { | |
return __s(__f, __l).first; | |
} | |
}} | |
# 16 "../../buildtools/third_party/libc++/trunk/include/__algorithm/find_end.h" 2 3 | |
# 27 "../../buildtools/third_party/libc++/trunk/include/__algorithm/find_end.h" 3 | |
namespace std { inline namespace Cr { | |
template < | |
class _AlgPolicy, | |
class _Iter1, | |
class _Sent1, | |
class _Iter2, | |
class _Sent2, | |
class _Pred, | |
class _Proj1, | |
class _Proj2> | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) inline constexpr pair<_Iter1, _Iter1> __find_end_impl( | |
_Iter1 __first1, | |
_Sent1 __last1, | |
_Iter2 __first2, | |
_Sent2 __last2, | |
_Pred& __pred, | |
_Proj1& __proj1, | |
_Proj2& __proj2, | |
forward_iterator_tag, | |
forward_iterator_tag) { | |
_Iter1 __match_first = _IterOps<_AlgPolicy>::next(__first1, __last1); | |
_Iter1 __match_last = __match_first; | |
if (__first2 == __last2) | |
return pair<_Iter1, _Iter1>(__match_last, __match_last); | |
while (true) { | |
while (true) { | |
if (__first1 == __last1) | |
return pair<_Iter1, _Iter1>(__match_first, __match_last); | |
if (std::__invoke(__pred, std::__invoke(__proj1, *__first1), std::__invoke(__proj2, *__first2))) | |
break; | |
++__first1; | |
} | |
_Iter1 __m1 = __first1; | |
_Iter2 __m2 = __first2; | |
while (true) { | |
if (++__m2 == __last2) { | |
__match_first = __first1; | |
__match_last = ++__m1; | |
++__first1; | |
break; | |
} | |
if (++__m1 == __last1) | |
return pair<_Iter1, _Iter1>(__match_first, __match_last); | |
if (!std::__invoke(__pred, std::__invoke(__proj1, *__m1), std::__invoke(__proj2, *__m2))) | |
{ | |
++__first1; | |
break; | |
} | |
} | |
} | |
} | |
template < | |
class _IterOps, | |
class _Pred, | |
class _Iter1, | |
class _Sent1, | |
class _Iter2, | |
class _Sent2, | |
class _Proj1, | |
class _Proj2> | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) _Iter1 __find_end( | |
_Iter1 __first1, | |
_Sent1 __sent1, | |
_Iter2 __first2, | |
_Sent2 __sent2, | |
_Pred& __pred, | |
_Proj1& __proj1, | |
_Proj2& __proj2, | |
bidirectional_iterator_tag, | |
bidirectional_iterator_tag) { | |
auto __last1 = _IterOps::next(__first1, __sent1); | |
auto __last2 = _IterOps::next(__first2, __sent2); | |
if (__first2 == __last2) | |
return __last1; | |
_Iter1 __l1 = __last1; | |
_Iter2 __l2 = __last2; | |
--__l2; | |
while (true) { | |
while (true) { | |
if (__first1 == __l1) | |
return __last1; | |
if (std::__invoke(__pred, std::__invoke(__proj1, *--__l1), std::__invoke(__proj2, *__l2))) | |
break; | |
} | |
_Iter1 __m1 = __l1; | |
_Iter2 __m2 = __l2; | |
while (true) { | |
if (__m2 == __first2) | |
return __m1; | |
if (__m1 == __first1) | |
return __last1; | |
if (!std::__invoke(__pred, std::__invoke(__proj1, *--__m1), std::__invoke(__proj2, *--__m2))) | |
{ | |
break; | |
} | |
} | |
} | |
} | |
template < | |
class _AlgPolicy, | |
class _Pred, | |
class _Iter1, | |
class _Sent1, | |
class _Iter2, | |
class _Sent2, | |
class _Proj1, | |
class _Proj2> | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) constexpr _Iter1 __find_end( | |
_Iter1 __first1, | |
_Sent1 __sent1, | |
_Iter2 __first2, | |
_Sent2 __sent2, | |
_Pred& __pred, | |
_Proj1& __proj1, | |
_Proj2& __proj2, | |
random_access_iterator_tag, | |
random_access_iterator_tag) { | |
typedef typename iterator_traits<_Iter1>::difference_type _D1; | |
auto __last1 = _IterOps<_AlgPolicy>::next(__first1, __sent1); | |
auto __last2 = _IterOps<_AlgPolicy>::next(__first2, __sent2); | |
auto __len2 = __last2 - __first2; | |
if (__len2 == 0) | |
return __last1; | |
auto __len1 = __last1 - __first1; | |
if (__len1 < __len2) | |
return __last1; | |
const _Iter1 __s = __first1 + _D1(__len2 - 1); | |
_Iter1 __l1 = __last1; | |
_Iter2 __l2 = __last2; | |
--__l2; | |
while (true) { | |
while (true) { | |
if (__s == __l1) | |
return __last1; | |
if (std::__invoke(__pred, std::__invoke(__proj1, *--__l1), std::__invoke(__proj2, *__l2))) | |
break; | |
} | |
_Iter1 __m1 = __l1; | |
_Iter2 __m2 = __l2; | |
while (true) { | |
if (__m2 == __first2) | |
return __m1; | |
if (!std::__invoke(__pred, std::__invoke(__proj1, *--__m1), std::__invoke(*--__m2))) { | |
break; | |
} | |
} | |
} | |
} | |
template <class _ForwardIterator1, class _ForwardIterator2, class _BinaryPredicate> | |
[[nodiscard]] inline __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) constexpr | |
_ForwardIterator1 __find_end_classic(_ForwardIterator1 __first1, _ForwardIterator1 __last1, | |
_ForwardIterator2 __first2, _ForwardIterator2 __last2, | |
_BinaryPredicate& __pred) { | |
auto __proj = __identity(); | |
return std::__find_end_impl<_ClassicAlgPolicy>( | |
__first1, | |
__last1, | |
__first2, | |
__last2, | |
__pred, | |
__proj, | |
__proj, | |
typename iterator_traits<_ForwardIterator1>::iterator_category(), | |
typename iterator_traits<_ForwardIterator2>::iterator_category()) | |
.first; | |
} | |
template <class _ForwardIterator1, class _ForwardIterator2, class _BinaryPredicate> | |
[[nodiscard]] inline __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) | |
_ForwardIterator1 find_end(_ForwardIterator1 __first1, _ForwardIterator1 __last1, | |
_ForwardIterator2 __first2, _ForwardIterator2 __last2, | |
_BinaryPredicate __pred) { | |
return std::__find_end_classic(__first1, __last1, __first2, __last2, __pred); | |
} | |
template <class _ForwardIterator1, class _ForwardIterator2> | |
[[nodiscard]] inline __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) | |
_ForwardIterator1 find_end(_ForwardIterator1 __first1, _ForwardIterator1 __last1, | |
_ForwardIterator2 __first2, _ForwardIterator2 __last2) { | |
using __v1 = typename iterator_traits<_ForwardIterator1>::value_type; | |
using __v2 = typename iterator_traits<_ForwardIterator2>::value_type; | |
return std::find_end(__first1, __last1, __first2, __last2, __equal_to<__v1, __v2>()); | |
} | |
}} | |
# 1734 "../../buildtools/third_party/libc++/trunk/include/algorithm" 2 3 | |
# 1 "../../buildtools/third_party/libc++/trunk/include/__algorithm/find_first_of.h" 1 3 | |
# 11 "../../buildtools/third_party/libc++/trunk/include/__algorithm/find_first_of.h" 3 | |
#define _LIBCPP___ALGORITHM_FIND_FIRST_OF_H | |
# 19 "../../buildtools/third_party/libc++/trunk/include/__algorithm/find_first_of.h" 3 | |
namespace std { inline namespace Cr { | |
template <class _ForwardIterator1, class _ForwardIterator2, class _BinaryPredicate> | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) | |
constexpr _ForwardIterator1 __find_first_of_ce(_ForwardIterator1 __first1, | |
_ForwardIterator1 __last1, | |
_ForwardIterator2 __first2, | |
_ForwardIterator2 __last2, | |
_BinaryPredicate&& __pred) { | |
for (; __first1 != __last1; ++__first1) | |
for (_ForwardIterator2 __j = __first2; __j != __last2; ++__j) | |
if (__pred(*__first1, *__j)) | |
return __first1; | |
return __last1; | |
} | |
template <class _ForwardIterator1, class _ForwardIterator2, class _BinaryPredicate> | |
[[nodiscard]] inline __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) _ForwardIterator1 | |
find_first_of(_ForwardIterator1 __first1, _ForwardIterator1 __last1, _ForwardIterator2 __first2, | |
_ForwardIterator2 __last2, _BinaryPredicate __pred) { | |
return std::__find_first_of_ce(__first1, __last1, __first2, __last2, __pred); | |
} | |
template <class _ForwardIterator1, class _ForwardIterator2> | |
[[nodiscard]] inline __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) _ForwardIterator1 find_first_of( | |
_ForwardIterator1 __first1, _ForwardIterator1 __last1, _ForwardIterator2 __first2, _ForwardIterator2 __last2) { | |
typedef typename iterator_traits<_ForwardIterator1>::value_type __v1; | |
typedef typename iterator_traits<_ForwardIterator2>::value_type __v2; | |
return std::__find_first_of_ce(__first1, __last1, __first2, __last2, __equal_to<__v1, __v2>()); | |
} | |
}} | |
# 1735 "../../buildtools/third_party/libc++/trunk/include/algorithm" 2 3 | |
# 1 "../../buildtools/third_party/libc++/trunk/include/__algorithm/find_if.h" 1 3 | |
# 11 "../../buildtools/third_party/libc++/trunk/include/__algorithm/find_if.h" 3 | |
#define _LIBCPP___ALGORITHM_FIND_IF_H | |
# 17 "../../buildtools/third_party/libc++/trunk/include/__algorithm/find_if.h" 3 | |
namespace std { inline namespace Cr { | |
template <class _InputIterator, class _Predicate> | |
[[nodiscard]] inline __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) _InputIterator | |
find_if(_InputIterator __first, _InputIterator __last, _Predicate __pred) { | |
for (; __first != __last; ++__first) | |
if (__pred(*__first)) | |
break; | |
return __first; | |
} | |
}} | |
# 1736 "../../buildtools/third_party/libc++/trunk/include/algorithm" 2 3 | |
# 1 "../../buildtools/third_party/libc++/trunk/include/__algorithm/find_if_not.h" 1 3 | |
# 11 "../../buildtools/third_party/libc++/trunk/include/__algorithm/find_if_not.h" 3 | |
#define _LIBCPP___ALGORITHM_FIND_IF_NOT_H | |
# 17 "../../buildtools/third_party/libc++/trunk/include/__algorithm/find_if_not.h" 3 | |
namespace std { inline namespace Cr { | |
template <class _InputIterator, class _Predicate> | |
[[nodiscard]] inline __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) _InputIterator | |
find_if_not(_InputIterator __first, _InputIterator __last, _Predicate __pred) { | |
for (; __first != __last; ++__first) | |
if (!__pred(*__first)) | |
break; | |
return __first; | |
} | |
}} | |
# 1737 "../../buildtools/third_party/libc++/trunk/include/algorithm" 2 3 | |
# 1 "../../buildtools/third_party/libc++/trunk/include/__algorithm/for_each.h" 1 3 | |
# 11 "../../buildtools/third_party/libc++/trunk/include/__algorithm/for_each.h" 3 | |
#define _LIBCPP___ALGORITHM_FOR_EACH_H | |
# 17 "../../buildtools/third_party/libc++/trunk/include/__algorithm/for_each.h" 3 | |
namespace std { inline namespace Cr { | |
template <class _InputIterator, class _Function> | |
inline __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) _Function for_each(_InputIterator __first, | |
_InputIterator __last, | |
_Function __f) { | |
for (; __first != __last; ++__first) | |
__f(*__first); | |
return __f; | |
} | |
}} | |
# 1738 "../../buildtools/third_party/libc++/trunk/include/algorithm" 2 3 | |
# 1 "../../buildtools/third_party/libc++/trunk/include/__algorithm/for_each_n.h" 1 3 | |
# 11 "../../buildtools/third_party/libc++/trunk/include/__algorithm/for_each_n.h" 3 | |
#define _LIBCPP___ALGORITHM_FOR_EACH_N_H | |
# 19 "../../buildtools/third_party/libc++/trunk/include/__algorithm/for_each_n.h" 3 | |
namespace std { inline namespace Cr { | |
template <class _InputIterator, class _Size, class _Function> | |
inline __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) _InputIterator for_each_n(_InputIterator __first, | |
_Size __orig_n, | |
_Function __f) { | |
typedef decltype(std::__convert_to_integral(__orig_n)) _IntegralSize; | |
_IntegralSize __n = __orig_n; | |
while (__n > 0) { | |
__f(*__first); | |
++__first; | |
--__n; | |
} | |
return __first; | |
} | |
}} | |
# 1739 "../../buildtools/third_party/libc++/trunk/include/algorithm" 2 3 | |
# 1 "../../buildtools/third_party/libc++/trunk/include/__algorithm/generate.h" 1 3 | |
# 10 "../../buildtools/third_party/libc++/trunk/include/__algorithm/generate.h" 3 | |
#define _LIBCPP___ALGORITHM_GENERATE_H | |
# 16 "../../buildtools/third_party/libc++/trunk/include/__algorithm/generate.h" 3 | |
namespace std { inline namespace Cr { | |
template <class _ForwardIterator, class _Generator> | |
inline __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) | |
void | |
generate(_ForwardIterator __first, _ForwardIterator __last, _Generator __gen) | |
{ | |
for (; __first != __last; ++__first) | |
*__first = __gen(); | |
} | |
}} | |
# 1740 "../../buildtools/third_party/libc++/trunk/include/algorithm" 2 3 | |
# 1 "../../buildtools/third_party/libc++/trunk/include/__algorithm/generate_n.h" 1 3 | |
# 10 "../../buildtools/third_party/libc++/trunk/include/__algorithm/generate_n.h" 3 | |
#define _LIBCPP___ALGORITHM_GENERATE_N_H | |
# 18 "../../buildtools/third_party/libc++/trunk/include/__algorithm/generate_n.h" 3 | |
namespace std { inline namespace Cr { | |
template <class _OutputIterator, class _Size, class _Generator> | |
inline __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) | |
_OutputIterator | |
generate_n(_OutputIterator __first, _Size __orig_n, _Generator __gen) | |
{ | |
typedef decltype(std::__convert_to_integral(__orig_n)) _IntegralSize; | |
_IntegralSize __n = __orig_n; | |
for (; __n > 0; ++__first, (void) --__n) | |
*__first = __gen(); | |
return __first; | |
} | |
}} | |
# 1741 "../../buildtools/third_party/libc++/trunk/include/algorithm" 2 3 | |
# 1 "../../buildtools/third_party/libc++/trunk/include/__algorithm/in_found_result.h" 1 3 | |
# 11 "../../buildtools/third_party/libc++/trunk/include/__algorithm/in_found_result.h" 3 | |
#define _LIBCPP___ALGORITHM_IN_FOUND_RESULT_H | |
# 19 "../../buildtools/third_party/libc++/trunk/include/__algorithm/in_found_result.h" 3 | |
# 1743 "../../buildtools/third_party/libc++/trunk/include/algorithm" 2 3 | |
# 1 "../../buildtools/third_party/libc++/trunk/include/__algorithm/in_fun_result.h" 1 3 | |
# 11 "../../buildtools/third_party/libc++/trunk/include/__algorithm/in_fun_result.h" 3 | |
#define _LIBCPP___ALGORITHM_IN_FUN_RESULT_H | |
# 19 "../../buildtools/third_party/libc++/trunk/include/__algorithm/in_fun_result.h" 3 | |
namespace std { inline namespace Cr { | |
# 47 "../../buildtools/third_party/libc++/trunk/include/__algorithm/in_fun_result.h" 3 | |
}} | |
# 1744 "../../buildtools/third_party/libc++/trunk/include/algorithm" 2 3 | |
# 1 "../../buildtools/third_party/libc++/trunk/include/__algorithm/in_in_out_result.h" 1 3 | |
# 11 "../../buildtools/third_party/libc++/trunk/include/__algorithm/in_in_out_result.h" 3 | |
#define _LIBCPP___ALGORITHM_IN_IN_OUT_RESULT_H | |
# 19 "../../buildtools/third_party/libc++/trunk/include/__algorithm/in_in_out_result.h" 3 | |
namespace std { inline namespace Cr { | |
# 54 "../../buildtools/third_party/libc++/trunk/include/__algorithm/in_in_out_result.h" 3 | |
}} | |
# 1745 "../../buildtools/third_party/libc++/trunk/include/algorithm" 2 3 | |
# 1 "../../buildtools/third_party/libc++/trunk/include/__algorithm/in_in_result.h" 1 3 | |
# 11 "../../buildtools/third_party/libc++/trunk/include/__algorithm/in_in_result.h" 3 | |
#define _LIBCPP___ALGORITHM_IN_IN_RESULT_H | |
# 19 "../../buildtools/third_party/libc++/trunk/include/__algorithm/in_in_result.h" 3 | |
namespace std { inline namespace Cr { | |
# 51 "../../buildtools/third_party/libc++/trunk/include/__algorithm/in_in_result.h" 3 | |
}} | |
# 1746 "../../buildtools/third_party/libc++/trunk/include/algorithm" 2 3 | |
# 1 "../../buildtools/third_party/libc++/trunk/include/__algorithm/in_out_out_result.h" 1 3 | |
# 11 "../../buildtools/third_party/libc++/trunk/include/__algorithm/in_out_out_result.h" 3 | |
#define _LIBCPP___ALGORITHM_IN_OUT_OUT_RESULT_H | |
# 19 "../../buildtools/third_party/libc++/trunk/include/__algorithm/in_out_out_result.h" 3 | |
namespace std { inline namespace Cr { | |
# 52 "../../buildtools/third_party/libc++/trunk/include/__algorithm/in_out_out_result.h" 3 | |
}} | |
# 1747 "../../buildtools/third_party/libc++/trunk/include/algorithm" 2 3 | |
# 1 "../../buildtools/third_party/libc++/trunk/include/__algorithm/includes.h" 1 3 | |
# 10 "../../buildtools/third_party/libc++/trunk/include/__algorithm/includes.h" 3 | |
#define _LIBCPP___ALGORITHM_INCLUDES_H | |
# 23 "../../buildtools/third_party/libc++/trunk/include/__algorithm/includes.h" 3 | |
namespace std { inline namespace Cr { | |
template <class _Iter1, class _Sent1, class _Iter2, class _Sent2, class _Comp, class _Proj1, class _Proj2> | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) bool | |
__includes(_Iter1 __first1, _Sent1 __last1, _Iter2 __first2, _Sent2 __last2, | |
_Comp&& __comp, _Proj1&& __proj1, _Proj2&& __proj2) { | |
for (; __first2 != __last2; ++__first1) { | |
if (__first1 == __last1 || std::__invoke( | |
__comp, std::__invoke(__proj2, *__first2), std::__invoke(__proj1, *__first1))) | |
return false; | |
if (!std::__invoke(__comp, std::__invoke(__proj1, *__first1), std::__invoke(__proj2, *__first2))) | |
++__first2; | |
} | |
return true; | |
} | |
template <class _InputIterator1, class _InputIterator2, class _Compare> | |
[[nodiscard]] inline __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) bool includes( | |
_InputIterator1 __first1, | |
_InputIterator1 __last1, | |
_InputIterator2 __first2, | |
_InputIterator2 __last2, | |
_Compare __comp) { | |
static_assert(__is_callable<_Compare, decltype(*__first1), decltype(*__first2)>::value, | |
"Comparator has to be callable"); | |
typedef typename __comp_ref_type<_Compare>::type _Comp_ref; | |
return std::__includes( | |
std::move(__first1), std::move(__last1), std::move(__first2), std::move(__last2), | |
static_cast<_Comp_ref>(__comp), __identity(), __identity()); | |
} | |
template <class _InputIterator1, class _InputIterator2> | |
[[nodiscard]] inline __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) bool | |
includes(_InputIterator1 __first1, _InputIterator1 __last1, _InputIterator2 __first2, _InputIterator2 __last2) { | |
return std::includes( | |
std::move(__first1), | |
std::move(__last1), | |
std::move(__first2), | |
std::move(__last2), | |
__less<typename iterator_traits<_InputIterator1>::value_type, | |
typename iterator_traits<_InputIterator2>::value_type>()); | |
} | |
}} | |
# 1749 "../../buildtools/third_party/libc++/trunk/include/algorithm" 2 3 | |
# 1 "../../buildtools/third_party/libc++/trunk/include/__algorithm/inplace_merge.h" 1 3 | |
# 10 "../../buildtools/third_party/libc++/trunk/include/__algorithm/inplace_merge.h" 3 | |
#define _LIBCPP___ALGORITHM_INPLACE_MERGE_H | |
# 1 "../../buildtools/third_party/libc++/trunk/include/__algorithm/min.h" 1 3 | |
# 10 "../../buildtools/third_party/libc++/trunk/include/__algorithm/min.h" 3 | |
#define _LIBCPP___ALGORITHM_MIN_H | |
# 1 "../../buildtools/third_party/libc++/trunk/include/__algorithm/min_element.h" 1 3 | |
# 10 "../../buildtools/third_party/libc++/trunk/include/__algorithm/min_element.h" 3 | |
#define _LIBCPP___ALGORITHM_MIN_ELEMENT_H | |
# 23 "../../buildtools/third_party/libc++/trunk/include/__algorithm/min_element.h" 3 | |
namespace std { inline namespace Cr { | |
template <class _Comp, class _Iter, class _Sent, class _Proj> | |
inline __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) constexpr | |
_Iter __min_element(_Iter __first, _Sent __last, _Comp __comp, _Proj& __proj) { | |
if (__first == __last) | |
return __first; | |
_Iter __i = __first; | |
while (++__i != __last) | |
if (std::__invoke(__comp, std::__invoke(__proj, *__i), std::__invoke(__proj, *__first))) | |
__first = __i; | |
return __first; | |
} | |
template <class _Comp, class _Iter, class _Sent> | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) constexpr | |
_Iter __min_element(_Iter __first, _Sent __last, _Comp __comp) { | |
auto __proj = __identity(); | |
return std::__min_element<_Comp>(std::move(__first), std::move(__last), __comp, __proj); | |
} | |
template <class _ForwardIterator, class _Compare> | |
[[nodiscard]] inline __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) constexpr _ForwardIterator | |
min_element(_ForwardIterator __first, _ForwardIterator __last, _Compare __comp) | |
{ | |
static_assert(__is_cpp17_forward_iterator<_ForwardIterator>::value, | |
"std::min_element requires a ForwardIterator"); | |
static_assert(__is_callable<_Compare, decltype(*__first), decltype(*__first)>::value, | |
"The comparator has to be callable"); | |
typedef typename __comp_ref_type<_Compare>::type _Comp_ref; | |
return std::__min_element<_Comp_ref>(std::move(__first), std::move(__last), __comp); | |
} | |
template <class _ForwardIterator> | |
[[nodiscard]] inline __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) constexpr _ForwardIterator | |
min_element(_ForwardIterator __first, _ForwardIterator __last) | |
{ | |
return std::min_element(__first, __last, | |
__less<typename iterator_traits<_ForwardIterator>::value_type>()); | |
} | |
}} | |
# 15 "../../buildtools/third_party/libc++/trunk/include/__algorithm/min.h" 2 3 | |
# 20 "../../buildtools/third_party/libc++/trunk/include/__algorithm/min.h" 3 | |
# 1 "../../buildtools/third_party/libc++/trunk/include/__undef_macros" 1 3 | |
# 24 "../../buildtools/third_party/libc++/trunk/include/__algorithm/min.h" 2 3 | |
namespace std { inline namespace Cr { | |
template <class _Tp, class _Compare> | |
[[nodiscard]] inline | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) constexpr | |
const _Tp& | |
min(const _Tp& __a, const _Tp& __b, _Compare __comp) | |
{ | |
return __comp(__b, __a) ? __b : __a; | |
} | |
template <class _Tp> | |
[[nodiscard]] inline | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) constexpr | |
const _Tp& | |
min(const _Tp& __a, const _Tp& __b) | |
{ | |
return std::min(__a, __b, __less<_Tp>()); | |
} | |
template<class _Tp, class _Compare> | |
[[nodiscard]] inline | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) constexpr | |
_Tp | |
min(initializer_list<_Tp> __t, _Compare __comp) | |
{ | |
typedef typename __comp_ref_type<_Compare>::type _Comp_ref; | |
return *std::__min_element<_Comp_ref>(__t.begin(), __t.end(), __comp); | |
} | |
template<class _Tp> | |
[[nodiscard]] inline | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) constexpr | |
_Tp | |
min(initializer_list<_Tp> __t) | |
{ | |
return *std::min_element(__t.begin(), __t.end(), __less<_Tp>()); | |
} | |
}} | |
# 17 "../../buildtools/third_party/libc++/trunk/include/__algorithm/inplace_merge.h" 2 3 | |
# 1 "../../buildtools/third_party/libc++/trunk/include/__algorithm/move.h" 1 3 | |
# 10 "../../buildtools/third_party/libc++/trunk/include/__algorithm/move.h" 3 | |
#define _LIBCPP___ALGORITHM_MOVE_H | |
# 24 "../../buildtools/third_party/libc++/trunk/include/__algorithm/move.h" 3 | |
namespace std { inline namespace Cr { | |
template <class _AlgPolicy, class _InIter, class _Sent, class _OutIter> | |
inline __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) constexpr | |
pair<_InIter, _OutIter> __move_impl(_InIter __first, _Sent __last, _OutIter __result) { | |
while (__first != __last) { | |
*__result = _IterOps<_AlgPolicy>::__iter_move(__first); | |
++__first; | |
++__result; | |
} | |
return std::make_pair(std::move(__first), std::move(__result)); | |
} | |
template <class _AlgPolicy, | |
class _InType, | |
class _OutType, | |
class = __enable_if_t<is_same<__remove_const_t<_InType>, _OutType>::value | |
&& is_trivially_move_assignable<_OutType>::value> > | |
inline __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) constexpr | |
pair<_InType*, _OutType*> __move_impl(_InType* __first, _InType* __last, _OutType* __result) { | |
if (__libcpp_is_constant_evaluated() | |
&& !is_trivially_copyable<_InType>::value | |
) | |
return std::__move_impl<_AlgPolicy, _InType*, _InType*, _OutType*>(__first, __last, __result); | |
const size_t __n = static_cast<size_t>(__last - __first); | |
::__builtin_memmove(__result, __first, __n * sizeof(_OutType)); | |
return std::make_pair(__first + __n, __result + __n); | |
} | |
template <class> | |
struct __is_trivially_move_assignable_unwrapped_impl : false_type {}; | |
template <class _Type> | |
struct __is_trivially_move_assignable_unwrapped_impl<_Type*> : is_trivially_move_assignable<_Type> {}; | |
template <class _Iter> | |
struct __is_trivially_move_assignable_unwrapped | |
: __is_trivially_move_assignable_unwrapped_impl<decltype(std::__unwrap_iter<_Iter>(std::declval<_Iter>()))> {}; | |
template <class _AlgPolicy, | |
class _InIter, | |
class _OutIter, | |
__enable_if_t<is_same<__remove_const_t<typename iterator_traits<_InIter>::value_type>, | |
typename iterator_traits<_OutIter>::value_type>::value | |
&& __is_cpp17_contiguous_iterator<_InIter>::value | |
&& __is_cpp17_contiguous_iterator<_OutIter>::value | |
&& is_trivially_move_assignable<__iter_value_type<_OutIter> >::value, int> = 0> | |
inline __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) constexpr | |
pair<reverse_iterator<_InIter>, reverse_iterator<_OutIter> > | |
__move_impl(reverse_iterator<_InIter> __first, | |
reverse_iterator<_InIter> __last, | |
reverse_iterator<_OutIter> __result) { | |
auto __first_base = std::__unwrap_iter(__first.base()); | |
auto __last_base = std::__unwrap_iter(__last.base()); | |
auto __result_base = std::__unwrap_iter(__result.base()); | |
auto __result_first = __result_base - (__first_base - __last_base); | |
std::__move_impl<_AlgPolicy>(__last_base, __first_base, __result_first); | |
return std::make_pair(__last, reverse_iterator<_OutIter>(std::__rewrap_iter(__result.base(), __result_first))); | |
} | |
template <class _AlgPolicy, class _InIter, class _Sent, class _OutIter> | |
inline __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) constexpr | |
__enable_if_t<is_copy_constructible<_InIter>::value | |
&& is_copy_constructible<_Sent>::value | |
&& is_copy_constructible<_OutIter>::value, pair<_InIter, _OutIter> > | |
__move(_InIter __first, _Sent __last, _OutIter __result) { | |
auto __ret = std::__move_impl<_AlgPolicy>( | |
std::__unwrap_iter(__first), std::__unwrap_iter(__last), std::__unwrap_iter(__result)); | |
return std::make_pair(std::__rewrap_iter(__first, __ret.first), std::__rewrap_iter(__result, __ret.second)); | |
} | |
template <class _AlgPolicy, class _InIter, class _Sent, class _OutIter> | |
inline __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) constexpr | |
__enable_if_t<!is_copy_constructible<_InIter>::value | |
|| !is_copy_constructible<_Sent>::value | |
|| !is_copy_constructible<_OutIter>::value, pair<_InIter, _OutIter> > | |
__move(_InIter __first, _Sent __last, _OutIter __result) { | |
return std::__move_impl<_AlgPolicy>(std::move(__first), std::move(__last), std::move(__result)); | |
} | |
template <class _InputIterator, class _OutputIterator> | |
inline __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) | |
_OutputIterator move(_InputIterator __first, _InputIterator __last, _OutputIterator __result) { | |
return std::__move<_ClassicAlgPolicy>(__first, __last, __result).second; | |
} | |
}} | |
# 18 "../../buildtools/third_party/libc++/trunk/include/__algorithm/inplace_merge.h" 2 3 | |
# 1 "../../buildtools/third_party/libc++/trunk/include/__algorithm/rotate.h" 1 3 | |
# 10 "../../buildtools/third_party/libc++/trunk/include/__algorithm/rotate.h" 3 | |
#define _LIBCPP___ALGORITHM_ROTATE_H | |
# 1 "../../buildtools/third_party/libc++/trunk/include/__algorithm/move_backward.h" 1 3 | |
# 10 "../../buildtools/third_party/libc++/trunk/include/__algorithm/move_backward.h" 3 | |
#define _LIBCPP___ALGORITHM_MOVE_BACKWARD_H | |
# 21 "../../buildtools/third_party/libc++/trunk/include/__algorithm/move_backward.h" 3 | |
namespace std { inline namespace Cr { | |
template <class _AlgPolicy, class _InputIterator, class _OutputIterator> | |
inline __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) constexpr | |
_OutputIterator | |
__move_backward_constexpr(_InputIterator __first, _InputIterator __last, _OutputIterator __result) | |
{ | |
while (__first != __last) | |
*--__result = _IterOps<_AlgPolicy>::__iter_move(--__last); | |
return __result; | |
} | |
template <class _AlgPolicy, class _InputIterator, class _OutputIterator> | |
inline __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) constexpr | |
_OutputIterator | |
__move_backward_impl(_InputIterator __first, _InputIterator __last, _OutputIterator __result) | |
{ | |
return std::__move_backward_constexpr<_AlgPolicy>(__first, __last, __result); | |
} | |
template <class _AlgPolicy, class _Tp, class _Up> | |
inline __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) constexpr | |
typename enable_if | |
< | |
is_same<__remove_const_t<_Tp>, _Up>::value && | |
is_trivially_move_assignable<_Up>::value, | |
_Up* | |
>::type | |
__move_backward_impl(_Tp* __first, _Tp* __last, _Up* __result) | |
{ | |
const size_t __n = static_cast<size_t>(__last - __first); | |
if (__n > 0) | |
{ | |
__result -= __n; | |
std::memmove(__result, __first, __n * sizeof(_Up)); | |
} | |
return __result; | |
} | |
template <class _AlgPolicy, class _BidirectionalIterator1, class _BidirectionalIterator2> | |
inline __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) | |
_BidirectionalIterator2 | |
__move_backward(_BidirectionalIterator1 __first, _BidirectionalIterator1 __last, | |
_BidirectionalIterator2 __result) | |
{ | |
if (__libcpp_is_constant_evaluated()) { | |
return std::__move_backward_constexpr<_AlgPolicy>(__first, __last, __result); | |
} else { | |
return std::__rewrap_iter(__result, | |
std::__move_backward_impl<_AlgPolicy>(std::__unwrap_iter(__first), | |
std::__unwrap_iter(__last), | |
std::__unwrap_iter(__result))); | |
} | |
} | |
template <class _BidirectionalIterator1, class _BidirectionalIterator2> | |
inline __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) | |
_BidirectionalIterator2 | |
move_backward(_BidirectionalIterator1 __first, _BidirectionalIterator1 __last, | |
_BidirectionalIterator2 __result) | |
{ | |
return std::__move_backward<_ClassicAlgPolicy>(std::move(__first), std::move(__last), std::move(__result)); | |
} | |
}} | |
# 15 "../../buildtools/third_party/libc++/trunk/include/__algorithm/rotate.h" 2 3 | |
# 1 "../../buildtools/third_party/libc++/trunk/include/__algorithm/swap_ranges.h" 1 3 | |
# 10 "../../buildtools/third_party/libc++/trunk/include/__algorithm/swap_ranges.h" 3 | |
#define _LIBCPP___ALGORITHM_SWAP_RANGES_H | |
# 19 "../../buildtools/third_party/libc++/trunk/include/__algorithm/swap_ranges.h" 3 | |
namespace std { inline namespace Cr { | |
template <class _AlgPolicy, class _ForwardIterator1, class _Sentinel1, class _ForwardIterator2, class _Sentinel2> | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) | |
pair<_ForwardIterator1, _ForwardIterator2> | |
__swap_ranges(_ForwardIterator1 __first1, _Sentinel1 __last1, _ForwardIterator2 __first2, _Sentinel2 __last2) { | |
while (__first1 != __last1 && __first2 != __last2) { | |
_IterOps<_AlgPolicy>::iter_swap(__first1, __first2); | |
++__first1; | |
++__first2; | |
} | |
return pair<_ForwardIterator1, _ForwardIterator2>(std::move(__first1), std::move(__first2)); | |
} | |
template <class _AlgPolicy, class _ForwardIterator1, class _Sentinel1, class _ForwardIterator2> | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) | |
pair<_ForwardIterator1, _ForwardIterator2> | |
__swap_ranges(_ForwardIterator1 __first1, _Sentinel1 __last1, _ForwardIterator2 __first2) { | |
while (__first1 != __last1) { | |
_IterOps<_AlgPolicy>::iter_swap(__first1, __first2); | |
++__first1; | |
++__first2; | |
} | |
return pair<_ForwardIterator1, _ForwardIterator2>(std::move(__first1), std::move(__first2)); | |
} | |
template <class _ForwardIterator1, class _ForwardIterator2> | |
inline __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) _ForwardIterator2 | |
swap_ranges(_ForwardIterator1 __first1, _ForwardIterator1 __last1, _ForwardIterator2 __first2) { | |
return std::__swap_ranges<_ClassicAlgPolicy>( | |
std::move(__first1), std::move(__last1), std::move(__first2)).second; | |
} | |
}} | |
# 16 "../../buildtools/third_party/libc++/trunk/include/__algorithm/rotate.h" 2 3 | |
# 24 "../../buildtools/third_party/libc++/trunk/include/__algorithm/rotate.h" 3 | |
namespace std { inline namespace Cr { | |
template <class _AlgPolicy, class _ForwardIterator> | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) constexpr _ForwardIterator | |
__rotate_left(_ForwardIterator __first, _ForwardIterator __last) | |
{ | |
typedef typename iterator_traits<_ForwardIterator>::value_type value_type; | |
using _Ops = _IterOps<_AlgPolicy>; | |
value_type __tmp = _Ops::__iter_move(__first); | |
_ForwardIterator __lm1 = std::__move<_AlgPolicy>( | |
_Ops::next(__first), __last, __first).second; | |
*__lm1 = std::move(__tmp); | |
return __lm1; | |
} | |
template <class _AlgPolicy, class _BidirectionalIterator> | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) constexpr _BidirectionalIterator | |
__rotate_right(_BidirectionalIterator __first, _BidirectionalIterator __last) | |
{ | |
typedef typename iterator_traits<_BidirectionalIterator>::value_type value_type; | |
using _Ops = _IterOps<_AlgPolicy>; | |
_BidirectionalIterator __lm1 = _Ops::prev(__last); | |
value_type __tmp = _Ops::__iter_move(__lm1); | |
_BidirectionalIterator __fp1 = std::__move_backward<_AlgPolicy>(__first, __lm1, std::move(__last)); | |
*__first = std::move(__tmp); | |
return __fp1; | |
} | |
template <class _AlgPolicy, class _ForwardIterator> | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) constexpr _ForwardIterator | |
__rotate_forward(_ForwardIterator __first, _ForwardIterator __middle, _ForwardIterator __last) | |
{ | |
_ForwardIterator __i = __middle; | |
while (true) | |
{ | |
_IterOps<_AlgPolicy>::iter_swap(__first, __i); | |
++__first; | |
if (++__i == __last) | |
break; | |
if (__first == __middle) | |
__middle = __i; | |
} | |
_ForwardIterator __r = __first; | |
if (__first != __middle) | |
{ | |
__i = __middle; | |
while (true) | |
{ | |
_IterOps<_AlgPolicy>::iter_swap(__first, __i); | |
++__first; | |
if (++__i == __last) | |
{ | |
if (__first == __middle) | |
break; | |
__i = __middle; | |
} | |
else if (__first == __middle) | |
__middle = __i; | |
} | |
} | |
return __r; | |
} | |
template<typename _Integral> | |
inline __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) | |
constexpr _Integral | |
__algo_gcd(_Integral __x, _Integral __y) | |
{ | |
do | |
{ | |
_Integral __t = __x % __y; | |
__x = __y; | |
__y = __t; | |
} while (__y); | |
return __x; | |
} | |
template <class _AlgPolicy, typename _RandomAccessIterator> | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) constexpr _RandomAccessIterator | |
__rotate_gcd(_RandomAccessIterator __first, _RandomAccessIterator __middle, _RandomAccessIterator __last) | |
{ | |
typedef typename iterator_traits<_RandomAccessIterator>::difference_type difference_type; | |
typedef typename iterator_traits<_RandomAccessIterator>::value_type value_type; | |
using _Ops = _IterOps<_AlgPolicy>; | |
const difference_type __m1 = __middle - __first; | |
const difference_type __m2 = _Ops::distance(__middle, __last); | |
if (__m1 == __m2) | |
{ | |
std::__swap_ranges<_AlgPolicy>(__first, __middle, __middle, __last); | |
return __middle; | |
} | |
const difference_type __g = std::__algo_gcd(__m1, __m2); | |
for (_RandomAccessIterator __p = __first + __g; __p != __first;) | |
{ | |
value_type __t(_Ops::__iter_move(--__p)); | |
_RandomAccessIterator __p1 = __p; | |
_RandomAccessIterator __p2 = __p1 + __m1; | |
do | |
{ | |
*__p1 = _Ops::__iter_move(__p2); | |
__p1 = __p2; | |
const difference_type __d = _Ops::distance(__p2, __last); | |
if (__m1 < __d) | |
__p2 += __m1; | |
else | |
__p2 = __first + (__m1 - __d); | |
} while (__p2 != __p); | |
*__p1 = std::move(__t); | |
} | |
return __first + __m2; | |
} | |
template <class _AlgPolicy, class _ForwardIterator> | |
inline __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) | |
constexpr _ForwardIterator | |
__rotate_impl(_ForwardIterator __first, _ForwardIterator __middle, _ForwardIterator __last, | |
std::forward_iterator_tag) | |
{ | |
typedef typename iterator_traits<_ForwardIterator>::value_type value_type; | |
if (is_trivially_move_assignable<value_type>::value) | |
{ | |
if (_IterOps<_AlgPolicy>::next(__first) == __middle) | |
return std::__rotate_left<_AlgPolicy>(__first, __last); | |
} | |
return std::__rotate_forward<_AlgPolicy>(__first, __middle, __last); | |
} | |
template <class _AlgPolicy, class _BidirectionalIterator> | |
inline __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) | |
constexpr _BidirectionalIterator | |
__rotate_impl(_BidirectionalIterator __first, _BidirectionalIterator __middle, _BidirectionalIterator __last, | |
bidirectional_iterator_tag) | |
{ | |
typedef typename iterator_traits<_BidirectionalIterator>::value_type value_type; | |
if (is_trivially_move_assignable<value_type>::value) | |
{ | |
if (_IterOps<_AlgPolicy>::next(__first) == __middle) | |
return std::__rotate_left<_AlgPolicy>(__first, __last); | |
if (_IterOps<_AlgPolicy>::next(__middle) == __last) | |
return std::__rotate_right<_AlgPolicy>(__first, __last); | |
} | |
return std::__rotate_forward<_AlgPolicy>(__first, __middle, __last); | |
} | |
template <class _AlgPolicy, class _RandomAccessIterator> | |
inline __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) | |
constexpr _RandomAccessIterator | |
__rotate_impl(_RandomAccessIterator __first, _RandomAccessIterator __middle, _RandomAccessIterator __last, | |
random_access_iterator_tag) | |
{ | |
typedef typename iterator_traits<_RandomAccessIterator>::value_type value_type; | |
if (is_trivially_move_assignable<value_type>::value) | |
{ | |
if (_IterOps<_AlgPolicy>::next(__first) == __middle) | |
return std::__rotate_left<_AlgPolicy>(__first, __last); | |
if (_IterOps<_AlgPolicy>::next(__middle) == __last) | |
return std::__rotate_right<_AlgPolicy>(__first, __last); | |
return std::__rotate_gcd<_AlgPolicy>(__first, __middle, __last); | |
} | |
return std::__rotate_forward<_AlgPolicy>(__first, __middle, __last); | |
} | |
template <class _AlgPolicy, class _Iterator, class _Sentinel> | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) constexpr | |
pair<_Iterator, _Iterator> | |
__rotate(_Iterator __first, _Iterator __middle, _Sentinel __last) { | |
using _Ret = pair<_Iterator, _Iterator>; | |
_Iterator __last_iter = _IterOps<_AlgPolicy>::next(__middle, __last); | |
if (__first == __middle) | |
return _Ret(__last_iter, __last_iter); | |
if (__middle == __last) | |
return _Ret(std::move(__first), std::move(__last_iter)); | |
using _IterCategory = typename _IterOps<_AlgPolicy>::template __iterator_category<_Iterator>; | |
auto __result = std::__rotate_impl<_AlgPolicy>( | |
std::move(__first), std::move(__middle), __last_iter, _IterCategory()); | |
return _Ret(std::move(__result), std::move(__last_iter)); | |
} | |
template <class _ForwardIterator> | |
inline __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) | |
_ForwardIterator | |
rotate(_ForwardIterator __first, _ForwardIterator __middle, _ForwardIterator __last) | |
{ | |
return std::__rotate<_ClassicAlgPolicy>( | |
std::move(__first), std::move(__middle), std::move(__last)).first; | |
} | |
}} | |
# 19 "../../buildtools/third_party/libc++/trunk/include/__algorithm/inplace_merge.h" 2 3 | |
# 1 "../../buildtools/third_party/libc++/trunk/include/__memory/destruct_n.h" 1 3 | |
# 10 "../../buildtools/third_party/libc++/trunk/include/__memory/destruct_n.h" 3 | |
#define _LIBCPP___MEMORY_DESTRUCT_N_H | |
# 19 "../../buildtools/third_party/libc++/trunk/include/__memory/destruct_n.h" 3 | |
namespace std { inline namespace Cr { | |
struct __destruct_n | |
{ | |
private: | |
size_t __size_; | |
template <class _Tp> | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) void __process(_Tp* __p, false_type) noexcept | |
{for (size_t __i = 0; __i < __size_; ++__i, ++__p) __p->~_Tp();} | |
template <class _Tp> | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) void __process(_Tp*, true_type) noexcept | |
{} | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) void __incr(false_type) noexcept | |
{++__size_;} | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) void __incr(true_type) noexcept | |
{} | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) void __set(size_t __s, false_type) noexcept | |
{__size_ = __s;} | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) void __set(size_t, true_type) noexcept | |
{} | |
public: | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) explicit __destruct_n(size_t __s) noexcept | |
: __size_(__s) {} | |
template <class _Tp> | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) void __incr() noexcept | |
{__incr(integral_constant<bool, is_trivially_destructible<_Tp>::value>());} | |
template <class _Tp> | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) void __set(size_t __s, _Tp*) noexcept | |
{__set(__s, integral_constant<bool, is_trivially_destructible<_Tp>::value>());} | |
template <class _Tp> | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) void operator()(_Tp* __p) noexcept | |
{__process(__p, integral_constant<bool, is_trivially_destructible<_Tp>::value>());} | |
}; | |
}} | |
# 27 "../../buildtools/third_party/libc++/trunk/include/__algorithm/inplace_merge.h" 2 3 | |
# 1 "../../buildtools/third_party/libc++/trunk/include/__memory/temporary_buffer.h" 1 3 | |
# 11 "../../buildtools/third_party/libc++/trunk/include/__memory/temporary_buffer.h" 3 | |
#define _LIBCPP___MEMORY_TEMPORARY_BUFFER_H | |
# 1 "../../buildtools/third_party/libc++/trunk/include/new" 1 3 | |
# 11 "../../buildtools/third_party/libc++/trunk/include/new" 3 | |
#define _LIBCPP_NEW | |
# 94 "../../buildtools/third_party/libc++/trunk/include/new" 3 | |
# 1 "../../buildtools/third_party/libc++/trunk/include/exception" 1 3 | |
# 11 "../../buildtools/third_party/libc++/trunk/include/exception" 3 | |
#define _LIBCPP_EXCEPTION | |
# 96 "../../buildtools/third_party/libc++/trunk/include/exception" 3 | |
namespace std | |
{ | |
# 147 "../../buildtools/third_party/libc++/trunk/include/exception" 3 | |
class exception { | |
public: | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) exception() noexcept {} | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) exception(const exception&) noexcept = default; | |
virtual ~exception() noexcept; | |
virtual const char* what() const noexcept; | |
}; | |
class bad_exception : public exception { | |
public: | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) bad_exception() noexcept {} | |
~bad_exception() noexcept override; | |
const char* what() const noexcept override; | |
}; | |
# 173 "../../buildtools/third_party/libc++/trunk/include/exception" 3 | |
typedef void (*terminate_handler)(); | |
terminate_handler set_terminate(terminate_handler) noexcept; | |
terminate_handler get_terminate() noexcept; | |
[[noreturn]] void terminate() noexcept; | |
bool uncaught_exception() noexcept; | |
int uncaught_exceptions() noexcept; | |
class exception_ptr; | |
exception_ptr current_exception() noexcept; | |
[[noreturn]] void rethrow_exception(exception_ptr); | |
class exception_ptr | |
{ | |
void* __ptr_; | |
public: | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) exception_ptr() noexcept : __ptr_() {} | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) exception_ptr(nullptr_t) noexcept : __ptr_() {} | |
exception_ptr(const exception_ptr&) noexcept; | |
exception_ptr& operator=(const exception_ptr&) noexcept; | |
~exception_ptr() noexcept; | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) explicit operator bool() const noexcept | |
{return __ptr_ != nullptr;} | |
friend __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) | |
bool operator==(const exception_ptr& __x, const exception_ptr& __y) noexcept | |
{return __x.__ptr_ == __y.__ptr_;} | |
friend __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) | |
bool operator!=(const exception_ptr& __x, const exception_ptr& __y) noexcept | |
{return !(__x == __y);} | |
friend exception_ptr current_exception() noexcept; | |
friend void rethrow_exception(exception_ptr); | |
}; | |
template<class _Ep> | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) exception_ptr | |
make_exception_ptr(_Ep __e) noexcept | |
{ | |
# 228 "../../buildtools/third_party/libc++/trunk/include/exception" 3 | |
((void)__e); | |
std::abort(); | |
} | |
# 279 "../../buildtools/third_party/libc++/trunk/include/exception" 3 | |
class nested_exception | |
{ | |
exception_ptr __ptr_; | |
public: | |
nested_exception() noexcept; | |
virtual ~nested_exception() noexcept; | |
[[noreturn]] void rethrow_nested() const; | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) exception_ptr nested_ptr() const noexcept {return __ptr_;} | |
}; | |
template <class _Tp> | |
struct __nested | |
: public _Tp, | |
public nested_exception | |
{ | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) explicit __nested(const _Tp& __t) : _Tp(__t) {} | |
}; | |
# 328 "../../buildtools/third_party/libc++/trunk/include/exception" 3 | |
template <class _Tp> | |
[[noreturn]] __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) | |
void | |
throw_with_nested(_Tp&& __t) | |
{ | |
# 342 "../../buildtools/third_party/libc++/trunk/include/exception" 3 | |
((void)__t); | |
} | |
template <class _From, class _To> | |
struct __can_dynamic_cast : _BoolConstant< | |
is_polymorphic<_From>::value && | |
(!is_base_of<_To, _From>::value || | |
is_convertible<const _From*, const _To*>::value)> {}; | |
template <class _Ep> | |
inline __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) | |
void | |
rethrow_if_nested(const _Ep& __e, | |
__enable_if_t< __can_dynamic_cast<_Ep, nested_exception>::value>* = 0) | |
{ | |
const nested_exception* __nep = dynamic_cast<const nested_exception*>(std::addressof(__e)); | |
if (__nep) | |
__nep->rethrow_nested(); | |
} | |
template <class _Ep> | |
inline __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) | |
void | |
rethrow_if_nested(const _Ep&, | |
__enable_if_t<!__can_dynamic_cast<_Ep, nested_exception>::value>* = 0) | |
{ | |
} | |
} | |
# 95 "../../buildtools/third_party/libc++/trunk/include/new" 2 3 | |
# 104 "../../buildtools/third_party/libc++/trunk/include/new" 3 | |
#define _LIBCPP_HAS_NO_LANGUAGE_SIZED_DEALLOCATION | |
# 117 "../../buildtools/third_party/libc++/trunk/include/new" 3 | |
#define _LIBCPP_HAS_NO_SIZED_DEALLOCATION | |
namespace std | |
{ | |
struct nothrow_t { explicit nothrow_t() = default; }; | |
extern const nothrow_t nothrow; | |
class bad_alloc | |
: public exception | |
{ | |
public: | |
bad_alloc() noexcept; | |
~bad_alloc() noexcept override; | |
const char* what() const noexcept override; | |
}; | |
class bad_array_new_length | |
: public bad_alloc | |
{ | |
public: | |
bad_array_new_length() noexcept; | |
~bad_array_new_length() noexcept override; | |
const char* what() const noexcept override; | |
}; | |
typedef void (*new_handler)(); | |
new_handler set_new_handler(new_handler) noexcept; | |
new_handler get_new_handler() noexcept; | |
# 169 "../../buildtools/third_party/libc++/trunk/include/new" 3 | |
[[noreturn]] void __throw_bad_alloc(); | |
[[noreturn]] inline __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) | |
void __throw_bad_array_new_length() | |
{ | |
std::abort(); | |
} | |
enum class align_val_t : size_t { }; | |
# 199 "../../buildtools/third_party/libc++/trunk/include/new" 3 | |
} | |
#define _THROW_BAD_ALLOC | |
[[nodiscard]] void* operator new(std::size_t __sz) ; | |
[[nodiscard]] void* operator new(std::size_t __sz, const std::nothrow_t&) noexcept __attribute__((__malloc__)); | |
void operator delete(void* __p) noexcept; | |
void operator delete(void* __p, const std::nothrow_t&) noexcept; | |
void operator delete(void* __p, std::size_t __sz) noexcept; | |
[[nodiscard]] void* operator new[](std::size_t __sz) ; | |
[[nodiscard]] void* operator new[](std::size_t __sz, const std::nothrow_t&) noexcept __attribute__((__malloc__)); | |
void operator delete[](void* __p) noexcept; | |
void operator delete[](void* __p, const std::nothrow_t&) noexcept; | |
void operator delete[](void* __p, std::size_t __sz) noexcept; | |
[[nodiscard]] void* operator new(std::size_t __sz, std::align_val_t) ; | |
[[nodiscard]] void* operator new(std::size_t __sz, std::align_val_t, const std::nothrow_t&) noexcept __attribute__((__malloc__)); | |
void operator delete(void* __p, std::align_val_t) noexcept; | |
void operator delete(void* __p, std::align_val_t, const std::nothrow_t&) noexcept; | |
void operator delete(void* __p, std::size_t __sz, std::align_val_t) noexcept; | |
[[nodiscard]] void* operator new[](std::size_t __sz, std::align_val_t) ; | |
[[nodiscard]] void* operator new[](std::size_t __sz, std::align_val_t, const std::nothrow_t&) noexcept __attribute__((__malloc__)); | |
void operator delete[](void* __p, std::align_val_t) noexcept; | |
void operator delete[](void* __p, std::align_val_t, const std::nothrow_t&) noexcept; | |
void operator delete[](void* __p, std::size_t __sz, std::align_val_t) noexcept; | |
[[nodiscard]] inline __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) void* operator new (std::size_t, void* __p) noexcept {return __p;} | |
[[nodiscard]] inline __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) void* operator new[](std::size_t, void* __p) noexcept {return __p;} | |
inline __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) void operator delete (void*, void*) noexcept {} | |
inline __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) void operator delete[](void*, void*) noexcept {} | |
namespace std { inline namespace Cr { | |
constexpr inline __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) bool __is_overaligned_for_new(size_t __align) noexcept { | |
return __align > 16UL; | |
} | |
template <class ..._Args> | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) | |
void* __libcpp_operator_new(_Args ...__args) { | |
return __builtin_operator_new(__args...); | |
} | |
template <class ..._Args> | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) | |
void __libcpp_operator_delete(_Args ...__args) { | |
__builtin_operator_delete(__args...); | |
} | |
inline __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) | |
void *__libcpp_allocate(size_t __size, size_t __align) { | |
if (__is_overaligned_for_new(__align)) { | |
const align_val_t __align_val = static_cast<align_val_t>(__align); | |
return __libcpp_operator_new(__size, __align_val); | |
} | |
(void)__align; | |
return __libcpp_operator_new(__size); | |
} | |
template <class ..._Args> | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) | |
void __do_deallocate_handle_size(void *__ptr, size_t __size, _Args ...__args) { | |
(void)__size; | |
return __libcpp_operator_delete(__ptr, __args...); | |
} | |
inline __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) | |
void __libcpp_deallocate(void* __ptr, size_t __size, size_t __align) { | |
if (__is_overaligned_for_new(__align)) { | |
const align_val_t __align_val = static_cast<align_val_t>(__align); | |
return __do_deallocate_handle_size(__ptr, __size, __align_val); | |
} else { | |
return __do_deallocate_handle_size(__ptr, __size); | |
} | |
} | |
inline __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) void __libcpp_deallocate_unsized(void* __ptr, size_t __align) { | |
if (__is_overaligned_for_new(__align)) { | |
const align_val_t __align_val = static_cast<align_val_t>(__align); | |
return __libcpp_operator_delete(__ptr, __align_val); | |
} else { | |
return __libcpp_operator_delete(__ptr); | |
} | |
} | |
# 340 "../../buildtools/third_party/libc++/trunk/include/new" 3 | |
inline __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) | |
void* __libcpp_aligned_alloc(std::size_t __alignment, std::size_t __size) { | |
void* __result = nullptr; | |
(void)::posix_memalign(&__result, __alignment, __size); | |
return __result; | |
} | |
inline __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) | |
void __libcpp_aligned_free(void* __ptr) { | |
::free(__ptr); | |
} | |
template <class _Tp> | |
[[nodiscard]] inline __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) | |
constexpr _Tp* __launder(_Tp* __p) noexcept | |
{ | |
static_assert (!(is_function<_Tp>::value), "can't launder functions" ); | |
static_assert (!(is_same<void, __remove_cv_t<_Tp> >::value), "can't launder cv-void" ); | |
return __builtin_launder(__p); | |
} | |
template <class _Tp> | |
[[nodiscard]] inline __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) | |
constexpr _Tp* launder(_Tp* __p) noexcept | |
{ | |
return std::__launder(__p); | |
} | |
# 392 "../../buildtools/third_party/libc++/trunk/include/new" 3 | |
}} | |
# 18 "../../buildtools/third_party/libc++/trunk/include/__memory/temporary_buffer.h" 2 3 | |
# 21 "../../buildtools/third_party/libc++/trunk/include/__memory/temporary_buffer.h" 3 | |
namespace std { inline namespace Cr { | |
template <class _Tp> | |
[[nodiscard]] __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) __attribute__((__no_sanitize__("cfi"))) __attribute__((deprecated)) | |
pair<_Tp*, ptrdiff_t> | |
get_temporary_buffer(ptrdiff_t __n) noexcept | |
{ | |
pair<_Tp*, ptrdiff_t> __r(0, 0); | |
const ptrdiff_t __m = (~ptrdiff_t(0) ^ | |
ptrdiff_t(ptrdiff_t(1) << (sizeof(ptrdiff_t) * 8 - 1))) | |
/ sizeof(_Tp); | |
if (__n > __m) | |
__n = __m; | |
while (__n > 0) | |
{ | |
if (__is_overaligned_for_new(alignof(_Tp))) | |
{ | |
align_val_t __al = | |
align_val_t(alignment_of<_Tp>::value); | |
__r.first = static_cast<_Tp*>(::operator new( | |
__n * sizeof(_Tp), __al, nothrow)); | |
} else { | |
__r.first = static_cast<_Tp*>(::operator new( | |
__n * sizeof(_Tp), nothrow)); | |
} | |
# 60 "../../buildtools/third_party/libc++/trunk/include/__memory/temporary_buffer.h" 3 | |
if (__r.first) | |
{ | |
__r.second = __n; | |
break; | |
} | |
__n /= 2; | |
} | |
return __r; | |
} | |
template <class _Tp> | |
inline __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) __attribute__((deprecated)) | |
void return_temporary_buffer(_Tp* __p) noexcept | |
{ | |
std::__libcpp_deallocate_unsized((void*)__p, alignof(_Tp)); | |
} | |
struct __return_temporary_buffer | |
{ | |
#pragma GCC diagnostic push | |
# 79 "../../buildtools/third_party/libc++/trunk/include/__memory/temporary_buffer.h" 3 | |
#pragma GCC diagnostic ignored "-Wdeprecated" | |
# 79 "../../buildtools/third_party/libc++/trunk/include/__memory/temporary_buffer.h" 3 | |
#pragma GCC diagnostic ignored "-Wdeprecated-declarations" | |
template <class _Tp> | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) void operator()(_Tp* __p) const {std::return_temporary_buffer(__p);} | |
#pragma GCC diagnostic pop | |
}; | |
}} | |
# 28 "../../buildtools/third_party/libc++/trunk/include/__algorithm/inplace_merge.h" 2 3 | |
# 1 "../../buildtools/third_party/libc++/trunk/include/__memory/unique_ptr.h" 1 3 | |
# 11 "../../buildtools/third_party/libc++/trunk/include/__memory/unique_ptr.h" 3 | |
#define _LIBCPP___MEMORY_UNIQUE_PTR_H | |
# 1 "../../buildtools/third_party/libc++/trunk/include/__compare/compare_three_way.h" 1 3 | |
# 11 "../../buildtools/third_party/libc++/trunk/include/__compare/compare_three_way.h" 3 | |
#define _LIBCPP___COMPARE_COMPARE_THREE_WAY_H | |
# 19 "../../buildtools/third_party/libc++/trunk/include/__compare/compare_three_way.h" 3 | |
namespace std { inline namespace Cr { | |
# 39 "../../buildtools/third_party/libc++/trunk/include/__compare/compare_three_way.h" 3 | |
}} | |
# 14 "../../buildtools/third_party/libc++/trunk/include/__memory/unique_ptr.h" 2 3 | |
# 1 "../../buildtools/third_party/libc++/trunk/include/__functional/hash.h" 1 3 | |
# 10 "../../buildtools/third_party/libc++/trunk/include/__functional/hash.h" 3 | |
#define _LIBCPP___FUNCTIONAL_HASH_H | |
# 1 "../../buildtools/third_party/libc++/trunk/include/__functional/unary_function.h" 1 3 | |
# 10 "../../buildtools/third_party/libc++/trunk/include/__functional/unary_function.h" 3 | |
#define _LIBCPP___FUNCTIONAL_UNARY_FUNCTION_H | |
# 16 "../../buildtools/third_party/libc++/trunk/include/__functional/unary_function.h" 3 | |
namespace std { inline namespace Cr { | |
# 31 "../../buildtools/third_party/libc++/trunk/include/__functional/unary_function.h" 3 | |
template <class _Arg, class _Result> struct __unary_function_keep_layout_base { | |
using argument_type __attribute__((deprecated)) = _Arg; | |
using result_type __attribute__((deprecated)) = _Result; | |
}; | |
# 45 "../../buildtools/third_party/libc++/trunk/include/__functional/unary_function.h" 3 | |
template <class _Arg, class _Result> | |
using __unary_function = __unary_function_keep_layout_base<_Arg, _Result>; | |
}} | |
# 14 "../../buildtools/third_party/libc++/trunk/include/__functional/hash.h" 2 3 | |
# 28 "../../buildtools/third_party/libc++/trunk/include/__functional/hash.h" 3 | |
namespace std { inline namespace Cr { | |
template <class _Size> | |
inline __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) | |
_Size | |
__loadword(const void* __p) | |
{ | |
_Size __r; | |
std::memcpy(&__r, __p, sizeof(__r)); | |
return __r; | |
} | |
template <class _Size, size_t = sizeof(_Size)*8> | |
struct __murmur2_or_cityhash; | |
template <class _Size> | |
struct __murmur2_or_cityhash<_Size, 32> | |
{ | |
inline _Size operator()(const void* __key, _Size __len) | |
__attribute__((__no_sanitize__("unsigned-integer-overflow"))); | |
}; | |
template <class _Size> | |
_Size | |
__murmur2_or_cityhash<_Size, 32>::operator()(const void* __key, _Size __len) | |
{ | |
const _Size __m = 0x5bd1e995; | |
const _Size __r = 24; | |
_Size __h = __len; | |
const unsigned char* __data = static_cast<const unsigned char*>(__key); | |
for (; __len >= 4; __data += 4, __len -= 4) | |
{ | |
_Size __k = __loadword<_Size>(__data); | |
__k *= __m; | |
__k ^= __k >> __r; | |
__k *= __m; | |
__h *= __m; | |
__h ^= __k; | |
} | |
switch (__len) | |
{ | |
case 3: | |
__h ^= static_cast<_Size>(__data[2] << 16); | |
[[fallthrough]]; | |
case 2: | |
__h ^= static_cast<_Size>(__data[1] << 8); | |
[[fallthrough]]; | |
case 1: | |
__h ^= __data[0]; | |
__h *= __m; | |
} | |
__h ^= __h >> 13; | |
__h *= __m; | |
__h ^= __h >> 15; | |
return __h; | |
} | |
template <class _Size> | |
struct __murmur2_or_cityhash<_Size, 64> | |
{ | |
inline _Size operator()(const void* __key, _Size __len) __attribute__((__no_sanitize__("unsigned-integer-overflow"))); | |
private: | |
static const _Size __k0 = 0xc3a5c85c97cb3127ULL; | |
static const _Size __k1 = 0xb492b66fbe98f273ULL; | |
static const _Size __k2 = 0x9ae16a3b2f90404fULL; | |
static const _Size __k3 = 0xc949d7c7509e6557ULL; | |
static _Size __rotate(_Size __val, int __shift) { | |
return __shift == 0 ? __val : ((__val >> __shift) | (__val << (64 - __shift))); | |
} | |
static _Size __rotate_by_at_least_1(_Size __val, int __shift) { | |
return (__val >> __shift) | (__val << (64 - __shift)); | |
} | |
static _Size __shift_mix(_Size __val) { | |
return __val ^ (__val >> 47); | |
} | |
static _Size __hash_len_16(_Size __u, _Size __v) | |
__attribute__((__no_sanitize__("unsigned-integer-overflow"))) | |
{ | |
const _Size __mul = 0x9ddfea08eb382d69ULL; | |
_Size __a = (__u ^ __v) * __mul; | |
__a ^= (__a >> 47); | |
_Size __b = (__v ^ __a) * __mul; | |
__b ^= (__b >> 47); | |
__b *= __mul; | |
return __b; | |
} | |
static _Size __hash_len_0_to_16(const char* __s, _Size __len) | |
__attribute__((__no_sanitize__("unsigned-integer-overflow"))) | |
{ | |
if (__len > 8) { | |
const _Size __a = __loadword<_Size>(__s); | |
const _Size __b = __loadword<_Size>(__s + __len - 8); | |
return __hash_len_16(__a, __rotate_by_at_least_1(__b + __len, __len)) ^ __b; | |
} | |
if (__len >= 4) { | |
const uint32_t __a = __loadword<uint32_t>(__s); | |
const uint32_t __b = __loadword<uint32_t>(__s + __len - 4); | |
return __hash_len_16(__len + (__a << 3), __b); | |
} | |
if (__len > 0) { | |
const unsigned char __a = static_cast<unsigned char>(__s[0]); | |
const unsigned char __b = static_cast<unsigned char>(__s[__len >> 1]); | |
const unsigned char __c = static_cast<unsigned char>(__s[__len - 1]); | |
const uint32_t __y = static_cast<uint32_t>(__a) + | |
(static_cast<uint32_t>(__b) << 8); | |
const uint32_t __z = __len + (static_cast<uint32_t>(__c) << 2); | |
return __shift_mix(__y * __k2 ^ __z * __k3) * __k2; | |
} | |
return __k2; | |
} | |
static _Size __hash_len_17_to_32(const char *__s, _Size __len) | |
__attribute__((__no_sanitize__("unsigned-integer-overflow"))) | |
{ | |
const _Size __a = __loadword<_Size>(__s) * __k1; | |
const _Size __b = __loadword<_Size>(__s + 8); | |
const _Size __c = __loadword<_Size>(__s + __len - 8) * __k2; | |
const _Size __d = __loadword<_Size>(__s + __len - 16) * __k0; | |
return __hash_len_16(__rotate(__a - __b, 43) + __rotate(__c, 30) + __d, | |
__a + __rotate(__b ^ __k3, 20) - __c + __len); | |
} | |
static pair<_Size, _Size> __weak_hash_len_32_with_seeds( | |
_Size __w, _Size __x, _Size __y, _Size __z, _Size __a, _Size __b) | |
__attribute__((__no_sanitize__("unsigned-integer-overflow"))) | |
{ | |
__a += __w; | |
__b = __rotate(__b + __a + __z, 21); | |
const _Size __c = __a; | |
__a += __x; | |
__a += __y; | |
__b += __rotate(__a, 44); | |
return pair<_Size, _Size>(__a + __z, __b + __c); | |
} | |
static pair<_Size, _Size> __weak_hash_len_32_with_seeds( | |
const char* __s, _Size __a, _Size __b) | |
__attribute__((__no_sanitize__("unsigned-integer-overflow"))) | |
{ | |
return __weak_hash_len_32_with_seeds(__loadword<_Size>(__s), | |
__loadword<_Size>(__s + 8), | |
__loadword<_Size>(__s + 16), | |
__loadword<_Size>(__s + 24), | |
__a, | |
__b); | |
} | |
static _Size __hash_len_33_to_64(const char *__s, size_t __len) | |
__attribute__((__no_sanitize__("unsigned-integer-overflow"))) | |
{ | |
_Size __z = __loadword<_Size>(__s + 24); | |
_Size __a = __loadword<_Size>(__s) + | |
(__len + __loadword<_Size>(__s + __len - 16)) * __k0; | |
_Size __b = __rotate(__a + __z, 52); | |
_Size __c = __rotate(__a, 37); | |
__a += __loadword<_Size>(__s + 8); | |
__c += __rotate(__a, 7); | |
__a += __loadword<_Size>(__s + 16); | |
_Size __vf = __a + __z; | |
_Size __vs = __b + __rotate(__a, 31) + __c; | |
__a = __loadword<_Size>(__s + 16) + __loadword<_Size>(__s + __len - 32); | |
__z += __loadword<_Size>(__s + __len - 8); | |
__b = __rotate(__a + __z, 52); | |
__c = __rotate(__a, 37); | |
__a += __loadword<_Size>(__s + __len - 24); | |
__c += __rotate(__a, 7); | |
__a += __loadword<_Size>(__s + __len - 16); | |
_Size __wf = __a + __z; | |
_Size __ws = __b + __rotate(__a, 31) + __c; | |
_Size __r = __shift_mix((__vf + __ws) * __k2 + (__wf + __vs) * __k0); | |
return __shift_mix(__r * __k0 + __vs) * __k2; | |
} | |
}; | |
template <class _Size> | |
_Size | |
__murmur2_or_cityhash<_Size, 64>::operator()(const void* __key, _Size __len) | |
{ | |
const char* __s = static_cast<const char*>(__key); | |
if (__len <= 32) { | |
if (__len <= 16) { | |
return __hash_len_0_to_16(__s, __len); | |
} else { | |
return __hash_len_17_to_32(__s, __len); | |
} | |
} else if (__len <= 64) { | |
return __hash_len_33_to_64(__s, __len); | |
} | |
_Size __x = __loadword<_Size>(__s + __len - 40); | |
_Size __y = __loadword<_Size>(__s + __len - 16) + | |
__loadword<_Size>(__s + __len - 56); | |
_Size __z = __hash_len_16(__loadword<_Size>(__s + __len - 48) + __len, | |
__loadword<_Size>(__s + __len - 24)); | |
pair<_Size, _Size> __v = __weak_hash_len_32_with_seeds(__s + __len - 64, __len, __z); | |
pair<_Size, _Size> __w = __weak_hash_len_32_with_seeds(__s + __len - 32, __y + __k1, __x); | |
__x = __x * __k1 + __loadword<_Size>(__s); | |
__len = (__len - 1) & ~static_cast<_Size>(63); | |
do { | |
__x = __rotate(__x + __y + __v.first + __loadword<_Size>(__s + 8), 37) * __k1; | |
__y = __rotate(__y + __v.second + __loadword<_Size>(__s + 48), 42) * __k1; | |
__x ^= __w.second; | |
__y += __v.first + __loadword<_Size>(__s + 40); | |
__z = __rotate(__z + __w.first, 33) * __k1; | |
__v = __weak_hash_len_32_with_seeds(__s, __v.second * __k1, __x + __w.first); | |
__w = __weak_hash_len_32_with_seeds(__s + 32, __z + __w.second, | |
__y + __loadword<_Size>(__s + 16)); | |
std::swap(__z, __x); | |
__s += 64; | |
__len -= 64; | |
} while (__len != 0); | |
return __hash_len_16( | |
__hash_len_16(__v.first, __w.first) + __shift_mix(__y) * __k1 + __z, | |
__hash_len_16(__v.second, __w.second) + __x); | |
} | |
template <class _Tp, size_t = sizeof(_Tp) / sizeof(size_t)> | |
struct __scalar_hash; | |
template <class _Tp> | |
struct __scalar_hash<_Tp, 0> | |
: public __unary_function<_Tp, size_t> | |
{ | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) | |
size_t operator()(_Tp __v) const noexcept | |
{ | |
union | |
{ | |
_Tp __t; | |
size_t __a; | |
} __u; | |
__u.__a = 0; | |
__u.__t = __v; | |
return __u.__a; | |
} | |
}; | |
template <class _Tp> | |
struct __scalar_hash<_Tp, 1> | |
: public __unary_function<_Tp, size_t> | |
{ | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) | |
size_t operator()(_Tp __v) const noexcept | |
{ | |
union | |
{ | |
_Tp __t; | |
size_t __a; | |
} __u; | |
__u.__t = __v; | |
return __u.__a; | |
} | |
}; | |
template <class _Tp> | |
struct __scalar_hash<_Tp, 2> | |
: public __unary_function<_Tp, size_t> | |
{ | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) | |
size_t operator()(_Tp __v) const noexcept | |
{ | |
union | |
{ | |
_Tp __t; | |
struct | |
{ | |
size_t __a; | |
size_t __b; | |
} __s; | |
} __u; | |
__u.__t = __v; | |
return __murmur2_or_cityhash<size_t>()(&__u, sizeof(__u)); | |
} | |
}; | |
template <class _Tp> | |
struct __scalar_hash<_Tp, 3> | |
: public __unary_function<_Tp, size_t> | |
{ | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) | |
size_t operator()(_Tp __v) const noexcept | |
{ | |
union | |
{ | |
_Tp __t; | |
struct | |
{ | |
size_t __a; | |
size_t __b; | |
size_t __c; | |
} __s; | |
} __u; | |
__u.__t = __v; | |
return __murmur2_or_cityhash<size_t>()(&__u, sizeof(__u)); | |
} | |
}; | |
template <class _Tp> | |
struct __scalar_hash<_Tp, 4> | |
: public __unary_function<_Tp, size_t> | |
{ | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) | |
size_t operator()(_Tp __v) const noexcept | |
{ | |
union | |
{ | |
_Tp __t; | |
struct | |
{ | |
size_t __a; | |
size_t __b; | |
size_t __c; | |
size_t __d; | |
} __s; | |
} __u; | |
__u.__t = __v; | |
return __murmur2_or_cityhash<size_t>()(&__u, sizeof(__u)); | |
} | |
}; | |
struct _PairT { | |
size_t first; | |
size_t second; | |
}; | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) | |
inline size_t __hash_combine(size_t __lhs, size_t __rhs) noexcept { | |
typedef __scalar_hash<_PairT> _HashT; | |
const _PairT __p = {__lhs, __rhs}; | |
return _HashT()(__p); | |
} | |
template<class _Tp> | |
struct hash<_Tp*> | |
: public __unary_function<_Tp*, size_t> | |
{ | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) | |
size_t operator()(_Tp* __v) const noexcept | |
{ | |
union | |
{ | |
_Tp* __t; | |
size_t __a; | |
} __u; | |
__u.__t = __v; | |
return __murmur2_or_cityhash<size_t>()(&__u, sizeof(__u)); | |
} | |
}; | |
template <> | |
struct hash<bool> | |
: public __unary_function<bool, size_t> | |
{ | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) | |
size_t operator()(bool __v) const noexcept {return static_cast<size_t>(__v);} | |
}; | |
template <> | |
struct hash<char> | |
: public __unary_function<char, size_t> | |
{ | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) | |
size_t operator()(char __v) const noexcept {return static_cast<size_t>(__v);} | |
}; | |
template <> | |
struct hash<signed char> | |
: public __unary_function<signed char, size_t> | |
{ | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) | |
size_t operator()(signed char __v) const noexcept {return static_cast<size_t>(__v);} | |
}; | |
template <> | |
struct hash<unsigned char> | |
: public __unary_function<unsigned char, size_t> | |
{ | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) | |
size_t operator()(unsigned char __v) const noexcept {return static_cast<size_t>(__v);} | |
}; | |
# 441 "../../buildtools/third_party/libc++/trunk/include/__functional/hash.h" 3 | |
template <> | |
struct hash<char16_t> | |
: public __unary_function<char16_t, size_t> | |
{ | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) | |
size_t operator()(char16_t __v) const noexcept {return static_cast<size_t>(__v);} | |
}; | |
template <> | |
struct hash<char32_t> | |
: public __unary_function<char32_t, size_t> | |
{ | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) | |
size_t operator()(char32_t __v) const noexcept {return static_cast<size_t>(__v);} | |
}; | |
template <> | |
struct hash<wchar_t> | |
: public __unary_function<wchar_t, size_t> | |
{ | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) | |
size_t operator()(wchar_t __v) const noexcept {return static_cast<size_t>(__v);} | |
}; | |
template <> | |
struct hash<short> | |
: public __unary_function<short, size_t> | |
{ | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) | |
size_t operator()(short __v) const noexcept {return static_cast<size_t>(__v);} | |
}; | |
template <> | |
struct hash<unsigned short> | |
: public __unary_function<unsigned short, size_t> | |
{ | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) | |
size_t operator()(unsigned short __v) const noexcept {return static_cast<size_t>(__v);} | |
}; | |
template <> | |
struct hash<int> | |
: public __unary_function<int, size_t> | |
{ | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) | |
size_t operator()(int __v) const noexcept {return static_cast<size_t>(__v);} | |
}; | |
template <> | |
struct hash<unsigned int> | |
: public __unary_function<unsigned int, size_t> | |
{ | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) | |
size_t operator()(unsigned int __v) const noexcept {return static_cast<size_t>(__v);} | |
}; | |
template <> | |
struct hash<long> | |
: public __unary_function<long, size_t> | |
{ | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) | |
size_t operator()(long __v) const noexcept {return static_cast<size_t>(__v);} | |
}; | |
template <> | |
struct hash<unsigned long> | |
: public __unary_function<unsigned long, size_t> | |
{ | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) | |
size_t operator()(unsigned long __v) const noexcept {return static_cast<size_t>(__v);} | |
}; | |
template <> | |
struct hash<long long> | |
: public __scalar_hash<long long> | |
{ | |
}; | |
template <> | |
struct hash<unsigned long long> | |
: public __scalar_hash<unsigned long long> | |
{ | |
}; | |
template <> | |
struct hash<__int128_t> | |
: public __scalar_hash<__int128_t> | |
{ | |
}; | |
template <> | |
struct hash<__uint128_t> | |
: public __scalar_hash<__uint128_t> | |
{ | |
}; | |
template <> | |
struct hash<float> | |
: public __scalar_hash<float> | |
{ | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) | |
size_t operator()(float __v) const noexcept | |
{ | |
if (__v == 0.0f) | |
return 0; | |
return __scalar_hash<float>::operator()(__v); | |
} | |
}; | |
template <> | |
struct hash<double> | |
: public __scalar_hash<double> | |
{ | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) | |
size_t operator()(double __v) const noexcept | |
{ | |
if (__v == 0.0) | |
return 0; | |
return __scalar_hash<double>::operator()(__v); | |
} | |
}; | |
template <> | |
struct hash<long double> | |
: public __scalar_hash<long double> | |
{ | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) | |
size_t operator()(long double __v) const noexcept | |
{ | |
if (__v == 0.0L) | |
return 0; | |
# 602 "../../buildtools/third_party/libc++/trunk/include/__functional/hash.h" 3 | |
union | |
{ | |
long double __t; | |
struct | |
{ | |
size_t __a; | |
size_t __b; | |
} __s; | |
} __u; | |
__u.__s.__a = 0; | |
__u.__s.__b = 0; | |
__u.__t = __v; | |
return __u.__s.__a ^ __u.__s.__b; | |
} | |
}; | |
template <class _Tp, bool = is_enum<_Tp>::value> | |
struct __enum_hash | |
: public __unary_function<_Tp, size_t> | |
{ | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) | |
size_t operator()(_Tp __v) const noexcept | |
{ | |
typedef typename underlying_type<_Tp>::type type; | |
return hash<type>()(static_cast<type>(__v)); | |
} | |
}; | |
template <class _Tp> | |
struct __enum_hash<_Tp, false> { | |
__enum_hash() = delete; | |
__enum_hash(__enum_hash const&) = delete; | |
__enum_hash& operator=(__enum_hash const&) = delete; | |
}; | |
template <class _Tp> | |
struct hash : public __enum_hash<_Tp> | |
{ | |
}; | |
template <> | |
struct hash<nullptr_t> | |
: public __unary_function<nullptr_t, size_t> | |
{ | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) | |
size_t operator()(nullptr_t) const noexcept { | |
return 662607004ull; | |
} | |
}; | |
template <class _Key, class _Hash> | |
using __check_hash_requirements __attribute__((__nodebug__)) = integral_constant<bool, | |
is_copy_constructible<_Hash>::value && | |
is_move_constructible<_Hash>::value && | |
__invokable_r<size_t, _Hash, _Key const&>::value | |
>; | |
template <class _Key, class _Hash = hash<_Key> > | |
using __has_enabled_hash __attribute__((__nodebug__)) = integral_constant<bool, | |
__check_hash_requirements<_Key, _Hash>::value && | |
is_default_constructible<_Hash>::value | |
>; | |
template <class _Type, class> | |
using __enable_hash_helper_imp __attribute__((__nodebug__)) = _Type; | |
template <class _Type, class ..._Keys> | |
using __enable_hash_helper __attribute__((__nodebug__)) = __enable_hash_helper_imp<_Type, | |
typename enable_if<__all<__has_enabled_hash<_Keys>::value...>::value>::type | |
>; | |
}} | |
# 18 "../../buildtools/third_party/libc++/trunk/include/__memory/unique_ptr.h" 2 3 | |
# 1 "../../buildtools/third_party/libc++/trunk/include/__functional/operations.h" 1 3 | |
# 11 "../../buildtools/third_party/libc++/trunk/include/__functional/operations.h" 3 | |
#define _LIBCPP___FUNCTIONAL_OPERATIONS_H | |
# 1 "../../buildtools/third_party/libc++/trunk/include/__functional/binary_function.h" 1 3 | |
# 11 "../../buildtools/third_party/libc++/trunk/include/__functional/binary_function.h" 3 | |
#define _LIBCPP___FUNCTIONAL_BINARY_FUNCTION_H | |
# 17 "../../buildtools/third_party/libc++/trunk/include/__functional/binary_function.h" 3 | |
namespace std { inline namespace Cr { | |
# 33 "../../buildtools/third_party/libc++/trunk/include/__functional/binary_function.h" 3 | |
template <class _Arg1, class _Arg2, class _Result> struct __binary_function_keep_layout_base { | |
using first_argument_type __attribute__((deprecated)) = _Arg1; | |
using second_argument_type __attribute__((deprecated)) = _Arg2; | |
using result_type __attribute__((deprecated)) = _Result; | |
}; | |
# 48 "../../buildtools/third_party/libc++/trunk/include/__functional/binary_function.h" 3 | |
template <class _Arg1, class _Arg2, class _Result> | |
using __binary_function = __binary_function_keep_layout_base<_Arg1, _Arg2, _Result>; | |
}} | |
# 15 "../../buildtools/third_party/libc++/trunk/include/__functional/operations.h" 2 3 | |
# 20 "../../buildtools/third_party/libc++/trunk/include/__functional/operations.h" 3 | |
namespace std { inline namespace Cr { | |
template <class _Tp = void> | |
struct plus | |
: __binary_function<_Tp, _Tp, _Tp> | |
{ | |
typedef _Tp __result_type; | |
constexpr __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) | |
_Tp operator()(const _Tp& __x, const _Tp& __y) const | |
{return __x + __y;} | |
}; | |
template <> | |
struct plus<void> | |
{ | |
template <class _T1, class _T2> | |
constexpr __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) | |
auto operator()(_T1&& __t, _T2&& __u) const | |
noexcept(noexcept(std::forward<_T1>(__t) + std::forward<_T2>(__u))) | |
-> decltype( std::forward<_T1>(__t) + std::forward<_T2>(__u)) | |
{ return std::forward<_T1>(__t) + std::forward<_T2>(__u); } | |
typedef void is_transparent; | |
}; | |
template <class _Tp = void> | |
struct minus | |
: __binary_function<_Tp, _Tp, _Tp> | |
{ | |
typedef _Tp __result_type; | |
constexpr __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) | |
_Tp operator()(const _Tp& __x, const _Tp& __y) const | |
{return __x - __y;} | |
}; | |
template <> | |
struct minus<void> | |
{ | |
template <class _T1, class _T2> | |
constexpr __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) | |
auto operator()(_T1&& __t, _T2&& __u) const | |
noexcept(noexcept(std::forward<_T1>(__t) - std::forward<_T2>(__u))) | |
-> decltype( std::forward<_T1>(__t) - std::forward<_T2>(__u)) | |
{ return std::forward<_T1>(__t) - std::forward<_T2>(__u); } | |
typedef void is_transparent; | |
}; | |
template <class _Tp = void> | |
struct multiplies | |
: __binary_function<_Tp, _Tp, _Tp> | |
{ | |
typedef _Tp __result_type; | |
constexpr __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) | |
_Tp operator()(const _Tp& __x, const _Tp& __y) const | |
{return __x * __y;} | |
}; | |
template <> | |
struct multiplies<void> | |
{ | |
template <class _T1, class _T2> | |
constexpr __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) | |
auto operator()(_T1&& __t, _T2&& __u) const | |
noexcept(noexcept(std::forward<_T1>(__t) * std::forward<_T2>(__u))) | |
-> decltype( std::forward<_T1>(__t) * std::forward<_T2>(__u)) | |
{ return std::forward<_T1>(__t) * std::forward<_T2>(__u); } | |
typedef void is_transparent; | |
}; | |
template <class _Tp = void> | |
struct divides | |
: __binary_function<_Tp, _Tp, _Tp> | |
{ | |
typedef _Tp __result_type; | |
constexpr __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) | |
_Tp operator()(const _Tp& __x, const _Tp& __y) const | |
{return __x / __y;} | |
}; | |
template <> | |
struct divides<void> | |
{ | |
template <class _T1, class _T2> | |
constexpr __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) | |
auto operator()(_T1&& __t, _T2&& __u) const | |
noexcept(noexcept(std::forward<_T1>(__t) / std::forward<_T2>(__u))) | |
-> decltype( std::forward<_T1>(__t) / std::forward<_T2>(__u)) | |
{ return std::forward<_T1>(__t) / std::forward<_T2>(__u); } | |
typedef void is_transparent; | |
}; | |
template <class _Tp = void> | |
struct modulus | |
: __binary_function<_Tp, _Tp, _Tp> | |
{ | |
typedef _Tp __result_type; | |
constexpr __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) | |
_Tp operator()(const _Tp& __x, const _Tp& __y) const | |
{return __x % __y;} | |
}; | |
template <> | |
struct modulus<void> | |
{ | |
template <class _T1, class _T2> | |
constexpr __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) | |
auto operator()(_T1&& __t, _T2&& __u) const | |
noexcept(noexcept(std::forward<_T1>(__t) % std::forward<_T2>(__u))) | |
-> decltype( std::forward<_T1>(__t) % std::forward<_T2>(__u)) | |
{ return std::forward<_T1>(__t) % std::forward<_T2>(__u); } | |
typedef void is_transparent; | |
}; | |
template <class _Tp = void> | |
struct negate | |
: __unary_function<_Tp, _Tp> | |
{ | |
typedef _Tp __result_type; | |
constexpr __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) | |
_Tp operator()(const _Tp& __x) const | |
{return -__x;} | |
}; | |
template <> | |
struct negate<void> | |
{ | |
template <class _Tp> | |
constexpr __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) | |
auto operator()(_Tp&& __x) const | |
noexcept(noexcept(- std::forward<_Tp>(__x))) | |
-> decltype( - std::forward<_Tp>(__x)) | |
{ return - std::forward<_Tp>(__x); } | |
typedef void is_transparent; | |
}; | |
template <class _Tp = void> | |
struct bit_and | |
: __binary_function<_Tp, _Tp, _Tp> | |
{ | |
typedef _Tp __result_type; | |
constexpr __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) | |
_Tp operator()(const _Tp& __x, const _Tp& __y) const | |
{return __x & __y;} | |
}; | |
template <> | |
struct bit_and<void> | |
{ | |
template <class _T1, class _T2> | |
constexpr __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) | |
auto operator()(_T1&& __t, _T2&& __u) const | |
noexcept(noexcept(std::forward<_T1>(__t) & std::forward<_T2>(__u))) | |
-> decltype( std::forward<_T1>(__t) & std::forward<_T2>(__u)) | |
{ return std::forward<_T1>(__t) & std::forward<_T2>(__u); } | |
typedef void is_transparent; | |
}; | |
template <class _Tp = void> | |
struct bit_not | |
: __unary_function<_Tp, _Tp> | |
{ | |
constexpr __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) | |
_Tp operator()(const _Tp& __x) const | |
{return ~__x;} | |
}; | |
template <> | |
struct bit_not<void> | |
{ | |
template <class _Tp> | |
constexpr __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) | |
auto operator()(_Tp&& __x) const | |
noexcept(noexcept(~std::forward<_Tp>(__x))) | |
-> decltype( ~std::forward<_Tp>(__x)) | |
{ return ~std::forward<_Tp>(__x); } | |
typedef void is_transparent; | |
}; | |
template <class _Tp = void> | |
struct bit_or | |
: __binary_function<_Tp, _Tp, _Tp> | |
{ | |
typedef _Tp __result_type; | |
constexpr __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) | |
_Tp operator()(const _Tp& __x, const _Tp& __y) const | |
{return __x | __y;} | |
}; | |
template <> | |
struct bit_or<void> | |
{ | |
template <class _T1, class _T2> | |
constexpr __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) | |
auto operator()(_T1&& __t, _T2&& __u) const | |
noexcept(noexcept(std::forward<_T1>(__t) | std::forward<_T2>(__u))) | |
-> decltype( std::forward<_T1>(__t) | std::forward<_T2>(__u)) | |
{ return std::forward<_T1>(__t) | std::forward<_T2>(__u); } | |
typedef void is_transparent; | |
}; | |
template <class _Tp = void> | |
struct bit_xor | |
: __binary_function<_Tp, _Tp, _Tp> | |
{ | |
typedef _Tp __result_type; | |
constexpr __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) | |
_Tp operator()(const _Tp& __x, const _Tp& __y) const | |
{return __x ^ __y;} | |
}; | |
template <> | |
struct bit_xor<void> | |
{ | |
template <class _T1, class _T2> | |
constexpr __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) | |
auto operator()(_T1&& __t, _T2&& __u) const | |
noexcept(noexcept(std::forward<_T1>(__t) ^ std::forward<_T2>(__u))) | |
-> decltype( std::forward<_T1>(__t) ^ std::forward<_T2>(__u)) | |
{ return std::forward<_T1>(__t) ^ std::forward<_T2>(__u); } | |
typedef void is_transparent; | |
}; | |
template <class _Tp = void> | |
struct equal_to | |
: __binary_function<_Tp, _Tp, bool> | |
{ | |
typedef bool __result_type; | |
constexpr __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) | |
bool operator()(const _Tp& __x, const _Tp& __y) const | |
{return __x == __y;} | |
}; | |
template <> | |
struct equal_to<void> | |
{ | |
template <class _T1, class _T2> | |
constexpr __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) | |
auto operator()(_T1&& __t, _T2&& __u) const | |
noexcept(noexcept(std::forward<_T1>(__t) == std::forward<_T2>(__u))) | |
-> decltype( std::forward<_T1>(__t) == std::forward<_T2>(__u)) | |
{ return std::forward<_T1>(__t) == std::forward<_T2>(__u); } | |
typedef void is_transparent; | |
}; | |
template <class _Tp = void> | |
struct not_equal_to | |
: __binary_function<_Tp, _Tp, bool> | |
{ | |
typedef bool __result_type; | |
constexpr __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) | |
bool operator()(const _Tp& __x, const _Tp& __y) const | |
{return __x != __y;} | |
}; | |
template <> | |
struct not_equal_to<void> | |
{ | |
template <class _T1, class _T2> | |
constexpr __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) | |
auto operator()(_T1&& __t, _T2&& __u) const | |
noexcept(noexcept(std::forward<_T1>(__t) != std::forward<_T2>(__u))) | |
-> decltype( std::forward<_T1>(__t) != std::forward<_T2>(__u)) | |
{ return std::forward<_T1>(__t) != std::forward<_T2>(__u); } | |
typedef void is_transparent; | |
}; | |
template <class _Tp = void> | |
struct less | |
: __binary_function<_Tp, _Tp, bool> | |
{ | |
typedef bool __result_type; | |
constexpr __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) | |
bool operator()(const _Tp& __x, const _Tp& __y) const | |
{return __x < __y;} | |
}; | |
template <> | |
struct less<void> | |
{ | |
template <class _T1, class _T2> | |
constexpr __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) | |
auto operator()(_T1&& __t, _T2&& __u) const | |
noexcept(noexcept(std::forward<_T1>(__t) < std::forward<_T2>(__u))) | |
-> decltype( std::forward<_T1>(__t) < std::forward<_T2>(__u)) | |
{ return std::forward<_T1>(__t) < std::forward<_T2>(__u); } | |
typedef void is_transparent; | |
}; | |
template <class _Tp = void> | |
struct less_equal | |
: __binary_function<_Tp, _Tp, bool> | |
{ | |
typedef bool __result_type; | |
constexpr __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) | |
bool operator()(const _Tp& __x, const _Tp& __y) const | |
{return __x <= __y;} | |
}; | |
template <> | |
struct less_equal<void> | |
{ | |
template <class _T1, class _T2> | |
constexpr __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) | |
auto operator()(_T1&& __t, _T2&& __u) const | |
noexcept(noexcept(std::forward<_T1>(__t) <= std::forward<_T2>(__u))) | |
-> decltype( std::forward<_T1>(__t) <= std::forward<_T2>(__u)) | |
{ return std::forward<_T1>(__t) <= std::forward<_T2>(__u); } | |
typedef void is_transparent; | |
}; | |
template <class _Tp = void> | |
struct greater_equal | |
: __binary_function<_Tp, _Tp, bool> | |
{ | |
typedef bool __result_type; | |
constexpr __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) | |
bool operator()(const _Tp& __x, const _Tp& __y) const | |
{return __x >= __y;} | |
}; | |
template <> | |
struct greater_equal<void> | |
{ | |
template <class _T1, class _T2> | |
constexpr __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) | |
auto operator()(_T1&& __t, _T2&& __u) const | |
noexcept(noexcept(std::forward<_T1>(__t) >= std::forward<_T2>(__u))) | |
-> decltype( std::forward<_T1>(__t) >= std::forward<_T2>(__u)) | |
{ return std::forward<_T1>(__t) >= std::forward<_T2>(__u); } | |
typedef void is_transparent; | |
}; | |
template <class _Tp = void> | |
struct greater | |
: __binary_function<_Tp, _Tp, bool> | |
{ | |
typedef bool __result_type; | |
constexpr __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) | |
bool operator()(const _Tp& __x, const _Tp& __y) const | |
{return __x > __y;} | |
}; | |
template <> | |
struct greater<void> | |
{ | |
template <class _T1, class _T2> | |
constexpr __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) | |
auto operator()(_T1&& __t, _T2&& __u) const | |
noexcept(noexcept(std::forward<_T1>(__t) > std::forward<_T2>(__u))) | |
-> decltype( std::forward<_T1>(__t) > std::forward<_T2>(__u)) | |
{ return std::forward<_T1>(__t) > std::forward<_T2>(__u); } | |
typedef void is_transparent; | |
}; | |
template <class _Tp = void> | |
struct logical_and | |
: __binary_function<_Tp, _Tp, bool> | |
{ | |
typedef bool __result_type; | |
constexpr __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) | |
bool operator()(const _Tp& __x, const _Tp& __y) const | |
{return __x && __y;} | |
}; | |
template <> | |
struct logical_and<void> | |
{ | |
template <class _T1, class _T2> | |
constexpr __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) | |
auto operator()(_T1&& __t, _T2&& __u) const | |
noexcept(noexcept(std::forward<_T1>(__t) && std::forward<_T2>(__u))) | |
-> decltype( std::forward<_T1>(__t) && std::forward<_T2>(__u)) | |
{ return std::forward<_T1>(__t) && std::forward<_T2>(__u); } | |
typedef void is_transparent; | |
}; | |
template <class _Tp = void> | |
struct logical_not | |
: __unary_function<_Tp, bool> | |
{ | |
typedef bool __result_type; | |
constexpr __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) | |
bool operator()(const _Tp& __x) const | |
{return !__x;} | |
}; | |
template <> | |
struct logical_not<void> | |
{ | |
template <class _Tp> | |
constexpr __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) | |
auto operator()(_Tp&& __x) const | |
noexcept(noexcept(!std::forward<_Tp>(__x))) | |
-> decltype( !std::forward<_Tp>(__x)) | |
{ return !std::forward<_Tp>(__x); } | |
typedef void is_transparent; | |
}; | |
template <class _Tp = void> | |
struct logical_or | |
: __binary_function<_Tp, _Tp, bool> | |
{ | |
typedef bool __result_type; | |
constexpr __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) | |
bool operator()(const _Tp& __x, const _Tp& __y) const | |
{return __x || __y;} | |
}; | |
template <> | |
struct logical_or<void> | |
{ | |
template <class _T1, class _T2> | |
constexpr __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) | |
auto operator()(_T1&& __t, _T2&& __u) const | |
noexcept(noexcept(std::forward<_T1>(__t) || std::forward<_T2>(__u))) | |
-> decltype( std::forward<_T1>(__t) || std::forward<_T2>(__u)) | |
{ return std::forward<_T1>(__t) || std::forward<_T2>(__u); } | |
typedef void is_transparent; | |
}; | |
}} | |
# 19 "../../buildtools/third_party/libc++/trunk/include/__memory/unique_ptr.h" 2 3 | |
# 1 "../../buildtools/third_party/libc++/trunk/include/__memory/allocator_traits.h" 1 3 | |
# 11 "../../buildtools/third_party/libc++/trunk/include/__memory/allocator_traits.h" 3 | |
#define _LIBCPP___MEMORY_ALLOCATOR_TRAITS_H | |
# 1 "../../buildtools/third_party/libc++/trunk/include/__memory/construct_at.h" 1 3 | |
# 11 "../../buildtools/third_party/libc++/trunk/include/__memory/construct_at.h" 3 | |
#define _LIBCPP___MEMORY_CONSTRUCT_AT_H | |
# 1 "../../buildtools/third_party/libc++/trunk/include/__iterator/access.h" 1 3 | |
# 11 "../../buildtools/third_party/libc++/trunk/include/__iterator/access.h" 3 | |
#define _LIBCPP___ITERATOR_ACCESS_H | |
# 18 "../../buildtools/third_party/libc++/trunk/include/__iterator/access.h" 3 | |
namespace std { inline namespace Cr { | |
template <class _Tp, size_t _Np> | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) constexpr | |
_Tp* | |
begin(_Tp (&__array)[_Np]) | |
{ | |
return __array; | |
} | |
template <class _Tp, size_t _Np> | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) constexpr | |
_Tp* | |
end(_Tp (&__array)[_Np]) | |
{ | |
return __array + _Np; | |
} | |
template <class _Cp> | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) constexpr | |
auto | |
begin(_Cp& __c) -> decltype(__c.begin()) | |
{ | |
return __c.begin(); | |
} | |
template <class _Cp> | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) constexpr | |
auto | |
begin(const _Cp& __c) -> decltype(__c.begin()) | |
{ | |
return __c.begin(); | |
} | |
template <class _Cp> | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) constexpr | |
auto | |
end(_Cp& __c) -> decltype(__c.end()) | |
{ | |
return __c.end(); | |
} | |
template <class _Cp> | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) constexpr | |
auto | |
end(const _Cp& __c) -> decltype(__c.end()) | |
{ | |
return __c.end(); | |
} | |
template <class _Cp> | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) constexpr | |
auto cbegin(const _Cp& __c) -> decltype(std::begin(__c)) | |
{ | |
return std::begin(__c); | |
} | |
template <class _Cp> | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) constexpr | |
auto cend(const _Cp& __c) -> decltype(std::end(__c)) | |
{ | |
return std::end(__c); | |
} | |
# 127 "../../buildtools/third_party/libc++/trunk/include/__iterator/access.h" 3 | |
}} | |
# 16 "../../buildtools/third_party/libc++/trunk/include/__memory/construct_at.h" 2 3 | |
# 1 "../../buildtools/third_party/libc++/trunk/include/__memory/voidify.h" 1 3 | |
# 11 "../../buildtools/third_party/libc++/trunk/include/__memory/voidify.h" 3 | |
#define _LIBCPP___MEMORY_VOIDIFY_H | |
# 18 "../../buildtools/third_party/libc++/trunk/include/__memory/voidify.h" 3 | |
namespace std { inline namespace Cr { | |
template <typename _Tp> | |
__attribute__((__always_inline__)) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) void* __voidify(_Tp& __from) { | |
return const_cast<void*>(static_cast<const volatile void*>(std::addressof(__from))); | |
} | |
}} | |
# 18 "../../buildtools/third_party/libc++/trunk/include/__memory/construct_at.h" 2 3 | |
# 25 "../../buildtools/third_party/libc++/trunk/include/__memory/construct_at.h" 3 | |
namespace std { inline namespace Cr { | |
# 41 "../../buildtools/third_party/libc++/trunk/include/__memory/construct_at.h" 3 | |
template <class _Tp, class... _Args, class = decltype(::new(declval<void*>()) _Tp(declval<_Args>()...))> | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) constexpr _Tp* __construct_at(_Tp* __location, _Args&&... __args) { | |
return (__builtin_expect(static_cast<bool>(__location != nullptr), 1) ? (void)0 : ::std::__libcpp_verbose_abort("%s:%d: assertion %s failed: %s", "../../buildtools/third_party/libc++/trunk/include/__memory/construct_at.h", 46, "__location != nullptr", "null pointer given to construct_at")), | |
::new (std::__voidify(*__location)) _Tp(std::forward<_Args>(__args)...); | |
} | |
template <class _ForwardIterator> | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) | |
_ForwardIterator __destroy(_ForwardIterator, _ForwardIterator); | |
template <class _Tp, typename enable_if<!is_array<_Tp>::value, int>::type = 0> | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) | |
void __destroy_at(_Tp* __loc) { | |
(__builtin_expect(static_cast<bool>(__loc != nullptr), 1) ? (void)0 : ::std::__libcpp_verbose_abort("%s:%d: assertion %s failed: %s", "../../buildtools/third_party/libc++/trunk/include/__memory/construct_at.h", 63, "__loc != nullptr", "null pointer given to destroy_at")); | |
__loc->~_Tp(); | |
} | |
# 76 "../../buildtools/third_party/libc++/trunk/include/__memory/construct_at.h" 3 | |
template <class _ForwardIterator> | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) | |
_ForwardIterator __destroy(_ForwardIterator __first, _ForwardIterator __last) { | |
for (; __first != __last; ++__first) | |
std::__destroy_at(std::addressof(*__first)); | |
return __first; | |
} | |
template <class _Tp, enable_if_t<!is_array_v<_Tp>, int> = 0> | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) | |
void destroy_at(_Tp* __loc) { | |
std::__destroy_at(__loc); | |
} | |
# 100 "../../buildtools/third_party/libc++/trunk/include/__memory/construct_at.h" 3 | |
template <class _ForwardIterator> | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) | |
void destroy(_ForwardIterator __first, _ForwardIterator __last) { | |
(void)std::__destroy(std::move(__first), std::move(__last)); | |
} | |
template <class _ForwardIterator, class _Size> | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) | |
_ForwardIterator destroy_n(_ForwardIterator __first, _Size __n) { | |
for (; __n > 0; (void)++__first, --__n) | |
std::__destroy_at(std::addressof(*__first)); | |
return __first; | |
} | |
}} | |
# 15 "../../buildtools/third_party/libc++/trunk/include/__memory/allocator_traits.h" 2 3 | |
# 22 "../../buildtools/third_party/libc++/trunk/include/__memory/allocator_traits.h" 3 | |
# 1 "../../buildtools/third_party/libc++/trunk/include/__undef_macros" 1 3 | |
# 26 "../../buildtools/third_party/libc++/trunk/include/__memory/allocator_traits.h" 2 3 | |
namespace std { inline namespace Cr { | |
#define _LIBCPP_ALLOCATOR_TRAITS_HAS_XXX(NAME,PROPERTY) template <class _Tp, class = void> struct NAME : false_type { }; template <class _Tp> struct NAME<_Tp, typename __void_t<typename _Tp:: PROPERTY >::type> : true_type { } | |
template <class _Tp, class = void> struct __has_pointer : false_type { }; template <class _Tp> struct __has_pointer<_Tp, typename __void_t<typename _Tp:: pointer >::type> : true_type { }; | |
template <class _Tp, class _Alloc, | |
class _RawAlloc = __libcpp_remove_reference_t<_Alloc>, | |
bool = __has_pointer<_RawAlloc>::value> | |
struct __pointer { | |
using type __attribute__((__nodebug__)) = typename _RawAlloc::pointer; | |
}; | |
template <class _Tp, class _Alloc, class _RawAlloc> | |
struct __pointer<_Tp, _Alloc, _RawAlloc, false> { | |
using type __attribute__((__nodebug__)) = _Tp*; | |
}; | |
template <class _Tp, class = void> struct __has_const_pointer : false_type { }; template <class _Tp> struct __has_const_pointer<_Tp, typename __void_t<typename _Tp:: const_pointer >::type> : true_type { }; | |
template <class _Tp, class _Ptr, class _Alloc, | |
bool = __has_const_pointer<_Alloc>::value> | |
struct __const_pointer { | |
using type __attribute__((__nodebug__)) = typename _Alloc::const_pointer; | |
}; | |
template <class _Tp, class _Ptr, class _Alloc> | |
struct __const_pointer<_Tp, _Ptr, _Alloc, false> { | |
using type __attribute__((__nodebug__)) = typename pointer_traits<_Ptr>::template rebind<const _Tp>; | |
}; | |
template <class _Tp, class = void> struct __has_void_pointer : false_type { }; template <class _Tp> struct __has_void_pointer<_Tp, typename __void_t<typename _Tp:: void_pointer >::type> : true_type { }; | |
template <class _Ptr, class _Alloc, | |
bool = __has_void_pointer<_Alloc>::value> | |
struct __void_pointer { | |
using type __attribute__((__nodebug__)) = typename _Alloc::void_pointer; | |
}; | |
template <class _Ptr, class _Alloc> | |
struct __void_pointer<_Ptr, _Alloc, false> { | |
using type __attribute__((__nodebug__)) = typename pointer_traits<_Ptr>::template rebind<void>; | |
}; | |
template <class _Tp, class = void> struct __has_const_void_pointer : false_type { }; template <class _Tp> struct __has_const_void_pointer<_Tp, typename __void_t<typename _Tp:: const_void_pointer >::type> : true_type { }; | |
template <class _Ptr, class _Alloc, | |
bool = __has_const_void_pointer<_Alloc>::value> | |
struct __const_void_pointer { | |
using type __attribute__((__nodebug__)) = typename _Alloc::const_void_pointer; | |
}; | |
template <class _Ptr, class _Alloc> | |
struct __const_void_pointer<_Ptr, _Alloc, false> { | |
using type __attribute__((__nodebug__)) = typename pointer_traits<_Ptr>::template rebind<const void>; | |
}; | |
template <class _Tp, class = void> struct __has_size_type : false_type { }; template <class _Tp> struct __has_size_type<_Tp, typename __void_t<typename _Tp:: size_type >::type> : true_type { }; | |
template <class _Alloc, class _DiffType, bool = __has_size_type<_Alloc>::value> | |
struct __size_type : make_unsigned<_DiffType> { }; | |
template <class _Alloc, class _DiffType> | |
struct __size_type<_Alloc, _DiffType, true> { | |
using type __attribute__((__nodebug__)) = typename _Alloc::size_type; | |
}; | |
template <class _Tp, class = void> struct __has_alloc_traits_difference_type : false_type { }; template <class _Tp> struct __has_alloc_traits_difference_type<_Tp, typename __void_t<typename _Tp:: difference_type >::type> : true_type { }; | |
template <class _Alloc, class _Ptr, bool = __has_alloc_traits_difference_type<_Alloc>::value> | |
struct __alloc_traits_difference_type { | |
using type __attribute__((__nodebug__)) = typename pointer_traits<_Ptr>::difference_type; | |
}; | |
template <class _Alloc, class _Ptr> | |
struct __alloc_traits_difference_type<_Alloc, _Ptr, true> { | |
using type __attribute__((__nodebug__)) = typename _Alloc::difference_type; | |
}; | |
template <class _Tp, class = void> struct __has_propagate_on_container_copy_assignment : false_type { }; template <class _Tp> struct __has_propagate_on_container_copy_assignment<_Tp, typename __void_t<typename _Tp:: propagate_on_container_copy_assignment >::type> : true_type { }; | |
template <class _Alloc, bool = __has_propagate_on_container_copy_assignment<_Alloc>::value> | |
struct __propagate_on_container_copy_assignment : false_type { }; | |
template <class _Alloc> | |
struct __propagate_on_container_copy_assignment<_Alloc, true> { | |
using type __attribute__((__nodebug__)) = typename _Alloc::propagate_on_container_copy_assignment; | |
}; | |
template <class _Tp, class = void> struct __has_propagate_on_container_move_assignment : false_type { }; template <class _Tp> struct __has_propagate_on_container_move_assignment<_Tp, typename __void_t<typename _Tp:: propagate_on_container_move_assignment >::type> : true_type { }; | |
template <class _Alloc, bool = __has_propagate_on_container_move_assignment<_Alloc>::value> | |
struct __propagate_on_container_move_assignment : false_type { }; | |
template <class _Alloc> | |
struct __propagate_on_container_move_assignment<_Alloc, true> { | |
using type __attribute__((__nodebug__)) = typename _Alloc::propagate_on_container_move_assignment; | |
}; | |
template <class _Tp, class = void> struct __has_propagate_on_container_swap : false_type { }; template <class _Tp> struct __has_propagate_on_container_swap<_Tp, typename __void_t<typename _Tp:: propagate_on_container_swap >::type> : true_type { }; | |
template <class _Alloc, bool = __has_propagate_on_container_swap<_Alloc>::value> | |
struct __propagate_on_container_swap : false_type { }; | |
template <class _Alloc> | |
struct __propagate_on_container_swap<_Alloc, true> { | |
using type __attribute__((__nodebug__)) = typename _Alloc::propagate_on_container_swap; | |
}; | |
template <class _Tp, class = void> struct __has_is_always_equal : false_type { }; template <class _Tp> struct __has_is_always_equal<_Tp, typename __void_t<typename _Tp:: is_always_equal >::type> : true_type { }; | |
template <class _Alloc, bool = __has_is_always_equal<_Alloc>::value> | |
struct __is_always_equal : is_empty<_Alloc> { }; | |
template <class _Alloc> | |
struct __is_always_equal<_Alloc, true> { | |
using type __attribute__((__nodebug__)) = typename _Alloc::is_always_equal; | |
}; | |
#pragma GCC diagnostic push | |
# 151 "../../buildtools/third_party/libc++/trunk/include/__memory/allocator_traits.h" 3 | |
#pragma GCC diagnostic ignored "-Wdeprecated" | |
# 151 "../../buildtools/third_party/libc++/trunk/include/__memory/allocator_traits.h" 3 | |
#pragma GCC diagnostic ignored "-Wdeprecated-declarations" | |
template <class _Tp, class _Up, class = void> | |
struct __has_rebind_other : false_type { }; | |
template <class _Tp, class _Up> | |
struct __has_rebind_other<_Tp, _Up, typename __void_t< | |
typename _Tp::template rebind<_Up>::other | |
>::type> : true_type { }; | |
template <class _Tp, class _Up, bool = __has_rebind_other<_Tp, _Up>::value> | |
struct __allocator_traits_rebind { | |
using type __attribute__((__nodebug__)) = typename _Tp::template rebind<_Up>::other; | |
}; | |
template <template <class, class...> class _Alloc, class _Tp, class ..._Args, class _Up> | |
struct __allocator_traits_rebind<_Alloc<_Tp, _Args...>, _Up, true> { | |
using type __attribute__((__nodebug__)) = typename _Alloc<_Tp, _Args...>::template rebind<_Up>::other; | |
}; | |
template <template <class, class...> class _Alloc, class _Tp, class ..._Args, class _Up> | |
struct __allocator_traits_rebind<_Alloc<_Tp, _Args...>, _Up, false> { | |
using type __attribute__((__nodebug__)) = _Alloc<_Up, _Args...>; | |
}; | |
#pragma GCC diagnostic pop | |
template<class _Alloc, class _Tp> | |
using __allocator_traits_rebind_t = typename __allocator_traits_rebind<_Alloc, _Tp>::type; | |
#pragma GCC diagnostic push | |
# 176 "../../buildtools/third_party/libc++/trunk/include/__memory/allocator_traits.h" 3 | |
#pragma GCC diagnostic ignored "-Wdeprecated" | |
# 176 "../../buildtools/third_party/libc++/trunk/include/__memory/allocator_traits.h" 3 | |
#pragma GCC diagnostic ignored "-Wdeprecated-declarations" | |
template <class _Alloc, class _SizeType, class _ConstVoidPtr, class = void> | |
struct __has_allocate_hint : false_type { }; | |
template <class _Alloc, class _SizeType, class _ConstVoidPtr> | |
struct __has_allocate_hint<_Alloc, _SizeType, _ConstVoidPtr, decltype( | |
(void)declval<_Alloc>().allocate(declval<_SizeType>(), declval<_ConstVoidPtr>()) | |
)> : true_type { }; | |
template <class, class _Alloc, class ..._Args> | |
struct __has_construct_impl : false_type { }; | |
template <class _Alloc, class ..._Args> | |
struct __has_construct_impl<decltype( | |
(void)declval<_Alloc>().construct(declval<_Args>()...) | |
), _Alloc, _Args...> : true_type { }; | |
template <class _Alloc, class ..._Args> | |
struct __has_construct : __has_construct_impl<void, _Alloc, _Args...> { }; | |
template <class _Alloc, class _Pointer, class = void> | |
struct __has_destroy : false_type { }; | |
template <class _Alloc, class _Pointer> | |
struct __has_destroy<_Alloc, _Pointer, decltype( | |
(void)declval<_Alloc>().destroy(declval<_Pointer>()) | |
)> : true_type { }; | |
template <class _Alloc, class = void> | |
struct __has_max_size : false_type { }; | |
template <class _Alloc> | |
struct __has_max_size<_Alloc, decltype( | |
(void)declval<_Alloc&>().max_size() | |
)> : true_type { }; | |
template <class _Alloc, class = void> | |
struct __has_select_on_container_copy_construction : false_type { }; | |
template <class _Alloc> | |
struct __has_select_on_container_copy_construction<_Alloc, decltype( | |
(void)declval<_Alloc>().select_on_container_copy_construction() | |
)> : true_type { }; | |
#pragma GCC diagnostic pop | |
template <class _Alloc> | |
struct allocator_traits | |
{ | |
using allocator_type = _Alloc; | |
using value_type = typename allocator_type::value_type; | |
using pointer = typename __pointer<value_type, allocator_type>::type; | |
using const_pointer = typename __const_pointer<value_type, pointer, allocator_type>::type; | |
using void_pointer = typename __void_pointer<pointer, allocator_type>::type; | |
using const_void_pointer = typename __const_void_pointer<pointer, allocator_type>::type; | |
using difference_type = typename __alloc_traits_difference_type<allocator_type, pointer>::type; | |
using size_type = typename __size_type<allocator_type, difference_type>::type; | |
using propagate_on_container_copy_assignment = typename __propagate_on_container_copy_assignment<allocator_type>::type; | |
using propagate_on_container_move_assignment = typename __propagate_on_container_move_assignment<allocator_type>::type; | |
using propagate_on_container_swap = typename __propagate_on_container_swap<allocator_type>::type; | |
using is_always_equal = typename __is_always_equal<allocator_type>::type; | |
template <class _Tp> | |
using rebind_alloc = __allocator_traits_rebind_t<allocator_type, _Tp>; | |
template <class _Tp> | |
using rebind_traits = allocator_traits<rebind_alloc<_Tp> >; | |
# 260 "../../buildtools/third_party/libc++/trunk/include/__memory/allocator_traits.h" 3 | |
[[nodiscard]] __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) | |
static pointer allocate(allocator_type& __a, size_type __n) { | |
return __a.allocate(__n); | |
} | |
template <class _Ap = _Alloc, class = | |
__enable_if_t<__has_allocate_hint<_Ap, size_type, const_void_pointer>::value> > | |
[[nodiscard]] __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) | |
static pointer allocate(allocator_type& __a, size_type __n, const_void_pointer __hint) { | |
#pragma GCC diagnostic push | |
# 269 "../../buildtools/third_party/libc++/trunk/include/__memory/allocator_traits.h" 3 | |
#pragma GCC diagnostic ignored "-Wdeprecated" | |
# 269 "../../buildtools/third_party/libc++/trunk/include/__memory/allocator_traits.h" 3 | |
#pragma GCC diagnostic ignored "-Wdeprecated-declarations" | |
return __a.allocate(__n, __hint); | |
#pragma GCC diagnostic pop | |
} | |
template <class _Ap = _Alloc, class = void, class = | |
__enable_if_t<!__has_allocate_hint<_Ap, size_type, const_void_pointer>::value> > | |
[[nodiscard]] __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) | |
static pointer allocate(allocator_type& __a, size_type __n, const_void_pointer) { | |
return __a.allocate(__n); | |
} | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) | |
static void deallocate(allocator_type& __a, pointer __p, size_type __n) noexcept { | |
__a.deallocate(__p, __n); | |
} | |
template <class _Tp, class... _Args, class = | |
__enable_if_t<__has_construct<allocator_type, _Tp*, _Args...>::value> > | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) | |
static void construct(allocator_type& __a, _Tp* __p, _Args&&... __args) { | |
#pragma GCC diagnostic push | |
# 289 "../../buildtools/third_party/libc++/trunk/include/__memory/allocator_traits.h" 3 | |
#pragma GCC diagnostic ignored "-Wdeprecated" | |
# 289 "../../buildtools/third_party/libc++/trunk/include/__memory/allocator_traits.h" 3 | |
#pragma GCC diagnostic ignored "-Wdeprecated-declarations" | |
__a.construct(__p, std::forward<_Args>(__args)...); | |
#pragma GCC diagnostic pop | |
} | |
template <class _Tp, class... _Args, class = void, class = | |
__enable_if_t<!__has_construct<allocator_type, _Tp*, _Args...>::value> > | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) | |
static void construct(allocator_type&, _Tp* __p, _Args&&... __args) { | |
::new ((void*)__p) _Tp(std::forward<_Args>(__args)...); | |
} | |
template <class _Tp, class = | |
__enable_if_t<__has_destroy<allocator_type, _Tp*>::value> > | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) | |
static void destroy(allocator_type& __a, _Tp* __p) { | |
#pragma GCC diagnostic push | |
# 308 "../../buildtools/third_party/libc++/trunk/include/__memory/allocator_traits.h" 3 | |
#pragma GCC diagnostic ignored "-Wdeprecated" | |
# 308 "../../buildtools/third_party/libc++/trunk/include/__memory/allocator_traits.h" 3 | |
#pragma GCC diagnostic ignored "-Wdeprecated-declarations" | |
__a.destroy(__p); | |
#pragma GCC diagnostic pop | |
} | |
template <class _Tp, class = void, class = | |
__enable_if_t<!__has_destroy<allocator_type, _Tp*>::value> > | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) | |
static void destroy(allocator_type&, _Tp* __p) { | |
__p->~_Tp(); | |
} | |
template <class _Ap = _Alloc, class = | |
__enable_if_t<__has_max_size<const _Ap>::value> > | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) | |
static size_type max_size(const allocator_type& __a) noexcept { | |
#pragma GCC diagnostic push | |
# 327 "../../buildtools/third_party/libc++/trunk/include/__memory/allocator_traits.h" 3 | |
#pragma GCC diagnostic ignored "-Wdeprecated" | |
# 327 "../../buildtools/third_party/libc++/trunk/include/__memory/allocator_traits.h" 3 | |
#pragma GCC diagnostic ignored "-Wdeprecated-declarations" | |
return __a.max_size(); | |
#pragma GCC diagnostic pop | |
} | |
template <class _Ap = _Alloc, class = void, class = | |
__enable_if_t<!__has_max_size<const _Ap>::value> > | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) | |
static size_type max_size(const allocator_type&) noexcept { | |
return numeric_limits<size_type>::max() / sizeof(value_type); | |
} | |
template <class _Ap = _Alloc, class = | |
__enable_if_t<__has_select_on_container_copy_construction<const _Ap>::value> > | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) | |
static allocator_type select_on_container_copy_construction(const allocator_type& __a) { | |
return __a.select_on_container_copy_construction(); | |
} | |
template <class _Ap = _Alloc, class = void, class = | |
__enable_if_t<!__has_select_on_container_copy_construction<const _Ap>::value> > | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) | |
static allocator_type select_on_container_copy_construction(const allocator_type& __a) { | |
return __a; | |
} | |
}; | |
template <class _Traits, class _Tp> | |
struct __rebind_alloc_helper { | |
using type __attribute__((__nodebug__)) = typename _Traits::template rebind_alloc<_Tp>; | |
}; | |
template <class _Tp> | |
struct __is_default_allocator : false_type { }; | |
template <class> class allocator; | |
template <class _Tp> | |
struct __is_default_allocator<allocator<_Tp> > : true_type { }; | |
template <class _Alloc, class = void> | |
struct __is_cpp17_move_insertable | |
: is_move_constructible<typename _Alloc::value_type> | |
{ }; | |
template <class _Alloc> | |
struct __is_cpp17_move_insertable<_Alloc, __enable_if_t< | |
!__is_default_allocator<_Alloc>::value && | |
__has_construct<_Alloc, typename _Alloc::value_type*, typename _Alloc::value_type&&>::value | |
> > : true_type { }; | |
template <class _Alloc, class = void> | |
struct __is_cpp17_copy_insertable | |
: integral_constant<bool, | |
is_copy_constructible<typename _Alloc::value_type>::value && | |
__is_cpp17_move_insertable<_Alloc>::value | |
> | |
{ }; | |
template <class _Alloc> | |
struct __is_cpp17_copy_insertable<_Alloc, __enable_if_t< | |
!__is_default_allocator<_Alloc>::value && | |
__has_construct<_Alloc, typename _Alloc::value_type*, const typename _Alloc::value_type&>::value | |
> > | |
: __is_cpp17_move_insertable<_Alloc> | |
{ }; | |
#undef _LIBCPP_ALLOCATOR_TRAITS_HAS_XXX | |
}} | |
# 20 "../../buildtools/third_party/libc++/trunk/include/__memory/unique_ptr.h" 2 3 | |
# 1 "../../buildtools/third_party/libc++/trunk/include/__memory/auto_ptr.h" 1 3 | |
# 11 "../../buildtools/third_party/libc++/trunk/include/__memory/auto_ptr.h" 3 | |
#define _LIBCPP___MEMORY_AUTO_PTR_H | |
# 17 "../../buildtools/third_party/libc++/trunk/include/__memory/auto_ptr.h" 3 | |
# 21 "../../buildtools/third_party/libc++/trunk/include/__memory/unique_ptr.h" 2 3 | |
# 1 "../../buildtools/third_party/libc++/trunk/include/__memory/compressed_pair.h" 1 3 | |
# 11 "../../buildtools/third_party/libc++/trunk/include/__memory/compressed_pair.h" 3 | |
#define _LIBCPP___MEMORY_COMPRESSED_PAIR_H | |
# 1 "../../buildtools/third_party/libc++/trunk/include/tuple" 1 3 | |
# 11 "../../buildtools/third_party/libc++/trunk/include/tuple" 3 | |
#define _LIBCPP_TUPLE | |
# 210 "../../buildtools/third_party/libc++/trunk/include/tuple" 3 | |
# 1 "../../buildtools/third_party/libc++/trunk/include/__memory/allocator_arg_t.h" 1 3 | |
# 11 "../../buildtools/third_party/libc++/trunk/include/__memory/allocator_arg_t.h" 3 | |
#define _LIBCPP___FUNCTIONAL_ALLOCATOR_ARG_T_H | |
# 1 "../../buildtools/third_party/libc++/trunk/include/__memory/uses_allocator.h" 1 3 | |
# 11 "../../buildtools/third_party/libc++/trunk/include/__memory/uses_allocator.h" 3 | |
#define _LIBCPP___MEMORY_USES_ALLOCATOR_H | |
# 19 "../../buildtools/third_party/libc++/trunk/include/__memory/uses_allocator.h" 3 | |
namespace std { inline namespace Cr { | |
template <class _Tp> | |
struct __has_allocator_type | |
{ | |
private: | |
template <class _Up> static false_type __test(...); | |
template <class _Up> static true_type __test(typename _Up::allocator_type* = 0); | |
public: | |
static const bool value = decltype(__test<_Tp>(0))::value; | |
}; | |
template <class _Tp, class _Alloc, bool = __has_allocator_type<_Tp>::value> | |
struct __uses_allocator | |
: public integral_constant<bool, | |
is_convertible<_Alloc, typename _Tp::allocator_type>::value> | |
{ | |
}; | |
template <class _Tp, class _Alloc> | |
struct __uses_allocator<_Tp, _Alloc, false> | |
: public false_type | |
{ | |
}; | |
template <class _Tp, class _Alloc> | |
struct uses_allocator | |
: public __uses_allocator<_Tp, _Alloc> | |
{ | |
}; | |
template <class _Tp, class _Alloc> | |
inline constexpr size_t uses_allocator_v = uses_allocator<_Tp, _Alloc>::value; | |
}} | |
# 15 "../../buildtools/third_party/libc++/trunk/include/__memory/allocator_arg_t.h" 2 3 | |
# 20 "../../buildtools/third_party/libc++/trunk/include/__memory/allocator_arg_t.h" 3 | |
namespace std { inline namespace Cr { | |
struct allocator_arg_t { explicit allocator_arg_t() = default; }; | |
constexpr allocator_arg_t allocator_arg = allocator_arg_t(); | |
template <class _Tp, class _Alloc, class ..._Args> | |
struct __uses_alloc_ctor_imp | |
{ | |
typedef __attribute__((__nodebug__)) __remove_cvref_t<_Alloc> _RawAlloc; | |
static const bool __ua = uses_allocator<_Tp, _RawAlloc>::value; | |
static const bool __ic = | |
is_constructible<_Tp, allocator_arg_t, _Alloc, _Args...>::value; | |
static const int value = __ua ? 2 - __ic : 0; | |
}; | |
template <class _Tp, class _Alloc, class ..._Args> | |
struct __uses_alloc_ctor | |
: integral_constant<int, __uses_alloc_ctor_imp<_Tp, _Alloc, _Args...>::value> | |
{}; | |
template <class _Tp, class _Allocator, class... _Args> | |
inline __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) | |
void __user_alloc_construct_impl (integral_constant<int, 0>, _Tp *__storage, const _Allocator &, _Args &&... __args ) | |
{ | |
new (__storage) _Tp (std::forward<_Args>(__args)...); | |
} | |
template <class _Tp, class _Allocator, class... _Args> | |
inline __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) | |
void __user_alloc_construct_impl (integral_constant<int, 1>, _Tp *__storage, const _Allocator &__a, _Args &&... __args ) | |
{ | |
new (__storage) _Tp (allocator_arg, __a, std::forward<_Args>(__args)...); | |
} | |
template <class _Tp, class _Allocator, class... _Args> | |
inline __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) | |
void __user_alloc_construct_impl (integral_constant<int, 2>, _Tp *__storage, const _Allocator &__a, _Args &&... __args ) | |
{ | |
new (__storage) _Tp (std::forward<_Args>(__args)..., __a); | |
} | |
}} | |
# 211 "../../buildtools/third_party/libc++/trunk/include/tuple" 2 3 | |
# 224 "../../buildtools/third_party/libc++/trunk/include/tuple" 3 | |
# 1 "../../buildtools/third_party/libc++/trunk/include/compare" 1 3 | |
# 11 "../../buildtools/third_party/libc++/trunk/include/compare" 3 | |
#define _LIBCPP_COMPARE | |
# 145 "../../buildtools/third_party/libc++/trunk/include/compare" 3 | |
# 1 "../../buildtools/third_party/libc++/trunk/include/__compare/compare_partial_order_fallback.h" 1 3 | |
# 10 "../../buildtools/third_party/libc++/trunk/include/__compare/compare_partial_order_fallback.h" 3 | |
#define _LIBCPP___COMPARE_COMPARE_PARTIAL_ORDER_FALLBACK | |
# 1 "../../buildtools/third_party/libc++/trunk/include/__compare/partial_order.h" 1 3 | |
# 10 "../../buildtools/third_party/libc++/trunk/include/__compare/partial_order.h" 3 | |
#define _LIBCPP___COMPARE_PARTIAL_ORDER | |
# 1 "../../buildtools/third_party/libc++/trunk/include/__compare/weak_order.h" 1 3 | |
# 10 "../../buildtools/third_party/libc++/trunk/include/__compare/weak_order.h" 3 | |
#define _LIBCPP___COMPARE_WEAK_ORDER | |
# 1 "../../buildtools/third_party/libc++/trunk/include/__compare/strong_order.h" 1 3 | |
# 10 "../../buildtools/third_party/libc++/trunk/include/__compare/strong_order.h" 3 | |
#define _LIBCPP___COMPARE_STRONG_ORDER | |
# 1 "../../buildtools/third_party/libc++/trunk/include/__bit/bit_cast.h" 1 3 | |
# 11 "../../buildtools/third_party/libc++/trunk/include/__bit/bit_cast.h" 3 | |
#define _LIBCPP___BIT_BIT_CAST_H | |
# 18 "../../buildtools/third_party/libc++/trunk/include/__bit/bit_cast.h" 3 | |
namespace std { inline namespace Cr { | |
# 34 "../../buildtools/third_party/libc++/trunk/include/__bit/bit_cast.h" 3 | |
}} | |
# 13 "../../buildtools/third_party/libc++/trunk/include/__compare/strong_order.h" 2 3 | |
# 1 "../../buildtools/third_party/libc++/trunk/include/__utility/priority_tag.h" 1 3 | |
# 10 "../../buildtools/third_party/libc++/trunk/include/__utility/priority_tag.h" 3 | |
#define _LIBCPP___UTILITY_PRIORITY_TAG_H | |
# 17 "../../buildtools/third_party/libc++/trunk/include/__utility/priority_tag.h" 3 | |
namespace std { inline namespace Cr { | |
template<size_t _Ip> struct __priority_tag : __priority_tag<_Ip - 1> {}; | |
template<> struct __priority_tag<0> {}; | |
}} | |
# 18 "../../buildtools/third_party/libc++/trunk/include/__compare/strong_order.h" 2 3 | |
# 1 "../../buildtools/third_party/libc++/trunk/include/cmath" 1 3 | |
# 11 "../../buildtools/third_party/libc++/trunk/include/cmath" 3 | |
#define _LIBCPP_CMATH | |
# 312 "../../buildtools/third_party/libc++/trunk/include/cmath" 3 | |
# 1 "../../buildtools/third_party/libc++/trunk/include/math.h" 1 3 | |
# 11 "../../buildtools/third_party/libc++/trunk/include/math.h" 3 | |
#define _LIBCPP_MATH_H | |
# 298 "../../buildtools/third_party/libc++/trunk/include/math.h" 3 | |
# 1 "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/math.h" 1 3 4 | |
# 24 "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/math.h" 3 4 | |
#define _MATH_H 1 | |
#define __GLIBC_INTERNAL_STARTING_HEADER_IMPLEMENTATION | |
# 1 "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/x86_64-linux-gnu/bits/libc-header-start.h" 1 3 4 | |
# 31 "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/x86_64-linux-gnu/bits/libc-header-start.h" 3 4 | |
#undef __GLIBC_INTERNAL_STARTING_HEADER_IMPLEMENTATION | |
#undef __GLIBC_USE_LIB_EXT2 | |
#define __GLIBC_USE_LIB_EXT2 1 | |
#undef __GLIBC_USE_IEC_60559_BFP_EXT | |
#define __GLIBC_USE_IEC_60559_BFP_EXT 1 | |
#undef __GLIBC_USE_IEC_60559_BFP_EXT_C2X | |
#define __GLIBC_USE_IEC_60559_BFP_EXT_C2X 1 | |
#undef __GLIBC_USE_IEC_60559_FUNCS_EXT | |
#define __GLIBC_USE_IEC_60559_FUNCS_EXT 1 | |
#undef __GLIBC_USE_IEC_60559_FUNCS_EXT_C2X | |
#define __GLIBC_USE_IEC_60559_FUNCS_EXT_C2X 1 | |
#undef __GLIBC_USE_IEC_60559_TYPES_EXT | |
#define __GLIBC_USE_IEC_60559_TYPES_EXT 1 | |
# 28 "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/math.h" 2 3 4 | |
extern "C" { | |
# 1 "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/x86_64-linux-gnu/bits/math-vector.h" 1 3 4 | |
# 25 "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/x86_64-linux-gnu/bits/math-vector.h" 3 4 | |
# 1 "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/x86_64-linux-gnu/bits/libm-simd-decl-stubs.h" 1 3 4 | |
# 34 "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/x86_64-linux-gnu/bits/libm-simd-decl-stubs.h" 3 4 | |
#define _BITS_LIBM_SIMD_DECL_STUBS_H 1 | |
#define __DECL_SIMD_cos | |
#define __DECL_SIMD_cosf | |
#define __DECL_SIMD_cosl | |
#define __DECL_SIMD_cosf16 | |
#define __DECL_SIMD_cosf32 | |
#define __DECL_SIMD_cosf64 | |
#define __DECL_SIMD_cosf128 | |
#define __DECL_SIMD_cosf32x | |
#define __DECL_SIMD_cosf64x | |
#define __DECL_SIMD_cosf128x | |
#define __DECL_SIMD_sin | |
#define __DECL_SIMD_sinf | |
#define __DECL_SIMD_sinl | |
#define __DECL_SIMD_sinf16 | |
#define __DECL_SIMD_sinf32 | |
#define __DECL_SIMD_sinf64 | |
#define __DECL_SIMD_sinf128 | |
#define __DECL_SIMD_sinf32x | |
#define __DECL_SIMD_sinf64x | |
#define __DECL_SIMD_sinf128x | |
#define __DECL_SIMD_sincos | |
#define __DECL_SIMD_sincosf | |
#define __DECL_SIMD_sincosl | |
#define __DECL_SIMD_sincosf16 | |
#define __DECL_SIMD_sincosf32 | |
#define __DECL_SIMD_sincosf64 | |
#define __DECL_SIMD_sincosf128 | |
#define __DECL_SIMD_sincosf32x | |
#define __DECL_SIMD_sincosf64x | |
#define __DECL_SIMD_sincosf128x | |
#define __DECL_SIMD_log | |
#define __DECL_SIMD_logf | |
#define __DECL_SIMD_logl | |
#define __DECL_SIMD_logf16 | |
#define __DECL_SIMD_logf32 | |
#define __DECL_SIMD_logf64 | |
#define __DECL_SIMD_logf128 | |
#define __DECL_SIMD_logf32x | |
#define __DECL_SIMD_logf64x | |
#define __DECL_SIMD_logf128x | |
#define __DECL_SIMD_exp | |
#define __DECL_SIMD_expf | |
#define __DECL_SIMD_expl | |
#define __DECL_SIMD_expf16 | |
#define __DECL_SIMD_expf32 | |
#define __DECL_SIMD_expf64 | |
#define __DECL_SIMD_expf128 | |
#define __DECL_SIMD_expf32x | |
#define __DECL_SIMD_expf64x | |
#define __DECL_SIMD_expf128x | |
#define __DECL_SIMD_pow | |
#define __DECL_SIMD_powf | |
#define __DECL_SIMD_powl | |
#define __DECL_SIMD_powf16 | |
#define __DECL_SIMD_powf32 | |
#define __DECL_SIMD_powf64 | |
#define __DECL_SIMD_powf128 | |
#define __DECL_SIMD_powf32x | |
#define __DECL_SIMD_powf64x | |
#define __DECL_SIMD_powf128x | |
# 26 "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/x86_64-linux-gnu/bits/math-vector.h" 2 3 4 | |
# 41 "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/math.h" 2 3 4 | |
#define HUGE_VAL (__builtin_huge_val ()) | |
# 59 "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/math.h" 3 4 | |
#define HUGE_VALF (__builtin_huge_valf ()) | |
#define HUGE_VALL (__builtin_huge_vall ()) | |
# 70 "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/math.h" 3 4 | |
#define HUGE_VAL_F32 (__builtin_huge_valf32 ()) | |
#define HUGE_VAL_F64 (__builtin_huge_valf64 ()) | |
#define HUGE_VAL_F32X (__builtin_huge_valf32x ()) | |
#define HUGE_VAL_F64X (__builtin_huge_valf64x ()) | |
#define INFINITY (__builtin_inff ()) | |
#define NAN (__builtin_nanf ("")) | |
# 110 "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/math.h" 3 4 | |
#define SNANF (__builtin_nansf ("")) | |
#define SNAN (__builtin_nans ("")) | |
#define SNANL (__builtin_nansl ("")) | |
#define SNANF32 (__builtin_nansf32 ("")) | |
#define SNANF64 (__builtin_nansf64 ("")) | |
#define SNANF32X (__builtin_nansf32x ("")) | |
#define SNANF64X (__builtin_nansf64x ("")) | |
# 1 "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/x86_64-linux-gnu/bits/flt-eval-method.h" 1 3 4 | |
# 27 "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/x86_64-linux-gnu/bits/flt-eval-method.h" 3 4 | |
#define __GLIBC_FLT_EVAL_METHOD __FLT_EVAL_METHOD__ | |
# 139 "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/math.h" 2 3 4 | |
# 149 "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/math.h" 3 4 | |
typedef float float_t; | |
typedef double double_t; | |
# 190 "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/math.h" 3 4 | |
# 1 "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/x86_64-linux-gnu/bits/fp-logb.h" 1 3 4 | |
# 23 "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/x86_64-linux-gnu/bits/fp-logb.h" 3 4 | |
#define __FP_LOGB0_IS_MIN 1 | |
#define __FP_LOGBNAN_IS_MIN 1 | |
# 191 "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/math.h" 2 3 4 | |
#define FP_ILOGB0 (-2147483647 - 1) | |
#define FP_ILOGBNAN (-2147483647 - 1) | |
#define __FP_LONG_MAX 0x7fffffffffffffffL | |
#define FP_LLOGB0 (-__FP_LONG_MAX - 1) | |
#define FP_LLOGBNAN (-__FP_LONG_MAX - 1) | |
# 233 "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/math.h" 3 4 | |
# 1 "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/x86_64-linux-gnu/bits/fp-fast.h" 1 3 4 | |
# 234 "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/math.h" 2 3 4 | |
enum | |
{ | |
FP_INT_UPWARD = | |
#define FP_INT_UPWARD 0 | |
0, | |
FP_INT_DOWNWARD = | |
#define FP_INT_DOWNWARD 1 | |
1, | |
FP_INT_TOWARDZERO = | |
#define FP_INT_TOWARDZERO 2 | |
2, | |
FP_INT_TONEARESTFROMZERO = | |
#define FP_INT_TONEARESTFROMZERO 3 | |
3, | |
FP_INT_TONEAREST = | |
#define FP_INT_TONEAREST 4 | |
4, | |
}; | |
#define __SIMD_DECL(function) __CONCAT (__DECL_SIMD_, function) | |
#define __MATHCALL_VEC(function,suffix,args) __SIMD_DECL (__MATH_PRECNAME (function, suffix)) __MATHCALL (function, suffix, args) | |
#define __MATHDECL_VEC(type,function,suffix,args) __SIMD_DECL (__MATH_PRECNAME (function, suffix)) __MATHDECL(type, function,suffix, args) | |
#define __MATHCALL(function,suffix,args) __MATHDECL (_Mdouble_,function,suffix, args) | |
#define __MATHDECL(type,function,suffix,args) __MATHDECL_1(type, function,suffix, args); __MATHDECL_1(type, __CONCAT(__,function),suffix, args) | |
#define __MATHCALLX(function,suffix,args,attrib) __MATHDECLX (_Mdouble_,function,suffix, args, attrib) | |
#define __MATHDECLX(type,function,suffix,args,attrib) __MATHDECL_1(type, function,suffix, args) __attribute__ (attrib); __MATHDECL_1(type, __CONCAT(__,function),suffix, args) __attribute__ (attrib) | |
#define __MATHDECL_1(type,function,suffix,args) extern type __MATH_PRECNAME(function,suffix) args __THROW | |
#define _Mdouble_ double | |
#define __MATH_PRECNAME(name,r) __CONCAT(name,r) | |
#define __MATH_DECLARING_DOUBLE 1 | |
#define __MATH_DECLARING_FLOATN 0 | |
# 1 "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/x86_64-linux-gnu/bits/mathcalls-helper-functions.h" 1 3 4 | |
# 21 "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/x86_64-linux-gnu/bits/mathcalls-helper-functions.h" 3 4 | |
extern int __fpclassify (double __value) throw () | |
__attribute__ ((__const__)); | |
extern int __signbit (double __value) throw () | |
__attribute__ ((__const__)); | |
extern int __isinf (double __value) throw () __attribute__ ((__const__)); | |
extern int __finite (double __value) throw () __attribute__ ((__const__)); | |
extern int __isnan (double __value) throw () __attribute__ ((__const__)); | |
extern int __iseqsig (double __x, double __y) throw (); | |
extern int __issignaling (double __value) throw () | |
__attribute__ ((__const__)); | |
# 290 "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/math.h" 2 3 4 | |
# 1 "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/x86_64-linux-gnu/bits/mathcalls.h" 1 3 4 | |
# 53 "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/x86_64-linux-gnu/bits/mathcalls.h" 3 4 | |
extern double acos (double __x) throw (); extern double __acos (double __x) throw (); | |
extern double asin (double __x) throw (); extern double __asin (double __x) throw (); | |
extern double atan (double __x) throw (); extern double __atan (double __x) throw (); | |
extern double atan2 (double __y, double __x) throw (); extern double __atan2 (double __y, double __x) throw (); | |
extern double cos (double __x) throw (); extern double __cos (double __x) throw (); | |
extern double sin (double __x) throw (); extern double __sin (double __x) throw (); | |
extern double tan (double __x) throw (); extern double __tan (double __x) throw (); | |
extern double cosh (double __x) throw (); extern double __cosh (double __x) throw (); | |
extern double sinh (double __x) throw (); extern double __sinh (double __x) throw (); | |
extern double tanh (double __x) throw (); extern double __tanh (double __x) throw (); | |
extern void sincos (double __x, double *__sinx, double *__cosx) throw (); extern void __sincos (double __x, double *__sinx, double *__cosx) throw (); | |
extern double acosh (double __x) throw (); extern double __acosh (double __x) throw (); | |
extern double asinh (double __x) throw (); extern double __asinh (double __x) throw (); | |
extern double atanh (double __x) throw (); extern double __atanh (double __x) throw (); | |
extern double exp (double __x) throw (); extern double __exp (double __x) throw (); | |
extern double frexp (double __x, int *__exponent) throw (); extern double __frexp (double __x, int *__exponent) throw (); | |
extern double ldexp (double __x, int __exponent) throw (); extern double __ldexp (double __x, int __exponent) throw (); | |
extern double log (double __x) throw (); extern double __log (double __x) throw (); | |
extern double log10 (double __x) throw (); extern double __log10 (double __x) throw (); | |
extern double modf (double __x, double *__iptr) throw (); extern double __modf (double __x, double *__iptr) throw () __attribute__ ((__nonnull__ (2))); | |
extern double exp10 (double __x) throw (); extern double __exp10 (double __x) throw (); | |
extern double expm1 (double __x) throw (); extern double __expm1 (double __x) throw (); | |
extern double log1p (double __x) throw (); extern double __log1p (double __x) throw (); | |
extern double logb (double __x) throw (); extern double __logb (double __x) throw (); | |
extern double exp2 (double __x) throw (); extern double __exp2 (double __x) throw (); | |
extern double log2 (double __x) throw (); extern double __log2 (double __x) throw (); | |
extern double pow (double __x, double __y) throw (); extern double __pow (double __x, double __y) throw (); | |
extern double sqrt (double __x) throw (); extern double __sqrt (double __x) throw (); | |
extern double hypot (double __x, double __y) throw (); extern double __hypot (double __x, double __y) throw (); | |
extern double cbrt (double __x) throw (); extern double __cbrt (double __x) throw (); | |
extern double ceil (double __x) throw () __attribute__ ((__const__)); extern double __ceil (double __x) throw () __attribute__ ((__const__)); | |
extern double fabs (double __x) throw () __attribute__ ((__const__)); extern double __fabs (double __x) throw () __attribute__ ((__const__)); | |
extern double floor (double __x) throw () __attribute__ ((__const__)); extern double __floor (double __x) throw () __attribute__ ((__const__)); | |
extern double fmod (double __x, double __y) throw (); extern double __fmod (double __x, double __y) throw (); | |
# 182 "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/x86_64-linux-gnu/bits/mathcalls.h" 3 4 | |
extern int finite (double __value) throw () __attribute__ ((__const__)); | |
extern double drem (double __x, double __y) throw (); extern double __drem (double __x, double __y) throw (); | |
extern double significand (double __x) throw (); extern double __significand (double __x) throw (); | |
extern double copysign (double __x, double __y) throw () __attribute__ ((__const__)); extern double __copysign (double __x, double __y) throw () __attribute__ ((__const__)); | |
extern double nan (const char *__tagb) throw (); extern double __nan (const char *__tagb) throw (); | |
# 217 "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/x86_64-linux-gnu/bits/mathcalls.h" 3 4 | |
extern double j0 (double) throw (); extern double __j0 (double) throw (); | |
extern double j1 (double) throw (); extern double __j1 (double) throw (); | |
extern double jn (int, double) throw (); extern double __jn (int, double) throw (); | |
extern double y0 (double) throw (); extern double __y0 (double) throw (); | |
extern double y1 (double) throw (); extern double __y1 (double) throw (); | |
extern double yn (int, double) throw (); extern double __yn (int, double) throw (); | |
extern double erf (double) throw (); extern double __erf (double) throw (); | |
extern double erfc (double) throw (); extern double __erfc (double) throw (); | |
extern double lgamma (double) throw (); extern double __lgamma (double) throw (); | |
extern double tgamma (double) throw (); extern double __tgamma (double) throw (); | |
extern double gamma (double) throw (); extern double __gamma (double) throw (); | |
extern double lgamma_r (double, int *__signgamp) throw (); extern double __lgamma_r (double, int *__signgamp) throw (); | |
extern double rint (double __x) throw (); extern double __rint (double __x) throw (); | |
extern double nextafter (double __x, double __y) throw (); extern double __nextafter (double __x, double __y) throw (); | |
extern double nexttoward (double __x, long double __y) throw (); extern double __nexttoward (double __x, long double __y) throw (); | |
extern double nextdown (double __x) throw (); extern double __nextdown (double __x) throw (); | |
extern double nextup (double __x) throw (); extern double __nextup (double __x) throw (); | |
extern double remainder (double __x, double __y) throw (); extern double __remainder (double __x, double __y) throw (); | |
extern double scalbn (double __x, int __n) throw (); extern double __scalbn (double __x, int __n) throw (); | |
extern int ilogb (double __x) throw (); extern int __ilogb (double __x) throw (); | |
extern long int llogb (double __x) throw (); extern long int __llogb (double __x) throw (); | |
extern double scalbln (double __x, long int __n) throw (); extern double __scalbln (double __x, long int __n) throw (); | |
extern double nearbyint (double __x) throw (); extern double __nearbyint (double __x) throw (); | |
extern double round (double __x) throw () __attribute__ ((__const__)); extern double __round (double __x) throw () __attribute__ ((__const__)); | |
extern double trunc (double __x) throw () __attribute__ ((__const__)); extern double __trunc (double __x) throw () __attribute__ ((__const__)); | |
extern double remquo (double __x, double __y, int *__quo) throw (); extern double __remquo (double __x, double __y, int *__quo) throw (); | |
extern long int lrint (double __x) throw (); extern long int __lrint (double __x) throw (); | |
__extension__ | |
extern long long int llrint (double __x) throw (); extern long long int __llrint (double __x) throw (); | |
extern long int lround (double __x) throw (); extern long int __lround (double __x) throw (); | |
__extension__ | |
extern long long int llround (double __x) throw (); extern long long int __llround (double __x) throw (); | |
extern double fdim (double __x, double __y) throw (); extern double __fdim (double __x, double __y) throw (); | |
extern double fmax (double __x, double __y) throw () __attribute__ ((__const__)); extern double __fmax (double __x, double __y) throw () __attribute__ ((__const__)); | |
extern double fmin (double __x, double __y) throw () __attribute__ ((__const__)); extern double __fmin (double __x, double __y) throw () __attribute__ ((__const__)); | |
extern double fma (double __x, double __y, double __z) throw (); extern double __fma (double __x, double __y, double __z) throw (); | |
extern double roundeven (double __x) throw () __attribute__ ((__const__)); extern double __roundeven (double __x) throw () __attribute__ ((__const__)); | |
extern __intmax_t fromfp (double __x, int __round, unsigned int __width) throw (); extern __intmax_t __fromfp (double __x, int __round, unsigned int __width) throw (); | |
extern __uintmax_t ufromfp (double __x, int __round, unsigned int __width) throw (); extern __uintmax_t __ufromfp (double __x, int __round, unsigned int __width) throw (); | |
extern __intmax_t fromfpx (double __x, int __round, unsigned int __width) throw (); extern __intmax_t __fromfpx (double __x, int __round, unsigned int __width) throw (); | |
extern __uintmax_t ufromfpx (double __x, int __round, unsigned int __width) throw (); extern __uintmax_t __ufromfpx (double __x, int __round, unsigned int __width) throw (); | |
extern double fmaxmag (double __x, double __y) throw () __attribute__ ((__const__)); extern double __fmaxmag (double __x, double __y) throw () __attribute__ ((__const__)); | |
extern double fminmag (double __x, double __y) throw () __attribute__ ((__const__)); extern double __fminmag (double __x, double __y) throw () __attribute__ ((__const__)); | |
extern int canonicalize (double *__cx, const double *__x) throw (); | |
extern int totalorder (const double *__x, const double *__y) throw () | |
__attribute__ ((__pure__)); | |
extern int totalordermag (const double *__x, const double *__y) throw () | |
__attribute__ ((__pure__)); | |
extern double getpayload (const double *__x) throw (); extern double __getpayload (const double *__x) throw (); | |
extern int setpayload (double *__x, double __payload) throw (); | |
extern int setpayloadsig (double *__x, double __payload) throw (); | |
extern double scalb (double __x, double __n) throw (); extern double __scalb (double __x, double __n) throw (); | |
# 291 "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/math.h" 2 3 4 | |
#undef _Mdouble_ | |
#undef __MATH_PRECNAME | |
#undef __MATH_DECLARING_DOUBLE | |
#undef __MATH_DECLARING_FLOATN | |
#define _Mdouble_ float | |
#define __MATH_PRECNAME(name,r) name##f##r | |
#define __MATH_DECLARING_DOUBLE 0 | |
#define __MATH_DECLARING_FLOATN 0 | |
# 1 "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/x86_64-linux-gnu/bits/mathcalls-helper-functions.h" 1 3 4 | |
# 21 "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/x86_64-linux-gnu/bits/mathcalls-helper-functions.h" 3 4 | |
extern int __fpclassifyf (float __value) throw () | |
__attribute__ ((__const__)); | |
extern int __signbitf (float __value) throw () | |
__attribute__ ((__const__)); | |
extern int __isinff (float __value) throw () __attribute__ ((__const__)); | |
extern int __finitef (float __value) throw () __attribute__ ((__const__)); | |
extern int __isnanf (float __value) throw () __attribute__ ((__const__)); | |
extern int __iseqsigf (float __x, float __y) throw (); | |
extern int __issignalingf (float __value) throw () | |
__attribute__ ((__const__)); | |
# 307 "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/math.h" 2 3 4 | |
# 1 "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/x86_64-linux-gnu/bits/mathcalls.h" 1 3 4 | |
# 53 "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/x86_64-linux-gnu/bits/mathcalls.h" 3 4 | |
extern float acosf (float __x) throw (); extern float __acosf (float __x) throw (); | |
extern float asinf (float __x) throw (); extern float __asinf (float __x) throw (); | |
extern float atanf (float __x) throw (); extern float __atanf (float __x) throw (); | |
extern float atan2f (float __y, float __x) throw (); extern float __atan2f (float __y, float __x) throw (); | |
extern float cosf (float __x) throw (); extern float __cosf (float __x) throw (); | |
extern float sinf (float __x) throw (); extern float __sinf (float __x) throw (); | |
extern float tanf (float __x) throw (); extern float __tanf (float __x) throw (); | |
extern float coshf (float __x) throw (); extern float __coshf (float __x) throw (); | |
extern float sinhf (float __x) throw (); extern float __sinhf (float __x) throw (); | |
extern float tanhf (float __x) throw (); extern float __tanhf (float __x) throw (); | |
extern void sincosf (float __x, float *__sinx, float *__cosx) throw (); extern void __sincosf (float __x, float *__sinx, float *__cosx) throw (); | |
extern float acoshf (float __x) throw (); extern float __acoshf (float __x) throw (); | |
extern float asinhf (float __x) throw (); extern float __asinhf (float __x) throw (); | |
extern float atanhf (float __x) throw (); extern float __atanhf (float __x) throw (); | |
extern float expf (float __x) throw (); extern float __expf (float __x) throw (); | |
extern float frexpf (float __x, int *__exponent) throw (); extern float __frexpf (float __x, int *__exponent) throw (); | |
extern float ldexpf (float __x, int __exponent) throw (); extern float __ldexpf (float __x, int __exponent) throw (); | |
extern float logf (float __x) throw (); extern float __logf (float __x) throw (); | |
extern float log10f (float __x) throw (); extern float __log10f (float __x) throw (); | |
extern float modff (float __x, float *__iptr) throw (); extern float __modff (float __x, float *__iptr) throw () __attribute__ ((__nonnull__ (2))); | |
extern float exp10f (float __x) throw (); extern float __exp10f (float __x) throw (); | |
extern float expm1f (float __x) throw (); extern float __expm1f (float __x) throw (); | |
extern float log1pf (float __x) throw (); extern float __log1pf (float __x) throw (); | |
extern float logbf (float __x) throw (); extern float __logbf (float __x) throw (); | |
extern float exp2f (float __x) throw (); extern float __exp2f (float __x) throw (); | |
extern float log2f (float __x) throw (); extern float __log2f (float __x) throw (); | |
extern float powf (float __x, float __y) throw (); extern float __powf (float __x, float __y) throw (); | |
extern float sqrtf (float __x) throw (); extern float __sqrtf (float __x) throw (); | |
extern float hypotf (float __x, float __y) throw (); extern float __hypotf (float __x, float __y) throw (); | |
extern float cbrtf (float __x) throw (); extern float __cbrtf (float __x) throw (); | |
extern float ceilf (float __x) throw () __attribute__ ((__const__)); extern float __ceilf (float __x) throw () __attribute__ ((__const__)); | |
extern float fabsf (float __x) throw () __attribute__ ((__const__)); extern float __fabsf (float __x) throw () __attribute__ ((__const__)); | |
extern float floorf (float __x) throw () __attribute__ ((__const__)); extern float __floorf (float __x) throw () __attribute__ ((__const__)); | |
extern float fmodf (float __x, float __y) throw (); extern float __fmodf (float __x, float __y) throw (); | |
# 177 "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/x86_64-linux-gnu/bits/mathcalls.h" 3 4 | |
extern int isinff (float __value) throw () __attribute__ ((__const__)); | |
extern int finitef (float __value) throw () __attribute__ ((__const__)); | |
extern float dremf (float __x, float __y) throw (); extern float __dremf (float __x, float __y) throw (); | |
extern float significandf (float __x) throw (); extern float __significandf (float __x) throw (); | |
extern float copysignf (float __x, float __y) throw () __attribute__ ((__const__)); extern float __copysignf (float __x, float __y) throw () __attribute__ ((__const__)); | |
extern float nanf (const char *__tagb) throw (); extern float __nanf (const char *__tagb) throw (); | |
# 211 "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/x86_64-linux-gnu/bits/mathcalls.h" 3 4 | |
extern int isnanf (float __value) throw () __attribute__ ((__const__)); | |
extern float j0f (float) throw (); extern float __j0f (float) throw (); | |
extern float j1f (float) throw (); extern float __j1f (float) throw (); | |
extern float jnf (int, float) throw (); extern float __jnf (int, float) throw (); | |
extern float y0f (float) throw (); extern float __y0f (float) throw (); | |
extern float y1f (float) throw (); extern float __y1f (float) throw (); | |
extern float ynf (int, float) throw (); extern float __ynf (int, float) throw (); | |
extern float erff (float) throw (); extern float __erff (float) throw (); | |
extern float erfcf (float) throw (); extern float __erfcf (float) throw (); | |
extern float lgammaf (float) throw (); extern float __lgammaf (float) throw (); | |
extern float tgammaf (float) throw (); extern float __tgammaf (float) throw (); | |
extern float gammaf (float) throw (); extern float __gammaf (float) throw (); | |
extern float lgammaf_r (float, int *__signgamp) throw (); extern float __lgammaf_r (float, int *__signgamp) throw (); | |
extern float rintf (float __x) throw (); extern float __rintf (float __x) throw (); | |
extern float nextafterf (float __x, float __y) throw (); extern float __nextafterf (float __x, float __y) throw (); | |
extern float nexttowardf (float __x, long double __y) throw (); extern float __nexttowardf (float __x, long double __y) throw (); | |
extern float nextdownf (float __x) throw (); extern float __nextdownf (float __x) throw (); | |
extern float nextupf (float __x) throw (); extern float __nextupf (float __x) throw (); | |
extern float remainderf (float __x, float __y) throw (); extern float __remainderf (float __x, float __y) throw (); | |
extern float scalbnf (float __x, int __n) throw (); extern float __scalbnf (float __x, int __n) throw (); | |
extern int ilogbf (float __x) throw (); extern int __ilogbf (float __x) throw (); | |
extern long int llogbf (float __x) throw (); extern long int __llogbf (float __x) throw (); | |
extern float scalblnf (float __x, long int __n) throw (); extern float __scalblnf (float __x, long int __n) throw (); | |
extern float nearbyintf (float __x) throw (); extern float __nearbyintf (float __x) throw (); | |
extern float roundf (float __x) throw () __attribute__ ((__const__)); extern float __roundf (float __x) throw () __attribute__ ((__const__)); | |
extern float truncf (float __x) throw () __attribute__ ((__const__)); extern float __truncf (float __x) throw () __attribute__ ((__const__)); | |
extern float remquof (float __x, float __y, int *__quo) throw (); extern float __remquof (float __x, float __y, int *__quo) throw (); | |
extern long int lrintf (float __x) throw (); extern long int __lrintf (float __x) throw (); | |
__extension__ | |
extern long long int llrintf (float __x) throw (); extern long long int __llrintf (float __x) throw (); | |
extern long int lroundf (float __x) throw (); extern long int __lroundf (float __x) throw (); | |
__extension__ | |
extern long long int llroundf (float __x) throw (); extern long long int __llroundf (float __x) throw (); | |
extern float fdimf (float __x, float __y) throw (); extern float __fdimf (float __x, float __y) throw (); | |
extern float fmaxf (float __x, float __y) throw () __attribute__ ((__const__)); extern float __fmaxf (float __x, float __y) throw () __attribute__ ((__const__)); | |
extern float fminf (float __x, float __y) throw () __attribute__ ((__const__)); extern float __fminf (float __x, float __y) throw () __attribute__ ((__const__)); | |
extern float fmaf (float __x, float __y, float __z) throw (); extern float __fmaf (float __x, float __y, float __z) throw (); | |
extern float roundevenf (float __x) throw () __attribute__ ((__const__)); extern float __roundevenf (float __x) throw () __attribute__ ((__const__)); | |
extern __intmax_t fromfpf (float __x, int __round, unsigned int __width) throw (); extern __intmax_t __fromfpf (float __x, int __round, unsigned int __width) throw (); | |
extern __uintmax_t ufromfpf (float __x, int __round, unsigned int __width) throw (); extern __uintmax_t __ufromfpf (float __x, int __round, unsigned int __width) throw (); | |
extern __intmax_t fromfpxf (float __x, int __round, unsigned int __width) throw (); extern __intmax_t __fromfpxf (float __x, int __round, unsigned int __width) throw (); | |
extern __uintmax_t ufromfpxf (float __x, int __round, unsigned int __width) throw (); extern __uintmax_t __ufromfpxf (float __x, int __round, unsigned int __width) throw (); | |
extern float fmaxmagf (float __x, float __y) throw () __attribute__ ((__const__)); extern float __fmaxmagf (float __x, float __y) throw () __attribute__ ((__const__)); | |
extern float fminmagf (float __x, float __y) throw () __attribute__ ((__const__)); extern float __fminmagf (float __x, float __y) throw () __attribute__ ((__const__)); | |
extern int canonicalizef (float *__cx, const float *__x) throw (); | |
extern int totalorderf (const float *__x, const float *__y) throw () | |
__attribute__ ((__pure__)); | |
extern int totalordermagf (const float *__x, const float *__y) throw () | |
__attribute__ ((__pure__)); | |
extern float getpayloadf (const float *__x) throw (); extern float __getpayloadf (const float *__x) throw (); | |
extern int setpayloadf (float *__x, float __payload) throw (); | |
extern int setpayloadsigf (float *__x, float __payload) throw (); | |
extern float scalbf (float __x, float __n) throw (); extern float __scalbf (float __x, float __n) throw (); | |
# 308 "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/math.h" 2 3 4 | |
#undef _Mdouble_ | |
#undef __MATH_PRECNAME | |
#undef __MATH_DECLARING_DOUBLE | |
#undef __MATH_DECLARING_FLOATN | |
# 344 "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/math.h" 3 4 | |
#define _Mdouble_ long double | |
#define __MATH_PRECNAME(name,r) name##l##r | |
#define __MATH_DECLARING_DOUBLE 0 | |
#define __MATH_DECLARING_FLOATN 0 | |
#define __MATH_DECLARE_LDOUBLE 1 | |
# 1 "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/x86_64-linux-gnu/bits/mathcalls-helper-functions.h" 1 3 4 | |
# 21 "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/x86_64-linux-gnu/bits/mathcalls-helper-functions.h" 3 4 | |
extern int __fpclassifyl (long double __value) throw () | |
__attribute__ ((__const__)); | |
extern int __signbitl (long double __value) throw () | |
__attribute__ ((__const__)); | |
extern int __isinfl (long double __value) throw () __attribute__ ((__const__)); | |
extern int __finitel (long double __value) throw () __attribute__ ((__const__)); | |
extern int __isnanl (long double __value) throw () __attribute__ ((__const__)); | |
extern int __iseqsigl (long double __x, long double __y) throw (); | |
extern int __issignalingl (long double __value) throw () | |
__attribute__ ((__const__)); | |
# 350 "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/math.h" 2 3 4 | |
# 1 "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/x86_64-linux-gnu/bits/mathcalls.h" 1 3 4 | |
# 53 "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/x86_64-linux-gnu/bits/mathcalls.h" 3 4 | |
extern long double acosl (long double __x) throw (); extern long double __acosl (long double __x) throw (); | |
extern long double asinl (long double __x) throw (); extern long double __asinl (long double __x) throw (); | |
extern long double atanl (long double __x) throw (); extern long double __atanl (long double __x) throw (); | |
extern long double atan2l (long double __y, long double __x) throw (); extern long double __atan2l (long double __y, long double __x) throw (); | |
extern long double cosl (long double __x) throw (); extern long double __cosl (long double __x) throw (); | |
extern long double sinl (long double __x) throw (); extern long double __sinl (long double __x) throw (); | |
extern long double tanl (long double __x) throw (); extern long double __tanl (long double __x) throw (); | |
extern long double coshl (long double __x) throw (); extern long double __coshl (long double __x) throw (); | |
extern long double sinhl (long double __x) throw (); extern long double __sinhl (long double __x) throw (); | |
extern long double tanhl (long double __x) throw (); extern long double __tanhl (long double __x) throw (); | |
extern void sincosl (long double __x, long double *__sinx, long double *__cosx) throw (); extern void __sincosl (long double __x, long double *__sinx, long double *__cosx) throw (); | |
extern long double acoshl (long double __x) throw (); extern long double __acoshl (long double __x) throw (); | |
extern long double asinhl (long double __x) throw (); extern long double __asinhl (long double __x) throw (); | |
extern long double atanhl (long double __x) throw (); extern long double __atanhl (long double __x) throw (); | |
extern long double expl (long double __x) throw (); extern long double __expl (long double __x) throw (); | |
extern long double frexpl (long double __x, int *__exponent) throw (); extern long double __frexpl (long double __x, int *__exponent) throw (); | |
extern long double ldexpl (long double __x, int __exponent) throw (); extern long double __ldexpl (long double __x, int __exponent) throw (); | |
extern long double logl (long double __x) throw (); extern long double __logl (long double __x) throw (); | |
extern long double log10l (long double __x) throw (); extern long double __log10l (long double __x) throw (); | |
extern long double modfl (long double __x, long double *__iptr) throw (); extern long double __modfl (long double __x, long double *__iptr) throw () __attribute__ ((__nonnull__ (2))); | |
extern long double exp10l (long double __x) throw (); extern long double __exp10l (long double __x) throw (); | |
extern long double expm1l (long double __x) throw (); extern long double __expm1l (long double __x) throw (); | |
extern long double log1pl (long double __x) throw (); extern long double __log1pl (long double __x) throw (); | |
extern long double logbl (long double __x) throw (); extern long double __logbl (long double __x) throw (); | |
extern long double exp2l (long double __x) throw (); extern long double __exp2l (long double __x) throw (); | |
extern long double log2l (long double __x) throw (); extern long double __log2l (long double __x) throw (); | |
extern long double powl (long double __x, long double __y) throw (); extern long double __powl (long double __x, long double __y) throw (); | |
extern long double sqrtl (long double __x) throw (); extern long double __sqrtl (long double __x) throw (); | |
extern long double hypotl (long double __x, long double __y) throw (); extern long double __hypotl (long double __x, long double __y) throw (); | |
extern long double cbrtl (long double __x) throw (); extern long double __cbrtl (long double __x) throw (); | |
extern long double ceill (long double __x) throw () __attribute__ ((__const__)); extern long double __ceill (long double __x) throw () __attribute__ ((__const__)); | |
extern long double fabsl (long double __x) throw () __attribute__ ((__const__)); extern long double __fabsl (long double __x) throw () __attribute__ ((__const__)); | |
extern long double floorl (long double __x) throw () __attribute__ ((__const__)); extern long double __floorl (long double __x) throw () __attribute__ ((__const__)); | |
extern long double fmodl (long double __x, long double __y) throw (); extern long double __fmodl (long double __x, long double __y) throw (); | |
# 177 "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/x86_64-linux-gnu/bits/mathcalls.h" 3 4 | |
extern int isinfl (long double __value) throw () __attribute__ ((__const__)); | |
extern int finitel (long double __value) throw () __attribute__ ((__const__)); | |
extern long double dreml (long double __x, long double __y) throw (); extern long double __dreml (long double __x, long double __y) throw (); | |
extern long double significandl (long double __x) throw (); extern long double __significandl (long double __x) throw (); | |
extern long double copysignl (long double __x, long double __y) throw () __attribute__ ((__const__)); extern long double __copysignl (long double __x, long double __y) throw () __attribute__ ((__const__)); | |
extern long double nanl (const char *__tagb) throw (); extern long double __nanl (const char *__tagb) throw (); | |
# 211 "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/x86_64-linux-gnu/bits/mathcalls.h" 3 4 | |
extern int isnanl (long double __value) throw () __attribute__ ((__const__)); | |
extern long double j0l (long double) throw (); extern long double __j0l (long double) throw (); | |
extern long double j1l (long double) throw (); extern long double __j1l (long double) throw (); | |
extern long double jnl (int, long double) throw (); extern long double __jnl (int, long double) throw (); | |
extern long double y0l (long double) throw (); extern long double __y0l (long double) throw (); | |
extern long double y1l (long double) throw (); extern long double __y1l (long double) throw (); | |
extern long double ynl (int, long double) throw (); extern long double __ynl (int, long double) throw (); | |
extern long double erfl (long double) throw (); extern long double __erfl (long double) throw (); | |
extern long double erfcl (long double) throw (); extern long double __erfcl (long double) throw (); | |
extern long double lgammal (long double) throw (); extern long double __lgammal (long double) throw (); | |
extern long double tgammal (long double) throw (); extern long double __tgammal (long double) throw (); | |
extern long double gammal (long double) throw (); extern long double __gammal (long double) throw (); | |
extern long double lgammal_r (long double, int *__signgamp) throw (); extern long double __lgammal_r (long double, int *__signgamp) throw (); | |
extern long double rintl (long double __x) throw (); extern long double __rintl (long double __x) throw (); | |
extern long double nextafterl (long double __x, long double __y) throw (); extern long double __nextafterl (long double __x, long double __y) throw (); | |
extern long double nexttowardl (long double __x, long double __y) throw (); extern long double __nexttowardl (long double __x, long double __y) throw (); | |
extern long double nextdownl (long double __x) throw (); extern long double __nextdownl (long double __x) throw (); | |
extern long double nextupl (long double __x) throw (); extern long double __nextupl (long double __x) throw (); | |
extern long double remainderl (long double __x, long double __y) throw (); extern long double __remainderl (long double __x, long double __y) throw (); | |
extern long double scalbnl (long double __x, int __n) throw (); extern long double __scalbnl (long double __x, int __n) throw (); | |
extern int ilogbl (long double __x) throw (); extern int __ilogbl (long double __x) throw (); | |
extern long int llogbl (long double __x) throw (); extern long int __llogbl (long double __x) throw (); | |
extern long double scalblnl (long double __x, long int __n) throw (); extern long double __scalblnl (long double __x, long int __n) throw (); | |
extern long double nearbyintl (long double __x) throw (); extern long double __nearbyintl (long double __x) throw (); | |
extern long double roundl (long double __x) throw () __attribute__ ((__const__)); extern long double __roundl (long double __x) throw () __attribute__ ((__const__)); | |
extern long double truncl (long double __x) throw () __attribute__ ((__const__)); extern long double __truncl (long double __x) throw () __attribute__ ((__const__)); | |
extern long double remquol (long double __x, long double __y, int *__quo) throw (); extern long double __remquol (long double __x, long double __y, int *__quo) throw (); | |
extern long int lrintl (long double __x) throw (); extern long int __lrintl (long double __x) throw (); | |
__extension__ | |
extern long long int llrintl (long double __x) throw (); extern long long int __llrintl (long double __x) throw (); | |
extern long int lroundl (long double __x) throw (); extern long int __lroundl (long double __x) throw (); | |
__extension__ | |
extern long long int llroundl (long double __x) throw (); extern long long int __llroundl (long double __x) throw (); | |
extern long double fdiml (long double __x, long double __y) throw (); extern long double __fdiml (long double __x, long double __y) throw (); | |
extern long double fmaxl (long double __x, long double __y) throw () __attribute__ ((__const__)); extern long double __fmaxl (long double __x, long double __y) throw () __attribute__ ((__const__)); | |
extern long double fminl (long double __x, long double __y) throw () __attribute__ ((__const__)); extern long double __fminl (long double __x, long double __y) throw () __attribute__ ((__const__)); | |
extern long double fmal (long double __x, long double __y, long double __z) throw (); extern long double __fmal (long double __x, long double __y, long double __z) throw (); | |
extern long double roundevenl (long double __x) throw () __attribute__ ((__const__)); extern long double __roundevenl (long double __x) throw () __attribute__ ((__const__)); | |
extern __intmax_t fromfpl (long double __x, int __round, unsigned int __width) throw (); extern __intmax_t __fromfpl (long double __x, int __round, unsigned int __width) throw (); | |
extern __uintmax_t ufromfpl (long double __x, int __round, unsigned int __width) throw (); extern __uintmax_t __ufromfpl (long double __x, int __round, unsigned int __width) throw (); | |
extern __intmax_t fromfpxl (long double __x, int __round, unsigned int __width) throw (); extern __intmax_t __fromfpxl (long double __x, int __round, unsigned int __width) throw (); | |
extern __uintmax_t ufromfpxl (long double __x, int __round, unsigned int __width) throw (); extern __uintmax_t __ufromfpxl (long double __x, int __round, unsigned int __width) throw (); | |
extern long double fmaxmagl (long double __x, long double __y) throw () __attribute__ ((__const__)); extern long double __fmaxmagl (long double __x, long double __y) throw () __attribute__ ((__const__)); | |
extern long double fminmagl (long double __x, long double __y) throw () __attribute__ ((__const__)); extern long double __fminmagl (long double __x, long double __y) throw () __attribute__ ((__const__)); | |
extern int canonicalizel (long double *__cx, const long double *__x) throw (); | |
extern int totalorderl (const long double *__x, const long double *__y) throw () | |
__attribute__ ((__pure__)); | |
extern int totalordermagl (const long double *__x, const long double *__y) throw () | |
__attribute__ ((__pure__)); | |
extern long double getpayloadl (const long double *__x) throw (); extern long double __getpayloadl (const long double *__x) throw (); | |
extern int setpayloadl (long double *__x, long double __payload) throw (); | |
extern int setpayloadsigl (long double *__x, long double __payload) throw (); | |
extern long double scalbl (long double __x, long double __n) throw (); extern long double __scalbl (long double __x, long double __n) throw (); | |
# 351 "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/math.h" 2 3 4 | |
#undef _Mdouble_ | |
#undef __MATH_PRECNAME | |
#undef __MATH_DECLARING_DOUBLE | |
#undef __MATH_DECLARING_FLOATN | |
# 381 "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/math.h" 3 4 | |
#define _Mdouble_ _Float32 | |
#define __MATH_PRECNAME(name,r) name##f32##r | |
#define __MATH_DECLARING_DOUBLE 0 | |
#define __MATH_DECLARING_FLOATN 1 | |
# 1 "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/x86_64-linux-gnu/bits/mathcalls.h" 1 3 4 | |
# 53 "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/x86_64-linux-gnu/bits/mathcalls.h" 3 4 | |
extern _Float32 acosf32 (_Float32 __x) throw (); extern _Float32 __acosf32 (_Float32 __x) throw (); | |
extern _Float32 asinf32 (_Float32 __x) throw (); extern _Float32 __asinf32 (_Float32 __x) throw (); | |
extern _Float32 atanf32 (_Float32 __x) throw (); extern _Float32 __atanf32 (_Float32 __x) throw (); | |
extern _Float32 atan2f32 (_Float32 __y, _Float32 __x) throw (); extern _Float32 __atan2f32 (_Float32 __y, _Float32 __x) throw (); | |
extern _Float32 cosf32 (_Float32 __x) throw (); extern _Float32 __cosf32 (_Float32 __x) throw (); | |
extern _Float32 sinf32 (_Float32 __x) throw (); extern _Float32 __sinf32 (_Float32 __x) throw (); | |
extern _Float32 tanf32 (_Float32 __x) throw (); extern _Float32 __tanf32 (_Float32 __x) throw (); | |
extern _Float32 coshf32 (_Float32 __x) throw (); extern _Float32 __coshf32 (_Float32 __x) throw (); | |
extern _Float32 sinhf32 (_Float32 __x) throw (); extern _Float32 __sinhf32 (_Float32 __x) throw (); | |
extern _Float32 tanhf32 (_Float32 __x) throw (); extern _Float32 __tanhf32 (_Float32 __x) throw (); | |
extern void sincosf32 (_Float32 __x, _Float32 *__sinx, _Float32 *__cosx) throw (); extern void __sincosf32 (_Float32 __x, _Float32 *__sinx, _Float32 *__cosx) throw (); | |
extern _Float32 acoshf32 (_Float32 __x) throw (); extern _Float32 __acoshf32 (_Float32 __x) throw (); | |
extern _Float32 asinhf32 (_Float32 __x) throw (); extern _Float32 __asinhf32 (_Float32 __x) throw (); | |
extern _Float32 atanhf32 (_Float32 __x) throw (); extern _Float32 __atanhf32 (_Float32 __x) throw (); | |
extern _Float32 expf32 (_Float32 __x) throw (); extern _Float32 __expf32 (_Float32 __x) throw (); | |
extern _Float32 frexpf32 (_Float32 __x, int *__exponent) throw (); extern _Float32 __frexpf32 (_Float32 __x, int *__exponent) throw (); | |
extern _Float32 ldexpf32 (_Float32 __x, int __exponent) throw (); extern _Float32 __ldexpf32 (_Float32 __x, int __exponent) throw (); | |
extern _Float32 logf32 (_Float32 __x) throw (); extern _Float32 __logf32 (_Float32 __x) throw (); | |
extern _Float32 log10f32 (_Float32 __x) throw (); extern _Float32 __log10f32 (_Float32 __x) throw (); | |
extern _Float32 modff32 (_Float32 __x, _Float32 *__iptr) throw (); extern _Float32 __modff32 (_Float32 __x, _Float32 *__iptr) throw () __attribute__ ((__nonnull__ (2))); | |
extern _Float32 exp10f32 (_Float32 __x) throw (); extern _Float32 __exp10f32 (_Float32 __x) throw (); | |
extern _Float32 expm1f32 (_Float32 __x) throw (); extern _Float32 __expm1f32 (_Float32 __x) throw (); | |
extern _Float32 log1pf32 (_Float32 __x) throw (); extern _Float32 __log1pf32 (_Float32 __x) throw (); | |
extern _Float32 logbf32 (_Float32 __x) throw (); extern _Float32 __logbf32 (_Float32 __x) throw (); | |
extern _Float32 exp2f32 (_Float32 __x) throw (); extern _Float32 __exp2f32 (_Float32 __x) throw (); | |
extern _Float32 log2f32 (_Float32 __x) throw (); extern _Float32 __log2f32 (_Float32 __x) throw (); | |
extern _Float32 powf32 (_Float32 __x, _Float32 __y) throw (); extern _Float32 __powf32 (_Float32 __x, _Float32 __y) throw (); | |
extern _Float32 sqrtf32 (_Float32 __x) throw (); extern _Float32 __sqrtf32 (_Float32 __x) throw (); | |
extern _Float32 hypotf32 (_Float32 __x, _Float32 __y) throw (); extern _Float32 __hypotf32 (_Float32 __x, _Float32 __y) throw (); | |
extern _Float32 cbrtf32 (_Float32 __x) throw (); extern _Float32 __cbrtf32 (_Float32 __x) throw (); | |
extern _Float32 ceilf32 (_Float32 __x) throw () __attribute__ ((__const__)); extern _Float32 __ceilf32 (_Float32 __x) throw () __attribute__ ((__const__)); | |
extern _Float32 fabsf32 (_Float32 __x) throw () __attribute__ ((__const__)); extern _Float32 __fabsf32 (_Float32 __x) throw () __attribute__ ((__const__)); | |
extern _Float32 floorf32 (_Float32 __x) throw () __attribute__ ((__const__)); extern _Float32 __floorf32 (_Float32 __x) throw () __attribute__ ((__const__)); | |
extern _Float32 fmodf32 (_Float32 __x, _Float32 __y) throw (); extern _Float32 __fmodf32 (_Float32 __x, _Float32 __y) throw (); | |
# 196 "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/x86_64-linux-gnu/bits/mathcalls.h" 3 4 | |
extern _Float32 copysignf32 (_Float32 __x, _Float32 __y) throw () __attribute__ ((__const__)); extern _Float32 __copysignf32 (_Float32 __x, _Float32 __y) throw () __attribute__ ((__const__)); | |
extern _Float32 nanf32 (const char *__tagb) throw (); extern _Float32 __nanf32 (const char *__tagb) throw (); | |
# 217 "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/x86_64-linux-gnu/bits/mathcalls.h" 3 4 | |
extern _Float32 j0f32 (_Float32) throw (); extern _Float32 __j0f32 (_Float32) throw (); | |
extern _Float32 j1f32 (_Float32) throw (); extern _Float32 __j1f32 (_Float32) throw (); | |
extern _Float32 jnf32 (int, _Float32) throw (); extern _Float32 __jnf32 (int, _Float32) throw (); | |
extern _Float32 y0f32 (_Float32) throw (); extern _Float32 __y0f32 (_Float32) throw (); | |
extern _Float32 y1f32 (_Float32) throw (); extern _Float32 __y1f32 (_Float32) throw (); | |
extern _Float32 ynf32 (int, _Float32) throw (); extern _Float32 __ynf32 (int, _Float32) throw (); | |
extern _Float32 erff32 (_Float32) throw (); extern _Float32 __erff32 (_Float32) throw (); | |
extern _Float32 erfcf32 (_Float32) throw (); extern _Float32 __erfcf32 (_Float32) throw (); | |
extern _Float32 lgammaf32 (_Float32) throw (); extern _Float32 __lgammaf32 (_Float32) throw (); | |
extern _Float32 tgammaf32 (_Float32) throw (); extern _Float32 __tgammaf32 (_Float32) throw (); | |
# 249 "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/x86_64-linux-gnu/bits/mathcalls.h" 3 4 | |
extern _Float32 lgammaf32_r (_Float32, int *__signgamp) throw (); extern _Float32 __lgammaf32_r (_Float32, int *__signgamp) throw (); | |
extern _Float32 rintf32 (_Float32 __x) throw (); extern _Float32 __rintf32 (_Float32 __x) throw (); | |
extern _Float32 nextafterf32 (_Float32 __x, _Float32 __y) throw (); extern _Float32 __nextafterf32 (_Float32 __x, _Float32 __y) throw (); | |
extern _Float32 nextdownf32 (_Float32 __x) throw (); extern _Float32 __nextdownf32 (_Float32 __x) throw (); | |
extern _Float32 nextupf32 (_Float32 __x) throw (); extern _Float32 __nextupf32 (_Float32 __x) throw (); | |
extern _Float32 remainderf32 (_Float32 __x, _Float32 __y) throw (); extern _Float32 __remainderf32 (_Float32 __x, _Float32 __y) throw (); | |
extern _Float32 scalbnf32 (_Float32 __x, int __n) throw (); extern _Float32 __scalbnf32 (_Float32 __x, int __n) throw (); | |
extern int ilogbf32 (_Float32 __x) throw (); extern int __ilogbf32 (_Float32 __x) throw (); | |
extern long int llogbf32 (_Float32 __x) throw (); extern long int __llogbf32 (_Float32 __x) throw (); | |
extern _Float32 scalblnf32 (_Float32 __x, long int __n) throw (); extern _Float32 __scalblnf32 (_Float32 __x, long int __n) throw (); | |
extern _Float32 nearbyintf32 (_Float32 __x) throw (); extern _Float32 __nearbyintf32 (_Float32 __x) throw (); | |
extern _Float32 roundf32 (_Float32 __x) throw () __attribute__ ((__const__)); extern _Float32 __roundf32 (_Float32 __x) throw () __attribute__ ((__const__)); | |
extern _Float32 truncf32 (_Float32 __x) throw () __attribute__ ((__const__)); extern _Float32 __truncf32 (_Float32 __x) throw () __attribute__ ((__const__)); | |
extern _Float32 remquof32 (_Float32 __x, _Float32 __y, int *__quo) throw (); extern _Float32 __remquof32 (_Float32 __x, _Float32 __y, int *__quo) throw (); | |
extern long int lrintf32 (_Float32 __x) throw (); extern long int __lrintf32 (_Float32 __x) throw (); | |
__extension__ | |
extern long long int llrintf32 (_Float32 __x) throw (); extern long long int __llrintf32 (_Float32 __x) throw (); | |
extern long int lroundf32 (_Float32 __x) throw (); extern long int __lroundf32 (_Float32 __x) throw (); | |
__extension__ | |
extern long long int llroundf32 (_Float32 __x) throw (); extern long long int __llroundf32 (_Float32 __x) throw (); | |
extern _Float32 fdimf32 (_Float32 __x, _Float32 __y) throw (); extern _Float32 __fdimf32 (_Float32 __x, _Float32 __y) throw (); | |
extern _Float32 fmaxf32 (_Float32 __x, _Float32 __y) throw () __attribute__ ((__const__)); extern _Float32 __fmaxf32 (_Float32 __x, _Float32 __y) throw () __attribute__ ((__const__)); | |
extern _Float32 fminf32 (_Float32 __x, _Float32 __y) throw () __attribute__ ((__const__)); extern _Float32 __fminf32 (_Float32 __x, _Float32 __y) throw () __attribute__ ((__const__)); | |
extern _Float32 fmaf32 (_Float32 __x, _Float32 __y, _Float32 __z) throw (); extern _Float32 __fmaf32 (_Float32 __x, _Float32 __y, _Float32 __z) throw (); | |
extern _Float32 roundevenf32 (_Float32 __x) throw () __attribute__ ((__const__)); extern _Float32 __roundevenf32 (_Float32 __x) throw () __attribute__ ((__const__)); | |
extern __intmax_t fromfpf32 (_Float32 __x, int __round, unsigned int __width) throw (); extern __intmax_t __fromfpf32 (_Float32 __x, int __round, unsigned int __width) throw (); | |
extern __uintmax_t ufromfpf32 (_Float32 __x, int __round, unsigned int __width) throw (); extern __uintmax_t __ufromfpf32 (_Float32 __x, int __round, unsigned int __width) throw (); | |
extern __intmax_t fromfpxf32 (_Float32 __x, int __round, unsigned int __width) throw (); extern __intmax_t __fromfpxf32 (_Float32 __x, int __round, unsigned int __width) throw (); | |
extern __uintmax_t ufromfpxf32 (_Float32 __x, int __round, unsigned int __width) throw (); extern __uintmax_t __ufromfpxf32 (_Float32 __x, int __round, unsigned int __width) throw (); | |
extern _Float32 fmaxmagf32 (_Float32 __x, _Float32 __y) throw () __attribute__ ((__const__)); extern _Float32 __fmaxmagf32 (_Float32 __x, _Float32 __y) throw () __attribute__ ((__const__)); | |
extern _Float32 fminmagf32 (_Float32 __x, _Float32 __y) throw () __attribute__ ((__const__)); extern _Float32 __fminmagf32 (_Float32 __x, _Float32 __y) throw () __attribute__ ((__const__)); | |
extern int canonicalizef32 (_Float32 *__cx, const _Float32 *__x) throw (); | |
extern int totalorderf32 (const _Float32 *__x, const _Float32 *__y) throw () | |
__attribute__ ((__pure__)); | |
extern int totalordermagf32 (const _Float32 *__x, const _Float32 *__y) throw () | |
__attribute__ ((__pure__)); | |
extern _Float32 getpayloadf32 (const _Float32 *__x) throw (); extern _Float32 __getpayloadf32 (const _Float32 *__x) throw (); | |
extern int setpayloadf32 (_Float32 *__x, _Float32 __payload) throw (); | |
extern int setpayloadsigf32 (_Float32 *__x, _Float32 __payload) throw (); | |
# 390 "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/math.h" 2 3 4 | |
#undef _Mdouble_ | |
#undef __MATH_PRECNAME | |
#undef __MATH_DECLARING_DOUBLE | |
#undef __MATH_DECLARING_FLOATN | |
#define _Mdouble_ _Float64 | |
#define __MATH_PRECNAME(name,r) name##f64##r | |
#define __MATH_DECLARING_DOUBLE 0 | |
#define __MATH_DECLARING_FLOATN 1 | |
# 1 "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/x86_64-linux-gnu/bits/mathcalls.h" 1 3 4 | |
# 53 "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/x86_64-linux-gnu/bits/mathcalls.h" 3 4 | |
extern _Float64 acosf64 (_Float64 __x) throw (); extern _Float64 __acosf64 (_Float64 __x) throw (); | |
extern _Float64 asinf64 (_Float64 __x) throw (); extern _Float64 __asinf64 (_Float64 __x) throw (); | |
extern _Float64 atanf64 (_Float64 __x) throw (); extern _Float64 __atanf64 (_Float64 __x) throw (); | |
extern _Float64 atan2f64 (_Float64 __y, _Float64 __x) throw (); extern _Float64 __atan2f64 (_Float64 __y, _Float64 __x) throw (); | |
extern _Float64 cosf64 (_Float64 __x) throw (); extern _Float64 __cosf64 (_Float64 __x) throw (); | |
extern _Float64 sinf64 (_Float64 __x) throw (); extern _Float64 __sinf64 (_Float64 __x) throw (); | |
extern _Float64 tanf64 (_Float64 __x) throw (); extern _Float64 __tanf64 (_Float64 __x) throw (); | |
extern _Float64 coshf64 (_Float64 __x) throw (); extern _Float64 __coshf64 (_Float64 __x) throw (); | |
extern _Float64 sinhf64 (_Float64 __x) throw (); extern _Float64 __sinhf64 (_Float64 __x) throw (); | |
extern _Float64 tanhf64 (_Float64 __x) throw (); extern _Float64 __tanhf64 (_Float64 __x) throw (); | |
extern void sincosf64 (_Float64 __x, _Float64 *__sinx, _Float64 *__cosx) throw (); extern void __sincosf64 (_Float64 __x, _Float64 *__sinx, _Float64 *__cosx) throw (); | |
extern _Float64 acoshf64 (_Float64 __x) throw (); extern _Float64 __acoshf64 (_Float64 __x) throw (); | |
extern _Float64 asinhf64 (_Float64 __x) throw (); extern _Float64 __asinhf64 (_Float64 __x) throw (); | |
extern _Float64 atanhf64 (_Float64 __x) throw (); extern _Float64 __atanhf64 (_Float64 __x) throw (); | |
extern _Float64 expf64 (_Float64 __x) throw (); extern _Float64 __expf64 (_Float64 __x) throw (); | |
extern _Float64 frexpf64 (_Float64 __x, int *__exponent) throw (); extern _Float64 __frexpf64 (_Float64 __x, int *__exponent) throw (); | |
extern _Float64 ldexpf64 (_Float64 __x, int __exponent) throw (); extern _Float64 __ldexpf64 (_Float64 __x, int __exponent) throw (); | |
extern _Float64 logf64 (_Float64 __x) throw (); extern _Float64 __logf64 (_Float64 __x) throw (); | |
extern _Float64 log10f64 (_Float64 __x) throw (); extern _Float64 __log10f64 (_Float64 __x) throw (); | |
extern _Float64 modff64 (_Float64 __x, _Float64 *__iptr) throw (); extern _Float64 __modff64 (_Float64 __x, _Float64 *__iptr) throw () __attribute__ ((__nonnull__ (2))); | |
extern _Float64 exp10f64 (_Float64 __x) throw (); extern _Float64 __exp10f64 (_Float64 __x) throw (); | |
extern _Float64 expm1f64 (_Float64 __x) throw (); extern _Float64 __expm1f64 (_Float64 __x) throw (); | |
extern _Float64 log1pf64 (_Float64 __x) throw (); extern _Float64 __log1pf64 (_Float64 __x) throw (); | |
extern _Float64 logbf64 (_Float64 __x) throw (); extern _Float64 __logbf64 (_Float64 __x) throw (); | |
extern _Float64 exp2f64 (_Float64 __x) throw (); extern _Float64 __exp2f64 (_Float64 __x) throw (); | |
extern _Float64 log2f64 (_Float64 __x) throw (); extern _Float64 __log2f64 (_Float64 __x) throw (); | |
extern _Float64 powf64 (_Float64 __x, _Float64 __y) throw (); extern _Float64 __powf64 (_Float64 __x, _Float64 __y) throw (); | |
extern _Float64 sqrtf64 (_Float64 __x) throw (); extern _Float64 __sqrtf64 (_Float64 __x) throw (); | |
extern _Float64 hypotf64 (_Float64 __x, _Float64 __y) throw (); extern _Float64 __hypotf64 (_Float64 __x, _Float64 __y) throw (); | |
extern _Float64 cbrtf64 (_Float64 __x) throw (); extern _Float64 __cbrtf64 (_Float64 __x) throw (); | |
extern _Float64 ceilf64 (_Float64 __x) throw () __attribute__ ((__const__)); extern _Float64 __ceilf64 (_Float64 __x) throw () __attribute__ ((__const__)); | |
extern _Float64 fabsf64 (_Float64 __x) throw () __attribute__ ((__const__)); extern _Float64 __fabsf64 (_Float64 __x) throw () __attribute__ ((__const__)); | |
extern _Float64 floorf64 (_Float64 __x) throw () __attribute__ ((__const__)); extern _Float64 __floorf64 (_Float64 __x) throw () __attribute__ ((__const__)); | |
extern _Float64 fmodf64 (_Float64 __x, _Float64 __y) throw (); extern _Float64 __fmodf64 (_Float64 __x, _Float64 __y) throw (); | |
# 196 "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/x86_64-linux-gnu/bits/mathcalls.h" 3 4 | |
extern _Float64 copysignf64 (_Float64 __x, _Float64 __y) throw () __attribute__ ((__const__)); extern _Float64 __copysignf64 (_Float64 __x, _Float64 __y) throw () __attribute__ ((__const__)); | |
extern _Float64 nanf64 (const char *__tagb) throw (); extern _Float64 __nanf64 (const char *__tagb) throw (); | |
# 217 "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/x86_64-linux-gnu/bits/mathcalls.h" 3 4 | |
extern _Float64 j0f64 (_Float64) throw (); extern _Float64 __j0f64 (_Float64) throw (); | |
extern _Float64 j1f64 (_Float64) throw (); extern _Float64 __j1f64 (_Float64) throw (); | |
extern _Float64 jnf64 (int, _Float64) throw (); extern _Float64 __jnf64 (int, _Float64) throw (); | |
extern _Float64 y0f64 (_Float64) throw (); extern _Float64 __y0f64 (_Float64) throw (); | |
extern _Float64 y1f64 (_Float64) throw (); extern _Float64 __y1f64 (_Float64) throw (); | |
extern _Float64 ynf64 (int, _Float64) throw (); extern _Float64 __ynf64 (int, _Float64) throw (); | |
extern _Float64 erff64 (_Float64) throw (); extern _Float64 __erff64 (_Float64) throw (); | |
extern _Float64 erfcf64 (_Float64) throw (); extern _Float64 __erfcf64 (_Float64) throw (); | |
extern _Float64 lgammaf64 (_Float64) throw (); extern _Float64 __lgammaf64 (_Float64) throw (); | |
extern _Float64 tgammaf64 (_Float64) throw (); extern _Float64 __tgammaf64 (_Float64) throw (); | |
# 249 "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/x86_64-linux-gnu/bits/mathcalls.h" 3 4 | |
extern _Float64 lgammaf64_r (_Float64, int *__signgamp) throw (); extern _Float64 __lgammaf64_r (_Float64, int *__signgamp) throw (); | |
extern _Float64 rintf64 (_Float64 __x) throw (); extern _Float64 __rintf64 (_Float64 __x) throw (); | |
extern _Float64 nextafterf64 (_Float64 __x, _Float64 __y) throw (); extern _Float64 __nextafterf64 (_Float64 __x, _Float64 __y) throw (); | |
extern _Float64 nextdownf64 (_Float64 __x) throw (); extern _Float64 __nextdownf64 (_Float64 __x) throw (); | |
extern _Float64 nextupf64 (_Float64 __x) throw (); extern _Float64 __nextupf64 (_Float64 __x) throw (); | |
extern _Float64 remainderf64 (_Float64 __x, _Float64 __y) throw (); extern _Float64 __remainderf64 (_Float64 __x, _Float64 __y) throw (); | |
extern _Float64 scalbnf64 (_Float64 __x, int __n) throw (); extern _Float64 __scalbnf64 (_Float64 __x, int __n) throw (); | |
extern int ilogbf64 (_Float64 __x) throw (); extern int __ilogbf64 (_Float64 __x) throw (); | |
extern long int llogbf64 (_Float64 __x) throw (); extern long int __llogbf64 (_Float64 __x) throw (); | |
extern _Float64 scalblnf64 (_Float64 __x, long int __n) throw (); extern _Float64 __scalblnf64 (_Float64 __x, long int __n) throw (); | |
extern _Float64 nearbyintf64 (_Float64 __x) throw (); extern _Float64 __nearbyintf64 (_Float64 __x) throw (); | |
extern _Float64 roundf64 (_Float64 __x) throw () __attribute__ ((__const__)); extern _Float64 __roundf64 (_Float64 __x) throw () __attribute__ ((__const__)); | |
extern _Float64 truncf64 (_Float64 __x) throw () __attribute__ ((__const__)); extern _Float64 __truncf64 (_Float64 __x) throw () __attribute__ ((__const__)); | |
extern _Float64 remquof64 (_Float64 __x, _Float64 __y, int *__quo) throw (); extern _Float64 __remquof64 (_Float64 __x, _Float64 __y, int *__quo) throw (); | |
extern long int lrintf64 (_Float64 __x) throw (); extern long int __lrintf64 (_Float64 __x) throw (); | |
__extension__ | |
extern long long int llrintf64 (_Float64 __x) throw (); extern long long int __llrintf64 (_Float64 __x) throw (); | |
extern long int lroundf64 (_Float64 __x) throw (); extern long int __lroundf64 (_Float64 __x) throw (); | |
__extension__ | |
extern long long int llroundf64 (_Float64 __x) throw (); extern long long int __llroundf64 (_Float64 __x) throw (); | |
extern _Float64 fdimf64 (_Float64 __x, _Float64 __y) throw (); extern _Float64 __fdimf64 (_Float64 __x, _Float64 __y) throw (); | |
extern _Float64 fmaxf64 (_Float64 __x, _Float64 __y) throw () __attribute__ ((__const__)); extern _Float64 __fmaxf64 (_Float64 __x, _Float64 __y) throw () __attribute__ ((__const__)); | |
extern _Float64 fminf64 (_Float64 __x, _Float64 __y) throw () __attribute__ ((__const__)); extern _Float64 __fminf64 (_Float64 __x, _Float64 __y) throw () __attribute__ ((__const__)); | |
extern _Float64 fmaf64 (_Float64 __x, _Float64 __y, _Float64 __z) throw (); extern _Float64 __fmaf64 (_Float64 __x, _Float64 __y, _Float64 __z) throw (); | |
extern _Float64 roundevenf64 (_Float64 __x) throw () __attribute__ ((__const__)); extern _Float64 __roundevenf64 (_Float64 __x) throw () __attribute__ ((__const__)); | |
extern __intmax_t fromfpf64 (_Float64 __x, int __round, unsigned int __width) throw (); extern __intmax_t __fromfpf64 (_Float64 __x, int __round, unsigned int __width) throw (); | |
extern __uintmax_t ufromfpf64 (_Float64 __x, int __round, unsigned int __width) throw (); extern __uintmax_t __ufromfpf64 (_Float64 __x, int __round, unsigned int __width) throw (); | |
extern __intmax_t fromfpxf64 (_Float64 __x, int __round, unsigned int __width) throw (); extern __intmax_t __fromfpxf64 (_Float64 __x, int __round, unsigned int __width) throw (); | |
extern __uintmax_t ufromfpxf64 (_Float64 __x, int __round, unsigned int __width) throw (); extern __uintmax_t __ufromfpxf64 (_Float64 __x, int __round, unsigned int __width) throw (); | |
extern _Float64 fmaxmagf64 (_Float64 __x, _Float64 __y) throw () __attribute__ ((__const__)); extern _Float64 __fmaxmagf64 (_Float64 __x, _Float64 __y) throw () __attribute__ ((__const__)); | |
extern _Float64 fminmagf64 (_Float64 __x, _Float64 __y) throw () __attribute__ ((__const__)); extern _Float64 __fminmagf64 (_Float64 __x, _Float64 __y) throw () __attribute__ ((__const__)); | |
extern int canonicalizef64 (_Float64 *__cx, const _Float64 *__x) throw (); | |
extern int totalorderf64 (const _Float64 *__x, const _Float64 *__y) throw () | |
__attribute__ ((__pure__)); | |
extern int totalordermagf64 (const _Float64 *__x, const _Float64 *__y) throw () | |
__attribute__ ((__pure__)); | |
extern _Float64 getpayloadf64 (const _Float64 *__x) throw (); extern _Float64 __getpayloadf64 (const _Float64 *__x) throw (); | |
extern int setpayloadf64 (_Float64 *__x, _Float64 __payload) throw (); | |
extern int setpayloadsigf64 (_Float64 *__x, _Float64 __payload) throw (); | |
# 407 "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/math.h" 2 3 4 | |
#undef _Mdouble_ | |
#undef __MATH_PRECNAME | |
#undef __MATH_DECLARING_DOUBLE | |
#undef __MATH_DECLARING_FLOATN | |
# 432 "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/math.h" 3 4 | |
#define _Mdouble_ _Float32x | |
#define __MATH_PRECNAME(name,r) name##f32x##r | |
#define __MATH_DECLARING_DOUBLE 0 | |
#define __MATH_DECLARING_FLOATN 1 | |
# 1 "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/x86_64-linux-gnu/bits/mathcalls.h" 1 3 4 | |
# 53 "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/x86_64-linux-gnu/bits/mathcalls.h" 3 4 | |
extern _Float32x acosf32x (_Float32x __x) throw (); extern _Float32x __acosf32x (_Float32x __x) throw (); | |
extern _Float32x asinf32x (_Float32x __x) throw (); extern _Float32x __asinf32x (_Float32x __x) throw (); | |
extern _Float32x atanf32x (_Float32x __x) throw (); extern _Float32x __atanf32x (_Float32x __x) throw (); | |
extern _Float32x atan2f32x (_Float32x __y, _Float32x __x) throw (); extern _Float32x __atan2f32x (_Float32x __y, _Float32x __x) throw (); | |
extern _Float32x cosf32x (_Float32x __x) throw (); extern _Float32x __cosf32x (_Float32x __x) throw (); | |
extern _Float32x sinf32x (_Float32x __x) throw (); extern _Float32x __sinf32x (_Float32x __x) throw (); | |
extern _Float32x tanf32x (_Float32x __x) throw (); extern _Float32x __tanf32x (_Float32x __x) throw (); | |
extern _Float32x coshf32x (_Float32x __x) throw (); extern _Float32x __coshf32x (_Float32x __x) throw (); | |
extern _Float32x sinhf32x (_Float32x __x) throw (); extern _Float32x __sinhf32x (_Float32x __x) throw (); | |
extern _Float32x tanhf32x (_Float32x __x) throw (); extern _Float32x __tanhf32x (_Float32x __x) throw (); | |
extern void sincosf32x (_Float32x __x, _Float32x *__sinx, _Float32x *__cosx) throw (); extern void __sincosf32x (_Float32x __x, _Float32x *__sinx, _Float32x *__cosx) throw (); | |
extern _Float32x acoshf32x (_Float32x __x) throw (); extern _Float32x __acoshf32x (_Float32x __x) throw (); | |
extern _Float32x asinhf32x (_Float32x __x) throw (); extern _Float32x __asinhf32x (_Float32x __x) throw (); | |
extern _Float32x atanhf32x (_Float32x __x) throw (); extern _Float32x __atanhf32x (_Float32x __x) throw (); | |
extern _Float32x expf32x (_Float32x __x) throw (); extern _Float32x __expf32x (_Float32x __x) throw (); | |
extern _Float32x frexpf32x (_Float32x __x, int *__exponent) throw (); extern _Float32x __frexpf32x (_Float32x __x, int *__exponent) throw (); | |
extern _Float32x ldexpf32x (_Float32x __x, int __exponent) throw (); extern _Float32x __ldexpf32x (_Float32x __x, int __exponent) throw (); | |
extern _Float32x logf32x (_Float32x __x) throw (); extern _Float32x __logf32x (_Float32x __x) throw (); | |
extern _Float32x log10f32x (_Float32x __x) throw (); extern _Float32x __log10f32x (_Float32x __x) throw (); | |
extern _Float32x modff32x (_Float32x __x, _Float32x *__iptr) throw (); extern _Float32x __modff32x (_Float32x __x, _Float32x *__iptr) throw () __attribute__ ((__nonnull__ (2))); | |
extern _Float32x exp10f32x (_Float32x __x) throw (); extern _Float32x __exp10f32x (_Float32x __x) throw (); | |
extern _Float32x expm1f32x (_Float32x __x) throw (); extern _Float32x __expm1f32x (_Float32x __x) throw (); | |
extern _Float32x log1pf32x (_Float32x __x) throw (); extern _Float32x __log1pf32x (_Float32x __x) throw (); | |
extern _Float32x logbf32x (_Float32x __x) throw (); extern _Float32x __logbf32x (_Float32x __x) throw (); | |
extern _Float32x exp2f32x (_Float32x __x) throw (); extern _Float32x __exp2f32x (_Float32x __x) throw (); | |
extern _Float32x log2f32x (_Float32x __x) throw (); extern _Float32x __log2f32x (_Float32x __x) throw (); | |
extern _Float32x powf32x (_Float32x __x, _Float32x __y) throw (); extern _Float32x __powf32x (_Float32x __x, _Float32x __y) throw (); | |
extern _Float32x sqrtf32x (_Float32x __x) throw (); extern _Float32x __sqrtf32x (_Float32x __x) throw (); | |
extern _Float32x hypotf32x (_Float32x __x, _Float32x __y) throw (); extern _Float32x __hypotf32x (_Float32x __x, _Float32x __y) throw (); | |
extern _Float32x cbrtf32x (_Float32x __x) throw (); extern _Float32x __cbrtf32x (_Float32x __x) throw (); | |
extern _Float32x ceilf32x (_Float32x __x) throw () __attribute__ ((__const__)); extern _Float32x __ceilf32x (_Float32x __x) throw () __attribute__ ((__const__)); | |
extern _Float32x fabsf32x (_Float32x __x) throw () __attribute__ ((__const__)); extern _Float32x __fabsf32x (_Float32x __x) throw () __attribute__ ((__const__)); | |
extern _Float32x floorf32x (_Float32x __x) throw () __attribute__ ((__const__)); extern _Float32x __floorf32x (_Float32x __x) throw () __attribute__ ((__const__)); | |
extern _Float32x fmodf32x (_Float32x __x, _Float32x __y) throw (); extern _Float32x __fmodf32x (_Float32x __x, _Float32x __y) throw (); | |
# 196 "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/x86_64-linux-gnu/bits/mathcalls.h" 3 4 | |
extern _Float32x copysignf32x (_Float32x __x, _Float32x __y) throw () __attribute__ ((__const__)); extern _Float32x __copysignf32x (_Float32x __x, _Float32x __y) throw () __attribute__ ((__const__)); | |
extern _Float32x nanf32x (const char *__tagb) throw (); extern _Float32x __nanf32x (const char *__tagb) throw (); | |
# 217 "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/x86_64-linux-gnu/bits/mathcalls.h" 3 4 | |
extern _Float32x j0f32x (_Float32x) throw (); extern _Float32x __j0f32x (_Float32x) throw (); | |
extern _Float32x j1f32x (_Float32x) throw (); extern _Float32x __j1f32x (_Float32x) throw (); | |
extern _Float32x jnf32x (int, _Float32x) throw (); extern _Float32x __jnf32x (int, _Float32x) throw (); | |
extern _Float32x y0f32x (_Float32x) throw (); extern _Float32x __y0f32x (_Float32x) throw (); | |
extern _Float32x y1f32x (_Float32x) throw (); extern _Float32x __y1f32x (_Float32x) throw (); | |
extern _Float32x ynf32x (int, _Float32x) throw (); extern _Float32x __ynf32x (int, _Float32x) throw (); | |
extern _Float32x erff32x (_Float32x) throw (); extern _Float32x __erff32x (_Float32x) throw (); | |
extern _Float32x erfcf32x (_Float32x) throw (); extern _Float32x __erfcf32x (_Float32x) throw (); | |
extern _Float32x lgammaf32x (_Float32x) throw (); extern _Float32x __lgammaf32x (_Float32x) throw (); | |
extern _Float32x tgammaf32x (_Float32x) throw (); extern _Float32x __tgammaf32x (_Float32x) throw (); | |
# 249 "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/x86_64-linux-gnu/bits/mathcalls.h" 3 4 | |
extern _Float32x lgammaf32x_r (_Float32x, int *__signgamp) throw (); extern _Float32x __lgammaf32x_r (_Float32x, int *__signgamp) throw (); | |
extern _Float32x rintf32x (_Float32x __x) throw (); extern _Float32x __rintf32x (_Float32x __x) throw (); | |
extern _Float32x nextafterf32x (_Float32x __x, _Float32x __y) throw (); extern _Float32x __nextafterf32x (_Float32x __x, _Float32x __y) throw (); | |
extern _Float32x nextdownf32x (_Float32x __x) throw (); extern _Float32x __nextdownf32x (_Float32x __x) throw (); | |
extern _Float32x nextupf32x (_Float32x __x) throw (); extern _Float32x __nextupf32x (_Float32x __x) throw (); | |
extern _Float32x remainderf32x (_Float32x __x, _Float32x __y) throw (); extern _Float32x __remainderf32x (_Float32x __x, _Float32x __y) throw (); | |
extern _Float32x scalbnf32x (_Float32x __x, int __n) throw (); extern _Float32x __scalbnf32x (_Float32x __x, int __n) throw (); | |
extern int ilogbf32x (_Float32x __x) throw (); extern int __ilogbf32x (_Float32x __x) throw (); | |
extern long int llogbf32x (_Float32x __x) throw (); extern long int __llogbf32x (_Float32x __x) throw (); | |
extern _Float32x scalblnf32x (_Float32x __x, long int __n) throw (); extern _Float32x __scalblnf32x (_Float32x __x, long int __n) throw (); | |
extern _Float32x nearbyintf32x (_Float32x __x) throw (); extern _Float32x __nearbyintf32x (_Float32x __x) throw (); | |
extern _Float32x roundf32x (_Float32x __x) throw () __attribute__ ((__const__)); extern _Float32x __roundf32x (_Float32x __x) throw () __attribute__ ((__const__)); | |
extern _Float32x truncf32x (_Float32x __x) throw () __attribute__ ((__const__)); extern _Float32x __truncf32x (_Float32x __x) throw () __attribute__ ((__const__)); | |
extern _Float32x remquof32x (_Float32x __x, _Float32x __y, int *__quo) throw (); extern _Float32x __remquof32x (_Float32x __x, _Float32x __y, int *__quo) throw (); | |
extern long int lrintf32x (_Float32x __x) throw (); extern long int __lrintf32x (_Float32x __x) throw (); | |
__extension__ | |
extern long long int llrintf32x (_Float32x __x) throw (); extern long long int __llrintf32x (_Float32x __x) throw (); | |
extern long int lroundf32x (_Float32x __x) throw (); extern long int __lroundf32x (_Float32x __x) throw (); | |
__extension__ | |
extern long long int llroundf32x (_Float32x __x) throw (); extern long long int __llroundf32x (_Float32x __x) throw (); | |
extern _Float32x fdimf32x (_Float32x __x, _Float32x __y) throw (); extern _Float32x __fdimf32x (_Float32x __x, _Float32x __y) throw (); | |
extern _Float32x fmaxf32x (_Float32x __x, _Float32x __y) throw () __attribute__ ((__const__)); extern _Float32x __fmaxf32x (_Float32x __x, _Float32x __y) throw () __attribute__ ((__const__)); | |
extern _Float32x fminf32x (_Float32x __x, _Float32x __y) throw () __attribute__ ((__const__)); extern _Float32x __fminf32x (_Float32x __x, _Float32x __y) throw () __attribute__ ((__const__)); | |
extern _Float32x fmaf32x (_Float32x __x, _Float32x __y, _Float32x __z) throw (); extern _Float32x __fmaf32x (_Float32x __x, _Float32x __y, _Float32x __z) throw (); | |
extern _Float32x roundevenf32x (_Float32x __x) throw () __attribute__ ((__const__)); extern _Float32x __roundevenf32x (_Float32x __x) throw () __attribute__ ((__const__)); | |
extern __intmax_t fromfpf32x (_Float32x __x, int __round, unsigned int __width) throw (); extern __intmax_t __fromfpf32x (_Float32x __x, int __round, unsigned int __width) throw (); | |
extern __uintmax_t ufromfpf32x (_Float32x __x, int __round, unsigned int __width) throw (); extern __uintmax_t __ufromfpf32x (_Float32x __x, int __round, unsigned int __width) throw (); | |
extern __intmax_t fromfpxf32x (_Float32x __x, int __round, unsigned int __width) throw (); extern __intmax_t __fromfpxf32x (_Float32x __x, int __round, unsigned int __width) throw (); | |
extern __uintmax_t ufromfpxf32x (_Float32x __x, int __round, unsigned int __width) throw (); extern __uintmax_t __ufromfpxf32x (_Float32x __x, int __round, unsigned int __width) throw (); | |
extern _Float32x fmaxmagf32x (_Float32x __x, _Float32x __y) throw () __attribute__ ((__const__)); extern _Float32x __fmaxmagf32x (_Float32x __x, _Float32x __y) throw () __attribute__ ((__const__)); | |
extern _Float32x fminmagf32x (_Float32x __x, _Float32x __y) throw () __attribute__ ((__const__)); extern _Float32x __fminmagf32x (_Float32x __x, _Float32x __y) throw () __attribute__ ((__const__)); | |
extern int canonicalizef32x (_Float32x *__cx, const _Float32x *__x) throw (); | |
extern int totalorderf32x (const _Float32x *__x, const _Float32x *__y) throw () | |
__attribute__ ((__pure__)); | |
extern int totalordermagf32x (const _Float32x *__x, const _Float32x *__y) throw () | |
__attribute__ ((__pure__)); | |
extern _Float32x getpayloadf32x (const _Float32x *__x) throw (); extern _Float32x __getpayloadf32x (const _Float32x *__x) throw (); | |
extern int setpayloadf32x (_Float32x *__x, _Float32x __payload) throw (); | |
extern int setpayloadsigf32x (_Float32x *__x, _Float32x __payload) throw (); | |
# 441 "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/math.h" 2 3 4 | |
#undef _Mdouble_ | |
#undef __MATH_PRECNAME | |
#undef __MATH_DECLARING_DOUBLE | |
#undef __MATH_DECLARING_FLOATN | |
#define _Mdouble_ _Float64x | |
#define __MATH_PRECNAME(name,r) name##f64x##r | |
#define __MATH_DECLARING_DOUBLE 0 | |
#define __MATH_DECLARING_FLOATN 1 | |
# 1 "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/x86_64-linux-gnu/bits/mathcalls.h" 1 3 4 | |
# 53 "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/x86_64-linux-gnu/bits/mathcalls.h" 3 4 | |
extern _Float64x acosf64x (_Float64x __x) throw (); extern _Float64x __acosf64x (_Float64x __x) throw (); | |
extern _Float64x asinf64x (_Float64x __x) throw (); extern _Float64x __asinf64x (_Float64x __x) throw (); | |
extern _Float64x atanf64x (_Float64x __x) throw (); extern _Float64x __atanf64x (_Float64x __x) throw (); | |
extern _Float64x atan2f64x (_Float64x __y, _Float64x __x) throw (); extern _Float64x __atan2f64x (_Float64x __y, _Float64x __x) throw (); | |
extern _Float64x cosf64x (_Float64x __x) throw (); extern _Float64x __cosf64x (_Float64x __x) throw (); | |
extern _Float64x sinf64x (_Float64x __x) throw (); extern _Float64x __sinf64x (_Float64x __x) throw (); | |
extern _Float64x tanf64x (_Float64x __x) throw (); extern _Float64x __tanf64x (_Float64x __x) throw (); | |
extern _Float64x coshf64x (_Float64x __x) throw (); extern _Float64x __coshf64x (_Float64x __x) throw (); | |
extern _Float64x sinhf64x (_Float64x __x) throw (); extern _Float64x __sinhf64x (_Float64x __x) throw (); | |
extern _Float64x tanhf64x (_Float64x __x) throw (); extern _Float64x __tanhf64x (_Float64x __x) throw (); | |
extern void sincosf64x (_Float64x __x, _Float64x *__sinx, _Float64x *__cosx) throw (); extern void __sincosf64x (_Float64x __x, _Float64x *__sinx, _Float64x *__cosx) throw (); | |
extern _Float64x acoshf64x (_Float64x __x) throw (); extern _Float64x __acoshf64x (_Float64x __x) throw (); | |
extern _Float64x asinhf64x (_Float64x __x) throw (); extern _Float64x __asinhf64x (_Float64x __x) throw (); | |
extern _Float64x atanhf64x (_Float64x __x) throw (); extern _Float64x __atanhf64x (_Float64x __x) throw (); | |
extern _Float64x expf64x (_Float64x __x) throw (); extern _Float64x __expf64x (_Float64x __x) throw (); | |
extern _Float64x frexpf64x (_Float64x __x, int *__exponent) throw (); extern _Float64x __frexpf64x (_Float64x __x, int *__exponent) throw (); | |
extern _Float64x ldexpf64x (_Float64x __x, int __exponent) throw (); extern _Float64x __ldexpf64x (_Float64x __x, int __exponent) throw (); | |
extern _Float64x logf64x (_Float64x __x) throw (); extern _Float64x __logf64x (_Float64x __x) throw (); | |
extern _Float64x log10f64x (_Float64x __x) throw (); extern _Float64x __log10f64x (_Float64x __x) throw (); | |
extern _Float64x modff64x (_Float64x __x, _Float64x *__iptr) throw (); extern _Float64x __modff64x (_Float64x __x, _Float64x *__iptr) throw () __attribute__ ((__nonnull__ (2))); | |
extern _Float64x exp10f64x (_Float64x __x) throw (); extern _Float64x __exp10f64x (_Float64x __x) throw (); | |
extern _Float64x expm1f64x (_Float64x __x) throw (); extern _Float64x __expm1f64x (_Float64x __x) throw (); | |
extern _Float64x log1pf64x (_Float64x __x) throw (); extern _Float64x __log1pf64x (_Float64x __x) throw (); | |
extern _Float64x logbf64x (_Float64x __x) throw (); extern _Float64x __logbf64x (_Float64x __x) throw (); | |
extern _Float64x exp2f64x (_Float64x __x) throw (); extern _Float64x __exp2f64x (_Float64x __x) throw (); | |
extern _Float64x log2f64x (_Float64x __x) throw (); extern _Float64x __log2f64x (_Float64x __x) throw (); | |
extern _Float64x powf64x (_Float64x __x, _Float64x __y) throw (); extern _Float64x __powf64x (_Float64x __x, _Float64x __y) throw (); | |
extern _Float64x sqrtf64x (_Float64x __x) throw (); extern _Float64x __sqrtf64x (_Float64x __x) throw (); | |
extern _Float64x hypotf64x (_Float64x __x, _Float64x __y) throw (); extern _Float64x __hypotf64x (_Float64x __x, _Float64x __y) throw (); | |
extern _Float64x cbrtf64x (_Float64x __x) throw (); extern _Float64x __cbrtf64x (_Float64x __x) throw (); | |
extern _Float64x ceilf64x (_Float64x __x) throw () __attribute__ ((__const__)); extern _Float64x __ceilf64x (_Float64x __x) throw () __attribute__ ((__const__)); | |
extern _Float64x fabsf64x (_Float64x __x) throw () __attribute__ ((__const__)); extern _Float64x __fabsf64x (_Float64x __x) throw () __attribute__ ((__const__)); | |
extern _Float64x floorf64x (_Float64x __x) throw () __attribute__ ((__const__)); extern _Float64x __floorf64x (_Float64x __x) throw () __attribute__ ((__const__)); | |
extern _Float64x fmodf64x (_Float64x __x, _Float64x __y) throw (); extern _Float64x __fmodf64x (_Float64x __x, _Float64x __y) throw (); | |
# 196 "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/x86_64-linux-gnu/bits/mathcalls.h" 3 4 | |
extern _Float64x copysignf64x (_Float64x __x, _Float64x __y) throw () __attribute__ ((__const__)); extern _Float64x __copysignf64x (_Float64x __x, _Float64x __y) throw () __attribute__ ((__const__)); | |
extern _Float64x nanf64x (const char *__tagb) throw (); extern _Float64x __nanf64x (const char *__tagb) throw (); | |
# 217 "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/x86_64-linux-gnu/bits/mathcalls.h" 3 4 | |
extern _Float64x j0f64x (_Float64x) throw (); extern _Float64x __j0f64x (_Float64x) throw (); | |
extern _Float64x j1f64x (_Float64x) throw (); extern _Float64x __j1f64x (_Float64x) throw (); | |
extern _Float64x jnf64x (int, _Float64x) throw (); extern _Float64x __jnf64x (int, _Float64x) throw (); | |
extern _Float64x y0f64x (_Float64x) throw (); extern _Float64x __y0f64x (_Float64x) throw (); | |
extern _Float64x y1f64x (_Float64x) throw (); extern _Float64x __y1f64x (_Float64x) throw (); | |
extern _Float64x ynf64x (int, _Float64x) throw (); extern _Float64x __ynf64x (int, _Float64x) throw (); | |
extern _Float64x erff64x (_Float64x) throw (); extern _Float64x __erff64x (_Float64x) throw (); | |
extern _Float64x erfcf64x (_Float64x) throw (); extern _Float64x __erfcf64x (_Float64x) throw (); | |
extern _Float64x lgammaf64x (_Float64x) throw (); extern _Float64x __lgammaf64x (_Float64x) throw (); | |
extern _Float64x tgammaf64x (_Float64x) throw (); extern _Float64x __tgammaf64x (_Float64x) throw (); | |
# 249 "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/x86_64-linux-gnu/bits/mathcalls.h" 3 4 | |
extern _Float64x lgammaf64x_r (_Float64x, int *__signgamp) throw (); extern _Float64x __lgammaf64x_r (_Float64x, int *__signgamp) throw (); | |
extern _Float64x rintf64x (_Float64x __x) throw (); extern _Float64x __rintf64x (_Float64x __x) throw (); | |
extern _Float64x nextafterf64x (_Float64x __x, _Float64x __y) throw (); extern _Float64x __nextafterf64x (_Float64x __x, _Float64x __y) throw (); | |
extern _Float64x nextdownf64x (_Float64x __x) throw (); extern _Float64x __nextdownf64x (_Float64x __x) throw (); | |
extern _Float64x nextupf64x (_Float64x __x) throw (); extern _Float64x __nextupf64x (_Float64x __x) throw (); | |
extern _Float64x remainderf64x (_Float64x __x, _Float64x __y) throw (); extern _Float64x __remainderf64x (_Float64x __x, _Float64x __y) throw (); | |
extern _Float64x scalbnf64x (_Float64x __x, int __n) throw (); extern _Float64x __scalbnf64x (_Float64x __x, int __n) throw (); | |
extern int ilogbf64x (_Float64x __x) throw (); extern int __ilogbf64x (_Float64x __x) throw (); | |
extern long int llogbf64x (_Float64x __x) throw (); extern long int __llogbf64x (_Float64x __x) throw (); | |
extern _Float64x scalblnf64x (_Float64x __x, long int __n) throw (); extern _Float64x __scalblnf64x (_Float64x __x, long int __n) throw (); | |
extern _Float64x nearbyintf64x (_Float64x __x) throw (); extern _Float64x __nearbyintf64x (_Float64x __x) throw (); | |
extern _Float64x roundf64x (_Float64x __x) throw () __attribute__ ((__const__)); extern _Float64x __roundf64x (_Float64x __x) throw () __attribute__ ((__const__)); | |
extern _Float64x truncf64x (_Float64x __x) throw () __attribute__ ((__const__)); extern _Float64x __truncf64x (_Float64x __x) throw () __attribute__ ((__const__)); | |
extern _Float64x remquof64x (_Float64x __x, _Float64x __y, int *__quo) throw (); extern _Float64x __remquof64x (_Float64x __x, _Float64x __y, int *__quo) throw (); | |
extern long int lrintf64x (_Float64x __x) throw (); extern long int __lrintf64x (_Float64x __x) throw (); | |
__extension__ | |
extern long long int llrintf64x (_Float64x __x) throw (); extern long long int __llrintf64x (_Float64x __x) throw (); | |
extern long int lroundf64x (_Float64x __x) throw (); extern long int __lroundf64x (_Float64x __x) throw (); | |
__extension__ | |
extern long long int llroundf64x (_Float64x __x) throw (); extern long long int __llroundf64x (_Float64x __x) throw (); | |
extern _Float64x fdimf64x (_Float64x __x, _Float64x __y) throw (); extern _Float64x __fdimf64x (_Float64x __x, _Float64x __y) throw (); | |
extern _Float64x fmaxf64x (_Float64x __x, _Float64x __y) throw () __attribute__ ((__const__)); extern _Float64x __fmaxf64x (_Float64x __x, _Float64x __y) throw () __attribute__ ((__const__)); | |
extern _Float64x fminf64x (_Float64x __x, _Float64x __y) throw () __attribute__ ((__const__)); extern _Float64x __fminf64x (_Float64x __x, _Float64x __y) throw () __attribute__ ((__const__)); | |
extern _Float64x fmaf64x (_Float64x __x, _Float64x __y, _Float64x __z) throw (); extern _Float64x __fmaf64x (_Float64x __x, _Float64x __y, _Float64x __z) throw (); | |
extern _Float64x roundevenf64x (_Float64x __x) throw () __attribute__ ((__const__)); extern _Float64x __roundevenf64x (_Float64x __x) throw () __attribute__ ((__const__)); | |
extern __intmax_t fromfpf64x (_Float64x __x, int __round, unsigned int __width) throw (); extern __intmax_t __fromfpf64x (_Float64x __x, int __round, unsigned int __width) throw (); | |
extern __uintmax_t ufromfpf64x (_Float64x __x, int __round, unsigned int __width) throw (); extern __uintmax_t __ufromfpf64x (_Float64x __x, int __round, unsigned int __width) throw (); | |
extern __intmax_t fromfpxf64x (_Float64x __x, int __round, unsigned int __width) throw (); extern __intmax_t __fromfpxf64x (_Float64x __x, int __round, unsigned int __width) throw (); | |
extern __uintmax_t ufromfpxf64x (_Float64x __x, int __round, unsigned int __width) throw (); extern __uintmax_t __ufromfpxf64x (_Float64x __x, int __round, unsigned int __width) throw (); | |
extern _Float64x fmaxmagf64x (_Float64x __x, _Float64x __y) throw () __attribute__ ((__const__)); extern _Float64x __fmaxmagf64x (_Float64x __x, _Float64x __y) throw () __attribute__ ((__const__)); | |
extern _Float64x fminmagf64x (_Float64x __x, _Float64x __y) throw () __attribute__ ((__const__)); extern _Float64x __fminmagf64x (_Float64x __x, _Float64x __y) throw () __attribute__ ((__const__)); | |
extern int canonicalizef64x (_Float64x *__cx, const _Float64x *__x) throw (); | |
extern int totalorderf64x (const _Float64x *__x, const _Float64x *__y) throw () | |
__attribute__ ((__pure__)); | |
extern int totalordermagf64x (const _Float64x *__x, const _Float64x *__y) throw () | |
__attribute__ ((__pure__)); | |
extern _Float64x getpayloadf64x (const _Float64x *__x) throw (); extern _Float64x __getpayloadf64x (const _Float64x *__x) throw (); | |
extern int setpayloadf64x (_Float64x *__x, _Float64x __payload) throw (); | |
extern int setpayloadsigf64x (_Float64x *__x, _Float64x __payload) throw (); | |
# 458 "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/math.h" 2 3 4 | |
#undef _Mdouble_ | |
#undef __MATH_PRECNAME | |
#undef __MATH_DECLARING_DOUBLE | |
#undef __MATH_DECLARING_FLOATN | |
# 482 "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/math.h" 3 4 | |
#undef __MATHDECL_1 | |
#undef __MATHDECL | |
#undef __MATHCALL | |
#define __MATHCALL_NARROW_ARGS_1 (_Marg_ __x) | |
#define __MATHCALL_NARROW_ARGS_2 (_Marg_ __x, _Marg_ __y) | |
#define __MATHCALL_NARROW_ARGS_3 (_Marg_ __x, _Marg_ __y, _Marg_ __z) | |
#define __MATHCALL_NARROW_NORMAL(func,nargs) extern _Mret_ func __MATHCALL_NARROW_ARGS_ ## nargs __THROW | |
#define __MATHCALL_NARROW_REDIR(func,redir,nargs) extern _Mret_ __REDIRECT_NTH (func, __MATHCALL_NARROW_ARGS_ ## nargs, redir) | |
#define __MATHCALL_NARROW(func,redir,nargs) __MATHCALL_NARROW_NORMAL (func, nargs) | |
#define _Mret_ float | |
#define _Marg_ double | |
#define __MATHCALL_NAME(name) f ## name | |
# 1 "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/x86_64-linux-gnu/bits/mathcalls-narrow.h" 1 3 4 | |
# 24 "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/x86_64-linux-gnu/bits/mathcalls-narrow.h" 3 4 | |
extern float fadd (double __x, double __y) throw (); | |
extern float fdiv (double __x, double __y) throw (); | |
extern float fmul (double __x, double __y) throw (); | |
extern float fsub (double __x, double __y) throw (); | |
# 504 "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/math.h" 2 3 4 | |
#undef _Mret_ | |
#undef _Marg_ | |
#undef __MATHCALL_NAME | |
#define _Mret_ float | |
#define _Marg_ long double | |
#define __MATHCALL_NAME(name) f ## name ## l | |
# 1 "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/x86_64-linux-gnu/bits/mathcalls-narrow.h" 1 3 4 | |
# 24 "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/x86_64-linux-gnu/bits/mathcalls-narrow.h" 3 4 | |
extern float faddl (long double __x, long double __y) throw (); | |
extern float fdivl (long double __x, long double __y) throw (); | |
extern float fmull (long double __x, long double __y) throw (); | |
extern float fsubl (long double __x, long double __y) throw (); | |
# 518 "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/math.h" 2 3 4 | |
#undef _Mret_ | |
#undef _Marg_ | |
#undef __MATHCALL_NAME | |
#define _Mret_ double | |
#define _Marg_ long double | |
#define __MATHCALL_NAME(name) d ## name ## l | |
# 1 "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/x86_64-linux-gnu/bits/mathcalls-narrow.h" 1 3 4 | |
# 24 "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/x86_64-linux-gnu/bits/mathcalls-narrow.h" 3 4 | |
extern double daddl (long double __x, long double __y) throw (); | |
extern double ddivl (long double __x, long double __y) throw (); | |
extern double dmull (long double __x, long double __y) throw (); | |
extern double dsubl (long double __x, long double __y) throw (); | |
# 538 "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/math.h" 2 3 4 | |
#undef _Mret_ | |
#undef _Marg_ | |
#undef __MATHCALL_NAME | |
# 613 "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/math.h" 3 4 | |
#define _Mret_ _Float32 | |
#define _Marg_ _Float32x | |
#define __MATHCALL_NAME(name) f32 ## name ## f32x | |
# 1 "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/x86_64-linux-gnu/bits/mathcalls-narrow.h" 1 3 4 | |
# 24 "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/x86_64-linux-gnu/bits/mathcalls-narrow.h" 3 4 | |
extern _Float32 f32addf32x (_Float32x __x, _Float32x __y) throw (); | |
extern _Float32 f32divf32x (_Float32x __x, _Float32x __y) throw (); | |
extern _Float32 f32mulf32x (_Float32x __x, _Float32x __y) throw (); | |
extern _Float32 f32subf32x (_Float32x __x, _Float32x __y) throw (); | |
# 617 "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/math.h" 2 3 4 | |
#undef _Mret_ | |
#undef _Marg_ | |
#undef __MATHCALL_NAME | |
#define _Mret_ _Float32 | |
#define _Marg_ _Float64 | |
#define __MATHCALL_NAME(name) f32 ## name ## f64 | |
# 1 "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/x86_64-linux-gnu/bits/mathcalls-narrow.h" 1 3 4 | |
# 24 "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/x86_64-linux-gnu/bits/mathcalls-narrow.h" 3 4 | |
extern _Float32 f32addf64 (_Float64 __x, _Float64 __y) throw (); | |
extern _Float32 f32divf64 (_Float64 __x, _Float64 __y) throw (); | |
extern _Float32 f32mulf64 (_Float64 __x, _Float64 __y) throw (); | |
extern _Float32 f32subf64 (_Float64 __x, _Float64 __y) throw (); | |
# 627 "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/math.h" 2 3 4 | |
#undef _Mret_ | |
#undef _Marg_ | |
#undef __MATHCALL_NAME | |
#define _Mret_ _Float32 | |
#define _Marg_ _Float64x | |
#define __MATHCALL_NAME(name) f32 ## name ## f64x | |
# 1 "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/x86_64-linux-gnu/bits/mathcalls-narrow.h" 1 3 4 | |
# 24 "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/x86_64-linux-gnu/bits/mathcalls-narrow.h" 3 4 | |
extern _Float32 f32addf64x (_Float64x __x, _Float64x __y) throw (); | |
extern _Float32 f32divf64x (_Float64x __x, _Float64x __y) throw (); | |
extern _Float32 f32mulf64x (_Float64x __x, _Float64x __y) throw (); | |
extern _Float32 f32subf64x (_Float64x __x, _Float64x __y) throw (); | |
# 637 "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/math.h" 2 3 4 | |
#undef _Mret_ | |
#undef _Marg_ | |
#undef __MATHCALL_NAME | |
# 663 "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/math.h" 3 4 | |
#define _Mret_ _Float32x | |
#define _Marg_ _Float64 | |
#define __MATHCALL_NAME(name) f32x ## name ## f64 | |
# 1 "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/x86_64-linux-gnu/bits/mathcalls-narrow.h" 1 3 4 | |
# 24 "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/x86_64-linux-gnu/bits/mathcalls-narrow.h" 3 4 | |
extern _Float32x f32xaddf64 (_Float64 __x, _Float64 __y) throw (); | |
extern _Float32x f32xdivf64 (_Float64 __x, _Float64 __y) throw (); | |
extern _Float32x f32xmulf64 (_Float64 __x, _Float64 __y) throw (); | |
extern _Float32x f32xsubf64 (_Float64 __x, _Float64 __y) throw (); | |
# 667 "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/math.h" 2 3 4 | |
#undef _Mret_ | |
#undef _Marg_ | |
#undef __MATHCALL_NAME | |
#define _Mret_ _Float32x | |
#define _Marg_ _Float64x | |
#define __MATHCALL_NAME(name) f32x ## name ## f64x | |
# 1 "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/x86_64-linux-gnu/bits/mathcalls-narrow.h" 1 3 4 | |
# 24 "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/x86_64-linux-gnu/bits/mathcalls-narrow.h" 3 4 | |
extern _Float32x f32xaddf64x (_Float64x __x, _Float64x __y) throw (); | |
extern _Float32x f32xdivf64x (_Float64x __x, _Float64x __y) throw (); | |
extern _Float32x f32xmulf64x (_Float64x __x, _Float64x __y) throw (); | |
extern _Float32x f32xsubf64x (_Float64x __x, _Float64x __y) throw (); | |
# 677 "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/math.h" 2 3 4 | |
#undef _Mret_ | |
#undef _Marg_ | |
#undef __MATHCALL_NAME | |
# 703 "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/math.h" 3 4 | |
#define _Mret_ _Float64 | |
#define _Marg_ _Float64x | |
#define __MATHCALL_NAME(name) f64 ## name ## f64x | |
# 1 "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/x86_64-linux-gnu/bits/mathcalls-narrow.h" 1 3 4 | |
# 24 "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/x86_64-linux-gnu/bits/mathcalls-narrow.h" 3 4 | |
extern _Float64 f64addf64x (_Float64x __x, _Float64x __y) throw (); | |
extern _Float64 f64divf64x (_Float64x __x, _Float64x __y) throw (); | |
extern _Float64 f64mulf64x (_Float64x __x, _Float64x __y) throw (); | |
extern _Float64 f64subf64x (_Float64x __x, _Float64x __y) throw (); | |
# 707 "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/math.h" 2 3 4 | |
#undef _Mret_ | |
#undef _Marg_ | |
#undef __MATHCALL_NAME | |
# 764 "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/math.h" 3 4 | |
#undef __MATHCALL_NARROW_ARGS_1 | |
#undef __MATHCALL_NARROW_ARGS_2 | |
#undef __MATHCALL_NARROW_ARGS_3 | |
#undef __MATHCALL_NARROW_NORMAL | |
#undef __MATHCALL_NARROW_REDIR | |
#undef __MATHCALL_NARROW | |
extern int signgam; | |
# 841 "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/math.h" 3 4 | |
#define __MATH_TG(TG_ARG,FUNC,ARGS) (sizeof (TG_ARG) == sizeof (float) ? FUNC ## f ARGS : sizeof (TG_ARG) == sizeof (double) ? FUNC ARGS : FUNC ## l ARGS) | |
# 853 "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/math.h" 3 4 | |
enum | |
{ | |
FP_NAN = | |
#define FP_NAN 0 | |
0, | |
FP_INFINITE = | |
#define FP_INFINITE 1 | |
1, | |
FP_ZERO = | |
#define FP_ZERO 2 | |
2, | |
FP_SUBNORMAL = | |
#define FP_SUBNORMAL 3 | |
3, | |
FP_NORMAL = | |
#define FP_NORMAL 4 | |
4 | |
}; | |
# 886 "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/math.h" 3 4 | |
#define fpclassify(x) __builtin_fpclassify (FP_NAN, FP_INFINITE, FP_NORMAL, FP_SUBNORMAL, FP_ZERO, x) | |
#define signbit(x) __builtin_signbit (x) | |
# 913 "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/math.h" 3 4 | |
#define isfinite(x) __builtin_isfinite (x) | |
#define isnormal(x) __builtin_isnormal (x) | |
#define isnan(x) __builtin_isnan (x) | |
# 948 "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/math.h" 3 4 | |
#define isinf(x) __builtin_isinf_sign (x) | |
#define MATH_ERRNO 1 | |
#define MATH_ERREXCEPT 2 | |
# 967 "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/math.h" 3 4 | |
#define math_errhandling (MATH_ERRNO | MATH_ERREXCEPT) | |
# 1 "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/x86_64-linux-gnu/bits/iscanonical.h" 1 3 4 | |
# 23 "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/x86_64-linux-gnu/bits/iscanonical.h" 3 4 | |
extern int __iscanonicall (long double __x) | |
throw () __attribute__ ((__const__)); | |
#define __iscanonicalf(x) ((void) (__typeof (x)) (x), 1) | |
#define __iscanonical(x) ((void) (__typeof (x)) (x), 1) | |
# 46 "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/x86_64-linux-gnu/bits/iscanonical.h" 3 4 | |
extern "C++" { | |
inline int iscanonical (float __val) { return ((void) (__typeof (__val)) (__val), 1); } | |
inline int iscanonical (double __val) { return ((void) (__typeof (__val)) (__val), 1); } | |
inline int iscanonical (long double __val) { return __iscanonicall (__val); } | |
} | |
# 974 "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/math.h" 2 3 4 | |
# 985 "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/math.h" 3 4 | |
extern "C++" { | |
inline int issignaling (float __val) { return __issignalingf (__val); } | |
inline int issignaling (double __val) { return __issignaling (__val); } | |
inline int | |
issignaling (long double __val) | |
{ | |
return __issignalingl (__val); | |
} | |
} | |
#define issubnormal(x) (fpclassify (x) == FP_SUBNORMAL) | |
# 1016 "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/math.h" 3 4 | |
extern "C++" { | |
# 1047 "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/math.h" 3 4 | |
template <class __T> inline bool | |
iszero (__T __val) | |
{ | |
return __val == 0; | |
} | |
} | |
#define MAXFLOAT 3.40282347e+38F | |
#define M_E 2.7182818284590452354 | |
#define M_LOG2E 1.4426950408889634074 | |
#define M_LOG10E 0.43429448190325182765 | |
#define M_LN2 0.69314718055994530942 | |
#define M_LN10 2.30258509299404568402 | |
#define M_PI 3.14159265358979323846 | |
#define M_PI_2 1.57079632679489661923 | |
#define M_PI_4 0.78539816339744830962 | |
#define M_1_PI 0.31830988618379067154 | |
#define M_2_PI 0.63661977236758134308 | |
#define M_2_SQRTPI 1.12837916709551257390 | |
#define M_SQRT2 1.41421356237309504880 | |
#define M_SQRT1_2 0.70710678118654752440 | |
#define M_El 2.718281828459045235360287471352662498L | |
#define M_LOG2El 1.442695040888963407359924681001892137L | |
#define M_LOG10El 0.434294481903251827651128918916605082L | |
#define M_LN2l 0.693147180559945309417232121458176568L | |
#define M_LN10l 2.302585092994045684017991454684364208L | |
#define M_PIl 3.141592653589793238462643383279502884L | |
#define M_PI_2l 1.570796326794896619231321691639751442L | |
#define M_PI_4l 0.785398163397448309615660845819875721L | |
#define M_1_PIl 0.318309886183790671537767526745028724L | |
#define M_2_PIl 0.636619772367581343075535053490057448L | |
#define M_2_SQRTPIl 1.128379167095512573896158903121545172L | |
#define M_SQRT2l 1.414213562373095048801688724209698079L | |
#define M_SQRT1_2l 0.707106781186547524400844362104849039L | |
# 1116 "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/math.h" 3 4 | |
#define M_Ef32 __f32 (2.718281828459045235360287471352662498) | |
#define M_LOG2Ef32 __f32 (1.442695040888963407359924681001892137) | |
#define M_LOG10Ef32 __f32 (0.434294481903251827651128918916605082) | |
#define M_LN2f32 __f32 (0.693147180559945309417232121458176568) | |
#define M_LN10f32 __f32 (2.302585092994045684017991454684364208) | |
#define M_PIf32 __f32 (3.141592653589793238462643383279502884) | |
#define M_PI_2f32 __f32 (1.570796326794896619231321691639751442) | |
#define M_PI_4f32 __f32 (0.785398163397448309615660845819875721) | |
#define M_1_PIf32 __f32 (0.318309886183790671537767526745028724) | |
#define M_2_PIf32 __f32 (0.636619772367581343075535053490057448) | |
#define M_2_SQRTPIf32 __f32 (1.128379167095512573896158903121545172) | |
#define M_SQRT2f32 __f32 (1.414213562373095048801688724209698079) | |
#define M_SQRT1_2f32 __f32 (0.707106781186547524400844362104849039) | |
#define M_Ef64 __f64 (2.718281828459045235360287471352662498) | |
#define M_LOG2Ef64 __f64 (1.442695040888963407359924681001892137) | |
#define M_LOG10Ef64 __f64 (0.434294481903251827651128918916605082) | |
#define M_LN2f64 __f64 (0.693147180559945309417232121458176568) | |
#define M_LN10f64 __f64 (2.302585092994045684017991454684364208) | |
#define M_PIf64 __f64 (3.141592653589793238462643383279502884) | |
#define M_PI_2f64 __f64 (1.570796326794896619231321691639751442) | |
#define M_PI_4f64 __f64 (0.785398163397448309615660845819875721) | |
#define M_1_PIf64 __f64 (0.318309886183790671537767526745028724) | |
#define M_2_PIf64 __f64 (0.636619772367581343075535053490057448) | |
#define M_2_SQRTPIf64 __f64 (1.128379167095512573896158903121545172) | |
#define M_SQRT2f64 __f64 (1.414213562373095048801688724209698079) | |
#define M_SQRT1_2f64 __f64 (0.707106781186547524400844362104849039) | |
# 1164 "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/math.h" 3 4 | |
#define M_Ef32x __f32x (2.718281828459045235360287471352662498) | |
#define M_LOG2Ef32x __f32x (1.442695040888963407359924681001892137) | |
#define M_LOG10Ef32x __f32x (0.434294481903251827651128918916605082) | |
#define M_LN2f32x __f32x (0.693147180559945309417232121458176568) | |
#define M_LN10f32x __f32x (2.302585092994045684017991454684364208) | |
#define M_PIf32x __f32x (3.141592653589793238462643383279502884) | |
#define M_PI_2f32x __f32x (1.570796326794896619231321691639751442) | |
#define M_PI_4f32x __f32x (0.785398163397448309615660845819875721) | |
#define M_1_PIf32x __f32x (0.318309886183790671537767526745028724) | |
#define M_2_PIf32x __f32x (0.636619772367581343075535053490057448) | |
#define M_2_SQRTPIf32x __f32x (1.128379167095512573896158903121545172) | |
#define M_SQRT2f32x __f32x (1.414213562373095048801688724209698079) | |
#define M_SQRT1_2f32x __f32x (0.707106781186547524400844362104849039) | |
#define M_Ef64x __f64x (2.718281828459045235360287471352662498) | |
#define M_LOG2Ef64x __f64x (1.442695040888963407359924681001892137) | |
#define M_LOG10Ef64x __f64x (0.434294481903251827651128918916605082) | |
#define M_LN2f64x __f64x (0.693147180559945309417232121458176568) | |
#define M_LN10f64x __f64x (2.302585092994045684017991454684364208) | |
#define M_PIf64x __f64x (3.141592653589793238462643383279502884) | |
#define M_PI_2f64x __f64x (1.570796326794896619231321691639751442) | |
#define M_PI_4f64x __f64x (0.785398163397448309615660845819875721) | |
#define M_1_PIf64x __f64x (0.318309886183790671537767526745028724) | |
#define M_2_PIf64x __f64x (0.636619772367581343075535053490057448) | |
#define M_2_SQRTPIf64x __f64x (1.128379167095512573896158903121545172) | |
#define M_SQRT2f64x __f64x (1.414213562373095048801688724209698079) | |
#define M_SQRT1_2f64x __f64x (0.707106781186547524400844362104849039) | |
# 1214 "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/math.h" 3 4 | |
#define isgreater(x,y) __builtin_isgreater(x, y) | |
#define isgreaterequal(x,y) __builtin_isgreaterequal(x, y) | |
#define isless(x,y) __builtin_isless(x, y) | |
#define islessequal(x,y) __builtin_islessequal(x, y) | |
#define islessgreater(x,y) __builtin_islessgreater(x, y) | |
#define isunordered(x,y) __builtin_isunordered(x, y) | |
# 1245 "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/math.h" 3 4 | |
# 1 "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/x86_64-linux-gnu/bits/mathinline.h" 1 3 4 | |
# 1246 "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/math.h" 2 3 4 | |
# 1257 "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/math.h" 3 4 | |
#define __MATH_EVAL_FMT2(x,y) ((x) + (y) + 0.0f) | |
# 1278 "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/math.h" 3 4 | |
extern "C++" { | |
template<typename> struct __iseqsig_type; | |
template<> struct __iseqsig_type<float> | |
{ | |
static int __call (float __x, float __y) throw () | |
{ | |
return __iseqsigf (__x, __y); | |
} | |
}; | |
template<> struct __iseqsig_type<double> | |
{ | |
static int __call (double __x, double __y) throw () | |
{ | |
return __iseqsig (__x, __y); | |
} | |
}; | |
template<> struct __iseqsig_type<long double> | |
{ | |
static int __call (long double __x, long double __y) throw () | |
{ | |
return __iseqsigl (__x, __y); | |
} | |
}; | |
# 1321 "../../build/linux/debian_bullseye_amd64-sysroot/usr/include/math.h" 3 4 | |
template<typename _T1, typename _T2> | |
inline int | |
iseqsig (_T1 __x, _T2 __y) throw () | |
{ | |
typedef decltype (((__x) + (__y) + 0.0f)) _T3; | |
return __iseqsig_type<_T3>::__call (__x, __y); | |
} | |
} | |
} | |
# 301 "../../buildtools/third_party/libc++/trunk/include/math.h" 2 3 | |
extern "C++" { | |
# 1 "../../buildtools/third_party/libc++/trunk/include/__type_traits/promote.h" 1 3 | |
# 10 "../../buildtools/third_party/libc++/trunk/include/__type_traits/promote.h" 3 | |
#define _LIBCPP___TYPE_TRAITS_PROMOTE_H | |
# 20 "../../buildtools/third_party/libc++/trunk/include/__type_traits/promote.h" 3 | |
namespace std { inline namespace Cr { | |
template <class _Tp> | |
struct __numeric_type | |
{ | |
static void __test(...); | |
static float __test(float); | |
static double __test(char); | |
static double __test(int); | |
static double __test(unsigned); | |
static double __test(long); | |
static double __test(unsigned long); | |
static double __test(long long); | |
static double __test(unsigned long long); | |
static double __test(double); | |
static long double __test(long double); | |
typedef decltype(__test(declval<_Tp>())) type; | |
static const bool value = _IsNotSame<type, void>::value; | |
}; | |
template <> | |
struct __numeric_type<void> | |
{ | |
static const bool value = true; | |
}; | |
template <class _A1, class _A2 = void, class _A3 = void, | |
bool = __numeric_type<_A1>::value && | |
__numeric_type<_A2>::value && | |
__numeric_type<_A3>::value> | |
class __promote_imp | |
{ | |
public: | |
static const bool value = false; | |
}; | |
template <class _A1, class _A2, class _A3> | |
class __promote_imp<_A1, _A2, _A3, true> | |
{ | |
private: | |
typedef typename __promote_imp<_A1>::type __type1; | |
typedef typename __promote_imp<_A2>::type __type2; | |
typedef typename __promote_imp<_A3>::type __type3; | |
public: | |
typedef decltype(__type1() + __type2() + __type3()) type; | |
static const bool value = true; | |
}; | |
template <class _A1, class _A2> | |
class __promote_imp<_A1, _A2, void, true> | |
{ | |
private: | |
typedef typename __promote_imp<_A1>::type __type1; | |
typedef typename __promote_imp<_A2>::type __type2; | |
public: | |
typedef decltype(__type1() + __type2()) type; | |
static const bool value = true; | |
}; | |
template <class _A1> | |
class __promote_imp<_A1, void, void, true> | |
{ | |
public: | |
typedef typename __numeric_type<_A1>::type type; | |
static const bool value = true; | |
}; | |
template <class _A1, class _A2 = void, class _A3 = void> | |
class __promote : public __promote_imp<_A1, _A2, _A3> {}; | |
}} | |
# 309 "../../buildtools/third_party/libc++/trunk/include/math.h" 2 3 | |
# 1 "../../buildtools/third_party/libc++/trunk/include/stdlib.h" 1 3 | |
# 311 "../../buildtools/third_party/libc++/trunk/include/math.h" 2 3 | |
template <class _A1> | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) | |
bool | |
__libcpp_signbit(_A1 __lcpp_x) noexcept | |
{ | |
return __builtin_signbit(__lcpp_x); | |
} | |
#undef signbit | |
template <class _A1> | |
inline __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) | |
typename std::enable_if<std::is_floating_point<_A1>::value, bool>::type | |
signbit(_A1 __lcpp_x) noexcept | |
{ | |
return __libcpp_signbit((typename std::__promote<_A1>::type)__lcpp_x); | |
} | |
template <class _A1> | |
inline __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) | |
typename std::enable_if< | |
std::is_integral<_A1>::value && std::is_signed<_A1>::value, bool>::type | |
signbit(_A1 __lcpp_x) noexcept | |
{ return __lcpp_x < 0; } | |
template <class _A1> | |
inline __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) | |
typename std::enable_if< | |
std::is_integral<_A1>::value && !std::is_signed<_A1>::value, bool>::type | |
signbit(_A1) noexcept | |
{ return false; } | |
# 383 "../../buildtools/third_party/libc++/trunk/include/math.h" 3 | |
template <class _A1> | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) | |
int | |
__libcpp_fpclassify(_A1 __lcpp_x) noexcept | |
{ | |
return __builtin_fpclassify(0, 1, 4, 3, | |
2, __lcpp_x); | |
} | |
#undef fpclassify | |
template <class _A1> | |
inline __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) | |
typename std::enable_if<std::is_floating_point<_A1>::value, int>::type | |
fpclassify(_A1 __lcpp_x) noexcept | |
{ | |
return __libcpp_fpclassify((typename std::__promote<_A1>::type)__lcpp_x); | |
} | |
template <class _A1> | |
inline __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) | |
typename std::enable_if<std::is_integral<_A1>::value, int>::type | |
fpclassify(_A1 __lcpp_x) noexcept | |
{ return __lcpp_x == 0 ? 2 : 4; } | |
# 434 "../../buildtools/third_party/libc++/trunk/include/math.h" 3 | |
template <class _A1> | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) | |
bool | |
__libcpp_isfinite(_A1 __lcpp_x) noexcept | |
{ | |
return __builtin_isfinite(__lcpp_x); | |
} | |
#undef isfinite | |
template <class _A1> | |
inline __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) | |
typename std::enable_if< | |
std::is_arithmetic<_A1>::value && std::numeric_limits<_A1>::has_infinity, | |
bool>::type | |
isfinite(_A1 __lcpp_x) noexcept | |
{ | |
return __libcpp_isfinite((typename std::__promote<_A1>::type)__lcpp_x); | |
} | |
template <class _A1> | |
inline __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) | |
typename std::enable_if< | |
std::is_arithmetic<_A1>::value && !std::numeric_limits<_A1>::has_infinity, | |
bool>::type | |
isfinite(_A1) noexcept | |
{ return true; } | |
template <class _A1> | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) | |
bool | |
__libcpp_isinf(_A1 __lcpp_x) noexcept | |
{ | |
return __builtin_isinf(__lcpp_x); | |
} | |
#undef isinf | |
template <class _A1> | |
inline __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) | |
typename std::enable_if< | |
std::is_arithmetic<_A1>::value && std::numeric_limits<_A1>::has_infinity, | |
bool>::type | |
isinf(_A1 __lcpp_x) noexcept | |
{ | |
return __libcpp_isinf((typename std::__promote<_A1>::type)__lcpp_x); | |
} | |
template <class _A1> | |
inline __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) | |
typename std::enable_if< | |
std::is_arithmetic<_A1>::value && !std::numeric_limits<_A1>::has_infinity, | |
bool>::type | |
isinf(_A1) noexcept | |
{ return false; } | |
inline __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) | |
bool | |
isinf(float __lcpp_x) noexcept { return __libcpp_isinf(__lcpp_x); } | |
inline __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) __attribute__((__enable_if__(true, ""))) | |
bool | |
isinf(double __lcpp_x) noexcept { return __libcpp_isinf(__lcpp_x); } | |
inline __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) | |
bool | |
isinf(long double __lcpp_x) noexcept { return __libcpp_isinf(__lcpp_x); } | |
# 524 "../../buildtools/third_party/libc++/trunk/include/math.h" 3 | |
template <class _A1> | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) | |
bool | |
__libcpp_isnan(_A1 __lcpp_x) noexcept | |
{ | |
return __builtin_isnan(__lcpp_x); | |
} | |
#undef isnan | |
template <class _A1> | |
inline __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) | |
typename std::enable_if<std::is_floating_point<_A1>::value, bool>::type | |
isnan(_A1 __lcpp_x) noexcept | |
{ | |
return __libcpp_isnan((typename std::__promote<_A1>::type)__lcpp_x); | |
} | |
template <class _A1> | |
inline __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) | |
typename std::enable_if<std::is_integral<_A1>::value, bool>::type | |
isnan(_A1) noexcept | |
{ return false; } | |
inline __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) | |
bool | |
isnan(float __lcpp_x) noexcept { return __libcpp_isnan(__lcpp_x); } | |
inline __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) __attribute__((__enable_if__(true, ""))) | |
bool | |
isnan(double __lcpp_x) noexcept { return __libcpp_isnan(__lcpp_x); } | |
inline __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) | |
bool | |
isnan(long double __lcpp_x) noexcept { return __libcpp_isnan(__lcpp_x); } | |
# 572 "../../buildtools/third_party/libc++/trunk/include/math.h" 3 | |
template <class _A1> | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) | |
bool | |
__libcpp_isnormal(_A1 __lcpp_x) noexcept | |
{ | |
return __builtin_isnormal(__lcpp_x); | |
} | |
#undef isnormal | |
template <class _A1> | |
inline __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) | |
typename std::enable_if<std::is_floating_point<_A1>::value, bool>::type | |
isnormal(_A1 __lcpp_x) noexcept | |
{ | |
return __libcpp_isnormal((typename std::__promote<_A1>::type)__lcpp_x); | |
} | |
template <class _A1> | |
inline __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) | |
typename std::enable_if<std::is_integral<_A1>::value, bool>::type | |
isnormal(_A1 __lcpp_x) noexcept | |
{ return __lcpp_x != 0; } | |
template <class _A1, class _A2> | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) | |
bool | |
__libcpp_isgreater(_A1 __lcpp_x, _A2 __lcpp_y) noexcept | |
{ | |
return __builtin_isgreater(__lcpp_x, __lcpp_y); | |
} | |
#undef isgreater | |
template <class _A1, class _A2> | |
inline __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) | |
typename std::enable_if | |
< | |
std::is_arithmetic<_A1>::value && | |
std::is_arithmetic<_A2>::value, | |
bool | |
>::type | |
isgreater(_A1 __lcpp_x, _A2 __lcpp_y) noexcept | |
{ | |
typedef typename std::__promote<_A1, _A2>::type type; | |
return __libcpp_isgreater((type)__lcpp_x, (type)__lcpp_y); | |
} | |
template <class _A1, class _A2> | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) | |
bool | |
__libcpp_isgreaterequal(_A1 __lcpp_x, _A2 __lcpp_y) noexcept | |
{ | |
return __builtin_isgreaterequal(__lcpp_x, __lcpp_y); | |
} | |
#undef isgreaterequal | |
template <class _A1, class _A2> | |
inline __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) | |
typename std::enable_if | |
< | |
std::is_arithmetic<_A1>::value && | |
std::is_arithmetic<_A2>::value, | |
bool | |
>::type | |
isgreaterequal(_A1 __lcpp_x, _A2 __lcpp_y) noexcept | |
{ | |
typedef typename std::__promote<_A1, _A2>::type type; | |
return __libcpp_isgreaterequal((type)__lcpp_x, (type)__lcpp_y); | |
} | |
template <class _A1, class _A2> | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) | |
bool | |
__libcpp_isless(_A1 __lcpp_x, _A2 __lcpp_y) noexcept | |
{ | |
return __builtin_isless(__lcpp_x, __lcpp_y); | |
} | |
#undef isless | |
template <class _A1, class _A2> | |
inline __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) | |
typename std::enable_if | |
< | |
std::is_arithmetic<_A1>::value && | |
std::is_arithmetic<_A2>::value, | |
bool | |
>::type | |
isless(_A1 __lcpp_x, _A2 __lcpp_y) noexcept | |
{ | |
typedef typename std::__promote<_A1, _A2>::type type; | |
return __libcpp_isless((type)__lcpp_x, (type)__lcpp_y); | |
} | |
template <class _A1, class _A2> | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) | |
bool | |
__libcpp_islessequal(_A1 __lcpp_x, _A2 __lcpp_y) noexcept | |
{ | |
return __builtin_islessequal(__lcpp_x, __lcpp_y); | |
} | |
#undef islessequal | |
template <class _A1, class _A2> | |
inline __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) | |
typename std::enable_if | |
< | |
std::is_arithmetic<_A1>::value && | |
std::is_arithmetic<_A2>::value, | |
bool | |
>::type | |
islessequal(_A1 __lcpp_x, _A2 __lcpp_y) noexcept | |
{ | |
typedef typename std::__promote<_A1, _A2>::type type; | |
return __libcpp_islessequal((type)__lcpp_x, (type)__lcpp_y); | |
} | |
template <class _A1, class _A2> | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) | |
bool | |
__libcpp_islessgreater(_A1 __lcpp_x, _A2 __lcpp_y) noexcept | |
{ | |
return __builtin_islessgreater(__lcpp_x, __lcpp_y); | |
} | |
#undef islessgreater | |
template <class _A1, class _A2> | |
inline __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) | |
typename std::enable_if | |
< | |
std::is_arithmetic<_A1>::value && | |
std::is_arithmetic<_A2>::value, | |
bool | |
>::type | |
islessgreater(_A1 __lcpp_x, _A2 __lcpp_y) noexcept | |
{ | |
typedef typename std::__promote<_A1, _A2>::type type; | |
return __libcpp_islessgreater((type)__lcpp_x, (type)__lcpp_y); | |
} | |
template <class _A1, class _A2> | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) | |
bool | |
__libcpp_isunordered(_A1 __lcpp_x, _A2 __lcpp_y) noexcept | |
{ | |
return __builtin_isunordered(__lcpp_x, __lcpp_y); | |
} | |
#undef isunordered | |
template <class _A1, class _A2> | |
inline __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) | |
typename std::enable_if | |
< | |
std::is_arithmetic<_A1>::value && | |
std::is_arithmetic<_A2>::value, | |
bool | |
>::type | |
isunordered(_A1 __lcpp_x, _A2 __lcpp_y) noexcept | |
{ | |
typedef typename std::__promote<_A1, _A2>::type type; | |
return __libcpp_isunordered((type)__lcpp_x, (type)__lcpp_y); | |
} | |
# 793 "../../buildtools/third_party/libc++/trunk/include/math.h" 3 | |
inline __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) float acos(float __lcpp_x) noexcept {return ::acosf(__lcpp_x);} | |
inline __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) long double acos(long double __lcpp_x) noexcept {return ::acosl(__lcpp_x);} | |
template <class _A1> | |
inline __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) | |
typename std::enable_if<std::is_integral<_A1>::value, double>::type | |
acos(_A1 __lcpp_x) noexcept {return ::acos((double)__lcpp_x);} | |
inline __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) float asin(float __lcpp_x) noexcept {return ::asinf(__lcpp_x);} | |
inline __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) long double asin(long double __lcpp_x) noexcept {return ::asinl(__lcpp_x);} | |
template <class _A1> | |
inline __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) | |
typename std::enable_if<std::is_integral<_A1>::value, double>::type | |
asin(_A1 __lcpp_x) noexcept {return ::asin((double)__lcpp_x);} | |
inline __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) float atan(float __lcpp_x) noexcept {return ::atanf(__lcpp_x);} | |
inline __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) long double atan(long double __lcpp_x) noexcept {return ::atanl(__lcpp_x);} | |
template <class _A1> | |
inline __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) | |
typename std::enable_if<std::is_integral<_A1>::value, double>::type | |
atan(_A1 __lcpp_x) noexcept {return ::atan((double)__lcpp_x);} | |
inline __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) float atan2(float __lcpp_y, float __lcpp_x) noexcept {return ::atan2f(__lcpp_y, __lcpp_x);} | |
inline __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) long double atan2(long double __lcpp_y, long double __lcpp_x) noexcept {return ::atan2l(__lcpp_y, __lcpp_x);} | |
template <class _A1, class _A2> | |
inline __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) | |
typename std::__enable_if_t | |
< | |
std::is_arithmetic<_A1>::value && | |
std::is_arithmetic<_A2>::value, | |
std::__promote<_A1, _A2> | |
>::type | |
atan2(_A1 __lcpp_y, _A2 __lcpp_x) noexcept | |
{ | |
typedef typename std::__promote<_A1, _A2>::type __result_type; | |
static_assert((!(std::_IsSame<_A1, __result_type>::value && | |
std::_IsSame<_A2, __result_type>::value)), ""); | |
return ::atan2((__result_type)__lcpp_y, (__result_type)__lcpp_x); | |
} | |
inline __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) float ceil(float __lcpp_x) noexcept {return ::ceilf(__lcpp_x);} | |
inline __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) long double ceil(long double __lcpp_x) noexcept {return ::ceill(__lcpp_x);} | |
template <class _A1> | |
inline __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) | |
typename std::enable_if<std::is_integral<_A1>::value, double>::type | |
ceil(_A1 __lcpp_x) noexcept {return ::ceil((double)__lcpp_x);} | |
inline __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) float cos(float __lcpp_x) noexcept {return ::cosf(__lcpp_x);} | |
inline __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) long double cos(long double __lcpp_x) noexcept {return ::cosl(__lcpp_x);} | |
template <class _A1> | |
inline __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) | |
typename std::enable_if<std::is_integral<_A1>::value, double>::type | |
cos(_A1 __lcpp_x) noexcept {return ::cos((double)__lcpp_x);} | |
inline __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) float cosh(float __lcpp_x) noexcept {return ::coshf(__lcpp_x);} | |
inline __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) long double cosh(long double __lcpp_x) noexcept {return ::coshl(__lcpp_x);} | |
template <class _A1> | |
inline __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) | |
typename std::enable_if<std::is_integral<_A1>::value, double>::type | |
cosh(_A1 __lcpp_x) noexcept {return ::cosh((double)__lcpp_x);} | |
inline __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) float exp(float __lcpp_x) noexcept {return ::expf(__lcpp_x);} | |
inline __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) long double exp(long double __lcpp_x) noexcept {return ::expl(__lcpp_x);} | |
template <class _A1> | |
inline __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) | |
typename std::enable_if<std::is_integral<_A1>::value, double>::type | |
exp(_A1 __lcpp_x) noexcept {return ::exp((double)__lcpp_x);} | |
inline __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) float fabs(float __lcpp_x) noexcept {return ::fabsf(__lcpp_x);} | |
inline __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) long double fabs(long double __lcpp_x) noexcept {return ::fabsl(__lcpp_x);} | |
template <class _A1> | |
inline __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) | |
typename std::enable_if<std::is_integral<_A1>::value, double>::type | |
fabs(_A1 __lcpp_x) noexcept {return ::fabs((double)__lcpp_x);} | |
inline __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) float floor(float __lcpp_x) noexcept {return ::floorf(__lcpp_x);} | |
inline __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) long double floor(long double __lcpp_x) noexcept {return ::floorl(__lcpp_x);} | |
template <class _A1> | |
inline __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) | |
typename std::enable_if<std::is_integral<_A1>::value, double>::type | |
floor(_A1 __lcpp_x) noexcept {return ::floor((double)__lcpp_x);} | |
inline __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) float fmod(float __lcpp_x, float __lcpp_y) noexcept {return ::fmodf(__lcpp_x, __lcpp_y);} | |
inline __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) long double fmod(long double __lcpp_x, long double __lcpp_y) noexcept {return ::fmodl(__lcpp_x, __lcpp_y);} | |
template <class _A1, class _A2> | |
inline __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) | |
typename std::__enable_if_t | |
< | |
std::is_arithmetic<_A1>::value && | |
std::is_arithmetic<_A2>::value, | |
std::__promote<_A1, _A2> | |
>::type | |
fmod(_A1 __lcpp_x, _A2 __lcpp_y) noexcept | |
{ | |
typedef typename std::__promote<_A1, _A2>::type __result_type; | |
static_assert((!(std::_IsSame<_A1, __result_type>::value && | |
std::_IsSame<_A2, __result_type>::value)), ""); | |
return ::fmod((__result_type)__lcpp_x, (__result_type)__lcpp_y); | |
} | |
inline __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) float frexp(float __lcpp_x, int* __lcpp_e) noexcept {return ::frexpf(__lcpp_x, __lcpp_e);} | |
inline __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) long double frexp(long double __lcpp_x, int* __lcpp_e) noexcept {return ::frexpl(__lcpp_x, __lcpp_e);} | |
template <class _A1> | |
inline __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) | |
typename std::enable_if<std::is_integral<_A1>::value, double>::type | |
frexp(_A1 __lcpp_x, int* __lcpp_e) noexcept {return ::frexp((double)__lcpp_x, __lcpp_e);} | |
inline __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) float ldexp(float __lcpp_x, int __lcpp_e) noexcept {return ::ldexpf(__lcpp_x, __lcpp_e);} | |
inline __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) long double ldexp(long double __lcpp_x, int __lcpp_e) noexcept {return ::ldexpl(__lcpp_x, __lcpp_e);} | |
template <class _A1> | |
inline __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) | |
typename std::enable_if<std::is_integral<_A1>::value, double>::type | |
ldexp(_A1 __lcpp_x, int __lcpp_e) noexcept {return ::ldexp((double)__lcpp_x, __lcpp_e);} | |
inline __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) float log(float __lcpp_x) noexcept {return ::logf(__lcpp_x);} | |
inline __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) long double log(long double __lcpp_x) noexcept {return ::logl(__lcpp_x);} | |
template <class _A1> | |
inline __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) | |
typename std::enable_if<std::is_integral<_A1>::value, double>::type | |
log(_A1 __lcpp_x) noexcept {return ::log((double)__lcpp_x);} | |
inline __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) float log10(float __lcpp_x) noexcept {return ::log10f(__lcpp_x);} | |
inline __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) long double log10(long double __lcpp_x) noexcept {return ::log10l(__lcpp_x);} | |
template <class _A1> | |
inline __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) | |
typename std::enable_if<std::is_integral<_A1>::value, double>::type | |
log10(_A1 __lcpp_x) noexcept {return ::log10((double)__lcpp_x);} | |
inline __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) float modf(float __lcpp_x, float* __lcpp_y) noexcept {return ::modff(__lcpp_x, __lcpp_y);} | |
inline __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) long double modf(long double __lcpp_x, long double* __lcpp_y) noexcept {return ::modfl(__lcpp_x, __lcpp_y);} | |
inline __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) float pow(float __lcpp_x, float __lcpp_y) noexcept {return ::powf(__lcpp_x, __lcpp_y);} | |
inline __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) long double pow(long double __lcpp_x, long double __lcpp_y) noexcept {return ::powl(__lcpp_x, __lcpp_y);} | |
template <class _A1, class _A2> | |
inline __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) | |
typename std::__enable_if_t | |
< | |
std::is_arithmetic<_A1>::value && | |
std::is_arithmetic<_A2>::value, | |
std::__promote<_A1, _A2> | |
>::type | |
pow(_A1 __lcpp_x, _A2 __lcpp_y) noexcept | |
{ | |
typedef typename std::__promote<_A1, _A2>::type __result_type; | |
static_assert((!(std::_IsSame<_A1, __result_type>::value && | |
std::_IsSame<_A2, __result_type>::value)), ""); | |
return ::pow((__result_type)__lcpp_x, (__result_type)__lcpp_y); | |
} | |
inline __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) float sin(float __lcpp_x) noexcept {return ::sinf(__lcpp_x);} | |
inline __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) long double sin(long double __lcpp_x) noexcept {return ::sinl(__lcpp_x);} | |
template <class _A1> | |
inline __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) | |
typename std::enable_if<std::is_integral<_A1>::value, double>::type | |
sin(_A1 __lcpp_x) noexcept {return ::sin((double)__lcpp_x);} | |
inline __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) float sinh(float __lcpp_x) noexcept {return ::sinhf(__lcpp_x);} | |
inline __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) long double sinh(long double __lcpp_x) noexcept {return ::sinhl(__lcpp_x);} | |
template <class _A1> | |
inline __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) | |
typename std::enable_if<std::is_integral<_A1>::value, double>::type | |
sinh(_A1 __lcpp_x) noexcept {return ::sinh((double)__lcpp_x);} | |
inline __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) float sqrt(float __lcpp_x) noexcept {return ::sqrtf(__lcpp_x);} | |
inline __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) long double sqrt(long double __lcpp_x) noexcept {return ::sqrtl(__lcpp_x);} | |
template <class _A1> | |
inline __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) | |
typename std::enable_if<std::is_integral<_A1>::value, double>::type | |
sqrt(_A1 __lcpp_x) noexcept {return ::sqrt((double)__lcpp_x);} | |
inline __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) float tan(float __lcpp_x) noexcept {return ::tanf(__lcpp_x);} | |
inline __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) long double tan(long double __lcpp_x) noexcept {return ::tanl(__lcpp_x);} | |
template <class _A1> | |
inline __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) | |
typename std::enable_if<std::is_integral<_A1>::value, double>::type | |
tan(_A1 __lcpp_x) noexcept {return ::tan((double)__lcpp_x);} | |
inline __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) float tanh(float __lcpp_x) noexcept {return ::tanhf(__lcpp_x);} | |
inline __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) long double tanh(long double __lcpp_x) noexcept {return ::tanhl(__lcpp_x);} | |
template <class _A1> | |
inline __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) | |
typename std::enable_if<std::is_integral<_A1>::value, double>::type | |
tanh(_A1 __lcpp_x) noexcept {return ::tanh((double)__lcpp_x);} | |
inline __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) float acosh(float __lcpp_x) noexcept {return ::acoshf(__lcpp_x);} | |
inline __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) long double acosh(long double __lcpp_x) noexcept {return ::acoshl(__lcpp_x);} | |
template <class _A1> | |
inline __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) | |
typename std::enable_if<std::is_integral<_A1>::value, double>::type | |
acosh(_A1 __lcpp_x) noexcept {return ::acosh((double)__lcpp_x);} | |
inline __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) float asinh(float __lcpp_x) noexcept {return ::asinhf(__lcpp_x);} | |
inline __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) long double asinh(long double __lcpp_x) noexcept {return ::asinhl(__lcpp_x);} | |
template <class _A1> | |
inline __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) | |
typename std::enable_if<std::is_integral<_A1>::value, double>::type | |
asinh(_A1 __lcpp_x) noexcept {return ::asinh((double)__lcpp_x);} | |
inline __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) float atanh(float __lcpp_x) noexcept {return ::atanhf(__lcpp_x);} | |
inline __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) long double atanh(long double __lcpp_x) noexcept {return ::atanhl(__lcpp_x);} | |
template <class _A1> | |
inline __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) | |
typename std::enable_if<std::is_integral<_A1>::value, double>::type | |
atanh(_A1 __lcpp_x) noexcept {return ::atanh((double)__lcpp_x);} | |
inline __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) float cbrt(float __lcpp_x) noexcept {return ::cbrtf(__lcpp_x);} | |
inline __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) long double cbrt(long double __lcpp_x) noexcept {return ::cbrtl(__lcpp_x);} | |
template <class _A1> | |
inline __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) | |
typename std::enable_if<std::is_integral<_A1>::value, double>::type | |
cbrt(_A1 __lcpp_x) noexcept {return ::cbrt((double)__lcpp_x);} | |
constexpr | |
inline __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) float __libcpp_copysign(float __lcpp_x, float __lcpp_y) noexcept { | |
return __builtin_copysignf(__lcpp_x, __lcpp_y); | |
} | |
constexpr | |
inline __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) double __libcpp_copysign(double __lcpp_x, double __lcpp_y) noexcept { | |
return __builtin_copysign(__lcpp_x, __lcpp_y); | |
} | |
constexpr | |
inline __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) long double __libcpp_copysign(long double __lcpp_x, long double __lcpp_y) noexcept { | |
return __builtin_copysignl(__lcpp_x, __lcpp_y); | |
} | |
template <class _A1, class _A2> | |
constexpr | |
inline __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) | |
typename std::__enable_if_t | |
< | |
std::is_arithmetic<_A1>::value && | |
std::is_arithmetic<_A2>::value, | |
std::__promote<_A1, _A2> | |
>::type | |
__libcpp_copysign(_A1 __lcpp_x, _A2 __lcpp_y) noexcept { | |
typedef typename std::__promote<_A1, _A2>::type __result_type; | |
static_assert((!(std::_IsSame<_A1, __result_type>::value && | |
std::_IsSame<_A2, __result_type>::value)), ""); | |
return __builtin_copysign((__result_type)__lcpp_x, (__result_type)__lcpp_y); | |
} | |
inline __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) float copysign(float __lcpp_x, float __lcpp_y) noexcept { | |
return ::__libcpp_copysign(__lcpp_x, __lcpp_y); | |
} | |
inline __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) long double copysign(long double __lcpp_x, long double __lcpp_y) noexcept { | |
return ::__libcpp_copysign(__lcpp_x, __lcpp_y); | |
} | |
template <class _A1, class _A2> | |
inline __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) | |
typename std::__enable_if_t | |
< | |
std::is_arithmetic<_A1>::value && | |
std::is_arithmetic<_A2>::value, | |
std::__promote<_A1, _A2> | |
>::type | |
copysign(_A1 __lcpp_x, _A2 __lcpp_y) noexcept { | |
return ::__libcpp_copysign(__lcpp_x, __lcpp_y); | |
} | |
inline __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) float erf(float __lcpp_x) noexcept {return ::erff(__lcpp_x);} | |
inline __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) long double erf(long double __lcpp_x) noexcept {return ::erfl(__lcpp_x);} | |
template <class _A1> | |
inline __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) | |
typename std::enable_if<std::is_integral<_A1>::value, double>::type | |
erf(_A1 __lcpp_x) noexcept {return ::erf((double)__lcpp_x);} | |
inline __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) float erfc(float __lcpp_x) noexcept {return ::erfcf(__lcpp_x);} | |
inline __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) long double erfc(long double __lcpp_x) noexcept {return ::erfcl(__lcpp_x);} | |
template <class _A1> | |
inline __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) | |
typename std::enable_if<std::is_integral<_A1>::value, double>::type | |
erfc(_A1 __lcpp_x) noexcept {return ::erfc((double)__lcpp_x);} | |
inline __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) float exp2(float __lcpp_x) noexcept {return ::exp2f(__lcpp_x);} | |
inline __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) long double exp2(long double __lcpp_x) noexcept {return ::exp2l(__lcpp_x);} | |
template <class _A1> | |
inline __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) | |
typename std::enable_if<std::is_integral<_A1>::value, double>::type | |
exp2(_A1 __lcpp_x) noexcept {return ::exp2((double)__lcpp_x);} | |
inline __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) float expm1(float __lcpp_x) noexcept {return ::expm1f(__lcpp_x);} | |
inline __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) long double expm1(long double __lcpp_x) noexcept {return ::expm1l(__lcpp_x);} | |
template <class _A1> | |
inline __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) | |
typename std::enable_if<std::is_integral<_A1>::value, double>::type | |
expm1(_A1 __lcpp_x) noexcept {return ::expm1((double)__lcpp_x);} | |
inline __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) float fdim(float __lcpp_x, float __lcpp_y) noexcept {return ::fdimf(__lcpp_x, __lcpp_y);} | |
inline __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) long double fdim(long double __lcpp_x, long double __lcpp_y) noexcept {return ::fdiml(__lcpp_x, __lcpp_y);} | |
template <class _A1, class _A2> | |
inline __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) | |
typename std::__enable_if_t | |
< | |
std::is_arithmetic<_A1>::value && | |
std::is_arithmetic<_A2>::value, | |
std::__promote<_A1, _A2> | |
>::type | |
fdim(_A1 __lcpp_x, _A2 __lcpp_y) noexcept | |
{ | |
typedef typename std::__promote<_A1, _A2>::type __result_type; | |
static_assert((!(std::_IsSame<_A1, __result_type>::value && | |
std::_IsSame<_A2, __result_type>::value)), ""); | |
return ::fdim((__result_type)__lcpp_x, (__result_type)__lcpp_y); | |
} | |
inline __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) float fma(float __lcpp_x, float __lcpp_y, float __lcpp_z) noexcept | |
{ | |
return __builtin_fmaf(__lcpp_x, __lcpp_y, __lcpp_z); | |
} | |
inline __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) long double fma(long double __lcpp_x, long double __lcpp_y, long double __lcpp_z) noexcept | |
{ | |
return __builtin_fmal(__lcpp_x, __lcpp_y, __lcpp_z); | |
} | |
template <class _A1, class _A2, class _A3> | |
inline __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) | |
typename std::__enable_if_t | |
< | |
std::is_arithmetic<_A1>::value && | |
std::is_arithmetic<_A2>::value && | |
std::is_arithmetic<_A3>::value, | |
std::__promote<_A1, _A2, _A3> | |
>::type | |
fma(_A1 __lcpp_x, _A2 __lcpp_y, _A3 __lcpp_z) noexcept | |
{ | |
typedef typename std::__promote<_A1, _A2, _A3>::type __result_type; | |
static_assert((!(std::_IsSame<_A1, __result_type>::value && | |
std::_IsSame<_A2, __result_type>::value && | |
std::_IsSame<_A3, __result_type>::value)), ""); | |
return __builtin_fma((__result_type)__lcpp_x, (__result_type)__lcpp_y, (__result_type)__lcpp_z); | |
} | |
inline __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) float fmax(float __lcpp_x, float __lcpp_y) noexcept {return ::fmaxf(__lcpp_x, __lcpp_y);} | |
inline __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) long double fmax(long double __lcpp_x, long double __lcpp_y) noexcept {return ::fmaxl(__lcpp_x, __lcpp_y);} | |
template <class _A1, class _A2> | |
inline __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) | |
typename std::__enable_if_t | |
< | |
std::is_arithmetic<_A1>::value && | |
std::is_arithmetic<_A2>::value, | |
std::__promote<_A1, _A2> | |
>::type | |
fmax(_A1 __lcpp_x, _A2 __lcpp_y) noexcept | |
{ | |
typedef typename std::__promote<_A1, _A2>::type __result_type; | |
static_assert((!(std::_IsSame<_A1, __result_type>::value && | |
std::_IsSame<_A2, __result_type>::value)), ""); | |
return ::fmax((__result_type)__lcpp_x, (__result_type)__lcpp_y); | |
} | |
inline __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) float fmin(float __lcpp_x, float __lcpp_y) noexcept {return ::fminf(__lcpp_x, __lcpp_y);} | |
inline __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) long double fmin(long double __lcpp_x, long double __lcpp_y) noexcept {return ::fminl(__lcpp_x, __lcpp_y);} | |
template <class _A1, class _A2> | |
inline __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) | |
typename std::__enable_if_t | |
< | |
std::is_arithmetic<_A1>::value && | |
std::is_arithmetic<_A2>::value, | |
std::__promote<_A1, _A2> | |
>::type | |
fmin(_A1 __lcpp_x, _A2 __lcpp_y) noexcept | |
{ | |
typedef typename std::__promote<_A1, _A2>::type __result_type; | |
static_assert((!(std::_IsSame<_A1, __result_type>::value && | |
std::_IsSame<_A2, __result_type>::value)), ""); | |
return ::fmin((__result_type)__lcpp_x, (__result_type)__lcpp_y); | |
} | |
inline __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) float hypot(float __lcpp_x, float __lcpp_y) noexcept {return ::hypotf(__lcpp_x, __lcpp_y);} | |
inline __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) long double hypot(long double __lcpp_x, long double __lcpp_y) noexcept {return ::hypotl(__lcpp_x, __lcpp_y);} | |
template <class _A1, class _A2> | |
inline __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) | |
typename std::__enable_if_t | |
< | |
std::is_arithmetic<_A1>::value && | |
std::is_arithmetic<_A2>::value, | |
std::__promote<_A1, _A2> | |
>::type | |
hypot(_A1 __lcpp_x, _A2 __lcpp_y) noexcept | |
{ | |
typedef typename std::__promote<_A1, _A2>::type __result_type; | |
static_assert((!(std::_IsSame<_A1, __result_type>::value && | |
std::_IsSame<_A2, __result_type>::value)), ""); | |
return ::hypot((__result_type)__lcpp_x, (__result_type)__lcpp_y); | |
} | |
inline __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) int ilogb(float __lcpp_x) noexcept {return ::ilogbf(__lcpp_x);} | |
inline __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) int ilogb(long double __lcpp_x) noexcept {return ::ilogbl(__lcpp_x);} | |
template <class _A1> | |
inline __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) | |
typename std::enable_if<std::is_integral<_A1>::value, int>::type | |
ilogb(_A1 __lcpp_x) noexcept {return ::ilogb((double)__lcpp_x);} | |
inline __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) float lgamma(float __lcpp_x) noexcept {return ::lgammaf(__lcpp_x);} | |
inline __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) long double lgamma(long double __lcpp_x) noexcept {return ::lgammal(__lcpp_x);} | |
template <class _A1> | |
inline __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) | |
typename std::enable_if<std::is_integral<_A1>::value, double>::type | |
lgamma(_A1 __lcpp_x) noexcept {return ::lgamma((double)__lcpp_x);} | |
inline __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) long long llrint(float __lcpp_x) noexcept | |
{ | |
return __builtin_llrintf(__lcpp_x); | |
} | |
inline __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) long long llrint(long double __lcpp_x) noexcept | |
{ | |
return __builtin_llrintl(__lcpp_x); | |
} | |
template <class _A1> | |
inline __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) | |
typename std::enable_if<std::is_integral<_A1>::value, long long>::type | |
llrint(_A1 __lcpp_x) noexcept | |
{ | |
return __builtin_llrint((double)__lcpp_x); | |
} | |
inline __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) long long llround(float __lcpp_x) noexcept | |
{ | |
return __builtin_llroundf(__lcpp_x); | |
} | |
inline __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) long long llround(long double __lcpp_x) noexcept | |
{ | |
return __builtin_llroundl(__lcpp_x); | |
} | |
template <class _A1> | |
inline __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) | |
typename std::enable_if<std::is_integral<_A1>::value, long long>::type | |
llround(_A1 __lcpp_x) noexcept | |
{ | |
return __builtin_llround((double)__lcpp_x); | |
} | |
inline __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) float log1p(float __lcpp_x) noexcept {return ::log1pf(__lcpp_x);} | |
inline __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) long double log1p(long double __lcpp_x) noexcept {return ::log1pl(__lcpp_x);} | |
template <class _A1> | |
inline __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) | |
typename std::enable_if<std::is_integral<_A1>::value, double>::type | |
log1p(_A1 __lcpp_x) noexcept {return ::log1p((double)__lcpp_x);} | |
inline __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) float log2(float __lcpp_x) noexcept {return ::log2f(__lcpp_x);} | |
inline __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) long double log2(long double __lcpp_x) noexcept {return ::log2l(__lcpp_x);} | |
template <class _A1> | |
inline __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) | |
typename std::enable_if<std::is_integral<_A1>::value, double>::type | |
log2(_A1 __lcpp_x) noexcept {return ::log2((double)__lcpp_x);} | |
inline __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) float logb(float __lcpp_x) noexcept {return ::logbf(__lcpp_x);} | |
inline __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) long double logb(long double __lcpp_x) noexcept {return ::logbl(__lcpp_x);} | |
template <class _A1> | |
inline __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) | |
typename std::enable_if<std::is_integral<_A1>::value, double>::type | |
logb(_A1 __lcpp_x) noexcept {return ::logb((double)__lcpp_x);} | |
inline __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) long lrint(float __lcpp_x) noexcept | |
{ | |
return __builtin_lrintf(__lcpp_x); | |
} | |
inline __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) long lrint(long double __lcpp_x) noexcept | |
{ | |
return __builtin_lrintl(__lcpp_x); | |
} | |
template <class _A1> | |
inline __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) | |
typename std::enable_if<std::is_integral<_A1>::value, long>::type | |
lrint(_A1 __lcpp_x) noexcept | |
{ | |
return __builtin_lrint((double)__lcpp_x); | |
} | |
inline __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) long lround(float __lcpp_x) noexcept | |
{ | |
return __builtin_lroundf(__lcpp_x); | |
} | |
inline __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) long lround(long double __lcpp_x) noexcept | |
{ | |
return __builtin_lroundl(__lcpp_x); | |
} | |
template <class _A1> | |
inline __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) | |
typename std::enable_if<std::is_integral<_A1>::value, long>::type | |
lround(_A1 __lcpp_x) noexcept | |
{ | |
return __builtin_lround((double)__lcpp_x); | |
} | |
inline __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) float nearbyint(float __lcpp_x) noexcept {return ::nearbyintf(__lcpp_x);} | |
inline __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) long double nearbyint(long double __lcpp_x) noexcept {return ::nearbyintl(__lcpp_x);} | |
template <class _A1> | |
inline __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) | |
typename std::enable_if<std::is_integral<_A1>::value, double>::type | |
nearbyint(_A1 __lcpp_x) noexcept {return ::nearbyint((double)__lcpp_x);} | |
inline __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) float nextafter(float __lcpp_x, float __lcpp_y) noexcept {return ::nextafterf(__lcpp_x, __lcpp_y);} | |
inline __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) long double nextafter(long double __lcpp_x, long double __lcpp_y) noexcept {return ::nextafterl(__lcpp_x, __lcpp_y);} | |
template <class _A1, class _A2> | |
inline __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) | |
typename std::__enable_if_t | |
< | |
std::is_arithmetic<_A1>::value && | |
std::is_arithmetic<_A2>::value, | |
std::__promote<_A1, _A2> | |
>::type | |
nextafter(_A1 __lcpp_x, _A2 __lcpp_y) noexcept | |
{ | |
typedef typename std::__promote<_A1, _A2>::type __result_type; | |
static_assert((!(std::_IsSame<_A1, __result_type>::value && | |
std::_IsSame<_A2, __result_type>::value)), ""); | |
return ::nextafter((__result_type)__lcpp_x, (__result_type)__lcpp_y); | |
} | |
inline __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) float nexttoward(float __lcpp_x, long double __lcpp_y) noexcept {return ::nexttowardf(__lcpp_x, __lcpp_y);} | |
inline __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) long double nexttoward(long double __lcpp_x, long double __lcpp_y) noexcept {return ::nexttowardl(__lcpp_x, __lcpp_y);} | |
template <class _A1> | |
inline __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) | |
typename std::enable_if<std::is_integral<_A1>::value, double>::type | |
nexttoward(_A1 __lcpp_x, long double __lcpp_y) noexcept {return ::nexttoward((double)__lcpp_x, __lcpp_y);} | |
inline __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) float remainder(float __lcpp_x, float __lcpp_y) noexcept {return ::remainderf(__lcpp_x, __lcpp_y);} | |
inline __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) long double remainder(long double __lcpp_x, long double __lcpp_y) noexcept {return ::remainderl(__lcpp_x, __lcpp_y);} | |
template <class _A1, class _A2> | |
inline __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) | |
typename std::__enable_if_t | |
< | |
std::is_arithmetic<_A1>::value && | |
std::is_arithmetic<_A2>::value, | |
std::__promote<_A1, _A2> | |
>::type | |
remainder(_A1 __lcpp_x, _A2 __lcpp_y) noexcept | |
{ | |
typedef typename std::__promote<_A1, _A2>::type __result_type; | |
static_assert((!(std::_IsSame<_A1, __result_type>::value && | |
std::_IsSame<_A2, __result_type>::value)), ""); | |
return ::remainder((__result_type)__lcpp_x, (__result_type)__lcpp_y); | |
} | |
inline __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) float remquo(float __lcpp_x, float __lcpp_y, int* __lcpp_z) noexcept {return ::remquof(__lcpp_x, __lcpp_y, __lcpp_z);} | |
inline __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) long double remquo(long double __lcpp_x, long double __lcpp_y, int* __lcpp_z) noexcept {return ::remquol(__lcpp_x, __lcpp_y, __lcpp_z);} | |
template <class _A1, class _A2> | |
inline __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) | |
typename std::__enable_if_t | |
< | |
std::is_arithmetic<_A1>::value && | |
std::is_arithmetic<_A2>::value, | |
std::__promote<_A1, _A2> | |
>::type | |
remquo(_A1 __lcpp_x, _A2 __lcpp_y, int* __lcpp_z) noexcept | |
{ | |
typedef typename std::__promote<_A1, _A2>::type __result_type; | |
static_assert((!(std::_IsSame<_A1, __result_type>::value && | |
std::_IsSame<_A2, __result_type>::value)), ""); | |
return ::remquo((__result_type)__lcpp_x, (__result_type)__lcpp_y, __lcpp_z); | |
} | |
inline __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) float rint(float __lcpp_x) noexcept | |
{ | |
return __builtin_rintf(__lcpp_x); | |
} | |
inline __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) long double rint(long double __lcpp_x) noexcept | |
{ | |
return __builtin_rintl(__lcpp_x); | |
} | |
template <class _A1> | |
inline __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) | |
typename std::enable_if<std::is_integral<_A1>::value, double>::type | |
rint(_A1 __lcpp_x) noexcept | |
{ | |
return __builtin_rint((double)__lcpp_x); | |
} | |
inline __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) float round(float __lcpp_x) noexcept | |
{ | |
return __builtin_round(__lcpp_x); | |
} | |
inline __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) long double round(long double __lcpp_x) noexcept | |
{ | |
return __builtin_roundl(__lcpp_x); | |
} | |
template <class _A1> | |
inline __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) | |
typename std::enable_if<std::is_integral<_A1>::value, double>::type | |
round(_A1 __lcpp_x) noexcept | |
{ | |
return __builtin_round((double)__lcpp_x); | |
} | |
inline __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) float scalbln(float __lcpp_x, long __lcpp_y) noexcept {return ::scalblnf(__lcpp_x, __lcpp_y);} | |
inline __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) long double scalbln(long double __lcpp_x, long __lcpp_y) noexcept {return ::scalblnl(__lcpp_x, __lcpp_y);} | |
template <class _A1> | |
inline __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) | |
typename std::enable_if<std::is_integral<_A1>::value, double>::type | |
scalbln(_A1 __lcpp_x, long __lcpp_y) noexcept {return ::scalbln((double)__lcpp_x, __lcpp_y);} | |
inline __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) float scalbn(float __lcpp_x, int __lcpp_y) noexcept {return ::scalbnf(__lcpp_x, __lcpp_y);} | |
inline __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) long double scalbn(long double __lcpp_x, int __lcpp_y) noexcept {return ::scalbnl(__lcpp_x, __lcpp_y);} | |
template <class _A1> | |
inline __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) | |
typename std::enable_if<std::is_integral<_A1>::value, double>::type | |
scalbn(_A1 __lcpp_x, int __lcpp_y) noexcept {return ::scalbn((double)__lcpp_x, __lcpp_y);} | |
inline __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) float tgamma(float __lcpp_x) noexcept {return ::tgammaf(__lcpp_x);} | |
inline __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) long double tgamma(long double __lcpp_x) noexcept {return ::tgammal(__lcpp_x);} | |
template <class _A1> | |
inline __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) | |
typename std::enable_if<std::is_integral<_A1>::value, double>::type | |
tgamma(_A1 __lcpp_x) noexcept {return ::tgamma((double)__lcpp_x);} | |
inline __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) float trunc(float __lcpp_x) noexcept | |
{ | |
return __builtin_trunc(__lcpp_x); | |
} | |
inline __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) long double trunc(long double __lcpp_x) noexcept | |
{ | |
return __builtin_truncl(__lcpp_x); | |
} | |
template <class _A1> | |
inline __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) | |
typename std::enable_if<std::is_integral<_A1>::value, double>::type | |
trunc(_A1 __lcpp_x) noexcept | |
{ | |
return __builtin_trunc((double)__lcpp_x); | |
} | |
} | |
# 313 "../../buildtools/third_party/libc++/trunk/include/cmath" 2 3 | |
# 324 "../../buildtools/third_party/libc++/trunk/include/cmath" 3 | |
# 1 "../../buildtools/third_party/libc++/trunk/include/__undef_macros" 1 3 | |
# 328 "../../buildtools/third_party/libc++/trunk/include/cmath" 2 3 | |
namespace std { inline namespace Cr { | |
using ::signbit __attribute__((__using_if_exists__)); | |
using ::fpclassify __attribute__((__using_if_exists__)); | |
using ::isfinite __attribute__((__using_if_exists__)); | |
using ::isinf __attribute__((__using_if_exists__)); | |
using ::isnan __attribute__((__using_if_exists__)); | |
using ::isnormal __attribute__((__using_if_exists__)); | |
using ::isgreater __attribute__((__using_if_exists__)); | |
using ::isgreaterequal __attribute__((__using_if_exists__)); | |
using ::isless __attribute__((__using_if_exists__)); | |
using ::islessequal __attribute__((__using_if_exists__)); | |
using ::islessgreater __attribute__((__using_if_exists__)); | |
using ::isunordered __attribute__((__using_if_exists__)); | |
using ::isunordered __attribute__((__using_if_exists__)); | |
using ::float_t __attribute__((__using_if_exists__)); | |
using ::double_t __attribute__((__using_if_exists__)); | |
using ::abs __attribute__((__using_if_exists__)); | |
using ::acos __attribute__((__using_if_exists__)); | |
using ::acosf __attribute__((__using_if_exists__)); | |
using ::asin __attribute__((__using_if_exists__)); | |
using ::asinf __attribute__((__using_if_exists__)); | |
using ::atan __attribute__((__using_if_exists__)); | |
using ::atanf __attribute__((__using_if_exists__)); | |
using ::atan2 __attribute__((__using_if_exists__)); | |
using ::atan2f __attribute__((__using_if_exists__)); | |
using ::ceil __attribute__((__using_if_exists__)); | |
using ::ceilf __attribute__((__using_if_exists__)); | |
using ::cos __attribute__((__using_if_exists__)); | |
using ::cosf __attribute__((__using_if_exists__)); | |
using ::cosh __attribute__((__using_if_exists__)); | |
using ::coshf __attribute__((__using_if_exists__)); | |
using ::exp __attribute__((__using_if_exists__)); | |
using ::expf __attribute__((__using_if_exists__)); | |
using ::fabs __attribute__((__using_if_exists__)); | |
using ::fabsf __attribute__((__using_if_exists__)); | |
using ::floor __attribute__((__using_if_exists__)); | |
using ::floorf __attribute__((__using_if_exists__)); | |
using ::fmod __attribute__((__using_if_exists__)); | |
using ::fmodf __attribute__((__using_if_exists__)); | |
using ::frexp __attribute__((__using_if_exists__)); | |
using ::frexpf __attribute__((__using_if_exists__)); | |
using ::ldexp __attribute__((__using_if_exists__)); | |
using ::ldexpf __attribute__((__using_if_exists__)); | |
using ::log __attribute__((__using_if_exists__)); | |
using ::logf __attribute__((__using_if_exists__)); | |
using ::log10 __attribute__((__using_if_exists__)); | |
using ::log10f __attribute__((__using_if_exists__)); | |
using ::modf __attribute__((__using_if_exists__)); | |
using ::modff __attribute__((__using_if_exists__)); | |
using ::pow __attribute__((__using_if_exists__)); | |
using ::powf __attribute__((__using_if_exists__)); | |
using ::sin __attribute__((__using_if_exists__)); | |
using ::sinf __attribute__((__using_if_exists__)); | |
using ::sinh __attribute__((__using_if_exists__)); | |
using ::sinhf __attribute__((__using_if_exists__)); | |
using ::sqrt __attribute__((__using_if_exists__)); | |
using ::sqrtf __attribute__((__using_if_exists__)); | |
using ::tan __attribute__((__using_if_exists__)); | |
using ::tanf __attribute__((__using_if_exists__)); | |
using ::tanh __attribute__((__using_if_exists__)); | |
using ::tanhf __attribute__((__using_if_exists__)); | |
using ::acosh __attribute__((__using_if_exists__)); | |
using ::acoshf __attribute__((__using_if_exists__)); | |
using ::asinh __attribute__((__using_if_exists__)); | |
using ::asinhf __attribute__((__using_if_exists__)); | |
using ::atanh __attribute__((__using_if_exists__)); | |
using ::atanhf __attribute__((__using_if_exists__)); | |
using ::cbrt __attribute__((__using_if_exists__)); | |
using ::cbrtf __attribute__((__using_if_exists__)); | |
using ::copysign __attribute__((__using_if_exists__)); | |
using ::copysignf __attribute__((__using_if_exists__)); | |
using ::erf __attribute__((__using_if_exists__)); | |
using ::erff __attribute__((__using_if_exists__)); | |
using ::erfc __attribute__((__using_if_exists__)); | |
using ::erfcf __attribute__((__using_if_exists__)); | |
using ::exp2 __attribute__((__using_if_exists__)); | |
using ::exp2f __attribute__((__using_if_exists__)); | |
using ::expm1 __attribute__((__using_if_exists__)); | |
using ::expm1f __attribute__((__using_if_exists__)); | |
using ::fdim __attribute__((__using_if_exists__)); | |
using ::fdimf __attribute__((__using_if_exists__)); | |
using ::fmaf __attribute__((__using_if_exists__)); | |
using ::fma __attribute__((__using_if_exists__)); | |
using ::fmax __attribute__((__using_if_exists__)); | |
using ::fmaxf __attribute__((__using_if_exists__)); | |
using ::fmin __attribute__((__using_if_exists__)); | |
using ::fminf __attribute__((__using_if_exists__)); | |
using ::hypot __attribute__((__using_if_exists__)); | |
using ::hypotf __attribute__((__using_if_exists__)); | |
using ::ilogb __attribute__((__using_if_exists__)); | |
using ::ilogbf __attribute__((__using_if_exists__)); | |
using ::lgamma __attribute__((__using_if_exists__)); | |
using ::lgammaf __attribute__((__using_if_exists__)); | |
using ::llrint __attribute__((__using_if_exists__)); | |
using ::llrintf __attribute__((__using_if_exists__)); | |
using ::llround __attribute__((__using_if_exists__)); | |
using ::llroundf __attribute__((__using_if_exists__)); | |
using ::log1p __attribute__((__using_if_exists__)); | |
using ::log1pf __attribute__((__using_if_exists__)); | |
using ::log2 __attribute__((__using_if_exists__)); | |
using ::log2f __attribute__((__using_if_exists__)); | |
using ::logb __attribute__((__using_if_exists__)); | |
using ::logbf __attribute__((__using_if_exists__)); | |
using ::lrint __attribute__((__using_if_exists__)); | |
using ::lrintf __attribute__((__using_if_exists__)); | |
using ::lround __attribute__((__using_if_exists__)); | |
using ::lroundf __attribute__((__using_if_exists__)); | |
using ::nan __attribute__((__using_if_exists__)); | |
using ::nanf __attribute__((__using_if_exists__)); | |
using ::nearbyint __attribute__((__using_if_exists__)); | |
using ::nearbyintf __attribute__((__using_if_exists__)); | |
using ::nextafter __attribute__((__using_if_exists__)); | |
using ::nextafterf __attribute__((__using_if_exists__)); | |
using ::nexttoward __attribute__((__using_if_exists__)); | |
using ::nexttowardf __attribute__((__using_if_exists__)); | |
using ::remainder __attribute__((__using_if_exists__)); | |
using ::remainderf __attribute__((__using_if_exists__)); | |
using ::remquo __attribute__((__using_if_exists__)); | |
using ::remquof __attribute__((__using_if_exists__)); | |
using ::rint __attribute__((__using_if_exists__)); | |
using ::rintf __attribute__((__using_if_exists__)); | |
using ::round __attribute__((__using_if_exists__)); | |
using ::roundf __attribute__((__using_if_exists__)); | |
using ::scalbln __attribute__((__using_if_exists__)); | |
using ::scalblnf __attribute__((__using_if_exists__)); | |
using ::scalbn __attribute__((__using_if_exists__)); | |
using ::scalbnf __attribute__((__using_if_exists__)); | |
using ::tgamma __attribute__((__using_if_exists__)); | |
using ::tgammaf __attribute__((__using_if_exists__)); | |
using ::trunc __attribute__((__using_if_exists__)); | |
using ::truncf __attribute__((__using_if_exists__)); | |
using ::acosl __attribute__((__using_if_exists__)); | |
using ::asinl __attribute__((__using_if_exists__)); | |
using ::atanl __attribute__((__using_if_exists__)); | |
using ::atan2l __attribute__((__using_if_exists__)); | |
using ::ceill __attribute__((__using_if_exists__)); | |
using ::cosl __attribute__((__using_if_exists__)); | |
using ::coshl __attribute__((__using_if_exists__)); | |
using ::expl __attribute__((__using_if_exists__)); | |
using ::fabsl __attribute__((__using_if_exists__)); | |
using ::floorl __attribute__((__using_if_exists__)); | |
using ::fmodl __attribute__((__using_if_exists__)); | |
using ::frexpl __attribute__((__using_if_exists__)); | |
using ::ldexpl __attribute__((__using_if_exists__)); | |
using ::logl __attribute__((__using_if_exists__)); | |
using ::log10l __attribute__((__using_if_exists__)); | |
using ::modfl __attribute__((__using_if_exists__)); | |
using ::powl __attribute__((__using_if_exists__)); | |
using ::sinl __attribute__((__using_if_exists__)); | |
using ::sinhl __attribute__((__using_if_exists__)); | |
using ::sqrtl __attribute__((__using_if_exists__)); | |
using ::tanl __attribute__((__using_if_exists__)); | |
using ::tanhl __attribute__((__using_if_exists__)); | |
using ::acoshl __attribute__((__using_if_exists__)); | |
using ::asinhl __attribute__((__using_if_exists__)); | |
using ::atanhl __attribute__((__using_if_exists__)); | |
using ::cbrtl __attribute__((__using_if_exists__)); | |
using ::copysignl __attribute__((__using_if_exists__)); | |
using ::erfl __attribute__((__using_if_exists__)); | |
using ::erfcl __attribute__((__using_if_exists__)); | |
using ::exp2l __attribute__((__using_if_exists__)); | |
using ::expm1l __attribute__((__using_if_exists__)); | |
using ::fdiml __attribute__((__using_if_exists__)); | |
using ::fmal __attribute__((__using_if_exists__)); | |
using ::fmaxl __attribute__((__using_if_exists__)); | |
using ::fminl __attribute__((__using_if_exists__)); | |
using ::hypotl __attribute__((__using_if_exists__)); | |
using ::ilogbl __attribute__((__using_if_exists__)); | |
using ::lgammal __attribute__((__using_if_exists__)); | |
using ::llrintl __attribute__((__using_if_exists__)); | |
using ::llroundl __attribute__((__using_if_exists__)); | |
using ::log1pl __attribute__((__using_if_exists__)); | |
using ::log2l __attribute__((__using_if_exists__)); | |
using ::logbl __attribute__((__using_if_exists__)); | |
using ::lrintl __attribute__((__using_if_exists__)); | |
using ::lroundl __attribute__((__using_if_exists__)); | |
using ::nanl __attribute__((__using_if_exists__)); | |
using ::nearbyintl __attribute__((__using_if_exists__)); | |
using ::nextafterl __attribute__((__using_if_exists__)); | |
using ::nexttowardl __attribute__((__using_if_exists__)); | |
using ::remainderl __attribute__((__using_if_exists__)); | |
using ::remquol __attribute__((__using_if_exists__)); | |
using ::rintl __attribute__((__using_if_exists__)); | |
using ::roundl __attribute__((__using_if_exists__)); | |
using ::scalblnl __attribute__((__using_if_exists__)); | |
using ::scalbnl __attribute__((__using_if_exists__)); | |
using ::tgammal __attribute__((__using_if_exists__)); | |
using ::truncl __attribute__((__using_if_exists__)); | |
inline __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) float hypot( float __x, float __y, float __z ) { return sqrt(__x*__x + __y*__y + __z*__z); } | |
inline __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) double hypot( double __x, double __y, double __z ) { return sqrt(__x*__x + __y*__y + __z*__z); } | |
inline __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) long double hypot( long double __x, long double __y, long double __z ) { return sqrt(__x*__x + __y*__y + __z*__z); } | |
template <class _A1, class _A2, class _A3> | |
inline __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) | |
typename enable_if_t | |
< | |
is_arithmetic<_A1>::value && | |
is_arithmetic<_A2>::value && | |
is_arithmetic<_A3>::value, | |
__promote<_A1, _A2, _A3> | |
>::type | |
hypot(_A1 __lcpp_x, _A2 __lcpp_y, _A3 __lcpp_z) noexcept | |
{ | |
typedef typename __promote<_A1, _A2, _A3>::type __result_type; | |
static_assert((!(is_same<_A1, __result_type>::value && | |
is_same<_A2, __result_type>::value && | |
is_same<_A3, __result_type>::value)), ""); | |
return hypot((__result_type)__lcpp_x, (__result_type)__lcpp_y, (__result_type)__lcpp_z); | |
} | |
template <class _A1> | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) | |
constexpr typename enable_if<is_floating_point<_A1>::value, bool>::type | |
__libcpp_isnan_or_builtin(_A1 __lcpp_x) noexcept | |
{ | |
return __builtin_isnan(__lcpp_x); | |
} | |
template <class _A1> | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) | |
constexpr typename enable_if<!is_floating_point<_A1>::value, bool>::type | |
__libcpp_isnan_or_builtin(_A1 __lcpp_x) noexcept | |
{ | |
return isnan(__lcpp_x); | |
} | |
template <class _A1> | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) | |
constexpr typename enable_if<is_floating_point<_A1>::value, bool>::type | |
__libcpp_isinf_or_builtin(_A1 __lcpp_x) noexcept | |
{ | |
return __builtin_isinf(__lcpp_x); | |
} | |
template <class _A1> | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) | |
constexpr typename enable_if<!is_floating_point<_A1>::value, bool>::type | |
__libcpp_isinf_or_builtin(_A1 __lcpp_x) noexcept | |
{ | |
return isinf(__lcpp_x); | |
} | |
template <class _A1> | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) | |
constexpr typename enable_if<is_floating_point<_A1>::value, bool>::type | |
__libcpp_isfinite_or_builtin(_A1 __lcpp_x) noexcept | |
{ | |
return __builtin_isfinite(__lcpp_x); | |
} | |
template <class _A1> | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) | |
constexpr typename enable_if<!is_floating_point<_A1>::value, bool>::type | |
__libcpp_isfinite_or_builtin(_A1 __lcpp_x) noexcept | |
{ | |
return isfinite(__lcpp_x); | |
} | |
# 668 "../../buildtools/third_party/libc++/trunk/include/cmath" 3 | |
}} | |
# 19 "../../buildtools/third_party/libc++/trunk/include/__compare/strong_order.h" 2 3 | |
# 25 "../../buildtools/third_party/libc++/trunk/include/__compare/strong_order.h" 3 | |
# 1 "../../buildtools/third_party/libc++/trunk/include/__undef_macros" 1 3 | |
# 29 "../../buildtools/third_party/libc++/trunk/include/__compare/strong_order.h" 2 3 | |
namespace std { inline namespace Cr { | |
# 132 "../../buildtools/third_party/libc++/trunk/include/__compare/strong_order.h" 3 | |
}} | |
# 15 "../../buildtools/third_party/libc++/trunk/include/__compare/weak_order.h" 2 3 | |
# 23 "../../buildtools/third_party/libc++/trunk/include/__compare/weak_order.h" 3 | |
namespace std { inline namespace Cr { | |
# 98 "../../buildtools/third_party/libc++/trunk/include/__compare/weak_order.h" 3 | |
}} | |
# 15 "../../buildtools/third_party/libc++/trunk/include/__compare/partial_order.h" 2 3 | |
# 22 "../../buildtools/third_party/libc++/trunk/include/__compare/partial_order.h" 3 | |
namespace std { inline namespace Cr { | |
# 69 "../../buildtools/third_party/libc++/trunk/include/__compare/partial_order.h" 3 | |
}} | |
# 14 "../../buildtools/third_party/libc++/trunk/include/__compare/compare_partial_order_fallback.h" 2 3 | |
# 21 "../../buildtools/third_party/libc++/trunk/include/__compare/compare_partial_order_fallback.h" 3 | |
namespace std { inline namespace Cr { | |
# 71 "../../buildtools/third_party/libc++/trunk/include/__compare/compare_partial_order_fallback.h" 3 | |
}} | |
# 146 "../../buildtools/third_party/libc++/trunk/include/compare" 2 3 | |
# 1 "../../buildtools/third_party/libc++/trunk/include/__compare/compare_strong_order_fallback.h" 1 3 | |
# 10 "../../buildtools/third_party/libc++/trunk/include/__compare/compare_strong_order_fallback.h" 3 | |
#define _LIBCPP___COMPARE_COMPARE_STRONG_ORDER_FALLBACK | |
# 21 "../../buildtools/third_party/libc++/trunk/include/__compare/compare_strong_order_fallback.h" 3 | |
namespace std { inline namespace Cr { | |
# 68 "../../buildtools/third_party/libc++/trunk/include/__compare/compare_strong_order_fallback.h" 3 | |
}} | |
# 147 "../../buildtools/third_party/libc++/trunk/include/compare" 2 3 | |
# 1 "../../buildtools/third_party/libc++/trunk/include/__compare/compare_weak_order_fallback.h" 1 3 | |
# 10 "../../buildtools/third_party/libc++/trunk/include/__compare/compare_weak_order_fallback.h" 3 | |
#define _LIBCPP___COMPARE_COMPARE_WEAK_ORDER_FALLBACK | |
# 21 "../../buildtools/third_party/libc++/trunk/include/__compare/compare_weak_order_fallback.h" 3 | |
namespace std { inline namespace Cr { | |
# 68 "../../buildtools/third_party/libc++/trunk/include/__compare/compare_weak_order_fallback.h" 3 | |
}} | |
# 150 "../../buildtools/third_party/libc++/trunk/include/compare" 2 3 | |
# 1 "../../buildtools/third_party/libc++/trunk/include/__compare/is_eq.h" 1 3 | |
# 10 "../../buildtools/third_party/libc++/trunk/include/__compare/is_eq.h" 3 | |
#define _LIBCPP___COMPARE_IS_EQ_H | |
# 17 "../../buildtools/third_party/libc++/trunk/include/__compare/is_eq.h" 3 | |
namespace std { inline namespace Cr { | |
# 32 "../../buildtools/third_party/libc++/trunk/include/__compare/is_eq.h" 3 | |
}} | |
# 151 "../../buildtools/third_party/libc++/trunk/include/compare" 2 3 | |
# 161 "../../buildtools/third_party/libc++/trunk/include/compare" 3 | |
# 225 "../../buildtools/third_party/libc++/trunk/include/tuple" 2 3 | |
# 228 "../../buildtools/third_party/libc++/trunk/include/tuple" 3 | |
namespace std { inline namespace Cr { | |
template <size_t _Ip, class _Hp, | |
bool=is_empty<_Hp>::value && !__libcpp_is_final<_Hp>::value | |
> | |
class __tuple_leaf; | |
template <size_t _Ip, class _Hp, bool _Ep> | |
inline __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) constexpr | |
void swap(__tuple_leaf<_Ip, _Hp, _Ep>& __x, __tuple_leaf<_Ip, _Hp, _Ep>& __y) | |
noexcept(__is_nothrow_swappable<_Hp>::value) | |
{ | |
swap(__x.get(), __y.get()); | |
} | |
template <size_t _Ip, class _Hp, bool _Ep> | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) constexpr | |
void swap(const __tuple_leaf<_Ip, _Hp, _Ep>& __x, const __tuple_leaf<_Ip, _Hp, _Ep>& __y) | |
noexcept(__is_nothrow_swappable<const _Hp>::value) { | |
swap(__x.get(), __y.get()); | |
} | |
template <size_t _Ip, class _Hp, bool> | |
class __tuple_leaf | |
{ | |
_Hp __value_; | |
template <class _Tp> | |
static constexpr bool __can_bind_reference() { | |
return !__reference_binds_to_temporary(_Hp, _Tp); | |
} | |
constexpr | |
__tuple_leaf& operator=(const __tuple_leaf&); | |
public: | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) constexpr __tuple_leaf() | |
noexcept(is_nothrow_default_constructible<_Hp>::value) : __value_() | |
{static_assert(!is_reference<_Hp>::value, | |
"Attempted to default construct a reference element in a tuple");} | |
template <class _Alloc> | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) constexpr | |
__tuple_leaf(integral_constant<int, 0>, const _Alloc&) | |
: __value_() | |
{static_assert(!is_reference<_Hp>::value, | |
"Attempted to default construct a reference element in a tuple");} | |
template <class _Alloc> | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) constexpr | |
__tuple_leaf(integral_constant<int, 1>, const _Alloc& __a) | |
: __value_(allocator_arg_t(), __a) | |
{static_assert(!is_reference<_Hp>::value, | |
"Attempted to default construct a reference element in a tuple");} | |
template <class _Alloc> | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) constexpr | |
__tuple_leaf(integral_constant<int, 2>, const _Alloc& __a) | |
: __value_(__a) | |
{static_assert(!is_reference<_Hp>::value, | |
"Attempted to default construct a reference element in a tuple");} | |
template <class _Tp, | |
class = __enable_if_t< | |
_And< | |
_IsNotSame<__remove_cvref_t<_Tp>, __tuple_leaf>, | |
is_constructible<_Hp, _Tp> | |
>::value | |
> | |
> | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) constexpr | |
explicit __tuple_leaf(_Tp&& __t) noexcept((is_nothrow_constructible<_Hp, _Tp>::value)) | |
: __value_(std::forward<_Tp>(__t)) | |
{static_assert(__can_bind_reference<_Tp&&>(), | |
"Attempted construction of reference element binds to a temporary whose lifetime has ended");} | |
template <class _Tp, class _Alloc> | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) constexpr | |
explicit __tuple_leaf(integral_constant<int, 0>, const _Alloc&, _Tp&& __t) | |
: __value_(std::forward<_Tp>(__t)) | |
{static_assert(__can_bind_reference<_Tp&&>(), | |
"Attempted construction of reference element binds to a temporary whose lifetime has ended");} | |
template <class _Tp, class _Alloc> | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) constexpr | |
explicit __tuple_leaf(integral_constant<int, 1>, const _Alloc& __a, _Tp&& __t) | |
: __value_(allocator_arg_t(), __a, std::forward<_Tp>(__t)) | |
{static_assert(!is_reference<_Hp>::value, | |
"Attempted to uses-allocator construct a reference element in a tuple");} | |
template <class _Tp, class _Alloc> | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) constexpr | |
explicit __tuple_leaf(integral_constant<int, 2>, const _Alloc& __a, _Tp&& __t) | |
: __value_(std::forward<_Tp>(__t), __a) | |
{static_assert(!is_reference<_Hp>::value, | |
"Attempted to uses-allocator construct a reference element in a tuple");} | |
__tuple_leaf(const __tuple_leaf& __t) = default; | |
__tuple_leaf(__tuple_leaf&& __t) = default; | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) constexpr | |
int swap(__tuple_leaf& __t) noexcept(__is_nothrow_swappable<__tuple_leaf>::value) | |
{ | |
std::swap(*this, __t); | |
return 0; | |
} | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) constexpr | |
int swap(const __tuple_leaf& __t) const noexcept(__is_nothrow_swappable<const __tuple_leaf>::value) { | |
std::swap(*this, __t); | |
return 0; | |
} | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) constexpr _Hp& get() noexcept {return __value_;} | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) constexpr const _Hp& get() const noexcept {return __value_;} | |
}; | |
template <size_t _Ip, class _Hp> | |
class __tuple_leaf<_Ip, _Hp, true> | |
: private _Hp | |
{ | |
constexpr | |
__tuple_leaf& operator=(const __tuple_leaf&); | |
public: | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) constexpr __tuple_leaf() | |
noexcept(is_nothrow_default_constructible<_Hp>::value) {} | |
template <class _Alloc> | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) constexpr | |
__tuple_leaf(integral_constant<int, 0>, const _Alloc&) {} | |
template <class _Alloc> | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) constexpr | |
__tuple_leaf(integral_constant<int, 1>, const _Alloc& __a) | |
: _Hp(allocator_arg_t(), __a) {} | |
template <class _Alloc> | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) constexpr | |
__tuple_leaf(integral_constant<int, 2>, const _Alloc& __a) | |
: _Hp(__a) {} | |
template <class _Tp, | |
class = __enable_if_t< | |
_And< | |
_IsNotSame<__remove_cvref_t<_Tp>, __tuple_leaf>, | |
is_constructible<_Hp, _Tp> | |
>::value | |
> | |
> | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) constexpr | |
explicit __tuple_leaf(_Tp&& __t) noexcept((is_nothrow_constructible<_Hp, _Tp>::value)) | |
: _Hp(std::forward<_Tp>(__t)) {} | |
template <class _Tp, class _Alloc> | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) constexpr | |
explicit __tuple_leaf(integral_constant<int, 0>, const _Alloc&, _Tp&& __t) | |
: _Hp(std::forward<_Tp>(__t)) {} | |
template <class _Tp, class _Alloc> | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) constexpr | |
explicit __tuple_leaf(integral_constant<int, 1>, const _Alloc& __a, _Tp&& __t) | |
: _Hp(allocator_arg_t(), __a, std::forward<_Tp>(__t)) {} | |
template <class _Tp, class _Alloc> | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) constexpr | |
explicit __tuple_leaf(integral_constant<int, 2>, const _Alloc& __a, _Tp&& __t) | |
: _Hp(std::forward<_Tp>(__t), __a) {} | |
__tuple_leaf(__tuple_leaf const &) = default; | |
__tuple_leaf(__tuple_leaf &&) = default; | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) constexpr | |
int | |
swap(__tuple_leaf& __t) noexcept(__is_nothrow_swappable<__tuple_leaf>::value) | |
{ | |
std::swap(*this, __t); | |
return 0; | |
} | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) constexpr | |
int swap(const __tuple_leaf& __rhs) const noexcept(__is_nothrow_swappable<const __tuple_leaf>::value) { | |
std::swap(*this, __rhs); | |
return 0; | |
} | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) constexpr _Hp& get() noexcept {return static_cast<_Hp&>(*this);} | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) constexpr const _Hp& get() const noexcept {return static_cast<const _Hp&>(*this);} | |
}; | |
template <class ..._Tp> | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) constexpr | |
void __swallow(_Tp&&...) noexcept {} | |
template <class _Tp> | |
struct __all_default_constructible; | |
template <class ..._Tp> | |
struct __all_default_constructible<__tuple_types<_Tp...>> | |
: __all<is_default_constructible<_Tp>::value...> | |
{ }; | |
template<class _Indx, class ..._Tp> struct __tuple_impl; | |
template<size_t ..._Indx, class ..._Tp> | |
struct __tuple_impl<__tuple_indices<_Indx...>, _Tp...> | |
: public __tuple_leaf<_Indx, _Tp>... | |
{ | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) | |
constexpr __tuple_impl() | |
noexcept(__all<is_nothrow_default_constructible<_Tp>::value...>::value) {} | |
template <size_t ..._Uf, class ..._Tf, | |
size_t ..._Ul, class ..._Tl, class ..._Up> | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) constexpr | |
explicit | |
__tuple_impl(__tuple_indices<_Uf...>, __tuple_types<_Tf...>, | |
__tuple_indices<_Ul...>, __tuple_types<_Tl...>, | |
_Up&&... __u) | |
noexcept((__all<is_nothrow_constructible<_Tf, _Up>::value...>::value && __all<is_nothrow_default_constructible<_Tl>::value...>::value)) : | |
__tuple_leaf<_Uf, _Tf>(std::forward<_Up>(__u))..., | |
__tuple_leaf<_Ul, _Tl>()... | |
{} | |
template <class _Alloc, size_t ..._Uf, class ..._Tf, | |
size_t ..._Ul, class ..._Tl, class ..._Up> | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) constexpr | |
explicit | |
__tuple_impl(allocator_arg_t, const _Alloc& __a, | |
__tuple_indices<_Uf...>, __tuple_types<_Tf...>, | |
__tuple_indices<_Ul...>, __tuple_types<_Tl...>, | |
_Up&&... __u) : | |
__tuple_leaf<_Uf, _Tf>(__uses_alloc_ctor<_Tf, _Alloc, _Up>(), __a, | |
std::forward<_Up>(__u))..., | |
__tuple_leaf<_Ul, _Tl>(__uses_alloc_ctor<_Tl, _Alloc>(), __a)... | |
{} | |
template <class _Tuple, | |
class = __enable_if_t<__tuple_constructible<_Tuple, tuple<_Tp...> >::value> | |
> | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) constexpr | |
__tuple_impl(_Tuple&& __t) noexcept((__all<is_nothrow_constructible<_Tp, typename tuple_element<_Indx, typename __make_tuple_types<_Tuple>::type>::type>::value...>::value)) | |
: __tuple_leaf<_Indx, _Tp>(std::forward<typename tuple_element<_Indx, | |
typename __make_tuple_types<_Tuple>::type>::type>(std::get<_Indx>(__t)))... | |
{} | |
template <class _Alloc, class _Tuple, | |
class = __enable_if_t<__tuple_constructible<_Tuple, tuple<_Tp...> >::value> | |
> | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) constexpr | |
__tuple_impl(allocator_arg_t, const _Alloc& __a, _Tuple&& __t) | |
: __tuple_leaf<_Indx, _Tp>(__uses_alloc_ctor<_Tp, _Alloc, typename tuple_element<_Indx, | |
typename __make_tuple_types<_Tuple>::type>::type>(), __a, | |
std::forward<typename tuple_element<_Indx, | |
typename __make_tuple_types<_Tuple>::type>::type>(std::get<_Indx>(__t)))... | |
{} | |
__tuple_impl(const __tuple_impl&) = default; | |
__tuple_impl(__tuple_impl&&) = default; | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) constexpr | |
void swap(__tuple_impl& __t) | |
noexcept(__all<__is_nothrow_swappable<_Tp>::value...>::value) | |
{ | |
std::__swallow(__tuple_leaf<_Indx, _Tp>::swap(static_cast<__tuple_leaf<_Indx, _Tp>&>(__t))...); | |
} | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) constexpr | |
void swap(const __tuple_impl& __t) const | |
noexcept(__all<__is_nothrow_swappable<const _Tp>::value...>::value) | |
{ | |
std::__swallow(__tuple_leaf<_Indx, _Tp>::swap(static_cast<const __tuple_leaf<_Indx, _Tp>&>(__t))...); | |
} | |
}; | |
template<class _Dest, class _Source, size_t ..._Np> | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) constexpr | |
void __memberwise_copy_assign(_Dest& __dest, _Source const& __source, __tuple_indices<_Np...>) { | |
std::__swallow(((std::get<_Np>(__dest) = std::get<_Np>(__source)), void(), 0)...); | |
} | |
template<class _Dest, class _Source, class ..._Up, size_t ..._Np> | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) constexpr | |
void __memberwise_forward_assign(_Dest& __dest, _Source&& __source, __tuple_types<_Up...>, __tuple_indices<_Np...>) { | |
std::__swallow((( | |
std::get<_Np>(__dest) = std::forward<_Up>(std::get<_Np>(__source)) | |
), void(), 0)...); | |
} | |
template <class ..._Tp> | |
class tuple | |
{ | |
typedef __tuple_impl<typename __make_tuple_indices<sizeof...(_Tp)>::type, _Tp...> _BaseT; | |
_BaseT __base_; | |
template <size_t _Jp, class ..._Up> friend constexpr | |
typename tuple_element<_Jp, tuple<_Up...> >::type& get(tuple<_Up...>&) noexcept; | |
template <size_t _Jp, class ..._Up> friend constexpr | |
const typename tuple_element<_Jp, tuple<_Up...> >::type& get(const tuple<_Up...>&) noexcept; | |
template <size_t _Jp, class ..._Up> friend constexpr | |
typename tuple_element<_Jp, tuple<_Up...> >::type&& get(tuple<_Up...>&&) noexcept; | |
template <size_t _Jp, class ..._Up> friend constexpr | |
const typename tuple_element<_Jp, tuple<_Up...> >::type&& get(const tuple<_Up...>&&) noexcept; | |
public: | |
template <template<class...> class _IsImpDefault = __is_implicitly_default_constructible, __enable_if_t< | |
_And< | |
_IsImpDefault<_Tp>... | |
>::value | |
, int> = 0> | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) constexpr | |
tuple() | |
noexcept(_And<is_nothrow_default_constructible<_Tp>...>::value) | |
{ } | |
template <template<class...> class _IsImpDefault = __is_implicitly_default_constructible, | |
template<class...> class _IsDefault = is_default_constructible, __enable_if_t< | |
_And< | |
_IsDefault<_Tp>..., | |
_Not<_Lazy<_And, _IsImpDefault<_Tp>...> > | |
>::value | |
, int> = 0> | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) constexpr | |
explicit tuple() | |
noexcept(_And<is_nothrow_default_constructible<_Tp>...>::value) | |
{ } | |
template <class _Alloc, template<class...> class _IsImpDefault = __is_implicitly_default_constructible, __enable_if_t< | |
_And< | |
_IsImpDefault<_Tp>... | |
>::value | |
, int> = 0> | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) | |
tuple(allocator_arg_t, _Alloc const& __a) | |
: __base_(allocator_arg_t(), __a, | |
__tuple_indices<>(), __tuple_types<>(), | |
typename __make_tuple_indices<sizeof...(_Tp), 0>::type(), | |
__tuple_types<_Tp...>()) {} | |
template <class _Alloc, | |
template<class...> class _IsImpDefault = __is_implicitly_default_constructible, | |
template<class...> class _IsDefault = is_default_constructible, __enable_if_t< | |
_And< | |
_IsDefault<_Tp>..., | |
_Not<_Lazy<_And, _IsImpDefault<_Tp>...> > | |
>::value | |
, int> = 0> | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) | |
explicit tuple(allocator_arg_t, _Alloc const& __a) | |
: __base_(allocator_arg_t(), __a, | |
__tuple_indices<>(), __tuple_types<>(), | |
typename __make_tuple_indices<sizeof...(_Tp), 0>::type(), | |
__tuple_types<_Tp...>()) {} | |
template <template<class...> class _And = _And, __enable_if_t< | |
_And< | |
_BoolConstant<sizeof...(_Tp) >= 1>, | |
is_copy_constructible<_Tp>..., | |
is_convertible<const _Tp&, _Tp>... | |
>::value | |
, int> = 0> | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) constexpr | |
tuple(const _Tp& ... __t) | |
noexcept(_And<is_nothrow_copy_constructible<_Tp>...>::value) | |
: __base_(typename __make_tuple_indices<sizeof...(_Tp)>::type(), | |
typename __make_tuple_types<tuple, sizeof...(_Tp)>::type(), | |
typename __make_tuple_indices<0>::type(), | |
typename __make_tuple_types<tuple, 0>::type(), | |
__t... | |
) {} | |
template <template<class...> class _And = _And, __enable_if_t< | |
_And< | |
_BoolConstant<sizeof...(_Tp) >= 1>, | |
is_copy_constructible<_Tp>..., | |
_Not<_Lazy<_And, is_convertible<const _Tp&, _Tp>...> > | |
>::value | |
, int> = 0> | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) constexpr | |
explicit tuple(const _Tp& ... __t) | |
noexcept(_And<is_nothrow_copy_constructible<_Tp>...>::value) | |
: __base_(typename __make_tuple_indices<sizeof...(_Tp)>::type(), | |
typename __make_tuple_types<tuple, sizeof...(_Tp)>::type(), | |
typename __make_tuple_indices<0>::type(), | |
typename __make_tuple_types<tuple, 0>::type(), | |
__t... | |
) {} | |
template <class _Alloc, template<class...> class _And = _And, __enable_if_t< | |
_And< | |
_BoolConstant<sizeof...(_Tp) >= 1>, | |
is_copy_constructible<_Tp>..., | |
is_convertible<const _Tp&, _Tp>... | |
>::value | |
, int> = 0> | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) | |
tuple(allocator_arg_t, const _Alloc& __a, const _Tp& ... __t) | |
: __base_(allocator_arg_t(), __a, | |
typename __make_tuple_indices<sizeof...(_Tp)>::type(), | |
typename __make_tuple_types<tuple, sizeof...(_Tp)>::type(), | |
typename __make_tuple_indices<0>::type(), | |
typename __make_tuple_types<tuple, 0>::type(), | |
__t... | |
) {} | |
template <class _Alloc, template<class...> class _And = _And, __enable_if_t< | |
_And< | |
_BoolConstant<sizeof...(_Tp) >= 1>, | |
is_copy_constructible<_Tp>..., | |
_Not<_Lazy<_And, is_convertible<const _Tp&, _Tp>...> > | |
>::value | |
, int> = 0> | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) | |
explicit tuple(allocator_arg_t, const _Alloc& __a, const _Tp& ... __t) | |
: __base_(allocator_arg_t(), __a, | |
typename __make_tuple_indices<sizeof...(_Tp)>::type(), | |
typename __make_tuple_types<tuple, sizeof...(_Tp)>::type(), | |
typename __make_tuple_indices<0>::type(), | |
typename __make_tuple_types<tuple, 0>::type(), | |
__t... | |
) {} | |
template <class ..._Up> struct _IsThisTuple : false_type { }; | |
template <class _Up> struct _IsThisTuple<_Up> : is_same<__remove_cvref_t<_Up>, tuple> { }; | |
template <class ..._Up> | |
struct _EnableUTypesCtor : _And< | |
_BoolConstant<sizeof...(_Tp) >= 1>, | |
_Not<_IsThisTuple<_Up...> >, | |
is_constructible<_Tp, _Up>... | |
> { }; | |
template <class ..._Up, __enable_if_t< | |
_And< | |
_BoolConstant<sizeof...(_Up) == sizeof...(_Tp)>, | |
_EnableUTypesCtor<_Up...>, | |
is_convertible<_Up, _Tp>... | |
>::value | |
, int> = 0> | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) constexpr | |
tuple(_Up&&... __u) | |
noexcept((_And<is_nothrow_constructible<_Tp, _Up>...>::value)) | |
: __base_(typename __make_tuple_indices<sizeof...(_Up)>::type(), | |
typename __make_tuple_types<tuple, sizeof...(_Up)>::type(), | |
typename __make_tuple_indices<sizeof...(_Tp), sizeof...(_Up)>::type(), | |
typename __make_tuple_types<tuple, sizeof...(_Tp), sizeof...(_Up)>::type(), | |
std::forward<_Up>(__u)...) {} | |
template <class ..._Up, __enable_if_t< | |
_And< | |
_BoolConstant<sizeof...(_Up) == sizeof...(_Tp)>, | |
_EnableUTypesCtor<_Up...>, | |
_Not<_Lazy<_And, is_convertible<_Up, _Tp>...> > | |
>::value | |
, int> = 0> | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) constexpr | |
explicit tuple(_Up&&... __u) | |
noexcept((_And<is_nothrow_constructible<_Tp, _Up>...>::value)) | |
: __base_(typename __make_tuple_indices<sizeof...(_Up)>::type(), | |
typename __make_tuple_types<tuple, sizeof...(_Up)>::type(), | |
typename __make_tuple_indices<sizeof...(_Tp), sizeof...(_Up)>::type(), | |
typename __make_tuple_types<tuple, sizeof...(_Tp), sizeof...(_Up)>::type(), | |
std::forward<_Up>(__u)...) {} | |
template <class _Alloc, class ..._Up, __enable_if_t< | |
_And< | |
_BoolConstant<sizeof...(_Up) == sizeof...(_Tp)>, | |
_EnableUTypesCtor<_Up...>, | |
is_convertible<_Up, _Tp>... | |
>::value | |
, int> = 0> | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) | |
tuple(allocator_arg_t, const _Alloc& __a, _Up&&... __u) | |
: __base_(allocator_arg_t(), __a, | |
typename __make_tuple_indices<sizeof...(_Up)>::type(), | |
typename __make_tuple_types<tuple, sizeof...(_Up)>::type(), | |
typename __make_tuple_indices<sizeof...(_Tp), sizeof...(_Up)>::type(), | |
typename __make_tuple_types<tuple, sizeof...(_Tp), sizeof...(_Up)>::type(), | |
std::forward<_Up>(__u)...) {} | |
template <class _Alloc, class ..._Up, __enable_if_t< | |
_And< | |
_BoolConstant<sizeof...(_Up) == sizeof...(_Tp)>, | |
_EnableUTypesCtor<_Up...>, | |
_Not<_Lazy<_And, is_convertible<_Up, _Tp>...> > | |
>::value | |
, int> = 0> | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) | |
explicit tuple(allocator_arg_t, const _Alloc& __a, _Up&&... __u) | |
: __base_(allocator_arg_t(), __a, | |
typename __make_tuple_indices<sizeof...(_Up)>::type(), | |
typename __make_tuple_types<tuple, sizeof...(_Up)>::type(), | |
typename __make_tuple_indices<sizeof...(_Tp), sizeof...(_Up)>::type(), | |
typename __make_tuple_types<tuple, sizeof...(_Tp), sizeof...(_Up)>::type(), | |
std::forward<_Up>(__u)...) {} | |
tuple(const tuple&) = default; | |
tuple(tuple&&) = default; | |
template <class _Alloc, template<class...> class _And = _And, __enable_if_t< | |
_And<is_copy_constructible<_Tp>...>::value | |
, int> = 0> | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) | |
tuple(allocator_arg_t, const _Alloc& __alloc, const tuple& __t) | |
: __base_(allocator_arg_t(), __alloc, __t) | |
{ } | |
template <class _Alloc, template<class...> class _And = _And, __enable_if_t< | |
_And<is_move_constructible<_Tp>...>::value | |
, int> = 0> | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) | |
tuple(allocator_arg_t, const _Alloc& __alloc, tuple&& __t) | |
: __base_(allocator_arg_t(), __alloc, std::move(__t)) | |
{ } | |
template <class _OtherTuple, class _DecayedOtherTuple = __remove_cvref_t<_OtherTuple>, class = void> | |
struct _EnableCtorFromUTypesTuple : false_type {}; | |
template <class _OtherTuple, class... _Up> | |
struct _EnableCtorFromUTypesTuple<_OtherTuple, tuple<_Up...>, | |
__enable_if_t<sizeof...(_Up) == sizeof...(_Tp)>> : _And< | |
_Not<is_same<_OtherTuple, const tuple&> >, | |
_Not<is_same<_OtherTuple, tuple&&> >, | |
is_constructible<_Tp, __copy_cvref_t<_OtherTuple, _Up> >..., | |
_Lazy<_Or, _BoolConstant<sizeof...(_Tp) != 1>, | |
_Lazy<_And, | |
_Not<is_same<_Tp, _Up> >..., | |
_Not<is_convertible<_OtherTuple, _Tp> >..., | |
_Not<is_constructible<_Tp, _OtherTuple> >... | |
> | |
> | |
> {}; | |
template <class ..._Up, __enable_if_t< | |
_And< | |
_EnableCtorFromUTypesTuple<const tuple<_Up...>&>, | |
is_convertible<const _Up&, _Tp>... | |
>::value | |
, int> = 0> | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) constexpr | |
tuple(const tuple<_Up...>& __t) | |
noexcept((_And<is_nothrow_constructible<_Tp, const _Up&>...>::value)) | |
: __base_(__t) | |
{ } | |
template <class ..._Up, __enable_if_t< | |
_And< | |
_EnableCtorFromUTypesTuple<const tuple<_Up...>&>, | |
_Not<_Lazy<_And, is_convertible<const _Up&, _Tp>...> > | |
>::value | |
, int> = 0> | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) constexpr | |
explicit tuple(const tuple<_Up...>& __t) | |
noexcept((_And<is_nothrow_constructible<_Tp, const _Up&>...>::value)) | |
: __base_(__t) | |
{ } | |
template <class ..._Up, class _Alloc, __enable_if_t< | |
_And< | |
_EnableCtorFromUTypesTuple<const tuple<_Up...>&>, | |
is_convertible<const _Up&, _Tp>... | |
>::value | |
, int> = 0> | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) | |
tuple(allocator_arg_t, const _Alloc& __a, const tuple<_Up...>& __t) | |
: __base_(allocator_arg_t(), __a, __t) | |
{ } | |
template <class ..._Up, class _Alloc, __enable_if_t< | |
_And< | |
_EnableCtorFromUTypesTuple<const tuple<_Up...>&>, | |
_Not<_Lazy<_And, is_convertible<const _Up&, _Tp>...> > | |
>::value | |
, int> = 0> | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) | |
explicit tuple(allocator_arg_t, const _Alloc& __a, const tuple<_Up...>& __t) | |
: __base_(allocator_arg_t(), __a, __t) | |
{ } | |
# 851 "../../buildtools/third_party/libc++/trunk/include/tuple" 3 | |
template <class ..._Up, __enable_if_t< | |
_And< | |
_EnableCtorFromUTypesTuple<tuple<_Up...>&&>, | |
is_convertible<_Up, _Tp>... | |
>::value | |
, int> = 0> | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) constexpr | |
tuple(tuple<_Up...>&& __t) | |
noexcept((_And<is_nothrow_constructible<_Tp, _Up>...>::value)) | |
: __base_(std::move(__t)) | |
{ } | |
template <class ..._Up, __enable_if_t< | |
_And< | |
_EnableCtorFromUTypesTuple<tuple<_Up...>&&>, | |
_Not<_Lazy<_And, is_convertible<_Up, _Tp>...> > | |
>::value | |
, int> = 0> | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) constexpr | |
explicit tuple(tuple<_Up...>&& __t) | |
noexcept((_And<is_nothrow_constructible<_Tp, _Up>...>::value)) | |
: __base_(std::move(__t)) | |
{ } | |
template <class _Alloc, class ..._Up, __enable_if_t< | |
_And< | |
_EnableCtorFromUTypesTuple<tuple<_Up...>&&>, | |
is_convertible<_Up, _Tp>... | |
>::value | |
, int> = 0> | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) | |
tuple(allocator_arg_t, const _Alloc& __a, tuple<_Up...>&& __t) | |
: __base_(allocator_arg_t(), __a, std::move(__t)) | |
{ } | |
template <class _Alloc, class ..._Up, __enable_if_t< | |
_And< | |
_EnableCtorFromUTypesTuple<tuple<_Up...>&&>, | |
_Not<_Lazy<_And, is_convertible<_Up, _Tp>...> > | |
>::value | |
, int> = 0> | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) | |
explicit tuple(allocator_arg_t, const _Alloc& __a, tuple<_Up...>&& __t) | |
: __base_(allocator_arg_t(), __a, std::move(__t)) | |
{ } | |
# 916 "../../buildtools/third_party/libc++/trunk/include/tuple" 3 | |
template <template <class...> class Pred, class _Pair, class _DecayedPair = __remove_cvref_t<_Pair>, class _Tuple = tuple> | |
struct _CtorPredicateFromPair : false_type{}; | |
template <template <class...> class Pred, class _Pair, class _Up1, class _Up2, class _Tp1, class _Tp2> | |
struct _CtorPredicateFromPair<Pred, _Pair, pair<_Up1, _Up2>, tuple<_Tp1, _Tp2> > : _And< | |
Pred<_Tp1, __copy_cvref_t<_Pair, _Up1> >, | |
Pred<_Tp2, __copy_cvref_t<_Pair, _Up2> > | |
> {}; | |
template <class _Pair> | |
struct _EnableCtorFromPair : _CtorPredicateFromPair<is_constructible, _Pair>{}; | |
template <class _Pair> | |
struct _NothrowConstructibleFromPair : _CtorPredicateFromPair<is_nothrow_constructible, _Pair>{}; | |
template <class _Pair, class _DecayedPair = __remove_cvref_t<_Pair>, class _Tuple = tuple> | |
struct _BothImplicitlyConvertible : false_type{}; | |
template <class _Pair, class _Up1, class _Up2, class _Tp1, class _Tp2> | |
struct _BothImplicitlyConvertible<_Pair, pair<_Up1, _Up2>, tuple<_Tp1, _Tp2> > : _And< | |
is_convertible<__copy_cvref_t<_Pair, _Up1>, _Tp1>, | |
is_convertible<__copy_cvref_t<_Pair, _Up2>, _Tp2> | |
> {}; | |
template <class _Up1, class _Up2, template<class...> class _And = _And, __enable_if_t< | |
_And< | |
_EnableCtorFromPair<const pair<_Up1, _Up2>&>, | |
_BothImplicitlyConvertible<const pair<_Up1, _Up2>&> | |
>::value | |
, int> = 0> | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) constexpr | |
tuple(const pair<_Up1, _Up2>& __p) | |
noexcept((_NothrowConstructibleFromPair<const pair<_Up1, _Up2>&>::value)) | |
: __base_(__p) | |
{ } | |
template <class _Up1, class _Up2, template<class...> class _And = _And, __enable_if_t< | |
_And< | |
_EnableCtorFromPair<const pair<_Up1, _Up2>&>, | |
_Not<_BothImplicitlyConvertible<const pair<_Up1, _Up2>&> > | |
>::value | |
, int> = 0> | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) constexpr | |
explicit tuple(const pair<_Up1, _Up2>& __p) | |
noexcept((_NothrowConstructibleFromPair<const pair<_Up1, _Up2>&>::value)) | |
: __base_(__p) | |
{ } | |
template <class _Alloc, class _Up1, class _Up2, template<class...> class _And = _And, __enable_if_t< | |
_And< | |
_EnableCtorFromPair<const pair<_Up1, _Up2>&>, | |
_BothImplicitlyConvertible<const pair<_Up1, _Up2>&> | |
>::value | |
, int> = 0> | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) | |
tuple(allocator_arg_t, const _Alloc& __a, const pair<_Up1, _Up2>& __p) | |
: __base_(allocator_arg_t(), __a, __p) | |
{ } | |
template <class _Alloc, class _Up1, class _Up2, template<class...> class _And = _And, __enable_if_t< | |
_And< | |
_EnableCtorFromPair<const pair<_Up1, _Up2>&>, | |
_Not<_BothImplicitlyConvertible<const pair<_Up1, _Up2>&> > | |
>::value | |
, int> = 0> | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) | |
explicit tuple(allocator_arg_t, const _Alloc& __a, const pair<_Up1, _Up2>& __p) | |
: __base_(allocator_arg_t(), __a, __p) | |
{ } | |
# 1004 "../../buildtools/third_party/libc++/trunk/include/tuple" 3 | |
template <class _Up1, class _Up2, template<class...> class _And = _And, __enable_if_t< | |
_And< | |
_EnableCtorFromPair<pair<_Up1, _Up2>&&>, | |
_BothImplicitlyConvertible<pair<_Up1, _Up2>&&> | |
>::value | |
, int> = 0> | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) constexpr | |
tuple(pair<_Up1, _Up2>&& __p) | |
noexcept((_NothrowConstructibleFromPair<pair<_Up1, _Up2>&&>::value)) | |
: __base_(std::move(__p)) | |
{ } | |
template <class _Up1, class _Up2, template<class...> class _And = _And, __enable_if_t< | |
_And< | |
_EnableCtorFromPair<pair<_Up1, _Up2>&&>, | |
_Not<_BothImplicitlyConvertible<pair<_Up1, _Up2>&&> > | |
>::value | |
, int> = 0> | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) constexpr | |
explicit tuple(pair<_Up1, _Up2>&& __p) | |
noexcept((_NothrowConstructibleFromPair<pair<_Up1, _Up2>&&>::value)) | |
: __base_(std::move(__p)) | |
{ } | |
template <class _Alloc, class _Up1, class _Up2, template<class...> class _And = _And, __enable_if_t< | |
_And< | |
_EnableCtorFromPair<pair<_Up1, _Up2>&&>, | |
_BothImplicitlyConvertible<pair<_Up1, _Up2>&&> | |
>::value | |
, int> = 0> | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) | |
tuple(allocator_arg_t, const _Alloc& __a, pair<_Up1, _Up2>&& __p) | |
: __base_(allocator_arg_t(), __a, std::move(__p)) | |
{ } | |
template <class _Alloc, class _Up1, class _Up2, template<class...> class _And = _And, __enable_if_t< | |
_And< | |
_EnableCtorFromPair<pair<_Up1, _Up2>&&>, | |
_Not<_BothImplicitlyConvertible<pair<_Up1, _Up2>&&> > | |
>::value | |
, int> = 0> | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) | |
explicit tuple(allocator_arg_t, const _Alloc& __a, pair<_Up1, _Up2>&& __p) | |
: __base_(allocator_arg_t(), __a, std::move(__p)) | |
{ } | |
# 1068 "../../buildtools/third_party/libc++/trunk/include/tuple" 3 | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) | |
tuple& operator=(_If<_And<is_copy_assignable<_Tp>...>::value, tuple, __nat> const& __tuple) | |
noexcept((_And<is_nothrow_copy_assignable<_Tp>...>::value)) | |
{ | |
std::__memberwise_copy_assign(*this, __tuple, | |
typename __make_tuple_indices<sizeof...(_Tp)>::type()); | |
return *this; | |
} | |
# 1096 "../../buildtools/third_party/libc++/trunk/include/tuple" 3 | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) | |
tuple& operator=(_If<_And<is_move_assignable<_Tp>...>::value, tuple, __nat>&& __tuple) | |
noexcept((_And<is_nothrow_move_assignable<_Tp>...>::value)) | |
{ | |
std::__memberwise_forward_assign(*this, std::move(__tuple), | |
__tuple_types<_Tp...>(), | |
typename __make_tuple_indices<sizeof...(_Tp)>::type()); | |
return *this; | |
} | |
template<class... _Up, __enable_if_t< | |
_And< | |
_BoolConstant<sizeof...(_Tp) == sizeof...(_Up)>, | |
is_assignable<_Tp&, _Up const&>... | |
>::value | |
,int> = 0> | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) | |
tuple& operator=(tuple<_Up...> const& __tuple) | |
noexcept((_And<is_nothrow_assignable<_Tp&, _Up const&>...>::value)) | |
{ | |
std::__memberwise_copy_assign(*this, __tuple, | |
typename __make_tuple_indices<sizeof...(_Tp)>::type()); | |
return *this; | |
} | |
template<class... _Up, __enable_if_t< | |
_And< | |
_BoolConstant<sizeof...(_Tp) == sizeof...(_Up)>, | |
is_assignable<_Tp&, _Up>... | |
>::value | |
,int> = 0> | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) | |
tuple& operator=(tuple<_Up...>&& __tuple) | |
noexcept((_And<is_nothrow_assignable<_Tp&, _Up>...>::value)) | |
{ | |
std::__memberwise_forward_assign(*this, std::move(__tuple), | |
__tuple_types<_Up...>(), | |
typename __make_tuple_indices<sizeof...(_Tp)>::type()); | |
return *this; | |
} | |
# 1163 "../../buildtools/third_party/libc++/trunk/include/tuple" 3 | |
template <template<class...> class Pred, bool _Const, | |
class _Pair, class _DecayedPair = __remove_cvref_t<_Pair>, class _Tuple = tuple> | |
struct _AssignPredicateFromPair : false_type {}; | |
template <template<class...> class Pred, bool _Const, | |
class _Pair, class _Up1, class _Up2, class _Tp1, class _Tp2> | |
struct _AssignPredicateFromPair<Pred, _Const, _Pair, pair<_Up1, _Up2>, tuple<_Tp1, _Tp2> > : | |
_And<Pred<__maybe_const<_Const, _Tp1>&, __copy_cvref_t<_Pair, _Up1> >, | |
Pred<__maybe_const<_Const, _Tp2>&, __copy_cvref_t<_Pair, _Up2> > | |
> {}; | |
template <bool _Const, class _Pair> | |
struct _EnableAssignFromPair : _AssignPredicateFromPair<is_assignable, _Const, _Pair> {}; | |
template <bool _Const, class _Pair> | |
struct _NothrowAssignFromPair : _AssignPredicateFromPair<is_nothrow_assignable, _Const, _Pair> {}; | |
# 1202 "../../buildtools/third_party/libc++/trunk/include/tuple" 3 | |
template<class _Up1, class _Up2, __enable_if_t< | |
_EnableAssignFromPair<false, pair<_Up1, _Up2> const&>::value | |
,int> = 0> | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) | |
tuple& operator=(pair<_Up1, _Up2> const& __pair) | |
noexcept((_NothrowAssignFromPair<false, pair<_Up1, _Up2> const&>::value)) | |
{ | |
std::get<0>(*this) = __pair.first; | |
std::get<1>(*this) = __pair.second; | |
return *this; | |
} | |
template<class _Up1, class _Up2, __enable_if_t< | |
_EnableAssignFromPair<false, pair<_Up1, _Up2>&&>::value | |
,int> = 0> | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) | |
tuple& operator=(pair<_Up1, _Up2>&& __pair) | |
noexcept((_NothrowAssignFromPair<false, pair<_Up1, _Up2>&&>::value)) | |
{ | |
std::get<0>(*this) = std::forward<_Up1>(__pair.first); | |
std::get<1>(*this) = std::forward<_Up2>(__pair.second); | |
return *this; | |
} | |
template<class _Up, size_t _Np, class = __enable_if_t< | |
_And< | |
_BoolConstant<_Np == sizeof...(_Tp)>, | |
is_assignable<_Tp&, _Up const&>... | |
>::value | |
> > | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) | |
tuple& operator=(array<_Up, _Np> const& __array) | |
noexcept((_And<is_nothrow_assignable<_Tp&, _Up const&>...>::value)) | |
{ | |
std::__memberwise_copy_assign(*this, __array, | |
typename __make_tuple_indices<sizeof...(_Tp)>::type()); | |
return *this; | |
} | |
template<class _Up, size_t _Np, class = void, class = __enable_if_t< | |
_And< | |
_BoolConstant<_Np == sizeof...(_Tp)>, | |
is_assignable<_Tp&, _Up>... | |
>::value | |
> > | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) | |
tuple& operator=(array<_Up, _Np>&& __array) | |
noexcept((_And<is_nothrow_assignable<_Tp&, _Up>...>::value)) | |
{ | |
std::__memberwise_forward_assign(*this, std::move(__array), | |
__tuple_types<_If<true, _Up, _Tp>...>(), | |
typename __make_tuple_indices<sizeof...(_Tp)>::type()); | |
return *this; | |
} | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) | |
void swap(tuple& __t) noexcept(__all<__is_nothrow_swappable<_Tp>::value...>::value) | |
{__base_.swap(__t.__base_);} | |
}; | |
template <> | |
class tuple<> | |
{ | |
public: | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) constexpr | |
tuple() noexcept = default; | |
template <class _Alloc> | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) | |
tuple(allocator_arg_t, const _Alloc&) noexcept {} | |
template <class _Alloc> | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) | |
tuple(allocator_arg_t, const _Alloc&, const tuple&) noexcept {} | |
template <class _Up> | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) | |
tuple(array<_Up, 0>) noexcept {} | |
template <class _Alloc, class _Up> | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) | |
tuple(allocator_arg_t, const _Alloc&, array<_Up, 0>) noexcept {} | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) | |
void swap(tuple&) noexcept {} | |
}; | |
# 1312 "../../buildtools/third_party/libc++/trunk/include/tuple" 3 | |
template <class ..._Tp> | |
tuple(_Tp...) -> tuple<_Tp...>; | |
template <class _Tp1, class _Tp2> | |
tuple(pair<_Tp1, _Tp2>) -> tuple<_Tp1, _Tp2>; | |
template <class _Alloc, class ..._Tp> | |
tuple(allocator_arg_t, _Alloc, _Tp...) -> tuple<_Tp...>; | |
template <class _Alloc, class _Tp1, class _Tp2> | |
tuple(allocator_arg_t, _Alloc, pair<_Tp1, _Tp2>) -> tuple<_Tp1, _Tp2>; | |
template <class _Alloc, class ..._Tp> | |
tuple(allocator_arg_t, _Alloc, tuple<_Tp...>) -> tuple<_Tp...>; | |
template <class ..._Tp> | |
inline __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) | |
__enable_if_t<__all<__is_swappable<_Tp>::value...>::value, void> | |
swap(tuple<_Tp...>& __t, tuple<_Tp...>& __u) | |
noexcept(__all<__is_nothrow_swappable<_Tp>::value...>::value) | |
{__t.swap(__u);} | |
# 1343 "../../buildtools/third_party/libc++/trunk/include/tuple" 3 | |
template <size_t _Ip, class ..._Tp> | |
inline __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) constexpr | |
typename tuple_element<_Ip, tuple<_Tp...> >::type& | |
get(tuple<_Tp...>& __t) noexcept | |
{ | |
typedef __attribute__((__nodebug__)) typename tuple_element<_Ip, tuple<_Tp...> >::type type; | |
return static_cast<__tuple_leaf<_Ip, type>&>(__t.__base_).get(); | |
} | |
template <size_t _Ip, class ..._Tp> | |
inline __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) constexpr | |
const typename tuple_element<_Ip, tuple<_Tp...> >::type& | |
get(const tuple<_Tp...>& __t) noexcept | |
{ | |
typedef __attribute__((__nodebug__)) typename tuple_element<_Ip, tuple<_Tp...> >::type type; | |
return static_cast<const __tuple_leaf<_Ip, type>&>(__t.__base_).get(); | |
} | |
template <size_t _Ip, class ..._Tp> | |
inline __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) constexpr | |
typename tuple_element<_Ip, tuple<_Tp...> >::type&& | |
get(tuple<_Tp...>&& __t) noexcept | |
{ | |
typedef __attribute__((__nodebug__)) typename tuple_element<_Ip, tuple<_Tp...> >::type type; | |
return static_cast<type&&>( | |
static_cast<__tuple_leaf<_Ip, type>&&>(__t.__base_).get()); | |
} | |
template <size_t _Ip, class ..._Tp> | |
inline __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) constexpr | |
const typename tuple_element<_Ip, tuple<_Tp...> >::type&& | |
get(const tuple<_Tp...>&& __t) noexcept | |
{ | |
typedef __attribute__((__nodebug__)) typename tuple_element<_Ip, tuple<_Tp...> >::type type; | |
return static_cast<const type&&>( | |
static_cast<const __tuple_leaf<_Ip, type>&&>(__t.__base_).get()); | |
} | |
namespace __find_detail { | |
static constexpr size_t __not_found = static_cast<size_t>(-1); | |
static constexpr size_t __ambiguous = __not_found - 1; | |
inline __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) | |
constexpr size_t __find_idx_return(size_t __curr_i, size_t __res, bool __matches) { | |
return !__matches ? __res : | |
(__res == __not_found ? __curr_i : __ambiguous); | |
} | |
template <size_t _Nx> | |
inline __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) | |
constexpr size_t __find_idx(size_t __i, const bool (&__matches)[_Nx]) { | |
return __i == _Nx ? __not_found : | |
__find_idx_return(__i, __find_idx(__i + 1, __matches), __matches[__i]); | |
} | |
template <class _T1, class ..._Args> | |
struct __find_exactly_one_checked { | |
static constexpr bool __matches[sizeof...(_Args)] = {is_same<_T1, _Args>::value...}; | |
static constexpr size_t value = __find_detail::__find_idx(0, __matches); | |
static_assert(value != __not_found, "type not found in type list" ); | |
static_assert(value != __ambiguous, "type occurs more than once in type list"); | |
}; | |
template <class _T1> | |
struct __find_exactly_one_checked<_T1> { | |
static_assert(!is_same<_T1, _T1>::value, "type not in empty type list"); | |
}; | |
} | |
template <typename _T1, typename... _Args> | |
struct __find_exactly_one_t | |
: public __find_detail::__find_exactly_one_checked<_T1, _Args...> { | |
}; | |
template <class _T1, class... _Args> | |
inline __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) | |
constexpr _T1& get(tuple<_Args...>& __tup) noexcept | |
{ | |
return std::get<__find_exactly_one_t<_T1, _Args...>::value>(__tup); | |
} | |
template <class _T1, class... _Args> | |
inline __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) | |
constexpr _T1 const& get(tuple<_Args...> const& __tup) noexcept | |
{ | |
return std::get<__find_exactly_one_t<_T1, _Args...>::value>(__tup); | |
} | |
template <class _T1, class... _Args> | |
inline __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) | |
constexpr _T1&& get(tuple<_Args...>&& __tup) noexcept | |
{ | |
return std::get<__find_exactly_one_t<_T1, _Args...>::value>(std::move(__tup)); | |
} | |
template <class _T1, class... _Args> | |
inline __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) | |
constexpr _T1 const&& get(tuple<_Args...> const&& __tup) noexcept | |
{ | |
return std::get<__find_exactly_one_t<_T1, _Args...>::value>(std::move(__tup)); | |
} | |
template <class ..._Tp> | |
inline __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) constexpr | |
tuple<_Tp&...> | |
tie(_Tp&... __t) noexcept | |
{ | |
return tuple<_Tp&...>(__t...); | |
} | |
template <class _Up> | |
struct __ignore_t | |
{ | |
template <class _Tp> | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) constexpr | |
const __ignore_t& operator=(_Tp&&) const {return *this;} | |
}; | |
namespace { | |
constexpr __ignore_t<unsigned char> ignore = __ignore_t<unsigned char>(); | |
} | |
template <class... _Tp> | |
inline __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) constexpr | |
tuple<typename __unwrap_ref_decay<_Tp>::type...> | |
make_tuple(_Tp&&... __t) | |
{ | |
return tuple<typename __unwrap_ref_decay<_Tp>::type...>(std::forward<_Tp>(__t)...); | |
} | |
template <class... _Tp> | |
inline __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) constexpr | |
tuple<_Tp&&...> | |
forward_as_tuple(_Tp&&... __t) noexcept | |
{ | |
return tuple<_Tp&&...>(std::forward<_Tp>(__t)...); | |
} | |
template <size_t _Ip> | |
struct __tuple_equal | |
{ | |
template <class _Tp, class _Up> | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) constexpr | |
bool operator()(const _Tp& __x, const _Up& __y) | |
{ | |
return __tuple_equal<_Ip - 1>()(__x, __y) && std::get<_Ip-1>(__x) == std::get<_Ip-1>(__y); | |
} | |
}; | |
template <> | |
struct __tuple_equal<0> | |
{ | |
template <class _Tp, class _Up> | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) constexpr | |
bool operator()(const _Tp&, const _Up&) | |
{ | |
return true; | |
} | |
}; | |
template <class ..._Tp, class ..._Up> | |
inline __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) constexpr | |
bool | |
operator==(const tuple<_Tp...>& __x, const tuple<_Up...>& __y) | |
{ | |
static_assert (sizeof...(_Tp) == sizeof...(_Up), "Can't compare tuples of different sizes"); | |
return __tuple_equal<sizeof...(_Tp)>()(__x, __y); | |
} | |
# 1544 "../../buildtools/third_party/libc++/trunk/include/tuple" 3 | |
template <class ..._Tp, class ..._Up> | |
inline __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) constexpr | |
bool | |
operator!=(const tuple<_Tp...>& __x, const tuple<_Up...>& __y) | |
{ | |
return !(__x == __y); | |
} | |
template <size_t _Ip> | |
struct __tuple_less | |
{ | |
template <class _Tp, class _Up> | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) constexpr | |
bool operator()(const _Tp& __x, const _Up& __y) | |
{ | |
const size_t __idx = tuple_size<_Tp>::value - _Ip; | |
if (std::get<__idx>(__x) < std::get<__idx>(__y)) | |
return true; | |
if (std::get<__idx>(__y) < std::get<__idx>(__x)) | |
return false; | |
return __tuple_less<_Ip-1>()(__x, __y); | |
} | |
}; | |
template <> | |
struct __tuple_less<0> | |
{ | |
template <class _Tp, class _Up> | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) constexpr | |
bool operator()(const _Tp&, const _Up&) | |
{ | |
return false; | |
} | |
}; | |
template <class ..._Tp, class ..._Up> | |
inline __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) constexpr | |
bool | |
operator<(const tuple<_Tp...>& __x, const tuple<_Up...>& __y) | |
{ | |
static_assert (sizeof...(_Tp) == sizeof...(_Up), "Can't compare tuples of different sizes"); | |
return __tuple_less<sizeof...(_Tp)>()(__x, __y); | |
} | |
template <class ..._Tp, class ..._Up> | |
inline __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) constexpr | |
bool | |
operator>(const tuple<_Tp...>& __x, const tuple<_Up...>& __y) | |
{ | |
return __y < __x; | |
} | |
template <class ..._Tp, class ..._Up> | |
inline __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) constexpr | |
bool | |
operator>=(const tuple<_Tp...>& __x, const tuple<_Up...>& __y) | |
{ | |
return !(__x < __y); | |
} | |
template <class ..._Tp, class ..._Up> | |
inline __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) constexpr | |
bool | |
operator<=(const tuple<_Tp...>& __x, const tuple<_Up...>& __y) | |
{ | |
return !(__y < __x); | |
} | |
template <class _Tp, class _Up> struct __tuple_cat_type; | |
template <class ..._Ttypes, class ..._Utypes> | |
struct __tuple_cat_type<tuple<_Ttypes...>, __tuple_types<_Utypes...> > | |
{ | |
typedef __attribute__((__nodebug__)) tuple<_Ttypes..., _Utypes...> type; | |
}; | |
template <class _ResultTuple, bool _Is_Tuple0TupleLike, class ..._Tuples> | |
struct __tuple_cat_return_1 | |
{ | |
}; | |
template <class ..._Types, class _Tuple0> | |
struct __tuple_cat_return_1<tuple<_Types...>, true, _Tuple0> | |
{ | |
using type __attribute__((__nodebug__)) = typename __tuple_cat_type< | |
tuple<_Types...>, | |
typename __make_tuple_types<__remove_cvref_t<_Tuple0> >::type | |
>::type; | |
}; | |
template <class ..._Types, class _Tuple0, class _Tuple1, class ..._Tuples> | |
struct __tuple_cat_return_1<tuple<_Types...>, true, _Tuple0, _Tuple1, _Tuples...> | |
: public __tuple_cat_return_1< | |
typename __tuple_cat_type< | |
tuple<_Types...>, | |
typename __make_tuple_types<__remove_cvref_t<_Tuple0> >::type | |
>::type, | |
__tuple_like<__libcpp_remove_reference_t<_Tuple1> >::value, | |
_Tuple1, _Tuples...> | |
{ | |
}; | |
template <class ..._Tuples> struct __tuple_cat_return; | |
template <class _Tuple0, class ..._Tuples> | |
struct __tuple_cat_return<_Tuple0, _Tuples...> | |
: public __tuple_cat_return_1<tuple<>, | |
__tuple_like<__libcpp_remove_reference_t<_Tuple0> >::value, _Tuple0, | |
_Tuples...> | |
{ | |
}; | |
template <> | |
struct __tuple_cat_return<> | |
{ | |
typedef __attribute__((__nodebug__)) tuple<> type; | |
}; | |
inline __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) constexpr | |
tuple<> | |
tuple_cat() | |
{ | |
return tuple<>(); | |
} | |
template <class _Rp, class _Indices, class _Tuple0, class ..._Tuples> | |
struct __tuple_cat_return_ref_imp; | |
template <class ..._Types, size_t ..._I0, class _Tuple0> | |
struct __tuple_cat_return_ref_imp<tuple<_Types...>, __tuple_indices<_I0...>, _Tuple0> | |
{ | |
typedef __attribute__((__nodebug__)) __libcpp_remove_reference_t<_Tuple0> _T0; | |
typedef tuple<_Types..., typename __apply_cv<_Tuple0, | |
typename tuple_element<_I0, _T0>::type>::type&&...> type; | |
}; | |
template <class ..._Types, size_t ..._I0, class _Tuple0, class _Tuple1, class ..._Tuples> | |
struct __tuple_cat_return_ref_imp<tuple<_Types...>, __tuple_indices<_I0...>, | |
_Tuple0, _Tuple1, _Tuples...> | |
: public __tuple_cat_return_ref_imp< | |
tuple<_Types..., typename __apply_cv<_Tuple0, | |
typename tuple_element<_I0, | |
__libcpp_remove_reference_t<_Tuple0> >::type>::type&&...>, | |
typename __make_tuple_indices<tuple_size<__libcpp_remove_reference_t<_Tuple1> >::value>::type, | |
_Tuple1, _Tuples...> | |
{ | |
}; | |
template <class _Tuple0, class ..._Tuples> | |
struct __tuple_cat_return_ref | |
: public __tuple_cat_return_ref_imp<tuple<>, | |
typename __make_tuple_indices< | |
tuple_size<__libcpp_remove_reference_t<_Tuple0> >::value | |
>::type, _Tuple0, _Tuples...> | |
{ | |
}; | |
template <class _Types, class _I0, class _J0> | |
struct __tuple_cat; | |
template <class ..._Types, size_t ..._I0, size_t ..._J0> | |
struct __tuple_cat<tuple<_Types...>, __tuple_indices<_I0...>, __tuple_indices<_J0...> > | |
{ | |
template <class _Tuple0> | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) constexpr | |
typename __tuple_cat_return_ref<tuple<_Types...>&&, _Tuple0&&>::type | |
operator()(tuple<_Types...> __t, _Tuple0&& __t0) | |
{ | |
(void)__t; | |
return std::forward_as_tuple( | |
std::forward<_Types>(std::get<_I0>(__t))..., | |
std::get<_J0>(std::forward<_Tuple0>(__t0))...); | |
} | |
template <class _Tuple0, class _Tuple1, class ..._Tuples> | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) constexpr | |
typename __tuple_cat_return_ref<tuple<_Types...>&&, _Tuple0&&, _Tuple1&&, _Tuples&&...>::type | |
operator()(tuple<_Types...> __t, _Tuple0&& __t0, _Tuple1&& __t1, _Tuples&& ...__tpls) | |
{ | |
(void)__t; | |
typedef __attribute__((__nodebug__)) __libcpp_remove_reference_t<_Tuple0> _T0; | |
typedef __attribute__((__nodebug__)) __libcpp_remove_reference_t<_Tuple1> _T1; | |
return __tuple_cat< | |
tuple<_Types..., | |
typename __apply_cv<_Tuple0, typename tuple_element< | |
_J0, _T0>::type>::type&&...>, | |
typename __make_tuple_indices<sizeof...(_Types) + | |
tuple_size<_T0>::value>::type, | |
typename __make_tuple_indices<tuple_size<_T1>::value>::type>()( | |
std::forward_as_tuple( | |
std::forward<_Types>(std::get<_I0>(__t))..., | |
std::get<_J0>(std::forward<_Tuple0>(__t0))...), | |
std::forward<_Tuple1>(__t1), std::forward<_Tuples>(__tpls)...); | |
} | |
}; | |
template <class _Tuple0, class... _Tuples> | |
inline __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) constexpr | |
typename __tuple_cat_return<_Tuple0, _Tuples...>::type | |
tuple_cat(_Tuple0&& __t0, _Tuples&&... __tpls) | |
{ | |
typedef __attribute__((__nodebug__)) __libcpp_remove_reference_t<_Tuple0> _T0; | |
return __tuple_cat<tuple<>, __tuple_indices<>, | |
typename __make_tuple_indices<tuple_size<_T0>::value>::type>() | |
(tuple<>(), std::forward<_Tuple0>(__t0), | |
std::forward<_Tuples>(__tpls)...); | |
} | |
template <class ..._Tp, class _Alloc> | |
struct uses_allocator<tuple<_Tp...>, _Alloc> | |
: true_type {}; | |
template <class _T1, class _T2> | |
template <class... _Args1, class... _Args2, size_t ..._I1, size_t ..._I2> | |
inline __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) | |
pair<_T1, _T2>::pair(piecewise_construct_t, | |
tuple<_Args1...>& __first_args, tuple<_Args2...>& __second_args, | |
__tuple_indices<_I1...>, __tuple_indices<_I2...>) | |
: first(std::forward<_Args1>(std::get<_I1>( __first_args))...), | |
second(std::forward<_Args2>(std::get<_I2>(__second_args))...) | |
{ | |
} | |
template <class _Tp> | |
inline constexpr size_t tuple_size_v = tuple_size<_Tp>::value; | |
#define _LIBCPP_NOEXCEPT_RETURN(...) noexcept(noexcept(__VA_ARGS__)) { return __VA_ARGS__; } | |
template <class _Fn, class _Tuple, size_t ..._Id> | |
inline __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) | |
constexpr decltype(auto) __apply_tuple_impl(_Fn && __f, _Tuple && __t, | |
__tuple_indices<_Id...>) | |
noexcept(noexcept(std::__invoke( std::forward<_Fn>(__f), std::get<_Id>(std::forward<_Tuple>(__t))...))) { return std::__invoke( std::forward<_Fn>(__f), std::get<_Id>(std::forward<_Tuple>(__t))...); } | |
template <class _Fn, class _Tuple> | |
inline __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) | |
constexpr decltype(auto) apply(_Fn && __f, _Tuple && __t) | |
noexcept(noexcept(std::__apply_tuple_impl( std::forward<_Fn>(__f), std::forward<_Tuple>(__t), typename __make_tuple_indices<tuple_size_v<remove_reference_t<_Tuple>>>::type{}))) { return std::__apply_tuple_impl( std::forward<_Fn>(__f), std::forward<_Tuple>(__t), typename __make_tuple_indices<tuple_size_v<remove_reference_t<_Tuple>>>::type{}); } | |
template <class _Tp, class _Tuple, size_t... _Idx> | |
inline __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) | |
constexpr _Tp __make_from_tuple_impl(_Tuple&& __t, __tuple_indices<_Idx...>) | |
noexcept(noexcept(_Tp(std::get<_Idx>(std::forward<_Tuple>(__t))...))) { return _Tp(std::get<_Idx>(std::forward<_Tuple>(__t))...); } | |
template <class _Tp, class _Tuple> | |
inline __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) | |
constexpr _Tp make_from_tuple(_Tuple&& __t) | |
noexcept(noexcept(std::__make_from_tuple_impl<_Tp>(std::forward<_Tuple>(__t), typename __make_tuple_indices<tuple_size_v<remove_reference_t<_Tuple>>>::type{}))) { return std::__make_from_tuple_impl<_Tp>(std::forward<_Tuple>(__t), typename __make_tuple_indices<tuple_size_v<remove_reference_t<_Tuple>>>::type{}); } | |
#undef _LIBCPP_NOEXCEPT_RETURN | |
}} | |
# 18 "../../buildtools/third_party/libc++/trunk/include/__memory/compressed_pair.h" 2 3 | |
# 22 "../../buildtools/third_party/libc++/trunk/include/__memory/compressed_pair.h" 3 | |
namespace std { inline namespace Cr { | |
struct __default_init_tag {}; | |
struct __value_init_tag {}; | |
template <class _Tp, int _Idx, bool _CanBeEmptyBase = is_empty<_Tp>::value && !__libcpp_is_final<_Tp>::value> | |
struct __compressed_pair_elem { | |
using _ParamT = _Tp; | |
using reference = _Tp&; | |
using const_reference = const _Tp&; | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) constexpr explicit __compressed_pair_elem(__default_init_tag) {} | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) constexpr explicit __compressed_pair_elem(__value_init_tag) : __value_() {} | |
template <class _Up, class = __enable_if_t<!is_same<__compressed_pair_elem, typename decay<_Up>::type>::value> > | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) constexpr | |
explicit __compressed_pair_elem(_Up&& __u) : __value_(std::forward<_Up>(__u)) {} | |
template <class... _Args, size_t... _Indices> | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) constexpr | |
explicit __compressed_pair_elem(piecewise_construct_t, tuple<_Args...> __args, __tuple_indices<_Indices...>) | |
: __value_(std::forward<_Args>(std::get<_Indices>(__args))...) {} | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) constexpr reference __get() noexcept { return __value_; } | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) constexpr const_reference __get() const noexcept { return __value_; } | |
private: | |
_Tp __value_; | |
}; | |
template <class _Tp, int _Idx> | |
struct __compressed_pair_elem<_Tp, _Idx, true> : private _Tp { | |
using _ParamT = _Tp; | |
using reference = _Tp&; | |
using const_reference = const _Tp&; | |
using __value_type = _Tp; | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) constexpr explicit __compressed_pair_elem() = default; | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) constexpr explicit __compressed_pair_elem(__default_init_tag) {} | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) constexpr explicit __compressed_pair_elem(__value_init_tag) : __value_type() {} | |
template <class _Up, class = __enable_if_t<!is_same<__compressed_pair_elem, typename decay<_Up>::type>::value> > | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) constexpr | |
explicit __compressed_pair_elem(_Up&& __u) : __value_type(std::forward<_Up>(__u)) {} | |
template <class... _Args, size_t... _Indices> | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) constexpr | |
__compressed_pair_elem(piecewise_construct_t, tuple<_Args...> __args, __tuple_indices<_Indices...>) | |
: __value_type(std::forward<_Args>(std::get<_Indices>(__args))...) {} | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) constexpr reference __get() noexcept { return *this; } | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) constexpr const_reference __get() const noexcept { return *this; } | |
}; | |
template <class _T1, class _T2> | |
class __compressed_pair : private __compressed_pair_elem<_T1, 0>, | |
private __compressed_pair_elem<_T2, 1> { | |
public: | |
static_assert((!is_same<_T1, _T2>::value), | |
"__compressed_pair cannot be instantiated when T1 and T2 are the same type; " | |
"The current implementation is NOT ABI-compatible with the previous implementation for this configuration"); | |
using _Base1 __attribute__((__nodebug__)) = __compressed_pair_elem<_T1, 0>; | |
using _Base2 __attribute__((__nodebug__)) = __compressed_pair_elem<_T2, 1>; | |
template <bool _Dummy = true, | |
class = __enable_if_t< | |
__dependent_type<is_default_constructible<_T1>, _Dummy>::value && | |
__dependent_type<is_default_constructible<_T2>, _Dummy>::value | |
> | |
> | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) constexpr | |
explicit __compressed_pair() : _Base1(__value_init_tag()), _Base2(__value_init_tag()) {} | |
template <class _U1, class _U2> | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) constexpr | |
explicit __compressed_pair(_U1&& __t1, _U2&& __t2) : _Base1(std::forward<_U1>(__t1)), _Base2(std::forward<_U2>(__t2)) {} | |
template <class... _Args1, class... _Args2> | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) constexpr | |
explicit __compressed_pair(piecewise_construct_t __pc, tuple<_Args1...> __first_args, | |
tuple<_Args2...> __second_args) | |
: _Base1(__pc, std::move(__first_args), typename __make_tuple_indices<sizeof...(_Args1)>::type()), | |
_Base2(__pc, std::move(__second_args), typename __make_tuple_indices<sizeof...(_Args2)>::type()) {} | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) constexpr | |
typename _Base1::reference first() noexcept { | |
return static_cast<_Base1&>(*this).__get(); | |
} | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) constexpr | |
typename _Base1::const_reference first() const noexcept { | |
return static_cast<_Base1 const&>(*this).__get(); | |
} | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) constexpr | |
typename _Base2::reference second() noexcept { | |
return static_cast<_Base2&>(*this).__get(); | |
} | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) constexpr | |
typename _Base2::const_reference second() const noexcept { | |
return static_cast<_Base2 const&>(*this).__get(); | |
} | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) constexpr static | |
_Base1* __get_first_base(__compressed_pair* __pair) noexcept { | |
return static_cast<_Base1*>(__pair); | |
} | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) constexpr static | |
_Base2* __get_second_base(__compressed_pair* __pair) noexcept { | |
return static_cast<_Base2*>(__pair); | |
} | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) constexpr | |
void swap(__compressed_pair& __x) | |
noexcept(__is_nothrow_swappable<_T1>::value && __is_nothrow_swappable<_T2>::value) { | |
using std::swap; | |
swap(first(), __x.first()); | |
swap(second(), __x.second()); | |
} | |
}; | |
template <class _T1, class _T2> | |
inline __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) constexpr | |
void swap(__compressed_pair<_T1, _T2>& __x, __compressed_pair<_T1, _T2>& __y) | |
noexcept(__is_nothrow_swappable<_T1>::value && __is_nothrow_swappable<_T2>::value) { | |
__x.swap(__y); | |
} | |
}} | |
# 22 "../../buildtools/third_party/libc++/trunk/include/__memory/unique_ptr.h" 2 3 | |
# 29 "../../buildtools/third_party/libc++/trunk/include/__memory/unique_ptr.h" 3 | |
namespace std { inline namespace Cr { | |
template <class _Tp> | |
struct default_delete { | |
static_assert(!is_function<_Tp>::value, | |
"default_delete cannot be instantiated for function types"); | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) constexpr default_delete() noexcept = default; | |
template <class _Up> | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) default_delete( | |
const default_delete<_Up>&, typename enable_if<is_convertible<_Up*, _Tp*>::value>::type* = 0) noexcept {} | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) void operator()(_Tp* __ptr) const noexcept { | |
static_assert(sizeof(_Tp) >= 0, "cannot delete an incomplete type"); | |
static_assert(!is_void<_Tp>::value, "cannot delete an incomplete type"); | |
delete __ptr; | |
} | |
}; | |
template <class _Tp> | |
struct default_delete<_Tp[]> { | |
private: | |
template <class _Up> | |
struct _EnableIfConvertible | |
: enable_if<is_convertible<_Up(*)[], _Tp(*)[]>::value> {}; | |
public: | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) constexpr default_delete() noexcept = default; | |
template <class _Up> | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) | |
default_delete(const default_delete<_Up[]>&, typename _EnableIfConvertible<_Up>::type* = 0) noexcept {} | |
template <class _Up> | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) typename _EnableIfConvertible<_Up>::type | |
operator()(_Up* __ptr) const noexcept { | |
static_assert(sizeof(_Up) >= 0, "cannot delete an incomplete type"); | |
delete[] __ptr; | |
} | |
}; | |
template <class _Deleter> | |
struct __unique_ptr_deleter_sfinae { | |
static_assert(!is_reference<_Deleter>::value, "incorrect specialization"); | |
typedef const _Deleter& __lval_ref_type; | |
typedef _Deleter&& __good_rval_ref_type; | |
typedef true_type __enable_rval_overload; | |
}; | |
template <class _Deleter> | |
struct __unique_ptr_deleter_sfinae<_Deleter const&> { | |
typedef const _Deleter& __lval_ref_type; | |
typedef const _Deleter&& __bad_rval_ref_type; | |
typedef false_type __enable_rval_overload; | |
}; | |
template <class _Deleter> | |
struct __unique_ptr_deleter_sfinae<_Deleter&> { | |
typedef _Deleter& __lval_ref_type; | |
typedef _Deleter&& __bad_rval_ref_type; | |
typedef false_type __enable_rval_overload; | |
}; | |
#define _LIBCPP_UNIQUE_PTR_TRIVIAL_ABI __attribute__((trivial_abi)) | |
template <class _Tp, class _Dp = default_delete<_Tp> > | |
class __attribute__((trivial_abi)) unique_ptr { | |
public: | |
typedef _Tp element_type; | |
typedef _Dp deleter_type; | |
typedef __attribute__((__nodebug__)) typename __pointer<_Tp, deleter_type>::type pointer; | |
static_assert(!is_rvalue_reference<deleter_type>::value, | |
"the specified deleter type cannot be an rvalue reference"); | |
private: | |
__compressed_pair<pointer, deleter_type> __ptr_; | |
struct __nat { int __for_bool_; }; | |
typedef __attribute__((__nodebug__)) __unique_ptr_deleter_sfinae<_Dp> _DeleterSFINAE; | |
template <bool _Dummy> | |
using _LValRefType __attribute__((__nodebug__)) = | |
typename __dependent_type<_DeleterSFINAE, _Dummy>::__lval_ref_type; | |
template <bool _Dummy> | |
using _GoodRValRefType __attribute__((__nodebug__)) = | |
typename __dependent_type<_DeleterSFINAE, _Dummy>::__good_rval_ref_type; | |
template <bool _Dummy> | |
using _BadRValRefType __attribute__((__nodebug__)) = | |
typename __dependent_type<_DeleterSFINAE, _Dummy>::__bad_rval_ref_type; | |
template <bool _Dummy, class _Deleter = typename __dependent_type< | |
__type_identity<deleter_type>, _Dummy>::type> | |
using _EnableIfDeleterDefaultConstructible __attribute__((__nodebug__)) = | |
typename enable_if<is_default_constructible<_Deleter>::value && | |
!is_pointer<_Deleter>::value>::type; | |
template <class _ArgType> | |
using _EnableIfDeleterConstructible __attribute__((__nodebug__)) = | |
typename enable_if<is_constructible<deleter_type, _ArgType>::value>::type; | |
template <class _UPtr, class _Up> | |
using _EnableIfMoveConvertible __attribute__((__nodebug__)) = typename enable_if< | |
is_convertible<typename _UPtr::pointer, pointer>::value && | |
!is_array<_Up>::value | |
>::type; | |
template <class _UDel> | |
using _EnableIfDeleterConvertible __attribute__((__nodebug__)) = typename enable_if< | |
(is_reference<_Dp>::value && is_same<_Dp, _UDel>::value) || | |
(!is_reference<_Dp>::value && is_convertible<_UDel, _Dp>::value) | |
>::type; | |
template <class _UDel> | |
using _EnableIfDeleterAssignable = typename enable_if< | |
is_assignable<_Dp&, _UDel&&>::value | |
>::type; | |
public: | |
template <bool _Dummy = true, | |
class = _EnableIfDeleterDefaultConstructible<_Dummy> > | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) | |
constexpr unique_ptr() noexcept : __ptr_(__value_init_tag(), __value_init_tag()) {} | |
template <bool _Dummy = true, | |
class = _EnableIfDeleterDefaultConstructible<_Dummy> > | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) | |
constexpr unique_ptr(nullptr_t) noexcept : __ptr_(__value_init_tag(), __value_init_tag()) {} | |
template <bool _Dummy = true, class = _EnableIfDeleterDefaultConstructible<_Dummy> > | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) explicit unique_ptr(pointer __p) noexcept | |
: __ptr_(__p, __value_init_tag()) {} | |
template <bool _Dummy = true, class = _EnableIfDeleterConstructible<_LValRefType<_Dummy> > > | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) unique_ptr(pointer __p, _LValRefType<_Dummy> __d) noexcept | |
: __ptr_(__p, __d) {} | |
template <bool _Dummy = true, class = _EnableIfDeleterConstructible<_GoodRValRefType<_Dummy> > > | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) | |
unique_ptr(pointer __p, _GoodRValRefType<_Dummy> __d) noexcept : __ptr_(__p, std::move(__d)) { | |
static_assert(!is_reference<deleter_type>::value, | |
"rvalue deleter bound to reference"); | |
} | |
template <bool _Dummy = true, | |
class = _EnableIfDeleterConstructible<_BadRValRefType<_Dummy> > > | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) | |
unique_ptr(pointer __p, _BadRValRefType<_Dummy> __d) = delete; | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) unique_ptr(unique_ptr&& __u) noexcept | |
: __ptr_(__u.release(), std::forward<deleter_type>(__u.get_deleter())) {} | |
template <class _Up, | |
class _Ep, | |
class = _EnableIfMoveConvertible<unique_ptr<_Up, _Ep>, _Up>, | |
class = _EnableIfDeleterConvertible<_Ep> > | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) unique_ptr(unique_ptr<_Up, _Ep>&& __u) noexcept | |
: __ptr_(__u.release(), std::forward<_Ep>(__u.get_deleter())) {} | |
# 214 "../../buildtools/third_party/libc++/trunk/include/__memory/unique_ptr.h" 3 | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) unique_ptr& operator=(unique_ptr&& __u) noexcept { | |
reset(__u.release()); | |
__ptr_.second() = std::forward<deleter_type>(__u.get_deleter()); | |
return *this; | |
} | |
template <class _Up, | |
class _Ep, | |
class = _EnableIfMoveConvertible<unique_ptr<_Up, _Ep>, _Up>, | |
class = _EnableIfDeleterAssignable<_Ep> > | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) unique_ptr& operator=(unique_ptr<_Up, _Ep>&& __u) noexcept { | |
reset(__u.release()); | |
__ptr_.second() = std::forward<_Ep>(__u.get_deleter()); | |
return *this; | |
} | |
# 247 "../../buildtools/third_party/libc++/trunk/include/__memory/unique_ptr.h" 3 | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) ~unique_ptr() { reset(); } | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) unique_ptr& operator=(nullptr_t) noexcept { | |
reset(); | |
return *this; | |
} | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) __add_lvalue_reference_t<_Tp> operator*() const { | |
return *__ptr_.first(); | |
} | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) pointer operator->() const noexcept { | |
return __ptr_.first(); | |
} | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) pointer get() const noexcept { return __ptr_.first(); } | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) deleter_type& get_deleter() noexcept { | |
return __ptr_.second(); | |
} | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) const deleter_type& get_deleter() const noexcept { | |
return __ptr_.second(); | |
} | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) explicit operator bool() const noexcept { | |
return __ptr_.first() != nullptr; | |
} | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) pointer release() noexcept { | |
pointer __t = __ptr_.first(); | |
__ptr_.first() = pointer(); | |
return __t; | |
} | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) void reset(pointer __p = pointer()) noexcept { | |
pointer __tmp = __ptr_.first(); | |
__ptr_.first() = __p; | |
if (__tmp) | |
__ptr_.second()(__tmp); | |
} | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) void swap(unique_ptr& __u) noexcept { | |
__ptr_.swap(__u.__ptr_); | |
} | |
}; | |
template <class _Tp, class _Dp> | |
class __attribute__((trivial_abi)) unique_ptr<_Tp[], _Dp> { | |
public: | |
typedef _Tp element_type; | |
typedef _Dp deleter_type; | |
typedef typename __pointer<_Tp, deleter_type>::type pointer; | |
private: | |
__compressed_pair<pointer, deleter_type> __ptr_; | |
template <class _From> | |
struct _CheckArrayPointerConversion : is_same<_From, pointer> {}; | |
template <class _FromElem> | |
struct _CheckArrayPointerConversion<_FromElem*> | |
: integral_constant<bool, | |
is_same<_FromElem*, pointer>::value || | |
(is_same<pointer, element_type*>::value && | |
is_convertible<_FromElem(*)[], element_type(*)[]>::value) | |
> | |
{}; | |
typedef __unique_ptr_deleter_sfinae<_Dp> _DeleterSFINAE; | |
template <bool _Dummy> | |
using _LValRefType __attribute__((__nodebug__)) = | |
typename __dependent_type<_DeleterSFINAE, _Dummy>::__lval_ref_type; | |
template <bool _Dummy> | |
using _GoodRValRefType __attribute__((__nodebug__)) = | |
typename __dependent_type<_DeleterSFINAE, _Dummy>::__good_rval_ref_type; | |
template <bool _Dummy> | |
using _BadRValRefType __attribute__((__nodebug__)) = | |
typename __dependent_type<_DeleterSFINAE, _Dummy>::__bad_rval_ref_type; | |
template <bool _Dummy, class _Deleter = typename __dependent_type< | |
__type_identity<deleter_type>, _Dummy>::type> | |
using _EnableIfDeleterDefaultConstructible __attribute__((__nodebug__)) = | |
typename enable_if<is_default_constructible<_Deleter>::value && | |
!is_pointer<_Deleter>::value>::type; | |
template <class _ArgType> | |
using _EnableIfDeleterConstructible __attribute__((__nodebug__)) = | |
typename enable_if<is_constructible<deleter_type, _ArgType>::value>::type; | |
template <class _Pp> | |
using _EnableIfPointerConvertible __attribute__((__nodebug__)) = typename enable_if< | |
_CheckArrayPointerConversion<_Pp>::value | |
>::type; | |
template <class _UPtr, class _Up, | |
class _ElemT = typename _UPtr::element_type> | |
using _EnableIfMoveConvertible __attribute__((__nodebug__)) = typename enable_if< | |
is_array<_Up>::value && | |
is_same<pointer, element_type*>::value && | |
is_same<typename _UPtr::pointer, _ElemT*>::value && | |
is_convertible<_ElemT(*)[], element_type(*)[]>::value | |
>::type; | |
template <class _UDel> | |
using _EnableIfDeleterConvertible __attribute__((__nodebug__)) = typename enable_if< | |
(is_reference<_Dp>::value && is_same<_Dp, _UDel>::value) || | |
(!is_reference<_Dp>::value && is_convertible<_UDel, _Dp>::value) | |
>::type; | |
template <class _UDel> | |
using _EnableIfDeleterAssignable __attribute__((__nodebug__)) = typename enable_if< | |
is_assignable<_Dp&, _UDel&&>::value | |
>::type; | |
public: | |
template <bool _Dummy = true, | |
class = _EnableIfDeleterDefaultConstructible<_Dummy> > | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) | |
constexpr unique_ptr() noexcept : __ptr_(__value_init_tag(), __value_init_tag()) {} | |
template <bool _Dummy = true, | |
class = _EnableIfDeleterDefaultConstructible<_Dummy> > | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) | |
constexpr unique_ptr(nullptr_t) noexcept : __ptr_(__value_init_tag(), __value_init_tag()) {} | |
template <class _Pp, | |
bool _Dummy = true, | |
class = _EnableIfDeleterDefaultConstructible<_Dummy>, | |
class = _EnableIfPointerConvertible<_Pp> > | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) explicit unique_ptr(_Pp __p) noexcept | |
: __ptr_(__p, __value_init_tag()) {} | |
template <class _Pp, | |
bool _Dummy = true, | |
class = _EnableIfDeleterConstructible<_LValRefType<_Dummy> >, | |
class = _EnableIfPointerConvertible<_Pp> > | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) unique_ptr(_Pp __p, _LValRefType<_Dummy> __d) noexcept | |
: __ptr_(__p, __d) {} | |
template <bool _Dummy = true, class = _EnableIfDeleterConstructible<_LValRefType<_Dummy> > > | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) unique_ptr(nullptr_t, _LValRefType<_Dummy> __d) noexcept | |
: __ptr_(nullptr, __d) {} | |
template <class _Pp, | |
bool _Dummy = true, | |
class = _EnableIfDeleterConstructible<_GoodRValRefType<_Dummy> >, | |
class = _EnableIfPointerConvertible<_Pp> > | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) unique_ptr(_Pp __p, _GoodRValRefType<_Dummy> __d) noexcept | |
: __ptr_(__p, std::move(__d)) { | |
static_assert(!is_reference<deleter_type>::value, | |
"rvalue deleter bound to reference"); | |
} | |
template <bool _Dummy = true, class = _EnableIfDeleterConstructible<_GoodRValRefType<_Dummy> > > | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) unique_ptr(nullptr_t, _GoodRValRefType<_Dummy> __d) noexcept | |
: __ptr_(nullptr, std::move(__d)) { | |
static_assert(!is_reference<deleter_type>::value, | |
"rvalue deleter bound to reference"); | |
} | |
template <class _Pp, bool _Dummy = true, | |
class = _EnableIfDeleterConstructible<_BadRValRefType<_Dummy> >, | |
class = _EnableIfPointerConvertible<_Pp> > | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) | |
unique_ptr(_Pp __p, _BadRValRefType<_Dummy> __d) = delete; | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) unique_ptr(unique_ptr&& __u) noexcept | |
: __ptr_(__u.release(), std::forward<deleter_type>(__u.get_deleter())) {} | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) unique_ptr& operator=(unique_ptr&& __u) noexcept { | |
reset(__u.release()); | |
__ptr_.second() = std::forward<deleter_type>(__u.get_deleter()); | |
return *this; | |
} | |
template <class _Up, | |
class _Ep, | |
class = _EnableIfMoveConvertible<unique_ptr<_Up, _Ep>, _Up>, | |
class = _EnableIfDeleterConvertible<_Ep> > | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) unique_ptr(unique_ptr<_Up, _Ep>&& __u) noexcept | |
: __ptr_(__u.release(), std::forward<_Ep>(__u.get_deleter())) {} | |
template <class _Up, | |
class _Ep, | |
class = _EnableIfMoveConvertible<unique_ptr<_Up, _Ep>, _Up>, | |
class = _EnableIfDeleterAssignable<_Ep> > | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) unique_ptr& operator=(unique_ptr<_Up, _Ep>&& __u) noexcept { | |
reset(__u.release()); | |
__ptr_.second() = std::forward<_Ep>(__u.get_deleter()); | |
return *this; | |
} | |
public: | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) ~unique_ptr() { reset(); } | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) unique_ptr& operator=(nullptr_t) noexcept { | |
reset(); | |
return *this; | |
} | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) __add_lvalue_reference_t<_Tp> | |
operator[](size_t __i) const { | |
return __ptr_.first()[__i]; | |
} | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) pointer get() const noexcept { return __ptr_.first(); } | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) deleter_type& get_deleter() noexcept { | |
return __ptr_.second(); | |
} | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) const deleter_type& get_deleter() const noexcept { | |
return __ptr_.second(); | |
} | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) explicit operator bool() const noexcept { | |
return __ptr_.first() != nullptr; | |
} | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) pointer release() noexcept { | |
pointer __t = __ptr_.first(); | |
__ptr_.first() = pointer(); | |
return __t; | |
} | |
template <class _Pp> | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) | |
typename enable_if< _CheckArrayPointerConversion<_Pp>::value >::type | |
reset(_Pp __p) noexcept { | |
pointer __tmp = __ptr_.first(); | |
__ptr_.first() = __p; | |
if (__tmp) | |
__ptr_.second()(__tmp); | |
} | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) void reset(nullptr_t = nullptr) noexcept { | |
pointer __tmp = __ptr_.first(); | |
__ptr_.first() = nullptr; | |
if (__tmp) | |
__ptr_.second()(__tmp); | |
} | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) void swap(unique_ptr& __u) noexcept { | |
__ptr_.swap(__u.__ptr_); | |
} | |
}; | |
template <class _Tp, class _Dp> | |
inline __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) | |
typename enable_if< __is_swappable<_Dp>::value, void >::type | |
swap(unique_ptr<_Tp, _Dp>& __x, unique_ptr<_Tp, _Dp>& __y) noexcept { | |
__x.swap(__y); | |
} | |
template <class _T1, class _D1, class _T2, class _D2> | |
inline __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) bool | |
operator==(const unique_ptr<_T1, _D1>& __x, const unique_ptr<_T2, _D2>& __y) { | |
return __x.get() == __y.get(); | |
} | |
template <class _T1, class _D1, class _T2, class _D2> | |
inline __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) | |
bool | |
operator!=(const unique_ptr<_T1, _D1>& __x, const unique_ptr<_T2, _D2>& __y) {return !(__x == __y);} | |
template <class _T1, class _D1, class _T2, class _D2> | |
inline __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) | |
bool | |
operator< (const unique_ptr<_T1, _D1>& __x, const unique_ptr<_T2, _D2>& __y) | |
{ | |
typedef typename unique_ptr<_T1, _D1>::pointer _P1; | |
typedef typename unique_ptr<_T2, _D2>::pointer _P2; | |
typedef typename common_type<_P1, _P2>::type _Vp; | |
return less<_Vp>()(__x.get(), __y.get()); | |
} | |
template <class _T1, class _D1, class _T2, class _D2> | |
inline __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) | |
bool | |
operator> (const unique_ptr<_T1, _D1>& __x, const unique_ptr<_T2, _D2>& __y) {return __y < __x;} | |
template <class _T1, class _D1, class _T2, class _D2> | |
inline __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) | |
bool | |
operator<=(const unique_ptr<_T1, _D1>& __x, const unique_ptr<_T2, _D2>& __y) {return !(__y < __x);} | |
template <class _T1, class _D1, class _T2, class _D2> | |
inline __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) | |
bool | |
operator>=(const unique_ptr<_T1, _D1>& __x, const unique_ptr<_T2, _D2>& __y) {return !(__x < __y);} | |
# 555 "../../buildtools/third_party/libc++/trunk/include/__memory/unique_ptr.h" 3 | |
template <class _T1, class _D1> | |
inline __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) bool | |
operator==(const unique_ptr<_T1, _D1>& __x, nullptr_t) noexcept { | |
return !__x; | |
} | |
template <class _T1, class _D1> | |
inline __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) | |
bool | |
operator==(nullptr_t, const unique_ptr<_T1, _D1>& __x) noexcept | |
{ | |
return !__x; | |
} | |
template <class _T1, class _D1> | |
inline __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) | |
bool | |
operator!=(const unique_ptr<_T1, _D1>& __x, nullptr_t) noexcept | |
{ | |
return static_cast<bool>(__x); | |
} | |
template <class _T1, class _D1> | |
inline __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) | |
bool | |
operator!=(nullptr_t, const unique_ptr<_T1, _D1>& __x) noexcept | |
{ | |
return static_cast<bool>(__x); | |
} | |
template <class _T1, class _D1> | |
inline __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) bool | |
operator<(const unique_ptr<_T1, _D1>& __x, nullptr_t) { | |
typedef typename unique_ptr<_T1, _D1>::pointer _P1; | |
return less<_P1>()(__x.get(), nullptr); | |
} | |
template <class _T1, class _D1> | |
inline __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) bool | |
operator<(nullptr_t, const unique_ptr<_T1, _D1>& __x) { | |
typedef typename unique_ptr<_T1, _D1>::pointer _P1; | |
return less<_P1>()(nullptr, __x.get()); | |
} | |
template <class _T1, class _D1> | |
inline __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) bool | |
operator>(const unique_ptr<_T1, _D1>& __x, nullptr_t) { | |
return nullptr < __x; | |
} | |
template <class _T1, class _D1> | |
inline __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) bool | |
operator>(nullptr_t, const unique_ptr<_T1, _D1>& __x) { | |
return __x < nullptr; | |
} | |
template <class _T1, class _D1> | |
inline __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) bool | |
operator<=(const unique_ptr<_T1, _D1>& __x, nullptr_t) { | |
return !(nullptr < __x); | |
} | |
template <class _T1, class _D1> | |
inline __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) bool | |
operator<=(nullptr_t, const unique_ptr<_T1, _D1>& __x) { | |
return !(__x < nullptr); | |
} | |
template <class _T1, class _D1> | |
inline __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) bool | |
operator>=(const unique_ptr<_T1, _D1>& __x, nullptr_t) { | |
return !(__x < nullptr); | |
} | |
template <class _T1, class _D1> | |
inline __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) bool | |
operator>=(nullptr_t, const unique_ptr<_T1, _D1>& __x) { | |
return !(nullptr < __x); | |
} | |
# 649 "../../buildtools/third_party/libc++/trunk/include/__memory/unique_ptr.h" 3 | |
template<class _Tp> | |
struct __unique_if | |
{ | |
typedef unique_ptr<_Tp> __unique_single; | |
}; | |
template<class _Tp> | |
struct __unique_if<_Tp[]> | |
{ | |
typedef unique_ptr<_Tp[]> __unique_array_unknown_bound; | |
}; | |
template<class _Tp, size_t _Np> | |
struct __unique_if<_Tp[_Np]> | |
{ | |
typedef void __unique_array_known_bound; | |
}; | |
template <class _Tp, class... _Args> | |
inline __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) typename __unique_if<_Tp>::__unique_single | |
make_unique(_Args&&... __args) { | |
return unique_ptr<_Tp>(new _Tp(std::forward<_Args>(__args)...)); | |
} | |
template <class _Tp> | |
inline __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) typename __unique_if<_Tp>::__unique_array_unknown_bound | |
make_unique(size_t __n) { | |
typedef __remove_extent_t<_Tp> _Up; | |
return unique_ptr<_Tp>(new _Up[__n]()); | |
} | |
template<class _Tp, class... _Args> | |
typename __unique_if<_Tp>::__unique_array_known_bound | |
make_unique(_Args&&...) = delete; | |
template <class _Tp> struct hash; | |
template <class _Tp, class _Dp> | |
struct hash<__enable_hash_helper< | |
unique_ptr<_Tp, _Dp>, typename unique_ptr<_Tp, _Dp>::pointer> > | |
{ | |
__attribute__((deprecated)) typedef unique_ptr<_Tp, _Dp> argument_type; | |
__attribute__((deprecated)) typedef size_t result_type; | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) | |
size_t operator()(const unique_ptr<_Tp, _Dp>& __ptr) const | |
{ | |
typedef typename unique_ptr<_Tp, _Dp>::pointer pointer; | |
return hash<pointer>()(__ptr.get()); | |
} | |
}; | |
}} | |
# 29 "../../buildtools/third_party/libc++/trunk/include/__algorithm/inplace_merge.h" 2 3 | |
# 34 "../../buildtools/third_party/libc++/trunk/include/__algorithm/inplace_merge.h" 3 | |
# 1 "../../buildtools/third_party/libc++/trunk/include/__undef_macros" 1 3 | |
# 38 "../../buildtools/third_party/libc++/trunk/include/__algorithm/inplace_merge.h" 2 3 | |
namespace std { inline namespace Cr { | |
template <class _Predicate> | |
class __invert | |
{ | |
private: | |
_Predicate __p_; | |
public: | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) __invert() {} | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) | |
explicit __invert(_Predicate __p) : __p_(__p) {} | |
template <class _T1> | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) | |
bool operator()(const _T1& __x) {return !__p_(__x);} | |
template <class _T1, class _T2> | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) | |
bool operator()(const _T1& __x, const _T2& __y) {return __p_(__y, __x);} | |
}; | |
template <class _AlgPolicy, class _Compare, class _InputIterator1, class _Sent1, | |
class _InputIterator2, class _Sent2, class _OutputIterator> | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) | |
void __half_inplace_merge(_InputIterator1 __first1, _Sent1 __last1, | |
_InputIterator2 __first2, _Sent2 __last2, | |
_OutputIterator __result, _Compare&& __comp) | |
{ | |
for (; __first1 != __last1; ++__result) | |
{ | |
if (__first2 == __last2) | |
{ | |
std::__move<_AlgPolicy>(__first1, __last1, __result); | |
return; | |
} | |
if (__comp(*__first2, *__first1)) | |
{ | |
*__result = _IterOps<_AlgPolicy>::__iter_move(__first2); | |
++__first2; | |
} | |
else | |
{ | |
*__result = _IterOps<_AlgPolicy>::__iter_move(__first1); | |
++__first1; | |
} | |
} | |
} | |
template <class _AlgPolicy, class _Compare, class _BidirectionalIterator> | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) | |
void __buffered_inplace_merge( | |
_BidirectionalIterator __first, | |
_BidirectionalIterator __middle, | |
_BidirectionalIterator __last, | |
_Compare&& __comp, | |
typename iterator_traits<_BidirectionalIterator>::difference_type __len1, | |
typename iterator_traits<_BidirectionalIterator>::difference_type __len2, | |
typename iterator_traits<_BidirectionalIterator>::value_type* __buff) { | |
typedef typename iterator_traits<_BidirectionalIterator>::value_type value_type; | |
__destruct_n __d(0); | |
unique_ptr<value_type, __destruct_n&> __h2(__buff, __d); | |
if (__len1 <= __len2) | |
{ | |
value_type* __p = __buff; | |
for (_BidirectionalIterator __i = __first; __i != __middle; __d.template __incr<value_type>(), (void) ++__i, (void) ++__p) | |
::new ((void*)__p) value_type(_IterOps<_AlgPolicy>::__iter_move(__i)); | |
std::__half_inplace_merge<_AlgPolicy>(__buff, __p, __middle, __last, __first, __comp); | |
} | |
else | |
{ | |
value_type* __p = __buff; | |
for (_BidirectionalIterator __i = __middle; __i != __last; __d.template __incr<value_type>(), (void) ++__i, (void) ++__p) | |
::new ((void*)__p) value_type(_IterOps<_AlgPolicy>::__iter_move(__i)); | |
typedef __unconstrained_reverse_iterator<_BidirectionalIterator> _RBi; | |
typedef __unconstrained_reverse_iterator<value_type*> _Rv; | |
typedef __invert<_Compare> _Inverted; | |
std::__half_inplace_merge<_AlgPolicy>(_Rv(__p), _Rv(__buff), | |
_RBi(__middle), _RBi(__first), | |
_RBi(__last), _Inverted(__comp)); | |
} | |
} | |
template <class _AlgPolicy, class _Compare, class _BidirectionalIterator> | |
void __inplace_merge( | |
_BidirectionalIterator __first, | |
_BidirectionalIterator __middle, | |
_BidirectionalIterator __last, | |
_Compare&& __comp, | |
typename iterator_traits<_BidirectionalIterator>::difference_type __len1, | |
typename iterator_traits<_BidirectionalIterator>::difference_type __len2, | |
typename iterator_traits<_BidirectionalIterator>::value_type* __buff, | |
ptrdiff_t __buff_size) { | |
using _Ops = _IterOps<_AlgPolicy>; | |
typedef typename iterator_traits<_BidirectionalIterator>::difference_type difference_type; | |
while (true) | |
{ | |
if (__len2 == 0) | |
return; | |
if (__len1 <= __buff_size || __len2 <= __buff_size) | |
return std::__buffered_inplace_merge<_AlgPolicy> | |
(__first, __middle, __last, __comp, __len1, __len2, __buff); | |
for (; true; ++__first, (void) --__len1) | |
{ | |
if (__len1 == 0) | |
return; | |
if (__comp(*__middle, *__first)) | |
break; | |
} | |
# 161 "../../buildtools/third_party/libc++/trunk/include/__algorithm/inplace_merge.h" 3 | |
_BidirectionalIterator __m1; | |
_BidirectionalIterator __m2; | |
difference_type __len11; | |
difference_type __len21; | |
if (__len1 < __len2) | |
{ | |
__len21 = __len2 / 2; | |
__m2 = __middle; | |
_Ops::advance(__m2, __len21); | |
__m1 = std::__upper_bound<_AlgPolicy>(__first, __middle, *__m2, __comp, std::__identity()); | |
__len11 = _Ops::distance(__first, __m1); | |
} | |
else | |
{ | |
if (__len1 == 1) | |
{ | |
_Ops::iter_swap(__first, __middle); | |
return; | |
} | |
__len11 = __len1 / 2; | |
__m1 = __first; | |
_Ops::advance(__m1, __len11); | |
__m2 = std::lower_bound(__middle, __last, *__m1, __comp); | |
__len21 = _Ops::distance(__middle, __m2); | |
} | |
difference_type __len12 = __len1 - __len11; | |
difference_type __len22 = __len2 - __len21; | |
__middle = std::__rotate<_AlgPolicy>(__m1, __middle, __m2).first; | |
if (__len11 + __len21 < __len12 + __len22) | |
{ | |
std::__inplace_merge<_AlgPolicy>( | |
__first, __m1, __middle, __comp, __len11, __len21, __buff, __buff_size); | |
__first = __middle; | |
__middle = __m2; | |
__len1 = __len12; | |
__len2 = __len22; | |
} | |
else | |
{ | |
std::__inplace_merge<_AlgPolicy>( | |
__middle, __m2, __last, __comp, __len12, __len22, __buff, __buff_size); | |
__last = __middle; | |
__middle = __m1; | |
__len1 = __len11; | |
__len2 = __len21; | |
} | |
} | |
} | |
template <class _AlgPolicy, class _BidirectionalIterator, class _Compare> | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) | |
void | |
__inplace_merge(_BidirectionalIterator __first, _BidirectionalIterator __middle, _BidirectionalIterator __last, | |
_Compare&& __comp) | |
{ | |
typedef typename iterator_traits<_BidirectionalIterator>::value_type value_type; | |
typedef typename iterator_traits<_BidirectionalIterator>::difference_type difference_type; | |
difference_type __len1 = _IterOps<_AlgPolicy>::distance(__first, __middle); | |
difference_type __len2 = _IterOps<_AlgPolicy>::distance(__middle, __last); | |
difference_type __buf_size = std::min(__len1, __len2); | |
#pragma GCC diagnostic push | |
# 229 "../../buildtools/third_party/libc++/trunk/include/__algorithm/inplace_merge.h" 3 | |
#pragma GCC diagnostic ignored "-Wdeprecated" | |
# 229 "../../buildtools/third_party/libc++/trunk/include/__algorithm/inplace_merge.h" 3 | |
#pragma GCC diagnostic ignored "-Wdeprecated-declarations" | |
pair<value_type*, ptrdiff_t> __buf = std::get_temporary_buffer<value_type>(__buf_size); | |
#pragma GCC diagnostic pop | |
unique_ptr<value_type, __return_temporary_buffer> __h(__buf.first); | |
return std::__inplace_merge<_AlgPolicy>( | |
std::move(__first), std::move(__middle), std::move(__last), __comp, __len1, __len2, __buf.first, __buf.second); | |
} | |
template <class _BidirectionalIterator, class _Compare> | |
inline __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) void inplace_merge( | |
_BidirectionalIterator __first, _BidirectionalIterator __middle, _BidirectionalIterator __last, _Compare __comp) { | |
typedef typename __comp_ref_type<_Compare>::type _Comp_ref; | |
std::__inplace_merge<_ClassicAlgPolicy>( | |
std::move(__first), std::move(__middle), std::move(__last), static_cast<_Comp_ref>(__comp)); | |
} | |
template <class _BidirectionalIterator> | |
inline __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) | |
void | |
inplace_merge(_BidirectionalIterator __first, _BidirectionalIterator __middle, _BidirectionalIterator __last) | |
{ | |
std::inplace_merge(std::move(__first), std::move(__middle), std::move(__last), | |
__less<typename iterator_traits<_BidirectionalIterator>::value_type>()); | |
} | |
}} | |
# 1750 "../../buildtools/third_party/libc++/trunk/include/algorithm" 2 3 | |
# 1 "../../buildtools/third_party/libc++/trunk/include/__algorithm/is_heap.h" 1 3 | |
# 10 "../../buildtools/third_party/libc++/trunk/include/__algorithm/is_heap.h" 3 | |
#define _LIBCPP___ALGORITHM_IS_HEAP_H | |
# 1 "../../buildtools/third_party/libc++/trunk/include/__algorithm/is_heap_until.h" 1 3 | |
# 10 "../../buildtools/third_party/libc++/trunk/include/__algorithm/is_heap_until.h" 3 | |
#define _LIBCPP___ALGORITHM_IS_HEAP_UNTIL_H | |
# 19 "../../buildtools/third_party/libc++/trunk/include/__algorithm/is_heap_until.h" 3 | |
namespace std { inline namespace Cr { | |
template <class _Compare, class _RandomAccessIterator> | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) _RandomAccessIterator | |
__is_heap_until(_RandomAccessIterator __first, _RandomAccessIterator __last, _Compare&& __comp) | |
{ | |
typedef typename iterator_traits<_RandomAccessIterator>::difference_type difference_type; | |
difference_type __len = __last - __first; | |
difference_type __p = 0; | |
difference_type __c = 1; | |
_RandomAccessIterator __pp = __first; | |
while (__c < __len) | |
{ | |
_RandomAccessIterator __cp = __first + __c; | |
if (__comp(*__pp, *__cp)) | |
return __cp; | |
++__c; | |
++__cp; | |
if (__c == __len) | |
return __last; | |
if (__comp(*__pp, *__cp)) | |
return __cp; | |
++__p; | |
++__pp; | |
__c = 2 * __p + 1; | |
} | |
return __last; | |
} | |
template <class _RandomAccessIterator, class _Compare> | |
[[nodiscard]] inline __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) _RandomAccessIterator | |
is_heap_until(_RandomAccessIterator __first, _RandomAccessIterator __last, _Compare __comp) | |
{ | |
typedef typename __comp_ref_type<_Compare>::type _Comp_ref; | |
return std::__is_heap_until(__first, __last, static_cast<_Comp_ref>(__comp)); | |
} | |
template<class _RandomAccessIterator> | |
[[nodiscard]] inline __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) _RandomAccessIterator | |
is_heap_until(_RandomAccessIterator __first, _RandomAccessIterator __last) | |
{ | |
return std::__is_heap_until(__first, __last, __less<typename iterator_traits<_RandomAccessIterator>::value_type>()); | |
} | |
}} | |
# 15 "../../buildtools/third_party/libc++/trunk/include/__algorithm/is_heap.h" 2 3 | |
# 20 "../../buildtools/third_party/libc++/trunk/include/__algorithm/is_heap.h" 3 | |
namespace std { inline namespace Cr { | |
template <class _RandomAccessIterator, class _Compare> | |
[[nodiscard]] inline | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) | |
bool | |
is_heap(_RandomAccessIterator __first, _RandomAccessIterator __last, _Compare __comp) | |
{ | |
typedef typename __comp_ref_type<_Compare>::type _Comp_ref; | |
return std::__is_heap_until(__first, __last, static_cast<_Comp_ref>(__comp)) == __last; | |
} | |
template<class _RandomAccessIterator> | |
[[nodiscard]] inline | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) | |
bool | |
is_heap(_RandomAccessIterator __first, _RandomAccessIterator __last) | |
{ | |
return std::is_heap(__first, __last, __less<typename iterator_traits<_RandomAccessIterator>::value_type>()); | |
} | |
}} | |
# 1751 "../../buildtools/third_party/libc++/trunk/include/algorithm" 2 3 | |
# 1 "../../buildtools/third_party/libc++/trunk/include/__algorithm/is_partitioned.h" 1 3 | |
# 10 "../../buildtools/third_party/libc++/trunk/include/__algorithm/is_partitioned.h" 3 | |
#define _LIBCPP___ALGORITHM_IS_PARTITIONED_H | |
# 16 "../../buildtools/third_party/libc++/trunk/include/__algorithm/is_partitioned.h" 3 | |
namespace std { inline namespace Cr { | |
template <class _InputIterator, class _Predicate> | |
[[nodiscard]] __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) bool | |
is_partitioned(_InputIterator __first, _InputIterator __last, _Predicate __pred) | |
{ | |
for (; __first != __last; ++__first) | |
if (!__pred(*__first)) | |
break; | |
if ( __first == __last ) | |
return true; | |
++__first; | |
for (; __first != __last; ++__first) | |
if (__pred(*__first)) | |
return false; | |
return true; | |
} | |
}} | |
# 1753 "../../buildtools/third_party/libc++/trunk/include/algorithm" 2 3 | |
# 1 "../../buildtools/third_party/libc++/trunk/include/__algorithm/is_permutation.h" 1 3 | |
# 11 "../../buildtools/third_party/libc++/trunk/include/__algorithm/is_permutation.h" 3 | |
#define _LIBCPP___ALGORITHM_IS_PERMUTATION_H | |
# 27 "../../buildtools/third_party/libc++/trunk/include/__algorithm/is_permutation.h" 3 | |
namespace std { inline namespace Cr { | |
template <class _Iter1, class _Sent1, class _Iter2, class _Sent2, class = void> | |
struct _ConstTimeDistance : false_type {}; | |
# 44 "../../buildtools/third_party/libc++/trunk/include/__algorithm/is_permutation.h" 3 | |
template <class _Iter1, class _Iter2> | |
struct _ConstTimeDistance<_Iter1, _Iter1, _Iter2, _Iter2, __enable_if_t< | |
is_same<typename iterator_traits<_Iter1>::iterator_category, random_access_iterator_tag>::value && | |
is_same<typename iterator_traits<_Iter2>::iterator_category, random_access_iterator_tag>::value | |
> > : true_type {}; | |
template <class _AlgPolicy, | |
class _Iter1, class _Sent1, class _Iter2, class _Sent2, | |
class _Proj1, class _Proj2, class _Pred> | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) bool | |
__is_permutation_impl(_Iter1 __first1, _Sent1 __last1, _Iter2 __first2, _Sent2 __last2, | |
_Pred&& __pred, _Proj1&& __proj1, _Proj2&& __proj2) { | |
using _D1 = __iter_diff_t<_Iter1>; | |
for (auto __i = __first1; __i != __last1; ++__i) { | |
auto __match = __first1; | |
for (; __match != __i; ++__match) { | |
if (std::__invoke(__pred, std::__invoke(__proj1, *__match), std::__invoke(__proj1, *__i))) | |
break; | |
} | |
if (__match == __i) { | |
_D1 __c2 = 0; | |
for (auto __j = __first2; __j != __last2; ++__j) { | |
if (std::__invoke(__pred, std::__invoke(__proj1, *__i), std::__invoke(__proj2, *__j))) | |
++__c2; | |
} | |
if (__c2 == 0) | |
return false; | |
_D1 __c1 = 1; | |
for (auto __j = _IterOps<_AlgPolicy>::next(__i); __j != __last1; ++__j) { | |
if (std::__invoke(__pred, std::__invoke(__proj1, *__i), std::__invoke(__proj1, *__j))) | |
++__c1; | |
} | |
if (__c1 != __c2) | |
return false; | |
} | |
} | |
return true; | |
} | |
template <class _AlgPolicy, class _ForwardIterator1, class _Sentinel1, class _ForwardIterator2, class _BinaryPredicate> | |
[[nodiscard]] __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) bool | |
__is_permutation(_ForwardIterator1 __first1, _Sentinel1 __last1, _ForwardIterator2 __first2, | |
_BinaryPredicate&& __pred) { | |
for (; __first1 != __last1; ++__first1, (void)++__first2) { | |
if (!__pred(*__first1, *__first2)) | |
break; | |
} | |
if (__first1 == __last1) | |
return true; | |
using _D1 = __iter_diff_t<_ForwardIterator1>; | |
_D1 __l1 = _IterOps<_AlgPolicy>::distance(__first1, __last1); | |
if (__l1 == _D1(1)) | |
return false; | |
auto __last2 = _IterOps<_AlgPolicy>::next(__first2, __l1); | |
return std::__is_permutation_impl<_AlgPolicy>( | |
std::move(__first1), std::move(__last1), std::move(__first2), std::move(__last2), | |
__pred, __identity(), __identity()); | |
} | |
template <class _AlgPolicy, | |
class _Iter1, class _Sent1, class _Iter2, class _Sent2, | |
class _Proj1, class _Proj2, class _Pred> | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) bool | |
__is_permutation(_Iter1 __first1, _Sent1 __last1, _Iter2 __first2, _Sent2 __last2, | |
_Pred&& __pred, _Proj1&& __proj1, _Proj2&& __proj2, | |
false_type) { | |
while (__first1 != __last1 && __first2 != __last2) { | |
if (!std::__invoke(__pred, std::__invoke(__proj1, *__first1), std::__invoke(__proj2, *__first2))) | |
break; | |
++__first1; | |
++__first2; | |
} | |
if (__first1 == __last1) | |
return __first2 == __last2; | |
if (__first2 == __last2) | |
return false; | |
using _D1 = __iter_diff_t<_Iter1>; | |
_D1 __l1 = _IterOps<_AlgPolicy>::distance(__first1, __last1); | |
using _D2 = __iter_diff_t<_Iter2>; | |
_D2 __l2 = _IterOps<_AlgPolicy>::distance(__first2, __last2); | |
if (__l1 != __l2) | |
return false; | |
return std::__is_permutation_impl<_AlgPolicy>( | |
std::move(__first1), std::move(__last1), std::move(__first2), std::move(__last2), | |
__pred, __proj1, __proj2); | |
} | |
template <class _AlgPolicy, | |
class _Iter1, class _Sent1, class _Iter2, class _Sent2, | |
class _Proj1, class _Proj2, class _Pred> | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) bool | |
__is_permutation(_Iter1 __first1, _Sent1 __last1, _Iter2 __first2, _Sent2 __last2, | |
_Pred&& __pred, _Proj1&& __proj1, _Proj2&& __proj2, | |
true_type) { | |
if (std::distance(__first1, __last1) != std::distance(__first2, __last2)) | |
return false; | |
return std::__is_permutation<_AlgPolicy>( | |
std::move(__first1), std::move(__last1), std::move(__first2), std::move(__last2), | |
__pred, __proj1, __proj2, | |
false_type()); | |
} | |
template <class _AlgPolicy, | |
class _Iter1, class _Sent1, class _Iter2, class _Sent2, | |
class _Proj1, class _Proj2, class _Pred> | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) bool | |
__is_permutation(_Iter1 __first1, _Sent1 __last1, _Iter2 __first2, _Sent2 __last2, | |
_Pred&& __pred, _Proj1&& __proj1, _Proj2&& __proj2) { | |
return std::__is_permutation<_AlgPolicy>( | |
std::move(__first1), std::move(__last1), std::move(__first2), std::move(__last2), | |
__pred, __proj1, __proj2, | |
_ConstTimeDistance<_Iter1, _Sent1, _Iter2, _Sent2>()); | |
} | |
template <class _ForwardIterator1, class _ForwardIterator2, class _BinaryPredicate> | |
[[nodiscard]] __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) bool | |
is_permutation(_ForwardIterator1 __first1, _ForwardIterator1 __last1, _ForwardIterator2 __first2, | |
_BinaryPredicate __pred) { | |
static_assert(__is_callable<_BinaryPredicate, decltype(*__first1), decltype(*__first2)>::value, | |
"The predicate has to be callable"); | |
return std::__is_permutation<_ClassicAlgPolicy>( | |
std::move(__first1), std::move(__last1), std::move(__first2), __pred); | |
} | |
template <class _ForwardIterator1, class _ForwardIterator2> | |
[[nodiscard]] inline __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) bool | |
is_permutation(_ForwardIterator1 __first1, _ForwardIterator1 __last1, _ForwardIterator2 __first2) { | |
using __v1 = __iter_value_type<_ForwardIterator1>; | |
using __v2 = __iter_value_type<_ForwardIterator2>; | |
return std::is_permutation(__first1, __last1, __first2, __equal_to<__v1, __v2>()); | |
} | |
template <class _ForwardIterator1, class _ForwardIterator2> | |
[[nodiscard]] inline __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) bool | |
is_permutation(_ForwardIterator1 __first1, _ForwardIterator1 __last1, _ForwardIterator2 __first2, | |
_ForwardIterator2 __last2) { | |
using __v1 = __iter_value_type<_ForwardIterator1>; | |
using __v2 = __iter_value_type<_ForwardIterator2>; | |
return std::__is_permutation<_ClassicAlgPolicy>( | |
std::move(__first1), std::move(__last1), std::move(__first2), std::move(__last2), | |
__equal_to<__v1, __v2>(), __identity(), __identity()); | |
} | |
template <class _ForwardIterator1, class _ForwardIterator2, class _BinaryPredicate> | |
[[nodiscard]] inline __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) bool | |
is_permutation(_ForwardIterator1 __first1, _ForwardIterator1 __last1, _ForwardIterator2 __first2, | |
_ForwardIterator2 __last2, _BinaryPredicate __pred) { | |
static_assert(__is_callable<_BinaryPredicate, decltype(*__first1), decltype(*__first2)>::value, | |
"The predicate has to be callable"); | |
return std::__is_permutation<_ClassicAlgPolicy>( | |
std::move(__first1), std::move(__last1), std::move(__first2), std::move(__last2), | |
__pred, __identity(), __identity()); | |
} | |
}} | |
# 1754 "../../buildtools/third_party/libc++/trunk/include/algorithm" 2 3 | |
# 1 "../../buildtools/third_party/libc++/trunk/include/__algorithm/is_sorted.h" 1 3 | |
# 10 "../../buildtools/third_party/libc++/trunk/include/__algorithm/is_sorted.h" 3 | |
#define _LIBCPP___ALGORITHM_IS_SORTED_H | |
# 1 "../../buildtools/third_party/libc++/trunk/include/__algorithm/is_sorted_until.h" 1 3 | |
# 10 "../../buildtools/third_party/libc++/trunk/include/__algorithm/is_sorted_until.h" 3 | |
#define _LIBCPP___ALGORITHM_IS_SORTED_UNTIL_H | |
# 19 "../../buildtools/third_party/libc++/trunk/include/__algorithm/is_sorted_until.h" 3 | |
namespace std { inline namespace Cr { | |
template <class _Compare, class _ForwardIterator> | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) _ForwardIterator | |
__is_sorted_until(_ForwardIterator __first, _ForwardIterator __last, _Compare __comp) | |
{ | |
if (__first != __last) | |
{ | |
_ForwardIterator __i = __first; | |
while (++__i != __last) | |
{ | |
if (__comp(*__i, *__first)) | |
return __i; | |
__first = __i; | |
} | |
} | |
return __last; | |
} | |
template <class _ForwardIterator, class _Compare> | |
[[nodiscard]] inline __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) _ForwardIterator | |
is_sorted_until(_ForwardIterator __first, _ForwardIterator __last, _Compare __comp) | |
{ | |
typedef typename __comp_ref_type<_Compare>::type _Comp_ref; | |
return std::__is_sorted_until<_Comp_ref>(__first, __last, __comp); | |
} | |
template<class _ForwardIterator> | |
[[nodiscard]] inline __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) _ForwardIterator | |
is_sorted_until(_ForwardIterator __first, _ForwardIterator __last) | |
{ | |
return std::is_sorted_until(__first, __last, __less<typename iterator_traits<_ForwardIterator>::value_type>()); | |
} | |
}} | |
# 15 "../../buildtools/third_party/libc++/trunk/include/__algorithm/is_sorted.h" 2 3 | |
# 20 "../../buildtools/third_party/libc++/trunk/include/__algorithm/is_sorted.h" 3 | |
namespace std { inline namespace Cr { | |
template <class _ForwardIterator, class _Compare> | |
[[nodiscard]] inline | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) | |
bool | |
is_sorted(_ForwardIterator __first, _ForwardIterator __last, _Compare __comp) | |
{ | |
typedef typename __comp_ref_type<_Compare>::type _Comp_ref; | |
return std::__is_sorted_until<_Comp_ref>(__first, __last, __comp) == __last; | |
} | |
template<class _ForwardIterator> | |
[[nodiscard]] inline | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) | |
bool | |
is_sorted(_ForwardIterator __first, _ForwardIterator __last) | |
{ | |
return std::is_sorted(__first, __last, __less<typename iterator_traits<_ForwardIterator>::value_type>()); | |
} | |
}} | |
# 1755 "../../buildtools/third_party/libc++/trunk/include/algorithm" 2 3 | |
# 1 "../../buildtools/third_party/libc++/trunk/include/__algorithm/lexicographical_compare.h" 1 3 | |
# 10 "../../buildtools/third_party/libc++/trunk/include/__algorithm/lexicographical_compare.h" 3 | |
#define _LIBCPP___ALGORITHM_LEXICOGRAPHICAL_COMPARE_H | |
# 19 "../../buildtools/third_party/libc++/trunk/include/__algorithm/lexicographical_compare.h" 3 | |
namespace std { inline namespace Cr { | |
template <class _Compare, class _InputIterator1, class _InputIterator2> | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) bool | |
__lexicographical_compare(_InputIterator1 __first1, _InputIterator1 __last1, | |
_InputIterator2 __first2, _InputIterator2 __last2, _Compare __comp) | |
{ | |
for (; __first2 != __last2; ++__first1, (void) ++__first2) | |
{ | |
if (__first1 == __last1 || __comp(*__first1, *__first2)) | |
return true; | |
if (__comp(*__first2, *__first1)) | |
return false; | |
} | |
return false; | |
} | |
template <class _InputIterator1, class _InputIterator2, class _Compare> | |
[[nodiscard]] inline | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) | |
bool | |
lexicographical_compare(_InputIterator1 __first1, _InputIterator1 __last1, | |
_InputIterator2 __first2, _InputIterator2 __last2, _Compare __comp) | |
{ | |
typedef typename __comp_ref_type<_Compare>::type _Comp_ref; | |
return std::__lexicographical_compare<_Comp_ref>(__first1, __last1, __first2, __last2, __comp); | |
} | |
template <class _InputIterator1, class _InputIterator2> | |
[[nodiscard]] inline | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) | |
bool | |
lexicographical_compare(_InputIterator1 __first1, _InputIterator1 __last1, | |
_InputIterator2 __first2, _InputIterator2 __last2) | |
{ | |
return std::lexicographical_compare(__first1, __last1, __first2, __last2, | |
__less<typename iterator_traits<_InputIterator1>::value_type, | |
typename iterator_traits<_InputIterator2>::value_type>()); | |
} | |
}} | |
# 1758 "../../buildtools/third_party/libc++/trunk/include/algorithm" 2 3 | |
# 1 "../../buildtools/third_party/libc++/trunk/include/__algorithm/make_heap.h" 1 3 | |
# 10 "../../buildtools/third_party/libc++/trunk/include/__algorithm/make_heap.h" 3 | |
#define _LIBCPP___ALGORITHM_MAKE_HEAP_H | |
# 1 "../../buildtools/third_party/libc++/trunk/include/__algorithm/sift_down.h" 1 3 | |
# 10 "../../buildtools/third_party/libc++/trunk/include/__algorithm/sift_down.h" 3 | |
#define _LIBCPP___ALGORITHM_SIFT_DOWN_H | |
# 20 "../../buildtools/third_party/libc++/trunk/include/__algorithm/sift_down.h" 3 | |
namespace std { inline namespace Cr { | |
template <class _AlgPolicy, class _Compare, class _RandomAccessIterator> | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) constexpr void | |
__sift_down(_RandomAccessIterator __first, _Compare&& __comp, | |
typename iterator_traits<_RandomAccessIterator>::difference_type __len, | |
_RandomAccessIterator __start) | |
{ | |
using _Ops = _IterOps<_AlgPolicy>; | |
typedef typename iterator_traits<_RandomAccessIterator>::difference_type difference_type; | |
typedef typename iterator_traits<_RandomAccessIterator>::value_type value_type; | |
difference_type __child = __start - __first; | |
if (__len < 2 || (__len - 2) / 2 < __child) | |
return; | |
__child = 2 * __child + 1; | |
_RandomAccessIterator __child_i = __first + __child; | |
if ((__child + 1) < __len && __comp(*__child_i, *(__child_i + difference_type(1)))) { | |
++__child_i; | |
++__child; | |
} | |
if (__comp(*__child_i, *__start)) | |
return; | |
value_type __top(_Ops::__iter_move(__start)); | |
do | |
{ | |
*__start = _Ops::__iter_move(__child_i); | |
__start = __child_i; | |
if ((__len - 2) / 2 < __child) | |
break; | |
__child = 2 * __child + 1; | |
__child_i = __first + __child; | |
if ((__child + 1) < __len && __comp(*__child_i, *(__child_i + difference_type(1)))) { | |
++__child_i; | |
++__child; | |
} | |
} while (!__comp(*__child_i, __top)); | |
*__start = std::move(__top); | |
} | |
template <class _AlgPolicy, class _Compare, class _RandomAccessIterator> | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) constexpr _RandomAccessIterator | |
__floyd_sift_down(_RandomAccessIterator __first, _Compare&& __comp, | |
typename iterator_traits<_RandomAccessIterator>::difference_type __len) | |
{ | |
using difference_type = typename iterator_traits<_RandomAccessIterator>::difference_type; | |
(__builtin_expect(static_cast<bool>(__len >= 2), 1) ? (void)0 : ::std::__libcpp_verbose_abort("%s:%d: assertion %s failed: %s", "../../buildtools/third_party/libc++/trunk/include/__algorithm/sift_down.h", 86, "__len >= 2", "shouldn't be called unless __len >= 2")); | |
_RandomAccessIterator __hole = __first; | |
_RandomAccessIterator __child_i = __first; | |
difference_type __child = 0; | |
while (true) { | |
__child_i += difference_type(__child + 1); | |
__child = 2 * __child + 1; | |
if ((__child + 1) < __len && __comp(*__child_i, *(__child_i + difference_type(1)))) { | |
++__child_i; | |
++__child; | |
} | |
*__hole = _IterOps<_AlgPolicy>::__iter_move(__child_i); | |
__hole = __child_i; | |
if (__child > (__len - 2) / 2) | |
return __hole; | |
} | |
} | |
}} | |
# 16 "../../buildtools/third_party/libc++/trunk/include/__algorithm/make_heap.h" 2 3 | |
# 22 "../../buildtools/third_party/libc++/trunk/include/__algorithm/make_heap.h" 3 | |
namespace std { inline namespace Cr { | |
template <class _AlgPolicy, class _Compare, class _RandomAccessIterator> | |
inline __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) constexpr | |
void __make_heap(_RandomAccessIterator __first, _RandomAccessIterator __last, _Compare&& __comp) { | |
using _CompRef = typename __comp_ref_type<_Compare>::type; | |
_CompRef __comp_ref = __comp; | |
using difference_type = typename iterator_traits<_RandomAccessIterator>::difference_type; | |
difference_type __n = __last - __first; | |
if (__n > 1) { | |
for (difference_type __start = (__n - 2) / 2; __start >= 0; --__start) { | |
std::__sift_down<_AlgPolicy>(__first, __comp_ref, __n, __first + __start); | |
} | |
} | |
} | |
template <class _RandomAccessIterator, class _Compare> | |
inline __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) | |
void make_heap(_RandomAccessIterator __first, _RandomAccessIterator __last, _Compare __comp) { | |
std::__make_heap<_ClassicAlgPolicy>(std::move(__first), std::move(__last), __comp); | |
} | |
template <class _RandomAccessIterator> | |
inline __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) | |
void make_heap(_RandomAccessIterator __first, _RandomAccessIterator __last) { | |
std::make_heap(std::move(__first), std::move(__last), | |
__less<typename iterator_traits<_RandomAccessIterator>::value_type>()); | |
} | |
}} | |
# 1760 "../../buildtools/third_party/libc++/trunk/include/algorithm" 2 3 | |
# 1 "../../buildtools/third_party/libc++/trunk/include/__algorithm/max.h" 1 3 | |
# 10 "../../buildtools/third_party/libc++/trunk/include/__algorithm/max.h" 3 | |
#define _LIBCPP___ALGORITHM_MAX_H | |
# 1 "../../buildtools/third_party/libc++/trunk/include/__algorithm/max_element.h" 1 3 | |
# 10 "../../buildtools/third_party/libc++/trunk/include/__algorithm/max_element.h" 3 | |
#define _LIBCPP___ALGORITHM_MAX_ELEMENT_H | |
# 19 "../../buildtools/third_party/libc++/trunk/include/__algorithm/max_element.h" 3 | |
namespace std { inline namespace Cr { | |
template <class _Compare, class _ForwardIterator> | |
inline __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) constexpr _ForwardIterator | |
__max_element(_ForwardIterator __first, _ForwardIterator __last, _Compare __comp) | |
{ | |
static_assert(__is_cpp17_forward_iterator<_ForwardIterator>::value, | |
"std::max_element requires a ForwardIterator"); | |
if (__first != __last) | |
{ | |
_ForwardIterator __i = __first; | |
while (++__i != __last) | |
if (__comp(*__first, *__i)) | |
__first = __i; | |
} | |
return __first; | |
} | |
template <class _ForwardIterator, class _Compare> | |
[[nodiscard]] inline __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) constexpr _ForwardIterator | |
max_element(_ForwardIterator __first, _ForwardIterator __last, _Compare __comp) | |
{ | |
typedef typename __comp_ref_type<_Compare>::type _Comp_ref; | |
return std::__max_element<_Comp_ref>(__first, __last, __comp); | |
} | |
template <class _ForwardIterator> | |
[[nodiscard]] inline __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) constexpr _ForwardIterator | |
max_element(_ForwardIterator __first, _ForwardIterator __last) | |
{ | |
return std::max_element(__first, __last, | |
__less<typename iterator_traits<_ForwardIterator>::value_type>()); | |
} | |
}} | |
# 15 "../../buildtools/third_party/libc++/trunk/include/__algorithm/max.h" 2 3 | |
# 20 "../../buildtools/third_party/libc++/trunk/include/__algorithm/max.h" 3 | |
# 1 "../../buildtools/third_party/libc++/trunk/include/__undef_macros" 1 3 | |
# 24 "../../buildtools/third_party/libc++/trunk/include/__algorithm/max.h" 2 3 | |
namespace std { inline namespace Cr { | |
template <class _Tp, class _Compare> | |
[[nodiscard]] inline | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) constexpr | |
const _Tp& | |
max(const _Tp& __a, const _Tp& __b, _Compare __comp) | |
{ | |
return __comp(__a, __b) ? __b : __a; | |
} | |
template <class _Tp> | |
[[nodiscard]] inline | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) constexpr | |
const _Tp& | |
max(const _Tp& __a, const _Tp& __b) | |
{ | |
return std::max(__a, __b, __less<_Tp>()); | |
} | |
template<class _Tp, class _Compare> | |
[[nodiscard]] inline | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) constexpr | |
_Tp | |
max(initializer_list<_Tp> __t, _Compare __comp) | |
{ | |
typedef typename __comp_ref_type<_Compare>::type _Comp_ref; | |
return *std::__max_element<_Comp_ref>(__t.begin(), __t.end(), __comp); | |
} | |
template<class _Tp> | |
[[nodiscard]] inline | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) constexpr | |
_Tp | |
max(initializer_list<_Tp> __t) | |
{ | |
return *std::max_element(__t.begin(), __t.end(), __less<_Tp>()); | |
} | |
}} | |
# 1761 "../../buildtools/third_party/libc++/trunk/include/algorithm" 2 3 | |
# 1 "../../buildtools/third_party/libc++/trunk/include/__algorithm/merge.h" 1 3 | |
# 10 "../../buildtools/third_party/libc++/trunk/include/__algorithm/merge.h" 3 | |
#define _LIBCPP___ALGORITHM_MERGE_H | |
# 20 "../../buildtools/third_party/libc++/trunk/include/__algorithm/merge.h" 3 | |
namespace std { inline namespace Cr { | |
template <class _Compare, class _InputIterator1, class _InputIterator2, class _OutputIterator> | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) | |
_OutputIterator | |
__merge(_InputIterator1 __first1, _InputIterator1 __last1, | |
_InputIterator2 __first2, _InputIterator2 __last2, _OutputIterator __result, _Compare __comp) | |
{ | |
for (; __first1 != __last1; ++__result) | |
{ | |
if (__first2 == __last2) | |
return std::copy(__first1, __last1, __result); | |
if (__comp(*__first2, *__first1)) | |
{ | |
*__result = *__first2; | |
++__first2; | |
} | |
else | |
{ | |
*__result = *__first1; | |
++__first1; | |
} | |
} | |
return std::copy(__first2, __last2, __result); | |
} | |
template <class _InputIterator1, class _InputIterator2, class _OutputIterator, class _Compare> | |
inline __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) | |
_OutputIterator | |
merge(_InputIterator1 __first1, _InputIterator1 __last1, | |
_InputIterator2 __first2, _InputIterator2 __last2, _OutputIterator __result, _Compare __comp) | |
{ | |
typedef typename __comp_ref_type<_Compare>::type _Comp_ref; | |
return std::__merge<_Comp_ref>(__first1, __last1, __first2, __last2, __result, __comp); | |
} | |
template <class _InputIterator1, class _InputIterator2, class _OutputIterator> | |
inline __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) | |
_OutputIterator | |
merge(_InputIterator1 __first1, _InputIterator1 __last1, | |
_InputIterator2 __first2, _InputIterator2 __last2, _OutputIterator __result) | |
{ | |
typedef typename iterator_traits<_InputIterator1>::value_type __v1; | |
typedef typename iterator_traits<_InputIterator2>::value_type __v2; | |
return std::merge(__first1, __last1, __first2, __last2, __result, __less<__v1, __v2>()); | |
} | |
}} | |
# 1763 "../../buildtools/third_party/libc++/trunk/include/algorithm" 2 3 | |
# 1 "../../buildtools/third_party/libc++/trunk/include/__algorithm/min_max_result.h" 1 3 | |
# 11 "../../buildtools/third_party/libc++/trunk/include/__algorithm/min_max_result.h" 3 | |
#define _LIBCPP___ALGORITHM_MIN_MAX_RESULT_H | |
# 19 "../../buildtools/third_party/libc++/trunk/include/__algorithm/min_max_result.h" 3 | |
# 1 "../../buildtools/third_party/libc++/trunk/include/__undef_macros" 1 3 | |
# 23 "../../buildtools/third_party/libc++/trunk/include/__algorithm/min_max_result.h" 2 3 | |
namespace std { inline namespace Cr { | |
# 52 "../../buildtools/third_party/libc++/trunk/include/__algorithm/min_max_result.h" 3 | |
}} | |
# 1766 "../../buildtools/third_party/libc++/trunk/include/algorithm" 2 3 | |
# 1 "../../buildtools/third_party/libc++/trunk/include/__algorithm/minmax.h" 1 3 | |
# 10 "../../buildtools/third_party/libc++/trunk/include/__algorithm/minmax.h" 3 | |
#define _LIBCPP___ALGORITHM_MINMAX_H | |
# 1 "../../buildtools/third_party/libc++/trunk/include/__algorithm/minmax_element.h" 1 3 | |
# 10 "../../buildtools/third_party/libc++/trunk/include/__algorithm/minmax_element.h" 3 | |
#define _LIBCPP___ALGORITHM_MINMAX_ELEMENT_H | |
# 21 "../../buildtools/third_party/libc++/trunk/include/__algorithm/minmax_element.h" 3 | |
namespace std { inline namespace Cr { | |
template <class _Comp, class _Proj> | |
class _MinmaxElementLessFunc { | |
_Comp& __comp_; | |
_Proj& __proj_; | |
public: | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) constexpr | |
_MinmaxElementLessFunc(_Comp& __comp, _Proj& __proj) : __comp_(__comp), __proj_(__proj) {} | |
template <class _Iter> | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) constexpr | |
bool operator()(_Iter& __it1, _Iter& __it2) { | |
return std::__invoke(__comp_, std::__invoke(__proj_, *__it1), std::__invoke(__proj_, *__it2)); | |
} | |
}; | |
template <class _Iter, class _Sent, class _Proj, class _Comp> | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) constexpr | |
pair<_Iter, _Iter> __minmax_element_impl(_Iter __first, _Sent __last, _Comp& __comp, _Proj& __proj) { | |
auto __less = _MinmaxElementLessFunc<_Comp, _Proj>(__comp, __proj); | |
pair<_Iter, _Iter> __result(__first, __first); | |
if (__first == __last || ++__first == __last) | |
return __result; | |
if (__less(__first, __result.first)) | |
__result.first = __first; | |
else | |
__result.second = __first; | |
while (++__first != __last) { | |
_Iter __i = __first; | |
if (++__first == __last) { | |
if (__less(__i, __result.first)) | |
__result.first = __i; | |
else if (!__less(__i, __result.second)) | |
__result.second = __i; | |
return __result; | |
} | |
if (__less(__first, __i)) { | |
if (__less(__first, __result.first)) | |
__result.first = __first; | |
if (!__less(__i, __result.second)) | |
__result.second = __i; | |
} else { | |
if (__less(__i, __result.first)) | |
__result.first = __i; | |
if (!__less(__first, __result.second)) | |
__result.second = __first; | |
} | |
} | |
return __result; | |
} | |
template <class _ForwardIterator, class _Compare> | |
[[nodiscard]] __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) constexpr | |
pair<_ForwardIterator, _ForwardIterator> | |
minmax_element(_ForwardIterator __first, _ForwardIterator __last, _Compare __comp) { | |
static_assert(__is_cpp17_forward_iterator<_ForwardIterator>::value, | |
"std::minmax_element requires a ForwardIterator"); | |
static_assert(__is_callable<_Compare, decltype(*__first), decltype(*__first)>::value, | |
"The comparator has to be callable"); | |
auto __proj = __identity(); | |
return std::__minmax_element_impl(__first, __last, __comp, __proj); | |
} | |
template <class _ForwardIterator> | |
[[nodiscard]] inline __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) constexpr | |
pair<_ForwardIterator, _ForwardIterator> minmax_element(_ForwardIterator __first, _ForwardIterator __last) { | |
return std::minmax_element(__first, __last, __less<typename iterator_traits<_ForwardIterator>::value_type>()); | |
} | |
}} | |
# 14 "../../buildtools/third_party/libc++/trunk/include/__algorithm/minmax.h" 2 3 | |
# 22 "../../buildtools/third_party/libc++/trunk/include/__algorithm/minmax.h" 3 | |
namespace std { inline namespace Cr { | |
template<class _Tp, class _Compare> | |
[[nodiscard]] inline | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) constexpr | |
pair<const _Tp&, const _Tp&> | |
minmax(const _Tp& __a, const _Tp& __b, _Compare __comp) | |
{ | |
return __comp(__b, __a) ? pair<const _Tp&, const _Tp&>(__b, __a) : | |
pair<const _Tp&, const _Tp&>(__a, __b); | |
} | |
template<class _Tp> | |
[[nodiscard]] inline | |
__attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v16000"))) constexpr | |
pair<const _Tp&, const _Tp&> | |
minmax(const _Tp& __a, const _Tp& __b) | |
{ | |
return std::minmax( |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment