Skip to content

Instantly share code, notes, and snippets.

@pasko
Last active September 9, 2022 09:58
Show Gist options
  • Save pasko/701288f9aa8ba8d5146bab53076f3793 to your computer and use it in GitHub Desktop.
Save pasko/701288f9aa8ba8d5146bab53076f3793 to your computer and use it in GitHub Desktop.
This file has been truncated, but you can view the full file.
# 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