From 6dfca55f91175a221a183da5c36a5fad8be38fe6 Mon Sep 17 00:00:00 2001 From: hyperbel Date: Fri, 2 Jun 2023 16:55:40 +0200 Subject: [PATCH] =?UTF-8?q?mate=20sorts=20enum=C3=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../@usr@include@alloca.h | 40 - .../@usr@include@alloca.h.blob | Bin 8375 -> 0 bytes .../@usr@include@asm-generic@errno-base.h | 40 - ...@usr@include@asm-generic@errno-base.h.blob | Bin 9675 -> 0 bytes .../@usr@include@asm-generic@errno.h | 123 - .../@usr@include@asm-generic@errno.h.blob | Bin 13817 -> 0 bytes .../@usr@include@asm@errno.h | 1 - .../@usr@include@asm@errno.h.blob | Bin 7752 -> 0 bytes .../@usr@include@bits@atomic_wide_counter.h | 35 - ...sr@include@bits@atomic_wide_counter.h.blob | Bin 8730 -> 0 bytes .../@usr@include@bits@byteswap.h | 79 - .../@usr@include@bits@byteswap.h.blob | Bin 9168 -> 0 bytes .../@usr@include@bits@cpu-set.h | 124 - .../@usr@include@bits@cpu-set.h.blob | Bin 10518 -> 0 bytes .../@usr@include@bits@endian.h | 49 - .../@usr@include@bits@endian.h.blob | Bin 8245 -> 0 bytes .../@usr@include@bits@endianness.h | 11 - .../@usr@include@bits@endianness.h.blob | Bin 7902 -> 0 bytes .../@usr@include@bits@errno.h | 53 - .../@usr@include@bits@errno.h.blob | Bin 7931 -> 0 bytes .../@usr@include@bits@floatn-common.h | 329 -- .../@usr@include@bits@floatn-common.h.blob | Bin 12023 -> 0 bytes .../@usr@include@bits@floatn.h | 121 - .../@usr@include@bits@floatn.h.blob | Bin 8258 -> 0 bytes .../@usr@include@bits@libc-header-start.h | 110 - ...@usr@include@bits@libc-header-start.h.blob | Bin 8544 -> 0 bytes .../@usr@include@bits@locale.h | 40 - .../@usr@include@bits@locale.h.blob | Bin 8674 -> 0 bytes .../@usr@include@bits@long-double.h | 21 - .../@usr@include@bits@long-double.h.blob | Bin 7823 -> 0 bytes ...r@include@bits@pthread_stack_min-dynamic.h | 31 - ...lude@bits@pthread_stack_min-dynamic.h.blob | Bin 8188 -> 0 bytes .../@usr@include@bits@pthreadtypes-arch.h | 55 - ...@usr@include@bits@pthreadtypes-arch.h.blob | Bin 8864 -> 0 bytes .../@usr@include@bits@pthreadtypes.h | 121 - .../@usr@include@bits@pthreadtypes.h.blob | Bin 12844 -> 0 bytes .../@usr@include@bits@sched.h | 104 - .../@usr@include@bits@sched.h.blob | Bin 11595 -> 0 bytes .../@usr@include@bits@select.h | 37 - .../@usr@include@bits@select.h.blob | Bin 8145 -> 0 bytes .../@usr@include@bits@setjmp.h | 40 - .../@usr@include@bits@setjmp.h.blob | Bin 7915 -> 0 bytes .../@usr@include@bits@stdint-intn.h | 29 - .../@usr@include@bits@stdint-intn.h.blob | Bin 8322 -> 0 bytes .../@usr@include@bits@stdio_lim.h | 39 - .../@usr@include@bits@stdio_lim.h.blob | Bin 8163 -> 0 bytes .../@usr@include@bits@stdlib-float.h | 29 - .../@usr@include@bits@stdlib-float.h.blob | Bin 7718 -> 0 bytes .../@usr@include@bits@struct_mutex.h | 63 - .../@usr@include@bits@struct_mutex.h.blob | Bin 9112 -> 0 bytes .../@usr@include@bits@struct_rwlock.h | 65 - .../@usr@include@bits@struct_rwlock.h.blob | Bin 9524 -> 0 bytes .../@usr@include@bits@thread-shared-types.h | 115 - ...sr@include@bits@thread-shared-types.h.blob | Bin 10180 -> 0 bytes .../@usr@include@bits@time.h | 93 - .../@usr@include@bits@time.h.blob | Bin 9410 -> 0 bytes .../@usr@include@bits@time64.h | 36 - .../@usr@include@bits@time64.h.blob | Bin 7907 -> 0 bytes .../@usr@include@bits@timesize.h | 27 - .../@usr@include@bits@timesize.h.blob | Bin 7819 -> 0 bytes .../@usr@include@bits@timex.h | 141 - .../@usr@include@bits@timex.h.blob | Bin 13427 -> 0 bytes .../@usr@include@bits@types.h | 228 - .../@usr@include@bits@types.h.blob | Bin 15189 -> 0 bytes .../@usr@include@bits@types@FILE.h | 9 - .../@usr@include@bits@types@FILE.h.blob | Bin 7980 -> 0 bytes .../@usr@include@bits@types@__FILE.h | 7 - .../@usr@include@bits@types@__FILE.h.blob | Bin 7917 -> 0 bytes .../@usr@include@bits@types@__fpos64_t.h | 16 - .../@usr@include@bits@types@__fpos64_t.h.blob | Bin 8708 -> 0 bytes .../@usr@include@bits@types@__fpos_t.h | 16 - .../@usr@include@bits@types@__fpos_t.h.blob | Bin 8654 -> 0 bytes .../@usr@include@bits@types@__locale_t.h | 43 - .../@usr@include@bits@types@__locale_t.h.blob | Bin 8838 -> 0 bytes .../@usr@include@bits@types@__mbstate_t.h | 23 - ...@usr@include@bits@types@__mbstate_t.h.blob | Bin 8496 -> 0 bytes .../@usr@include@bits@types@__sigset_t.h | 10 - .../@usr@include@bits@types@__sigset_t.h.blob | Bin 8124 -> 0 bytes .../@usr@include@bits@types@clock_t.h | 9 - .../@usr@include@bits@types@clock_t.h.blob | Bin 7957 -> 0 bytes .../@usr@include@bits@types@clockid_t.h | 9 - .../@usr@include@bits@types@clockid_t.h.blob | Bin 7987 -> 0 bytes ...include@bits@types@cookie_io_functions_t.h | 63 - ...de@bits@types@cookie_io_functions_t.h.blob | Bin 10349 -> 0 bytes .../@usr@include@bits@types@error_t.h | 24 - .../@usr@include@bits@types@error_t.h.blob | Bin 7841 -> 0 bytes .../@usr@include@bits@types@locale_t.h | 26 - .../@usr@include@bits@types@locale_t.h.blob | Bin 8014 -> 0 bytes .../@usr@include@bits@types@mbstate_t.h | 8 - .../@usr@include@bits@types@mbstate_t.h.blob | Bin 8006 -> 0 bytes .../@usr@include@bits@types@sigset_t.h | 9 - .../@usr@include@bits@types@sigset_t.h.blob | Bin 8057 -> 0 bytes .../@usr@include@bits@types@struct_FILE.h | 120 - ...@usr@include@bits@types@struct_FILE.h.blob | Bin 12383 -> 0 bytes ...@include@bits@types@struct___jmp_buf_tag.h | 37 - ...ude@bits@types@struct___jmp_buf_tag.h.blob | Bin 8487 -> 0 bytes ...usr@include@bits@types@struct_itimerspec.h | 14 - ...nclude@bits@types@struct_itimerspec.h.blob | Bin 8220 -> 0 bytes ...sr@include@bits@types@struct_sched_param.h | 28 - ...clude@bits@types@struct_sched_param.h.blob | Bin 8014 -> 0 bytes .../@usr@include@bits@types@struct_timespec.h | 33 - ...@include@bits@types@struct_timespec.h.blob | Bin 8447 -> 0 bytes .../@usr@include@bits@types@struct_timeval.h | 18 - ...r@include@bits@types@struct_timeval.h.blob | Bin 8263 -> 0 bytes .../@usr@include@bits@types@struct_tm.h | 28 - .../@usr@include@bits@types@struct_tm.h.blob | Bin 8939 -> 0 bytes .../@usr@include@bits@types@time_t.h | 13 - .../@usr@include@bits@types@time_t.h.blob | Bin 7937 -> 0 bytes .../@usr@include@bits@types@timer_t.h | 9 - .../@usr@include@bits@types@timer_t.h.blob | Bin 7974 -> 0 bytes .../@usr@include@bits@types@wint_t.h | 23 - .../@usr@include@bits@types@wint_t.h.blob | Bin 7936 -> 0 bytes .../@usr@include@bits@typesizes.h | 106 - .../@usr@include@bits@typesizes.h.blob | Bin 11725 -> 0 bytes .../@usr@include@bits@uintn-identity.h | 50 - .../@usr@include@bits@uintn-identity.h.blob | Bin 8734 -> 0 bytes .../@usr@include@bits@waitflags.h | 39 - .../@usr@include@bits@waitflags.h.blob | Bin 8283 -> 0 bytes .../@usr@include@bits@waitstatus.h | 59 - .../@usr@include@bits@waitstatus.h.blob | Bin 8843 -> 0 bytes .../@usr@include@bits@wchar.h | 49 - .../@usr@include@bits@wchar.h.blob | Bin 7950 -> 0 bytes .../@usr@include@bits@wctype-wchar.h | 173 - .../@usr@include@bits@wctype-wchar.h.blob | Bin 17310 -> 0 bytes .../@usr@include@bits@wordsize.h | 17 - .../@usr@include@bits@wordsize.h.blob | Bin 7959 -> 0 bytes ...@usr@include@c++@13.1.1@backward@binders.h | 184 - ...include@c++@13.1.1@backward@binders.h.blob | Bin 15010 -> 0 bytes .../@usr@include@c++@13.1.1@bit | 482 -- .../@usr@include@c++@13.1.1@bit.blob | Bin 28362 -> 0 bytes ...usr@include@c++@13.1.1@bits@alloc_traits.h | 954 ---- ...nclude@c++@13.1.1@bits@alloc_traits.h.blob | Bin 69721 -> 0 bytes .../@usr@include@c++@13.1.1@bits@allocator.h | 294 -- ...r@include@c++@13.1.1@bits@allocator.h.blob | Bin 17400 -> 0 bytes .../@usr@include@c++@13.1.1@bits@basic_ios.h | 518 -- ...r@include@c++@13.1.1@bits@basic_ios.h.blob | Bin 41691 -> 0 bytes ...@usr@include@c++@13.1.1@bits@basic_ios.tcc | 177 - ...include@c++@13.1.1@bits@basic_ios.tcc.blob | Bin 24109 -> 0 bytes ...usr@include@c++@13.1.1@bits@basic_string.h | 4541 ----------------- ...nclude@c++@13.1.1@bits@basic_string.h.blob | Bin 332068 -> 0 bytes ...r@include@c++@13.1.1@bits@basic_string.tcc | 1022 ---- ...lude@c++@13.1.1@bits@basic_string.tcc.blob | Bin 119477 -> 0 bytes ...@usr@include@c++@13.1.1@bits@char_traits.h | 1039 ---- ...include@c++@13.1.1@bits@char_traits.h.blob | Bin 54929 -> 0 bytes .../@usr@include@c++@13.1.1@bits@charconv.h | 116 - ...sr@include@c++@13.1.1@bits@charconv.h.blob | Bin 23799 -> 0 bytes ...sr@include@c++@13.1.1@bits@concept_check.h | 81 - ...clude@c++@13.1.1@bits@concept_check.h.blob | Bin 8341 -> 0 bytes ...@include@c++@13.1.1@bits@cpp_type_traits.h | 614 --- ...ude@c++@13.1.1@bits@cpp_type_traits.h.blob | Bin 32395 -> 0 bytes ...sr@include@c++@13.1.1@bits@cxxabi_forced.h | 60 - ...clude@c++@13.1.1@bits@cxxabi_forced.h.blob | Bin 8316 -> 0 bytes ...de@c++@13.1.1@bits@cxxabi_init_exception.h | 81 - ...+@13.1.1@bits@cxxabi_init_exception.h.blob | Bin 10081 -> 0 bytes .../@usr@include@c++@13.1.1@bits@exception.h | 83 - ...r@include@c++@13.1.1@bits@exception.h.blob | Bin 10143 -> 0 bytes ...nclude@c++@13.1.1@bits@exception_defines.h | 45 - ...e@c++@13.1.1@bits@exception_defines.h.blob | Bin 8025 -> 0 bytes ...sr@include@c++@13.1.1@bits@exception_ptr.h | 295 -- ...clude@c++@13.1.1@bits@exception_ptr.h.blob | Bin 16966 -> 0 bytes ...@usr@include@c++@13.1.1@bits@functexcept.h | 143 - ...include@c++@13.1.1@bits@functexcept.h.blob | Bin 11015 -> 0 bytes ...@include@c++@13.1.1@bits@functional_hash.h | 305 -- ...ude@c++@13.1.1@bits@functional_hash.h.blob | Bin 26282 -> 0 bytes .../@usr@include@c++@13.1.1@bits@hash_bytes.h | 59 - ...@include@c++@13.1.1@bits@hash_bytes.h.blob | Bin 10101 -> 0 bytes .../@usr@include@c++@13.1.1@bits@invoke.h | 160 - ...@usr@include@c++@13.1.1@bits@invoke.h.blob | Bin 17311 -> 0 bytes .../@usr@include@c++@13.1.1@bits@ios_base.h | 1122 ---- ...sr@include@c++@13.1.1@bits@ios_base.h.blob | Bin 63066 -> 0 bytes .../@usr@include@c++@13.1.1@bits@istream.tcc | 1169 ----- ...r@include@c++@13.1.1@bits@istream.tcc.blob | Bin 68546 -> 0 bytes ...r@include@c++@13.1.1@bits@locale_classes.h | 871 ---- ...lude@c++@13.1.1@bits@locale_classes.h.blob | Bin 48269 -> 0 bytes ...include@c++@13.1.1@bits@locale_classes.tcc | 370 -- ...de@c++@13.1.1@bits@locale_classes.tcc.blob | Bin 36338 -> 0 bytes ...sr@include@c++@13.1.1@bits@locale_facets.h | 2689 ---------- ...clude@c++@13.1.1@bits@locale_facets.h.blob | Bin 198319 -> 0 bytes ...@include@c++@13.1.1@bits@locale_facets.tcc | 1436 ------ ...ude@c++@13.1.1@bits@locale_facets.tcc.blob | Bin 128775 -> 0 bytes .../@usr@include@c++@13.1.1@bits@localefwd.h | 214 - ...r@include@c++@13.1.1@bits@localefwd.h.blob | Bin 16801 -> 0 bytes .../@usr@include@c++@13.1.1@bits@memoryfwd.h | 85 - ...r@include@c++@13.1.1@bits@memoryfwd.h.blob | Bin 9292 -> 0 bytes .../@usr@include@c++@13.1.1@bits@move.h | 224 - .../@usr@include@c++@13.1.1@bits@move.h.blob | Bin 17111 -> 0 bytes ...include@c++@13.1.1@bits@nested_exception.h | 243 - ...de@c++@13.1.1@bits@nested_exception.h.blob | Bin 18198 -> 0 bytes ...sr@include@c++@13.1.1@bits@new_allocator.h | 239 - ...clude@c++@13.1.1@bits@new_allocator.h.blob | Bin 17413 -> 0 bytes .../@usr@include@c++@13.1.1@bits@ostream.tcc | 393 -- ...r@include@c++@13.1.1@bits@ostream.tcc.blob | Bin 33893 -> 0 bytes ...r@include@c++@13.1.1@bits@ostream_insert.h | 134 - ...lude@c++@13.1.1@bits@ostream_insert.h.blob | Bin 13144 -> 0 bytes .../@usr@include@c++@13.1.1@bits@postypes.h | 223 - ...sr@include@c++@13.1.1@bits@postypes.h.blob | Bin 15762 -> 0 bytes ...r@include@c++@13.1.1@bits@predefined_ops.h | 407 -- ...lude@c++@13.1.1@bits@predefined_ops.h.blob | Bin 28718 -> 0 bytes .../@usr@include@c++@13.1.1@bits@ptr_traits.h | 271 - ...@include@c++@13.1.1@bits@ptr_traits.h.blob | Bin 20961 -> 0 bytes ...usr@include@c++@13.1.1@bits@range_access.h | 374 -- ...nclude@c++@13.1.1@bits@range_access.h.blob | Bin 19429 -> 0 bytes .../@usr@include@c++@13.1.1@bits@refwrap.h | 411 -- ...usr@include@c++@13.1.1@bits@refwrap.h.blob | Bin 29687 -> 0 bytes ...@include@c++@13.1.1@bits@requires_hosted.h | 37 - ...ude@c++@13.1.1@bits@requires_hosted.h.blob | Bin 7880 -> 0 bytes .../@usr@include@c++@13.1.1@bits@std_abs.h | 145 - ...usr@include@c++@13.1.1@bits@std_abs.h.blob | Bin 10482 -> 0 bytes ...usr@include@c++@13.1.1@bits@stl_algobase.h | 2233 -------- ...nclude@c++@13.1.1@bits@stl_algobase.h.blob | Bin 151806 -> 0 bytes ...sr@include@c++@13.1.1@bits@stl_construct.h | 267 - ...clude@c++@13.1.1@bits@stl_construct.h.blob | Bin 16283 -> 0 bytes ...usr@include@c++@13.1.1@bits@stl_function.h | 1441 ------ ...nclude@c++@13.1.1@bits@stl_function.h.blob | Bin 99658 -> 0 bytes ...usr@include@c++@13.1.1@bits@stl_iterator.h | 3007 ----------- ...nclude@c++@13.1.1@bits@stl_iterator.h.blob | Bin 84045 -> 0 bytes ...@c++@13.1.1@bits@stl_iterator_base_funcs.h | 259 - ...13.1.1@bits@stl_iterator_base_funcs.h.blob | Bin 20777 -> 0 bytes ...@c++@13.1.1@bits@stl_iterator_base_types.h | 272 - ...13.1.1@bits@stl_iterator_base_types.h.blob | Bin 17489 -> 0 bytes .../@usr@include@c++@13.1.1@bits@stl_pair.h | 1121 ---- ...sr@include@c++@13.1.1@bits@stl_pair.h.blob | Bin 50293 -> 0 bytes ...@usr@include@c++@13.1.1@bits@streambuf.tcc | 169 - ...include@c++@13.1.1@bits@streambuf.tcc.blob | Bin 15017 -> 0 bytes ...clude@c++@13.1.1@bits@streambuf_iterator.h | 520 -- ...@c++@13.1.1@bits@streambuf_iterator.h.blob | Bin 40406 -> 0 bytes .../@usr@include@c++@13.1.1@bits@stringfwd.h | 100 - ...r@include@c++@13.1.1@bits@stringfwd.h.blob | Bin 10545 -> 0 bytes .../@usr@include@c++@13.1.1@bits@utility.h | 274 - ...usr@include@c++@13.1.1@bits@utility.h.blob | Bin 20473 -> 0 bytes .../@usr@include@c++@13.1.1@cctype | 94 - .../@usr@include@c++@13.1.1@cctype.blob | Bin 9829 -> 0 bytes .../@usr@include@c++@13.1.1@cerrno | 52 - .../@usr@include@c++@13.1.1@cerrno.blob | Bin 7872 -> 0 bytes .../@usr@include@c++@13.1.1@clocale | 58 - .../@usr@include@c++@13.1.1@clocale.blob | Bin 9051 -> 0 bytes .../@usr@include@c++@13.1.1@cstdio | 194 - .../@usr@include@c++@13.1.1@cstdio.blob | Bin 13596 -> 0 bytes .../@usr@include@c++@13.1.1@cstdlib | 265 - .../@usr@include@c++@13.1.1@cstdlib.blob | Bin 14149 -> 0 bytes .../@usr@include@c++@13.1.1@cwchar | 306 -- .../@usr@include@c++@13.1.1@cwchar.blob | Bin 18184 -> 0 bytes .../@usr@include@c++@13.1.1@cwctype | 110 - .../@usr@include@c++@13.1.1@cwctype.blob | Bin 10673 -> 0 bytes ...@usr@include@c++@13.1.1@debug@assertions.h | 68 - ...include@c++@13.1.1@debug@assertions.h.blob | Bin 8496 -> 0 bytes .../@usr@include@c++@13.1.1@debug@debug.h | 145 - ...@usr@include@c++@13.1.1@debug@debug.h.blob | Bin 11871 -> 0 bytes .../@usr@include@c++@13.1.1@exception | 168 - .../@usr@include@c++@13.1.1@exception.blob | Bin 12921 -> 0 bytes ...@usr@include@c++@13.1.1@ext@alloc_traits.h | 185 - ...include@c++@13.1.1@ext@alloc_traits.h.blob | Bin 16593 -> 0 bytes .../@usr@include@c++@13.1.1@ext@atomicity.h | 127 - ...sr@include@c++@13.1.1@ext@atomicity.h.blob | Bin 10542 -> 0 bytes ...sr@include@c++@13.1.1@ext@numeric_traits.h | 241 - ...clude@c++@13.1.1@ext@numeric_traits.h.blob | Bin 15552 -> 0 bytes ...nclude@c++@13.1.1@ext@string_conversions.h | 125 - ...e@c++@13.1.1@ext@string_conversions.h.blob | Bin 39210 -> 0 bytes .../@usr@include@c++@13.1.1@ext@type_traits.h | 273 - ...@include@c++@13.1.1@ext@type_traits.h.blob | Bin 17861 -> 0 bytes .../@usr@include@c++@13.1.1@initializer_list | 105 - ...r@include@c++@13.1.1@initializer_list.blob | Bin 12408 -> 0 bytes .../@usr@include@c++@13.1.1@ios | 48 - .../@usr@include@c++@13.1.1@ios.blob | Bin 8100 -> 0 bytes .../@usr@include@c++@13.1.1@iosfwd | 258 - .../@usr@include@c++@13.1.1@iosfwd.blob | Bin 17569 -> 0 bytes .../@usr@include@c++@13.1.1@iostream | 85 - .../@usr@include@c++@13.1.1@iostream.blob | Bin 10404 -> 0 bytes .../@usr@include@c++@13.1.1@istream | 1108 ---- .../@usr@include@c++@13.1.1@istream.blob | Bin 63837 -> 0 bytes .../@usr@include@c++@13.1.1@new | 238 - .../@usr@include@c++@13.1.1@new.blob | Bin 13340 -> 0 bytes .../@usr@include@c++@13.1.1@ostream | 882 ---- .../@usr@include@c++@13.1.1@ostream.blob | Bin 52727 -> 0 bytes .../@usr@include@c++@13.1.1@stdexcept | 307 -- .../@usr@include@c++@13.1.1@stdexcept.blob | Bin 23001 -> 0 bytes .../@usr@include@c++@13.1.1@streambuf | 862 ---- .../@usr@include@c++@13.1.1@streambuf.blob | Bin 57639 -> 0 bytes .../@usr@include@c++@13.1.1@string | 117 - .../@usr@include@c++@13.1.1@string.blob | Bin 8643 -> 0 bytes .../@usr@include@c++@13.1.1@system_error | 641 --- .../@usr@include@c++@13.1.1@system_error.blob | Bin 37257 -> 0 bytes .../@usr@include@c++@13.1.1@type_traits | 3833 -------------- .../@usr@include@c++@13.1.1@type_traits.blob | Bin 147690 -> 0 bytes .../@usr@include@c++@13.1.1@typeinfo | 255 - .../@usr@include@c++@13.1.1@typeinfo.blob | Bin 14962 -> 0 bytes ...1.1@x86_64-pc-linux-gnu@bits@atomic_word.h | 40 - ...86_64-pc-linux-gnu@bits@atomic_word.h.blob | Bin 8091 -> 0 bytes ....1@x86_64-pc-linux-gnu@bits@c++allocator.h | 64 - ...6_64-pc-linux-gnu@bits@c++allocator.h.blob | Bin 9267 -> 0 bytes ...3.1.1@x86_64-pc-linux-gnu@bits@c++config.h | 2270 -------- ...@x86_64-pc-linux-gnu@bits@c++config.h.blob | Bin 43980 -> 0 bytes ...3.1.1@x86_64-pc-linux-gnu@bits@c++locale.h | 124 - ...@x86_64-pc-linux-gnu@bits@c++locale.h.blob | Bin 10826 -> 0 bytes ...1.1@x86_64-pc-linux-gnu@bits@cpu_defines.h | 33 - ...86_64-pc-linux-gnu@bits@cpu_defines.h.blob | Bin 7762 -> 0 bytes ....1.1@x86_64-pc-linux-gnu@bits@ctype_base.h | 66 - ...x86_64-pc-linux-gnu@bits@ctype_base.h.blob | Bin 12222 -> 0 bytes ....1@x86_64-pc-linux-gnu@bits@ctype_inline.h | 76 - ...6_64-pc-linux-gnu@bits@ctype_inline.h.blob | Bin 11764 -> 0 bytes ...x86_64-pc-linux-gnu@bits@error_constants.h | 180 - ...4-pc-linux-gnu@bits@error_constants.h.blob | Bin 18279 -> 0 bytes ....1@x86_64-pc-linux-gnu@bits@gthr-default.h | 890 ---- ...6_64-pc-linux-gnu@bits@gthr-default.h.blob | Bin 22184 -> 0 bytes ...c++@13.1.1@x86_64-pc-linux-gnu@bits@gthr.h | 154 - ...3.1.1@x86_64-pc-linux-gnu@bits@gthr.h.blob | Bin 7868 -> 0 bytes ....1.1@x86_64-pc-linux-gnu@bits@os_defines.h | 85 - ...x86_64-pc-linux-gnu@bits@os_defines.h.blob | Bin 8332 -> 0 bytes .../@usr@include@ctype.h | 329 -- .../@usr@include@ctype.h.blob | Bin 16539 -> 0 bytes .../@usr@include@endian.h | 72 - .../@usr@include@endian.h.blob | Bin 9167 -> 0 bytes .../@usr@include@errno.h | 55 - .../@usr@include@errno.h.blob | Bin 8479 -> 0 bytes .../@usr@include@features-time64.h | 37 - .../@usr@include@features-time64.h.blob | Bin 7776 -> 0 bytes .../@usr@include@features.h | 518 -- .../@usr@include@features.h.blob | Bin 12432 -> 0 bytes .../@usr@include@gnu@stubs-64.h | 17 - .../@usr@include@gnu@stubs-64.h.blob | Bin 8275 -> 0 bytes .../@usr@include@gnu@stubs.h | 14 - .../@usr@include@gnu@stubs.h.blob | Bin 7755 -> 0 bytes .../@usr@include@linux@errno.h | 1 - .../@usr@include@linux@errno.h.blob | Bin 7742 -> 0 bytes .../@usr@include@locale.h | 197 - .../@usr@include@locale.h.blob | Bin 16285 -> 0 bytes .../@usr@include@pthread.h | 1348 ----- .../@usr@include@pthread.h.blob | Bin 71728 -> 0 bytes .../@usr@include@sched.h | 140 - .../@usr@include@sched.h.blob | Bin 14542 -> 0 bytes .../@usr@include@stdc-predef.h | 64 - .../@usr@include@stdc-predef.h.blob | Bin 8237 -> 0 bytes .../@usr@include@stdio.h | 911 ---- .../@usr@include@stdio.h.blob | Bin 52001 -> 0 bytes .../@usr@include@stdlib.h | 1050 ---- .../@usr@include@stdlib.h.blob | Bin 64665 -> 0 bytes .../@usr@include@sys@cdefs.h | 707 --- .../@usr@include@sys@cdefs.h.blob | Bin 16821 -> 0 bytes .../@usr@include@sys@select.h | 155 - .../@usr@include@sys@select.h.blob | Bin 11224 -> 0 bytes .../@usr@include@sys@single_threaded.h | 33 - .../@usr@include@sys@single_threaded.h.blob | Bin 8114 -> 0 bytes .../@usr@include@sys@types.h | 232 - .../@usr@include@sys@types.h.blob | Bin 14879 -> 0 bytes .../@usr@include@time.h | 454 -- .../@usr@include@time.h.blob | Bin 24038 -> 0 bytes .../@usr@include@wchar.h | 884 ---- .../@usr@include@wchar.h.blob | Bin 55762 -> 0 bytes .../@usr@include@wctype.h | 148 - .../@usr@include@wctype.h.blob | Bin 16047 -> 0 bytes ...lang@15.0.7@include@__stddef_max_align_t.h | 27 - ...15.0.7@include@__stddef_max_align_t.h.blob | Bin 8275 -> 0 bytes .../@usr@lib@clang@15.0.7@include@stdarg.h | 35 - ...usr@lib@clang@15.0.7@include@stdarg.h.blob | Bin 8564 -> 0 bytes .../@usr@lib@clang@15.0.7@include@stddef.h | 121 - ...usr@lib@clang@15.0.7@include@stddef.h.blob | Bin 8060 -> 0 bytes .../mate.cpp | 141 - .../mate.cpp.blob | Bin 12288 -> 0 bytes .gitignore | 1 + 359 files changed, 1 insertion(+), 58312 deletions(-) delete mode 100644 .ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@alloca.h delete mode 100644 .ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@alloca.h.blob delete mode 100644 .ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@asm-generic@errno-base.h delete mode 100644 .ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@asm-generic@errno-base.h.blob delete mode 100644 .ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@asm-generic@errno.h delete mode 100644 .ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@asm-generic@errno.h.blob delete mode 100644 .ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@asm@errno.h delete mode 100644 .ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@asm@errno.h.blob delete mode 100644 .ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@bits@atomic_wide_counter.h delete mode 100644 .ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@bits@atomic_wide_counter.h.blob delete mode 100644 .ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@bits@byteswap.h delete mode 100644 .ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@bits@byteswap.h.blob delete mode 100644 .ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@bits@cpu-set.h delete mode 100644 .ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@bits@cpu-set.h.blob delete mode 100644 .ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@bits@endian.h delete mode 100644 .ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@bits@endian.h.blob delete mode 100644 .ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@bits@endianness.h delete mode 100644 .ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@bits@endianness.h.blob delete mode 100644 .ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@bits@errno.h delete mode 100644 .ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@bits@errno.h.blob delete mode 100644 .ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@bits@floatn-common.h delete mode 100644 .ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@bits@floatn-common.h.blob delete mode 100644 .ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@bits@floatn.h delete mode 100644 .ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@bits@floatn.h.blob delete mode 100644 .ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@bits@libc-header-start.h delete mode 100644 .ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@bits@libc-header-start.h.blob delete mode 100644 .ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@bits@locale.h delete mode 100644 .ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@bits@locale.h.blob delete mode 100644 .ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@bits@long-double.h delete mode 100644 .ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@bits@long-double.h.blob delete mode 100644 .ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@bits@pthread_stack_min-dynamic.h delete mode 100644 .ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@bits@pthread_stack_min-dynamic.h.blob delete mode 100644 .ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@bits@pthreadtypes-arch.h delete mode 100644 .ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@bits@pthreadtypes-arch.h.blob delete mode 100644 .ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@bits@pthreadtypes.h delete mode 100644 .ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@bits@pthreadtypes.h.blob delete mode 100644 .ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@bits@sched.h delete mode 100644 .ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@bits@sched.h.blob delete mode 100644 .ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@bits@select.h delete mode 100644 .ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@bits@select.h.blob delete mode 100644 .ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@bits@setjmp.h delete mode 100644 .ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@bits@setjmp.h.blob delete mode 100644 .ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@bits@stdint-intn.h delete mode 100644 .ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@bits@stdint-intn.h.blob delete mode 100644 .ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@bits@stdio_lim.h delete mode 100644 .ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@bits@stdio_lim.h.blob delete mode 100644 .ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@bits@stdlib-float.h delete mode 100644 .ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@bits@stdlib-float.h.blob delete mode 100644 .ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@bits@struct_mutex.h delete mode 100644 .ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@bits@struct_mutex.h.blob delete mode 100644 .ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@bits@struct_rwlock.h delete mode 100644 .ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@bits@struct_rwlock.h.blob delete mode 100644 .ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@bits@thread-shared-types.h delete mode 100644 .ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@bits@thread-shared-types.h.blob delete mode 100644 .ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@bits@time.h delete mode 100644 .ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@bits@time.h.blob delete mode 100644 .ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@bits@time64.h delete mode 100644 .ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@bits@time64.h.blob delete mode 100644 .ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@bits@timesize.h delete mode 100644 .ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@bits@timesize.h.blob delete mode 100644 .ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@bits@timex.h delete mode 100644 .ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@bits@timex.h.blob delete mode 100644 .ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@bits@types.h delete mode 100644 .ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@bits@types.h.blob delete mode 100644 .ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@bits@types@FILE.h delete mode 100644 .ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@bits@types@FILE.h.blob delete mode 100644 .ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@bits@types@__FILE.h delete mode 100644 .ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@bits@types@__FILE.h.blob delete mode 100644 .ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@bits@types@__fpos64_t.h delete mode 100644 .ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@bits@types@__fpos64_t.h.blob delete mode 100644 .ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@bits@types@__fpos_t.h delete mode 100644 .ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@bits@types@__fpos_t.h.blob delete mode 100644 .ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@bits@types@__locale_t.h delete mode 100644 .ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@bits@types@__locale_t.h.blob delete mode 100644 .ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@bits@types@__mbstate_t.h delete mode 100644 .ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@bits@types@__mbstate_t.h.blob delete mode 100644 .ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@bits@types@__sigset_t.h delete mode 100644 .ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@bits@types@__sigset_t.h.blob delete mode 100644 .ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@bits@types@clock_t.h delete mode 100644 .ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@bits@types@clock_t.h.blob delete mode 100644 .ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@bits@types@clockid_t.h delete mode 100644 .ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@bits@types@clockid_t.h.blob delete mode 100644 .ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@bits@types@cookie_io_functions_t.h delete mode 100644 .ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@bits@types@cookie_io_functions_t.h.blob delete mode 100644 .ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@bits@types@error_t.h delete mode 100644 .ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@bits@types@error_t.h.blob delete mode 100644 .ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@bits@types@locale_t.h delete mode 100644 .ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@bits@types@locale_t.h.blob delete mode 100644 .ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@bits@types@mbstate_t.h delete mode 100644 .ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@bits@types@mbstate_t.h.blob delete mode 100644 .ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@bits@types@sigset_t.h delete mode 100644 .ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@bits@types@sigset_t.h.blob delete mode 100644 .ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@bits@types@struct_FILE.h delete mode 100644 .ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@bits@types@struct_FILE.h.blob delete mode 100644 .ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@bits@types@struct___jmp_buf_tag.h delete mode 100644 .ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@bits@types@struct___jmp_buf_tag.h.blob delete mode 100644 .ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@bits@types@struct_itimerspec.h delete mode 100644 .ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@bits@types@struct_itimerspec.h.blob delete mode 100644 .ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@bits@types@struct_sched_param.h delete mode 100644 .ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@bits@types@struct_sched_param.h.blob delete mode 100644 .ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@bits@types@struct_timespec.h delete mode 100644 .ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@bits@types@struct_timespec.h.blob delete mode 100644 .ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@bits@types@struct_timeval.h delete mode 100644 .ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@bits@types@struct_timeval.h.blob delete mode 100644 .ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@bits@types@struct_tm.h delete mode 100644 .ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@bits@types@struct_tm.h.blob delete mode 100644 .ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@bits@types@time_t.h delete mode 100644 .ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@bits@types@time_t.h.blob delete mode 100644 .ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@bits@types@timer_t.h delete mode 100644 .ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@bits@types@timer_t.h.blob delete mode 100644 .ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@bits@types@wint_t.h delete mode 100644 .ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@bits@types@wint_t.h.blob delete mode 100644 .ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@bits@typesizes.h delete mode 100644 .ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@bits@typesizes.h.blob delete mode 100644 .ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@bits@uintn-identity.h delete mode 100644 .ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@bits@uintn-identity.h.blob delete mode 100644 .ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@bits@waitflags.h delete mode 100644 .ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@bits@waitflags.h.blob delete mode 100644 .ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@bits@waitstatus.h delete mode 100644 .ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@bits@waitstatus.h.blob delete mode 100644 .ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@bits@wchar.h delete mode 100644 .ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@bits@wchar.h.blob delete mode 100644 .ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@bits@wctype-wchar.h delete mode 100644 .ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@bits@wctype-wchar.h.blob delete mode 100644 .ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@bits@wordsize.h delete mode 100644 .ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@bits@wordsize.h.blob delete mode 100644 .ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@c++@13.1.1@backward@binders.h delete mode 100644 .ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@c++@13.1.1@backward@binders.h.blob delete mode 100644 .ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@c++@13.1.1@bit delete mode 100644 .ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@c++@13.1.1@bit.blob delete mode 100644 .ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@c++@13.1.1@bits@alloc_traits.h delete mode 100644 .ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@c++@13.1.1@bits@alloc_traits.h.blob delete mode 100644 .ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@c++@13.1.1@bits@allocator.h delete mode 100644 .ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@c++@13.1.1@bits@allocator.h.blob delete mode 100644 .ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@c++@13.1.1@bits@basic_ios.h delete mode 100644 .ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@c++@13.1.1@bits@basic_ios.h.blob delete mode 100644 .ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@c++@13.1.1@bits@basic_ios.tcc delete mode 100644 .ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@c++@13.1.1@bits@basic_ios.tcc.blob delete mode 100644 .ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@c++@13.1.1@bits@basic_string.h delete mode 100644 .ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@c++@13.1.1@bits@basic_string.h.blob delete mode 100644 .ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@c++@13.1.1@bits@basic_string.tcc delete mode 100644 .ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@c++@13.1.1@bits@basic_string.tcc.blob delete mode 100644 .ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@c++@13.1.1@bits@char_traits.h delete mode 100644 .ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@c++@13.1.1@bits@char_traits.h.blob delete mode 100644 .ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@c++@13.1.1@bits@charconv.h delete mode 100644 .ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@c++@13.1.1@bits@charconv.h.blob delete mode 100644 .ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@c++@13.1.1@bits@concept_check.h delete mode 100644 .ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@c++@13.1.1@bits@concept_check.h.blob delete mode 100644 .ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@c++@13.1.1@bits@cpp_type_traits.h delete mode 100644 .ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@c++@13.1.1@bits@cpp_type_traits.h.blob delete mode 100644 .ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@c++@13.1.1@bits@cxxabi_forced.h delete mode 100644 .ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@c++@13.1.1@bits@cxxabi_forced.h.blob delete mode 100644 .ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@c++@13.1.1@bits@cxxabi_init_exception.h delete mode 100644 .ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@c++@13.1.1@bits@cxxabi_init_exception.h.blob delete mode 100644 .ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@c++@13.1.1@bits@exception.h delete mode 100644 .ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@c++@13.1.1@bits@exception.h.blob delete mode 100644 .ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@c++@13.1.1@bits@exception_defines.h delete mode 100644 .ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@c++@13.1.1@bits@exception_defines.h.blob delete mode 100644 .ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@c++@13.1.1@bits@exception_ptr.h delete mode 100644 .ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@c++@13.1.1@bits@exception_ptr.h.blob delete mode 100644 .ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@c++@13.1.1@bits@functexcept.h delete mode 100644 .ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@c++@13.1.1@bits@functexcept.h.blob delete mode 100644 .ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@c++@13.1.1@bits@functional_hash.h delete mode 100644 .ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@c++@13.1.1@bits@functional_hash.h.blob delete mode 100644 .ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@c++@13.1.1@bits@hash_bytes.h delete mode 100644 .ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@c++@13.1.1@bits@hash_bytes.h.blob delete mode 100644 .ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@c++@13.1.1@bits@invoke.h delete mode 100644 .ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@c++@13.1.1@bits@invoke.h.blob delete mode 100644 .ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@c++@13.1.1@bits@ios_base.h delete mode 100644 .ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@c++@13.1.1@bits@ios_base.h.blob delete mode 100644 .ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@c++@13.1.1@bits@istream.tcc delete mode 100644 .ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@c++@13.1.1@bits@istream.tcc.blob delete mode 100644 .ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@c++@13.1.1@bits@locale_classes.h delete mode 100644 .ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@c++@13.1.1@bits@locale_classes.h.blob delete mode 100644 .ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@c++@13.1.1@bits@locale_classes.tcc delete mode 100644 .ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@c++@13.1.1@bits@locale_classes.tcc.blob delete mode 100644 .ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@c++@13.1.1@bits@locale_facets.h delete mode 100644 .ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@c++@13.1.1@bits@locale_facets.h.blob delete mode 100644 .ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@c++@13.1.1@bits@locale_facets.tcc delete mode 100644 .ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@c++@13.1.1@bits@locale_facets.tcc.blob delete mode 100644 .ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@c++@13.1.1@bits@localefwd.h delete mode 100644 .ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@c++@13.1.1@bits@localefwd.h.blob delete mode 100644 .ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@c++@13.1.1@bits@memoryfwd.h delete mode 100644 .ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@c++@13.1.1@bits@memoryfwd.h.blob delete mode 100644 .ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@c++@13.1.1@bits@move.h delete mode 100644 .ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@c++@13.1.1@bits@move.h.blob delete mode 100644 .ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@c++@13.1.1@bits@nested_exception.h delete mode 100644 .ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@c++@13.1.1@bits@nested_exception.h.blob delete mode 100644 .ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@c++@13.1.1@bits@new_allocator.h delete mode 100644 .ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@c++@13.1.1@bits@new_allocator.h.blob delete mode 100644 .ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@c++@13.1.1@bits@ostream.tcc delete mode 100644 .ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@c++@13.1.1@bits@ostream.tcc.blob delete mode 100644 .ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@c++@13.1.1@bits@ostream_insert.h delete mode 100644 .ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@c++@13.1.1@bits@ostream_insert.h.blob delete mode 100644 .ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@c++@13.1.1@bits@postypes.h delete mode 100644 .ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@c++@13.1.1@bits@postypes.h.blob delete mode 100644 .ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@c++@13.1.1@bits@predefined_ops.h delete mode 100644 .ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@c++@13.1.1@bits@predefined_ops.h.blob delete mode 100644 .ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@c++@13.1.1@bits@ptr_traits.h delete mode 100644 .ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@c++@13.1.1@bits@ptr_traits.h.blob delete mode 100644 .ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@c++@13.1.1@bits@range_access.h delete mode 100644 .ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@c++@13.1.1@bits@range_access.h.blob delete mode 100644 .ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@c++@13.1.1@bits@refwrap.h delete mode 100644 .ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@c++@13.1.1@bits@refwrap.h.blob delete mode 100644 .ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@c++@13.1.1@bits@requires_hosted.h delete mode 100644 .ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@c++@13.1.1@bits@requires_hosted.h.blob delete mode 100644 .ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@c++@13.1.1@bits@std_abs.h delete mode 100644 .ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@c++@13.1.1@bits@std_abs.h.blob delete mode 100644 .ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@c++@13.1.1@bits@stl_algobase.h delete mode 100644 .ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@c++@13.1.1@bits@stl_algobase.h.blob delete mode 100644 .ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@c++@13.1.1@bits@stl_construct.h delete mode 100644 .ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@c++@13.1.1@bits@stl_construct.h.blob delete mode 100644 .ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@c++@13.1.1@bits@stl_function.h delete mode 100644 .ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@c++@13.1.1@bits@stl_function.h.blob delete mode 100644 .ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@c++@13.1.1@bits@stl_iterator.h delete mode 100644 .ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@c++@13.1.1@bits@stl_iterator.h.blob delete mode 100644 .ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@c++@13.1.1@bits@stl_iterator_base_funcs.h delete mode 100644 .ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@c++@13.1.1@bits@stl_iterator_base_funcs.h.blob delete mode 100644 .ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@c++@13.1.1@bits@stl_iterator_base_types.h delete mode 100644 .ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@c++@13.1.1@bits@stl_iterator_base_types.h.blob delete mode 100644 .ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@c++@13.1.1@bits@stl_pair.h delete mode 100644 .ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@c++@13.1.1@bits@stl_pair.h.blob delete mode 100644 .ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@c++@13.1.1@bits@streambuf.tcc delete mode 100644 .ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@c++@13.1.1@bits@streambuf.tcc.blob delete mode 100644 .ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@c++@13.1.1@bits@streambuf_iterator.h delete mode 100644 .ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@c++@13.1.1@bits@streambuf_iterator.h.blob delete mode 100644 .ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@c++@13.1.1@bits@stringfwd.h delete mode 100644 .ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@c++@13.1.1@bits@stringfwd.h.blob delete mode 100644 .ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@c++@13.1.1@bits@utility.h delete mode 100644 .ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@c++@13.1.1@bits@utility.h.blob delete mode 100644 .ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@c++@13.1.1@cctype delete mode 100644 .ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@c++@13.1.1@cctype.blob delete mode 100644 .ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@c++@13.1.1@cerrno delete mode 100644 .ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@c++@13.1.1@cerrno.blob delete mode 100644 .ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@c++@13.1.1@clocale delete mode 100644 .ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@c++@13.1.1@clocale.blob delete mode 100644 .ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@c++@13.1.1@cstdio delete mode 100644 .ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@c++@13.1.1@cstdio.blob delete mode 100644 .ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@c++@13.1.1@cstdlib delete mode 100644 .ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@c++@13.1.1@cstdlib.blob delete mode 100644 .ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@c++@13.1.1@cwchar delete mode 100644 .ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@c++@13.1.1@cwchar.blob delete mode 100644 .ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@c++@13.1.1@cwctype delete mode 100644 .ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@c++@13.1.1@cwctype.blob delete mode 100644 .ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@c++@13.1.1@debug@assertions.h delete mode 100644 .ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@c++@13.1.1@debug@assertions.h.blob delete mode 100644 .ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@c++@13.1.1@debug@debug.h delete mode 100644 .ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@c++@13.1.1@debug@debug.h.blob delete mode 100644 .ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@c++@13.1.1@exception delete mode 100644 .ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@c++@13.1.1@exception.blob delete mode 100644 .ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@c++@13.1.1@ext@alloc_traits.h delete mode 100644 .ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@c++@13.1.1@ext@alloc_traits.h.blob delete mode 100644 .ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@c++@13.1.1@ext@atomicity.h delete mode 100644 .ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@c++@13.1.1@ext@atomicity.h.blob delete mode 100644 .ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@c++@13.1.1@ext@numeric_traits.h delete mode 100644 .ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@c++@13.1.1@ext@numeric_traits.h.blob delete mode 100644 .ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@c++@13.1.1@ext@string_conversions.h delete mode 100644 .ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@c++@13.1.1@ext@string_conversions.h.blob delete mode 100644 .ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@c++@13.1.1@ext@type_traits.h delete mode 100644 .ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@c++@13.1.1@ext@type_traits.h.blob delete mode 100644 .ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@c++@13.1.1@initializer_list delete mode 100644 .ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@c++@13.1.1@initializer_list.blob delete mode 100644 .ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@c++@13.1.1@ios delete mode 100644 .ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@c++@13.1.1@ios.blob delete mode 100644 .ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@c++@13.1.1@iosfwd delete mode 100644 .ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@c++@13.1.1@iosfwd.blob delete mode 100644 .ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@c++@13.1.1@iostream delete mode 100644 .ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@c++@13.1.1@iostream.blob delete mode 100644 .ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@c++@13.1.1@istream delete mode 100644 .ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@c++@13.1.1@istream.blob delete mode 100644 .ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@c++@13.1.1@new delete mode 100644 .ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@c++@13.1.1@new.blob delete mode 100644 .ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@c++@13.1.1@ostream delete mode 100644 .ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@c++@13.1.1@ostream.blob delete mode 100644 .ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@c++@13.1.1@stdexcept delete mode 100644 .ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@c++@13.1.1@stdexcept.blob delete mode 100644 .ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@c++@13.1.1@streambuf delete mode 100644 .ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@c++@13.1.1@streambuf.blob delete mode 100644 .ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@c++@13.1.1@string delete mode 100644 .ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@c++@13.1.1@string.blob delete mode 100644 .ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@c++@13.1.1@system_error delete mode 100644 .ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@c++@13.1.1@system_error.blob delete mode 100644 .ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@c++@13.1.1@type_traits delete mode 100644 .ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@c++@13.1.1@type_traits.blob delete mode 100644 .ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@c++@13.1.1@typeinfo delete mode 100644 .ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@c++@13.1.1@typeinfo.blob delete mode 100644 .ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@c++@13.1.1@x86_64-pc-linux-gnu@bits@atomic_word.h delete mode 100644 .ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@c++@13.1.1@x86_64-pc-linux-gnu@bits@atomic_word.h.blob delete mode 100644 .ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@c++@13.1.1@x86_64-pc-linux-gnu@bits@c++allocator.h delete mode 100644 .ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@c++@13.1.1@x86_64-pc-linux-gnu@bits@c++allocator.h.blob delete mode 100644 .ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@c++@13.1.1@x86_64-pc-linux-gnu@bits@c++config.h delete mode 100644 .ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@c++@13.1.1@x86_64-pc-linux-gnu@bits@c++config.h.blob delete mode 100644 .ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@c++@13.1.1@x86_64-pc-linux-gnu@bits@c++locale.h delete mode 100644 .ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@c++@13.1.1@x86_64-pc-linux-gnu@bits@c++locale.h.blob delete mode 100644 .ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@c++@13.1.1@x86_64-pc-linux-gnu@bits@cpu_defines.h delete mode 100644 .ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@c++@13.1.1@x86_64-pc-linux-gnu@bits@cpu_defines.h.blob delete mode 100644 .ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@c++@13.1.1@x86_64-pc-linux-gnu@bits@ctype_base.h delete mode 100644 .ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@c++@13.1.1@x86_64-pc-linux-gnu@bits@ctype_base.h.blob delete mode 100644 .ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@c++@13.1.1@x86_64-pc-linux-gnu@bits@ctype_inline.h delete mode 100644 .ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@c++@13.1.1@x86_64-pc-linux-gnu@bits@ctype_inline.h.blob delete mode 100644 .ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@c++@13.1.1@x86_64-pc-linux-gnu@bits@error_constants.h delete mode 100644 .ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@c++@13.1.1@x86_64-pc-linux-gnu@bits@error_constants.h.blob delete mode 100644 .ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@c++@13.1.1@x86_64-pc-linux-gnu@bits@gthr-default.h delete mode 100644 .ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@c++@13.1.1@x86_64-pc-linux-gnu@bits@gthr-default.h.blob delete mode 100644 .ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@c++@13.1.1@x86_64-pc-linux-gnu@bits@gthr.h delete mode 100644 .ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@c++@13.1.1@x86_64-pc-linux-gnu@bits@gthr.h.blob delete mode 100644 .ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@c++@13.1.1@x86_64-pc-linux-gnu@bits@os_defines.h delete mode 100644 .ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@c++@13.1.1@x86_64-pc-linux-gnu@bits@os_defines.h.blob delete mode 100644 .ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@ctype.h delete mode 100644 .ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@ctype.h.blob delete mode 100644 .ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@endian.h delete mode 100644 .ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@endian.h.blob delete mode 100644 .ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@errno.h delete mode 100644 .ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@errno.h.blob delete mode 100644 .ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@features-time64.h delete mode 100644 .ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@features-time64.h.blob delete mode 100644 .ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@features.h delete mode 100644 .ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@features.h.blob delete mode 100644 .ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@gnu@stubs-64.h delete mode 100644 .ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@gnu@stubs-64.h.blob delete mode 100644 .ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@gnu@stubs.h delete mode 100644 .ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@gnu@stubs.h.blob delete mode 100644 .ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@linux@errno.h delete mode 100644 .ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@linux@errno.h.blob delete mode 100644 .ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@locale.h delete mode 100644 .ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@locale.h.blob delete mode 100644 .ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@pthread.h delete mode 100644 .ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@pthread.h.blob delete mode 100644 .ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@sched.h delete mode 100644 .ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@sched.h.blob delete mode 100644 .ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@stdc-predef.h delete mode 100644 .ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@stdc-predef.h.blob delete mode 100644 .ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@stdio.h delete mode 100644 .ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@stdio.h.blob delete mode 100644 .ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@stdlib.h delete mode 100644 .ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@stdlib.h.blob delete mode 100644 .ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@sys@cdefs.h delete mode 100644 .ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@sys@cdefs.h.blob delete mode 100644 .ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@sys@select.h delete mode 100644 .ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@sys@select.h.blob delete mode 100644 .ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@sys@single_threaded.h delete mode 100644 .ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@sys@single_threaded.h.blob delete mode 100644 .ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@sys@types.h delete mode 100644 .ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@sys@types.h.blob delete mode 100644 .ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@time.h delete mode 100644 .ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@time.h.blob delete mode 100644 .ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@wchar.h delete mode 100644 .ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@wchar.h.blob delete mode 100644 .ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@wctype.h delete mode 100644 .ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@wctype.h.blob delete mode 100644 .ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@lib@clang@15.0.7@include@__stddef_max_align_t.h delete mode 100644 .ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@lib@clang@15.0.7@include@__stddef_max_align_t.h.blob delete mode 100644 .ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@lib@clang@15.0.7@include@stdarg.h delete mode 100644 .ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@lib@clang@15.0.7@include@stdarg.h.blob delete mode 100644 .ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@lib@clang@15.0.7@include@stddef.h delete mode 100644 .ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@lib@clang@15.0.7@include@stddef.h.blob delete mode 100644 .ccls-cache/@home@tz@code@git@github@Mate-Rechner/mate.cpp delete mode 100644 .ccls-cache/@home@tz@code@git@github@Mate-Rechner/mate.cpp.blob diff --git a/.ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@alloca.h b/.ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@alloca.h deleted file mode 100644 index efc7116..0000000 --- a/.ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@alloca.h +++ /dev/null @@ -1,40 +0,0 @@ -/* Copyright (C) 1992-2023 Free Software Foundation, Inc. - This file is part of the GNU C Library. - - The GNU C Library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - The GNU C Library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with the GNU C Library; if not, see - . */ - -#ifndef _ALLOCA_H -#define _ALLOCA_H 1 - -#include - -#define __need_size_t -#include - -__BEGIN_DECLS - -/* Remove any previous definition. */ -#undef alloca - -/* Allocate a block that will be freed when the calling function exits. */ -extern void *alloca (size_t __size) __THROW; - -#ifdef __GNUC__ -# define alloca(size) __builtin_alloca (size) -#endif /* GCC. */ - -__END_DECLS - -#endif /* alloca.h */ diff --git a/.ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@alloca.h.blob b/.ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@alloca.h.blob deleted file mode 100644 index 88867cc21ddc80b48f2994e769aed3d491601df7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8375 zcmbVR&#NRy9q)OrN+5)|;6mOZ)2wdX_mZB@OExdL2rkLS2)pWDF|sFP1{iqeK*(sk}J<=6?4Ezm2Q1h=pWn1@PF@PsbcX&UgmA zX6t0K2p<08Cl5Z@rB>%FuAgX8cb{DHVZ110?mB%*gLg^3CNxcRMghP3zRMGvmrlv) zt!TxfRLE)*&1Gc}GmVK%X^FtPkS|#Hvk(Xv&z7 zY+5QXF;PxZT4vFlgC7VMqq;QJ?>>5GSET-)(lJn4T+MuIb8oljUFxZ*pkWqTw6HS4!lv zpUmqGbI_K?(eVQ#3mQjzTG2#(SEWjfx_nm~Uj%p+Q$#2*WKpiT+i@(uUgZLfJ6=;UjWLbICofE%oxIqj z7l4@XnO5Nsm+$U6w{;=t+$#cr90l{6{4LlCpH}l2Kb?pzQoO2EDY&aN zu$(6>M1;&%xeo-S)R=*C2a_f`=&&T1?^QveTsgePlEZ6mfC_koGlt5$FkkY zZf(1caV!Re^s;CxvZ($s+ZP8dL{=p#p({bC-ve8+vr zVB0GXH)JsFB;F>pt(k3Aq$yd@a^aL08WWN4Wg6sWLe0s^lBBNTrB1|TMGKnkbpuR+ z#42jeTiP;0Cf;l2L3B;9^d~+TN_vJ73jqV|LCfbbt3?C|`w0*lv>3YKC!jL6bV`1y zU#Bwl99XJqT1KAyWi-Im8<~4RX&5-!TLS4^0&~M2LN$rmDUijowoXFmbTH_3AP;%T zmLC`=!Xa=-CU3v7omwF7oI>DDmmNu`s&xk3Xgi_1r(AyzWvR|r|H0Sn|%g@gzn>=y0%VPY9}yoL0>v} z#A{-+I1v)|DW89G0&D<(Cgx7$2-jr!Iyb7pln7e_eWE|iyh5323kMe}dy6=B zy|rh9Q1CY^*teBr0sdwB%|Y*Kk^xyM_iCbTU!1Y~s;_kbvMh9_pHo?ERrR)x);(xR zw%O3BAVLa78nJo|k8OEW!g`4(Q4^1ysBm}*bXeX^1(Mh9RIDKfVcqC(?MY6^0dgdZ z7O+|4MFhLG!o8?-V>_d%GY41-(=}4KwxE|BVX5X$6G#HaiC~-@eg`o8zzls( zg+%qRfVPTg!LWJis1`}nTyLNAYMKttHF~-jjxg<3f~KIAf~2B!t%NN7B8IvkfJf>9 z-RX(#BYGO4={(<-qrvzEBzn~79allV&5)sLrRf&JH%qp$3VD_<-MJaLHJjs(h1#4< zFf=8@J@ey4%~N=t;FJZgM6U+(45o3UhC&Ewav)cjeDA-~Y_pxu+hS_tZo7YdpkrJk zLs!PW1tu-9xOEno$ZHL2s98$q?m%witCUFVk~MKo4XDUl=&A$9FqDLx{1TS!idK8jd=xP$6fo zL~KFR&6w$Ueb%vv>xAI&E{h0(>K7}zxpRt&Q=(JH`-gRRwbE4Cj(@em)hVG~cDOSF zN@3RoC*C$^_d9~^8%Hxc?lAI3A1uW11p>+F2C}x8OH)QVv1ma+Tk5xpeZ|hAuU#sI zfnB)!Go&z)>0Qsa8P=`REHBt)pLlR{=bhtDJW?fss&Zy zTBK<><>9R0JPFqeF5!C~La~B~oQK<-8uATn-6tBxTW@{k8&Pq3Cjg$K@!|NX(P$iu zUk`$V_k-4tMSOAmm*1TK_pi@=PpcC)USTC+@mdf()g8653Xq1SKj|rGq|`@d>sD%!!LfxXa~M|^lN6z7Fzl`dW1lZ z6{!-kej6R49*^MO>sPNod7wXk99)bv$Jw`!PhLJcc>sSmKcgGLjceZ;U3~xWr|*3I zAFuwYc>sTm#;=WEhiCu%`By(#Ui|AvJI|g7o;ZYOAKrWMZ@+&2-&Y8cpnNnPQ9yXO z1>1Tsy7u_B;{*JxQN8!%C->fa_@5cMefREnU%pLVgVR@=)7vi}IRQLZAHRD2Kz}}E G&i)@HolH0Y diff --git a/.ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@asm-generic@errno-base.h b/.ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@asm-generic@errno-base.h deleted file mode 100644 index 9653140..0000000 --- a/.ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@asm-generic@errno-base.h +++ /dev/null @@ -1,40 +0,0 @@ -/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */ -#ifndef _ASM_GENERIC_ERRNO_BASE_H -#define _ASM_GENERIC_ERRNO_BASE_H - -#define EPERM 1 /* Operation not permitted */ -#define ENOENT 2 /* No such file or directory */ -#define ESRCH 3 /* No such process */ -#define EINTR 4 /* Interrupted system call */ -#define EIO 5 /* I/O error */ -#define ENXIO 6 /* No such device or address */ -#define E2BIG 7 /* Argument list too long */ -#define ENOEXEC 8 /* Exec format error */ -#define EBADF 9 /* Bad file number */ -#define ECHILD 10 /* No child processes */ -#define EAGAIN 11 /* Try again */ -#define ENOMEM 12 /* Out of memory */ -#define EACCES 13 /* Permission denied */ -#define EFAULT 14 /* Bad address */ -#define ENOTBLK 15 /* Block device required */ -#define EBUSY 16 /* Device or resource busy */ -#define EEXIST 17 /* File exists */ -#define EXDEV 18 /* Cross-device link */ -#define ENODEV 19 /* No such device */ -#define ENOTDIR 20 /* Not a directory */ -#define EISDIR 21 /* Is a directory */ -#define EINVAL 22 /* Invalid argument */ -#define ENFILE 23 /* File table overflow */ -#define EMFILE 24 /* Too many open files */ -#define ENOTTY 25 /* Not a typewriter */ -#define ETXTBSY 26 /* Text file busy */ -#define EFBIG 27 /* File too large */ -#define ENOSPC 28 /* No space left on device */ -#define ESPIPE 29 /* Illegal seek */ -#define EROFS 30 /* Read-only file system */ -#define EMLINK 31 /* Too many links */ -#define EPIPE 32 /* Broken pipe */ -#define EDOM 33 /* Math argument out of domain of func */ -#define ERANGE 34 /* Math result not representable */ - -#endif diff --git a/.ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@asm-generic@errno-base.h.blob b/.ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@asm-generic@errno-base.h.blob deleted file mode 100644 index 1d9e75620005c6e7775ac0124cf1c359e261ae56..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 9675 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 KJLE9>a{mJem1jl( diff --git a/.ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@asm-generic@errno.h b/.ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@asm-generic@errno.h deleted file mode 100644 index cf9c51a..0000000 --- a/.ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@asm-generic@errno.h +++ /dev/null @@ -1,123 +0,0 @@ -/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */ -#ifndef _ASM_GENERIC_ERRNO_H -#define _ASM_GENERIC_ERRNO_H - -#include - -#define EDEADLK 35 /* Resource deadlock would occur */ -#define ENAMETOOLONG 36 /* File name too long */ -#define ENOLCK 37 /* No record locks available */ - -/* - * This error code is special: arch syscall entry code will return - * -ENOSYS if users try to call a syscall that doesn't exist. To keep - * failures of syscalls that really do exist distinguishable from - * failures due to attempts to use a nonexistent syscall, syscall - * implementations should refrain from returning -ENOSYS. - */ -#define ENOSYS 38 /* Invalid system call number */ - -#define ENOTEMPTY 39 /* Directory not empty */ -#define ELOOP 40 /* Too many symbolic links encountered */ -#define EWOULDBLOCK EAGAIN /* Operation would block */ -#define ENOMSG 42 /* No message of desired type */ -#define EIDRM 43 /* Identifier removed */ -#define ECHRNG 44 /* Channel number out of range */ -#define EL2NSYNC 45 /* Level 2 not synchronized */ -#define EL3HLT 46 /* Level 3 halted */ -#define EL3RST 47 /* Level 3 reset */ -#define ELNRNG 48 /* Link number out of range */ -#define EUNATCH 49 /* Protocol driver not attached */ -#define ENOCSI 50 /* No CSI structure available */ -#define EL2HLT 51 /* Level 2 halted */ -#define EBADE 52 /* Invalid exchange */ -#define EBADR 53 /* Invalid request descriptor */ -#define EXFULL 54 /* Exchange full */ -#define ENOANO 55 /* No anode */ -#define EBADRQC 56 /* Invalid request code */ -#define EBADSLT 57 /* Invalid slot */ - -#define EDEADLOCK EDEADLK - -#define EBFONT 59 /* Bad font file format */ -#define ENOSTR 60 /* Device not a stream */ -#define ENODATA 61 /* No data available */ -#define ETIME 62 /* Timer expired */ -#define ENOSR 63 /* Out of streams resources */ -#define ENONET 64 /* Machine is not on the network */ -#define ENOPKG 65 /* Package not installed */ -#define EREMOTE 66 /* Object is remote */ -#define ENOLINK 67 /* Link has been severed */ -#define EADV 68 /* Advertise error */ -#define ESRMNT 69 /* Srmount error */ -#define ECOMM 70 /* Communication error on send */ -#define EPROTO 71 /* Protocol error */ -#define EMULTIHOP 72 /* Multihop attempted */ -#define EDOTDOT 73 /* RFS specific error */ -#define EBADMSG 74 /* Not a data message */ -#define EOVERFLOW 75 /* Value too large for defined data type */ -#define ENOTUNIQ 76 /* Name not unique on network */ -#define EBADFD 77 /* File descriptor in bad state */ -#define EREMCHG 78 /* Remote address changed */ -#define ELIBACC 79 /* Can not access a needed shared library */ -#define ELIBBAD 80 /* Accessing a corrupted shared library */ -#define ELIBSCN 81 /* .lib section in a.out corrupted */ -#define ELIBMAX 82 /* Attempting to link in too many shared libraries */ -#define ELIBEXEC 83 /* Cannot exec a shared library directly */ -#define EILSEQ 84 /* Illegal byte sequence */ -#define ERESTART 85 /* Interrupted system call should be restarted */ -#define ESTRPIPE 86 /* Streams pipe error */ -#define EUSERS 87 /* Too many users */ -#define ENOTSOCK 88 /* Socket operation on non-socket */ -#define EDESTADDRREQ 89 /* Destination address required */ -#define EMSGSIZE 90 /* Message too long */ -#define EPROTOTYPE 91 /* Protocol wrong type for socket */ -#define ENOPROTOOPT 92 /* Protocol not available */ -#define EPROTONOSUPPORT 93 /* Protocol not supported */ -#define ESOCKTNOSUPPORT 94 /* Socket type not supported */ -#define EOPNOTSUPP 95 /* Operation not supported on transport endpoint */ -#define EPFNOSUPPORT 96 /* Protocol family not supported */ -#define EAFNOSUPPORT 97 /* Address family not supported by protocol */ -#define EADDRINUSE 98 /* Address already in use */ -#define EADDRNOTAVAIL 99 /* Cannot assign requested address */ -#define ENETDOWN 100 /* Network is down */ -#define ENETUNREACH 101 /* Network is unreachable */ -#define ENETRESET 102 /* Network dropped connection because of reset */ -#define ECONNABORTED 103 /* Software caused connection abort */ -#define ECONNRESET 104 /* Connection reset by peer */ -#define ENOBUFS 105 /* No buffer space available */ -#define EISCONN 106 /* Transport endpoint is already connected */ -#define ENOTCONN 107 /* Transport endpoint is not connected */ -#define ESHUTDOWN 108 /* Cannot send after transport endpoint shutdown */ -#define ETOOMANYREFS 109 /* Too many references: cannot splice */ -#define ETIMEDOUT 110 /* Connection timed out */ -#define ECONNREFUSED 111 /* Connection refused */ -#define EHOSTDOWN 112 /* Host is down */ -#define EHOSTUNREACH 113 /* No route to host */ -#define EALREADY 114 /* Operation already in progress */ -#define EINPROGRESS 115 /* Operation now in progress */ -#define ESTALE 116 /* Stale file handle */ -#define EUCLEAN 117 /* Structure needs cleaning */ -#define ENOTNAM 118 /* Not a XENIX named type file */ -#define ENAVAIL 119 /* No XENIX semaphores available */ -#define EISNAM 120 /* Is a named type file */ -#define EREMOTEIO 121 /* Remote I/O error */ -#define EDQUOT 122 /* Quota exceeded */ - -#define ENOMEDIUM 123 /* No medium found */ -#define EMEDIUMTYPE 124 /* Wrong medium type */ -#define ECANCELED 125 /* Operation Canceled */ -#define ENOKEY 126 /* Required key not available */ -#define EKEYEXPIRED 127 /* Key has expired */ -#define EKEYREVOKED 128 /* Key has been revoked */ -#define EKEYREJECTED 129 /* Key was rejected by service */ - -/* for robust mutexes */ -#define EOWNERDEAD 130 /* Owner died */ -#define ENOTRECOVERABLE 131 /* State not recoverable */ - -#define ERFKILL 132 /* Operation not possible due to RF-kill */ - -#define EHWPOISON 133 /* Memory page has hardware error */ - -#endif diff --git a/.ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@asm-generic@errno.h.blob b/.ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@asm-generic@errno.h.blob deleted file mode 100644 index cf7b1e12ea202c119553a029f4b698ed46b8d78b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 13817 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

%a+yoVFX0M+0aA4E! zF}bZP!W)qdaL$1oh4o~1GUPyo+{3=pPk8i%d#;pQJ3>Kn(3ayI*h%F(pUsCHsF2&U z?2bF{?tL;LuL<=8+FPv)&mMVfwj}#HeSVDM)l=D2+_s?NzOHMF)jfP;=Pkfcv@k@( z0D>q)9_B%aKt+gt-uwJr4YkX!gcK&D0+Trha^z|~tB1*;!sI*7J*{f*U9-1Y;~@m? ziZq8qNK$YYu|>c-r~tw}X>ZMEb1xsq&E5;K+I-8wzac{%dNEskat+ZstK)o-8NI7^ z$&F)jG}2uZSk8eQ1-6kj!b(tK<*j!<{rtN%<8M%15z<3pa?uW~&6ZlI)vaVJ5mZny z(GR|J`0gjaF}_|71dEZtIY0s#JcG@EVo;%YpL|Rc2Jj0g88OO+jRekt!G!Y#Yyspz zh1{%aCA?$K{>vd3qbUuNc7a(ushL!EunrU$sEBLw@z1tRm6EqX6cbyKN^o%fEvAGd zSrR%yh2Z}v(Y^D3bi^5QcTXVZ?+S$>YgeXVO3NrfOW9HsCaAbOLy`Y_>u1U%F+MND zKr!y0;z(;dZc_6HsfE(Cnyp??LsaZMUmpA@+i}yeJ7wBeIs&0J1r`XVw2XRS3u}P| zpu&P*T)*J0_nxZVNFnP9`l$;Rgp7F7GV=T!b`C-YDm;I7N8_%2sq3zj1OC=%Tj8^e z$wC9AMtD9uA0P%5lE1#<_?f59==_xTqt!GC+VH22w7LzoPC93^*^mSklFtl3xAr@u z?><739kgHC$lx5bUb@K6W#=MGpaL0Reed9g;P~CUso>hW=#H>8nk+~XFqX6B&z<1bx&aNoxVYe_MDD=^t)A-q%u=dtsk7*r_!^WYD{H|w9ACkIfnkh5=X zVxZ_qY6_czUIr?9S!d$W*B=_%6eWG#zO}{rz=A$P@dfMx=mQn{-qoLfbLBr?x*h0S z<>xDbBeS-j=&1^G7K?VGFzq$1dt@_H3;aUH9Jx1hq?%O1S*@b7i~<_q#xUMm-EBPLI3rl#*>KHwfyxSRdI zAI`pd!xPs7OL#-%8>(G07EfxXYHMR{5Cs*YU%s|SpZ52=rAH3m*1(C3yKjhjrSUjnj;?>UDVFReJ;jYz>o!c(;R^`_} zM=9{#a21v!vi=Bm1d;_RBv-v~{ZSi?@grpH^^qt5VizCh03TF*GLun!prZKx_J4O? zar+HdA3^PWU7;N3Kp&Of@$7iWfeN`xc2>WC{>^n7EJdL4q7dOzn!VRJ_);^~U?=MY JI6y6M{6F_QxU~QP diff --git a/.ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@asm@errno.h b/.ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@asm@errno.h deleted file mode 100644 index 4c82b50..0000000 --- a/.ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@asm@errno.h +++ /dev/null @@ -1 +0,0 @@ -#include diff --git a/.ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@asm@errno.h.blob b/.ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@asm@errno.h.blob deleted file mode 100644 index 43dd4fa8c6ba63f0b638a50968a4f5328ad508d7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7752 zcmbVRO|IlL5Ppc;FiM9f9uGDwK|+EJVsE(}r`vSm1lxJtJrXOnoB*-n2C(1^a}_Qz zqFhd={gQGVW~3Qu)aCM5U;R6uJiPz=-{0RoeDqKryH=L&Z7I4+mIvkh-{Y_^zvoUC zKS*)Z(v&UyXD9mp;bYNoefYnpigRa9N*{_!87W+6u3v4t_u;Q{u%=X6Gy}jBZ{C!T zpY0xZkL6xDTeh+VUG=%z9UtER_RAmdUQ4@cFa0n7{5t>Tu182?bVr@O%ivvFo*8eN zPH@0a-*-Q8`SO`PKNYUO96kP{quhz+yfeD=)m8IW z2~sg0shf^FU5Ku2JDnCgBOk?C968dzaB46}wbH7$wA)c)e|6HHc~9OH1(?8_2v#E* zc@eUAs?+OY$!ItLTOP+E4uUP{93OE_$}^E1W8ZxH-Pbv*RA(JHs7>7o!41x0XH`ii zxJWmqt$u#kpl zZYrogx&lIT(T1fY;mj!5MlU5JE)o@8cT$q6j@5$}K3Qx+e+0Xd`{7XHza-*F6tA+b zfpFCU7I`8<#8};TDG*RnO9A9&izWtW-V&_$&Twc~MASrfB;5^A0guw5j;}d8u*R*G z26-ll$Q4k`>9f)s?Suns?a_o>BjrW1Apa^dnIs&iAQ)(oN@LF}SGUa3+ z+}?K!=R^t^TU9Y9a_W_<(LBx%6 zS?^TrS~(~XywG#^LruhP#3*)BRpk>8&y0gX&4qL{zMwiy7XCg!s_O#!y>`l7bC%$d z-pEjqD%SP%)pJ^ntj{J4U27FgUR1{2k7at&$=sYYswEE#*a^@W)A-0*hO4X_2WsHu^+ z%x#29ylLk_bW^gd7e2pISvTx$kuL=T2!yGR@N9$>K&}fQI+!y2%+G)|aUzYsQ%v$X z;U<3#3`qA=n_o~uAa1}sm0l8WM8U{^#rQs();?8pad6WI+!wg!kv2yFk`u*kFM-S= zjli4kGsmKDEmqj#wu94qY??!+P;MeLv zB1gEPj*r#PWs4rX1Nal`X_ho9>{Ga!aJ|~5aqbSQ$@A035x~fw2Y6Al>`5TwJ6$j{(ZR{ z_Dyzk@%uwQ!+cmN-T*6xHOf+tJ`ul&VQdHxk$wdyBXNGj?;E^1bhmbt&0j#`mxG;vB2eFWrf*&8Tg98(w&5t|=tL)H3L;9(QKhzy|};7Q7Op8r+jD z<0uV{5XxkxR)l(=zB0U5lfTc+^v=D__x`}bxxt2|jcZSo++cHCJW-;qGdwia4L{I{ zJjXXU)r?CY4eeF0WDKTK23st193d>+JVEeZ6NYUV!nEVxYAAxhzoH2H=0?WHO*@ev z;YE0pD!+{}{8~UF!w);T&mm)5Xa|>1NYAy>HC3Y{zxg>W48tkMMZ#mPAObHELZ|t! zDt_)GO~nS}j4vH@u|O;0c0uBuYoowM zQr#?>$nbiGUmIA. */ - -#ifndef _BITS_ATOMIC_WIDE_COUNTER_H -#define _BITS_ATOMIC_WIDE_COUNTER_H - -/* Counter that is monotonically increasing (by less than 2**31 per - increment), with a single writer, and an arbitrary number of - readers. */ -typedef union -{ - __extension__ unsigned long long int __value64; - struct - { - unsigned int __low; - unsigned int __high; - } __value32; -} __atomic_wide_counter; - -#endif /* _BITS_ATOMIC_WIDE_COUNTER_H */ diff --git a/.ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@bits@atomic_wide_counter.h.blob b/.ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@bits@atomic_wide_counter.h.blob deleted file mode 100644 index e37e5a987ac6b62028ab8a3a48c0b315b495cf99..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8730 zcmd5>&5s<#74Kc!XmLJdffCSy?Uo~fZQRo=b~X_b2r#yA1UMoaMT!&^HPtmU#dcQ@ z)zzLIP)<>lOQc9qP7zWh4oMCXA~_&V+#-zNh?Kt}e?g=qc=PI2PfyKsb@zl5mUis* zyn6NC?|r|z9Nhch7w_EN-U{MLp7B_}6|+3y@mOf{GbxAhD^&C7HO?lIt2l#S25dSF zPOy~9@&9`&n&s+H$Z?bi#hK34{F%+}4gMOJg^Gn_X$j)7C!UD+t`7DFd+|`{BF=aQ zyhgKRFbVGc`seT5U8UCZDL3C3Rad`R@?l&lnfp#JY49$|XN0C{&M3(5zi)Zs===L* z|5`L0ygAIO-QVu?Tc? zgBwexiO^shRZO|x7aYE=cma(+1XD4LF*C(`-yJ+T_+FhcK*WTP3@QhQ@2>i*b0NUk zssaez2P#@2%kT8YbgN><5h4(jmMMl{!y#N@A+lyvC6G{L0)X~85N3xKV>XD<+aIT7>7Oi10YTdT;R zmd!+739QA~gkvRcq-F;bq=fn>7}N*_J;6XT)(xX`1kzUvJ(r1~{_?SYdzAuP7&%_m zT@{U66`+7g&RFy|RNgqY&|GcOM_61Dr?xJ~k+%@zg0~sjIJdD~!#EBDLONNj16h~9 zPH(PS0`J|64ka?u?O*fKtlz4j0p)};#tVP$TR-3ej;$A_E&o|#RBVd+L;>f8GCC|r z9^Z8k#Y!rY{=maCRjnUU#>`zRDOtfn>39;T_>zST6K{l&1NwVjl1VQWUy#|`+F=HV3O9pavhmP zRir7I&|>1%7a9|hZ)6(eW<$-($=&(2FO(6Gq$$}pkC&Ia|Pp8&?1F9oT zjl{&AR|&jn*^xA=T4QF77DKmxaBc6Q9JtztCx-|ngKo4gBfYt9r5*Am#|5mA*CUhL zy{ICQO^MK0qB$F=IAR)e+78UL*>_-&FnzoiYv+^$JAr`<`qJJbttPg+5Fuej^5rKd zkPXBiiLqC56xU|?DmUuhln8^rInfP?q*klL z@Yt3|1#FCX64mk8hzgIFK!?@3sX+3|ozx6+5Y~+b*N)_b93V%sXadVJt|C~MDgW-x zFWViOdUJpSn5mJ%x7b{Aggu!*O&|#vCxUUJ?;e{&x*fps12c3v6%tj$0@^B~iedBA zfEG#9+$@yya+vncHD~RDH@X!1>QS%gD z2)w%BmFU%Ap58Q$)KCZ^P4?spoA2ANvmJ<1V^?bD&{dt3y-At_3DlSlk*5 zOyo6#HPk4jV}Bs8%U5cVRwJQbw3S*(2=uH3W?Z5viqJ4~ErNMIC^wVAb~|R1;{yon z%OX3CZisj_hquIs-4}1f%FJp6p9j2>;Y&`(d}2*&cima3`vcNoE#%0TqaC}MKFv16 zZH9A*t6br6JckGcHP0xf@AImP1Ed$T%_F|Kb*T$*!}ZpMtFlG42k|Eh)WR(nUU}C! z`=1XM?~8VU*zt7(X|Ft|F)W@F-9y$e-$DjY^ix2p{$%hvJTZ$9v8{^>K{3XcEs;-63a^y5n>@TyY6fD#h2m<(aR1(QoDVU-HUo(rzq ze}{TPbtsAuUK4YjO92HhorhpzNEBvY8(tjF!xSbYLn*_jE?>U77f!i4jU*W?%`ROD zXYdFf($MaA!Gn>UjE7e5S|PN06-89P`QN>|BJew zs$Hs-uxyq*0n_O4;?l&Io_^Z?W_=5OB_z#f!S2Cn0QBsIvsa9do!vQm<-MJU40;PV zEq!>gl+f4$i@>RQZJ_Q%j3=P)*MZ}?3+D!g. */ - -#if !defined _BYTESWAP_H && !defined _NETINET_IN_H && !defined _ENDIAN_H -# error "Never use directly; include instead." -#endif - -#ifndef _BITS_BYTESWAP_H -#define _BITS_BYTESWAP_H 1 - -#include -#include - -/* Swap bytes in 16-bit value. */ -#define __bswap_constant_16(x) \ - ((__uint16_t) ((((x) >> 8) & 0xff) | (((x) & 0xff) << 8))) - -static __inline __uint16_t -__bswap_16 (__uint16_t __bsx) -{ -#if __GNUC_PREREQ (4, 8) - return __builtin_bswap16 (__bsx); -#else - return __bswap_constant_16 (__bsx); -#endif -} - -/* Swap bytes in 32-bit value. */ -#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) -{ -#if __GNUC_PREREQ (4, 3) - return __builtin_bswap32 (__bsx); -#else - return __bswap_constant_32 (__bsx); -#endif -} - -/* Swap bytes in 64-bit value. */ -#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)) - -__extension__ static __inline __uint64_t -__bswap_64 (__uint64_t __bsx) -{ -#if __GNUC_PREREQ (4, 3) - return __builtin_bswap64 (__bsx); -#else - return __bswap_constant_64 (__bsx); -#endif -} - -#endif /* _BITS_BYTESWAP_H */ diff --git a/.ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@bits@byteswap.h.blob b/.ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@bits@byteswap.h.blob deleted file mode 100644 index 37df1dafb2ff9854d9e9cbce3200f18c112fa88c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 9168 zcmbVRU5Ff66|SBPOB_cXLP#QPVvWHelSy^;^!#Mlon5mrv)P0Mq8nTU^=|d;+ub)) zUDejlbk7>`!B>Bt6jt_W5q}OI5m`F&vnL9CEK~wRym3tA{0t!e7$c)-LH0mSr^2_MRW!1Hyd zCp3te$A-jlU7tFjzh2(t#At7q>~32FYPsBtM^@L1rN&g~L|RUWise?+WM4muoF_sYo%ecc5tggrSgE6|I0a*J?R=m>fC)|~?_I*P{J4aO)Ru4+iI$ND>cuo7JOVcb;ehGGLg8BoF3{++ z(d8{0iBJrt$r2XuSJZB^ zR@}AmTdT1`ilV~Eg>dzxTG|teMuc<*evuMTFl`FpR+dBz&}vJtnn!^Hm#QXe6gvvt z4XT1Z+>=$h%-Iq(Ck$DDIBS8ZDvy}cL+(Y@wiT)jX34Up)j)cT_84Buxhkz-f|PI- zLPY}CLVHk;C@qIkIRdq=fS!46?&xolS?Ni=EMTNWRrv)e!YTv z^!iEG#bDv{7*gG{;J)`F9vxR%f=31clNG5={DEHdEUW?R3=896e_EEQlTg)BS)I~avpkkjXY$KcEZ&S8O$>6d0I?lo8F3!OL|V&)7lG-3HRr6 z4RVvIrsbqqlHB2;D8yvo1Wtc02{7Xk3ZCXfr5MQ$2tc!>n+K@%}*l#Z)l z->Aw_3235)D4Hc_b>-fXf2gm`$SvCo=R7paNhU*fW$0&qoT!-#FAKD`ph%2ra8G3! zM{2kTp-fiP3R&-qMao^Z_W7)t!ntYpFAn6KD{aWzShm1)0=(RE3ryrSgf&#hb-MaQ zp4BgoxSNcGdex@xND=PNQ=op3LC| z`62hkbFmV$8o{?@TFvmKPRV>CT`PCp{Wz*lNP#u?I=ULI_)YX_vKcONoI;$`3QgcC zM5w5Eqayk~t*JObYB8HX;le(-mG#-wMh0L`eK1rsMm#7-&xN3*9Yl)QaM&m zF)B<<*p=bC1=4p$P|$hTlQ&E*O%)Z;m*RC|**&PxCn4p+EYJ0=8&b%mE!^DCGEBOt zjvvrT3%SsodRdw-<^YTBsRt8*@M!UraeDcp@rk9TvAuNDxV3a*{7ZN7=8Jbfd{q<# zPEFa}n}mp+lxTC|*Oqt-4R1;>&HQz=ZZw;xYX`=`>4n;j$L}l{hEW^8{N$&*L+XYc+Y74ZGz z?`;14&^C1fHg^>Po4bjC?5~M{Rbv$dn8qb3;OD=2lSl7dIFkr?>J=QiwyQAP}T)A>Op1EY@C6AEiHQ zPacrE3e{;Z8NJIB!rcb|;S z<%67ru;&M<41t!?{z%Av%dqU#W$QzO_Qf5 z{!UJ>)>rW~sJ-_Zo?hEugVW+0PQU!e7r*z>FaG+SH1yNy5OM&}Te~PXuUTeHJ+3{m z^2F`}d|&^pF@_AN-9B}D?^-MRespK?66nx#A;D@N-d5TDO4ndT+o7?N=L-9Cy+Gxn<^6B0>o}QtQG(fSxZ|=<=7rZ+i`4E_|gC!d) z8(`VSiuF)hwsUGnSoWd6EdeUpWsJoL{*xk`_R~3Ja{?J@&T! uudi;A>$mPdPp*IN{=xGvJadmc2Wpv_vuB=}n}EpKm9vcn@x6`wjQ;_``5A@) diff --git a/.ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@bits@cpu-set.h b/.ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@bits@cpu-set.h deleted file mode 100644 index 16037ea..0000000 --- a/.ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@bits@cpu-set.h +++ /dev/null @@ -1,124 +0,0 @@ -/* Definition of the cpu_set_t structure used by the POSIX 1003.1b-1993 - scheduling interface. - Copyright (C) 1996-2023 Free Software Foundation, Inc. - This file is part of the GNU C Library. - - The GNU C Library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - The GNU C Library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with the GNU C Library; if not, see - . */ - -#ifndef _BITS_CPU_SET_H -#define _BITS_CPU_SET_H 1 - -#ifndef _SCHED_H -# error "Never include directly; use instead." -#endif - -/* Size definition for CPU sets. */ -#define __CPU_SETSIZE 1024 -#define __NCPUBITS (8 * sizeof (__cpu_mask)) - -/* Type for array elements in 'cpu_set_t'. */ -typedef __CPU_MASK_TYPE __cpu_mask; - -/* Basic access functions. */ -#define __CPUELT(cpu) ((cpu) / __NCPUBITS) -#define __CPUMASK(cpu) ((__cpu_mask) 1 << ((cpu) % __NCPUBITS)) - -/* Data structure to describe CPU mask. */ -typedef struct -{ - __cpu_mask __bits[__CPU_SETSIZE / __NCPUBITS]; -} cpu_set_t; - -/* Access functions for CPU masks. */ -#if __GNUC_PREREQ (2, 91) -# define __CPU_ZERO_S(setsize, cpusetp) \ - do __builtin_memset (cpusetp, '\0', setsize); while (0) -#else -# define __CPU_ZERO_S(setsize, cpusetp) \ - do { \ - size_t __i; \ - size_t __imax = (setsize) / sizeof (__cpu_mask); \ - __cpu_mask *__bits = (cpusetp)->__bits; \ - for (__i = 0; __i < __imax; ++__i) \ - __bits[__i] = 0; \ - } while (0) -#endif -#define __CPU_SET_S(cpu, setsize, cpusetp) \ - (__extension__ \ - ({ size_t __cpu = (cpu); \ - __cpu / 8 < (setsize) \ - ? (((__cpu_mask *) ((cpusetp)->__bits))[__CPUELT (__cpu)] \ - |= __CPUMASK (__cpu)) \ - : 0; })) -#define __CPU_CLR_S(cpu, setsize, cpusetp) \ - (__extension__ \ - ({ size_t __cpu = (cpu); \ - __cpu / 8 < (setsize) \ - ? (((__cpu_mask *) ((cpusetp)->__bits))[__CPUELT (__cpu)] \ - &= ~__CPUMASK (__cpu)) \ - : 0; })) -#define __CPU_ISSET_S(cpu, setsize, cpusetp) \ - (__extension__ \ - ({ size_t __cpu = (cpu); \ - __cpu / 8 < (setsize) \ - ? ((((const __cpu_mask *) ((cpusetp)->__bits))[__CPUELT (__cpu)] \ - & __CPUMASK (__cpu))) != 0 \ - : 0; })) - -#define __CPU_COUNT_S(setsize, cpusetp) \ - __sched_cpucount (setsize, cpusetp) - -#if __GNUC_PREREQ (2, 91) -# define __CPU_EQUAL_S(setsize, cpusetp1, cpusetp2) \ - (__builtin_memcmp (cpusetp1, cpusetp2, setsize) == 0) -#else -# define __CPU_EQUAL_S(setsize, cpusetp1, cpusetp2) \ - (__extension__ \ - ({ const __cpu_mask *__arr1 = (cpusetp1)->__bits; \ - const __cpu_mask *__arr2 = (cpusetp2)->__bits; \ - size_t __imax = (setsize) / sizeof (__cpu_mask); \ - size_t __i; \ - for (__i = 0; __i < __imax; ++__i) \ - if (__arr1[__i] != __arr2[__i]) \ - break; \ - __i == __imax; })) -#endif - -#define __CPU_OP_S(setsize, destset, srcset1, srcset2, op) \ - (__extension__ \ - ({ cpu_set_t *__dest = (destset); \ - const __cpu_mask *__arr1 = (srcset1)->__bits; \ - const __cpu_mask *__arr2 = (srcset2)->__bits; \ - size_t __imax = (setsize) / sizeof (__cpu_mask); \ - size_t __i; \ - for (__i = 0; __i < __imax; ++__i) \ - ((__cpu_mask *) __dest->__bits)[__i] = __arr1[__i] op __arr2[__i]; \ - __dest; })) - -#define __CPU_ALLOC_SIZE(count) \ - ((((count) + __NCPUBITS - 1) / __NCPUBITS) * sizeof (__cpu_mask)) -#define __CPU_ALLOC(count) __sched_cpualloc (count) -#define __CPU_FREE(cpuset) __sched_cpufree (cpuset) - -__BEGIN_DECLS - -extern int __sched_cpucount (size_t __setsize, const cpu_set_t *__setp) - __THROW; -extern cpu_set_t *__sched_cpualloc (size_t __count) __THROW __wur; -extern void __sched_cpufree (cpu_set_t *__set) __THROW; - -__END_DECLS - -#endif /* bits/cpu-set.h */ diff --git a/.ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@bits@cpu-set.h.blob b/.ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@bits@cpu-set.h.blob deleted file mode 100644 index 42edc6811cb275487d4e9dcdfa2728fe31f89ca3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 10518 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 dbN7EP2;KQbkpqvhujQHa3^;HmeIjt+{{R9(. */ - -#ifndef _BITS_ENDIAN_H -#define _BITS_ENDIAN_H 1 - -/* Definitions for byte order, according to significance of bytes, - from low addresses to high addresses. The value is what you get by - putting '4' in the most significant byte, '3' in the second most - significant byte, '2' in the second least significant byte, and '1' - in the least significant byte, and then writing down one digit for - each byte, starting with the byte at the lowest address at the left, - and proceeding to the byte with the highest address at the right. */ - -#define __LITTLE_ENDIAN 1234 -#define __BIG_ENDIAN 4321 -#define __PDP_ENDIAN 3412 - -/* This file defines `__BYTE_ORDER' for the particular machine. */ -#include - -/* Some machines may need to use a different endianness for floating point - values. */ -#ifndef __FLOAT_WORD_ORDER -# define __FLOAT_WORD_ORDER __BYTE_ORDER -#endif - -#if __BYTE_ORDER == __LITTLE_ENDIAN -# define __LONG_LONG_PAIR(HI, LO) LO, HI -#elif __BYTE_ORDER == __BIG_ENDIAN -# define __LONG_LONG_PAIR(HI, LO) HI, LO -#endif - -#endif /* bits/endian.h */ diff --git a/.ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@bits@endian.h.blob b/.ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@bits@endian.h.blob deleted file mode 100644 index c6d89bacfee0e1aa7c3240a1c975d389e026f049..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8245 zcmbVR&5Inz6`xsyV__c_`w$;uX~8yDR_bZ(YQ6R)!7^HF7dDbm7J?6^TvJ^$Q{Mg< zcUNn61vUnQPxjFef=>Ahk{pu!3BCq$N-lOTAs|Q&K5PBzRnJUK_p9!S1=FDISFe8W z`=hsePyhV+<8ONXUO34T8R|!&$RZhzl{UXgIShZrwG19eF-c_}Ch(tum`;1oh?uA2 z|Myfd%koo|j)O?$Qs^u{|HXRu_Wl@_MINeD#3jHJ*RF*-HwQa|op7jh5hgMLUZYtw znDm~0`N`vNR;l&*RGK$N)YUgjK0@Ysno*~hGjCOF`y?^~WYdwZYl?*&s4 z#40V%f^k|}#KK@=LtY@TCgddxfu!xgit|FtgnogEq zl4Pl$Y=-&>W@5ro{SBj9fm9+3^@uh*QVh?vEM|O4-sCu#z?%rIIyCZ3$f;IY+D_*6 zhB0W%;Ar@Pl?9DsJTCTG#-U^Ey`$rUE~!*jXfROXyAzxnjKyXul1yY}s%4w95ugBs zrykF7bXDlcs>^q^^+kYJ3eA)TL*~U)(vIWs^(q%==y;9QFvK(#?z}m;F?ef{UI1bw zM@EGwr@voyZs$VKxmN@L-DLqZS&}{MOaNZNjMoGJl$SBaYr}h7un>kbo=1><(g+mV zpHj%?laCvT2J%U@ayl63ccYk2^X+N+_0)k-)UjKn%1H?P_$6K(6!9%QRA) zt~K@Bt9GLj0@W?cm zHX}tWo6=X;)tbxEEVoTpTLzP7I!sHb{1EXrX&OLnCoCYHuSpJFJi*T@s_KQi8!nh; zB5#vfmwaCJc+4ien2_>7`IGpJ3Vc6rI19~dXVA+Jj& zZ$B}gN+9k?A@HVU$I+--jR7{8PvG+g{qb@?YLhX|2Dx49@2ow;nK-Jz1-T&<9| z1CzT+ts;?abD(iVb2hZ%z%=Hx9hPaMAHtwu`gBs)&M8Oj37qdlZ7tGO?JW)2oNNeQ}0fv${f-h0gOwDoaeu*4D5NOq`wZp<*gknk~d? zF+8^2K>_O{83l`YY(xd&CD1{6HxWo)xl=xa9E5eF!L=nh*(g#&5lmonCi4JxXF0uy zqp>~YF_{A#g_#D~ECC++wDO?g%q(rFaZl$yuxlYUShT7coE-nl>Li(hT6FC)SUcX@ke( zY+jB!;}?*aJ6gw4kngO^P?ge53*nm;>sVF#FgvAlGjdyOh8q^DbF#s(C>iujj}x?q25Y8K%*S*f*YTBF#ns41LtCkpj6u)JV1{LyBZP*T7ZA+1gmOI$w%akA8cIQ6 zUlG`8b4`s`bG9cw>^^ucR%TXX_^p6MhM#p><`ZjL+hruB?hZ(!Yn6_u9PQZ6^l7#k z_8HD0u5tz8cn%Q)HQ!WB-$#my10<=l^&`HyRaq3^hU?YARoSB2bI{2GrEtpyiMP&~ z{yZ@M*l5Sf6-M5`gk2bZJ75VvgM_ZesjV=LFm)iHEzJkTwmRt0S1uL9EU)O+4JmBU zdN=cRhE*3e%5t%6A^W#iK9?fjm0_ZPy*GHF*ZaxE2mgNZ{dbq9pD}iP@9rJ@xPR;D zL9f@_dett8w(9S$9v)raI==UF_+8&RJnHrO*IvA~yJ4R9dl!8;dhz|IU;N=o|0IKt zTF3Wpov`2BdvKe<@4zsAZOOR)7VdiY{gZ<^Y5$EE-`L+U&pG42|Kt4|pML$fr@&_M zufP4=_SQT7i+^7IV|pl zR>;5p-{$8Z{`9}kgV0AOC&vd%K9`q#R$g7&*}b_3tX|oCWw2qMZzHSz_SNn80M+X^ z4xeP7UHJ+mJG!&v=Ac^s{nFme-5p?cdGj)$g6AC7U&?>|_OFj0T>y`hUsp`nAqe-g W1*nxbTZYR^n=f78FwYxSwjTf@2_91b diff --git a/.ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@bits@endianness.h b/.ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@bits@endianness.h deleted file mode 100644 index 962a9ae..0000000 --- a/.ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@bits@endianness.h +++ /dev/null @@ -1,11 +0,0 @@ -#ifndef _BITS_ENDIANNESS_H -#define _BITS_ENDIANNESS_H 1 - -#ifndef _BITS_ENDIAN_H -# error "Never use directly; include instead." -#endif - -/* i386/x86_64 are little-endian. */ -#define __BYTE_ORDER __LITTLE_ENDIAN - -#endif /* bits/endianness.h */ diff --git a/.ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@bits@endianness.h.blob b/.ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@bits@endianness.h.blob deleted file mode 100644 index bc0418d05ce6cf802659f6eef781268747f9af27..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7902 zcmbVRy^kA36t@#0odiWXC?i3E60J8Ujw1~ciE=0>g&-x@q#DMvV|(y^n4Q_PFA`9s zrHzD8D*gi~=;=a*kf`_%sNgTi@#f9i9`C-{HHnmy?)J@_-~0ZU8-rKBJbUqSFdW3Q zB9pOs8jB*4@l+Z6e^!m-&$yA%BPnLNEaMD*8HvSWa8;x{pZ?!d(XuG#DxXG)Dy1+* zdGYan_YQuFD_zDa7ik6X#Lb)W;RmC`(P2DRM#q`VfY)T1jAnyZ-+le!H6k>nxf|@B<}cRF|dt z`R^Zgm5K}(W>!j`FkmOka6QNa)My`Zh7**umWI=D3g0?JtUdeQ?qzl`6CW17)E*!MVX$Y^f5-L{a5Nb}1VH3P3myc#fwlZ4#%h(ACZt0bV5x zQw9uK>V>2o$KxARF3`~NnyPV(X)HecaCB?*(I&kB#6(W43eV<0?mD-3A?Q3P0)Xzb z0Gcc-&U+I;P%!H?5dh^?it*a=9v>`(;gXjLWS=|%h4y(Hrjmd$J!h+}6!bWcR20Qr zNu~-msd8b1MF;qMuoF41rZN5`5qqR~l{P83Ywlo?Cp<)qO%_E61f7~j|zidIsAeKv8Bm!qK zF_T!fTY22m2~t9_gp35Hg$80|gy>eIcLZ`>fL`W_;&iQP-d^X+03*+#(x$dj+AMM^Nu`qs&F0BzR;|N|%umRxIeNn`$lPWLdhVt1E-a zm5K8TDnCTLOPUr?*9iy6lwIUVvtP_ZmrvY>4A#AJe?tb-P7-WFo0?fyMV_)5*E3RH zXiQYGmuZlj3pJ9HCrMqywN1oq!AqX)bpuR+%qwc-Eln9A6Yn+iAi7PkbSFL-N;-xS z4}k#fLCZ&&)guCg-2?~?S`6FpGf22(||NzX7qrvVL-C? z1hTmV=7v3l+9YODAdh8jorLjmZ_wL7?(>p0KQK;&Ltvjw!G2>swLsjFLf}o?j-*x9 zS_5vhp3vzjH{3&c>IzR<9uXpgZgf*ddUM@QJ47YNwOS#sM>e+78 zROq|M<&bU%aQwgwT~38W^&o(@ig+ooF{1IMh21O{)i~{)S?uJ{A7R$56i-1bB}q#eFVPi!8slLk+x#k$n=#xEeTV?^gD3i7S`42Al2P8pgLn^;wTUd-v- zjNCR`;g*G(oEjyAp678|mMJ_Hkh0*F=+$7J-ZYNXuswk^*^?_=z7JpNHr3?!rkK{a z>(1UDXc^bZ(3Y`lImt^bZms1c@>;@*X_E3O9mq|5l~HLu?$OY8Y9(XPk208Fnc)bb zW#$b8`;JiUhrx9+c1uGk2<$5&H)-yv@p{G%#E07j@5Rc_VGQ31NM!h=(=mHE)4Dx& zR+;{Qw7ORLgv!yL-E5!c8r_iLJmNZ65RT^&AyE6CV*5T)R2&XTo$Vj-?TyN&0JmJP z39il-^^Sv17AS>ZE=ash&h*p3`k~Q{j5~~ifeCvsd^cbjUqM1w)7({lVROOO^Q-%Tgbui>fnvH27{}Y&;Pyl?2EVmd2`_X z8y?&^xc|xU^3T7X-1_GEAFmj@`{e9|eg5d)$s-_p=UulLy6*oSetB?ucJ|. */ - -#ifndef _BITS_ERRNO_H -#define _BITS_ERRNO_H 1 - -#if !defined _ERRNO_H -# error "Never include directly; use instead." -#endif - -# include - -/* Older Linux headers do not define these constants. */ -# ifndef ENOTSUP -# define ENOTSUP EOPNOTSUPP -# endif - -# ifndef ECANCELED -# define ECANCELED 125 -# endif - -# ifndef EOWNERDEAD -# define EOWNERDEAD 130 -# endif - -#ifndef ENOTRECOVERABLE -# define ENOTRECOVERABLE 131 -# endif - -# ifndef ERFKILL -# define ERFKILL 132 -# endif - -# ifndef EHWPOISON -# define EHWPOISON 133 -# endif - -#endif /* bits/errno.h. */ diff --git a/.ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@bits@errno.h.blob b/.ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@bits@errno.h.blob deleted file mode 100644 index 446c1942bbc7038d17be7629aa7504eb11ad21d8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7931 zcmbVRPpce75T9p24ah@?B8U${lpu+-lNaMtqJj!f3}_OPcy4-odUxBMKkH1-+kF8& z#GCjDBzO?NfC?TwdGHYN5)Xa|kA8tXtE*>sduOU=)&#PUOm+3I{`9Y^x-SHee);PD zgJ36!CV46&eK!($ETgf~=I^8$MxSsk!&_2JGFe0^{9_a`5+mB~5dNst86WJ&q}jWTG;h_Q57Y6vmYq$n@ba4aDY zl!(w>M(U@3zTI>xDxB#_A$iO|otUyzWnp}r@l**?F)kS;IoDYz@-)pezt|l85zfVg zqx)MywFaqFmg+7Yc9a+%Ygx|ujNHjdFo8P}UUg*TLdcm`dDboF&4w{}%iw6`fwcvL zV=^xBMaGe1?89pxANE1_SFvOwuQDyWoQ(hlAe?$K$MIFEW9u&8 z);1RbUL`bB8Uk6AGf5|oqu1+PkfG0OqJ|ODShWAf;L_mD6}3|X2V^%8*BFq1VQ0OeJJ=e3nRE?78*b6&*2K3NP7?aMZ#5>GIlWUHg( z%{WI?Cx}Nj^(f#NBB!3c0_TjQYVnEnT18Ja1b#zn&mzaK&g=c z=k}5&CTPDU$oIP7P_BrqaqRGh8=wLnm02F|3byqcFH2dVpGimb5h$MNxyp3EZC=P= zmZdEcfsL4$NG#he9(R0#l29yxks!3tKn%1H-EMT20M~isWfm(=*P7<;HD7uZIa$?R zLQPtgV1QwAtdLt8ZxUMp32)PMSihp5d@YfKw^ZX&`hskd+r+LF97h3Tohq7+T-D0X zY_9tUa_?n36B={}S4f%Wt_5_fl5rtqNpoLwf$MPW(~!34wI--owfdky@ndFycaL8lP3|cNTuH;HYOI)cZ^;ecWdWE}0e5GE&U)8NGGWt%V%T z3)^&cF_>KFD663I!-=<~X#jPtuz+;YC5|%Noq6c;iTzN)vRCeJ$Y9!uy-jG-Gs~*T z6E@-HgtQkL6P0fj8q{Ww8mY;#q^{wmA!0V;1y8ry0j5Ca6g6^}rj5YFTg^O(Zgp6? zi4TU7j$y<>Ai#Uj@)2QmgaBc;078Qn!!-O1TqdTZ1SiBHu+JuMzp@=sch5F&$abX7)rxo)E!qR4USR^au}a69Q$6ta{E zjU|S&WAgHXuNE4Xhf*#z>-_M5%g zwITyH)AZFuGrl-ucU50!0kAA|rjO|?F{?UTM`s_5q*yHYP%)J$%~oc01RmS+u!QR+ z8HcO$*g6$NmOzK)y{SO)I-QC+a1hpwmevk(LJh!?BAmd@nk+)NTPx^`IvU#%Pe=}M z9A;{yqHaOg8sSonrU?{*;Dj(v^zCCgq&oquJ_tisQlU^iEMTlcUI=WSTCPRWBsaIu zc{NOW=NdCz^q(-3R*EO!m4YRzq^^V<|00IEAV5Z%0iDdm<`OfF@MN4X%Te$71tezF z=p0wUzC~Z4YNweN!Z%Acv8wDSpZ0RIqj*&l=%F4*W|_cy0SOirVcLTKdwCkAq0#{l z_K<-kbpMw2x|;mn^oWVxvb{G8TG6vMv~BFVq2vWtuhtDE>YBqn(2YtI7hf910wMpAp~k3RZL?? znu-%5>9f^iP%9Oh8?>)gRu#6Ddd;=AHnRGngC+~K!mS4+-lk^yePH?8Xy?WaMc#u6 zmtpvLz*4>d##ZCZmXOvlbs%6Y&5L4Jp>yQxluBS&S9EWN686w~ujZQy>o#eW7h>Hb z?p)q@FWpS`C!Y^qc;;+yZugbo{O+s4h27VJ!S1Et@@^2EI{EImhxdN|`ss&(^Ji!8 z{NB~~c24g7`qEQBs6YNZynf@(?N4ul#O}-XBI#`XU#CwW-nePM!sng6=l0G$VScX$ zCp#d1^8S~9{r&du|GvXMxOV3@JG^!4`VICGe0XuGXXC@!eb8~{*)tcOFuwz<<39mJ B#vT9w diff --git a/.ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@bits@floatn-common.h b/.ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@bits@floatn-common.h deleted file mode 100644 index 23306c9..0000000 --- a/.ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@bits@floatn-common.h +++ /dev/null @@ -1,329 +0,0 @@ -/* Macros to control TS 18661-3 glibc features where the same - definitions are appropriate for all platforms. - Copyright (C) 2017-2023 Free Software Foundation, Inc. - This file is part of the GNU C Library. - - The GNU C Library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - The GNU C Library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with the GNU C Library; if not, see - . */ - -#ifndef _BITS_FLOATN_COMMON_H -#define _BITS_FLOATN_COMMON_H - -#include -#include - -/* This header should be included at the bottom of each bits/floatn.h. - It defines the following macros for each _FloatN and _FloatNx type, - where the same definitions, or definitions based only on the macros - in bits/floatn.h, are appropriate for all glibc configurations. */ - -/* Defined to 1 if the current compiler invocation provides a - floating-point type with the right format for this type, and this - glibc includes corresponding *fN or *fNx interfaces for it. */ -#define __HAVE_FLOAT16 0 -#define __HAVE_FLOAT32 1 -#define __HAVE_FLOAT64 1 -#define __HAVE_FLOAT32X 1 -#define __HAVE_FLOAT128X 0 - -/* Defined to 1 if the corresponding __HAVE_ macro is 1 and the - type is the first with its format in the sequence of (the default - choices for) float, double, long double, _Float16, _Float32, - _Float64, _Float128, _Float32x, _Float64x, _Float128x for this - glibc; that is, if functions present once per floating-point format - rather than once per type are present for this type. - - All configurations supported by glibc have _Float32 the same format - as float, _Float64 and _Float32x the same format as double, the - _Float64x the same format as either long double or _Float128. No - configurations support _Float128x or, as of GCC 7, have compiler - support for a type meeting the requirements for _Float128x. */ -#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 - -/* Defined to 1 if the corresponding _FloatN type is not binary compatible - with the corresponding ISO C type in the current compilation unit as - opposed to __HAVE_DISTINCT_FLOATN, which indicates the default types built - in glibc. */ -#define __HAVE_FLOAT128_UNLIKE_LDBL (__HAVE_DISTINCT_FLOAT128 \ - && __LDBL_MANT_DIG__ != 113) - -/* Defined to 1 if any _FloatN or _FloatNx types that are not - ABI-distinct are however distinct types at the C language level (so - for the purposes of __builtin_types_compatible_p and _Generic). */ -#if __GNUC_PREREQ (7, 0) && !defined __cplusplus -# define __HAVE_FLOATN_NOT_TYPEDEF 1 -#else -# define __HAVE_FLOATN_NOT_TYPEDEF 0 -#endif - -#ifndef __ASSEMBLER__ - -/* Defined to concatenate the literal suffix to be used with _FloatN - or _FloatNx types, if __HAVE_ is 1. The corresponding - literal suffixes exist since GCC 7, for C only. */ -# if __HAVE_FLOAT16 -# if !__GNUC_PREREQ (7, 0) || (defined __cplusplus && !__GNUC_PREREQ (13, 0)) -/* No corresponding suffix available for this type. */ -# define __f16(x) ((_Float16) x##f) -# else -# define __f16(x) x##f16 -# endif -# endif - -# if __HAVE_FLOAT32 -# if !__GNUC_PREREQ (7, 0) || (defined __cplusplus && !__GNUC_PREREQ (13, 0)) -# define __f32(x) x##f -# else -# define __f32(x) x##f32 -# endif -# endif - -# if __HAVE_FLOAT64 -# if !__GNUC_PREREQ (7, 0) || (defined __cplusplus && !__GNUC_PREREQ (13, 0)) -# ifdef __NO_LONG_DOUBLE_MATH -# define __f64(x) x##l -# else -# define __f64(x) x -# endif -# else -# define __f64(x) x##f64 -# endif -# endif - -# if __HAVE_FLOAT32X -# if !__GNUC_PREREQ (7, 0) || (defined __cplusplus && !__GNUC_PREREQ (13, 0)) -# define __f32x(x) x -# else -# define __f32x(x) x##f32x -# endif -# endif - -# if __HAVE_FLOAT64X -# if !__GNUC_PREREQ (7, 0) || (defined __cplusplus && !__GNUC_PREREQ (13, 0)) -# if __HAVE_FLOAT64X_LONG_DOUBLE -# define __f64x(x) x##l -# else -# define __f64x(x) __f128 (x) -# endif -# else -# define __f64x(x) x##f64x -# endif -# endif - -# if __HAVE_FLOAT128X -# if !__GNUC_PREREQ (7, 0) || (defined __cplusplus && !__GNUC_PREREQ (13, 0)) -# error "_Float128X supported but no constant suffix" -# else -# define __f128x(x) x##f128x -# endif -# endif - -/* Defined to a complex type if __HAVE_ is 1. */ -# if __HAVE_FLOAT16 -# if !__GNUC_PREREQ (7, 0) || (defined __cplusplus && !__GNUC_PREREQ (13, 0)) -typedef _Complex float __cfloat16 __attribute__ ((__mode__ (__HC__))); -# define __CFLOAT16 __cfloat16 -# else -# define __CFLOAT16 _Complex _Float16 -# endif -# endif - -# if __HAVE_FLOAT32 -# if !__GNUC_PREREQ (7, 0) || (defined __cplusplus && !__GNUC_PREREQ (13, 0)) -# define __CFLOAT32 _Complex float -# else -# define __CFLOAT32 _Complex _Float32 -# endif -# endif - -# if __HAVE_FLOAT64 -# if !__GNUC_PREREQ (7, 0) || (defined __cplusplus && !__GNUC_PREREQ (13, 0)) -# ifdef __NO_LONG_DOUBLE_MATH -# define __CFLOAT64 _Complex long double -# else -# define __CFLOAT64 _Complex double -# endif -# else -# define __CFLOAT64 _Complex _Float64 -# endif -# endif - -# if __HAVE_FLOAT32X -# if !__GNUC_PREREQ (7, 0) || (defined __cplusplus && !__GNUC_PREREQ (13, 0)) -# define __CFLOAT32X _Complex double -# else -# define __CFLOAT32X _Complex _Float32x -# endif -# endif - -# if __HAVE_FLOAT64X -# if !__GNUC_PREREQ (7, 0) || (defined __cplusplus && !__GNUC_PREREQ (13, 0)) -# if __HAVE_FLOAT64X_LONG_DOUBLE -# define __CFLOAT64X _Complex long double -# else -# define __CFLOAT64X __CFLOAT128 -# endif -# else -# define __CFLOAT64X _Complex _Float64x -# endif -# endif - -# if __HAVE_FLOAT128X -# if !__GNUC_PREREQ (7, 0) || (defined __cplusplus && !__GNUC_PREREQ (13, 0)) -# error "_Float128X supported but no complex type" -# else -# define __CFLOAT128X _Complex _Float128x -# endif -# endif - -/* The remaining of this file provides support for older compilers. */ -# if __HAVE_FLOAT16 - -# if !__GNUC_PREREQ (7, 0) || (defined __cplusplus && !__GNUC_PREREQ (13, 0)) -typedef float _Float16 __attribute__ ((__mode__ (__HF__))); -# endif - -# if !__GNUC_PREREQ (7, 0) -# define __builtin_huge_valf16() ((_Float16) __builtin_huge_val ()) -# define __builtin_inff16() ((_Float16) __builtin_inf ()) -# define __builtin_nanf16(x) ((_Float16) __builtin_nan (x)) -# define __builtin_nansf16(x) ((_Float16) __builtin_nans (x)) -# endif - -# endif - -# if __HAVE_FLOAT32 - -# if !__GNUC_PREREQ (7, 0) || (defined __cplusplus && !__GNUC_PREREQ (13, 0)) -typedef float _Float32; -# endif - -# if !__GNUC_PREREQ (7, 0) -# 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)) -# endif - -# endif - -# if __HAVE_FLOAT64 - -/* If double, long double and _Float64 all have the same set of - values, TS 18661-3 requires the usual arithmetic conversions on - long double and _Float64 to produce _Float64. For this to be the - case when building with a compiler without a distinct _Float64 - type, _Float64 must be a typedef for long double, not for - double. */ - -# ifdef __NO_LONG_DOUBLE_MATH - -# if !__GNUC_PREREQ (7, 0) || (defined __cplusplus && !__GNUC_PREREQ (13, 0)) -typedef long double _Float64; -# endif - -# if !__GNUC_PREREQ (7, 0) -# define __builtin_huge_valf64() (__builtin_huge_vall ()) -# define __builtin_inff64() (__builtin_infl ()) -# define __builtin_nanf64(x) (__builtin_nanl (x)) -# define __builtin_nansf64(x) (__builtin_nansl (x)) -# endif - -# else - -# if !__GNUC_PREREQ (7, 0) || (defined __cplusplus && !__GNUC_PREREQ (13, 0)) -typedef double _Float64; -# endif - -# if !__GNUC_PREREQ (7, 0) -# 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)) -# endif - -# endif - -# endif - -# if __HAVE_FLOAT32X - -# if !__GNUC_PREREQ (7, 0) || (defined __cplusplus && !__GNUC_PREREQ (13, 0)) -typedef double _Float32x; -# endif - -# if !__GNUC_PREREQ (7, 0) -# 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)) -# endif - -# endif - -# if __HAVE_FLOAT64X - -# if __HAVE_FLOAT64X_LONG_DOUBLE - -# if !__GNUC_PREREQ (7, 0) || (defined __cplusplus && !__GNUC_PREREQ (13, 0)) -typedef long double _Float64x; -# endif - -# if !__GNUC_PREREQ (7, 0) -# 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)) -# endif - -# else - -# if !__GNUC_PREREQ (7, 0) || (defined __cplusplus && !__GNUC_PREREQ (13, 0)) -typedef _Float128 _Float64x; -# endif - -# if !__GNUC_PREREQ (7, 0) -# define __builtin_huge_valf64x() (__builtin_huge_valf128 ()) -# define __builtin_inff64x() (__builtin_inff128 ()) -# define __builtin_nanf64x(x) (__builtin_nanf128 (x)) -# define __builtin_nansf64x(x) (__builtin_nansf128 (x)) -# endif - -# endif - -# endif - -# if __HAVE_FLOAT128X - -# if !__GNUC_PREREQ (7, 0) || (defined __cplusplus && !__GNUC_PREREQ (13, 0)) -# error "_Float128x supported but no type" -# endif - -# if !__GNUC_PREREQ (7, 0) -# define __builtin_huge_valf128x() ((_Float128x) __builtin_huge_val ()) -# define __builtin_inff128x() ((_Float128x) __builtin_inf ()) -# define __builtin_nanf128x(x) ((_Float128x) __builtin_nan (x)) -# define __builtin_nansf128x(x) ((_Float128x) __builtin_nans (x)) -# endif - -# endif - -#endif /* !__ASSEMBLER__. */ - -#endif /* _BITS_FLOATN_COMMON_H */ diff --git a/.ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@bits@floatn-common.h.blob b/.ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@bits@floatn-common.h.blob deleted file mode 100644 index 561fac7fd4b46f74f02d7192d669f60c76c4b342..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12023 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. */ - -#ifndef _BITS_FLOATN_H -#define _BITS_FLOATN_H - -#include - -/* Defined to 1 if the current compiler invocation provides a - floating-point type with the IEEE 754 binary128 format, and this - glibc includes corresponding *f128 interfaces for it. The required - libgcc support was added some time after the basic compiler - support, for x86_64 and x86. */ -#if (defined __x86_64__ \ - ? __GNUC_PREREQ (4, 3) \ - : (defined __GNU__ ? __GNUC_PREREQ (4, 5) : __GNUC_PREREQ (4, 4))) -# define __HAVE_FLOAT128 1 -#else -# define __HAVE_FLOAT128 0 -#endif - -/* Defined to 1 if __HAVE_FLOAT128 is 1 and the type is ABI-distinct - from the default float, double and long double types in this glibc. */ -#if __HAVE_FLOAT128 -# define __HAVE_DISTINCT_FLOAT128 1 -#else -# define __HAVE_DISTINCT_FLOAT128 0 -#endif - -/* Defined to 1 if the current compiler invocation provides a - floating-point type with the right format for _Float64x, and this - glibc includes corresponding *f64x interfaces for it. */ -#define __HAVE_FLOAT64X 1 - -/* Defined to 1 if __HAVE_FLOAT64X is 1 and _Float64x has the format - of long double. Otherwise, if __HAVE_FLOAT64X is 1, _Float64x has - the format of _Float128, which must be different from that of long - double. */ -#define __HAVE_FLOAT64X_LONG_DOUBLE 1 - -#ifndef __ASSEMBLER__ - -/* Defined to concatenate the literal suffix to be used with _Float128 - types, if __HAVE_FLOAT128 is 1. */ -# if __HAVE_FLOAT128 -# if !__GNUC_PREREQ (7, 0) || (defined __cplusplus && !__GNUC_PREREQ (13, 0)) -/* The literal suffix f128 exists only since GCC 7.0. */ -# define __f128(x) x##q -# else -# define __f128(x) x##f128 -# endif -# endif - -/* Defined to a complex binary128 type if __HAVE_FLOAT128 is 1. */ -# if __HAVE_FLOAT128 -# if !__GNUC_PREREQ (7, 0) || (defined __cplusplus && !__GNUC_PREREQ (13, 0)) -/* Add a typedef for older GCC compilers which don't natively support - _Complex _Float128. */ -typedef _Complex float __cfloat128 __attribute__ ((__mode__ (__TC__))); -# define __CFLOAT128 __cfloat128 -# else -# define __CFLOAT128 _Complex _Float128 -# endif -# endif - -/* The remaining of this file provides support for older compilers. */ -# if __HAVE_FLOAT128 - -/* The type _Float128 exists only since GCC 7.0. */ -# if !__GNUC_PREREQ (7, 0) || (defined __cplusplus && !__GNUC_PREREQ (13, 0)) -typedef __float128 _Float128; -# endif - -/* __builtin_huge_valf128 doesn't exist before GCC 7.0. */ -# if !__GNUC_PREREQ (7, 0) -# define __builtin_huge_valf128() ((_Float128) __builtin_huge_val ()) -# endif - -/* Older GCC has only a subset of built-in functions for _Float128 on - x86, and __builtin_infq is not usable in static initializers. - Converting a narrower sNaN to _Float128 produces a quiet NaN, so - attempts to use _Float128 sNaNs will not work properly with older - compilers. */ -# if !__GNUC_PREREQ (7, 0) -# define __builtin_copysignf128 __builtin_copysignq -# define __builtin_fabsf128 __builtin_fabsq -# define __builtin_inff128() ((_Float128) __builtin_inf ()) -# define __builtin_nanf128(x) ((_Float128) __builtin_nan (x)) -# define __builtin_nansf128(x) ((_Float128) __builtin_nans (x)) -# endif - -/* In math/math.h, __MATH_TG will expand signbit to __builtin_signbit*, - e.g.: __builtin_signbitf128, before GCC 6. However, there has never - been a __builtin_signbitf128 in GCC and the type-generic builtin is - only available since GCC 6. */ -# if !__GNUC_PREREQ (6, 0) -# define __builtin_signbitf128 __signbitf128 -# endif - -# endif - -#endif /* !__ASSEMBLER__. */ - -#include - -#endif /* _BITS_FLOATN_H */ diff --git a/.ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@bits@floatn.h.blob b/.ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@bits@floatn.h.blob deleted file mode 100644 index 1f744873b9a351d94a518988ce5378a53d254ec2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8258 zcmbVRO^g&p6z*M+n2izw@n8f3!4Q7zX%?21gqQ%bE0}cwS$}Son(CUFa{FiOu4ZQmm+ zpTE5S$eZ(mK^pTw-VIn9@}MuI`X3bC;5{n2|2}7fgl9nvKRRqU^meg`CjI}r${(fK zrbzmJC^F7unr*)|+rHj|pvbd8BrGZb9y@(HSUlHR>?{UdA@d;SG3e@z!p^{Zdhhf5 zkEW&N_K>SL%GBvMJ9-$;vLv;w-jTt*52F`6IO-#^sOOWqnMxk6;vc|B(8E$|IctoOkyeZh)Yc$V!hJLm>qK!cDOpin& z+ii0~2D3D6SrO=nu>r@jUE^`XCnyQU5*P_W3k^g^GS=)yV+nAbL!Kw0p!Ql*-M!>X zhaw}ZnoFoks~ikaOpXDj6Dj0&n^rF&WZ~#xv~zQy?*lnst||jlje+ z%{+*1a#)&)4~CM4VZ=bdzYzLbp%3?jFi;mwVDOgb*2Yqmwey%5_uikc}M2ZUtWV z6}MZxib9$ap|Qkp*1TfCRN>Sem};}{z#yUec&o3CRfgLM3|!Ecwk~moSYMoo1nyIw ze{uqB0KX^tR^$j*vwX>ovXv6ymO!m&K4wm%^t6S83r!k}ICkZFa9LiOu|dfArv==% zeY_V*#)%bf(YgEH*3}TSsFbj3nFIqFq5mA|#oZ z)ev}W%l#a#mw4z;&SULVSh55jevu&Zq&3kkP~VEj%5A-Zq|6_!`)hD zzo@fgyF()@2N(`hHB#7aL3cF5rJ9{4Py~YG!#L5lkLHl(1km~*3{6ReLglc4vGQrg zuz9Mv7Db~}-9D#9H)@@0)O68)!cZ$GHj{R=6ga^$P!6{?%6g@iy)N??X1k|Km!7$*?aw}fIg47!_9H#N3a2I9wj zJ#AV&UbRRkKVWp^zrGKiNtK$#2!1QDBE!!*4f6;3qNM$}knIOf`C24B8wVR!sy<9N zyRN_)!X+2X$hNAlvzm$nqSa@!pXmCn%A~;7QqQmey;!nAdCy@d0~9pNffa96v;FhH z_+z6U8>bXG4<_7&;kN@4(=8xu(NA;*sU1@T0>)B(P;9DmhJ2Y)5zOks-kPC=KD5r8 z`KrRQOX{T=+i4N!PfdL;9bdeGFaDl-fg4u8-@S0qJF;-xJF#%lyRvu1Ti<)j%l3NS zo@cK-US0oU_b*Qfxpw)(6|%Z^3-9@|w(%Gl2Z${*zbc)pNDfeDCXrhrVBX^$!!dR%rDA zyh1%k_a8koKL^hx)U*5ei^q>&n!C7g@x-OMm4y{}-deZ?&u1_H_0r|e4>!*N!pYyR zLwgUwyTeO|*WuYc{29nS`1RV4kFWjyI=OOvYIom_(@2Pbw_-pn1?ci@eAd}>?% E0}Ear(EtDd diff --git a/.ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@bits@libc-header-start.h b/.ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@bits@libc-header-start.h deleted file mode 100644 index 73af2af..0000000 --- a/.ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@bits@libc-header-start.h +++ /dev/null @@ -1,110 +0,0 @@ -/* Handle feature test macros at the start of a header. - Copyright (C) 2016-2023 Free Software Foundation, Inc. - This file is part of the GNU C Library. - - The GNU C Library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - The GNU C Library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with the GNU C Library; if not, see - . */ - -/* This header is internal to glibc and should not be included outside - of glibc headers. Headers including it must define - __GLIBC_INTERNAL_STARTING_HEADER_IMPLEMENTATION first. This header - cannot have multiple include guards because ISO C feature test - macros depend on the definition of the macro when an affected - header is included, not when the first system header is - included. */ - -#ifndef __GLIBC_INTERNAL_STARTING_HEADER_IMPLEMENTATION -# error "Never include directly." -#endif - -#undef __GLIBC_INTERNAL_STARTING_HEADER_IMPLEMENTATION - -#include - -/* ISO/IEC TR 24731-2:2010 defines the __STDC_WANT_LIB_EXT2__ - macro. */ -#undef __GLIBC_USE_LIB_EXT2 -#if (defined __USE_GNU \ - || (defined __STDC_WANT_LIB_EXT2__ && __STDC_WANT_LIB_EXT2__ > 0)) -# define __GLIBC_USE_LIB_EXT2 1 -#else -# define __GLIBC_USE_LIB_EXT2 0 -#endif - -/* ISO/IEC TS 18661-1:2014 defines the __STDC_WANT_IEC_60559_BFP_EXT__ - macro. Most but not all symbols enabled by that macro in TS - 18661-1 are enabled unconditionally in C2X. In C2X, the symbols in - Annex F still require a new feature test macro - __STDC_WANT_IEC_60559_EXT__ instead (C2X does not define - __STDC_WANT_IEC_60559_BFP_EXT__), while a few features from TS - 18661-1 are not included in C2X (and thus should depend on - __STDC_WANT_IEC_60559_BFP_EXT__ even when C2X features are - enabled). - - __GLIBC_USE (IEC_60559_BFP_EXT) controls those features from TS - 18661-1 not included in C2X. - - __GLIBC_USE (IEC_60559_BFP_EXT_C2X) controls those features from TS - 18661-1 that are also included in C2X (with no feature test macro - required in C2X). - - __GLIBC_USE (IEC_60559_EXT) controls those features from TS 18661-1 - that are included in C2X but conditional on - __STDC_WANT_IEC_60559_EXT__. (There are currently no features - conditional on __STDC_WANT_IEC_60559_EXT__ that are not in TS - 18661-1.) */ -#undef __GLIBC_USE_IEC_60559_BFP_EXT -#if defined __USE_GNU || defined __STDC_WANT_IEC_60559_BFP_EXT__ -# define __GLIBC_USE_IEC_60559_BFP_EXT 1 -#else -# define __GLIBC_USE_IEC_60559_BFP_EXT 0 -#endif -#undef __GLIBC_USE_IEC_60559_BFP_EXT_C2X -#if __GLIBC_USE (IEC_60559_BFP_EXT) || __GLIBC_USE (ISOC2X) -# define __GLIBC_USE_IEC_60559_BFP_EXT_C2X 1 -#else -# define __GLIBC_USE_IEC_60559_BFP_EXT_C2X 0 -#endif -#undef __GLIBC_USE_IEC_60559_EXT -#if __GLIBC_USE (IEC_60559_BFP_EXT) || defined __STDC_WANT_IEC_60559_EXT__ -# define __GLIBC_USE_IEC_60559_EXT 1 -#else -# define __GLIBC_USE_IEC_60559_EXT 0 -#endif - -/* ISO/IEC TS 18661-4:2015 defines the - __STDC_WANT_IEC_60559_FUNCS_EXT__ macro. Other than the reduction - functions, the symbols from this TS are enabled unconditionally in - C2X. */ -#undef __GLIBC_USE_IEC_60559_FUNCS_EXT -#if defined __USE_GNU || defined __STDC_WANT_IEC_60559_FUNCS_EXT__ -# define __GLIBC_USE_IEC_60559_FUNCS_EXT 1 -#else -# define __GLIBC_USE_IEC_60559_FUNCS_EXT 0 -#endif -#undef __GLIBC_USE_IEC_60559_FUNCS_EXT_C2X -#if __GLIBC_USE (IEC_60559_FUNCS_EXT) || __GLIBC_USE (ISOC2X) -# define __GLIBC_USE_IEC_60559_FUNCS_EXT_C2X 1 -#else -# define __GLIBC_USE_IEC_60559_FUNCS_EXT_C2X 0 -#endif - -/* ISO/IEC TS 18661-3:2015 defines the - __STDC_WANT_IEC_60559_TYPES_EXT__ macro. */ -#undef __GLIBC_USE_IEC_60559_TYPES_EXT -#if defined __USE_GNU || defined __STDC_WANT_IEC_60559_TYPES_EXT__ -# define __GLIBC_USE_IEC_60559_TYPES_EXT 1 -#else -# define __GLIBC_USE_IEC_60559_TYPES_EXT 0 -#endif diff --git a/.ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@bits@libc-header-start.h.blob b/.ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@bits@libc-header-start.h.blob deleted file mode 100644 index 2ddcc8db993a9f9934ffc540e33327700e399a4f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8544 zcmbVR&5Inz74KQ&Aj9H>^&ue`S>S_=O>cV@X>AK^FOpWuDw4IaRzX1~rJCxRnbP#f zq`O+PYitPd$szs+f=<5s5Q7u@;6MTfoed5?+T>t-4djx5lvl5MW^1Qkb&tKU%`W}w zz2EzOulm{G!C&6FcR%O_(I`)4q~DB09?NK`wD}!X{pc#!GJIW%Q6`Hhg@4w?WD-0g z5}pme>#1;>7h{zT!&ntk=)5?1c{#bkpQEZQB9)1x0(j!N=c0|Dt#7PvM17^pD3vMj z8cgH$QSji8Z{NFrlv*E5qgX@0k}0C*KMQ4<1CUL}~Xjp%W~LK;qa5kvLK zVlZe|v|%anIMWHX+DqPub4W#=kCkL9XM-veCRs`ke+PCf`_(YQCyCf0MNy?rAY3yG zi#*{VVr($UeITHuMgol6Su`;~yEVajuL}t>bOZwpQb1DGRhS zX^5@@ia9-1neNuj3mMe1Ws5{$JtjsH+jgUlJ2pW|XqHfsz_lXmBpeV=e@Eun(O(2lsy|~LW6GeG)c24wSZ|=GA@KH>Dsq=z%@9|X;`-C zv&N~|wYs1{@Iue+R|6t;9gAWoRdILX;hB0c7;qsqjnA_78w=l8km^|o{XWx5A9QJg zM<#`|6)9%HNwibS>~!eEK+Y*@vCY20ZiFf(S~g+;>5@uaPtQ;yjgEL<>`b{_G% z*j}8d4DM6D|Kduk~w*=-ydzyKbvfCCeE<9^(;y9Jt#bxvK zk^@2^e_O$QTggTcUv}Q?jIMbxU=vMWO)UBsckH(A>l}b83zO;hG?tiDt)rtO2R$kF z_jzA2l_|~UYPC2X$MUd*>m?b7^L%V%1ra4MVR>&Vkh~73VhS|~`$mInOL3wF-sK6I z*p3xU<5Set<{?M8DWh{ANxcf{Wbd*TD@BEpoCEKJNqcB9CjbOyC;Y8vOxMtXCg;asajQ^&SjNnT*bYTQa9uPNLu z4H7=26L}F|rBzbzc{H>m4UjPyL>VluOml?LaPu63`G8O@hry08=6Z%Q5cpSwcEw!M z;`MUv$q#!8yc8?5fHC|)KqA9$IW0?vb*;U?PAlD=kjB<38&Eac@tYaG?1bxcoI_mK z3L@|vA_Qtaq?lojR28>E(q_wNeDf-0-c=i+w+ODT7WL%@T`W)ww_T8U7dg}41ZH0t z?XGx)kvB2n0t`PGu$1pZL07}fc9=$*IuOv8<||@bA9U#JkV;@dSM)rF6gFwS*YS%C z>(OYC7vgX(>}?(SMmoD~16v&XY4GIgGr_Z~+rg#PUj$cIe;Hg~eIxkIYCniq$3eOp z1dl!Z;G?y7pZetNSBzb{vUBb{yK#M+?QEZCo6ny)^Afvwu_?&7ZFnRD$j9AcDpdF}GvN)MhlYgz19x4!ERf-1*O=JI8j8Z}oOw+ljY&*N$C-zi%JAZJw{+9&Pm=zWc>{FZ}QGSAX1!54fFO z3LE0Ouy*0fN)Mj9HLmDCbTf diff --git a/.ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@bits@locale.h b/.ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@bits@locale.h deleted file mode 100644 index 4487c12..0000000 --- a/.ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@bits@locale.h +++ /dev/null @@ -1,40 +0,0 @@ -/* Definition of locale category symbol values. - Copyright (C) 2001-2023 Free Software Foundation, Inc. - This file is part of the GNU C Library. - - The GNU C Library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - The GNU C Library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with the GNU C Library; if not, see - . */ - -#if !defined _LOCALE_H && !defined _LANGINFO_H -# error "Never use directly; include instead." -#endif - -#ifndef _BITS_LOCALE_H -#define _BITS_LOCALE_H 1 - -#define __LC_CTYPE 0 -#define __LC_NUMERIC 1 -#define __LC_TIME 2 -#define __LC_COLLATE 3 -#define __LC_MONETARY 4 -#define __LC_MESSAGES 5 -#define __LC_ALL 6 -#define __LC_PAPER 7 -#define __LC_NAME 8 -#define __LC_ADDRESS 9 -#define __LC_TELEPHONE 10 -#define __LC_MEASUREMENT 11 -#define __LC_IDENTIFICATION 12 - -#endif /* bits/locale.h */ diff --git a/.ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@bits@locale.h.blob b/.ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@bits@locale.h.blob deleted file mode 100644 index bac4593a953bccb61b7db755c5a4f9d01e002363..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8674 zcmbVRU5F%C749A5!)ORih$h*eWU{-FWV6+^lbuYm5RuMoXLq1yb~Do}MubcCt=ru< zQ$M{`x29(Tg7^c1iVp$B7(oIOpA0HW9wZRrLl6ZYeDFyTbv4l^Uwo0Q=bl^DbGz%_ zs!krJV7ksZ_dEaR+&b5I|Ce8R<(N6A1ao#69Yrj0 zL-?mf$K%FFXy8S|56b0C;$)9UL&xU{qascYKfTzwji0(%nz%foK?d;XV~@G37h9{X zRkzPY>V_-?S%Zn+8a3Yk<`-XiXO>zVj+uNTRh@lvB!{vjiDDD?5e=Rdu?g{lAf_JR zH=lRJaq!eSSzmL;)CqW$9XP`%Q;4a=MEYKez{-%1L{KEH29_SCf`tTBh!X?lfO#TI zSZcHZDkagRE+Jt*72skbjHF%~Izt9=z^RMol2ku?_vKlmqQJ2jCCu{)h@*QXnMq=0bG5;>Z!QsFCe*^XAR2=Fp02p8bUBpowz;AnEK#swO4z6QMS zVi|K+pJ-iZJvl8e0MTayX~N##tFyta9SAnJssNztJb*3>;jRQcvEWms% zMUM^^(s1G>K2)E`2ZPo{8+{1DqBVb%42lIux*#>xMmZigk}j930w;U zL`zUwZAOg+YMq6iMLze;y=MOOyk1%aX;D?(LS}nRpPRjlI#6zBZFc^502{S$=+HNd- zpFyfe4)ps-aB*0t39^h6rYe$8;<5SYd9x;LFiF(VRaL>*fpDV?IzME*Dw+~d6^8;O zk}7hfSuE#a$~T;c0*YC=ejtNw$F~ll^Oh;Pq8E^nmyV43!eGMVgX)(r6EB431!XG0C|*-Y))Lqo7Eo$hn2ic) zB6IKf#Ov24y-eh~C@JKDa~xa(>vXct8^zWFd1q9jw7@#W25#PB?K6^Q4*Mph5uuJS zZBE-nZ7rJ_cTB~vFdNiuN7inm)sRS)JQy6&U8P>G!IbV&6P6sK_hC_xbGp%%8W$dt zmqS>nVD7ACvAR%QjPMBVOFsN&1lR!nfDetx5w5D@dF>OmB@b=^Bu8}`S(Q@T6fP!S zRN16)>Q;-%`r3j6K*DZjaG#cv5yY38Cu^f?n(SmO%vTTd{>2@-s=I0oP(@+#{E)_? z&D@`eBrDHm{KB+j$QZNm$OanX)y^B0iFRibho1^o`{9F-eQjtI70aULs=_TxQs zZANL+o8gj&<|WOw4D(Kp8#4>wbAeG8JQAZC+*4b|ks2Byl*yV}q3XT;NOfCnd_S+I zbZ#--ONNqjl@4Vct1c+L1e;swf)Zs-;F@U=ctdj{&*RGk5Av1I3~i=Y5&|e9yMzhq@15NR-^g2!1OtBE!!*75j&B zt-8w&Gf|(A($+j0m}<17Keiv?<-w+kcQdCBI_1I5QiwKmQOvL+_nh2ggY5_$(v(D^V@9j26~ z8U*yE{GeFX2Q~UUqypI0xp{O$3YE0hoB4Tx`4lyX6M8g4HjdrhxaZDBSF z-5<{0BBZ-PHZOO!dz;U0ZnS%w*R~st#;4Axd!QA=>*dwQ8;xTRHy>VKlFz3bw~qnG z?bpAv`0aAtcRS=Nyg50QHS=b96{OtTy!ZT)d|t?<{QA^)5C73R z^LIRV<65`d?sY)MeN!0{ZvOl7^2$Y!ak6>xktO*oWPC0D-ia%>F8&B*Y~R@G>}+n7 zWaPht42k1-^Ek+WXCY(bjsLv&-W^}cP)2WaOMwMBFnY0)GYmCxL&ZxpH<% zKF{a;dsiRbzVw-o{ZZ-P>2|JP1t=in$eYp=z2eRC^6CYUbEbI){0YysT+TP%`uta4 z`@*ZgQrdKOciUGwyJc(rUkN*3) zKYt%(Z1kSLE^RSuPy7}5r5)~X-VgSKXJOBO-T1_hPyFV~zt8Q^-o3HY*@C14DJwHx X+3HN+Ew9SZJli~bVM#vMl}Y~(xqgVG diff --git a/.ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@bits@long-double.h b/.ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@bits@long-double.h deleted file mode 100644 index 214d443..0000000 --- a/.ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@bits@long-double.h +++ /dev/null @@ -1,21 +0,0 @@ -/* Properties of long double type. ldbl-96 version. - Copyright (C) 2016-2023 Free Software Foundation, Inc. - This file is part of the GNU C Library. - - The GNU C Library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - The GNU C Library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with the GNU C Library; if not, see - . */ - -/* long double is distinct from double, so there is nothing to - define here. */ -#define __LDOUBLE_REDIRECTS_TO_FLOAT128_ABI 0 diff --git a/.ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@bits@long-double.h.blob b/.ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@bits@long-double.h.blob deleted file mode 100644 index f4b4d4b02bd578d60adbffb2c28b79399ffba073..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7823 zcmbVR&5qne5T3vbfRqEr2yR3kXCW-Pa7f5TinJ(FSU7NL^|X6tnz7r)-QJmv#EBc? z0T9ZGH-H1r5Qz(~!Am4mS9@l9>}uO2QX)lDUH#SHS5@tgXRrVI>E)~0ty#J*3z^y% zsVFmRLcya9OP?%nk4)A`x_EL|vT(n1!XYq`zl>)GpHeth}rRNCHD(*5F0J^kgV zN65O?C3X5JgLi4UWjxPI!2v&g-|@um!8tp>pHw2rm2P&)N;e*{aG2PF8wA#ed{iM& zbQqYqF;*4~OekwYaw)lOYH3IxpivHuNf|2^#zKghB}KU@l9hx!P$ETlIjKMY{q5AL zsIao@TJns6I_LTl3SgKvM5R&7u%vglC4;Cbbl|X-XK*-qh8Qq zM~TIam1fH;@}?lc1l~k=HIR`zAuFp&JuDW@h81|r;ppXow*`aaGA@rrCXi$7$Rgba>or%46lp9y`)q!1{`rAk0AePW&V^T--%pb}xDb3EH32}6MF2xql-HvK z5H-wYO#(o9lViR1vL^%!Ww_;a2JE9VaOhaJA(cde86;a9rD(zwyeq+2%ywdfOAJl6BBgY66AYZb7)sY z)&zD$!wpaYkJ6sUhl1_B#*L9R`k8dZ7=dCS)R5?1U_P7EwOF)cs%e4 zN?n2^26ksG{r0L$4gn=5~G{@7|9yi9>gOpOop| zTEny|85cqtn)|v3LWkp=hO|YWbwS0hH3kKe7kciZSrWM$coaLS%Ek*1&$NTVk_%~R zd|q|jS@?ScrLGg`_u49ZGiC`MscPvNDPv_tU)^?==1Yy# z6j;*saN~%WRlMfKq#IxhWI=874khN(PpZ0D%DS!N^C1H4p-X z!vY8mMhrLbGjN&Mkd`0)OFGl-fyOoqlSKH-dqCRn3wl90C?M4b201Q)yN$ zp7eEaDsVf4g$w4=(Ie3i`-c;y;XUQ;Hz&Xb@Rw>uB1gEM03HWRL$V%7~F%A6uTW?D5kWs>|oYF;BhQZ3_LH%EIHI;uPTTvfe9=6Qi0-aI@Md? zAnY4GtpntQ8h|53vWAy6StszeR?`o4G`4G=lN=B@%=Jh`y@DP!!lN2Z6DR_~Nno8A zyT^0LZ~}OJ5Qd?oLZNn9z*r@`7C1chTzfPjb&JDz@wkjpJO_homMcTO_5`j&^)1&! zvbo)xOtS6~w`lNuRqi{@XlVixw?zzYqF~={ECvYJ=UZ$|>|#~=y4=vTi`ov4!ae7A zHTioF-GE-_aaoo*d?_Gp!7DLgAv~iDjndHLfB{Enz*BkrO8-zz{@yjy1$RH#y92%8 zdK>yS4!uqC8v9o7Z4z~D;e~0L^A%mAU3`sIdAse=&`#PQV=#^~SYMgt2%#6|0|fUO zp_zuk4>InNhH?fuA{pRtR^ju)i! zwbDz9euKEV5zNoIvA_kwEmshU7YHFx_c_Ilbfl@c89gH^TGR!T|R#H&7;c;_Wa`U z)8`joUVY83p0OvF&mLZ#ee!@keDoCLpM2z>gYHZazjF`t-+u4*x9_-rzni_e1q%KH DUpK5^ diff --git a/.ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@bits@pthread_stack_min-dynamic.h b/.ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@bits@pthread_stack_min-dynamic.h deleted file mode 100644 index be0a66b..0000000 --- a/.ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@bits@pthread_stack_min-dynamic.h +++ /dev/null @@ -1,31 +0,0 @@ -/* Definition of PTHREAD_STACK_MIN, possibly dynamic. - Copyright (C) 2021-2023 Free Software Foundation, Inc. - This file is part of the GNU C Library. - - The GNU C Library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - The GNU C Library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with the GNU C Library; if not, see - . */ - -#ifndef PTHREAD_STACK_MIN -# if defined __USE_DYNAMIC_STACK_SIZE && __USE_DYNAMIC_STACK_SIZE -# ifndef __ASSEMBLER__ -# define __SC_THREAD_STACK_MIN_VALUE 75 -__BEGIN_DECLS -extern long int __sysconf (int __name) __THROW; -__END_DECLS -# define PTHREAD_STACK_MIN __sysconf (__SC_THREAD_STACK_MIN_VALUE) -# endif -# else -# include -# endif -#endif diff --git a/.ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@bits@pthread_stack_min-dynamic.h.blob b/.ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@bits@pthread_stack_min-dynamic.h.blob deleted file mode 100644 index 2f808e80c01966078bb7412867a2841b116369bb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8188 zcmbVR&5ImG6z_?G27(7AJ5do9^^lG9wyVh|2ueae)EGrKQ9J~TnwpxKa{FV_UA?m# zP(%-k`WHw}9z>5Sp53W@@@$caIM2z-+&I^?M)nd+${r z^X}aI;KnVl;{~H6l7YS+h@>xrq0;7Wl=p&{xt9Kx6r)(CK?Fb6#dz%9B|;t#|LZD$ zlBC-z9{PQiN}-c<@7d+{^}Y`BEDcmF!W`g95RCV~TgdcXOK-BX)v^SD12eyHMn z*B{2YMJx;^*5erht3sZu5GdLVEZfVpj2M`Zq=e)^a-F9#BYl8I88lhISk%ijgqUek zlxLAYl#mBX1n4d!_06B3Ejkqy4#I@%*cV9@B{8WC#U^N+KM^C2zN|#ZqEnH~)O9+B zDAC)~GMn%*xs#JE0(T-@ft-I>BwuuGsa-o^h5Xdwe zOVMUgt#e^-`tXIS7a%7E8zMk@;t=D*F*_DF19B;?E{s>eQ>BjSCMzJ2zj9hL`9NpE6G&C z26-&ZVaaOrJ3j8qUOo))n?&r0;#QdsAzfn&i(KI#Vr(!@>OcTL1_GSh%7B=l?Uo>U z>y$(7Aw2KcQ5$Z63V2j(Nx2d{M}_qo&oY^!pGilw5h$MNiHdc*ZMBdAlcg;ZfsL3L zNvy#Y9(N2vNvM3lNDx}+2G+F@&2Ds-0N2&X%eb#NU2Dp_7kpWx$jPeadT7!r0|N|` zkAQ&tOB!zyTLB3#(?M9jqMz#e8wYQuhMBAjvPo_eyGn2z1&lSSC_8diD;u+UY`sJ7 zJ?%|=gKqOUDO27xh1OFtE`-cz?kg{F9ga;G(iXke1Qn}R8x%-hsJXp-K;*9DQLLn@ z-+u6LP0<((xR9F0XI0lb3!mq3)MFp&eXNz;2GsT@pF+jKQC znB3JtoI~Y@6K_e=0BTxc0qL|!9A%a}^U$&r`=NqqbQnN~#}vJuZl zq`lCXsAQ?opf-EdNKK96HFw!xnsFAyrZ3HG>YJfp>v%}I%d@x}& zOco9T0p5d_j|i(H1PGf25E`@?rr~GcGOs-LtRAw&k<=&X#ia@|5ZM3Ljvt-$NP;dauiC}b%S8cPgk z#VZa>6HeQKnKpX|1_{&0lfHIVIc{e#a6w<%x}-M5_7+6Na5?h-CnvxL@CRy0B1gEE zZJGJJ>AFrV1a+Pm&3*X;+=_*%sSild#lnLf=n!*zjkgbS`963-Dr zpyr*6>HA1iaeyR!w)}~&-nz^Ra3%H1;0m@V?m=j>Kr7sGLEvgZfkDEro{W!w+?7#lPFBj!+&%gER zl^3?opE<`aUpaI3CHC@*ufU2&AG5bptCfdyaH~fdyL^_FSF<w=Z?;jujYkU8X zHy56*cq45p(DnL)&I}e3-@4e{i n=eiefAGo{I-Rxexc^m%Y?O*6!`|jLN@{. */ - -#ifndef _BITS_PTHREADTYPES_ARCH_H -#define _BITS_PTHREADTYPES_ARCH_H 1 - -#include - -#ifdef __x86_64__ -# if __WORDSIZE == 64 -# define __SIZEOF_PTHREAD_MUTEX_T 40 -# define __SIZEOF_PTHREAD_ATTR_T 56 -# define __SIZEOF_PTHREAD_RWLOCK_T 56 -# define __SIZEOF_PTHREAD_BARRIER_T 32 -# else -# define __SIZEOF_PTHREAD_MUTEX_T 32 -# define __SIZEOF_PTHREAD_ATTR_T 32 -# define __SIZEOF_PTHREAD_RWLOCK_T 44 -# define __SIZEOF_PTHREAD_BARRIER_T 20 -# endif -#else -# define __SIZEOF_PTHREAD_MUTEX_T 24 -# define __SIZEOF_PTHREAD_ATTR_T 36 -# define __SIZEOF_PTHREAD_RWLOCK_T 32 -# define __SIZEOF_PTHREAD_BARRIER_T 20 -#endif -#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 - -#ifndef __x86_64__ -/* Extra attributes for the cleanup functions. */ -# define __cleanup_fct_attribute __attribute__ ((__regparm__ (1))) -#endif - -#endif /* bits/pthreadtypes.h */ diff --git a/.ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@bits@pthreadtypes-arch.h.blob b/.ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@bits@pthreadtypes-arch.h.blob deleted file mode 100644 index 901327b854c98c2014f66891737e021dd8a184f4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8864 zcmbVR-HRkw6|bJCAu)+fSjd-zP6XY|rn+XblgT1coZXpqCYhOCW;;ala;d(3yZbuz z(N^8s?g>QvfCWMFq#zOzT_62GAH)YAM106Xq7YHRKR^*B4$UO0?N8yEAO(cSmdMd;m5PBfmrb;aMSz!4LAU@%Ch3Hk14rX)H7?MY^EKdo56hUh z{%m)x`&?080OEiRr3rh-KRF%Tnn19*RRsXuZhAetzZ8YcegHiT;oN*<(%?%?>S!x2)DkDCnEH&4@ z@&(=CIHzIRGT)U>#je!^1%elPZa*6uVpp>$c2YiQPCUGm4+cY@GGWH2Slf+-zh{u@ zkqiAk5?q`#X@XZK2~!nmK;ns6blI#48%`57bk$WbHWOZyLFb2zS4C3-s=J{8iKLDk zX_m`*nDPzskimRbZXU>B+ZkAg(6VLbUC|H7*iXksePJ-+@lviqZYtG`oHR}H9-hiV zOeTKfhf7I-Es$tU%_ya;BUIw0b{<4mBujnagQcWq8PO0>upW$j2DfTNfUuqbp}~kD z2Yv!3qsKksb9(hOnfCYFDL~ABYRCDSxaDVSVF0yFdG%pSmxdt z5WnA;^fHl~qGZkwoa5pW*rbzn-k5JKkatEUP|{)|sdTll#5yb{P8^=W2RN^M)X zxcE_R6UV7sEiRiIOAZJL`)UU7Z7CT;e5rY}F}jLkKqkWcG*R|1?$~wRSGxdJ7ADgV zX)HR)YDY&+4tkQ#W`3U&9&temwQ3xXW4W8c^Aa1lMLt%t!Vo1eVOd`)kUS5kWC}G1 z`$mOpO>sgFP$Q{3hL< U`?m>=rQ*slA5u?A=clRc7~UO^We;Ze<8CXfW2_4NqwDdpx!@wV;yJhy(Pd65 z!izp&UgU92W&wO7FzSLLF;u}ljkOu6p}RrtYbXG!h}%V~Cu-yGWi_R9=OewmP;su( zp{irutE8V`$Ev(aBCjdDEe!*IWX{eqzD)2S-}B7SPBlP6U=Ss+xDw$bgo>LB2=W6$ zwj2gE!pP?tlYzj$)Kx3yk`~XGYfFBpN8qJc$pwty2LdB9{FYO*bST%V2kbBt%?T-O z&7+~I@M?aO!1|;-nP|*1(QXQs}rWyqFrTmIm z*W5JvJfs3x(7AaYLkg9&*5~*#!+bOv#tB`_g{`xvzL6qd?Iq)`PdZOL@TBvZ`_`R} z`yA)~JFma>%8%dr%i4KD_OD!ek!p)vy#2P3Kbojp%bWB%8xr_a?WaD! zBG2ud@%;zS-M(@6AO2NgoVx&dZ&-O3RGstB0Q<+zJhrZpJV^~>bGxw?cUdZR$*Qk+-?*_q8LAN=8=mlEjV{` z#t(G1KmFVG2j3;+%HgFQTYQ&)Yk6%C;#;0MpS_ze?f)|T*y9y|2QT$@zJ$uJS(VRe zIvZ=C`@?4*-d>UCJRtt@SN7h!H-3Hq$x-}kJ#_CwkAIc+(I&?&bH5jTj88r{`qfAXaD{4Ctf5M_j=dnS=;;a)tzf(>*&%h*#%4sx7vvA RSqI(^wjTuJ!+BX5?SDg|&-nlV diff --git a/.ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@bits@pthreadtypes.h b/.ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@bits@pthreadtypes.h deleted file mode 100644 index 65464ee..0000000 --- a/.ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@bits@pthreadtypes.h +++ /dev/null @@ -1,121 +0,0 @@ -/* Declaration of common pthread types for all architectures. - Copyright (C) 2017-2023 Free Software Foundation, Inc. - This file is part of the GNU C Library. - - The GNU C Library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - The GNU C Library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with the GNU C Library; if not, see - . */ - -#ifndef _BITS_PTHREADTYPES_COMMON_H -# define _BITS_PTHREADTYPES_COMMON_H 1 - -/* For internal mutex and condition variable definitions. */ -#include - -/* Thread identifiers. The structure of the attribute type is not - exposed on purpose. */ -typedef unsigned long int pthread_t; - - -/* Data structures for mutex handling. The structure of the attribute - type is not exposed on purpose. */ -typedef union -{ - char __size[__SIZEOF_PTHREAD_MUTEXATTR_T]; - int __align; -} pthread_mutexattr_t; - - -/* Data structure for condition variable handling. The structure of - the attribute type is not exposed on purpose. */ -typedef union -{ - char __size[__SIZEOF_PTHREAD_CONDATTR_T]; - int __align; -} pthread_condattr_t; - - -/* Keys for thread-specific data */ -typedef unsigned int pthread_key_t; - - -/* Once-only execution */ -typedef int __ONCE_ALIGNMENT pthread_once_t; - - -union pthread_attr_t -{ - char __size[__SIZEOF_PTHREAD_ATTR_T]; - long int __align; -}; -#ifndef __have_pthread_attr_t -typedef union pthread_attr_t pthread_attr_t; -# define __have_pthread_attr_t 1 -#endif - - -typedef union -{ - struct __pthread_mutex_s __data; - char __size[__SIZEOF_PTHREAD_MUTEX_T]; - long int __align; -} pthread_mutex_t; - - -typedef union -{ - struct __pthread_cond_s __data; - char __size[__SIZEOF_PTHREAD_COND_T]; - __extension__ long long int __align; -} pthread_cond_t; - - -#if defined __USE_UNIX98 || defined __USE_XOPEN2K -/* Data structure for reader-writer lock variable handling. The - structure of the attribute type is deliberately not exposed. */ -typedef union -{ - struct __pthread_rwlock_arch_t __data; - char __size[__SIZEOF_PTHREAD_RWLOCK_T]; - long int __align; -} pthread_rwlock_t; - -typedef union -{ - char __size[__SIZEOF_PTHREAD_RWLOCKATTR_T]; - long int __align; -} pthread_rwlockattr_t; -#endif - - -#ifdef __USE_XOPEN2K -/* POSIX spinlock data type. */ -typedef volatile int pthread_spinlock_t; - - -/* POSIX barriers data type. The structure of the type is - deliberately not exposed. */ -typedef union -{ - char __size[__SIZEOF_PTHREAD_BARRIER_T]; - long int __align; -} pthread_barrier_t; - -typedef union -{ - char __size[__SIZEOF_PTHREAD_BARRIERATTR_T]; - int __align; -} pthread_barrierattr_t; -#endif - -#endif diff --git a/.ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@bits@pthreadtypes.h.blob b/.ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@bits@pthreadtypes.h.blob deleted file mode 100644 index 7f0e6ccec3395774f4063f70fccf5b5877b593b0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12844 zcmcgy4Qv$06`nm78h&D3AR>|DhP6Qi4xi5^#(;|vHMR-lY$Gt(xP)cBw`XsCw|ngF zVVj7yqAC>ly+)9lloZRiqoA{bp%~J{>>v#hXfQGG1FSi*%MREgccjt9sF-3I~40y z94)#@Q%4NVilyO0gPO^pDQZeFhX31L(J|8+)s5k3Lbo*4F|CQV$(@THh-GanrWo8&2lpO%x^T5KkHVc6wT~^*wwak`+S}j%JT38SY8G zXi>>Y9Ef~tv~g9-IJ#++Ul!=vVP}LN7t|JlG!CCs5X`=HvfQ;k-dV{i-LxG`Q_>uT zi7bfJw64lydP0*`Gix|nIk1U>Drh(w5C%T1Y$rkC3Obqw7O0n19a(q4k(Qm&)Jhfw zf(vK!lP{$Y#RwN5mz3N!(fuB0!4Ic@H)n9YHP z;i!p%qDnSJlCK;k3@Pg9m|`V>N{j>minS|Q?~5YB3jxmbEpxpT7;(O(s%ehunyj00 zGHa+fS?mD$K8zFEPWD^aa0!q53?eI`@&O}(YoQxxa8$KCjJ_?vbph)&BcUt&T2p+w%a;Lyd{I@t z9^$aF!2rzUBS653Ng9s>TL%)JOb0=6B{&83H$HuBec0B5oQ#7T`>w<}J^`{^Rzxw7 zUac$}%^8Xg_iWaiM6q@)&D=G`r&`c@YOb>FU&O{|k$d-(yQASG0 zW`=)sF|3xB9J6TCRgS^5aVKVEq4Gns0J+tZun(@OdaJ~p2wF9 zCLZc+Cp%4CIW%znUoaFPX8+RbSr*U|Hx)|3|RYOtx(6 z=sSmaQXL;xhICmsbVv5gD&u(4mPc*4UeXd#FCR;?f)gdsVFlh)kmYVTS!2LKq;8Z* zEkjO30&t`n9l>*h6@_~@i+}6J*KN0w;&OlwFkB;b-j!xvB3!ERX@V>P=R{$gsB{kH zkn#aQ<$)W@1r=H34hzIrQN>b8^Hc&YS(-BORkE2KN>!X|@N`i*!*E#XN(xZ1Sul zo1=VgCeplX;1UlNOQOl(l??vOPbO+D1@8v9wvZ!9RD*je(l}WSg%D`60#{JJ4?dFK zW^`iqi-YXsbfDc1zRBSM1pZZ{bQ+x`;_e(CkRSBEcv7P9tR|Cp z30%#{JDf7}33V;K>rQ8#$_a_F){P{OqkVqEeHv|sgB<5u>~aMs@O+DiqWGN)?)$i= zk^z#7+2k|6^wz~Iz$Kwqtendh?mY;fEQl3uxqz!gxD=Pux)DuG7z(`Z;3{8y4F6pM zd(B8^%u0fYd+-ZEUTF)=YPe`4FDB%)G7i;1A2w)tD#`I;l`*OrMd$Z%1QMFTf!FxO z0^OD>X+W5hm~Y^d;Sx#88Zb#n%r!%bW$E~~6JO}? zzeP1Q5rl-Sm~99NyHK_P!B6h8!L{!{d|;aLsX#tH(?x%u$PP%aLmPWH zuOERwC3;ayd?HLITe2BHzQWKJ4I+8XHqa7fH z1XDB@hJ;aME+qP`9hkZ1^v8F<=&Jj4yiPos{Q2ul-Q8wN0rCZ*Mjiz_1Je(A)rKOG z1+J3pOP`WRNJf%9At8y9J@_!>9+JJ~wYYfx-Urwrg~-$1va8Z_JJv1HqSldZ1T>RPJh;YDgO+h5V+j*+)6)!+!~PEEA~nuVFT)wh}_Yp zQ>iDvx8ze-u2#GKU|Y-5#}xyDg{L@p4xtv*fnAmN4+N@2F59i>n1!#=B@CdnTd{Nn zIzeefG2m(lUMmpC&d6_c9gE@6hk%}$i={Fy-V)wY9TK*L2ScFBlw8|D(;o4_%h#ja zz~e70`{JtZ!#f_+E>bY0{8d=pU`O+O;O&D4N+-(ed@#diV`q`+DfFRKe?1JN59tUORN5)id|t3-l9bIeFyoruqaP#2`36! zQGN0!gSY#Xh=+a1AYunb4(1zN!V%fQg)GK#hF?PonT^eC3a2(=C2%%M<4?^?8 z^T6fv!t<%iuQ>mQhId}yaRKGdp80K8Dw&LVE}!|-+uz!Md*Z{AWF|D>=CZ`_q`Ayk zLWs|fFBOI3>?!;26z`baf$7q;eNRkzD7WU&)u*nx>xWBGZpq09f7*Zf-)EPcNJCe~ z^EQwRAqduX3cK;e6k$cVGt=fC~_=kLVVhf5~n*R#ix}eAxBv|nZ7{DP3 z1IWA}a%bQwjn60~b6<%rjNE#$eo;tRgzBNeQ^W3TlK{(+?5&OuABA?<2wSNAJ zFA6V$fLau;rvbJ6zKv(vSO4t<@*M016l<6`Miew*VE-B*r(NM)Ab3|eO9f}dwaNKM z7kq~D0mDk#`3v7Yb#|^!-VxCT&*fr&FEgr5K;4K$s?qh@1f?HZoTB(5O;747X=sqp z7-{SX35}?+1ABrItNx>BKl%2FmJSwBe$n_94amOo${N%Q{~I+8XvVa0O@(n5{!mM3 zZfypJXhzM1A(%u)6otKo8ax}l~n zcH}QEyh2+|+X_*5nCR^LHPu^~8`$^i;;WWD`YW#|@Mu0?-g1v!wZHf9Q*{TKorT&F z%JTJ7?q^7ut3lUw;<~z!(2myCVFhyUMo;hQ6V~1A#_*|4bJ9<4{?k6bWH-h0ts46R zWJ|oL{@j|ZL2+;aG+AhH0kMkpg|1c1NKQ~Qa1d$+aN5J|5YFx4b=Z+pysii3LR&j`kdD6sbBasPWA2wN5kH0O%m|4HFUE<8ZU)H=Q zJ&hNCbMt=j?E*9gY6f~hGHaKDC9hzTcU0{ll6QzZ23*Ok#UlM;v0h~42CcCF=3m&HSvRYlq^>wrA$gy=|9dkXK41$#=NE18;ss_mR0dZiXt2OHvg138U)>hS$ z-L+!vR(Ch+qAS{L%r%J3hG;OG8Q&H3*ZClE5sP5NTIaTs-K}CP+s#s|;>lfeyU5-y zv5W0Z8^3??4(Yk)3SywUrh5a#z{`;XXTCOL?|lW&R@SV<&sc|3$xBOSEg?WH5tlG8 zv0^s~nC&W??6yUF(1rPE-ML@9f94yF1xiI~BAY;|Q@0&G6aT@5Hw&KasM)axST(YI}5=Vp0rZ+CZZk9-|$Yne~~5=SbtYe^?aNPGuJsVEYxMx&Z29`#aa-CJ31eZ>+v&Y5d zng{Mb^5{*|cFOQ)FS|8wIHf@Z3PwE3cnc(K)9Tr)SB3EJHLgvp<1L{?+?T<`Tb$X1 z5gX%}ZsN`HHQ2zo7+;fP-8MCp&DdoO^|+Jzh^w?Ygvk`NjQTIQ`Fp=u6k6H$wEWVLRC7 TYnL+TrmND#=CqjJM4kH|gFg*; diff --git a/.ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@bits@sched.h b/.ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@bits@sched.h deleted file mode 100644 index 302a5ee..0000000 --- a/.ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@bits@sched.h +++ /dev/null @@ -1,104 +0,0 @@ -/* Definitions of constants and data structure for POSIX 1003.1b-1993 - scheduling interface. - Copyright (C) 1996-2023 Free Software Foundation, Inc. - This file is part of the GNU C Library. - - The GNU C Library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - The GNU C Library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with the GNU C Library; if not, see - . */ - -#ifndef _BITS_SCHED_H -#define _BITS_SCHED_H 1 - -#ifndef _SCHED_H -# error "Never include directly; use instead." -#endif - -/* Scheduling algorithms. */ -#define SCHED_OTHER 0 -#define SCHED_FIFO 1 -#define SCHED_RR 2 -#ifdef __USE_GNU -# define SCHED_BATCH 3 -# define SCHED_ISO 4 -# define SCHED_IDLE 5 -# define SCHED_DEADLINE 6 - -# define SCHED_RESET_ON_FORK 0x40000000 -#endif - -#ifdef __USE_GNU -/* Cloning flags. */ -# define CSIGNAL 0x000000ff /* Signal mask to be sent at exit. */ -# define CLONE_VM 0x00000100 /* Set if VM shared between processes. */ -# define CLONE_FS 0x00000200 /* Set if fs info shared between processes. */ -# define CLONE_FILES 0x00000400 /* Set if open files shared between processes. */ -# define CLONE_SIGHAND 0x00000800 /* Set if signal handlers shared. */ -# define CLONE_PIDFD 0x00001000 /* Set if a pidfd should be placed - in parent. */ -# define CLONE_PTRACE 0x00002000 /* Set if tracing continues on the child. */ -# define CLONE_VFORK 0x00004000 /* Set if the parent wants the child to - wake it up on mm_release. */ -# define CLONE_PARENT 0x00008000 /* Set if we want to have the same - parent as the cloner. */ -# define CLONE_THREAD 0x00010000 /* Set to add to same thread group. */ -# define CLONE_NEWNS 0x00020000 /* Set to create new namespace. */ -# define CLONE_SYSVSEM 0x00040000 /* Set to shared SVID SEM_UNDO semantics. */ -# define CLONE_SETTLS 0x00080000 /* Set TLS info. */ -# define CLONE_PARENT_SETTID 0x00100000 /* Store TID in userlevel buffer - before MM copy. */ -# define CLONE_CHILD_CLEARTID 0x00200000 /* Register exit futex and memory - location to clear. */ -# define CLONE_DETACHED 0x00400000 /* Create clone detached. */ -# define CLONE_UNTRACED 0x00800000 /* Set if the tracing process can't - force CLONE_PTRACE on this clone. */ -# define CLONE_CHILD_SETTID 0x01000000 /* Store TID in userlevel buffer in - the child. */ -# define CLONE_NEWCGROUP 0x02000000 /* New cgroup namespace. */ -# define CLONE_NEWUTS 0x04000000 /* New utsname group. */ -# define CLONE_NEWIPC 0x08000000 /* New ipcs. */ -# define CLONE_NEWUSER 0x10000000 /* New user namespace. */ -# define CLONE_NEWPID 0x20000000 /* New pid namespace. */ -# define CLONE_NEWNET 0x40000000 /* New network namespace. */ -# define CLONE_IO 0x80000000 /* Clone I/O context. */ - -/* cloning flags intersect with CSIGNAL so can be used only with unshare and - clone3 syscalls. */ -#define CLONE_NEWTIME 0x00000080 /* New time namespace */ -#endif - -#include - -__BEGIN_DECLS - -#ifdef __USE_GNU -/* Clone current process. */ -extern int clone (int (*__fn) (void *__arg), void *__child_stack, - int __flags, void *__arg, ...) __THROW; - -/* Unshare the specified resources. */ -extern int unshare (int __flags) __THROW; - -/* Get index of currently used CPU. */ -extern int sched_getcpu (void) __THROW; - -/* Get currently used CPU and NUMA node. */ -extern int getcpu (unsigned int *, unsigned int *) __THROW; - -/* Switch process to namespace of type NSTYPE indicated by FD. */ -extern int setns (int __fd, int __nstype) __THROW; -#endif - -__END_DECLS - -#endif /* bits/sched.h */ diff --git a/.ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@bits@sched.h.blob b/.ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@bits@sched.h.blob deleted file mode 100644 index bc52797d566be0e2bbdf2e579a14a082cde4cd4c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 11595 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 diff --git a/.ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@bits@select.h b/.ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@bits@select.h deleted file mode 100644 index 061d67f..0000000 --- a/.ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@bits@select.h +++ /dev/null @@ -1,37 +0,0 @@ -/* Copyright (C) 1997-2023 Free Software Foundation, Inc. - This file is part of the GNU C Library. - - The GNU C Library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - The GNU C Library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with the GNU C Library; if not, see - . */ - -#ifndef _SYS_SELECT_H -# error "Never use directly; include instead." -#endif - - -/* We don't use `memset' because this would require a prototype and - the array isn't too big. */ -#define __FD_ZERO(s) \ - do { \ - unsigned int __i; \ - fd_set *__arr = (s); \ - for (__i = 0; __i < sizeof (fd_set) / sizeof (__fd_mask); ++__i) \ - __FDS_BITS (__arr)[__i] = 0; \ - } while (0) -#define __FD_SET(d, s) \ - ((void) (__FDS_BITS (s)[__FD_ELT(d)] |= __FD_MASK(d))) -#define __FD_CLR(d, s) \ - ((void) (__FDS_BITS (s)[__FD_ELT(d)] &= ~__FD_MASK(d))) -#define __FD_ISSET(d, s) \ - ((__FDS_BITS (s)[__FD_ELT (d)] & __FD_MASK (d)) != 0) diff --git a/.ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@bits@select.h.blob b/.ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@bits@select.h.blob deleted file mode 100644 index 70e9b8505840a193ab36ce89a33e54b0a6614ac1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8145 zcmbVROK%)S5FQ645aM7Shlm5&JQUf4@x&q+E*9cpP(&gm+b1Au_4f4cHlD{a-Q!(H zz$Mq5K|(q42O>Cdj})Q&1Gw-55E5KD#Z*_%?)J`f&unstrR-K$ef8+Cs(RlD9{+mh z-lJeGh(>wJBXv7sdCa4sQ2O7f>_<1L;^97Lql_0(3jf(+<8kl|OK3KH(o^9iFOEbu z3}aDnrt;!scQw1g&rvChNMtN20Uo<@CE9*#YkO-u>I)^Kl&7F;Fp0ND!Q;E%-g~qx ztxm>Vf1_Pp{$`41((hkpi>%+j0j2lQbCG|a*9%!hC>c@ zAXtRq(o(evxUMHa><8BGOqD#jy&B&RA1S)QhO<`^v^0)J9T;CQ zIlAH!UuG;hLO#BJW3S6AkxK;$N_{q=xFK0&B4SQhUS^871see}KzQV-94l5*#U@-n z)20>yUda>@3KCh!F?Sb^rPmu=ka6GFMD!!1v1t44t*cw_%;^On#(bbdczE>Fa&cP* zA?98e0CZOdFlA|e+(`gl$8^<%0F;&q-q%L;*kIurPG}JW`(!Z$w5!^XN<7K5iml3$ zx8f{Omgh%;6OofanK6A?q({F6JLdgz7~x+hVoMZFNtHmkW(Jn?goTKZ!8rGU07{J* z1hAQ7L(Wadrlxi$L*CPei7=ee*&F zw+wAL5txjz5y!UO;BhM^C<)CH7zt7f1H_hMtUZj@5#TzHJkMf5-Myx6z2ZxcBCD#} zTc|E82@Yr`#}2uo^SZDFknk!)hlwl3$u|;Nc%>Lh?n|;RZk@YEax4Xew5q5Fa^5Rj ztGSvVoVI7m`&LY;JZf=9*$H;fdMeC#$|4{N~( zlfn#LZ4AbzD#}Xe{BYw9X=*@iCk!A}w27n4YIh!{e1|<$Fq@UT2Qt`pV($=IkIbwq z(u9nt969}k!9?UMr3ST`tLD^Xc~bRosfn13X+hJKEWj2>tfuC)Quh&h+tql!X? z5@E2!bT*=5!PMzA6PO;ek71F}bG$Rw)+sCO1QsrsOFNHvQ*0hiLF)gt)ru52Q$g0Q`#3qWI~a-TP=ylu{@OU zyu{;hejgjR!ciqKVR>IFP`oOqVgek5eWRhZg`7|Wa3l*y@Uq5>5Z=}b_d}f<+c8a? z9AE`Z_ekM-1zl)_M>RK1pa>)xe95)aCmBj7Dba> zzdq+>Kk3|S^mfsG!*p2*nm|+vk_hQ~60+ip7^;Q<6{#0=XC>B;=xu~1!+h3`I`1za z(W^%5x(fbHyAo9eO^*=1U9yf8Rjj+z4PNn%@g=J!RZT{ z#Hxn$bkaCVLn8#5?BEK+_kNS+HQV`p-A$d`+4Qdu%#+*pKuHU1UX2Gz^k4$dOoN0D z-50fPzf>ZrR=&CE*)J`qZmAa%0y8Or9hNAH5E^NmL(sn^l&fJd(~N$pu>&we0r_L0 z*)~^fgKvucS)vVg!FHa3aH>bz1fhj73HJX{ov|oQ}1~1}+Y^@}}o7Gwk{j zX9-taU=`LZu9gr2)xW9exz6b-E{M*Ut$w4MuPXBf+bF#{xQY#`cMdlhpci&KaN@0N zcKg|KW{&_-uX2GJLjV_c#~vX3uBdSl{g# zU$lK~URyrDe!h1G{$405%XdF{?#@5o|M4DLHa;&~hR>eV@;AE+$7hDmt)BzK=hl1U p%J84@Z~y*q|Di;~pYQE|20p*M#v!U{{x;Q0%`yN diff --git a/.ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@bits@setjmp.h b/.ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@bits@setjmp.h deleted file mode 100644 index 353ba1d..0000000 --- a/.ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@bits@setjmp.h +++ /dev/null @@ -1,40 +0,0 @@ -/* Copyright (C) 2001-2023 Free Software Foundation, Inc. - This file is part of the GNU C Library. - - The GNU C Library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - The GNU C Library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with the GNU C Library; if not, see - . */ - -/* Define the machine-dependent type `jmp_buf'. x86-64 version. */ -#ifndef _BITS_SETJMP_H -#define _BITS_SETJMP_H 1 - -#if !defined _SETJMP_H && !defined _PTHREAD_H -# error "Never include directly; use instead." -#endif - -#include - -#ifndef _ASM - -# if __WORDSIZE == 64 -typedef long int __jmp_buf[8]; -# elif defined __x86_64__ -__extension__ typedef long long int __jmp_buf[8]; -# else -typedef int __jmp_buf[6]; -# endif - -#endif - -#endif /* bits/setjmp.h */ diff --git a/.ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@bits@setjmp.h.blob b/.ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@bits@setjmp.h.blob deleted file mode 100644 index 73405f5ee8deecacd2709487b8cf48a085a1ba9c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7915 zcmbVR&5ImG6z^FNf{2JggkaVsIS3}b?I!CQ1Vx015d&g!6Dew{Yi7#nFT1OEW&@st zob(@%;K92GJ@_X`4&p_;_#b%j;90W1det*i)BUP@Odt!(zIye0AN6}5{aWz&=dT_< z3PwRR%TpQY`;o|F8BLWo|7Z0$y2G^$KapaV$udgemqSq$!BZmP+4TRO3Kw}fSJ^a- zRVjte%d@w4yEphTs;e?mnMi7YC$3(Nj&2+t9UetvrK>2FDd?Ik;=@_+`0FnpKH8Sn zXN5F>F{W<+Wur&PvdnVo^hO5n%H)FaB*_H_{PcaB6U&Awa`py2xM6ml1>~)uh+RCL%-KVjU%M7=;)2Z*AL%Z(+fb1<;1w~-u(OR*a>v#`h$4kE@TMeYLulo|>-8O=2q`;a!>z>sR!XuO)KuR%%*FUyx05o7i=N<0xRPS4G>A>sr~H z%}xJ6-o0vPLWAz)n3QSXT0*xf85crUH21X+xDLlY4QY!$Yl4bZYX}M?FVx&|Jt1<} z@hDbO6%Ri=JkvA=6E38t@mbY=XW`##c&Mbh zd@z*s3?mK#0p5d_j|i(H1PJ>D5E`@?rr~GcGBGDD-}skwrkMjPU5~5K!(VFw^0))o za0Sc-JAhsjFA3OD*?2!@d_4H5%|ji^f|WjSeuzWfkWJoxVl|b(yCRLin>HOsr)qTu z*l;z0(^IU!M{?ZdpQIciLAR#z}unWZqlnLWGN3CM+|4jD-KK( zPTOIbHu@9>1=FXKzIIMIZf7u1LEkxe#2aF}7*QGQOP+i(0&D<(qNXHrglk#6;XXY` zd9VdAC;Fe6*C;zp;b6kE-Xe`%w;fDQj(2PTO8G?%`?QM9Air!sIhb8*GGK+KR}by@ z;tbtaU7Z8KqR@Fhp|eC$_qK-4Js3%`T=KDEDpQ)R&FTp}w%uU`>mwP5>-X4s6-1Um z2j$&Fpm>u`q19s4>_R*;7Ae9U~?wR5O!xJy@;c+o$`d_0LNjb1}bXHxzPwq zGnyt)1cDR7xG;2&<&gdau=*ejeMyBv%`kwm3VA88IqJ9;MU&iYm-Bj@49+cPdKi9T zCan}tz$+z7R7I_P9RDJQrXWB@ngN{5#P$(0ZSZ88ugcNj`voLsl;|Bt!M^2Cpc6WmpIZw_>VYi;P-*tekMB^I~Nf)aHtV9hj1_>_LgZG5#>Ni*`% z(6(wNW1pu5gBg}-ju1LwUPCb766)PB*lx#cYA6Rmd_`!d%^f}7%-NpzVfVp1sWP(| z!*2y7GW@L5Gk@67+Ff>9>){7!e66wx#nDdOOrK_(VPD`J;f5=S#B+oYsQIR1`aaTB z91uyL?f&AsTa|SI?xbEDT*DU4o`WU}w8AYHB;K}W`t!i*W1}4#w-k9FChWrS+W|}Y z5(r&QGh1Og&(wi{u{0kP`|6-0-=tImv$~>NHZ^TrfHxkAHjm@izw#%(bu-IxvO!V9gbu-ux`Mc=3fG80}x)Ki(Vd z2m5aY=HI^~^KifE. */ - -#ifndef _BITS_STDINT_INTN_H -#define _BITS_STDINT_INTN_H 1 - -#include - -typedef __int8_t int8_t; -typedef __int16_t int16_t; -typedef __int32_t int32_t; -typedef __int64_t int64_t; - -#endif /* bits/stdint-intn.h */ diff --git a/.ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@bits@stdint-intn.h.blob b/.ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@bits@stdint-intn.h.blob deleted file mode 100644 index 97717f2f6879f0ea7b70558d45edf45ee9fd60b7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8322 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 diff --git a/.ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@bits@stdio_lim.h b/.ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@bits@stdio_lim.h deleted file mode 100644 index fc40677..0000000 --- a/.ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@bits@stdio_lim.h +++ /dev/null @@ -1,39 +0,0 @@ -/* Copyright (C) 1994-2023 Free Software Foundation, Inc. - This file is part of the GNU C Library. - - The GNU C Library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - The GNU C Library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with the GNU C Library; if not, see - . */ - -#ifndef _BITS_STDIO_LIM_H -#define _BITS_STDIO_LIM_H 1 - -#ifndef _STDIO_H -# error "Never include directly; use instead." -#endif - -#define L_tmpnam 20 -#define TMP_MAX 238328 -#define FILENAME_MAX 4096 - -#ifdef __USE_POSIX -# define L_ctermid 9 -# if !defined __USE_XOPEN2K || defined __USE_GNU -# define L_cuserid 9 -# endif -#endif - -#undef FOPEN_MAX -#define FOPEN_MAX 16 - -#endif /* bits/stdio_lim.h */ diff --git a/.ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@bits@stdio_lim.h.blob b/.ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@bits@stdio_lim.h.blob deleted file mode 100644 index 74fbc387e3a02e7e0b21f677c851e33e374ee5df..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8163 zcmbVR&5smC6rWuaO^hL%l^7sFHi(1(z0EGT!hr)s(2Xn*!9-7$n(CUFa{FWKuHM-t z%EhbE=+SWU;7Jod5)+Mo07nm+c#uE91D-r8`07>9Z0+=`?$N_`vOVv;`n`{OUwyLk z==%@u-S5nG!a9 z{=NHqsrAlKnqQ2ndwr@9(8z5ehgxN6GnqFU`d}@C zqZS8N7j%w^xY*|zhmNtU>({QdX{EA4gM$*^nGoFIEH+Y+WFjk5Et`yu00ki2^hAzh zt3pTCT)v}iECRezXr?qcGB1Xb4jf0W*SJ7K-`7}mLri1g%1g^<(g+ON7HybH zJkE52t@4sL;v7DO&19|qioe2!OwR0rR^r<;?tCDdcWI^Y?X$IHe*r#FIqIr!|v1+wJ zf#8Lj+bw%U>^c_3N~)svi-$Z_W6{TNrIhs^8yfBHF4SCL!nNENykU2$-JY`x( z$iy?vJcw>`S(+0c3?&W2h=V|Y^`PY=-0Bbk!e#=51}%nZ_!*c?Y?7Mq+Ltt@nF9-5 zc8kE1zpMqMekY*^l!*XRyrYoGB``P4pwuKWlL|Q^EAK>%cUv#LxyWr%GL{F<32+E( z)5+U!jHed3ccc<{(r!mmt7^3YHyBUo^pxxGp&WDhCoP8vkwG^)DI=}9ZcjTzCC9N@ zA+HA}x06;yBAXJSu|#*)tm42l?zA14X|uOrkT88bX={heF*}2S3;NPl7O#u#;zXse zPx=3o6JP`QJ=G_XBV3#1tK6ttQzC2$3`g@d^D1ShEgW2U+E~P~E4PEo+PN7Ugj~K` z!oICw1Bfr%Z?;C)BpI-wrdJcw{>2%)srot$kY%AW{h!7X!?Lk;bk0FfitTOQRZOKy zvx!;_j>on5~8T8DL z6Sa)tbHYrzK$U|W*pdirGAHGs3U*aZ{ywdP@!YtzHw-n;p}?Z9K+|@T=UBOF+ewr) zf*n&Y=6(8>PU9=JimQ2#hPI~=G6oGPg8`Olju2`-oIo%i63W>y*jC1@X($6hN)mw` zHD|PVHDr5&-!6k^5@iN4h93$@WcW>|Vfe7FwTtYe)a|#;*jlAMDgirwGfkN7bbXF< zh^s_E1fD~LK+Ojg)6|iw;&e#bZ1(G1U#U#0Yc2Gq!BwfCT5`~t0JU&y0f~27GW~5} z{H4*(jC%xmFD5L)@WTO1_%>u~)lY5ts9jSB0{YT?O>8Q14t*6;F%0U8?#qzEURv*3 zep+DFBK5Ld?DmJ9x&58zp6PU+di>k(55F9}_n>!;i4sbdiaMRn;tO{5vov|RbfMFk zJF@@C@p-B z@9K@4SFW>-OK-X7PF^mptii#@7LFaAH_tKi!Vj;W`sk~l|1?Ipere-M#eZOo+kL-u z?#u-vNH9{QJiI)vKk|v**vQo(JZG3kRQ{H_y`* z^Dp1Me)^}o54zWwPKNOD6VNY=xySF8R?h(IfrSH0^X7THVtw}F{EN}4yKl0~>$h*Q kTen|Xzrn7pZ?M-u#?i5i+K)>sAZu}9adqB2*Q~660XR4Xl>h($ diff --git a/.ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@bits@stdlib-float.h b/.ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@bits@stdlib-float.h deleted file mode 100644 index b16d0bb..0000000 --- a/.ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@bits@stdlib-float.h +++ /dev/null @@ -1,29 +0,0 @@ -/* Floating-point inline functions for stdlib.h. - Copyright (C) 2012-2023 Free Software Foundation, Inc. - This file is part of the GNU C Library. - - The GNU C Library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - The GNU C Library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with the GNU C Library; if not, see - . */ - -#ifndef _STDLIB_H -# error "Never use directly; include instead." -#endif - -#ifdef __USE_EXTERN_INLINES -__extern_inline double -__NTH (atof (const char *__nptr)) -{ - return strtod (__nptr, (char **) NULL); -} -#endif /* Optimizing and Inlining. */ diff --git a/.ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@bits@stdlib-float.h.blob b/.ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@bits@stdlib-float.h.blob deleted file mode 100644 index b8a6f15ba9c8dcb5e84bde3213bccc2df7de8bb4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7718 zcmbVRO|IlL5N=@03L#dUfKfU;F+A9?1PN)_AoiBqak@<>POzQV-6OGL%L&k|xWTaC z409DOF``^fr`<_8$;@J&H0pBstG}nL zUH%hyGW%JIgO(<*;Xhl^wwsSc#r6JOPi3dZ9F^W@g)&mO#$3KzckkwP-dU3?EvgRS ziD%F9hp)B|+lPFooXu-lgRb&aY!92afBydJ&Aqg{w9^0LO}+o+rbkF)bVHrK$>3dD zo*1vHMsUDS-*-E4{`QeQKF?Z_RZ4f~Y_Ge3Sa?iq$1MVzLcXaGC^`?!UaXTf0}~oU zNS2bj&PYr80FCl!Y|dD{vkpSc94X3eo$V#$ff6~o%S-+9-(UAmMTM<97|9C;>co-N zN@vAI^I8c~F&-(ahC7{!rmh>E7CWIovXeM)bpIr%!5~#jt6tJ!M~U6VNqgcgc~g{N z0&gO`8p+7BkgZdVo)=4I!ydflaZK_c*n+|F8CRtu6Uj05!;de%U$ROy)-Pds@^XML*lQQF54NR+&aUrCoxo>+<;jGhYmUL>+2y)}&JPtINYewFI}rdmGbfHR>uMgR zeBwS-aGjNx2Qt`pisTSF_RO^_@`@d}J&^XoV4|8;p+Rk-)JRQ{C4CRKo`_k?4X;<- z09zo7ni_e_*hXODRXY!&8;WI~_+TlSSw3*&01!Yh`s*eovTmpN;3Zn*MCJl;I_R%RA-z^rsFXVT~ zlH??D-AACJNO*|pHfv1!)ns+euDdtAzow_7$PwusDiT6uFlP=8Vv)t}1|5p_t^okX z&OB?AIe|kWXKux?7!SsO&vy~s9pI}As6FTYZ=v3r(2CEcIoQp@2Ar4O>O2bRZ z`|m`64d9n*Pa;RSfxmm!bBkmL`@cUiUqDHt!XAYy3D>jj8RzY=k~}_N+4_zAt%H{| z%MOrVVUk?TuA$6X>*z;^aeQ%mp6jd80pL%VIp5P+qU~mf!ss51q&T1XPBEpGV}n^U zfyaS6v+!^vi)^UJNmUS80<%-{4FbjcbTTL4AnXVetuy3=8lW|a>;P|O(q!;zX6Pq4 z8ru`ENDhb`=DVMw-ZyU=;kk^a2^4|gWUweK-4i%uJ^_M02*X@bp-{gDV5~B31dc@$ z*P>|E_;=-|+f|Dji{BfTE6k^r;uUzsuu56#u_y8`V(1$JWTaoc$xIv{@p}fZ_RX~& zE!Hm}@k_+)A`14Mmjcy0%?}5uEpd!h>8IvMb2Dli-h?L+8fyy0FtiMMo5x*QR`8*K zv<0uktcLI`(l|;(BLtdU;EKTa=_|uKHTnD4Ods6qT<;G|f*Wj@+Bo+#$qhEQ$7@|S@Atx$YXq+Q&qq0(a`RCC1Ws+GT2_3;|O6A<^h8LiqNgY5T+gfMngFW;w!SS zXRh>kzhNipBfJE!QsuWWhF=LtWcWd6X7dQ44X@aB=avi7`&#Le;^-)DeohO+a4K+- zaL*M);zdFT)PGI!b029cu7;$~)>r)WJ!NRXlhhl7>)E1z;h@O^t%%zNiFd4-{xER; z%orBNJ4MODgjX>9YQSoK20~YR9XiaUOd|*wOaCcxt`A1?eM(iZr7L=LLy1td$v642 b!hVV>8zXKbXo6Y8bKvs=v diff --git a/.ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@bits@struct_mutex.h b/.ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@bits@struct_mutex.h deleted file mode 100644 index ac1ff8d..0000000 --- a/.ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@bits@struct_mutex.h +++ /dev/null @@ -1,63 +0,0 @@ -/* x86 internal mutex struct definitions. - Copyright (C) 2019-2023 Free Software Foundation, Inc. - This file is part of the GNU C Library. - - The GNU C Library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - The GNU C Library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with the GNU C Library; if not, see - . */ - -#ifndef _THREAD_MUTEX_INTERNAL_H -#define _THREAD_MUTEX_INTERNAL_H 1 - -struct __pthread_mutex_s -{ - int __lock; - unsigned int __count; - int __owner; -#ifdef __x86_64__ - unsigned int __nusers; -#endif - /* KIND must stay at this position in the structure to maintain - binary compatibility with static initializers. */ - int __kind; -#ifdef __x86_64__ - short __spins; - short __elision; - __pthread_list_t __list; -# define __PTHREAD_MUTEX_HAVE_PREV 1 -#else - unsigned int __nusers; - __extension__ union - { - struct - { - short __espins; - short __eelision; -# define __spins __elision_data.__espins -# define __elision __elision_data.__eelision - } __elision_data; - __pthread_slist_t __list; - }; -# define __PTHREAD_MUTEX_HAVE_PREV 0 -#endif -}; - -#ifdef __x86_64__ -# define __PTHREAD_MUTEX_INITIALIZER(__kind) \ - 0, 0, 0, 0, __kind, 0, 0, { 0, 0 } -#else -# define __PTHREAD_MUTEX_INITIALIZER(__kind) \ - 0, 0, 0, __kind, 0, { { 0, 0 } } -#endif - -#endif diff --git a/.ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@bits@struct_mutex.h.blob b/.ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@bits@struct_mutex.h.blob deleted file mode 100644 index d415dcefb974b3f4114fd26f64eed8361b5f8d2c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 9112 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. */ - -#ifndef _RWLOCK_INTERNAL_H -#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; -#ifdef __x86_64__ - int __cur_writer; - int __shared; - signed char __rwelision; -# ifdef __ILP32__ - unsigned char __pad1[3]; -# define __PTHREAD_RWLOCK_ELISION_EXTRA 0, { 0, 0, 0 } -# else - unsigned char __pad1[7]; -# define __PTHREAD_RWLOCK_ELISION_EXTRA 0, { 0, 0, 0, 0, 0, 0, 0 } -# endif - unsigned long int __pad2; - /* FLAGS must stay at this position in the structure to maintain - binary compatibility. */ - unsigned int __flags; -#else /* __x86_64__ */ - /* FLAGS must stay at this position in the structure to maintain - binary compatibility. */ - unsigned char __flags; - unsigned char __shared; - signed char __rwelision; - unsigned char __pad2; - int __cur_writer; -#endif -}; - -#ifdef __x86_64__ -# define __PTHREAD_RWLOCK_INITIALIZER(__flags) \ - 0, 0, 0, 0, 0, 0, 0, 0, __PTHREAD_RWLOCK_ELISION_EXTRA, 0, __flags -#else -# define __PTHREAD_RWLOCK_INITIALIZER(__flags) \ - 0, 0, 0, 0, 0, 0, __flags, 0, 0, 0, 0 -#endif - -#endif diff --git a/.ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@bits@struct_rwlock.h.blob b/.ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@bits@struct_rwlock.h.blob deleted file mode 100644 index 99b9e579ac04112d2a2263980e79e0c816b71ddd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 9524 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 HoSXjviDB5z diff --git a/.ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@bits@thread-shared-types.h b/.ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@bits@thread-shared-types.h deleted file mode 100644 index 2de6ff9..0000000 --- a/.ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@bits@thread-shared-types.h +++ /dev/null @@ -1,115 +0,0 @@ -/* Common threading primitives definitions for both POSIX and C11. - Copyright (C) 2017-2023 Free Software Foundation, Inc. - This file is part of the GNU C Library. - - The GNU C Library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - The GNU C Library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with the GNU C Library; if not, see - . */ - -#ifndef _THREAD_SHARED_TYPES_H -#define _THREAD_SHARED_TYPES_H 1 - -/* Arch-specific definitions. Each architecture must define the following - macros to define the expected sizes of pthread data types: - - __SIZEOF_PTHREAD_ATTR_T - size of pthread_attr_t. - __SIZEOF_PTHREAD_MUTEX_T - size of pthread_mutex_t. - __SIZEOF_PTHREAD_MUTEXATTR_T - size of pthread_mutexattr_t. - __SIZEOF_PTHREAD_COND_T - size of pthread_cond_t. - __SIZEOF_PTHREAD_CONDATTR_T - size of pthread_condattr_t. - __SIZEOF_PTHREAD_RWLOCK_T - size of pthread_rwlock_t. - __SIZEOF_PTHREAD_RWLOCKATTR_T - size of pthread_rwlockattr_t. - __SIZEOF_PTHREAD_BARRIER_T - size of pthread_barrier_t. - __SIZEOF_PTHREAD_BARRIERATTR_T - size of pthread_barrierattr_t. - - The additional macro defines any constraint for the lock alignment - inside the thread structures: - - __LOCK_ALIGNMENT - for internal lock/futex usage. - - Same idea but for the once locking primitive: - - __ONCE_ALIGNMENT - for pthread_once_t/once_flag definition. */ - -#include - -#include - - -/* Common definition of pthread_mutex_t. */ - -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; - -/* Arch-specific mutex definitions. A generic implementation is provided - by sysdeps/nptl/bits/struct_mutex.h. If required, an architecture - can override it by defining: - - 1. struct __pthread_mutex_s (used on both pthread_mutex_t and mtx_t - definition). It should contains at least the internal members - defined in the generic version. - - 2. __LOCK_ALIGNMENT for any extra attribute for internal lock used with - atomic operations. - - 3. The macro __PTHREAD_MUTEX_INITIALIZER used for static initialization. - It should initialize the mutex internal flag. */ - -#include - -/* Arch-sepecific read-write lock definitions. A generic implementation is - provided by struct_rwlock.h. If required, an architecture can override it - by defining: - - 1. struct __pthread_rwlock_arch_t (used on pthread_rwlock_t definition). - It should contain at least the internal members defined in the - generic version. - - 2. The macro __PTHREAD_RWLOCK_INITIALIZER used for static initialization. - It should initialize the rwlock internal type. */ - -#include - - -/* Common definition of pthread_cond_t. */ - -struct __pthread_cond_s -{ - __atomic_wide_counter __wseq; - __atomic_wide_counter __g1_start; - unsigned int __g_refs[2] __LOCK_ALIGNMENT; - unsigned int __g_size[2]; - unsigned int __g1_orig_size; - unsigned int __wrefs; - unsigned int __g_signals[2]; -}; - -typedef unsigned int __tss_t; -typedef unsigned long int __thrd_t; - -typedef struct -{ - int __data __ONCE_ALIGNMENT; -} __once_flag; - -#define __ONCE_FLAG_INIT { 0 } - -#endif /* _THREAD_SHARED_TYPES_H */ diff --git a/.ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@bits@thread-shared-types.h.blob b/.ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@bits@thread-shared-types.h.blob deleted file mode 100644 index 5d452ceb3f86fca2efdb5ce054771fb99a92f6b1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 10180 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 diff --git a/.ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@bits@time.h b/.ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@bits@time.h deleted file mode 100644 index 1e6662a..0000000 --- a/.ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@bits@time.h +++ /dev/null @@ -1,93 +0,0 @@ -/* System-dependent timing definitions. Linux version. - Copyright (C) 1996-2023 Free Software Foundation, Inc. - This file is part of the GNU C Library. - - The GNU C Library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - The GNU C Library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with the GNU C Library; if not, see - . */ - -/* - * Never include this file directly; use instead. - */ - -#ifndef _BITS_TIME_H -#define _BITS_TIME_H 1 - -#include - -/* ISO/IEC 9899:1999 7.23.1: Components of time - The macro `CLOCKS_PER_SEC' is an expression with type `clock_t' that is - the number per second of the value returned by the `clock' function. */ -/* CAE XSH, Issue 4, Version 2: - The value of CLOCKS_PER_SEC is required to be 1 million on all - XSI-conformant systems. */ -#define CLOCKS_PER_SEC ((__clock_t) 1000000) - -#if (!defined __STRICT_ANSI__ || defined __USE_POSIX) \ - && !defined __USE_XOPEN2K -/* Even though CLOCKS_PER_SEC has such a strange value CLK_TCK - presents the real value for clock ticks per second for the system. */ -extern long int __sysconf (int); -# define CLK_TCK ((__clock_t) __sysconf (2)) /* 2 is _SC_CLK_TCK */ -#endif - -#ifdef __USE_POSIX199309 -/* Identifier for system-wide realtime clock. */ -# define CLOCK_REALTIME 0 -/* Monotonic system-wide clock. */ -# define CLOCK_MONOTONIC 1 -/* High-resolution timer from the CPU. */ -# define CLOCK_PROCESS_CPUTIME_ID 2 -/* Thread-specific CPU-time clock. */ -# define CLOCK_THREAD_CPUTIME_ID 3 -/* Monotonic system-wide clock, not adjusted for frequency scaling. */ -# define CLOCK_MONOTONIC_RAW 4 -/* Identifier for system-wide realtime clock, updated only on ticks. */ -# define CLOCK_REALTIME_COARSE 5 -/* Monotonic system-wide clock, updated only on ticks. */ -# define CLOCK_MONOTONIC_COARSE 6 -/* Monotonic system-wide clock that includes time spent in suspension. */ -# define CLOCK_BOOTTIME 7 -/* Like CLOCK_REALTIME but also wakes suspended system. */ -# define CLOCK_REALTIME_ALARM 8 -/* Like CLOCK_BOOTTIME but also wakes suspended system. */ -# define CLOCK_BOOTTIME_ALARM 9 -/* Like CLOCK_REALTIME but in International Atomic Time. */ -# define CLOCK_TAI 11 - -/* Flag to indicate time is absolute. */ -# define TIMER_ABSTIME 1 -#endif - -#ifdef __USE_GNU -# include - -__BEGIN_DECLS - -/* Tune a POSIX clock. */ -extern int clock_adjtime (__clockid_t __clock_id, struct timex *__utx) __THROW __nonnull((2)); - -#ifdef __USE_TIME_BITS64 -# if defined(__REDIRECT_NTH) -extern int __REDIRECT_NTH (clock_adjtime, (__clockid_t __clock_id, - struct timex *__utx), - __clock_adjtime64) __nonnull((2)); -# else -# define clock_adjtime __clock_adjtime64 -# endif -#endif - -__END_DECLS -#endif /* use GNU */ - -#endif /* bits/time.h */ diff --git a/.ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@bits@time.h.blob b/.ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@bits@time.h.blob deleted file mode 100644 index baf8245bfbe5130fb33389de87f2406c259cf900..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 9410 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. */ - -#ifndef _BITS_TYPES_H -# error "Never include directly; use instead." -#endif - -#ifndef _BITS_TIME64_H -#define _BITS_TIME64_H 1 - -/* Define __TIME64_T_TYPE so that it is always a 64-bit type. */ - -#if __TIMESIZE == 64 -/* If we already have 64-bit time type then use it. */ -# define __TIME64_T_TYPE __TIME_T_TYPE -#else -/* Define a 64-bit time type alongsize the 32-bit one. */ -# define __TIME64_T_TYPE __SQUAD_TYPE -#endif - -#endif /* bits/time64.h */ diff --git a/.ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@bits@time64.h.blob b/.ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@bits@time64.h.blob deleted file mode 100644 index 4cd7141fccfb75643977337945f47587ff5bf280..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7907 zcmbVR&5ImG6z@$g26B)f(!Gp1{|rFBUb`H8bV*$JkZ9GaK;a z)q6zZMTDI7p#MV7;=!XJ9{eY=zIxTuQ``Njdy;@l%)WZ{dtblzUiF*Nv){gb{50B& zl0})z#5_zynaX6YjQwv>Pm}xH$oMlU7KN;m9R6n_mdog}$apb--c#|atWH!hk5g4i zVan?4{oU@3eo1OwC8`iv4e-RBJITS@lY_}YGF3(=xy(V=Y?V$H(X;QqdHnREv^iT! z`x|TO#oui82w7D{NuA!x;9Z4WF`i|m;DDdLZ+l|>-XS}@8!ttisiI!T^P+Z$g~i0C zTqCeP$R6XK3FKj6|YiYpCSc^j%6ECNg$YBvNcf(W}GJ~ z%JM`>rb;%e3t@{z2lRWeQ#q~Y3H~Gzd!l%iHW{RA;b4&`JVcDmmSqS8P--H;xuc|s z2|8{G^1Z1zv@0TOJUfEn2B?5X6^_S;g6+J6}uyvxwx{EB`GjYJ+^t>#*Wf^3u9#;z9}PXS|tD!Ptrd*xs@H}eB| z_hy`lExN2bv?DLq~oQOl}j2x_edpY ztICaDLp&zeCMjy@|4{diIxV1~6KKQIR72t@vs>lEtWVsB3N{n-_*e!zPZ}IWyPnzf zMxL<+*9+2Kh@>ia3Jq#=1xIS~ENMEqwsg#vyyE#zH^45)yw*nE(zOxzc&E(=(X}Nr zOn}TLIaY9LqLVT{9W8oW$j^}_!Fgh{l|V(2@DS5>;^=j)-U1tM zHgI~24bMoPBf^`MCxpmg+HBjzD2rVfcPQH11OOO2wyaI&017#>gTWC4)$@u6(+0{- zSays)g+;;6>7=i{Q=Z!yEL1Rejvfhy*gcG>0^Unrd@}-U0Dq?DByxo7_`6{}GfH;w z3SdtR7f{eBw@u+(- z5A{{=0PrVFo-gPuv8)G2L+>7pq*$-{R54X3!&#t!Cgr3#`azYI-qKS9`FK4of;q9!VAL3|ir#!P}_wMu@X1kxFUOBfK z;n9qy2^4|g#IP=m-Qzf9I02kK2*XfPp-{67V60+Z2^@=hW};|T+Slc>o@S$ai`^c^ zE6k>q;u(0QVwuv^laJ?L#LzSZ$Vj_@lbP5(Vz&*R&C5+Y8m(VIVpoa5brkGdj|Hl6 znjH>8yJ8osDo)E2nwwEu`!d{%P*;;HhPGwUJ3Vg9GK0?rq%C+QW;KLol*UmS8X?f+ z2v<114`1nCtI6MY&9uSY%=Pv_FSyQzzKuf`)_b5tT`PEInq_=W7jhS0ZB*7Q zdo(oHl^Swm45m>AJ1jFCA@suBLa^Tw>fJE7X~(|QP!59lirDR$J9@m?vjg?v-h+2i zWw$Vf-wH@%_*rLQ^KhYcZ`pZm#tYK=S`{;jqrJG. */ - -#include - -#if defined __x86_64__ && defined __ILP32__ -/* For x32, time is 64-bit even though word size is 32-bit. */ -# define __TIMESIZE 64 -#else -/* For others, time size is word size. */ -# define __TIMESIZE __WORDSIZE -#endif diff --git a/.ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@bits@timesize.h.blob b/.ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@bits@timesize.h.blob deleted file mode 100644 index 2cd364158273816a6c486ac43e832ad74d28ee6d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7819 zcmbVRPp=y_5YK}X98o1yaX|ucpxP`?lm`d6@hVlKLMoMzxLA(YNlbRVi|u{MtHg;b zcM$4{ZvY2ALq7l?fGc03Wjx*_&hB_O^w3Ie#^c}o`^}8^!`X|!etPzNb}`G>btQB6 zG#7Ot^ObV`&$?aYkGPZBV=2~Jn!JL4%th18UKb_TtN(i{+ty~I^eQWqk;2vH_KWlG zo&Axw*5pcyvIThJ-o54v>)DH+e|+}*RNCD((*NR3J^kgV zM@VCIO`Sf<;9Xj7886FPaKKOBcRaEC?2298&l-`HO1HagrQ3j5cuZ`;Edm=tKB^EX zIu6XebLE|!e-3Vh*l45A#l-se-9@_Qu5*n@{(T~Ar1YU{xLRq9Si zT?hr+szNeRx7x`OSBBgWfN+z@i^x~j6~SGptAjRx*9ym!Q#Ud)Qv6#pC?TK&{Gk>kX7}~WO*kI^I4MtP~MhU zjf3oo!9tO3xha5KbO8>X$~Gj5L@=Xd>!Os*xJXpg^+rjiYPM{(@Wo;i`XktdT(qkk z|0WSfqIi{cC8Vnku*ee;BF2_YodN-bnG104Bqd^kPFsR(?hJ=!L}X25M>5<174Rq> zSb8kj!E4-FY0%H4BPQrERN+=>H*H%IGME);i$oA2Ce{+0@_?lypP(ePLSQ5aEsO_q zC&aiLqa(m|33;gt#pzDczrEwjgrX>`#v7zhD+>mACddAFrtvOr!%F7SUEL>T`nMXGMJ3}xNK12H z|3K_;oWhW{=(9ekST9phAbFwZF4`rLyOBq+ld596@bFAG7%aJvj>Z>Mr=5krw@~Uj zgMP1_a<@~K;E~42z(@tF8~WsaO;Vf zHQey(tQ%m*V^LEhZ|U0zOnlZxgXj*$GERK3a*V7R5ds0;gOQI2Ya|2+#|01?j2M34 zXW%liAuT`pmvpAz@~mqYHcRkV@PKsRSM-8%P(Z4W4Dwt8d&3z<9f+AUC{o!)r(k?B zS@gb;r?OyN!eEKv9C#&y>BAW&Fh6GBz#`%2c+%I=smSdN z7A}}eCyyjU9G*p#hS!o;-<$v&z+b8ri5%eumhZUHO;RGf68ID2WtKE5Y+Java6Q_@ zyH^;$xLn;ob3icihZbJbEL%fW%ZL5#|}1CQt-|lfgPMbx+`s@dOC^ zAPi$kg+kr3fU(NB5jZ>zT#KS*?cbK`c2Uw(8488k_uIvEh558nyacZpRw_$92}S-z z^<6`NjPwgSnTh=)ejDNCs@}Jw$@&E(e$^OVSHZsBRG>Pi`4J+uOZKrUeN%5}Zbof~ zci};V`kF#999jmw^W#P>OZZqo+JaYNRzr9uX&j}Y5duw4a7Ezz^p)YQn*6G5t4Pt-?vFFs3^-_;m?OCXWqN1c)VB!o7+ zbyuyME=ccdrI!>(M{)CWS{Q~?fs2GYt{@UG5<;N_0Vzwemz!vM}MT48JX~itm8X)k=pBGbqyt0>;vR zP8{olk$jg@CG7Hw9^FtP6m9b5zOS&GqL#H0#}V@4{gaQSs5g4_xVSTW`_0+x;^jX# ze_y@xOZzKhPaZzH{^sF#*R$E|&U@kU=-uQ0zQNeHUqAjb2wdEK>+T1y`M*D(y}W<} F{{d_Ptb_mn diff --git a/.ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@bits@timex.h b/.ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@bits@timex.h deleted file mode 100644 index b5601ef..0000000 --- a/.ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@bits@timex.h +++ /dev/null @@ -1,141 +0,0 @@ -/* Copyright (C) 1995-2023 Free Software Foundation, Inc. - This file is part of the GNU C Library. - - The GNU C Library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - The GNU C Library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with the GNU C Library; if not, see - . */ - -#ifndef _BITS_TIMEX_H -#define _BITS_TIMEX_H 1 - -#include -#include - -/* These definitions from linux/timex.h as of 3.18. */ - -struct timex -{ -# if defined __USE_TIME_BITS64 || (__TIMESIZE == 64 && __WORDSIZE == 32) - unsigned int modes; /* mode selector */ - int :32; /* pad */ - long long offset; /* time offset (usec) */ - long long freq; /* frequency offset (scaled ppm) */ - long long maxerror; /* maximum error (usec) */ - long long esterror; /* estimated error (usec) */ - int status; /* clock command/status */ - int :32; /* pad */ - long long constant; /* pll time constant */ - long long precision; /* clock precision (usec) (read only) */ - long long tolerance; /* clock frequency tolerance (ppm) (ro) */ - struct timeval time; /* (read only, except for ADJ_SETOFFSET) */ - long long tick; /* (modified) usecs between clock ticks */ - long long ppsfreq; /* pps frequency (scaled ppm) (ro) */ - long long jitter; /* pps jitter (us) (ro) */ - int shift; /* interval duration (s) (shift) (ro) */ - int :32; /* pad */ - long long stabil; /* pps stability (scaled ppm) (ro) */ - long long jitcnt; /* jitter limit exceeded (ro) */ - long long calcnt; /* calibration intervals (ro) */ - long long errcnt; /* calibration errors (ro) */ - long long stbcnt; /* stability limit exceeded (ro) */ - - int tai; /* TAI offset (ro) */ - - int :32; int :32; int :32; int :32; - int :32; int :32; int :32; int :32; - int :32; int :32; int :32; -# else - unsigned int modes; /* mode selector */ - __syscall_slong_t offset; /* time offset (usec) */ - __syscall_slong_t freq; /* frequency offset (scaled ppm) */ - __syscall_slong_t maxerror; /* maximum error (usec) */ - __syscall_slong_t esterror; /* estimated error (usec) */ - int status; /* clock command/status */ - __syscall_slong_t constant; /* pll time constant */ - __syscall_slong_t precision; /* clock precision (usec) (ro) */ - __syscall_slong_t tolerance; /* clock frequency tolerance (ppm) (ro) */ - struct timeval time; /* (read only, except for ADJ_SETOFFSET) */ - __syscall_slong_t tick; /* (modified) usecs between clock ticks */ - __syscall_slong_t ppsfreq; /* pps frequency (scaled ppm) (ro) */ - __syscall_slong_t jitter; /* pps jitter (us) (ro) */ - int shift; /* interval duration (s) (shift) (ro) */ - __syscall_slong_t stabil; /* pps stability (scaled ppm) (ro) */ - __syscall_slong_t jitcnt; /* jitter limit exceeded (ro) */ - __syscall_slong_t calcnt; /* calibration intervals (ro) */ - __syscall_slong_t errcnt; /* calibration errors (ro) */ - __syscall_slong_t stbcnt; /* stability limit exceeded (ro) */ - - int tai; /* TAI offset (ro) */ - - /* ??? */ - int :32; int :32; int :32; int :32; - int :32; int :32; int :32; int :32; - int :32; int :32; int :32; -# endif -}; - -/* Mode codes (timex.mode) */ -#define ADJ_OFFSET 0x0001 /* time offset */ -#define ADJ_FREQUENCY 0x0002 /* frequency offset */ -#define ADJ_MAXERROR 0x0004 /* maximum time error */ -#define ADJ_ESTERROR 0x0008 /* estimated time error */ -#define ADJ_STATUS 0x0010 /* clock status */ -#define ADJ_TIMECONST 0x0020 /* pll time constant */ -#define ADJ_TAI 0x0080 /* set TAI offset */ -#define ADJ_SETOFFSET 0x0100 /* add 'time' to current time */ -#define ADJ_MICRO 0x1000 /* select microsecond resolution */ -#define ADJ_NANO 0x2000 /* select nanosecond resolution */ -#define ADJ_TICK 0x4000 /* tick value */ -#define ADJ_OFFSET_SINGLESHOT 0x8001 /* old-fashioned adjtime */ -#define ADJ_OFFSET_SS_READ 0xa001 /* read-only adjtime */ - -/* xntp 3.4 compatibility names */ -#define MOD_OFFSET ADJ_OFFSET -#define MOD_FREQUENCY ADJ_FREQUENCY -#define MOD_MAXERROR ADJ_MAXERROR -#define MOD_ESTERROR ADJ_ESTERROR -#define MOD_STATUS ADJ_STATUS -#define MOD_TIMECONST ADJ_TIMECONST -#define MOD_CLKB ADJ_TICK -#define MOD_CLKA ADJ_OFFSET_SINGLESHOT /* 0x8000 in original */ -#define MOD_TAI ADJ_TAI -#define MOD_MICRO ADJ_MICRO -#define MOD_NANO ADJ_NANO - - -/* Status codes (timex.status) */ -#define STA_PLL 0x0001 /* enable PLL updates (rw) */ -#define STA_PPSFREQ 0x0002 /* enable PPS freq discipline (rw) */ -#define STA_PPSTIME 0x0004 /* enable PPS time discipline (rw) */ -#define STA_FLL 0x0008 /* select frequency-lock mode (rw) */ - -#define STA_INS 0x0010 /* insert leap (rw) */ -#define STA_DEL 0x0020 /* delete leap (rw) */ -#define STA_UNSYNC 0x0040 /* clock unsynchronized (rw) */ -#define STA_FREQHOLD 0x0080 /* hold frequency (rw) */ - -#define STA_PPSSIGNAL 0x0100 /* PPS signal present (ro) */ -#define STA_PPSJITTER 0x0200 /* PPS signal jitter exceeded (ro) */ -#define STA_PPSWANDER 0x0400 /* PPS signal wander exceeded (ro) */ -#define STA_PPSERROR 0x0800 /* PPS signal calibration error (ro) */ - -#define STA_CLOCKERR 0x1000 /* clock hardware fault (ro) */ -#define STA_NANO 0x2000 /* resolution (0 = us, 1 = ns) (ro) */ -#define STA_MODE 0x4000 /* mode (0 = PLL, 1 = FLL) (ro) */ -#define STA_CLK 0x8000 /* clock source (0 = A, 1 = B) (ro) */ - -/* Read-only bits */ -#define STA_RONLY (STA_PPSSIGNAL | STA_PPSJITTER | STA_PPSWANDER \ - | STA_PPSERROR | STA_CLOCKERR | STA_NANO | STA_MODE | STA_CLK) - -#endif /* bits/timex.h */ diff --git a/.ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@bits@timex.h.blob b/.ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@bits@timex.h.blob deleted file mode 100644 index 71cf05b64de26e025e78493f78d39ce86e3507b2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 13427 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. */ - -/* - * Never include this file directly; use instead. - */ - -#ifndef _BITS_TYPES_H -#define _BITS_TYPES_H 1 - -#include -#include -#include - -/* Convenience types. */ -typedef unsigned char __u_char; -typedef unsigned short int __u_short; -typedef unsigned int __u_int; -typedef unsigned long int __u_long; - -/* Fixed-size types, underlying types depend on word size and compiler. */ -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; -#if __WORDSIZE == 64 -typedef signed long int __int64_t; -typedef unsigned long int __uint64_t; -#else -__extension__ typedef signed long long int __int64_t; -__extension__ typedef unsigned long long int __uint64_t; -#endif - -/* Smallest types with at least a given width. */ -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; - -/* quad_t is also 64 bits. */ -#if __WORDSIZE == 64 -typedef long int __quad_t; -typedef unsigned long int __u_quad_t; -#else -__extension__ typedef long long int __quad_t; -__extension__ typedef unsigned long long int __u_quad_t; -#endif - -/* Largest integral types. */ -#if __WORDSIZE == 64 -typedef long int __intmax_t; -typedef unsigned long int __uintmax_t; -#else -__extension__ typedef long long int __intmax_t; -__extension__ typedef unsigned long long int __uintmax_t; -#endif - - -/* The machine-dependent file defines __*_T_TYPE - macros for each of the OS types we define below. The definitions - of those macros must use the following macros for underlying types. - We define __S_TYPE and __U_TYPE for the signed and unsigned - variants of each of the following integer types on this machine. - - 16 -- "natural" 16-bit type (always short) - 32 -- "natural" 32-bit type (always int) - 64 -- "natural" 64-bit type (long or long long) - LONG32 -- 32-bit type, traditionally long - QUAD -- 64-bit type, traditionally long long - WORD -- natural type of __WORDSIZE bits (int or long) - LONGWORD -- type of __WORDSIZE bits, traditionally long - - We distinguish WORD/LONGWORD, 32/LONG32, and 64/QUAD so that the - conventional uses of `long' or `long long' type modifiers match the - types we define, even when a less-adorned type would be the same size. - This matters for (somewhat) portably writing printf/scanf formats for - these types, where using the appropriate l or ll format modifiers can - make the typedefs and the formats match up across all GNU platforms. If - we used `long' when it's 64 bits where `long long' is expected, then the - compiler would warn about the formats not matching the argument types, - and the programmer changing them to shut up the compiler would break the - program's portability. - - Here we assume what is presently the case in all the GCC configurations - we support: long long is always 64 bits, long is always word/address size, - and int is always 32 bits. */ - -#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 -#if __WORDSIZE == 32 -# define __SQUAD_TYPE __int64_t -# define __UQUAD_TYPE __uint64_t -# define __SWORD_TYPE int -# define __UWORD_TYPE unsigned int -# define __SLONG32_TYPE long int -# define __ULONG32_TYPE unsigned long int -# define __S64_TYPE __int64_t -# define __U64_TYPE __uint64_t -/* We want __extension__ before typedef's that use nonstandard base types - such as `long long' in C89 mode. */ -# define __STD_TYPE __extension__ typedef -#elif __WORDSIZE == 64 -# 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 -/* No need to mark the typedef with __extension__. */ -# define __STD_TYPE typedef -#else -# error -#endif -#include /* Defines __*_T_TYPE macros. */ -#include /* Defines __TIME*_T_TYPE macros. */ - - -__STD_TYPE __DEV_T_TYPE __dev_t; /* Type of device numbers. */ -__STD_TYPE __UID_T_TYPE __uid_t; /* Type of user identifications. */ -__STD_TYPE __GID_T_TYPE __gid_t; /* Type of group identifications. */ -__STD_TYPE __INO_T_TYPE __ino_t; /* Type of file serial numbers. */ -__STD_TYPE __INO64_T_TYPE __ino64_t; /* Type of file serial numbers (LFS).*/ -__STD_TYPE __MODE_T_TYPE __mode_t; /* Type of file attribute bitmasks. */ -__STD_TYPE __NLINK_T_TYPE __nlink_t; /* Type of file link counts. */ -__STD_TYPE __OFF_T_TYPE __off_t; /* Type of file sizes and offsets. */ -__STD_TYPE __OFF64_T_TYPE __off64_t; /* Type of file sizes and offsets (LFS). */ -__STD_TYPE __PID_T_TYPE __pid_t; /* Type of process identifications. */ -__STD_TYPE __FSID_T_TYPE __fsid_t; /* Type of file system IDs. */ -__STD_TYPE __CLOCK_T_TYPE __clock_t; /* Type of CPU usage counts. */ -__STD_TYPE __RLIM_T_TYPE __rlim_t; /* Type for resource measurement. */ -__STD_TYPE __RLIM64_T_TYPE __rlim64_t; /* Type for resource measurement (LFS). */ -__STD_TYPE __ID_T_TYPE __id_t; /* General type for IDs. */ -__STD_TYPE __TIME_T_TYPE __time_t; /* Seconds since the Epoch. */ -__STD_TYPE __USECONDS_T_TYPE __useconds_t; /* Count of microseconds. */ -__STD_TYPE __SUSECONDS_T_TYPE __suseconds_t; /* Signed count of microseconds. */ -__STD_TYPE __SUSECONDS64_T_TYPE __suseconds64_t; - -__STD_TYPE __DADDR_T_TYPE __daddr_t; /* The type of a disk address. */ -__STD_TYPE __KEY_T_TYPE __key_t; /* Type of an IPC key. */ - -/* Clock ID used in clock and timer functions. */ -__STD_TYPE __CLOCKID_T_TYPE __clockid_t; - -/* Timer ID returned by `timer_create'. */ -__STD_TYPE __TIMER_T_TYPE __timer_t; - -/* Type to represent block size. */ -__STD_TYPE __BLKSIZE_T_TYPE __blksize_t; - -/* Types from the Large File Support interface. */ - -/* Type to count number of disk blocks. */ -__STD_TYPE __BLKCNT_T_TYPE __blkcnt_t; -__STD_TYPE __BLKCNT64_T_TYPE __blkcnt64_t; - -/* Type to count file system blocks. */ -__STD_TYPE __FSBLKCNT_T_TYPE __fsblkcnt_t; -__STD_TYPE __FSBLKCNT64_T_TYPE __fsblkcnt64_t; - -/* Type to count file system nodes. */ -__STD_TYPE __FSFILCNT_T_TYPE __fsfilcnt_t; -__STD_TYPE __FSFILCNT64_T_TYPE __fsfilcnt64_t; - -/* Type of miscellaneous file system fields. */ -__STD_TYPE __FSWORD_T_TYPE __fsword_t; - -__STD_TYPE __SSIZE_T_TYPE __ssize_t; /* Type of a byte count, or error. */ - -/* Signed long type used in system calls. */ -__STD_TYPE __SYSCALL_SLONG_TYPE __syscall_slong_t; -/* Unsigned long type used in system calls. */ -__STD_TYPE __SYSCALL_ULONG_TYPE __syscall_ulong_t; - -/* These few don't really vary by system, they always correspond - to one of the other defined types. */ -typedef __off64_t __loff_t; /* Type of file sizes and offsets (LFS). */ -typedef char *__caddr_t; - -/* Duplicates info from stdint.h but this is used in unistd.h. */ -__STD_TYPE __SWORD_TYPE __intptr_t; - -/* Duplicate info from sys/socket.h. */ -__STD_TYPE __U32_TYPE __socklen_t; - -/* C99: An integer type that can be accessed as an atomic entity, - even in the presence of asynchronous interrupts. - It is not currently necessary for this to be machine-specific. */ -typedef int __sig_atomic_t; - -/* Seconds since the Epoch, visible to user code when time_t is too - narrow only for consistency with the old way of widening too-narrow - types. User code should never use __time64_t. */ -#if __TIMESIZE == 64 && defined __LIBC -# define __time64_t __time_t -#elif __TIMESIZE != 64 -__STD_TYPE __TIME64_T_TYPE __time64_t; -#endif - -#undef __STD_TYPE - -#endif /* bits/types.h */ diff --git a/.ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@bits@types.h.blob b/.ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@bits@types.h.blob deleted file mode 100644 index 6956a00d20348c95724e8e372579eb0129f4e6ff..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 15189 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 K3>1nQ?*9R5no8sV diff --git a/.ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@bits@types@FILE.h b/.ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@bits@types@FILE.h deleted file mode 100644 index f268263..0000000 --- a/.ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@bits@types@FILE.h +++ /dev/null @@ -1,9 +0,0 @@ -#ifndef __FILE_defined -#define __FILE_defined 1 - -struct _IO_FILE; - -/* The opaque type of streams. This is the definition used elsewhere. */ -typedef struct _IO_FILE FILE; - -#endif diff --git a/.ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@bits@types@FILE.h.blob b/.ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@bits@types@FILE.h.blob deleted file mode 100644 index f297adf01bf1ff1d2a88fb3b4d6b1fefc4c39753..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7980 zcmbVR&5ImG6z|!U#Z$=5gAxY3x%Tuf#x)m@CIl2ga_}NWO?Ayox&4){>YdquAc!~r z0?En0Ks^Ya^^lV{{U37j;7O3IuU_@c)J(tXo+NA*mVWi>_r5>so#@3c-#mSGG>Vc% znajjHNko~-WUh?;zi6h(C)~*RGbt8@tdku6n24&1jzz|c`OBV)mt}paig}!>S_)Iv z*B>5sZ}d~r=sHn_$QpnrPEV8b_a^6)^JI1Jf?eE=D-ma^XjbvOXp*TiI+>eAJy}FA zzWeIwv)#kyx{~&bm3;ThmaUL=U6j=6Ee&2%$R*=hRtgT{(D!Xm1i=c6iA}jiU|q;t z76M88f$3{)WX?c@vL+~JlAETMn$!UbWzpz_v3#lxSezM>l%I^`uX|y zyGlid6&OSElmR<&$#PZ1>2<+#B}m42WR{iO6tO7tyez_GOVmfa6bp{(?-MV+Ht^^eyZ`Xx zkB0E8QX4Qu9)bpL3}#_Vl}aYcrZBQct=goSn#O3Vp^Jgm=_Pctb2>oR2*Z>Ci`BZ4 zw1;@g4#(8#DIJ&qIl=UmoWDOgn|!cID*!Q-Gb_lW%O7^V*t-x^9uxsU59t9dmX}w9 zkscJxX0{lB@+QN;>`NC@h_@xLQ^<)$3JSI8I`p0sVa^!#$<|6ihx0g!vb~Wq^_ARsFTnx|Ie2Y$C@} zc%bmsu@&UtL%Iv6SJcyNiMs7Li-%XMxt1X#TjwT?<1t{Ym&Lv!H$}16o7+Z#ynEfZ z#1`GfU6N-1)*8B0$+!?w)46Z|fUj_D$S`fuXRT4OY7IdF=Y^6xZDxe;dK$%sK&8Wh zhiBTpV8(?sG(N{VtStQAK&Tfnl>5Rcb3G&p9;s^SGE&OQioSYZt+kvjYu8NdeS1>byegUTX4M~ z<%PyXl?Ryyxw%jyIeC(_HC)?7%qm{<{Gc0P`eR;EBX8N45i;>X!wsU_1WSM7gXyDZ z>hKT<*QF9>^@sprKLJ967Q=S-3{)mANy)eRC6#HXQ*D~5jsyA2X+WAUb9xflFd*4` z0@+*wW5WSLZ4xsnkjJvMPRjUnFz9U{zl4_rJBjr;0ue>RLrmLVqti@uX4H5+WYdFc zxI6L`5gwsDB18s#=B7XlX0e?{he~^E13<=(ZPq4z0Et|(gO(8u)zOLv(;CY4Rr;|4Zpnk~S;Tqil`U7Ijxl^I-Ap~7%_?yIYw zLqPt7p7RxzC90;kDfI3^U}Cl6Q^i!F4BLp+V|Z-1V+|W3nZ}!V>_i3OCD1zscMwS4 zx>LP`9E262!?h&vYBRs6N{Z2h9k_nmEsv_ zrDmDZ)UwCZFJfp50(hhyy-82pKVs($p3Td3IU0;#Kw^i8-a!=PTMZeiRhn%MLQ~>C zR#jY;mvnAMZky$A$3pv@Trg}(20hK=tSmElARuMIE77aLJcDT*si6=;njFX#F5ic* zbPH+n`@Wdgxa+>&9_Sd?$-afcCTeKSvI$59;ez_p=?sKLe2G-AuZeZMD6bww*g5j$H%lQftx|$cR z!gRvagMhZQZ-#w!(4%i%DuXFq9oD+#GKa_2L-TvvPtD3&Y@5j_ijHo|H=lm-?Vk_+ zu{ML1&)Bs)WA^Y$-4j{cYo>7Et+(AGYrOkqd=7_4 Pw@2?D+23c;jYaT3xEbAJ diff --git a/.ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@bits@types@__FILE.h b/.ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@bits@types@__FILE.h deleted file mode 100644 index 06dd79b..0000000 --- a/.ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@bits@types@__FILE.h +++ /dev/null @@ -1,7 +0,0 @@ -#ifndef ____FILE_defined -#define ____FILE_defined 1 - -struct _IO_FILE; -typedef struct _IO_FILE __FILE; - -#endif diff --git a/.ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@bits@types@__FILE.h.blob b/.ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@bits@types@__FILE.h.blob deleted file mode 100644 index deccbeed17a628c55c610639e46d9f79cec0f6bc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7917 zcmbVRy^AD86z|#HP>##Yjs-K1p5DcEH8=wUl>%(X0&9R4vD%Vl&bGOlO;_f)(p%7xOiI8~(- zrYJXW9d~c^T~b$NqO{0rfG6(XPcB~@Uyd)6i857^%N%q~SLt{jJ^$j9r_T zFV@t&tVkcAQ5H>=FqTg$10iOH6y;SO&m`o55(&D? zN`3$PmxoS8g-bIpB~KZs6AP9r9j6=3b0tW{cx0Lt+~`;od0yzS*b4m-uf&|A`#V8( z2B}Iofol$dOctX6zU-sB~iz?%rKdNOh?P|4-%*u*r}Y@57fhNrG$=nAw^W;0|79$A*sF;dEkC4F_JNMAuOH z;l(@Bw1E0fI6$WC6Gxfj-aPd0#C@n>+XWA|S}@0?!S=H4nQc|%8JqKJPTC8Ni7Ji? z4Qg{wjnw2>($w(E5;0rylIKU=0P`L5iW+%K+eTpGqox@|w|gx8#0TR>&zRvM5a2y% z`G~N3LV&Pe0HHyPVOx0yE)xsV^1XjaXW9v`GWDd21N`MYAk9ZPJ$mdEkm@~yESJDU zaD-7iVkQmpR5sB`8J`S3di#)vvSh0df)nF-H)K<=-`LJJ@a{+>@TPr7(y3~l(KX)A z-t_z$?x8$)g@-3k2$4ZIx+^1tTzAk8QRKLFEAV=3xt;VX3OP!I#uCHX@rno2hSPOm zw#~kQLBjU&q_4eGp4%A=T+o*e9tnontwfZDP05Q-PJj*IPt}Y>j&L2zH{56jDG}y> zd!qlD1&wmk77i|4_ZIPH17io5>#HLhgi?N7!zQg_bI32(Zw_YHjttn+&`XDQd~wF^ ztG?a=U|Hx)U(i`%S@*V%-aQyev0n3uVoEE+c4qYi9^3M`g2j=dd%AWei)hl3u~l*lu`6a)9SBTO$><-`s12bs0?) zC<4KWVVoGc$8ku10yupThQ6dip=MaXSjD^)*gSPyi=tU!_sT^*$p+^dJ6#OFFq>A2 zXW*5RWvZf9LY{vSLsJkSBkh1rW@7t@okn;zE4Jlm@cjZ3J8JZft6<-HC{T^lYzq;Z zCEHk)z9|+oH>0-QPPh}HwkG!&b|r(J`EjC_8GI-pZNV!st06ptG>+0x2!SRCxWe&$ z_)52@CVy|6X@k4%{_TNIaGecZ8~YZRyu{+xSzw~B6|AAA8K2P)xs9(jDr-hU8rngv zWDI&%1~V=*93gbVyn|rBBGkuWaNUmGAlhDG&;R!72Z1=pN&ShKfe9PuV4T5=pP1u?6pmcn8K0s bSKO8gkR1MYehCUjcSjc|_V26c)}r_iU0}#I diff --git a/.ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@bits@types@__fpos64_t.h b/.ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@bits@types@__fpos64_t.h deleted file mode 100644 index 06a6891..0000000 --- a/.ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@bits@types@__fpos64_t.h +++ /dev/null @@ -1,16 +0,0 @@ -#ifndef _____fpos64_t_defined -#define _____fpos64_t_defined 1 - -#include -#include - -/* The tag name of this struct is _G_fpos64_t to preserve historic - C++ mangled names for functions taking fpos_t and/or fpos64_t - arguments. That name should not be used in new code. */ -typedef struct _G_fpos64_t -{ - __off64_t __pos; - __mbstate_t __state; -} __fpos64_t; - -#endif diff --git a/.ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@bits@types@__fpos64_t.h.blob b/.ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@bits@types@__fpos64_t.h.blob deleted file mode 100644 index 940312787fa128ea1bc54ff71ae6b9eac87daab3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8708 zcmdT}OOGT+5w0GOR^BI;Wvy4sYF#q2K(neY4?7-Pi_FCWganAka`7dVot534o_aKu zS<^F%j6gnuge)!ySw0~60R{>G1#>|B1hhvkTvps{k0T?is9>uIkc)Sow|65kG_=i;S=%<`5b6&<7{AbEmtKcb? z(tPoGS4HchJQ4XKN<_(-D$4WMciT7kAg*K?i=3quz+?CB#fSH&httD&CX|dbo`J6U zI+-qmPk;CJdmn8}tMe7tpJ-FJKiTMEye#v=wR$6id*yshXqpy`0)F>?n-yoT9h2ju zXvLybc_fOlTqQaG0mYgO8)Ugwii9AZqbD9a}RE$gJX+c#U zu_DWg+%L99KB6^SQl!7Qc{{kR4S{p72>^P`1L(4>I2}y@Uc+?ML;#dlDW2C}^w?nG7_MoVK=#QK zAapF+FqL?mX$4#DC2z!8qO2%R1Sg^(^D1Zhut<-73wFY1)gs34PQ;cdZY5O;;hGy* z&J`9SLguT&2Le)R%z)g{q=^AKZVBdlRZ=Kdj;OKh@VXnI0v?f@JU--X!y1*6m&mh| zh_M8UXL>DiHEx?1GMHu3mJ@;T7+Z2I+r2z)ae|UiEFmL-YoURdD#nIsw3a}w^T_i& z5!794y1Uo;(xb?Vs^Jo68t7Lxm%tb<$o zuIC&}0U?7bx2`N_Yt-G|Ae7-JC(>0XA_?e3H3MxOGc#||WprI88kSd47QD(O@4_&@vKUC24 z%Hs_gOgo9U3GFh|R7IMSC6!C3z0jD5Vkg(2HgnXRnk-A|8ZLDrCM#OfY^NPy3M5uh zbMDf$5i;>kGY_I`56f`kgP~+#7_ksAU=Lb8hg&TnKsYRb(4fW84L3qP!?VONy`#KWYCSaWn?thZM8$L zX7*%_S)B66Wf z3u(Ze*lb4ki*T-{if2K=C?A$~9ybtOh-;11SeJK;~o767I`*8NrQN z>Arq*V>_j(^JH73>dGfvcbglHa8>3${3rr(6~T}&wvWjSyEqTrFcc8DX*~j9f*qG(#^JLRI9rK8h|o*Bj)YaLdCroc)`QXyRzJr=)+p-%GFM=?o^y>2eH(|aC25Hz zt9LDly4G;HG*9WmeUQ8ODkai-&~roEs(^$*CrV&)C5j@1o|{_;`URod4TI@n^!<#B zAn-4X%#67s~i76 z+tuuT6lk6p&9Jzo$a^s11`J;eNJh^fp^HUsDopQ~S`g5e`WbPk4qEbcNTo2L3wPUv z66Vl)@8i1)>n>_ulx)-f?Oob>B;Du*HlFr;)OkA$f=d_wfA`U|zxl>rz8>_xE?)ZA zTfzIE+{S4KZjeILL50@)qy2ku_wLPFN2~N>_`~GluW!C^{}0hm{y4d|f9>}EKuB=?7Fyl7{bMBIsg|HN zm~6j3ct8mFBY19lMF-Wbt1o`Cx37ci#Sfo;UUS%xx)tD?xX|nI-95PV%^RTM+MR0$ zS_4G&L3>t=raO;cc>nLG4}MPcR}%#F%$LAc2VXNcvJmwSf$$KtPo9}P*wf#?9b9PZ FJ_EWs$`$|s diff --git a/.ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@bits@types@__fpos_t.h b/.ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@bits@types@__fpos_t.h deleted file mode 100644 index bb04576..0000000 --- a/.ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@bits@types@__fpos_t.h +++ /dev/null @@ -1,16 +0,0 @@ -#ifndef _____fpos_t_defined -#define _____fpos_t_defined 1 - -#include -#include - -/* The tag name of this struct is _G_fpos_t to preserve historic - C++ mangled names for functions taking fpos_t arguments. - That name should not be used in new code. */ -typedef struct _G_fpos_t -{ - __off_t __pos; - __mbstate_t __state; -} __fpos_t; - -#endif diff --git a/.ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@bits@types@__fpos_t.h.blob b/.ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@bits@types@__fpos_t.h.blob deleted file mode 100644 index bd0554befb1a64be12cec5d190d016c46b07ad82..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8654 zcmdT}y^kct74KPAi2Ky)boi_jTDN5RjPBIaESwi~5(ySqNOodhc0swOx@M->{usKd zcXkh*#7Bk@5~(>Oj0i~}fWZF%i5)t1;K;HZA`<}1t5@AKHQiO+1DRL4-MyVxuioeH zebmk1yU*Wx_~p(hi04JdV|71fMZ)8mQ2O7zn#8}OibucaY@YKn&fq^|wpav@u$1Pr zA9^ZU7Uhx1XHg>sEa5%=ln@5Kn}XamF*?HC-m- zdGOsk4<3HGNv%#7Tz{ff-TY+Dhw-w^3)ks24c?XWC823rFbeX!?^~ZZdG3%L-i{V5 zN=06sM6bwysYU`X08m^_t=X9QFzN(beXQ&p8*I&FYTX=!9kNH&oQ zTuhXcl*%lcafk!KVlcr{FuI^~bi}1T&scPXy!7&KUmVg(6jFhMGT)sL+~6#-6bUD+sB*>ojEw>^ zknqS8IhL)YN{qRDSDRP_@hYZ>P~gZ?F1R~zEWTdj0*yOgQ!$AV#^Qrtjh`AnyMh-G zG2v5f!n;QwZ3ee>A=uoj0th|i0d!eb91jA3S1}zm5eQ1F6!WzcJ+`orhD%x|fIfKw z1|5nvgc6T4tzfIYX zt6|-|B7<56j+_!0Pp~=1a@@gZ%O*$(MG%k%Tn3H7STWXbM(YS*n1`O{iJYt=Y1CmQK>>}>SoyY8UI(lIaNVYvFm^>d`C1)IUMXgh`<$$UTl=o#9E$-V zy)4>>T-CtdXs-JL=iN=45^3oUZ#!w)x0cX_azYv7(v4~D1Gd4j|3Wx&pVdx9=MRYj z!3(u?QcWGPYgrU4q)3Jn56{#Ee@YowZutyrzp?Q13Q|3fppNHCsM8@$@W`U%29Xj{ zEZkSO&06y5vNX+9AA<1{73URHbjWxEnp&W~6Gk9a_K_pab~z8-yW>7&VA7nB;YJIl zn8e#$wk^|CJDQR?m2;=Q&~S)iE7u@5lWI;*mL_#=mKuo3f|fMf>IRtZh*i{_x3qNx zB;IP4LFrb>(hqzvZ1fBnmIMr}2d$jLtrihT*iV3>LF=F!c>*S5M^4Sx_H`Ol&v#N) z6B&8%%UFP`S2FkDv0~t4Zz-g)1m=M)lv)9^Qz46G?VW_s$zam!L>`Kgh95X5!r^X6 zCvU&eOe2tYP9^ZBbw|>vYMsF~Y9?>@^y=@SEOYrMD2oUsTL7tUyPUGOi8tCI7dSR% z1ze9bwmYqgLuF#$t=Aw{^7cLBZI`37rTc za-qmdtsci?TOLVR8}TGsH*yuiR~kL z8lmZ|Xv)!G{(>ZW)aV^oLBEqBN7Y8tErf5DY|AS0BI&~dKOp{rxxVv?3v z+&YU%RRk=(u?$f__7&wv)khJ9?Aj zG7$KeMP?e^(&F_T?#U0c2i}U6p4AAx5jZ8o=bWDT#JJY%u(L`HC#1Hu$fquhw*031 zG}8?G9A^>NSm6jfiwFhPZz;O(bE=91q|;{GXMA_-vMRux&}$1W@%rxQ?B4EQ z*w6O<`9Ez1%~$sYz^Rx5Yz5b^Uv4DPr-RXj-3wQCM_)95Y<`Z;Chy++^S}Q7{?*_t zd3f;noA>_lRU_bUutz5~^01hOYA$4>4g5w{^r{E}$)Gbh z<{{9)idSPF4fS}v|!kql;AOFBV q{m%#2i2gE8u1BB*7~lB0*}_8nc0LXdfa7Rybhx9x-wDpNPTvFAIKEW? diff --git a/.ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@bits@types@__locale_t.h b/.ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@bits@types@__locale_t.h deleted file mode 100644 index 6b83d38..0000000 --- a/.ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@bits@types@__locale_t.h +++ /dev/null @@ -1,43 +0,0 @@ -/* Definition of struct __locale_struct and __locale_t. - Copyright (C) 1997-2023 Free Software Foundation, Inc. - This file is part of the GNU C Library. - - The GNU C Library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - The GNU C Library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with the GNU C Library; if not, see - . */ - -#ifndef _BITS_TYPES___LOCALE_T_H -#define _BITS_TYPES___LOCALE_T_H 1 - -/* POSIX.1-2008: the locale_t type, representing a locale context - (implementation-namespace version). This type should be treated - as opaque by applications; some details are exposed for the sake of - efficiency in e.g. ctype functions. */ - -struct __locale_struct -{ - /* Note: LC_ALL is not a valid index into this array. */ - struct __locale_data *__locales[13]; /* 13 = __LC_LAST. */ - - /* To increase the speed of this solution we add some special members. */ - const unsigned short int *__ctype_b; - const int *__ctype_tolower; - const int *__ctype_toupper; - - /* Note: LC_ALL is not a valid index into this array. */ - const char *__names[13]; -}; - -typedef struct __locale_struct *__locale_t; - -#endif /* bits/types/__locale_t.h */ diff --git a/.ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@bits@types@__locale_t.h.blob b/.ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@bits@types@__locale_t.h.blob deleted file mode 100644 index 110835fbbbc59e1e7ade306166e112e26ade20dc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8838 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 diff --git a/.ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@bits@types@__sigset_t.h b/.ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@bits@types@__sigset_t.h deleted file mode 100644 index e2f18ac..0000000 --- a/.ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@bits@types@__sigset_t.h +++ /dev/null @@ -1,10 +0,0 @@ -#ifndef ____sigset_t_defined -#define ____sigset_t_defined - -#define _SIGSET_NWORDS (1024 / (8 * sizeof (unsigned long int))) -typedef struct -{ - unsigned long int __val[_SIGSET_NWORDS]; -} __sigset_t; - -#endif diff --git a/.ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@bits@types@__sigset_t.h.blob b/.ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@bits@types@__sigset_t.h.blob deleted file mode 100644 index d047bd9fb00ac91016e31826e581e6ab42917344..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8124 zcmbVR&5ImG6z|zA8}Xn)1Oo;g6k%iRZCBSd1O)LD@smXGAX3y+*UXgLT|IVJXLbca z@G4%sNlqRFPktQ4nC z!Ht_6gD9C6xlGKvi6~N;Oq8*Ir}Zd#nHw2jm13%8ndI<~9Wk3lXGF&J?R{+sw9^==o-({ooV#Xhwt6E zd0N^W&7}RtntJ-16Fowfr7oz`Co*`KmUG6ltPmXV)Aya6IJ~^i_V?nMh%=?@!+4@= zhgeulY{V-B)`ondLZE0juxhj z=VHpy{jH!ngH$dn^)4NDlo%ZuSj$5n zPHyi)@OjV#0Nob>3|U@W?$R0VK3FKjIWJRSADx0j`?3wGBoIt5 z*_tQ?GtLtgMRA}cQw1B>TG(Q#0{T7JsT|dl1V2f{o+w^bnGDiZJ6Pli4-sSISrGyO zl$r=|ZZBzKg7#a2d~Zq)?TW}6&yHZY0V?28+VOZ-u$|XK&W zWmR_zwP{s>0hY6}uyw1?!{EB`GjYJ;aN=+&m3bIXZ8@pC;nmbb9&=?yx zDYfdvWuNTK$OqlsLv8SGApHHqm&gh z`s!7;mU28V-N4nwUh>c+x`wU~)$Rz>0_r;90GYB&9A(z4cbM>r`%uARPVOJZVADy1 z1L&$}79EjiY|5)CX)g>Vs#q&DsLhocsmZgX>ED$lVK(C>&)2#EHbCYzH1d{J8-az_ z+IJA$vRJxF4;GS+MZ`lOzQNO3 z_{(`fnzwU$Iaw+o)q4h6E`gn44WpLCOd8~=Y@(AgKI$!cTgd+*OM+9xVi$pmBH~v20+B@aBoxvIf(`N6HV2Iswh|=&%^8fcCzy|QgYCj>AK?HOlnw~p-Zt=alZ`A!Y5Xce16ez_^KH@lW) z&Sr*wa9E8mZq8kO)jI(E3G?Rvbe5RaokO8_4@OcP9`cc5N-M*bW_1J}hwZq6M@$L5%%q{Z1Rd5YkG%p-9S)dhuyCCtdYNme_Sp3B3 z7RFPGf`!T8Rnq=qz;b>Fgsvvqb(mI}dJr&{_GiSdKIq9eDV4#NuISMXC0x-4-{V&m zHdEBND8buLj{ATA=)2E<`_`fY|Fre^D(|`HPEc}o^Xz$08J#_k8Wu4A zLWO6RSJWDyXqgUe>mP1=C@)^Q!WaxiZ|?5D6C+_-)EfN@jfVuL diff --git a/.ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@bits@types@clock_t.h b/.ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@bits@types@clock_t.h deleted file mode 100644 index ce97248..0000000 --- a/.ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@bits@types@clock_t.h +++ /dev/null @@ -1,9 +0,0 @@ -#ifndef __clock_t_defined -#define __clock_t_defined 1 - -#include - -/* Returned by `clock'. */ -typedef __clock_t clock_t; - -#endif diff --git a/.ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@bits@types@clock_t.h.blob b/.ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@bits@types@clock_t.h.blob deleted file mode 100644 index 5c89efeb25292185ce1fc75d1d1f38623761d2e1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7957 zcmbVR&5ImG6rWMqlW6dm(-H%Mp{Ly#S1-YnqM(=Hy{xIOnJKrsy6vvsnF)wsj(YK^ z6T=_auS~VP3uZy^s36kA8jfnL@$;<8C zAeizrRAFOG|dGE{PcbM6PtI=+4-HQ5K*dhy@{5(c8G<=#OAz0V13AY z6#_+vfmPee$c%vrc}YkvBsX;_E7AvOltoj;jAir6K!}+kMR}D)O9^?PM2zmTQosHC z{h?D)VPRIKK`N7# zx=)84CFWZrt2Hmko4f=QcoX4OPeyKpER4$auvjn~mf$Umqn8KH77UKfxHJ?QPmZzo zKm6#uF{@Nw83<4ox)YKcg2mP_pD%WsHAG#GWW#RhbmBRXbSZ2@ertiy{w!07i`kICqpYF+s;I zLAp03hiXN5-m@bZZh#7Sly)@U3!bOKd5u?IcKf38MiG688A84A`!TV ziIv2v-J@~OAe4k!34{cph5lh?gcx?CcLb;|ATM>II9+PGw>NYdP~>IRa0Rt#Re=GP z$gw~kX}nEr1sr@#&*A)vehPI&9^OhVD;Wy1O>P^zUT{1Gj18*jIME)O7^qUK?e$W0v5NqLhx25|$VA)m^uiaMp@LnjJl>DNu#*IP(5`28RgtG`#j6!* zFEl19KPoh+%{?_zlV?d&!z)X~tl%Zjj=BMcK;{)S@|LcRz{E$5JczD+EW^YHGs(a# z;vo>OOC`eU2?4@k0fYuEhVAzmxJ+D-mhb&bI@6AUm8s`d6yPuC0ck$V==r2oK&tl) zvRndV!x2Wc#7r9GscfQ?Fg_oB^!6b?MV16RiQPB?FN%bRn4GDkM|zWMv>UzY@ip8X zd5#E=P@WJXgFdq@5Th)1(CARKw+jF;c4S$bv>1gP*+I*Qf$CLp52g*2>#b}9eF-Ci z?a)bId#60NGZ>|y;~YH_46)mYC=H8}XP=1x8^B+vC5as2I{t20&y12CjQ{q;@B<1O z<>n|HNw^*?&&>kHjwI)Ijx7D9{Je%mTE$k7U#^oJ&93&Dv%=6jhi-gvdLF8)-T~lG z=sBO!S)!;1n?mm%jHK9X_*^lim0_(}1A)heJE~xBB$KFpkG)qxWC`?6!5svOH|bQa zfrGFj^t29;6Ka5MgoswKGLvNlOS6*Rz|q()c}jAC=P+CS6t&*mYlLkXO%o^r!HHl{ z7`w-D$Z!HUeGrDBq(Y%)48T}LycF0L^<0ahX>Qlbc|A`@Cl)(5jK46OR*I+Km6D~Z zqLw|Le-T4d5FjJ%=uKu~_lTV{c)HAY3Y{X()t1lOtT=_&$84TT_$2 zcg?iH-SzeMKrgt?hQ5tMt4UsBaqF!nQP&z4OpBB+>4)6KR~wZ!!yXOopjI*l-6(_U zl^Ko@dSPxM*pCSHaTr{;V|O%^gCM>la&zX99&aY>!258U;Glt7dP9dxn?*NI8V6Y3L^15Ap~karr5rZG!;if(r3rN`2Ien zEx^6h>w;_8qSh1K5B~b; z?$7VO{JXsic0i}L`kpc%bZCE=nOwjA3W(u - -/* Clock ID used in clock and timer functions. */ -typedef __clockid_t clockid_t; - -#endif diff --git a/.ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@bits@types@clockid_t.h.blob b/.ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@bits@types@clockid_t.h.blob deleted file mode 100644 index 6102b506d635c63b31b2462bb20ecf0f6998b7e7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7987 zcmbVRPm3Hy6rYK*=a7R0ybK5-7<$^pWR-v?qY%)Gh&L%}s%vJ-?XDiXs&{4sp1kT8 z2ssI!MMXV$@t7~*O+4wrFW@O;ef6qmrl$K<_ZY#2Ft1+y-k3WkabnOufhl$O& zL110Tdldpj`+=EDV`ag>gt8(e=aSpHl7{pF8s*TKl(AxFEQFX@Qk0t_SxCqOB~o;k zlltMG$A?Zug)6(PB+nSA6X&c@I>|0IFO(n^9+p)FV3VC^5UV(yaN4yeUX9fj1Fe4P@j-$dy&4?iY(@!vehJaCGv(+k(My8JEW* z6UZ_4{=*O68?s83#zKIK*qxBv5G=MxaF4}A^arprIja{b{v{CyqIi|DIi#!hu*eeuBF5&cG6n)DH5K68LDIwo z9kvAd-c}sS6_GW89no+DRKTOO=kdN^d#`b0WQBev9Wg|p_@>uN+hN zF|m|bwmUo?_yi@PSOOzKXrY0aS|R$~7#snvi^xlzDNfg#_U#Q{Mid2E)n7tgS{X3F zF*#PqBaL^7t$>7&X*#@L(ND3KD8Osf!pK;VU2?nFb%GNpV60a~+mX9k*_+Kx|3Kco zZD$gP?(8lp)4sKWZdEcagfukwwGV_2$36{di$3duidAa}3M4Po+*v(8B6pj5Kj%VP z`dS}@xDW968eXtYpp0v)?Bx(ZJhG~!Cz_0vEBflTw<h>wTir@Z6gruQKJl^+r5E)K7(1KXT}H+2=E?sazt1I zAwbwKfY6|GaD6-jmx*)I^1XjaXS(su*m`D?2rYRJNc&kq&mB7jr24=h*KET$aD-7i zz9kI`R5sDc7@rM3diRirvSh0df|KBEH)K<^jo1z&@a{+>@TPsE(J5A)xi#4i-t_Pq zZ;b+X#RsTB2$4aPxvLI?TzAmrP~^CEEAV>axSjMW3VBL|ei6gj@k#*Gh0`}yu6w?K z`M|a3q_2Zhf!i6(QP6G<9*Kt7??aS^HOY$)M1T$8&((rNj&ME8H{56kDG`Q$ccTB9 zMUC=96wV`D_ZD$%w*5SEc6YepMpG*Jc@1kc!KFUoB>8hpQi#7z*rQz+QC846V6G}l7JM#MH& zr7y~JnwwGEZXw)>P+OCK47-v+kMcMu%N)KEkhb8JnAH%TK^jMCD1<8&2+)tcK_}`C%E2*u8n+B^_*BZ7<^PDf}hup?jTa`B>Ar0-IRx$=X zD}&LMS&k4oVctP-pAhQfF!*lAEodkQL3~Bxr_m!l-i+6g_u<#TN2zkN8pBTnBr^P( z(=(s=(E1g2QQP4M>3ps9oZ{#pZmv)B&2TJmfpEhWMB)WP2-JN_aeW_YDh`mO&yIib z-DS$I0C!Ta4X$B}W)DJ>1zHi73leWzGyPRy`;F0$l?RHV4--~k_{o43d;^587TQ;s z&NB@lU@YBt#J)Nh$TumK!z{1p)(s{6qm3@)+X|a5YF<`i-$IU04!)A^^@2A>qia|H z{`kjFzx?_5vAYX4MH3i9CJgu-x*wG>JGy!E6_CUKp1Hr{lj|q9ULIe)`q!s_fAa0G zSKD*JnaTe2?b|m-?>b$RhYu#Tks0XsKTo*MCb(~(Y>CxOLHq5K``5-Nqm%pYvK_i- wW4!z7x9@(xvHbd865Q4_ni&Y(dd=^;LIbuxPfh{*`1<(ln)`cybmcVu2Rf?gmH+?% diff --git a/.ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@bits@types@cookie_io_functions_t.h b/.ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@bits@types@cookie_io_functions_t.h deleted file mode 100644 index 6132423..0000000 --- a/.ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@bits@types@cookie_io_functions_t.h +++ /dev/null @@ -1,63 +0,0 @@ -/* Copyright (C) 1991-2023 Free Software Foundation, Inc. - This file is part of the GNU C Library. - - The GNU C Library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - The GNU C Library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with the GNU C Library; if not, see - . */ - -#ifndef __cookie_io_functions_t_defined -#define __cookie_io_functions_t_defined 1 - -#include - -/* Functions to do I/O and file management for a stream. */ - -/* Read NBYTES bytes from COOKIE into a buffer pointed to by BUF. - Return number of bytes read. */ -typedef __ssize_t cookie_read_function_t (void *__cookie, char *__buf, - size_t __nbytes); - -/* Write NBYTES bytes pointed to by BUF to COOKIE. Write all NBYTES bytes - unless there is an error. Return number of bytes written. If - there is an error, return 0 and do not write anything. If the file - has been opened for append (__mode.__append set), then set the file - pointer to the end of the file and then do the write; if not, just - write at the current file pointer. */ -typedef __ssize_t cookie_write_function_t (void *__cookie, const char *__buf, - size_t __nbytes); - -/* Move COOKIE's file position to *POS bytes from the - beginning of the file (if W is SEEK_SET), - the current position (if W is SEEK_CUR), - or the end of the file (if W is SEEK_END). - Set *POS to the new file position. - Returns zero if successful, nonzero if not. */ -typedef int cookie_seek_function_t (void *__cookie, __off64_t *__pos, int __w); - -/* Close COOKIE. */ -typedef int cookie_close_function_t (void *__cookie); - -/* The structure with the cookie function pointers. - The tag name of this struct is _IO_cookie_io_functions_t to - preserve historic C++ mangled names for functions taking - cookie_io_functions_t arguments. That name should not be used in - new code. */ -typedef struct _IO_cookie_io_functions_t -{ - cookie_read_function_t *read; /* Read bytes. */ - cookie_write_function_t *write; /* Write bytes. */ - cookie_seek_function_t *seek; /* Seek/tell file position. */ - cookie_close_function_t *close; /* Close file. */ -} cookie_io_functions_t; - -#endif diff --git a/.ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@bits@types@cookie_io_functions_t.h.blob b/.ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@bits@types@cookie_io_functions_t.h.blob deleted file mode 100644 index 5110ea0eb35c59905cae133652b7f3d3de0c6fb1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 10349 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. */ - -#ifndef __error_t_defined -# define __error_t_defined 1 - -typedef int error_t; - -#endif diff --git a/.ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@bits@types@error_t.h.blob b/.ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@bits@types@error_t.h.blob deleted file mode 100644 index 2a2730038fa0a4ed22165731e2f0221d3a76b088..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7841 zcmbVRKabo*6!!&c3Zj!DsuM_&Ao7}1jw1~vNJ!8i`qAuoc6V5NY&_%Jy+l;Bv@|Fc z6)hB@q`gnTci=M+CA@j#-JP}H*h`9>6z!WgzxQW;?~gx9UcLD7`CW3BWUH!_nSGjx zDwo+(S@&<%&a#HiUdoAy9N2 zn7K7pmJCd&8bWd*xosP1NFSh44voneE9b^Sh?yltxhd17ggj6pLw7l;KmPgU*r}+n zwyQ?+oPj#AW~I_;eye$@1gRL0EQ*R-or7HHyVlEfXh2O4!Jx=c6LhyOi1OPo10SsAL-Aocd z)G(JdDFEedf$w#YJt0_lh8y1Gz&<($hmzSA$meq2E;IZ~iUtYSMJk$gfvBjewUSI# zY|(1r9*l`33@}HHXP~@kq&`i zG>!lUELGYQ^jH*qRJbv+LFbXCPB9}s){WA3+O{ZUFw651iNME1tR&Xs0YL{oK}o2B zKs69N=nQ67h;cUtM}Wj4@>1uD(?z6zdq;#3ML|A{*G8AH1`Kc%jiv8I<6Y`1VAoT+ z3GY|*Q>@ns@EWx=G8SZ)+%9&5-~mVkazF;l+>ZSz9MD%w>Hp* zO2&ndW|Gu8{~a8T4H$9}ebxmP%h41RNM0zW^L9bxZs1WYkt&~lczC9(_zNzirSW;y zacAN0Ej)FdLLt{y+1n{g@JQWA&qz6|YWnIy9OPot_-<;9!Q|Fvx`mPsFW!@;12lHR z1G3GSILe&%=AnHj?n4E;CV0Bjf-xqKc9(t6>`EOk*ovDKX)kmfsyZn&sLek$Qd3|_ zSD1|>Vpj8pmnYo-;~fi%8hK0KMquKTh8aY+e=Os~2h+yLlo22h;63Q&h_D7ifN)#@ zp+OVjI(Y^z6Km4)gMUe9x&hDFc5c!Le|Zl``&~&-9(x6(`oJK^B`^@2VAP(NNrM8F zU37BB=aY}#J>;n@+3ADeq&VG8*%a+JcH;=VJJJZe>Cll3s@h<3O?RU=J-)_!sK8zE z5h@TuWYBN!%g7|x9koLgIquvFyq-F4C%uY7o)V$4#BdJ062Nrf^c|RMq;FtCaLqaC z>)=%2b_SCa^re$Wq9OJh5v5^K^5!EEU<3FIwIq=vT+i|yH`+-`gz?{<7=LC_qi`eR zM-#3`i#T@Wel)qhIJQLC^d+QOg3p6Ogvxm6+8Ko=F-X^u>4)6M*IHF{BOwj#s8%utJu8D5msySw z24UVqa32xc(=hmM$8B;b2SI#A>Zj2YJ>JdXk@w*j!6&J5vl_#X1SB&2o-;C^_|W<# zcG=qL2kCsR^n&8(Aa1Tt^UZK9aDi~g6-43%LI~7-OmTf5X(|qoq|Z)&@!^`wZ(a5U zc#wL1a2;E8dk~r|(2B5Jka+u=>F)x&uZ(`IJW>>Wn6N9uj|QydTOf3`)V{(Do@oF9 zW9hymj@7|HzDubBW_d-oZYbd&ZFC*qSJ-t?i>eWa7BWeav)6B@@BQ`c&!4eXf_2aZ z%o-QIp|#0_2k(H$`GfO^_s-6f^M`OCNnW10zh|%SUOfKr-@jk}#{3saX1lg7hhN|S bz;Bi=20vb0!rA-p-oLu%{ys@wJ8k~~=e@G5 diff --git a/.ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@bits@types@locale_t.h b/.ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@bits@types@locale_t.h deleted file mode 100644 index 2de0f6d..0000000 --- a/.ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@bits@types@locale_t.h +++ /dev/null @@ -1,26 +0,0 @@ -/* Definition of locale_t. - Copyright (C) 2017-2023 Free Software Foundation, Inc. - This file is part of the GNU C Library. - - The GNU C Library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - The GNU C Library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with the GNU C Library; if not, see - . */ - -#ifndef _BITS_TYPES_LOCALE_T_H -#define _BITS_TYPES_LOCALE_T_H 1 - -#include - -typedef __locale_t locale_t; - -#endif /* bits/types/locale_t.h */ diff --git a/.ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@bits@types@locale_t.h.blob b/.ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@bits@types@locale_t.h.blob deleted file mode 100644 index a494a783c13f2b0076bfa3ad63d9a020b67dfe2f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8014 zcmbVRPm3Hy6rVMIfIx%=PYX&8S$oz0nbPL(yqbjXaV>+7q?o6&2ov~WEb@GGLBu?r{nt~$GAkA;oduC9 zq|jM$_WEx3j(!fSvItcw;tJr2!^80C>iB4U6i$>b!$c;aYr2fa^U;&9zqtQkTUwvx z()`Aly8WAt9wCb&&8X8G8N4f%OUC0k6CCi<_iawBUO8sR*MeLGu}Z5|FiR_oSQt!f z!b=3!g}hNAP_!Rdc~)wfFfbu22+67Bx+-Kza)3q|G-b$GGAT8_5C=+x zNSBfN<9=Y`}E19f7-5|swgS;`Y7NX2+$8fRRmfyk01OZ{R?3hA=6Y=YVcCxyVypBfLLF6BEsRI)RCp3UmM(53C)xS2Nh*5 z>40$bdPxHrIuBzt39&qdM=y$BvToi zR;e&aPFCW+DDdB6dXas#3=g`l*FQo^TK`HqA312q=}I0CES5AqMEMC5A7i z3l43Fh#JQZue$*%;8Cfq&wb9etnspx1@cT1F;p0_J}gzLhi&sh2D3~9jOiG+9usqk z?YL8)9ZpaZnjlm+a4if5V=Y8Kjm{A$UmkgxMvButqxtr5HBQBPI0OZP7ux8gni8?=Fp8a2MZ<}Q zXKaSCDHl@H_^fI_S@`=3Qaue|c1X3-XG50Yk-U($B1J6A>8snc7IL~Q>@d|=!Q@JZ zX$74hGTs(V1E}wW1*D5Uag^CD=V5v$?n4E(^D$QQPLIGS30q9$9WL9$h*{1Hp6ql3Y*4Dt*p6ARMv4ZkFrX1^w&55B&#T7OCk)G=*|u+ z4ou@tJAs)o`xF)lGslx$JEt7l87y2dmku8By4XI5s1)8w=&91V*RSO85a3VMj6{xb zZI!QUqaG}Yu>G48{b}aKW4A3_TzJ~s#OtlyEH1~_b{r52`FREJXeFCNeA#((FuIyz zz;aDLIXFBcVYp-WbzkQIR9Toz|0h`@uX;yE=N<$mRx3VHOr=V*#;hL4<5(V)@N6Wb zpvlKhRuEAF6PEX-0>$faDwa@#uy1s<_7o@705wtsb9gb6MF4MRMbGrH9l?O@l*eQZ za0oL!Qc0?r9wofx{u){y=Hu=>CaeL;mn^|F8l2fPqCJawo=(Ks`& z%2_qBJ1H$>nKRqPaE6(%QalD$3Kpx9dJ=N@MGSRAfQU2;IvI)WBW4@n@hn@nqrv*yM0f zt=v-NO-y(z!*2^L;VUTUYL?m#(@9eY0{YT?NbKu_j(i(`&D^)!kfoB!C`zqtSW(|hOt-23b9-9J8kXRUH`^q>wCJ-U4PqB(GR z|M;oB{n7rhIp1J;yoc(}e|q@Mj}Jfo>TmYu&6C^g - -typedef __mbstate_t mbstate_t; - -#endif diff --git a/.ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@bits@types@mbstate_t.h.blob b/.ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@bits@types@mbstate_t.h.blob deleted file mode 100644 index caa620d855fb7ffb9ca36c72d6a270718ab67b14..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8006 zcmbVRKd&4$5WgclDvBrt1rkvtM2Lv?El-38ibM$l2^vI=<@5UPoVV*e*4}sbB2ge3 z3L07zQ6Rnm6co^-G)VM(0r&ujCgd?5@9p_^$Gevx5e05M{>{JN%y?g$JpTF12M;IH zNxCcxncDlQC^MNZly(0u>sk5{w=(%yilvrSTEKrCi`8m!MdVyBp7d0*E~_)87fGfn zDQsC?ymQ#SlONOCRH@P;uK}L8eLFpQ&d6XkI8mD#j!8yyR9VqAZG1$Hms@k7O;D9Npgw zsy9d#(y04%*imA3VWnB~6?s#TU;=LJjgTv=NKcDq?p+azn7#T4j=nves4(IU4~AKzJ6(oWNJcX5L+~t9>p4 zyjobMECjMLD@i9#pf~DVkfG}}SF;ppEIoPi`1RwrT6zJ9nVdTpescExesTvFg3qHS z0O+v@V91K{e3Ss9hPkXs04T3>tk+)lgkYfz*SyMreRKv69m_VPl1MOvWNV@n&A32R zl;xR{OqFb2YvGE;MDz!+GdZglDgH?!4n*-PV{=GX?O~B80z{0>S7i(YP--f`xuc|s z2|8{G^1ZD%v@0TO0z0DN2B?5XY0u+B!S-I`#>fi&OgdtWK(VIRO51VUqL9HXPg^7c zA2G3%*tUB-9{2<$p;-bWL1NdTo;j-I#ZnPHQn1AzKkgHrq~Q9CBZ)C z4DMOva>@XDN8{KY547B6wE_k{Wa4O$I48yCArxs?RxON-Mc8FFX-A-dF*Bs1>&3QF z4yJN5Jdk&9XPLyIJH127bZ@O-RF#YiAq`D@-2%0nA^MUVo9Y_cK9sv>Ob2M_ga>4+A#s#Btl(k9C+)BDV zgXQ0y7%rfwQGSWSeT3`5_Kd@}-$zdG9N79R`B@FmXof8zzx*UQnq6&~vz4V^9J=wv z)p@9|1_yvYVdi{FXNgrkI1~o=U?jz6!)J;qtt@NJ8VEcN+=+o#Bbg;_J@%@C$P$>H zq7M)#-lS8t1`fiG(9=3VPN)G|lSr2EU?!^sp3Exx{f)+U&U2Cj0*ATor>Muxokn;o zqiF&~AUFvu3S;+p4jE1WuMfg7lvF6xtN|FSgjWK`qMmC}G%wwwa#_#v(T&CJ4dWH& z(n|3hyi&1T8S14c@GoL$8Ukdb+q=n3>>hD@2G1AewjGVuFCcMC#LyP%?Awe5s&Sed z4q{tk7pv0eWXEO3Ev!xcp01wshaeM)h2A89JC zhNRC9ulW9ZO51>Ysn-S9utoF2L6Zeq5w;5wZ&x$@Rbcy#(Jzd9ilT)HuVDDefE9cL zgsv9acbHz81`sfo?mOa89}MK1l*(aCSM=zH6254o5At1w%@j2+E3q3Pr_b$uB@OiM ze<7Squ3Y}}&HZa%-1_0wN$;P_SAM@Y`R>0LaruF#q8olpx)JCI|30~X{e?zHtMrlk zAJe0&M>n6HUcRLM`18}>epxsRow`s@``vPK>((`QvVYhLZ`l5P;{>!%uTD>&aev;OTsn>a0~vPcB>(^b diff --git a/.ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@bits@types@sigset_t.h b/.ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@bits@types@sigset_t.h deleted file mode 100644 index 8b27e91..0000000 --- a/.ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@bits@types@sigset_t.h +++ /dev/null @@ -1,9 +0,0 @@ -#ifndef __sigset_t_defined -#define __sigset_t_defined 1 - -#include - -/* A set of signals to be blocked, unblocked, or waited for. */ -typedef __sigset_t sigset_t; - -#endif diff --git a/.ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@bits@types@sigset_t.h.blob b/.ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@bits@types@sigset_t.h.blob deleted file mode 100644 index 8e989bf1d5678b47516e4f2be4fa597346f95b8f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8057 zcmbVRy^kA36t@#}b%dycl|(5B>*bW=NP`4IfRLa;6m+BU?ARV|Kg`bT*%yh57SYh5 zR7ezb1SCMBprA>^KR`nrYD5*~c=Kkx9`C-{H9;Z@_|2Q&`t zf3c?S|FY8~WLf3~b$Ta*cja=;c$yZ11Ah9x-HFY;Q+9e1twfZnyxK&IymE+z#l&V@ zBd{*yoeF`X{lN5vHZo&iLQxWubIDCrN=^Czjk0KT%vd(l213jXDav&gEhOZD5;3~V zO8xNo>wTx9!j)N;k|zw*i8Gd|JW4Kdo+&{p#v}8z;3khmk!3|57F(k~qP19ZbblwP z&LEXZt?tudM~T^mk$TNnUTvk{;GglB=w@qDFC;@lOw+T|j^ ztAt_7Kp;!Kl62yDdV|gd8T!4ZY8E4n#mBEsUzxtv&%9b zKo3O#LzWfig9H#X%w|mlKzWtod+lV84;G%`nwJT%Po987hq4W+BoIt5+3F|-GtLtg zMRBGiQw5t>xv-B#2lRWe6FI9EG5$#+_C)b2ZBj_r+`%GGc!(IAuZj=|pww7^a|cNi z6Li=T1RzYb{IkGwFyS0>wAIR=F9rEeILRa)WF^>t@{G>-NJsQp8!W6wLr@?op_b07Igyi|N3lYxWcWeh znY!T5xsZm&=TwKCg}+zug!2gMcy5%r7_tP9tV-#aCSk>jzPjz!QqI? zS5VR6B|9>-fcj22K&I>yN14OkGIa06eW+mD0}nS^FvTRn=CbXXZMEYmTXMZ5?S+Oz z6$ga|wYjH8YVs_pYqPcl%T~PP*+DnJbjQ46Mc&f35g7KMSq9NHkENf`VA$vxGCTwV zya%lu5mrwK5cUfoG-w@cBhSEP;*7L>=U>v9cD~c5n&~LOU(N&4e3H?FN27pL?-^vd z1m=MQjB1FPG{{p~M<-!?Hu&i6LmtYKtv(1&gu~sCO~F25JB`4*BaOhDcAZA2s&xj} zXghh+(`&dl^4t}kpgbW&23=-TMh3ZVug#&zaqCv#^~iEN=~WbRln4zYhO^@p52g*L z>#S`1d=3MG?axVHd#60NGZ>_x-yA#=46$2?s2uhr&pr_WHh@1@3lcfPbu3?VqZy<` znEvgF{%006%1u!?knp^>h-0_y29nd00~>@=epvSsDz(H6yI$C?k2{iymif9QNGg(HkGb`x@9F6Uqrz8h>4zo2p0>;vQNbIYFo_w8BDa`VUZrxDAJ=)+#zOAtCqUJ>@b}i)iXzw$rr+05D zI2v8OeCyvEFaB}o`>#fwe=eWD`S+K#Sq1Mo-d}9B{ z_~_cvt>?y<=MNtK^XJ`f-`Fbiv~1UuquaNyjozF. */ - -#ifndef __struct_FILE_defined -#define __struct_FILE_defined 1 - -/* Caution: The contents of this file are not part of the official - stdio.h API. However, much of it is part of the official *binary* - interface, and therefore cannot be changed. */ - -#if defined _IO_USE_OLD_IO_FILE && !defined _LIBC -# error "_IO_USE_OLD_IO_FILE should only be defined when building libc itself" -#endif - -#if defined _IO_lock_t_defined && !defined _LIBC -# error "_IO_lock_t_defined should only be defined when building libc itself" -#endif - -#include - -struct _IO_FILE; -struct _IO_marker; -struct _IO_codecvt; -struct _IO_wide_data; - -/* During the build of glibc itself, _IO_lock_t will already have been - defined by internal headers. */ -#ifndef _IO_lock_t_defined -typedef void _IO_lock_t; -#endif - -/* The tag name of this struct is _IO_FILE to preserve historic - C++ mangled names for functions taking FILE* arguments. - That name should not be used in new code. */ -struct _IO_FILE -{ - int _flags; /* High-order word is _IO_MAGIC; rest is flags. */ - - /* The following pointers correspond to the C++ streambuf protocol. */ - char *_IO_read_ptr; /* Current read pointer */ - char *_IO_read_end; /* End of get area. */ - char *_IO_read_base; /* Start of putback+get area. */ - char *_IO_write_base; /* Start of put area. */ - char *_IO_write_ptr; /* Current put pointer. */ - char *_IO_write_end; /* End of put area. */ - char *_IO_buf_base; /* Start of reserve area. */ - char *_IO_buf_end; /* End of reserve area. */ - - /* The following fields are used to support backing up and undo. */ - char *_IO_save_base; /* Pointer to start of non-current get area. */ - char *_IO_backup_base; /* Pointer to first valid character of backup area */ - char *_IO_save_end; /* Pointer to end of non-current get area. */ - - struct _IO_marker *_markers; - - struct _IO_FILE *_chain; - - int _fileno; - int _flags2; - __off_t _old_offset; /* This used to be _offset but it's too small. */ - - /* 1+column number of pbase(); 0 is unknown. */ - unsigned short _cur_column; - signed char _vtable_offset; - char _shortbuf[1]; - - _IO_lock_t *_lock; -#ifdef _IO_USE_OLD_IO_FILE -}; - -struct _IO_FILE_complete -{ - struct _IO_FILE _file; -#endif - __off64_t _offset; - /* Wide character stream stuff. */ - struct _IO_codecvt *_codecvt; - struct _IO_wide_data *_wide_data; - struct _IO_FILE *_freeres_list; - void *_freeres_buf; - size_t __pad5; - int _mode; - /* Make sure we don't get into trouble again. */ - char _unused2[15 * sizeof (int) - 4 * sizeof (void *) - sizeof (size_t)]; -}; - -/* These macros are used by bits/stdio.h and internal headers. */ -#define __getc_unlocked_body(_fp) \ - (__glibc_unlikely ((_fp)->_IO_read_ptr >= (_fp)->_IO_read_end) \ - ? __uflow (_fp) : *(unsigned char *) (_fp)->_IO_read_ptr++) - -#define __putc_unlocked_body(_ch, _fp) \ - (__glibc_unlikely ((_fp)->_IO_write_ptr >= (_fp)->_IO_write_end) \ - ? __overflow (_fp, (unsigned char) (_ch)) \ - : (unsigned char) (*(_fp)->_IO_write_ptr++ = (_ch))) - -#define _IO_EOF_SEEN 0x0010 -#define __feof_unlocked_body(_fp) (((_fp)->_flags & _IO_EOF_SEEN) != 0) - -#define _IO_ERR_SEEN 0x0020 -#define __ferror_unlocked_body(_fp) (((_fp)->_flags & _IO_ERR_SEEN) != 0) - -#define _IO_USER_LOCK 0x8000 -/* Many more flag bits are defined internally. */ - -#endif diff --git a/.ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@bits@types@struct_FILE.h.blob b/.ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@bits@types@struct_FILE.h.blob deleted file mode 100644 index 2d7d38753100b6fc084dbfe0b8bd4621413a90b1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12383 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 Dc9eHS diff --git a/.ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@bits@types@struct___jmp_buf_tag.h b/.ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@bits@types@struct___jmp_buf_tag.h deleted file mode 100644 index 377395c..0000000 --- a/.ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@bits@types@struct___jmp_buf_tag.h +++ /dev/null @@ -1,37 +0,0 @@ -/* Define struct __jmp_buf_tag. - Copyright (C) 1991-2023 Free Software Foundation, Inc. - This file is part of the GNU C Library. - - The GNU C Library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - The GNU C Library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with the GNU C Library; if not, see - . */ - -#ifndef __jmp_buf_tag_defined -#define __jmp_buf_tag_defined 1 - -#include /* Get `__jmp_buf'. */ -#include - -/* Calling environment, plus possibly a saved signal mask. */ -struct __jmp_buf_tag - { - /* NOTE: The machine-dependent definitions of `__sigsetjmp' - assume that a `jmp_buf' begins with a `__jmp_buf' and that - `__mask_was_saved' follows it. Do not move these members - or add others before it. */ - __jmp_buf __jmpbuf; /* Calling environment. */ - int __mask_was_saved; /* Saved the signal mask? */ - __sigset_t __saved_mask; /* Saved signal mask. */ - }; - -#endif diff --git a/.ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@bits@types@struct___jmp_buf_tag.h.blob b/.ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@bits@types@struct___jmp_buf_tag.h.blob deleted file mode 100644 index ab914aa5b0e9d9167e4948e676977ac60173daa3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8487 zcmbVR%a0sK8SmK`vM0-OA`)AXx9tdoZ1=Vo%o16Oa|lENK@PwPgi1BlH8aKZW9X{h z*)_5hgv5o%gj4w;XsK5dTAvkU)`g!d|}ms=KGAyQ+Igq&ScH>id4* z`_VUpCy##e_6K{DAYK$1kJW>i6$y{$Lg~L3)inMlRXq9@XN#PdaR&c!$X2W1DVEZF z{{Oy;)ZKsblL!w(r9E%NH&!U zTuhXcl*%lcbBF`MVlnMN<7ZAg01$FH{vW(RuoIYi73dd%9&0U>EUm|PWZH%$M~lcu|{XdjY`Q&w6oI? zV+9m*dM$D_uA3J!sAbBQ6M^v33n;?73?0UubaplHmSo@8IzgLjzc?A7FS3;eQX@XBy zB{vl*A;roqx@*>w&(@_Gx`rwkKUHyFLFb2zH$_te8hT*>sd9)MX?DwbnDQO+kU=vm zj}K(9?IhkIv}>8BE7FuKs9ZSpg~3D=JGlnAnN)LfvNWlCxYUK1tY}HIog}~(NUWyj zl+x7^D)CM`529<6Ww`LcQZlfNSO^$c4@N$RTP-3$I81=hV8qY^KLL}mrBm~beVxYC zd!SU+R7RfqWh}te4>I?H(lT(ew-nN~1onm1fjHL>`Nhh95X5 z!Xa@P$Y`zG8i!oP zu`w&u^+?xtr&W>2ltdUT(Vac3STMCa%><^$>=Rfd^c?TBwe`v}JAs7@=F-t8UKg9g ziOAue^2s+Rzy|PVV(vtaa7~r3Yoi)1iEt&*FNV|1tCZQcaB-peU=zow+$=7~cXu2R zO8&zN?roARAim7JIT~GUF(51DK23D}i#zsE_q85Cm4(Ul6B>)Hs=?9Gl7pUPr>Ar( zh{%N^ty%+)$FV$;a9-j`)aGL^D;!Y*6PEWbRX*6*iLBbtO1t6bdMCSE9izJ9M#-q0!hF*5v&tqa!d^w4gkXs+%ObWNK`Ki z=&Oj942P$lX^}K7^!2%@rs?QjqqmFk4AWsHXbM&-Nh+l4BxKnaG1LtKB2q8t&PeP& z(c1`3=S9Io^y>3eI17m zn6$*^);nM#uQi;ZW+|P!6S<48QX;KaLN_$cPJcJ3cH?Iz7k!m+DGR=0k=ZPFv|hba zdt%+(es^M}_b!6p1)Rw66VAY{QHL7dt+PsvCzmc*BA>bHt>ptfbD6=`=LCzm&U;4? zSwsj_e?QSPoKsa?2AwwBJ$w5Xl(w1n!l(-ZN0pL!H@{+gVB_Fa1aPuJf6dT@UE#ee?ty>~wR zqkam9qtJ{);f9Cxuferz&(^HYU;X&T!Jlva?pObX|1mkg`RmKC|L4cweRpzw|N09T zCg;=XU!H#Qi}0rnSKZ=)5p2!`E^Xg?>HERetCt&8hQ(Wd|LsR#dGp~vCI|ZmSAj(% zprP9Q^Zai=yYbie{(b*Ji?!xU6rG1ZdKg^1cr|zxf(mZBAzd<&~AsTw2~og zbW%*yvyg_8p711uQ)y1qFr#vL7)-8Qyz=?I$(7*7r$ORV=MAi&wb|p~LaXoNH!cLv zO*FL4|JyR1h3wuv_(cnZ;FQbYGk2d4zU`2I{o3{8$9osFC68P0>^}!0S_H5;Zj7mw z)~q#CvZm6=2=+f0*6h`S+bX^iOu|dy9W5f<5AQrOtQ$33AN2)*D*8(L>=!P%j0=`K zc;Vo-W(y9y-9~_6|N1NMymj#YYyWE5Yt;3|kbr78Uo=O{ZK(}Gcmy%_%%x}U?dd=7 J2j|-2{{xb2kN^Mx diff --git a/.ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@bits@types@struct_itimerspec.h b/.ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@bits@types@struct_itimerspec.h deleted file mode 100644 index 17cc1ac..0000000 --- a/.ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@bits@types@struct_itimerspec.h +++ /dev/null @@ -1,14 +0,0 @@ -#ifndef __itimerspec_defined -#define __itimerspec_defined 1 - -#include -#include - -/* POSIX.1b structure for timer start values and intervals. */ -struct itimerspec - { - struct timespec it_interval; - struct timespec it_value; - }; - -#endif diff --git a/.ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@bits@types@struct_itimerspec.h.blob b/.ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@bits@types@struct_itimerspec.h.blob deleted file mode 100644 index a9ef22db383b9373a06ca35a8033059865e9248f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8220 zcmbVR&5ImG6z`cxvb#c(gCy5cL4u*DU5x7zOl}GRgF!urm$Ih1W~SW!7`v-?b|V2n z6a^371PLO77ePf29t5uv!GA&U;=#K&N!C}ddU|T6Uw4lQWW%Okz52cHk9yjB@YDNu z@AZ3LFim3_=-YuvLm5nzHh-tZD7eYB^k0=?n#e4O;g_M9&Ad}0;>qOyp7Q5ucA%1p zAF50Woo2_^HoMpRAt>@JP>F~NfF~|r4tAd%?hbc@kE0J@?qbL;|@YDA#PaN&!#&~2LrCcYzNaHw7n#ty<4}UJE z9MxYlsuf7ZGFP{0vm?dmSj&9QXXH(eg9*He(5gctkA$3Ql_u?EjovT;Z5bRjKd`c( zag4`BO_p)!7<=i)%P)3GrP5r3f#Rk+!MVX$Y_3AdL|PGf!h6dX>WZ)Bp(9I6ykcu=t zP?D*Xjf+GW-_INPJFr7JDkcH`B;DO1#jA21f%hdA7J0%!#MpS2Hi3W)83<5rXAab0 z>#SQ6Oy4@=P<;rmapY(;H$VkEDzRy~W;}<5)f&%pnW3IZMResu4AHqtbhm7ckO7m; zLL>rfF)@``g==Zq5eO-v_CbOH(?UNm)IzkY(K!OCtASo7q2hGuSiikYe+`TruWGM| z#;tM?z$9iYcpD0D99uz7-K2-GdPO}obvO>*TupM>WMt#q#&$L1I1CtTWwEZvs`Ryb zbJ-4%cQ3jV-=N#OLei|?nnCj^85ct4bnaU};3^#3E=*hWSz}aeh`ONI5;`izgzq{U z#lon> zhic1U@<<0s0f`kN-X={0sO^LWq#+YyjwQ*FX0w=wrk%JC87x}g?*0mfm$0#?T-VH^ zD)NX;c|IitfW}0n8<_^V*-#@nIg*q$JU5A$&3MM+jc$OUjyXk*yk%WR$iy3sFo>=S zmiEL4Ge*m7;UEy8J!ts|vpPh8u$=&*L5pGfcLpjG2c+an{gTQwV_mL`QSLY7FRKBm z-;U{dqhdg^cLXxI1jc|3gsKuVDUidmv`)zQs59tIAa{Amf*%;i$C<86rpA6_F@!+e zkwV~2%Z{X0)oSyqzZkgbp|!b(a@5s4I5|X!47$;(jCAI@m3D|qjtjLyUiVFIC$)-1 zHYGx1iRP?n#er$eX*)2}W*@>JVfuJd*Ul+N?FgybUEDN3KLn=$miq_WAxd$yNj*j?9F_kFIDzRD&k8Qc1 z!?s9}qF^W3p8Z%vVN0@Od#Us#4#v+wdD6 ziP_e*j;kQwQJ0}grI{9@X_j2as*=O>fX>axty%=vEVRza218Xc=$RiUY8k=n04WPz ziCzun=}hBD4TTWWWJj*B`M&u|yPPJ!uZwAnyXgMSftqox40RdX7MMK4;#ON=BCk2D zp~exP(1E;;uh1$gM?xCfO08rJdR7KAF4G(#)XZE#Fi!`?W*BU@V>UUIg22AQx6|l` z8aKfK7#rfl?u$2KWo9*oPXi<}e8p**PpoO}7Bwz(cR(6lt7J^&Xvc1*PqWQ%li?iV zGFK3e=MW)K^MqphK2lU1AW5BV9`W_9OI3htuD1@Z%ogPygiaPHgj(ZzIku-#qZ_U!Q$)S-8$>$5liJ@@Cy_rHC-^XV`DeA(Z=u>I5{y`2j?@bl!%xu3t?KK=Ly z_M!pQXILbet1Pp}yj!olcH@oV?r2~s;H7f_a^amB{2z2x1L&0snGbjp4q$eY8T_6P zz22F#XP)Ty&UlZWUIF4&NbY+*?_$rOJyrc*iK7x}3Fzuo=t=P^Z?F$S_I57q?BDN$ zBwIWCl}fgZ)RoX3+!kno;RRs0eQEo;VYt1ueSMAL%@6. */ - -#ifndef _BITS_TYPES_STRUCT_SCHED_PARAM -#define _BITS_TYPES_STRUCT_SCHED_PARAM 1 - -/* Data structure to describe a process' schedulability. */ -struct sched_param -{ - int sched_priority; -}; - -#endif /* bits/types/struct_sched_param.h */ diff --git a/.ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@bits@types@struct_sched_param.h.blob b/.ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@bits@types@struct_sched_param.h.blob deleted file mode 100644 index ac3d9d11a9435cce6fd765764d693e4a3e7ce26c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8014 zcmbVRPm3Hy6z^Sg2q=pX*sP#9sAw?swySZKV33$ZjU*7V>%mh|Q(ZGtZg+KCUA;3K z$thPqf#l>j(8D5l^OUcW&md-f^{QvKX1c0-jNn3;SMUAa|3Cd<^y2i%(`TC-Q8FoV zp6EvjD^i|}g*N|B>S1!9Y92r2Y$CZza`?wCE6eB=mQgwWzpvtHp^k(c$Ei@9=|Y{{ zSWj;Bds0^_5t3y!z++dhCVQXk?(Oa+L!qlA=Q;2iP1D^;^x~JtPoFJQ>ywh3UyQ2D zznt@7Tq#-jUZ2yTEXk*YW?8`~;P=Zre=+-fpX^_YOBQEB*0XplYm1l}Ok_wa1lERp z&VnInH?ZoY(mW@iLZLjABTjX#c;&SLDrL}A2_gBg(%@pEy`;3t<1vRg5G+A+8LB^? z|GI2cWLWBn;xr||jvbL)$T&TbG#AXv7@v%?f@&GFBF_sMCYz!?;whU@G=IyfRw0q| zN<8wr9Vvz$ZoP=G>pMo21hFntS;yr6LDF{GY%ag zU*ElVr%x+UR2m$Vhh#!lox=Q@{uv&;n8o)!R-hHn+H_@(0v|2 zm*vHAZvhA@W}+qrptQ~~Ut7`Rf`v4kQk6pWktrCoFWRt_1f1yvTjQl*#5ts_D2@at zq9CJMGLtM-fWHGf<->ZM;9oCdhZIFsI)iYP7MAyggNTq(S%g49Nlh3Sx3_3wfc9&G z^7K99H*|OzDU_Hhr z9NTuQjypC%N@$i)k-)VuKI2u{IHzIR^1n4s#je!{1%elP?yw$tV%M=Kc2be{ zCmz0O27?i0T>J4^)?s7e?=_^ljG^C4E%ZsBCitXO+*YKN6s2GEs#z5uO_d$Gx+)l- z=|tAh`61(N(KLX%URXd{b&(^@dN~hMzDFK1n9s`n0~u^PX>bT#wamOL(u_=KHSy{T zgNZ2Cat(5`spjQ`nn2$FnD-9AND4b2aax#{=c-0fch}l*ES7m{beB0;K{{3s2LS_H z!GPy+qC*4-y9uoBg*4+mflkGayqY6fxB{51uhR9fiUZYZLD1)0QyE|jSOfH;%z6Pk zHfXG$5<2WnVUw19Q84ER#*cBO>(ePXJndHMIu|^U`#}Jwyfg7H14$Xlo^_jVJ$FI zx!2atE63~v)+d-Ud!GbdY|kJ z-h`8yLJh*c(Bj%roR9<5NET1vPR3OXmonu)yZNyl)2ug)abEB^=A0v($oypjNx(TV z3<-U5Yz^_qX*mzv&=piDv>E-;S20x#N1>K!ku)pJExD+NS?`u&c7^^7GhroY23Aod z6P544v#Jwhp&9BSBF(z(jl|U_X1Ac(xR|%2-uwk5Mn>oI3Hr_Y9Mu@jj1ZyCa22bN z$HkGqHY2yi9k}J8RZcb;7A?cS!Q+0+Gx#{*)dfXjRD*kZ%Q#X)BZM;9Q!8w}4~w+7 zY47i=Y8vOxXL<9W>R}umn z0)dT{Xo?V8ZeBnzUk>W^FxY9w++}yxFP)`C+fWYq2t$7r`$BUS#+Y zr(^%HuC-G}UhDpZG`1FU)briR%xQKQ4mr+oa#Jfjf#(n*Q1b=F%za)}tKeO3{fuwl zP! uses. */ -#ifndef _STRUCT_TIMESPEC -#define _STRUCT_TIMESPEC 1 - -#include -#include -#include - -/* POSIX.1b structure for a time value. This is like a `struct timeval' but - has nanoseconds instead of microseconds. */ -struct timespec -{ -#ifdef __USE_TIME_BITS64 - __time64_t tv_sec; /* Seconds. */ -#else - __time_t tv_sec; /* Seconds. */ -#endif -#if __WORDSIZE == 64 \ - || (defined __SYSCALL_WORDSIZE && __SYSCALL_WORDSIZE == 64) \ - || (__TIMESIZE == 32 && !defined __USE_TIME_BITS64) - __syscall_slong_t tv_nsec; /* Nanoseconds. */ -#else -# if __BYTE_ORDER == __BIG_ENDIAN - int: 32; /* Padding. */ - long int tv_nsec; /* Nanoseconds. */ -# else - long int tv_nsec; /* Nanoseconds. */ - int: 32; /* Padding. */ -# endif -#endif -}; - -#endif diff --git a/.ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@bits@types@struct_timespec.h.blob b/.ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@bits@types@struct_timespec.h.blob deleted file mode 100644 index adfe62e81030d6a925bf30ecf86f4c52b4620b5d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8447 zcmbVRPlzN}8L#dPvJAuQpNs~ghGLZ{hU&`TW(ash6czJpC>UH;X>Q7ts zYIwDk(zTfx%t513F{ra1)JRFa_aGs|;ln+9d$2^<~ss7KaD7-@@5AJa`&v+50@W+HL z7TzN)q1o*JJrykT;zVS#AQlB@GB3`b-|k-Tmtj>Fp~zTLfq3kxr^3TePYx%CVI*W3 zraT2+(`7uFd+&Ys#aA9~Qp@uNS5K6xn@`q!7%z$}x1CE+L=<8g3lE=} zJU#hLlU_i?m`@di$0tADbZ+B9z}%?<2t8y0G+COT4kiGnV#;d*5R_I4#%srWOkp7m zm$Zl>`(!ZyI^=DbN*u;CoUOK!)8hsn&_aznqa<{1%+~D@ft%9r@28?kVj-XkM|i{ zqejb;7l^YJh@k|EF})O-9M;V#GN`4~mQ@06F*fH|wmW&;zyv9wSVBeu(?SC=k&N}j zXdHoD=b-0VEU3NKv~RETrGt^-RsAJYxm5`Ys7#I(a!civV+%;a+cX^-SH#KH5*hNA zVpejOk(F~R+jWd%Fd(FtMH|SbR`z;x-9K3GUbQoUlJ4k+m8N}b0o^Jmlrdh~b6@*_ z2{`s?n6~U^l~J*34T%EI3pF>YrWW5d5XDL=;^Dxs=B~af9Es!kw$dP8d zn1?Rkavw5S^~%Ey8B9B|vk7e@v#N?TA#+;Jt@=V^BJ!$Gk5P^jK1SlG`7^>kX z02w>6YQDzT3Z|L^OIbx_;K*MZ0WQCm+6R<|ft9_Xkjf=6H*BF)lbEdv87yn-#DqqJ zL9YUN$V*oIz&HU8fkQeu`;FDq0&!D+nCmv$AzN}>!3udjP`TZTDiZ0G2#qD0vxABurZT7Qz*L)k3WJ2|a5rwrH$ z3|!Ec4jyruST9aQ2K$uvKRJPHApTU$tdgU+I?LC&Q4Xd=*b=A{{bA-*N>5ujxX`S( zh+|i-2bZH8TQ&#<|9S=cwvx=jzjVJj=v_@RAPZ?gO+4xXEYK-WI~cgtscW;TOO3KUgB}k#A7Eakaz7L#S)SV7J?30PqxuvAtDyc zVO7S90G4Hiee-5(JG)ZzD+ytX7?kB=TCqUTK=pnLUu(@>NnK^^9j1ZKL=R0!=7^p_NFAB6Q5$h@f5` zRNKj*+ZVN(u>l13Wq}?qw?w=itR3;87rs(=RJc9@YRWDIgBWG0=CqgS`+edtNjnY)qj_b9BtFuMD z*sv!H)WR$mR(ac;?e7CtZx{8PxWUL7n6Ui9mjxuHXOPgvEYlUH6Q+g;XiN15v9Asq z^tDSRFq{i}FNPF4Xq~J0Hp99tn&t&t_k@pJ+IT;@<_l=-b{{pnl)dgVElyK&$9vxX z?gzb(?s+>GfB60z`_aocb43CRBwy8VACNpRp)4h&RDTocJ^uK0um1Uu`WzkX96Y%* zx}bmj>f0~;<()sbj_a%7)RoOsmv=57?2KMteYyG^U;Or4uT6jQyJsF;y!)G9y!yBF z;oQ6U>GMB(DSGwyYQ}-LPrhQQ-aYx>c+uP6zvA8f(*4_CnH)yGeh%+ceZbGBNa#a5 zR`H4NAJ0YU!@oqFaCr8D!3;<~;YXF+g)HM|G|Nj4;THoryt9BN(9fqnymu>B-%q^J z?*8r*`8?VsP-cy{&D)sMilyWhL_ z?ss0k`WCr=eDBLQkIC`vJGbuNy>%04{g3I5q~Ct#9|G_3mGRSK_4|f*p)mU&^X_p+ diff --git a/.ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@bits@types@struct_timeval.h b/.ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@bits@types@struct_timeval.h deleted file mode 100644 index 3466137..0000000 --- a/.ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@bits@types@struct_timeval.h +++ /dev/null @@ -1,18 +0,0 @@ -#ifndef __timeval_defined -#define __timeval_defined 1 - -#include - -/* A time value that is accurate to the nearest - microsecond but also has a range of years. */ -struct timeval -{ -#ifdef __USE_TIME_BITS64 - __time64_t tv_sec; /* Seconds. */ - __suseconds64_t tv_usec; /* Microseconds. */ -#else - __time_t tv_sec; /* Seconds. */ - __suseconds_t tv_usec; /* Microseconds. */ -#endif -}; -#endif diff --git a/.ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@bits@types@struct_timeval.h.blob b/.ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@bits@types@struct_timeval.h.blob deleted file mode 100644 index 954f0253de208c14b7f6efd8d42e95456b3522bc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8263 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 diff --git a/.ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@bits@types@struct_tm.h b/.ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@bits@types@struct_tm.h deleted file mode 100644 index b13b631..0000000 --- a/.ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@bits@types@struct_tm.h +++ /dev/null @@ -1,28 +0,0 @@ -#ifndef __struct_tm_defined -#define __struct_tm_defined 1 - -#include - -/* ISO C `broken-down time' structure. */ -struct tm -{ - int tm_sec; /* Seconds. [0-60] (1 leap second) */ - int tm_min; /* Minutes. [0-59] */ - int tm_hour; /* Hours. [0-23] */ - int tm_mday; /* Day. [1-31] */ - int tm_mon; /* Month. [0-11] */ - int tm_year; /* Year - 1900. */ - int tm_wday; /* Day of week. [0-6] */ - int tm_yday; /* Days in year.[0-365] */ - int tm_isdst; /* DST. [-1/0/1]*/ - -# ifdef __USE_MISC - long int tm_gmtoff; /* Seconds east of UTC. */ - const char *tm_zone; /* Timezone abbreviation. */ -# else - long int __tm_gmtoff; /* Seconds east of UTC. */ - const char *__tm_zone; /* Timezone abbreviation. */ -# endif -}; - -#endif diff --git a/.ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@bits@types@struct_tm.h.blob b/.ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@bits@types@struct_tm.h.blob deleted file mode 100644 index dc76dcf30ed0e8758c2cdd8c646cedd845a95c6e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8939 zcmbVSO^h5z74BJ2%>InWE8AelSkQn(j7@LvV0#lU35i5NL=X{?O(YbYPEB>qOtJkl zbXV`}8USFHE$eedPBmRgoOibLj#+b)fL<_@`#zeic$eUb>~e2vjj#1c1z zziiO)*g8Q25)J=fE@u)ayF3~?K2I1GadPm;V&__~xmlXHJfcAc@aWa6ZtvPgZ=>h- zxk%lRg&=D%@i#`+dp~^f<+qMgi-R$fU!o+#C=4AXGLt{ksydE0sQ9k zjyU!o+VZxpJ7ekuJj(W+VU#JvRATb_Bt>BJkdH)AB&`RQ9;AYW9;gr}2Fd{=B1>3m zv;it5(WI{Dh5b~3i#=f^C28mk8N>mnE}BbHz5efC95*To9E(xHi0^?oy6c5Ja{Pmc zgq#`$Bg-I&iHIB;hhZF5lTFYb&V-H#nt#rzN+BMyl;1YH9Vz+;f~6BOHlCyf7{!we zR@G?OK4oLUyNU-?3lRyPTvbP_SOj<(6&@Gh$Rr&zbKq!lD~$^@=6nr! z-^DWK_HJx!Zai3)7l7!qfi&UH?%m_TtsMw9uT%j*H+cYE7RGyx1)x$f88r?7C0T&^ zIu|`USV+SONqne2kq-uKiZ(1I70%RxE%#Do#A&27j(0ipcTI3D$d&5NKD1sL}MObT>c+ zJUmi$yw2ImY9virf_63kP9j=1Dit;US#M{ zc11f?jYJyWln+x@N0 z%p;Vt)Li>!8FYi=oQ7q~%qyLWU8@NS1TXa5el{?~u4Yl}q}*>#Jmkp-g8`vTnDHsm z)yBf_8KipTK);U!7Y9w6Aj>#msv`MbJT@OaYu1DfCW#ul>M9u97jBe6=ZB0}MNNCIy}(veYL7)*G)kZVwyN;RV- zO_RKbr?L=xW0H_?p%Y*W^t7gCJY`l#sKg8HJczDLmiod6OG(W#q9LGQJs9~6ZqH`Fiq{m9wFLHt1(Yfa zvr!>UWbPf`BmKstmxjeB zV3Ck>ywTPgmu7Yk7A}}e8(At{tS(M?1otWLe{%wC0Dr)TO~_&SmmaClo=U80iNbw^ zM76ychi$cwY+YZl?BS`lZl z@@OyKHJ4nJR$d6td1zLWN`|r%m{)mRlvx0;1V&x(NQ`Q5&td~B^fxGz4Yfkm`|2ar zCAIPUteVof#ZWI9=A5f^nAfrHUXmo(v*zw4QPu=*mj(eDniF{zUnY2vZ+d2En0T_? z%ZpgggHhCj)zuROA~vc)i{Ax2)%m<$B|rH)!M7qoc3URUIYx&~fIlw83) zd?GL+!`GaewIdHtv|N~p=7f~C=Fz}Zqcy+D@k`CPRgTk$^IBmDJdFr}%BK`L&KXt3 zz0hd0#WQ~XGNo+5bD=j2F0U5(^@h1vpcZ<&Fyft+Y3bzqZ?AFq^-P=pB0!-QG+<4M;{_$h? z?{80+t~~nJJ3qhsk?F_DcmK4#{I?HSQ}I;v)UyxV&dZZ6Li^hAmH9E9frBa8FwMxAX@3czQ4&Q8*+8tU;r8N)l zEKUFT=r`VZ;nw$`IkZk#=UdXco$|Y!d_eo{Z4r9IP{f0QwR+}^^)!Qo_EVdYRM?=- zGdrILJ&x4@yOxO?$F+BBQ;8|W@w;q3bXJcjMIj84ty1iRg zYrV66N%F6^*Du{u{Do^Y{sW&J0DISZoE%73*ar-rYM-HjCxvIQc#oi2*#w!4Lh!bZ4l*|MV9S8}u5jw5DWu)Ed{xKsYc zCjEZG_BfHRBVd+um(E?0h|aaoU9pr}MGR_)q!y^w*Wrg1$L`(S+yv%Rol}VARQptc zrHEvW8J@I(w_`mSM`DC}^rS&Moz4Y$a;M$7klUij2c227h4e?yxh9#{I%|0HT6?WH zxyUMwc@$>~_Lty?6p#MQHQ-+DtRnYnd$r&$l2hY`mwSa9{`&&Fmm~X)o4~%(SwZA0 z?Ue#~k>nbC$|$nu;iw$AdCR`svjaxPHhhOL{gl;O?kuCY<@RzR?$1{DzTZ9g{D)<6 k#YPGdo+mK`?k7K?ezpyt?Ve?|TI;Q?CHd#JHI+H@KXg0?!2kdN diff --git a/.ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@bits@types@time_t.h b/.ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@bits@types@time_t.h deleted file mode 100644 index 84d67f6..0000000 --- a/.ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@bits@types@time_t.h +++ /dev/null @@ -1,13 +0,0 @@ -#ifndef __time_t_defined -#define __time_t_defined 1 - -#include - -/* Returned by `time'. */ -#ifdef __USE_TIME_BITS64 -typedef __time64_t time_t; -#else -typedef __time_t time_t; -#endif - -#endif diff --git a/.ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@bits@types@time_t.h.blob b/.ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@bits@types@time_t.h.blob deleted file mode 100644 index 43d1efd0624a26d1ffbd34796083b0271e1568e5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7937 zcmbVRy^b735Z*P&;t;`w$O$KtVP?lCjxz}n!V(fBKmtkA+ta(-?EEp^bGv7Wh=hPA zK#q6=2zUmEkRT)^5)cyaVEL%7o}KNTsh(ME$wp|atH1i`uYTr@$+MrodHiHDoy4mm zld*Xeiz1QnQW^VqRnOy(xRKGvQmk@W#Toq1OqAv11(EW6`F~GEo1$8)d>JLGlEM_# z^}EO2JNYrLbrq{zq&2`3_wL2#Z_UnU=kZ(_9cMBFU5iaJTTPyQ_x0l^htlS{l=c^E z>ftYYJwjGhUQnm^GI&=mH;kugAvoZt@7tf)zH`YgFQQUJsmkkZw9IRVSXfMK&NTw- zL*AX1|}30A-Ry;)Rokv56~!!M#qe0b8R5R%#fm7XVFqZ9w-r`yR6ht z|9*eyR8&}+RV8`CK%H2#OyyB>o%2iyQZXJ`qy;y5B#JC6^03$j{Sj@%ilh5`L3IYH zOltLr4m(QBuZ`3jUXnL?2`2C+!mFN)+zMG5Rpi5B!E9K9w=9lc9ynVtI5y+bP-Hwg z#vXp~;rnA&sX`kFP!_rqk{g1>HY$-!6m@Rokh2k>0EFv6=6Jr+CUNcxUF~ua;MKw~ zWgw81E+w5fp5CByL56;>shY<~WAXXhv-`6LExiE5L@ulgKVAQDnB3ll;Papf0D3F} z7_zLm8YO_BVK!?b0LtqW-)k>>e6a8gH@r%KeewhxI+krnC4pdi$<{(>cnTOBRMB;0TPp{%x#=IsyLatO zWYJw-kTTs{E9h1w<3dPHb6@v>?{MtXkhbWvHmF#&#-Kp*Ld~7m3nF(tk76ZN$@s&= zGfiW#;6fT2pHm%n7XDttQ_mx)_qkE#ddw0$QdZJ2Qo@RozPjtyN-j2)Yr2LQOm0n_ z*HHQ4#XHipfQC*uK&BcJN15Z^JaqZQeW+m9D~~s1FzqD4Cba9BT~*{MTXDT2?S;lf z6-R{zwYjH8YVs^;YPhyU%t~JI?5G=H3S?eUBX8;22uys`%!BCK$1+TOFq8}oBOU?) z-h-Bp2&*Rq2!{m_8nhU;;b-77u_i6w`5NF(s3eMi!(YP|tB z+D+*6lpF4$Ja>gBEl&uMK{wi#kx{NYXoo0r+_@EaJ+j9~;p}9W`rn$edDNbC?XIEX?bZpT8sS*GxzfV2g##C(PDj1n|TLx}?d9AN>+enqH{!{GWDyQ85T1o0J-n=_B}cr#%K-iO-+AEnApVGO?#kjU_Z z&cNj1LhH8JS#8E2r1iDR7Zm$?akCwmYjZ<^^Mo6&AQI0LLZJ3*itXq~Q*ksTeRlkd z@9$IE(%MVCF1Us*nhgg{7HEZE2uQqL&Gd(X-DgHOFdirhK1|qx;a3Be@huR#TIQ}h z>pfEs0>;vQN*tN@Y>cOv{{Q2#}KX!+khA@F&&t7*s ZsTRrZx3hE5J3XD=zh(cunA})h{{b}P(Z&D( diff --git a/.ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@bits@types@timer_t.h b/.ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@bits@types@timer_t.h deleted file mode 100644 index d71a413..0000000 --- a/.ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@bits@types@timer_t.h +++ /dev/null @@ -1,9 +0,0 @@ -#ifndef __timer_t_defined -#define __timer_t_defined 1 - -#include - -/* Timer ID returned by `timer_create'. */ -typedef __timer_t timer_t; - -#endif diff --git a/.ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@bits@types@timer_t.h.blob b/.ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@bits@types@timer_t.h.blob deleted file mode 100644 index f9d38785684119956741ce73f7ff4619936b9e73..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7974 zcmbVRJC7Vi5Z*QD$dEJ*_s{BkAnmf9+D+UkO@d=dV6|zo0}IsJ-2(7kOQa0 zmH}Sk^hSSgYi*aJv-YwQ$4eQ#7WjxSAX^Ts;cMq8w7*zW4}aO~ z5mM{Cpib{)@UC2L7*EqeaKKOBw?DD{@Qj_^k4h1xDzCTEDz6=4VKK1z=T2*l1s@=tz|{}0FAO}s+h5CQ5gs^Go&c5vS=kC50r?}T~_Lkm%ki3 z6&03dttC$ws1xTbQ+bqJ<~&n^RE$TKX~9h%i6YC2JS?_Be?%Lx=IH)jP@O?4la+c* zhaDvrmqu0_UXnL?2`2C+!mFN)+zMG5Rpi5B!E9K8w=9lc9ynVtI5y+bP-Hwg#y)@e z#b;wysiHCvpe%GJBsT<$ZB!zeDC*qEA!j2%0SM0nndAAYGKq6n=xUdX0IwE?DFcDj zRVnGj@$?3r3o>-QrfLx*jm4)A=I_rxXz2wYCUR+A_~`t%!{qiZ1fK^@0MKI*z>sCd z#V7#;4YOGj0Z?A2Sg*b8@xekFZn#c>eewhxI+krnC4pdi$<{nJU<_ z&V?Ip^BqIgW6oF zk(xY9n&wfFX&1c8)Qc(#@R##|G~Z|R=Fuu3)q4h6E`f#M2%}nJ zCJpjbHql8KUyK&LE#$E*+3ADeM7Z6J*%X{NcIyb#9ccvKw4X?NU9GpdM!VIUUSGpA zl;^JS3grnQG8i-4HZsa}2jdV$jytykuSb^KNw1=iqeK`iF`PZGcra}^-2`Um=L^^n z?0`=C+B@aBoxvsrbLr@jV2Is|h|1xi5!V8Tr=Dw3G%f72a#1hR(Y?lQ7vmLX(@OCayrNmE zD(bDr^Dkm(8UkdbUC_x)>>jb(2v1kVt{simFCek2#^AaN_HD-k)i}+L5TRYNi&f

`;32)!`35bQ^U`Zx@3+OaP=l!G9?B68d4ksfdM@IZaIhv1`B*C~%%|!xcp0c|r)(eoV1*A89HskfhI!ulW9} zOWS~Zsn-S9utoC@LX!nr;kOGCZ&x$@U10Z>(XEvSih_j+Z)Nz=fMt9OgsxV(>oC1C z^&ns@?U%%%KIq9eDV4%5ujtVYC0x-4pX9p=n<;8pXt5t5rzZ#BN%wle81 diff --git a/.ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@bits@types@wint_t.h b/.ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@bits@types@wint_t.h deleted file mode 100644 index fbd63db..0000000 --- a/.ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@bits@types@wint_t.h +++ /dev/null @@ -1,23 +0,0 @@ -#ifndef __wint_t_defined -#define __wint_t_defined 1 - -/* Some versions of stddef.h provide wint_t, even though neither the - C nor C++ standards, nor POSIX, specifies this. We assume that - stddef.h will define the macro _WINT_T if and only if it provides - wint_t, and conversely, that it will avoid providing wint_t if - _WINT_T is already defined. */ -#ifndef _WINT_T -#define _WINT_T 1 - -/* Integral type unchanged by default argument promotions that can - hold any value corresponding to members of the extended character - set, as well as at least one value that does not correspond to any - member of the extended character set. */ -#ifndef __WINT_TYPE__ -# define __WINT_TYPE__ unsigned int -#endif - -typedef __WINT_TYPE__ wint_t; - -#endif /* _WINT_T */ -#endif /* bits/types/wint_t.h */ diff --git a/.ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@bits@types@wint_t.h.blob b/.ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@bits@types@wint_t.h.blob deleted file mode 100644 index d4c3e5fba5292702c7be0a24400f1dab54f9474d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7936 zcmbVRKabo*6yHr60uda#4kUCyfpm$_IdL4 z4@TorJkK*3n|ray6B*Bxv47|FB>sRK8Qqa$u4Nf#@Q(vg6r-ym<$CtGZ$*o|JXLxY zC90Id-XKA@$JWX@K0Y81-=8fgaF*`nr3K6AB*UM<8Ylm1^ zOl-m{1lEPTQ6W&YA6Ru>8JRIKAukEZspO_EWkvb`jk0K}n6Ye983-{mq$sblXeJ>K zl!(z?R_eEh-(7YpDlE*rlssXePMoq#=_onZJX3;HjIT`7oEsg9Jj-$&7F(b{qJ@}q zbblwP&LEY^O5LNwjuMk|BdY~3$dkMT6L=EgRZm7Pg)EH9b-!3J8)o1wi=&eV&K3-g z&A2oa8BdO}_in%c?vPa~uM7kz3!Mqc4Z&gyl}IM?S{vEtYy>C(;b|aqJYQ8NaqbEo z?Q#*|)xt1kAdqEMNIG#my+P-K41HfyHHneN;=?x%ZXLY2rWb&i$fZ&n9Z69fbu%U``XDKA1qwM1uqj|ADw_hhq4W+BoIt5*_tQ? zGtLtgd48%SQ#qT~TG-1{1@wEc6FI48G5(T>JyATWGAX31cCg4dJVcC5i#!AZC^Z(~ z+(FXB1Rb^n`QDTq$`z3{o*lt(1607HwBzxke519oGv%*(;LbRC~~Hl1Xv}) zQf3YASY*?x0`!*2u|jTXxlL>ZB)m=2(IBx-3bjNi(h#khRni0!*d{k=ho^wCs!v7R zi|bn1o6SxCK%Tv7XCjO4_=uEgpISnX) zNj)VJ*YhY=Qk4W^(ni`e22(Diq47D@VQ1m)(zX$3c&nKQ z(XB5_Kk>m((ld;B2n2W!$e9SMCjE02n*6tWD+s3OTZamJtKh z@rno22Ff*7wt+r_5y5uoq_4fVJhw9#rJ&;+d?grSw-QkrHYHC!69G1WKUFglIl^`P z-LRe+Bs-Y@?Hm0UC}@R!ivz*+CxsL0ZNmI=CCu9WdvKZl3u~l*v@!La)9SBTm2NZ z-`r?~bs0?)C<4KWU{Dx3$8ku10yupThQ6dip=J!gSVg=P*cNqMi=t_6_sV%aNe3qu zJ2wp9Fq>A2r{I;6rK+NqJ)VCNLsJkSBkkx-W@7slJ7@58maodu;Qa+8c8KVkLalwv zp+GfGv&}(hN^E0Q`Yb=Cxf!*scfy?rwKciRur3+&D37zUOyNTTX$u~SSq#|raugjF3p1oSbwol7s4+f9D1^h5G+TXuE8jW{v?w(v3?~Zm) zM)uEtWBYsc;@_8_dAj)HlNas3R)5C3JG=XDk1u|Ht^W4wn}7YtKED0oU3M29Kl`fN zDD5@>wRZ@bukBoW>5Bb*WprV+Uc7VX;otSAPkqne1C>S4bd3o-+gmGWJwr|7o$;+J KWB5ICn*Im!4ad&_ diff --git a/.ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@bits@typesizes.h b/.ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@bits@typesizes.h deleted file mode 100644 index 6b6ec0d..0000000 --- a/.ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@bits@typesizes.h +++ /dev/null @@ -1,106 +0,0 @@ -/* bits/typesizes.h -- underlying types for *_t. Linux/x86-64 version. - Copyright (C) 2012-2023 Free Software Foundation, Inc. - This file is part of the GNU C Library. - - The GNU C Library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - The GNU C Library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with the GNU C Library; if not, see - . */ - -#ifndef _BITS_TYPES_H -# error "Never include directly; use instead." -#endif - -#ifndef _BITS_TYPESIZES_H -#define _BITS_TYPESIZES_H 1 - -/* See for the meaning of these macros. This file exists so - that need not vary across different GNU platforms. */ - -/* X32 kernel interface is 64-bit. */ -#if defined __x86_64__ && defined __ILP32__ -# define __SYSCALL_SLONG_TYPE __SQUAD_TYPE -# define __SYSCALL_ULONG_TYPE __UQUAD_TYPE -#else -# define __SYSCALL_SLONG_TYPE __SLONGWORD_TYPE -# define __SYSCALL_ULONG_TYPE __ULONGWORD_TYPE -#endif - -#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 -#ifdef __x86_64__ -# define __NLINK_T_TYPE __SYSCALL_ULONG_TYPE -# define __FSWORD_T_TYPE __SYSCALL_SLONG_TYPE -#else -# define __NLINK_T_TYPE __UWORD_TYPE -# define __FSWORD_T_TYPE __SWORD_TYPE -#endif -#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 __SUSECONDS64_T_TYPE __SQUAD_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 - -#ifdef __x86_64__ -/* Tell the libc code that off_t and off64_t are actually the same type - for all ABI purposes, even if possibly expressed as different base types - for C type-checking purposes. */ -# define __OFF_T_MATCHES_OFF64_T 1 - -/* Same for ino_t and ino64_t. */ -# define __INO_T_MATCHES_INO64_T 1 - -/* And for __rlim_t and __rlim64_t. */ -# define __RLIM_T_MATCHES_RLIM64_T 1 - -/* And for fsblkcnt_t, fsblkcnt64_t, fsfilcnt_t and fsfilcnt64_t. */ -# define __STATFS_MATCHES_STATFS64 1 - -/* And for getitimer, setitimer and rusage */ -# define __KERNEL_OLD_TIMEVAL_MATCHES_TIMEVAL64 1 -#else -# define __RLIM_T_MATCHES_RLIM64_T 0 - -# define __STATFS_MATCHES_STATFS64 0 - -# define __KERNEL_OLD_TIMEVAL_MATCHES_TIMEVAL64 0 -#endif - -/* Number of descriptors that can fit in an `fd_set'. */ -#define __FD_SETSIZE 1024 - - -#endif /* bits/typesizes.h */ diff --git a/.ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@bits@typesizes.h.blob b/.ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@bits@typesizes.h.blob deleted file mode 100644 index a644bd06ae82b302de8012623e9212c4b2701cb5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 11725 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 F{{hDX<30cY diff --git a/.ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@bits@uintn-identity.h b/.ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@bits@uintn-identity.h deleted file mode 100644 index c2d523c..0000000 --- a/.ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@bits@uintn-identity.h +++ /dev/null @@ -1,50 +0,0 @@ -/* Inline functions to return unsigned integer values unchanged. - Copyright (C) 2017-2023 Free Software Foundation, Inc. - This file is part of the GNU C Library. - - The GNU C Library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - The GNU C Library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with the GNU C Library; if not, see - . */ - -#if !defined _NETINET_IN_H && !defined _ENDIAN_H -# error "Never use directly; include or instead." -#endif - -#ifndef _BITS_UINTN_IDENTITY_H -#define _BITS_UINTN_IDENTITY_H 1 - -#include - -/* These inline functions are to ensure the appropriate type - conversions and associated diagnostics from macros that convert to - a given endianness. */ - -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; -} - -#endif /* _BITS_UINTN_IDENTITY_H. */ diff --git a/.ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@bits@uintn-identity.h.blob b/.ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@bits@uintn-identity.h.blob deleted file mode 100644 index 6e22eba1466613faa3b0e4570cd08acc596d9dc8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8734 zcmbVRPlzQ)8Sgh)7Lp7oL)_#d+icijvornL+3b#@8zO@%4w{X`k&r_u>Q&c!ublq# z?5dtOli)%0=tabXl9L|79+D+0A_#&P4d^A8ARdH(7ro^YP_mhP^;P$K^}4IOUotQ= zZ>GQczTfx%`>L;dAN~GEuf6RJyl|Q&JXEiQEQ@$J5lVkgi&6L-RXlisvuVonFo8dY zY&P>AVlho8pY&8P&+=oDPJ&3}oT)57duBbk-dkZI^H8KLE&v|e*$MZa9_|hI!jVui zOn3sk#`9=6^*;K^4_M1UPTCW%Oc=q#m)U{1z( zWE^Kyr2)&5Bum@L=4g*#&ZZR2-*Bo?NF-c}SKMw#iqVyHR3E%mSx9+6OoZ|kuseuvW33|JL02a65>xMVv7_- zNfkr5rUsVtgoTKZ@hoct0VOqLVBFrKi2>TL3D$d+Q)pL?sIl~DbvHl-JR&u9yvy0f zYE(*|qn(|G=qsR@({quke%)FjgIcC+IT09-u_?#4-KgW1O^_0rB~&DEEesGt#aOo) zts_wDTIhKi3F_`Ob?IfjY++P`ecZWP-4Uxtw(AnYbUXfQhHL7srg*s)XdrG1^o)cc)O z#YhG%b;($OtM4W5#bd$1$=*^(*9h1L)=+9uaGeTSEKBc1gpPWXUMF&2lvMn{IRP$r zeLA(y5!E&VdFNCDB`qh7Mz?A#u0geVySLZ&*~l_i`vzqZAu^aU7ww_9)~$>=uHsmk z6-KiFzTM*s5}A?+10%Y#VHFFecBh%F^!R)N3xb}{owl}4S!O4&NWr|>d!*IH=0ZfI za8L5-HzL3W@W*1}M2>LL5n5NhU8>%a2;09t(Vb?kN|`MR7ZRFwHs`YU=!Ine=9-N^ z=ie{j9!-)d#Fv>Pd!uVn3<&g8rkR~wm*JGpp$1{!XmIT)PRIdjBnzf+ zW5)9U?#y!c1)Lk(35~Vd4Vjj~bdMCS+s!3MxGZy*2_ymM1h6Lb$uTvgI{*wna6?y6 zAyK&mpsxa&GaQ~8Y9eWz>09Nj7{$H&iryOfGfan-pfOk_C$W&Os~*d~hyk)tkM|If zdhvEfV*QBTGH5)>s&>?yzko!`=v+fVztcWPl}6JeMB9#7$12j3?ATqKk=x=%xZ$BX zCzA||mf_yzaZ~0oye4q!f+8`h!9BfY9I2rZLYeHT6{g;|i!`^?&gXSCwR5ZKUms{V z*XYpHvFl=z=GfdC7n8_q4%bWLm`>b@T*p@^5es$J4sE4Z5&|?A z5Q_CMm}y7f(6|f){$+vLM%T1>xnH;Bhq(t{iM!wFloTA2A&XyzO;Ks^p(j{N8#$d~PZ1bV>51#+q`~OJ4 zc}?fKV7?jLeL@OYN%RD}{0Og*QU&39ZRO$VQ{IgmR|dP@?v;(fju&oto;NuE#jPKH z?%9X`^%rk*0DpVuzkcz@FZ}cQzdmqDdHTje3Vf_dDIbED3|NPlkpZWjK|M!P` z8WY?F`b7$tyeWXtgVxfw%G=$2tm5&Z{;;v*@7%mF*xla!@`b^h)uZb7;Cx~G^M8Nl z{g?mz&Z9dG5fDM81noud`t_QGtNvAxu)Vzv65gmdSHCSi&((|1eWma>?=&RHX_i+q zv=6=EuqNZOe;H)>+djy+umEi$xQZ?B(xr=F*zMcf2M;z7(7~GzHsL?lwyr&~xwPhL z+?S_zZ|~wMFx0_)JT=@J>Qj}Q%&98E%2WPrA5Q_WgE#Qhm8~oKRQ~Gk*dH(b_uJ&) z@aQ|_yN7p=?vlf=-MM>oc=Qta1{i1eNpq#^yD9uV!2S4VAHTh!e}2_F*ZKD`o9(|+ diff --git a/.ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@bits@waitflags.h b/.ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@bits@waitflags.h deleted file mode 100644 index 7513427..0000000 --- a/.ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@bits@waitflags.h +++ /dev/null @@ -1,39 +0,0 @@ -/* Definitions of flag bits for `waitpid' et al. - Copyright (C) 1992-2023 Free Software Foundation, Inc. - This file is part of the GNU C Library. - - The GNU C Library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - The GNU C Library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with the GNU C Library; if not, see - . */ - -#if !defined _SYS_WAIT_H && !defined _STDLIB_H -# error "Never include directly; use instead." -#endif - - -/* Bits in the third argument to `waitpid'. */ -#define WNOHANG 1 /* Don't block waiting. */ -#define WUNTRACED 2 /* Report status of stopped children. */ - -/* Bits in the fourth argument to `waitid'. */ -#if defined __USE_XOPEN_EXTENDED || defined __USE_XOPEN2K8 -# define WSTOPPED 2 /* Report stopped child (same as WUNTRACED). */ -# define WEXITED 4 /* Report dead child. */ -# define WCONTINUED 8 /* Report continued child. */ -# define WNOWAIT 0x01000000 /* Don't reap, just poll status. */ -#endif - -#define __WNOTHREAD 0x20000000 /* Don't wait on children of other threads - in this group */ -#define __WALL 0x40000000 /* Wait for any child. */ -#define __WCLONE 0x80000000 /* Wait for cloned process. */ diff --git a/.ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@bits@waitflags.h.blob b/.ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@bits@waitflags.h.blob deleted file mode 100644 index ee6e01274fe270bdd542ccbb0d3cc3a6678281f2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8283 zcmbVRPiQ4Y8t+6e0d+!la7We|gQK(H(CNg9aV{cZCTbuiG8>7ohoW9}z4yxWpJ#XV zycahzUiP*gy)3M#C-LCLo1TUlzxt|Qze;yi_ge$gF#Wzi zzwb|df2yDH?)~%D?JvCrFBqmV59HecOG6$EgjD~AMK5@jO77p_Y?$yYh~YnLY&7y7 zU=d9Q|1Xz6PP1c?4E#`JoXIphd0{@i-ampO&jOLKr~r8E^5tOT%G$=-M$i*74`LpJ zto}G$8+!Nt^3LrqPgBd25m&z`Q&0aglf!tHC8>>jMuWN%J|;AZQbqy4UEhpja&?Pr zZTchTM((5EE%7rFrZRIOKs~0lG_3eevUmr=5xdM{<~P8WIr4j!7&MKRiijESOa=vh<^r z%EV`B9H)t!Y>fW!$81Q^{f(e%gG9`8@wPqeNYOiyJRj4MRg;lm3^iH2YS8cr<0C23 zq@B!}4Fm9&!qLbBZ3_lRWnAQnj6p}pOS^kJT~>)Smk^-Xr4y1HfkyUV3o=OVx>m?T0%AhUeL?TKT^bvhSl?B_KSy#UKtu<_j5`r7kV zc>#za?<*G`9)EN?xebNjbEgRax+?-0vN*ljSpb}dsjTqVu580n;s~aZY-N<38E25PG(8rah?Mk;gsH=lJLDU%L*6R}0Y0sW4N_E<%Lvjn z(Xgx>1|mZGqtpcgN@~Esxt&E56SUhBtoJgb(5@_5W7y#gH$VkEBGGlcE!f&?G|zd4 zezrQItAOH}9*abF+vbD}X6dqJMW7?bh8){=qmCOsK}u+rP>~?CFhHzH#@gLzut2SI z(DNh|)ZT0A+RJ+B5M*Rkdka-*m4gAQl4FOQ(|DEG0*dfFLx=V&`pGpC8F+Is$hj-X zD!Enc8o@CH5Yj55?#QZFwq|oVKUj57#~ELt+uF3!)U{?Xt#U#cK6uDe4hDV7xU}QbqTSBI-wQbEi4XlgkwTty zS%NI1jO&UNl5}KOU3Y87`{PUxU2PSNPh^l3(D~uS>!PUuwQ*=bGHWA8n)%K=O!*dl zC}27(cMoK+?S#%DwCvW!khXs`3otApH? zB~y7293Pj!E}NY5#&m0eb7wUIHO(fHMptVrxc+oQw{N-b8Om^%d($$A5E)FPRU7H7 zb*IK5TXCGa73#XLYP;2|NTf?543-$qhF1)jDx7)(Q)Bi`SR~XOZ}qjoWw@Qd!Uc0_ zCyO)0`r@10JOQ1N~kD1dby=~#*LX*}ej#If_ zT(&mn91t@8Rsr{IIT=EJ>3Op=yQ*S9M$&#YQI9X~*lpd{V1OzMlj(1C78@07ko%4?3JSK z06og6YZ{yN5IpAVRdY^vmP@uH`SoS+T%yz>M({&{6&ZfhX<0tX+{26PxRBkaP5D|R zeOm!Ge5QslJ?XjvXAqZ#z>-x45du{oRMb#sH5Io*tIy^?&dn>8s=GE)uMVy(1?44& zy%L}mW-qYftxL9l8<>7+)H~xTLC#YL7h(9}fW&kH)mjV^-9FmRAjVRCO>Ap&b;!z* zBP#538G1na=0k5`#XI|u=Plj8`qi1Q|9t+=yM!F=9~{1NV`uxi z=XsA_)R#Z2#_Lt}w?27xUH^IB!o}r_mloCYx_5s8xbDAo_U@Jce)oe1T-Wvv_IKdj zvLOlIEv-+k&O}^VzO=fy0MD&b#Lxfx-QD*-_~k!<=4gBO5F|V@l~BF{0qYwThSil- z5CG4qfYr~we*e}t*KZwNJJ>(m-G6;Y*>kp%QN3Nd3Kl%E@&s4_&u2>YN8kVT`Oha` z{S7SG-rEDtho+qR%@SzeoWXy3`RT_O7vQ;B^8fJdn}2`!_n-gqXy=XHLsUJ3uU{=~ zg5C=&7XURppDOt-{NeDk<9~hf@zI|S4_87t3C-z_~0oaa~0Ke?!$mrBkTe>!vU z;CKB`k6zzDys>=^Sy!f@tCz_8*z#k*3(qNU;NAb^&cF9|!LzSy@4sAgwtBU+v;j)b NEuXuvsGcR. */ - -#if !defined _SYS_WAIT_H && !defined _STDLIB_H -# error "Never include directly; use instead." -#endif - - -/* Everything extant so far uses these same bits. */ - - -/* If WIFEXITED(STATUS), the low-order 8 bits of the status. */ -#define __WEXITSTATUS(status) (((status) & 0xff00) >> 8) - -/* If WIFSIGNALED(STATUS), the terminating signal. */ -#define __WTERMSIG(status) ((status) & 0x7f) - -/* If WIFSTOPPED(STATUS), the signal that stopped the child. */ -#define __WSTOPSIG(status) __WEXITSTATUS(status) - -/* Nonzero if STATUS indicates normal termination. */ -#define __WIFEXITED(status) (__WTERMSIG(status) == 0) - -/* Nonzero if STATUS indicates termination by a signal. */ -#define __WIFSIGNALED(status) \ - (((signed char) (((status) & 0x7f) + 1) >> 1) > 0) - -/* Nonzero if STATUS indicates the child is stopped. */ -#define __WIFSTOPPED(status) (((status) & 0xff) == 0x7f) - -/* Nonzero if STATUS indicates the child continued after a stop. We only - define this if provides the WCONTINUED flag bit. */ -#ifdef WCONTINUED -# define __WIFCONTINUED(status) ((status) == __W_CONTINUED) -#endif - -/* Nonzero if STATUS indicates the child dumped core. */ -#define __WCOREDUMP(status) ((status) & __WCOREFLAG) - -/* Macros for constructing status values. */ -#define __W_EXITCODE(ret, sig) ((ret) << 8 | (sig)) -#define __W_STOPCODE(sig) ((sig) << 8 | 0x7f) -#define __W_CONTINUED 0xffff -#define __WCOREFLAG 0x80 diff --git a/.ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@bits@waitstatus.h.blob b/.ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@bits@waitstatus.h.blob deleted file mode 100644 index bae451fe371b2a130b0607db1d0e5e3580c2d93c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8843 zcmbVRPlzN}8SfpzWo3g+j3P#s4lcVhnbcHI9Cs#5Hn8l@#DU$NWp`FX5MHWZz3zUQ z`qQa;HQlqug9dNr;w41(5F}or2Ne-K<>Fxx^b+tO2;xm5D8Yk>Wc|MHRdv7adR5hC zVc*PDeee5z-=FvWdG&Pb<6pn=;9=`j%N@p{aMgX6$G&g}QsMt$)^l%qN;r1}A4Vc^ zL-=EZk4CLe@xY4)|L-nm94ALI8aTd81Xpo#a%DNWtzWoVnz%CJK?d;n`ntRM)s4-K zO}8gi>V_f&Uj4DZF>HPOgYP_eI8UukMgrfUs`GDVe7H!GD7NjM(U7c2jF}e%G4}w! zUEXZRWakpQwB?Mr6UZo=ID;tDh&f_nJuf9-WymuYoJi||r6;KpAp;fS#6sB@p2`xD zT5Ui|A)3@>EbOHUT+Eb})JsEWARrDTcgb8x^~=BgXx^yAaHNKb@O%dB_z??bsuhxZg3VG zOJ6V^XOR+h#wLIq5FS-Tj$x}*`Py7nqIE0+yo@U*6*w|UN5URB2H#5K0*(E=2D0Z; z8gnF|Nx@{y`dP&Bu%s3I4cNZuWdoO1 zD`JC`M5QW#aE&x9>kb1EWBpNF1p-p4%fYyfNs|J!Srf|lD)FFPS)#_!qte{~74XPN z=kYpcYpZ!_DiX4@)eubyl+N^6Mygr2O30v=PFq$4+GBhusBD+=xM35bgklL930w;e z#D?O$-i*c;$aNL;BJ!nYuQiL(^L$ys$cU=?5{hA!f&!SysX{KPJO;LeB)m-1q3ud` zs%nW0yr~?dqRPn_+~~WKa|{NI)v{PLzT%?%k$JAP#ox@eiADtZAMdg;)rFEl1HUdlDZO&>KYCqt9G zhNqZ_*~m-0a488e1u~oVupYF07PlHifUur` zph1g)4L<{u@gu9|Gy7VNiF078vR>*`&=QuP3HtAH^ZxmAtoI9%$Bx%->l&V^3z;%iV-9F`3_fUqp zswXXjh>$@yIxQoOxo)lUgik#r;ET88_)tD0DmH>CuAG1oO z^t45Tix<@vaq7zT;Bske$p#@2uVrxGma-wlm+m(kqidQB*hty0CKmlmGj?6|H8wz& zh0gR78jFvz+SbvKL!RW5iPw`%MpChYWgAo4t% zk}>2Usv9M)HOYxMK#t_j5N_5);=tWnV!x=fV>|W&YYs3BhBZ>!Zb4@p;Zn_>CWr)_ z50$ex>t+w|tR?_BDg#gb7J3s%)^ZT(>QOp^ z1_bgYeoU;ZaRz-JQUT2A(%zO4g+7p#xAKb&^A4#WCw$f(woX0Xdg5%Wb@oy6{%;@q zP*A8wS?%%q%d%e|aed#Ou_NO!V;>?-uq!0gEty9mnpL==**UPO(r(nY) z|CNsh-~Gq;9>IqFJ(Ja!4OYgRRs0&6rE6zai{Cm|uFQ*D13BHtyBjOG9_Mm?5+CpW z=kxws2<-0R!R>1Y*LOkw7Y!-X=c{mgNdn+U=lSP5JDt}%-N|+z8Sk`rR#$L+IcNOm zore$J{OMcIk^;#2Hd(@CyuX(}FCYW>;@8dvVBPPpp%#UV_4Yc*fOVA1`0N|4e?9a2 zyQdNS?o0cJHt@ys)kLUgI=Ke$`&0wc3RT!{Zv%T+`#JlA``14B%gY(pD(t^_>*|e? zH$jK|#T5CsKGW%-A`sTX?_jc6qrbI-NHMTkXT7tz)_LItT030?aIt+6g5Y9%b(jNq z=Yz+x_x`$%&bfAQXLs+$)fd4xUod=AJjPJk=>m_-?aLQdaD6uC@w@crAKp58?b|tz z>-TQnw(!8mg#tzhUBCz`WFW+?_7<>*wSf5PH{bsL?SF2cBO9Tu$wDT?{XPA7#vW)7 zckkQ;!xhiS%gFzH`#kW6_0=4H_=j)2|IXk4{SoZJV1Ye={t3eZ`O|{a86ZS?cMq=~ z-n&~o1nl0uv!}oQrw>oR`?DFE1. */ - -#ifndef _BITS_WCHAR_H -#define _BITS_WCHAR_H 1 - -/* The fallback definitions, for when __WCHAR_MAX__ or __WCHAR_MIN__ - are not defined, give the right value and type as long as both int - and wchar_t are 32-bit types. Adding L'\0' to a constant value - ensures that the type is correct; it is necessary to use (L'\0' + - 0) rather than just L'\0' so that the type in C++ is the promoted - version of wchar_t rather than the distinct wchar_t type itself. - Because wchar_t in preprocessor #if expressions is treated as - intmax_t or uintmax_t, the expression (L'\0' - 1) would have the - wrong value for WCHAR_MAX in such expressions and so cannot be used - to define __WCHAR_MAX in the unsigned case. */ - -#ifdef __WCHAR_MAX__ -# define __WCHAR_MAX __WCHAR_MAX__ -#elif L'\0' - 1 > 0 -# define __WCHAR_MAX (0xffffffffu + L'\0') -#else -# define __WCHAR_MAX (0x7fffffff + L'\0') -#endif - -#ifdef __WCHAR_MIN__ -# define __WCHAR_MIN __WCHAR_MIN__ -#elif L'\0' - 1 > 0 -# define __WCHAR_MIN (L'\0' + 0) -#else -# define __WCHAR_MIN (-__WCHAR_MAX - 1) -#endif - -#endif /* bits/wchar.h */ diff --git a/.ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@bits@wchar.h.blob b/.ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@bits@wchar.h.blob deleted file mode 100644 index d865a39d22b655277cdfb1518e91ca8b997d27fa..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7950 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 diff --git a/.ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@bits@wctype-wchar.h b/.ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@bits@wctype-wchar.h deleted file mode 100644 index 9140a8d..0000000 --- a/.ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@bits@wctype-wchar.h +++ /dev/null @@ -1,173 +0,0 @@ -/* Copyright (C) 1996-2023 Free Software Foundation, Inc. - This file is part of the GNU C Library. - - The GNU C Library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - The GNU C Library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with the GNU C Library; if not, see - . */ - -/* - * ISO C99 Standard: 7.25 - * Wide character classification and mapping utilities - */ - -#ifndef _BITS_WCTYPE_WCHAR_H -#define _BITS_WCTYPE_WCHAR_H 1 - -#if !defined _WCTYPE_H && !defined _WCHAR_H -#error "Never include directly; include or instead." -#endif - -#include -#include - -/* The definitions in this header are specified to appear in - in ISO C99, but in in Unix98. _GNU_SOURCE follows C99. */ - -/* Scalar type that can hold values which represent locale-specific - character classifications. */ -typedef unsigned long int wctype_t; - -# ifndef _ISwbit -/* The characteristics are stored always in network byte order (big - endian). We define the bit value interpretations here dependent on the - machine's byte order. */ - -# include -# if __BYTE_ORDER == __BIG_ENDIAN -# define _ISwbit(bit) (1 << (bit)) -# else /* __BYTE_ORDER == __LITTLE_ENDIAN */ -# define _ISwbit(bit) \ - ((bit) < 8 ? (int) ((1UL << (bit)) << 24) \ - : ((bit) < 16 ? (int) ((1UL << (bit)) << 8) \ - : ((bit) < 24 ? (int) ((1UL << (bit)) >> 8) \ - : (int) ((1UL << (bit)) >> 24)))) -# endif - -enum -{ - __ISwupper = 0, /* UPPERCASE. */ - __ISwlower = 1, /* lowercase. */ - __ISwalpha = 2, /* Alphabetic. */ - __ISwdigit = 3, /* Numeric. */ - __ISwxdigit = 4, /* Hexadecimal numeric. */ - __ISwspace = 5, /* Whitespace. */ - __ISwprint = 6, /* Printing. */ - __ISwgraph = 7, /* Graphical. */ - __ISwblank = 8, /* Blank (usually SPC and TAB). */ - __ISwcntrl = 9, /* Control character. */ - __ISwpunct = 10, /* Punctuation. */ - __ISwalnum = 11, /* Alphanumeric. */ - - _ISwupper = _ISwbit (__ISwupper), /* UPPERCASE. */ - _ISwlower = _ISwbit (__ISwlower), /* lowercase. */ - _ISwalpha = _ISwbit (__ISwalpha), /* Alphabetic. */ - _ISwdigit = _ISwbit (__ISwdigit), /* Numeric. */ - _ISwxdigit = _ISwbit (__ISwxdigit), /* Hexadecimal numeric. */ - _ISwspace = _ISwbit (__ISwspace), /* Whitespace. */ - _ISwprint = _ISwbit (__ISwprint), /* Printing. */ - _ISwgraph = _ISwbit (__ISwgraph), /* Graphical. */ - _ISwblank = _ISwbit (__ISwblank), /* Blank (usually SPC and TAB). */ - _ISwcntrl = _ISwbit (__ISwcntrl), /* Control character. */ - _ISwpunct = _ISwbit (__ISwpunct), /* Punctuation. */ - _ISwalnum = _ISwbit (__ISwalnum) /* Alphanumeric. */ -}; -# endif /* Not _ISwbit */ - - -__BEGIN_DECLS - -/* - * Wide-character classification functions: 7.15.2.1. - */ - -/* Test for any wide character for which `iswalpha' or `iswdigit' is - true. */ -extern int iswalnum (wint_t __wc) __THROW; - -/* Test for any wide character for which `iswupper' or 'iswlower' is - true, or any wide character that is one of a locale-specific set of - wide-characters for which none of `iswcntrl', `iswdigit', - `iswpunct', or `iswspace' is true. */ -extern int iswalpha (wint_t __wc) __THROW; - -/* Test for any control wide character. */ -extern int iswcntrl (wint_t __wc) __THROW; - -/* Test for any wide character that corresponds to a decimal-digit - character. */ -extern int iswdigit (wint_t __wc) __THROW; - -/* Test for any wide character for which `iswprint' is true and - `iswspace' is false. */ -extern int iswgraph (wint_t __wc) __THROW; - -/* Test for any wide character that corresponds to a lowercase letter - or is one of a locale-specific set of wide characters for which - none of `iswcntrl', `iswdigit', `iswpunct', or `iswspace' is true. */ -extern int iswlower (wint_t __wc) __THROW; - -/* Test for any printing wide character. */ -extern int iswprint (wint_t __wc) __THROW; - -/* Test for any printing wide character that is one of a - locale-specific et of wide characters for which neither `iswspace' - nor `iswalnum' is true. */ -extern int iswpunct (wint_t __wc) __THROW; - -/* Test for any wide character that corresponds to a locale-specific - set of wide characters for which none of `iswalnum', `iswgraph', or - `iswpunct' is true. */ -extern int iswspace (wint_t __wc) __THROW; - -/* Test for any wide character that corresponds to an uppercase letter - or is one of a locale-specific set of wide character for which none - of `iswcntrl', `iswdigit', `iswpunct', or `iswspace' is true. */ -extern int iswupper (wint_t __wc) __THROW; - -/* Test for any wide character that corresponds to a hexadecimal-digit - character equivalent to that performed be the functions described - in the previous subclause. */ -extern int iswxdigit (wint_t __wc) __THROW; - -/* Test for any wide character that corresponds to a standard blank - wide character or a locale-specific set of wide characters for - which `iswalnum' is false. */ -# ifdef __USE_ISOC99 -extern int iswblank (wint_t __wc) __THROW; -# endif - -/* - * Extensible wide-character classification functions: 7.15.2.2. - */ - -/* Construct value that describes a class of wide characters identified - by the string argument PROPERTY. */ -extern wctype_t wctype (const char *__property) __THROW; - -/* Determine whether the wide-character WC has the property described by - DESC. */ -extern int iswctype (wint_t __wc, wctype_t __desc) __THROW; - -/* - * Wide-character case-mapping functions: 7.15.3.1. - */ - -/* Converts an uppercase letter to the corresponding lowercase letter. */ -extern wint_t towlower (wint_t __wc) __THROW; - -/* Converts an lowercase letter to the corresponding uppercase letter. */ -extern wint_t towupper (wint_t __wc) __THROW; - -__END_DECLS - -#endif /* bits/wctype-wchar.h. */ diff --git a/.ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@bits@wctype-wchar.h.blob b/.ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@bits@wctype-wchar.h.blob deleted file mode 100644 index 16204de8d78d08ba4b877a48b69645ac11400722..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 17310 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 diff --git a/.ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@bits@wordsize.h b/.ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@bits@wordsize.h deleted file mode 100644 index 70f652b..0000000 --- a/.ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@bits@wordsize.h +++ /dev/null @@ -1,17 +0,0 @@ -/* Determine the wordsize from the preprocessor defines. */ - -#if defined __x86_64__ && !defined __ILP32__ -# define __WORDSIZE 64 -#else -# define __WORDSIZE 32 -#define __WORDSIZE32_SIZE_ULONG 0 -#define __WORDSIZE32_PTRDIFF_LONG 0 -#endif - -#ifdef __x86_64__ -# define __WORDSIZE_TIME64_COMPAT32 1 -/* Both x86-64 and x32 use the 64-bit system call interface. */ -# define __SYSCALL_WORDSIZE 64 -#else -# define __WORDSIZE_TIME64_COMPAT32 0 -#endif diff --git a/.ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@bits@wordsize.h.blob b/.ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@bits@wordsize.h.blob deleted file mode 100644 index bf14929ed401f831630a4df46b54bdfcc3a922c2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7959 zcmbVRy^b735T3guz_N{y#RDLL2rzTQ;qyTP$TGHMWHrDOSFa`q*Y*$g50a5GI>}`Yy2guie;Pge_R*84=cUcr zT-sl(spo&$=n=B2ijq3Lk-@tPxnMlYO2Gj?ec$H9@`EFGbQsS?oT;K-#*?CUh=s+( zMqDGXF6500fujAu^qDp?XJA5E5t3ucOex0##zZt5sNa<%OWhcK!3ywG3Ds~ zPEegeDwkS4q{EI9qcbD*g3rmDyaW??6X8`)MlOY%8&wwlV!>>ffVV7;P98X0FgP~j zvQT6^ImT|^xqEBKDphI&0m?&nLUKc}*g~a}iLx$?>~l5(6o7CR$Q;jC+N921p{rdk z0=!xnrVIqK(sM~Cj;A;1T#%vPYo z69Dv31TbWIc{)e{LBnj;!~m4n8NSy}_V{4o87_F00{avxICLo6kV*o<^pdTKQZVB@ zQBjsNC7CMOxGsc!EIOdygPqDzJxTB{iP#gxtF*}=T?+?`JmDc?Y&xFe3^zapJgRU!-WP1=HLkU+(9fhJh6ohj^g4v%|2K}jfiRq%TSPQa@*K-g5xP*tXDvua+T24THF-Fj3au^8vN^AKzSRvd<1w#fk+-yM1fJb$qCs@)r_fJpFmm*a8Xf`x z-h+mY2%0AZ2>S&P8Z;2LooC=OF(WPC_?L91o$|D)M>-C$lkl@H29?LGabs3l|Begj3eHVO~GzrHItMTJ?G<1n|`BHvpVBz zyqdr188+M@dF~3&QJxSYgI;r8BnFx6T(d(_-^#7P+OcJB(yJ)s2oKsu3}?qH9!wif z*I(Ht`V__l+of-nFbx^PI0aqj;E`a6-C9Hyuq}Dhd1141}PDC z0QN-xGYcB!W+@y?c+p#;vFCPU$Ky=37q@3HeLh%ABr zDY%C~@g|+B1w00<8y&4Z4PxzB^3%aqX5P#=9R$aspDD{%}TplF6&V?IJMZ>VfcmF zv{F0+uT(5knp*gH{zVK;L4b_3<2RX!?IU*9;Mt^Hm7~G;3rOrB(L0QSeaoRhHBPfF zL}*fMV^zgzIitB5wXOHUod~rxwMqs((c`=?P5$0C(*}3d{o4bb;5r++HukM2d4F68BDOuaD>na^BRKvl2C7l!F4-!PeVBf;wxe|Yi{ZBX37q{54R28N|l|}7=9@r zk>N+3p83Ru)@`!$+6+HP>uXhvDUSByX8SbP42J^e2{&9pB%UXPK}(;o*`pBmj*c}`LAVZtU1zZ|ffFM-h2 zq;M6c^GrPm7)$#(v9At#@=Z!*Fv}~tbwdgFXoGwCw!)^18kd#Ww2;y6OVP`hUWs14 z6h(W_fBPZYDewRLCu0x3cyRN^-Mj4bd-p$iaOcZgQ53!ThFb)^-u?B$g`>kL+PQq? z^3ksS`%(0K2TnY{{?p0H<&PgdW@|m{TsiXbz58N!U1T% rc;({lUHkXbM*APX%YXiU{NwRPJ7{~YtIdJiyR!Gz?hgEY#~uF. - -/* - * - * Copyright (c) 1994 - * Hewlett-Packard Company - * - * Permission to use, copy, modify, distribute and sell this software - * and its documentation for any purpose is hereby granted without fee, - * provided that the above copyright notice appear in all copies and - * that both that copyright notice and this permission notice appear - * in supporting documentation. Hewlett-Packard Company makes no - * representations about the suitability of this software for any - * purpose. It is provided "as is" without express or implied warranty. - * - * - * Copyright (c) 1996-1998 - * Silicon Graphics Computer Systems, Inc. - * - * Permission to use, copy, modify, distribute and sell this software - * and its documentation for any purpose is hereby granted without fee, - * provided that the above copyright notice appear in all copies and - * that both that copyright notice and this permission notice appear - * in supporting documentation. Silicon Graphics makes no - * representations about the suitability of this software for any - * purpose. It is provided "as is" without express or implied warranty. - */ - -/** @file backward/binders.h - * This is an internal header file, included by other library headers. - * Do not attempt to use it directly. @headername{functional} - */ - -#ifndef _BACKWARD_BINDERS_H -#define _BACKWARD_BINDERS_H 1 - -// Suppress deprecated warning for this file. -#pragma GCC diagnostic push -#pragma GCC diagnostic ignored "-Wdeprecated-declarations" - -namespace std _GLIBCXX_VISIBILITY(default) -{ -_GLIBCXX_BEGIN_NAMESPACE_VERSION - - // 20.3.6 binders - /** @defgroup binders Binder Classes - * @ingroup functors - * - * Binders turn functions/functors with two arguments into functors - * with a single argument, storing an argument to be applied later. - * For example, a variable @c B of type @c binder1st is constructed - * from a functor @c f and an argument @c x. Later, B's @c - * operator() is called with a single argument @c y. The return - * value is the value of @c f(x,y). @c B can be @a called with - * various arguments (y1, y2, ...) and will in turn call @c - * f(x,y1), @c f(x,y2), ... - * - * The function @c bind1st is provided to save some typing. It takes the - * function and an argument as parameters, and returns an instance of - * @c binder1st. - * - * The type @c binder2nd and its creator function @c bind2nd do the same - * thing, but the stored argument is passed as the second parameter instead - * of the first, e.g., @c bind2nd(std::minus(),1.3) will create a - * functor whose @c operator() accepts a floating-point number, subtracts - * 1.3 from it, and returns the result. (If @c bind1st had been used, - * the functor would perform 1.3 - x instead. - * - * Creator-wrapper functions like @c bind1st are intended to be used in - * calling algorithms. Their return values will be temporary objects. - * (The goal is to not require you to type names like - * @c std::binder1st> for declaring a variable to hold the - * return value from @c bind1st(std::plus(),5). - * - * These become more useful when combined with the composition functions. - * - * These functions are deprecated in C++11 and can be replaced by - * @c std::bind (or @c std::tr1::bind) which is more powerful and flexible, - * supporting functions with any number of arguments. Uses of @c bind1st - * can be replaced by @c std::bind(f, x, std::placeholders::_1) and - * @c bind2nd by @c std::bind(f, std::placeholders::_1, x). - * @{ - */ - /// One of the @link binders binder functors@endlink. - template - class binder1st - : public unary_function - { - protected: - _Operation op; - typename _Operation::first_argument_type value; - - public: - binder1st(const _Operation& __x, - const typename _Operation::first_argument_type& __y) - : op(__x), value(__y) { } - - typename _Operation::result_type - operator()(const typename _Operation::second_argument_type& __x) const - { return op(value, __x); } - - // _GLIBCXX_RESOLVE_LIB_DEFECTS - // 109. Missing binders for non-const sequence elements - typename _Operation::result_type - operator()(typename _Operation::second_argument_type& __x) const - { return op(value, __x); } - } _GLIBCXX11_DEPRECATED_SUGGEST("std::bind"); - - /// One of the @link binders binder functors@endlink. - template - _GLIBCXX11_DEPRECATED_SUGGEST("std::bind") - inline binder1st<_Operation> - bind1st(const _Operation& __fn, const _Tp& __x) - { - typedef typename _Operation::first_argument_type _Arg1_type; - return binder1st<_Operation>(__fn, _Arg1_type(__x)); - } - - /// One of the @link binders binder functors@endlink. - template - class binder2nd - : public unary_function - { - protected: - _Operation op; - typename _Operation::second_argument_type value; - - public: - binder2nd(const _Operation& __x, - const typename _Operation::second_argument_type& __y) - : op(__x), value(__y) { } - - typename _Operation::result_type - operator()(const typename _Operation::first_argument_type& __x) const - { return op(__x, value); } - - // _GLIBCXX_RESOLVE_LIB_DEFECTS - // 109. Missing binders for non-const sequence elements - typename _Operation::result_type - operator()(typename _Operation::first_argument_type& __x) const - { return op(__x, value); } - } _GLIBCXX11_DEPRECATED_SUGGEST("std::bind"); - - /// One of the @link binders binder functors@endlink. - template - _GLIBCXX11_DEPRECATED_SUGGEST("std::bind") - inline binder2nd<_Operation> - bind2nd(const _Operation& __fn, const _Tp& __x) - { - typedef typename _Operation::second_argument_type _Arg2_type; - return binder2nd<_Operation>(__fn, _Arg2_type(__x)); - } - /** @} */ - -_GLIBCXX_END_NAMESPACE_VERSION -} // namespace - -#pragma GCC diagnostic pop - -#endif /* _BACKWARD_BINDERS_H */ diff --git a/.ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@c++@13.1.1@backward@binders.h.blob b/.ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@c++@13.1.1@backward@binders.h.blob deleted file mode 100644 index fbe788de885d6ae6d72d9c47bfceb56cfb233d87..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 15010 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 diff --git a/.ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@c++@13.1.1@bit b/.ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@c++@13.1.1@bit deleted file mode 100644 index 5eb4021..0000000 --- a/.ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@c++@13.1.1@bit +++ /dev/null @@ -1,482 +0,0 @@ -// -*- C++ -*- - -// Copyright (C) 2018-2023 Free Software Foundation, Inc. -// -// This file is part of the GNU ISO C++ Library. This library is free -// software; you can redistribute it and/or modify it under the -// terms of the GNU General Public License as published by the -// Free Software Foundation; either version 3, or (at your option) -// any later version. - -// This library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. - -// Under Section 7 of GPL version 3, you are granted additional -// permissions described in the GCC Runtime Library Exception, version -// 3.1, as published by the Free Software Foundation. - -// You should have received a copy of the GNU General Public License and -// a copy of the GCC Runtime Library Exception along with this program; -// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see -// . - -/** @file include/bit - * This is a Standard C++ Library header. - */ - -#ifndef _GLIBCXX_BIT -#define _GLIBCXX_BIT 1 - -#pragma GCC system_header - -#if __cplusplus >= 201402L - -#include - -#if _GLIBCXX_HOSTED || __has_include() -# include -#else -# include -/// @cond undocumented -namespace __gnu_cxx -{ - template - struct __int_traits - { - static constexpr int __digits = std::numeric_limits<_Tp>::digits; - static constexpr _Tp __max = std::numeric_limits<_Tp>::max(); - }; -} -/// @endcond -#endif - -namespace std _GLIBCXX_VISIBILITY(default) -{ -_GLIBCXX_BEGIN_NAMESPACE_VERSION - - /** - * @defgroup bit_manip Bit manipulation - * @ingroup numerics - * - * Utilities for examining and manipulating individual bits. - * - * @{ - */ - -#if __cplusplus > 201703l && __has_builtin(__builtin_bit_cast) -#define __cpp_lib_bit_cast 201806L - - /// Create a value of type `To` from the bits of `from`. - /** - * @tparam _To A trivially-copyable type. - * @param __from A trivially-copyable object of the same size as `_To`. - * @return An object of type `_To`. - * @since C++20 - */ - template - [[nodiscard]] - constexpr _To - bit_cast(const _From& __from) noexcept -#ifdef __cpp_concepts - requires (sizeof(_To) == sizeof(_From)) - && __is_trivially_copyable(_To) && __is_trivially_copyable(_From) -#endif - { - return __builtin_bit_cast(_To, __from); - } -#endif - -#if __cplusplus > 202002L -#define __cpp_lib_byteswap 202110L - - /// Reverse order of bytes in the object representation of `value`. - /** - * @tparam _Tp An integral type. - * @param __value An object of integer type. - * @return An object of the same type, with the bytes reversed. - * @since C++23 - */ - template - [[nodiscard]] - constexpr enable_if_t::value, _Tp> - byteswap(_Tp __value) noexcept - { - if constexpr (sizeof(_Tp) == 1) - return __value; -#if __cpp_if_consteval >= 202106L && __CHAR_BIT__ == 8 - if !consteval - { - if constexpr (sizeof(_Tp) == 2) - return __builtin_bswap16(__value); - if constexpr (sizeof(_Tp) == 4) - return __builtin_bswap32(__value); - if constexpr (sizeof(_Tp) == 8) - return __builtin_bswap64(__value); - if constexpr (sizeof(_Tp) == 16) -#if __has_builtin(__builtin_bswap128) - return __builtin_bswap128(__value); -#else - return (__builtin_bswap64(__value >> 64) - | (static_cast<_Tp>(__builtin_bswap64(__value)) << 64)); -#endif - } -#endif - - // Fallback implementation that handles even __int24 etc. - using _Up = typename __make_unsigned<__remove_cv_t<_Tp>>::__type; - size_t __diff = __CHAR_BIT__ * (sizeof(_Tp) - 1); - _Up __mask1 = static_cast(~0); - _Up __mask2 = __mask1 << __diff; - _Up __val = __value; - for (size_t __i = 0; __i < sizeof(_Tp) / 2; ++__i) - { - _Up __byte1 = __val & __mask1; - _Up __byte2 = __val & __mask2; - __val = (__val ^ __byte1 ^ __byte2 - ^ (__byte1 << __diff) ^ (__byte2 >> __diff)); - __mask1 <<= __CHAR_BIT__; - __mask2 >>= __CHAR_BIT__; - __diff -= 2 * __CHAR_BIT__; - } - return __val; - } -#endif - - /// @cond undocumented - - template - constexpr _Tp - __rotl(_Tp __x, int __s) noexcept - { - constexpr auto _Nd = __gnu_cxx::__int_traits<_Tp>::__digits; - if _GLIBCXX17_CONSTEXPR ((_Nd & (_Nd - 1)) == 0) - { - // Variant for power of two _Nd which the compiler can - // easily pattern match. - constexpr unsigned __uNd = _Nd; - const unsigned __r = __s; - return (__x << (__r % __uNd)) | (__x >> ((-__r) % __uNd)); - } - const int __r = __s % _Nd; - if (__r == 0) - return __x; - else if (__r > 0) - return (__x << __r) | (__x >> ((_Nd - __r) % _Nd)); - else - return (__x >> -__r) | (__x << ((_Nd + __r) % _Nd)); // rotr(x, -r) - } - - template - constexpr _Tp - __rotr(_Tp __x, int __s) noexcept - { - constexpr auto _Nd = __gnu_cxx::__int_traits<_Tp>::__digits; - if _GLIBCXX17_CONSTEXPR ((_Nd & (_Nd - 1)) == 0) - { - // Variant for power of two _Nd which the compiler can - // easily pattern match. - constexpr unsigned __uNd = _Nd; - const unsigned __r = __s; - return (__x >> (__r % __uNd)) | (__x << ((-__r) % __uNd)); - } - const int __r = __s % _Nd; - if (__r == 0) - return __x; - else if (__r > 0) - return (__x >> __r) | (__x << ((_Nd - __r) % _Nd)); - else - return (__x << -__r) | (__x >> ((_Nd + __r) % _Nd)); // rotl(x, -r) - } - - template - constexpr int - __countl_zero(_Tp __x) noexcept - { - using __gnu_cxx::__int_traits; - constexpr auto _Nd = __int_traits<_Tp>::__digits; - - if (__x == 0) - return _Nd; - - constexpr auto _Nd_ull = __int_traits::__digits; - constexpr auto _Nd_ul = __int_traits::__digits; - constexpr auto _Nd_u = __int_traits::__digits; - - if _GLIBCXX17_CONSTEXPR (_Nd <= _Nd_u) - { - constexpr int __diff = _Nd_u - _Nd; - return __builtin_clz(__x) - __diff; - } - else if _GLIBCXX17_CONSTEXPR (_Nd <= _Nd_ul) - { - constexpr int __diff = _Nd_ul - _Nd; - return __builtin_clzl(__x) - __diff; - } - else if _GLIBCXX17_CONSTEXPR (_Nd <= _Nd_ull) - { - constexpr int __diff = _Nd_ull - _Nd; - return __builtin_clzll(__x) - __diff; - } - else // (_Nd > _Nd_ull) - { - static_assert(_Nd <= (2 * _Nd_ull), - "Maximum supported integer size is 128-bit"); - - unsigned long long __high = __x >> _Nd_ull; - if (__high != 0) - { - constexpr int __diff = (2 * _Nd_ull) - _Nd; - return __builtin_clzll(__high) - __diff; - } - constexpr auto __max_ull = __int_traits::__max; - unsigned long long __low = __x & __max_ull; - return (_Nd - _Nd_ull) + __builtin_clzll(__low); - } - } - - template - constexpr int - __countl_one(_Tp __x) noexcept - { - return std::__countl_zero<_Tp>((_Tp)~__x); - } - - template - constexpr int - __countr_zero(_Tp __x) noexcept - { - using __gnu_cxx::__int_traits; - constexpr auto _Nd = __int_traits<_Tp>::__digits; - - if (__x == 0) - return _Nd; - - constexpr auto _Nd_ull = __int_traits::__digits; - constexpr auto _Nd_ul = __int_traits::__digits; - constexpr auto _Nd_u = __int_traits::__digits; - - if _GLIBCXX17_CONSTEXPR (_Nd <= _Nd_u) - return __builtin_ctz(__x); - else if _GLIBCXX17_CONSTEXPR (_Nd <= _Nd_ul) - return __builtin_ctzl(__x); - else if _GLIBCXX17_CONSTEXPR (_Nd <= _Nd_ull) - return __builtin_ctzll(__x); - else // (_Nd > _Nd_ull) - { - static_assert(_Nd <= (2 * _Nd_ull), - "Maximum supported integer size is 128-bit"); - - constexpr auto __max_ull = __int_traits::__max; - unsigned long long __low = __x & __max_ull; - if (__low != 0) - return __builtin_ctzll(__low); - unsigned long long __high = __x >> _Nd_ull; - return __builtin_ctzll(__high) + _Nd_ull; - } - } - - template - constexpr int - __countr_one(_Tp __x) noexcept - { - return std::__countr_zero((_Tp)~__x); - } - - template - constexpr int - __popcount(_Tp __x) noexcept - { - using __gnu_cxx::__int_traits; - constexpr auto _Nd = __int_traits<_Tp>::__digits; - - constexpr auto _Nd_ull = __int_traits::__digits; - constexpr auto _Nd_ul = __int_traits::__digits; - constexpr auto _Nd_u = __int_traits::__digits; - - if _GLIBCXX17_CONSTEXPR (_Nd <= _Nd_u) - return __builtin_popcount(__x); - else if _GLIBCXX17_CONSTEXPR (_Nd <= _Nd_ul) - return __builtin_popcountl(__x); - else if _GLIBCXX17_CONSTEXPR (_Nd <= _Nd_ull) - return __builtin_popcountll(__x); - else // (_Nd > _Nd_ull) - { - static_assert(_Nd <= (2 * _Nd_ull), - "Maximum supported integer size is 128-bit"); - - constexpr auto __max_ull = __int_traits::__max; - unsigned long long __low = __x & __max_ull; - unsigned long long __high = __x >> _Nd_ull; - return __builtin_popcountll(__low) + __builtin_popcountll(__high); - } - } - - template - constexpr bool - __has_single_bit(_Tp __x) noexcept - { return std::__popcount(__x) == 1; } - - template - constexpr _Tp - __bit_ceil(_Tp __x) noexcept - { - using __gnu_cxx::__int_traits; - constexpr auto _Nd = __int_traits<_Tp>::__digits; - if (__x == 0 || __x == 1) - return 1; - auto __shift_exponent = _Nd - std::__countl_zero((_Tp)(__x - 1u)); - // If the shift exponent equals _Nd then the correct result is not - // representable as a value of _Tp, and so the result is undefined. - // Want that undefined behaviour to be detected in constant expressions, - // by UBSan, and by debug assertions. - if (!std::__is_constant_evaluated()) - { - __glibcxx_assert( __shift_exponent != __int_traits<_Tp>::__digits ); - } - - using __promoted_type = decltype(__x << 1); - if _GLIBCXX17_CONSTEXPR (!is_same<__promoted_type, _Tp>::value) - { - // If __x undergoes integral promotion then shifting by _Nd is - // not undefined. In order to make the shift undefined, so that - // it is diagnosed in constant expressions and by UBsan, we also - // need to "promote" the shift exponent to be too large for the - // promoted type. - const int __extra_exp = sizeof(__promoted_type) / sizeof(_Tp) / 2; - __shift_exponent |= (__shift_exponent & _Nd) << __extra_exp; - } - return (_Tp)1u << __shift_exponent; - } - - template - constexpr _Tp - __bit_floor(_Tp __x) noexcept - { - constexpr auto _Nd = __gnu_cxx::__int_traits<_Tp>::__digits; - if (__x == 0) - return 0; - return (_Tp)1u << (_Nd - std::__countl_zero((_Tp)(__x >> 1))); - } - - template - constexpr int - __bit_width(_Tp __x) noexcept - { - constexpr auto _Nd = __gnu_cxx::__int_traits<_Tp>::__digits; - return _Nd - std::__countl_zero(__x); - } - - /// @endcond - -#if __cplusplus > 201703L - -#define __cpp_lib_bitops 201907L - - /// @cond undocumented - template - using _If_is_unsigned_integer - = enable_if_t<__is_unsigned_integer<_Tp>::value, _Up>; - /// @endcond - - // [bit.rot], rotating - - /// Rotate `x` to the left by `s` bits. - template - [[nodiscard]] constexpr _If_is_unsigned_integer<_Tp> - rotl(_Tp __x, int __s) noexcept - { return std::__rotl(__x, __s); } - - /// Rotate `x` to the right by `s` bits. - template - [[nodiscard]] constexpr _If_is_unsigned_integer<_Tp> - rotr(_Tp __x, int __s) noexcept - { return std::__rotr(__x, __s); } - - // [bit.count], counting - - /// The number of contiguous zero bits, starting from the highest bit. - template - constexpr _If_is_unsigned_integer<_Tp, int> - countl_zero(_Tp __x) noexcept - { return std::__countl_zero(__x); } - - /// The number of contiguous one bits, starting from the highest bit. - template - constexpr _If_is_unsigned_integer<_Tp, int> - countl_one(_Tp __x) noexcept - { return std::__countl_one(__x); } - - /// The number of contiguous zero bits, starting from the lowest bit. - template - constexpr _If_is_unsigned_integer<_Tp, int> - countr_zero(_Tp __x) noexcept - { return std::__countr_zero(__x); } - - /// The number of contiguous one bits, starting from the lowest bit. - template - constexpr _If_is_unsigned_integer<_Tp, int> - countr_one(_Tp __x) noexcept - { return std::__countr_one(__x); } - - /// The number of bits set in `x`. - template - constexpr _If_is_unsigned_integer<_Tp, int> - popcount(_Tp __x) noexcept - { return std::__popcount(__x); } - - // [bit.pow.two], integral powers of 2 - -#define __cpp_lib_int_pow2 202002L - - /// True if `x` is a power of two, false otherwise. - template - constexpr _If_is_unsigned_integer<_Tp, bool> - has_single_bit(_Tp __x) noexcept - { return std::__has_single_bit(__x); } - - /// The smallest power-of-two not less than `x`. - template - constexpr _If_is_unsigned_integer<_Tp> - bit_ceil(_Tp __x) noexcept - { return std::__bit_ceil(__x); } - - /// The largest power-of-two not greater than `x`. - template - constexpr _If_is_unsigned_integer<_Tp> - bit_floor(_Tp __x) noexcept - { return std::__bit_floor(__x); } - - // _GLIBCXX_RESOLVE_LIB_DEFECTS - // 3656. Inconsistent bit operations returning a count - /// The smallest integer greater than the base-2 logarithm of `x`. - template - constexpr _If_is_unsigned_integer<_Tp, int> - bit_width(_Tp __x) noexcept - { return std::__bit_width(__x); } - -#define __cpp_lib_endian 201907L - - /// Byte order constants - /** - * The platform endianness can be checked by comparing `std::endian::native` - * to one of `std::endian::big` or `std::endian::little`. - * - * @since C++20 - */ - enum class endian - { - little = __ORDER_LITTLE_ENDIAN__, - big = __ORDER_BIG_ENDIAN__, - native = __BYTE_ORDER__ - }; -#endif // C++2a - - /// @} - -_GLIBCXX_END_NAMESPACE_VERSION -} // namespace std - -#endif // C++14 -#endif // _GLIBCXX_BIT diff --git a/.ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@c++@13.1.1@bit.blob b/.ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@c++@13.1.1@bit.blob deleted file mode 100644 index 471f86501f1f451d9b4e38aca068af0488af2d33..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 28362 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. - -/** @file bits/alloc_traits.h - * This is an internal header file, included by other library headers. - * Do not attempt to use it directly. @headername{memory} - */ - -#ifndef _ALLOC_TRAITS_H -#define _ALLOC_TRAITS_H 1 - -#include -#include -#if __cplusplus >= 201103L -# include -# include -# if _GLIBCXX_HOSTED -# include -# endif -#endif - -namespace std _GLIBCXX_VISIBILITY(default) -{ -_GLIBCXX_BEGIN_NAMESPACE_VERSION - -#if __cplusplus >= 201103L -#define __cpp_lib_allocator_traits_is_always_equal 201411L - - /// @cond undocumented - struct __allocator_traits_base - { - template - struct __rebind : __replace_first_arg<_Tp, _Up> - { - static_assert(is_same< - typename __replace_first_arg<_Tp, typename _Tp::value_type>::type, - _Tp>::value, - "allocator_traits::rebind_alloc must be A"); - }; - - template - struct __rebind<_Tp, _Up, - __void_t::other>> - { - using type = typename _Tp::template rebind<_Up>::other; - - static_assert(is_same< - typename _Tp::template rebind::other, - _Tp>::value, - "allocator_traits::rebind_alloc must be A"); - }; - - protected: - template - using __pointer = typename _Tp::pointer; - template - using __c_pointer = typename _Tp::const_pointer; - template - using __v_pointer = typename _Tp::void_pointer; - template - using __cv_pointer = typename _Tp::const_void_pointer; - template - using __pocca = typename _Tp::propagate_on_container_copy_assignment; - template - using __pocma = typename _Tp::propagate_on_container_move_assignment; - template - using __pocs = typename _Tp::propagate_on_container_swap; - template - using __equal = __type_identity; - }; - - template - using __alloc_rebind - = typename __allocator_traits_base::template __rebind<_Alloc, _Up>::type; - /// @endcond - - /** - * @brief Uniform interface to all allocator types. - * @headerfile memory - * @ingroup allocators - * @since C++11 - */ - template - struct allocator_traits : __allocator_traits_base - { - /// The allocator type - typedef _Alloc allocator_type; - /// The allocated type - typedef typename _Alloc::value_type value_type; - - /** - * @brief The allocator's pointer type. - * - * @c Alloc::pointer if that type exists, otherwise @c value_type* - */ - using pointer = __detected_or_t; - - private: - // Select _Func<_Alloc> or pointer_traits::rebind<_Tp> - template class _Func, typename _Tp, typename = void> - struct _Ptr - { - using type = typename pointer_traits::template rebind<_Tp>; - }; - - template class _Func, typename _Tp> - struct _Ptr<_Func, _Tp, __void_t<_Func<_Alloc>>> - { - using type = _Func<_Alloc>; - }; - - // Select _A2::difference_type or pointer_traits<_Ptr>::difference_type - template - struct _Diff - { using type = typename pointer_traits<_PtrT>::difference_type; }; - - template - struct _Diff<_A2, _PtrT, __void_t> - { using type = typename _A2::difference_type; }; - - // Select _A2::size_type or make_unsigned<_DiffT>::type - template - struct _Size : make_unsigned<_DiffT> { }; - - template - struct _Size<_A2, _DiffT, __void_t> - { using type = typename _A2::size_type; }; - - public: - /** - * @brief The allocator's const pointer type. - * - * @c Alloc::const_pointer if that type exists, otherwise - * pointer_traits::rebind - */ - using const_pointer = typename _Ptr<__c_pointer, const value_type>::type; - - /** - * @brief The allocator's void pointer type. - * - * @c Alloc::void_pointer if that type exists, otherwise - * pointer_traits::rebind - */ - using void_pointer = typename _Ptr<__v_pointer, void>::type; - - /** - * @brief The allocator's const void pointer type. - * - * @c Alloc::const_void_pointer if that type exists, otherwise - * pointer_traits::rebind - */ - using const_void_pointer = typename _Ptr<__cv_pointer, const void>::type; - - /** - * @brief The allocator's difference type - * - * @c Alloc::difference_type if that type exists, otherwise - * pointer_traits::difference_type - */ - using difference_type = typename _Diff<_Alloc, pointer>::type; - - /** - * @brief The allocator's size type - * - * @c Alloc::size_type if that type exists, otherwise - * make_unsigned::type - */ - using size_type = typename _Size<_Alloc, difference_type>::type; - - /** - * @brief How the allocator is propagated on copy assignment - * - * @c Alloc::propagate_on_container_copy_assignment if that type exists, - * otherwise @c false_type - */ - using propagate_on_container_copy_assignment - = __detected_or_t; - - /** - * @brief How the allocator is propagated on move assignment - * - * @c Alloc::propagate_on_container_move_assignment if that type exists, - * otherwise @c false_type - */ - using propagate_on_container_move_assignment - = __detected_or_t; - - /** - * @brief How the allocator is propagated on swap - * - * @c Alloc::propagate_on_container_swap if that type exists, - * otherwise @c false_type - */ - using propagate_on_container_swap - = __detected_or_t; - - /** - * @brief Whether all instances of the allocator type compare equal. - * - * @c Alloc::is_always_equal if that type exists, - * otherwise @c is_empty::type - */ - using is_always_equal - = typename __detected_or_t, __equal, _Alloc>::type; - - template - using rebind_alloc = __alloc_rebind<_Alloc, _Tp>; - template - using rebind_traits = allocator_traits>; - - private: - template - static constexpr auto - _S_allocate(_Alloc2& __a, size_type __n, const_void_pointer __hint, int) - -> decltype(__a.allocate(__n, __hint)) - { return __a.allocate(__n, __hint); } - - template - static constexpr pointer - _S_allocate(_Alloc2& __a, size_type __n, const_void_pointer, ...) - { return __a.allocate(__n); } - - template - struct __construct_helper - { - template()->construct( - std::declval<_Tp*>(), std::declval<_Args>()...))> - static true_type __test(int); - - template - static false_type __test(...); - - using type = decltype(__test<_Alloc>(0)); - }; - - template - using __has_construct - = typename __construct_helper<_Tp, _Args...>::type; - - template - static _GLIBCXX14_CONSTEXPR _Require<__has_construct<_Tp, _Args...>> - _S_construct(_Alloc& __a, _Tp* __p, _Args&&... __args) - noexcept(noexcept(__a.construct(__p, std::forward<_Args>(__args)...))) - { __a.construct(__p, std::forward<_Args>(__args)...); } - - template - static _GLIBCXX14_CONSTEXPR - _Require<__and_<__not_<__has_construct<_Tp, _Args...>>, - is_constructible<_Tp, _Args...>>> - _S_construct(_Alloc&, _Tp* __p, _Args&&... __args) - noexcept(std::is_nothrow_constructible<_Tp, _Args...>::value) - { -#if __cplusplus <= 201703L - ::new((void*)__p) _Tp(std::forward<_Args>(__args)...); -#else - std::construct_at(__p, std::forward<_Args>(__args)...); -#endif - } - - template - static _GLIBCXX14_CONSTEXPR auto - _S_destroy(_Alloc2& __a, _Tp* __p, int) - noexcept(noexcept(__a.destroy(__p))) - -> decltype(__a.destroy(__p)) - { __a.destroy(__p); } - - template - static _GLIBCXX14_CONSTEXPR void - _S_destroy(_Alloc2&, _Tp* __p, ...) - noexcept(std::is_nothrow_destructible<_Tp>::value) - { std::_Destroy(__p); } - - template - static constexpr auto - _S_max_size(_Alloc2& __a, int) - -> decltype(__a.max_size()) - { return __a.max_size(); } - - template - static constexpr size_type - _S_max_size(_Alloc2&, ...) - { - // _GLIBCXX_RESOLVE_LIB_DEFECTS - // 2466. allocator_traits::max_size() default behavior is incorrect - return __gnu_cxx::__numeric_traits::__max - / sizeof(value_type); - } - - template - static constexpr auto - _S_select(_Alloc2& __a, int) - -> decltype(__a.select_on_container_copy_construction()) - { return __a.select_on_container_copy_construction(); } - - template - static constexpr _Alloc2 - _S_select(_Alloc2& __a, ...) - { return __a; } - - public: - - /** - * @brief Allocate memory. - * @param __a An allocator. - * @param __n The number of objects to allocate space for. - * - * Calls @c a.allocate(n) - */ - _GLIBCXX_NODISCARD static _GLIBCXX20_CONSTEXPR pointer - allocate(_Alloc& __a, size_type __n) - { return __a.allocate(__n); } - - /** - * @brief Allocate memory. - * @param __a An allocator. - * @param __n The number of objects to allocate space for. - * @param __hint Aid to locality. - * @return Memory of suitable size and alignment for @a n objects - * of type @c value_type - * - * Returns a.allocate(n, hint) if that expression is - * well-formed, otherwise returns @c a.allocate(n) - */ - _GLIBCXX_NODISCARD static _GLIBCXX20_CONSTEXPR pointer - allocate(_Alloc& __a, size_type __n, const_void_pointer __hint) - { return _S_allocate(__a, __n, __hint, 0); } - - /** - * @brief Deallocate memory. - * @param __a An allocator. - * @param __p Pointer to the memory to deallocate. - * @param __n The number of objects space was allocated for. - * - * Calls a.deallocate(p, n) - */ - static _GLIBCXX20_CONSTEXPR void - deallocate(_Alloc& __a, pointer __p, size_type __n) - { __a.deallocate(__p, __n); } - - /** - * @brief Construct an object of type `_Tp` - * @param __a An allocator. - * @param __p Pointer to memory of suitable size and alignment for Tp - * @param __args Constructor arguments. - * - * Calls __a.construct(__p, std::forward(__args)...) - * if that expression is well-formed, otherwise uses placement-new - * to construct an object of type @a _Tp at location @a __p from the - * arguments @a __args... - */ - template - static _GLIBCXX20_CONSTEXPR auto - construct(_Alloc& __a, _Tp* __p, _Args&&... __args) - noexcept(noexcept(_S_construct(__a, __p, - std::forward<_Args>(__args)...))) - -> decltype(_S_construct(__a, __p, std::forward<_Args>(__args)...)) - { _S_construct(__a, __p, std::forward<_Args>(__args)...); } - - /** - * @brief Destroy an object of type @a _Tp - * @param __a An allocator. - * @param __p Pointer to the object to destroy - * - * Calls @c __a.destroy(__p) if that expression is well-formed, - * otherwise calls @c __p->~_Tp() - */ - template - static _GLIBCXX20_CONSTEXPR void - destroy(_Alloc& __a, _Tp* __p) - noexcept(noexcept(_S_destroy(__a, __p, 0))) - { _S_destroy(__a, __p, 0); } - - /** - * @brief The maximum supported allocation size - * @param __a An allocator. - * @return @c __a.max_size() or @c numeric_limits::max() - * - * Returns @c __a.max_size() if that expression is well-formed, - * otherwise returns @c numeric_limits::max() - */ - static _GLIBCXX20_CONSTEXPR size_type - max_size(const _Alloc& __a) noexcept - { return _S_max_size(__a, 0); } - - /** - * @brief Obtain an allocator to use when copying a container. - * @param __rhs An allocator. - * @return @c __rhs.select_on_container_copy_construction() or @a __rhs - * - * Returns @c __rhs.select_on_container_copy_construction() if that - * expression is well-formed, otherwise returns @a __rhs - */ - static _GLIBCXX20_CONSTEXPR _Alloc - select_on_container_copy_construction(const _Alloc& __rhs) - { return _S_select(__rhs, 0); } - }; - -#if _GLIBCXX_HOSTED - -#if __cplusplus > 201703L -# define __cpp_lib_constexpr_dynamic_alloc 201907L -#endif - - /// Partial specialization for std::allocator. - template - struct allocator_traits> - { - /// The allocator type - using allocator_type = allocator<_Tp>; - - /// The allocated type - using value_type = _Tp; - - /// The allocator's pointer type. - using pointer = _Tp*; - - /// The allocator's const pointer type. - using const_pointer = const _Tp*; - - /// The allocator's void pointer type. - using void_pointer = void*; - - /// The allocator's const void pointer type. - using const_void_pointer = const void*; - - /// The allocator's difference type - using difference_type = std::ptrdiff_t; - - /// The allocator's size type - using size_type = std::size_t; - - /// How the allocator is propagated on copy assignment - using propagate_on_container_copy_assignment = false_type; - - /// How the allocator is propagated on move assignment - using propagate_on_container_move_assignment = true_type; - - /// How the allocator is propagated on swap - using propagate_on_container_swap = false_type; - - /// Whether all instances of the allocator type compare equal. - using is_always_equal = true_type; - - template - using rebind_alloc = allocator<_Up>; - - template - using rebind_traits = allocator_traits>; - - /** - * @brief Allocate memory. - * @param __a An allocator. - * @param __n The number of objects to allocate space for. - * - * Calls @c a.allocate(n) - */ - [[__nodiscard__,__gnu__::__always_inline__]] - static _GLIBCXX20_CONSTEXPR pointer - allocate(allocator_type& __a, size_type __n) - { return __a.allocate(__n); } - - /** - * @brief Allocate memory. - * @param __a An allocator. - * @param __n The number of objects to allocate space for. - * @param __hint Aid to locality. - * @return Memory of suitable size and alignment for @a n objects - * of type @c value_type - * - * Returns a.allocate(n, hint) - */ - [[__nodiscard__,__gnu__::__always_inline__]] - static _GLIBCXX20_CONSTEXPR pointer - allocate(allocator_type& __a, size_type __n, const_void_pointer __hint) - { -#if __cplusplus <= 201703L - return __a.allocate(__n, __hint); -#else - return __a.allocate(__n); -#endif - } - - /** - * @brief Deallocate memory. - * @param __a An allocator. - * @param __p Pointer to the memory to deallocate. - * @param __n The number of objects space was allocated for. - * - * Calls a.deallocate(p, n) - */ - [[__gnu__::__always_inline__]] - static _GLIBCXX20_CONSTEXPR void - deallocate(allocator_type& __a, pointer __p, size_type __n) - { __a.deallocate(__p, __n); } - - /** - * @brief Construct an object of type `_Up` - * @param __a An allocator. - * @param __p Pointer to memory of suitable size and alignment for - * an object of type `_Up`. - * @param __args Constructor arguments. - * - * Calls `__a.construct(__p, std::forward<_Args>(__args)...)` - * in C++11, C++14 and C++17. Changed in C++20 to call - * `std::construct_at(__p, std::forward<_Args>(__args)...)` instead. - */ - template - [[__gnu__::__always_inline__]] - static _GLIBCXX20_CONSTEXPR void - construct(allocator_type& __a __attribute__((__unused__)), _Up* __p, - _Args&&... __args) - noexcept(std::is_nothrow_constructible<_Up, _Args...>::value) - { -#if __cplusplus <= 201703L - __a.construct(__p, std::forward<_Args>(__args)...); -#else - std::construct_at(__p, std::forward<_Args>(__args)...); -#endif - } - - /** - * @brief Destroy an object of type @a _Up - * @param __a An allocator. - * @param __p Pointer to the object to destroy - * - * Calls @c __a.destroy(__p). - */ - template - [[__gnu__::__always_inline__]] - static _GLIBCXX20_CONSTEXPR void - destroy(allocator_type& __a __attribute__((__unused__)), _Up* __p) - noexcept(is_nothrow_destructible<_Up>::value) - { -#if __cplusplus <= 201703L - __a.destroy(__p); -#else - std::destroy_at(__p); -#endif - } - - /** - * @brief The maximum supported allocation size - * @param __a An allocator. - * @return @c __a.max_size() - */ - [[__gnu__::__always_inline__]] - static _GLIBCXX20_CONSTEXPR size_type - max_size(const allocator_type& __a __attribute__((__unused__))) noexcept - { -#if __cplusplus <= 201703L - return __a.max_size(); -#else - return size_t(-1) / sizeof(value_type); -#endif - } - - /** - * @brief Obtain an allocator to use when copying a container. - * @param __rhs An allocator. - * @return @c __rhs - */ - [[__gnu__::__always_inline__]] - static _GLIBCXX20_CONSTEXPR allocator_type - select_on_container_copy_construction(const allocator_type& __rhs) - { return __rhs; } - }; - - /// Explicit specialization for std::allocator. - template<> - struct allocator_traits> - { - /// The allocator type - using allocator_type = allocator; - - /// The allocated type - using value_type = void; - - /// The allocator's pointer type. - using pointer = void*; - - /// The allocator's const pointer type. - using const_pointer = const void*; - - /// The allocator's void pointer type. - using void_pointer = void*; - - /// The allocator's const void pointer type. - using const_void_pointer = const void*; - - /// The allocator's difference type - using difference_type = std::ptrdiff_t; - - /// The allocator's size type - using size_type = std::size_t; - - /// How the allocator is propagated on copy assignment - using propagate_on_container_copy_assignment = false_type; - - /// How the allocator is propagated on move assignment - using propagate_on_container_move_assignment = true_type; - - /// How the allocator is propagated on swap - using propagate_on_container_swap = false_type; - - /// Whether all instances of the allocator type compare equal. - using is_always_equal = true_type; - - template - using rebind_alloc = allocator<_Up>; - - template - using rebind_traits = allocator_traits>; - - /// allocate is ill-formed for allocator - static void* - allocate(allocator_type&, size_type, const void* = nullptr) = delete; - - /// deallocate is ill-formed for allocator - static void - deallocate(allocator_type&, void*, size_type) = delete; - - /** - * @brief Construct an object of type `_Up` - * @param __a An allocator. - * @param __p Pointer to memory of suitable size and alignment for - * an object of type `_Up`. - * @param __args Constructor arguments. - * - * Calls `__a.construct(__p, std::forward<_Args>(__args)...)` - * in C++11, C++14 and C++17. Changed in C++20 to call - * `std::construct_at(__p, std::forward<_Args>(__args)...)` instead. - */ - template - [[__gnu__::__always_inline__]] - static _GLIBCXX20_CONSTEXPR void - construct(allocator_type&, _Up* __p, _Args&&... __args) - noexcept(std::is_nothrow_constructible<_Up, _Args...>::value) - { std::_Construct(__p, std::forward<_Args>(__args)...); } - - /** - * @brief Destroy an object of type `_Up` - * @param __a An allocator. - * @param __p Pointer to the object to destroy - * - * Invokes the destructor for `*__p`. - */ - template - [[__gnu__::__always_inline__]] - static _GLIBCXX20_CONSTEXPR void - destroy(allocator_type&, _Up* __p) - noexcept(is_nothrow_destructible<_Up>::value) - { std::_Destroy(__p); } - - /// max_size is ill-formed for allocator - static size_type - max_size(const allocator_type&) = delete; - - /** - * @brief Obtain an allocator to use when copying a container. - * @param __rhs An allocator. - * @return `__rhs` - */ - [[__gnu__::__always_inline__]] - static _GLIBCXX20_CONSTEXPR allocator_type - select_on_container_copy_construction(const allocator_type& __rhs) - { return __rhs; } - }; -#endif - - /// @cond undocumented -#if __cplusplus < 201703L - template - [[__gnu__::__always_inline__]] - inline void - __do_alloc_on_copy(_Alloc& __one, const _Alloc& __two, true_type) - { __one = __two; } - - template - [[__gnu__::__always_inline__]] - inline void - __do_alloc_on_copy(_Alloc&, const _Alloc&, false_type) - { } -#endif - - template - [[__gnu__::__always_inline__]] - _GLIBCXX14_CONSTEXPR inline void - __alloc_on_copy(_Alloc& __one, const _Alloc& __two) - { - using __traits = allocator_traits<_Alloc>; - using __pocca = - typename __traits::propagate_on_container_copy_assignment::type; -#if __cplusplus >= 201703L - if constexpr (__pocca::value) - __one = __two; -#else - __do_alloc_on_copy(__one, __two, __pocca()); -#endif - } - - template - [[__gnu__::__always_inline__]] - constexpr _Alloc - __alloc_on_copy(const _Alloc& __a) - { - typedef allocator_traits<_Alloc> __traits; - return __traits::select_on_container_copy_construction(__a); - } - -#if __cplusplus < 201703L - template - [[__gnu__::__always_inline__]] - inline void __do_alloc_on_move(_Alloc& __one, _Alloc& __two, true_type) - { __one = std::move(__two); } - - template - [[__gnu__::__always_inline__]] - inline void __do_alloc_on_move(_Alloc&, _Alloc&, false_type) - { } -#endif - - template - [[__gnu__::__always_inline__]] - _GLIBCXX14_CONSTEXPR inline void - __alloc_on_move(_Alloc& __one, _Alloc& __two) - { - using __traits = allocator_traits<_Alloc>; - using __pocma - = typename __traits::propagate_on_container_move_assignment::type; -#if __cplusplus >= 201703L - if constexpr (__pocma::value) - __one = std::move(__two); -#else - __do_alloc_on_move(__one, __two, __pocma()); -#endif - } - -#if __cplusplus < 201703L - template - [[__gnu__::__always_inline__]] - inline void __do_alloc_on_swap(_Alloc& __one, _Alloc& __two, true_type) - { - using std::swap; - swap(__one, __two); - } - - template - [[__gnu__::__always_inline__]] - inline void __do_alloc_on_swap(_Alloc&, _Alloc&, false_type) - { } -#endif - - template - [[__gnu__::__always_inline__]] - _GLIBCXX14_CONSTEXPR inline void - __alloc_on_swap(_Alloc& __one, _Alloc& __two) - { - using __traits = allocator_traits<_Alloc>; - using __pocs = typename __traits::propagate_on_container_swap::type; -#if __cplusplus >= 201703L - if constexpr (__pocs::value) - { - using std::swap; - swap(__one, __two); - } -#else - __do_alloc_on_swap(__one, __two, __pocs()); -#endif - } - - template, - typename = void> - struct __is_alloc_insertable_impl - : false_type - { }; - - template - struct __is_alloc_insertable_impl<_Alloc, _Tp, _ValueT, - __void_t::construct( - std::declval<_Alloc&>(), std::declval<_ValueT*>(), - std::declval<_Tp>()))>> - : true_type - { }; - - // true if _Alloc::value_type is CopyInsertable into containers using _Alloc - // (might be wrong if _Alloc::construct exists but is not constrained, - // i.e. actually trying to use it would still be invalid. Use with caution.) - template - struct __is_copy_insertable - : __is_alloc_insertable_impl<_Alloc, - typename _Alloc::value_type const&>::type - { }; - -#if _GLIBCXX_HOSTED - // std::allocator<_Tp> just requires CopyConstructible - template - struct __is_copy_insertable> - : is_copy_constructible<_Tp> - { }; -#endif - - // true if _Alloc::value_type is MoveInsertable into containers using _Alloc - // (might be wrong if _Alloc::construct exists but is not constrained, - // i.e. actually trying to use it would still be invalid. Use with caution.) - template - struct __is_move_insertable - : __is_alloc_insertable_impl<_Alloc, typename _Alloc::value_type>::type - { }; - -#if _GLIBCXX_HOSTED - // std::allocator<_Tp> just requires MoveConstructible - template - struct __is_move_insertable> - : is_move_constructible<_Tp> - { }; -#endif - - // Trait to detect Allocator-like types. - template - struct __is_allocator : false_type { }; - - template - struct __is_allocator<_Alloc, - __void_t().allocate(size_t{}))>> - : true_type { }; - - template - using _RequireAllocator - = typename enable_if<__is_allocator<_Alloc>::value, _Alloc>::type; - - template - using _RequireNotAllocator - = typename enable_if::value, _Alloc>::type; - -#if __cpp_concepts >= 201907L - template - concept __allocator_like = requires (_Alloc& __a) { - typename _Alloc::value_type; - __a.deallocate(__a.allocate(1u), 1u); - }; -#endif - /// @endcond -#endif // C++11 - - /// @cond undocumented - - // To implement Option 3 of DR 431. - template - struct __alloc_swap - { static void _S_do_it(_Alloc&, _Alloc&) _GLIBCXX_NOEXCEPT { } }; - - template - struct __alloc_swap<_Alloc, false> - { - static void - _S_do_it(_Alloc& __one, _Alloc& __two) _GLIBCXX_NOEXCEPT - { - // Precondition: swappable allocators. - if (__one != __two) - swap(__one, __two); - } - }; - -#if __cplusplus >= 201103L - template, - is_nothrow_move_constructible>::value> - struct __shrink_to_fit_aux - { static bool _S_do_it(_Tp&) noexcept { return false; } }; - - template - struct __shrink_to_fit_aux<_Tp, true> - { - _GLIBCXX20_CONSTEXPR - static bool - _S_do_it(_Tp& __c) noexcept - { -#if __cpp_exceptions - try - { - _Tp(__make_move_if_noexcept_iterator(__c.begin()), - __make_move_if_noexcept_iterator(__c.end()), - __c.get_allocator()).swap(__c); - return true; - } - catch(...) - { return false; } -#else - return false; -#endif - } - }; -#endif - - /** - * Destroy a range of objects using the supplied allocator. For - * non-default allocators we do not optimize away invocation of - * destroy() even if _Tp has a trivial destructor. - */ - - template - _GLIBCXX20_CONSTEXPR - void - _Destroy(_ForwardIterator __first, _ForwardIterator __last, - _Allocator& __alloc) - { - for (; __first != __last; ++__first) -#if __cplusplus < 201103L - __alloc.destroy(std::__addressof(*__first)); -#else - allocator_traits<_Allocator>::destroy(__alloc, - std::__addressof(*__first)); -#endif - } - -#if _GLIBCXX_HOSTED - template - __attribute__((__always_inline__)) _GLIBCXX20_CONSTEXPR - inline void - _Destroy(_ForwardIterator __first, _ForwardIterator __last, - allocator<_Tp>&) - { - _Destroy(__first, __last); - } -#endif - /// @endcond - -_GLIBCXX_END_NAMESPACE_VERSION -} // namespace std -#endif // _ALLOC_TRAITS_H diff --git a/.ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@c++@13.1.1@bits@alloc_traits.h.blob b/.ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@c++@13.1.1@bits@alloc_traits.h.blob deleted file mode 100644 index 111d7269babaf0a4c3b62299bb6e713fda35d856..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 69721 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 diff --git a/.ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@c++@13.1.1@bits@allocator.h b/.ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@c++@13.1.1@bits@allocator.h deleted file mode 100644 index abbd753..0000000 --- a/.ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@c++@13.1.1@bits@allocator.h +++ /dev/null @@ -1,294 +0,0 @@ -// Allocators -*- C++ -*- - -// Copyright (C) 2001-2023 Free Software Foundation, Inc. -// -// This file is part of the GNU ISO C++ Library. This library is free -// software; you can redistribute it and/or modify it under the -// terms of the GNU General Public License as published by the -// Free Software Foundation; either version 3, or (at your option) -// any later version. - -// This library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. - -// Under Section 7 of GPL version 3, you are granted additional -// permissions described in the GCC Runtime Library Exception, version -// 3.1, as published by the Free Software Foundation. - -// You should have received a copy of the GNU General Public License and -// a copy of the GCC Runtime Library Exception along with this program; -// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see -// . - -/* - * Copyright (c) 1996-1997 - * Silicon Graphics Computer Systems, Inc. - * - * Permission to use, copy, modify, distribute and sell this software - * and its documentation for any purpose is hereby granted without fee, - * provided that the above copyright notice appear in all copies and - * that both that copyright notice and this permission notice appear - * in supporting documentation. Silicon Graphics makes no - * representations about the suitability of this software for any - * purpose. It is provided "as is" without express or implied warranty. - */ - -/** @file bits/allocator.h - * This is an internal header file, included by other library headers. - * Do not attempt to use it directly. @headername{memory} - */ - -#ifndef _ALLOCATOR_H -#define _ALLOCATOR_H 1 - -#include // Define the base class to std::allocator. -#include -#if __cplusplus >= 201103L -#include -#endif - -#define __cpp_lib_incomplete_container_elements 201505L - -namespace std _GLIBCXX_VISIBILITY(default) -{ -_GLIBCXX_BEGIN_NAMESPACE_VERSION - - /** - * @addtogroup allocators - * @{ - */ - - // Since C++20 the primary template should be used for allocator, - // but then it would have a non-trivial default ctor and dtor for C++20, - // but trivial for C++98-17, which would be an ABI incompatibility between - // different standard dialects. So C++20 still uses the allocator - // explicit specialization, with the historical ABI properties, but with - // the same members that are present in the primary template. - - /** std::allocator specialization. - * - * @headerfile memory - */ - template<> - class allocator - { - public: - typedef void value_type; - typedef size_t size_type; - typedef ptrdiff_t difference_type; - -#if __cplusplus <= 201703L - // These were removed for C++20, allocator_traits does the right thing. - typedef void* pointer; - typedef const void* const_pointer; - - template - struct rebind - { typedef allocator<_Tp1> other; }; -#endif - -#if __cplusplus >= 201103L - // _GLIBCXX_RESOLVE_LIB_DEFECTS - // 2103. std::allocator propagate_on_container_move_assignment - using propagate_on_container_move_assignment = true_type; - - using is_always_equal - _GLIBCXX20_DEPRECATED_SUGGEST("std::allocator_traits::is_always_equal") - = true_type; - -#if __cplusplus >= 202002L - // As noted above, these members are present for C++20 to provide the - // same API as the primary template, but still trivial as in pre-C++20. - allocator() = default; - ~allocator() = default; - - template - __attribute__((__always_inline__)) - constexpr - allocator(const allocator<_Up>&) noexcept { } - - // No allocate member because it's ill-formed by LWG 3307. - // No deallocate member because it would be undefined to call it - // with any pointer which wasn't obtained from allocate. -#endif // C++20 -#endif // C++11 - }; - - /** - * @brief The @a standard allocator, as per C++03 [20.4.1]. - * - * See https://gcc.gnu.org/onlinedocs/libstdc++/manual/memory.html#std.util.memory.allocator - * for further details. - * - * @tparam _Tp Type of allocated object. - * - * @headerfile memory - */ - template - class allocator : public __allocator_base<_Tp> - { - public: - typedef _Tp value_type; - typedef size_t size_type; - typedef ptrdiff_t difference_type; - -#if __cplusplus <= 201703L - // These were removed for C++20. - typedef _Tp* pointer; - typedef const _Tp* const_pointer; - typedef _Tp& reference; - typedef const _Tp& const_reference; - - template - struct rebind - { typedef allocator<_Tp1> other; }; -#endif - -#if __cplusplus >= 201103L - // _GLIBCXX_RESOLVE_LIB_DEFECTS - // 2103. std::allocator propagate_on_container_move_assignment - using propagate_on_container_move_assignment = true_type; - - using is_always_equal - _GLIBCXX20_DEPRECATED_SUGGEST("std::allocator_traits::is_always_equal") - = true_type; -#endif - - // _GLIBCXX_RESOLVE_LIB_DEFECTS - // 3035. std::allocator's constructors should be constexpr - __attribute__((__always_inline__)) - _GLIBCXX20_CONSTEXPR - allocator() _GLIBCXX_NOTHROW { } - - __attribute__((__always_inline__)) - _GLIBCXX20_CONSTEXPR - allocator(const allocator& __a) _GLIBCXX_NOTHROW - : __allocator_base<_Tp>(__a) { } - -#if __cplusplus >= 201103L - // Avoid implicit deprecation. - allocator& operator=(const allocator&) = default; -#endif - - template - __attribute__((__always_inline__)) - _GLIBCXX20_CONSTEXPR - allocator(const allocator<_Tp1>&) _GLIBCXX_NOTHROW { } - - __attribute__((__always_inline__)) -#if __cpp_constexpr_dynamic_alloc - constexpr -#endif - ~allocator() _GLIBCXX_NOTHROW { } - -#if __cplusplus > 201703L - [[nodiscard,__gnu__::__always_inline__]] - constexpr _Tp* - allocate(size_t __n) - { - if (std::__is_constant_evaluated()) - { - if (__builtin_mul_overflow(__n, sizeof(_Tp), &__n)) - std::__throw_bad_array_new_length(); - return static_cast<_Tp*>(::operator new(__n)); - } - - return __allocator_base<_Tp>::allocate(__n, 0); - } - - [[__gnu__::__always_inline__]] - constexpr void - deallocate(_Tp* __p, size_t __n) - { - if (std::__is_constant_evaluated()) - { - ::operator delete(__p); - return; - } - __allocator_base<_Tp>::deallocate(__p, __n); - } -#endif // C++20 - - friend __attribute__((__always_inline__)) _GLIBCXX20_CONSTEXPR - bool - operator==(const allocator&, const allocator&) _GLIBCXX_NOTHROW - { return true; } - -#if __cpp_impl_three_way_comparison < 201907L - friend __attribute__((__always_inline__)) _GLIBCXX20_CONSTEXPR - bool - operator!=(const allocator&, const allocator&) _GLIBCXX_NOTHROW - { return false; } -#endif - - // Inherit everything else. - }; - - /** Equality comparison for std::allocator objects - * - * @return true, for all std::allocator objects. - * @relates std::allocator - */ - template - __attribute__((__always_inline__)) - inline _GLIBCXX20_CONSTEXPR bool - operator==(const allocator<_T1>&, const allocator<_T2>&) - _GLIBCXX_NOTHROW - { return true; } - -#if __cpp_impl_three_way_comparison < 201907L - template - __attribute__((__always_inline__)) - inline _GLIBCXX20_CONSTEXPR bool - operator!=(const allocator<_T1>&, const allocator<_T2>&) - _GLIBCXX_NOTHROW - { return false; } -#endif - - /// @cond undocumented - - // Invalid allocator partial specializations. - // allocator_traits::rebind_alloc can be used to form a valid allocator type. - template - class allocator - { - public: - typedef _Tp value_type; - template allocator(const allocator<_Up>&) { } - }; - - template - class allocator - { - public: - typedef _Tp value_type; - template allocator(const allocator<_Up>&) { } - }; - - template - class allocator - { - public: - typedef _Tp value_type; - template allocator(const allocator<_Up>&) { } - }; - /// @endcond - - /// @} group allocator - - // Inhibit implicit instantiations for required instantiations, - // which are defined via explicit instantiations elsewhere. -#if _GLIBCXX_EXTERN_TEMPLATE - extern template class allocator; - extern template class allocator; -#endif - - // Undefine. -#undef __allocator_base - -_GLIBCXX_END_NAMESPACE_VERSION -} // namespace std - -#endif diff --git a/.ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@c++@13.1.1@bits@allocator.h.blob b/.ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@c++@13.1.1@bits@allocator.h.blob deleted file mode 100644 index 3e9c294af5fb08ca04613fb479370c3df16df74e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 17400 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 A?*IS* diff --git a/.ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@c++@13.1.1@bits@basic_ios.h b/.ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@c++@13.1.1@bits@basic_ios.h deleted file mode 100644 index de5719c..0000000 --- a/.ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@c++@13.1.1@bits@basic_ios.h +++ /dev/null @@ -1,518 +0,0 @@ -// Iostreams base classes -*- C++ -*- - -// Copyright (C) 1997-2023 Free Software Foundation, Inc. -// -// This file is part of the GNU ISO C++ Library. This library is free -// software; you can redistribute it and/or modify it under the -// terms of the GNU General Public License as published by the -// Free Software Foundation; either version 3, or (at your option) -// any later version. - -// This library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. - -// Under Section 7 of GPL version 3, you are granted additional -// permissions described in the GCC Runtime Library Exception, version -// 3.1, as published by the Free Software Foundation. - -// You should have received a copy of the GNU General Public License and -// a copy of the GCC Runtime Library Exception along with this program; -// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see -// . - -/** @file bits/basic_ios.h - * This is an internal header file, included by other library headers. - * Do not attempt to use it directly. @headername{ios} - */ - -#ifndef _BASIC_IOS_H -#define _BASIC_IOS_H 1 - -#pragma GCC system_header - -#include -#include -#include -#include -#include - -namespace std _GLIBCXX_VISIBILITY(default) -{ -_GLIBCXX_BEGIN_NAMESPACE_VERSION - - template - inline const _Facet& - __check_facet(const _Facet* __f) - { - if (!__f) - __throw_bad_cast(); - return *__f; - } - - /** - * @brief Template class basic_ios, virtual base class for all - * stream classes. - * @ingroup io - * - * @tparam _CharT Type of character stream. - * @tparam _Traits Traits for character type, defaults to - * char_traits<_CharT>. - * - * Most of the member functions called dispatched on stream objects - * (e.g., @c std::cout.foo(bar);) are consolidated in this class. - */ - template - class basic_ios : public ios_base - { - public: - ///@{ - /** - * These are standard types. They permit a standardized way of - * referring to names of (or names dependent on) the template - * parameters, which are specific to the implementation. - */ - typedef _CharT char_type; - typedef typename _Traits::int_type int_type; - typedef typename _Traits::pos_type pos_type; - typedef typename _Traits::off_type off_type; - typedef _Traits traits_type; - ///@} - - ///@{ - /** - * These are non-standard types. - */ - typedef ctype<_CharT> __ctype_type; - typedef num_put<_CharT, ostreambuf_iterator<_CharT, _Traits> > - __num_put_type; - typedef num_get<_CharT, istreambuf_iterator<_CharT, _Traits> > - __num_get_type; - ///@} - - // Data members: - protected: - basic_ostream<_CharT, _Traits>* _M_tie; - mutable char_type _M_fill; - mutable bool _M_fill_init; - basic_streambuf<_CharT, _Traits>* _M_streambuf; - - // Cached use_facet, which is based on the current locale info. - const __ctype_type* _M_ctype; - // For ostream. - const __num_put_type* _M_num_put; - // For istream. - const __num_get_type* _M_num_get; - - public: - ///@{ - /** - * @brief The quick-and-easy status check. - * - * This allows you to write constructs such as - * if (!a_stream) ... and while (a_stream) ... - */ -#if __cplusplus >= 201103L - explicit operator bool() const - { return !this->fail(); } -#else - operator void*() const - { return this->fail() ? 0 : const_cast(this); } -#endif - - bool - operator!() const - { return this->fail(); } - ///@} - - /** - * @brief Returns the error state of the stream buffer. - * @return A bit pattern (well, isn't everything?) - * - * See std::ios_base::iostate for the possible bit values. Most - * users will call one of the interpreting wrappers, e.g., good(). - */ - iostate - rdstate() const - { return _M_streambuf_state; } - - /** - * @brief [Re]sets the error state. - * @param __state The new state flag(s) to set. - * - * See std::ios_base::iostate for the possible bit values. Most - * users will not need to pass an argument. - */ - void - clear(iostate __state = goodbit); - - /** - * @brief Sets additional flags in the error state. - * @param __state The additional state flag(s) to set. - * - * See std::ios_base::iostate for the possible bit values. - */ - void - setstate(iostate __state) - { this->clear(this->rdstate() | __state); } - - // Flips the internal state on for the proper state bits, then - // rethrows the propagated exception if bit also set in - // exceptions(). Must only be called within a catch handler. - void - _M_setstate(iostate __state) - { - // 27.6.1.2.1 Common requirements. - // Turn this on without causing an ios::failure to be thrown. - _M_streambuf_state |= __state; - if (this->exceptions() & __state) - __throw_exception_again; - } - - /** - * @brief Fast error checking. - * @return True if no error flags are set. - * - * A wrapper around rdstate. - */ - bool - good() const - { return this->rdstate() == 0; } - - /** - * @brief Fast error checking. - * @return True if the eofbit is set. - * - * Note that other iostate flags may also be set. - */ - bool - eof() const - { return (this->rdstate() & eofbit) != 0; } - - /** - * @brief Fast error checking. - * @return True if either the badbit or the failbit is set. - * - * Checking the badbit in fail() is historical practice. - * Note that other iostate flags may also be set. - */ - bool - fail() const - { return (this->rdstate() & (badbit | failbit)) != 0; } - - /** - * @brief Fast error checking. - * @return True if the badbit is set. - * - * Note that other iostate flags may also be set. - */ - bool - bad() const - { return (this->rdstate() & badbit) != 0; } - - /** - * @brief Throwing exceptions on errors. - * @return The current exceptions mask. - * - * This changes nothing in the stream. See the one-argument version - * of exceptions(iostate) for the meaning of the return value. - */ - iostate - exceptions() const - { return _M_exception; } - - /** - * @brief Throwing exceptions on errors. - * @param __except The new exceptions mask. - * - * By default, error flags are set silently. You can set an - * exceptions mask for each stream; if a bit in the mask becomes set - * in the error flags, then an exception of type - * std::ios_base::failure is thrown. - * - * If the error flag is already set when the exceptions mask is - * added, the exception is immediately thrown. Try running the - * following under GCC 3.1 or later: - * @code - * #include - * #include - * #include - * - * int main() - * { - * std::set_terminate (__gnu_cxx::__verbose_terminate_handler); - * - * std::ifstream f ("/etc/motd"); - * - * std::cerr << "Setting badbit\n"; - * f.setstate (std::ios_base::badbit); - * - * std::cerr << "Setting exception mask\n"; - * f.exceptions (std::ios_base::badbit); - * } - * @endcode - */ - void - exceptions(iostate __except) - { - _M_exception = __except; - this->clear(_M_streambuf_state); - } - - // Constructor/destructor: - /** - * @brief Constructor performs initialization. - * - * The parameter is passed by derived streams. - */ - explicit - basic_ios(basic_streambuf<_CharT, _Traits>* __sb) - : ios_base(), _M_tie(0), _M_fill(), _M_fill_init(false), _M_streambuf(0), - _M_ctype(0), _M_num_put(0), _M_num_get(0) - { this->init(__sb); } - - /** - * @brief Empty. - * - * The destructor does nothing. More specifically, it does not - * destroy the streambuf held by rdbuf(). - */ - virtual - ~basic_ios() { } - - // Members: - /** - * @brief Fetches the current @e tied stream. - * @return A pointer to the tied stream, or NULL if the stream is - * not tied. - * - * A stream may be @e tied (or synchronized) to a second output - * stream. When this stream performs any I/O, the tied stream is - * first flushed. For example, @c std::cin is tied to @c std::cout. - */ - basic_ostream<_CharT, _Traits>* - tie() const - { return _M_tie; } - - /** - * @brief Ties this stream to an output stream. - * @param __tiestr The output stream. - * @return The previously tied output stream, or NULL if the stream - * was not tied. - * - * This sets up a new tie; see tie() for more. - */ - basic_ostream<_CharT, _Traits>* - tie(basic_ostream<_CharT, _Traits>* __tiestr) - { - basic_ostream<_CharT, _Traits>* __old = _M_tie; - _M_tie = __tiestr; - return __old; - } - - /** - * @brief Accessing the underlying buffer. - * @return The current stream buffer. - * - * This does not change the state of the stream. - */ - basic_streambuf<_CharT, _Traits>* - rdbuf() const - { return _M_streambuf; } - - /** - * @brief Changing the underlying buffer. - * @param __sb The new stream buffer. - * @return The previous stream buffer. - * - * Associates a new buffer with the current stream, and clears the - * error state. - * - * Due to historical accidents which the LWG refuses to correct, the - * I/O library suffers from a design error: this function is hidden - * in derived classes by overrides of the zero-argument @c rdbuf(), - * which is non-virtual for hysterical raisins. As a result, you - * must use explicit qualifications to access this function via any - * derived class. For example: - * - * @code - * std::fstream foo; // or some other derived type - * std::streambuf* p = .....; - * - * foo.ios::rdbuf(p); // ios == basic_ios - * @endcode - */ - basic_streambuf<_CharT, _Traits>* - rdbuf(basic_streambuf<_CharT, _Traits>* __sb); - - /** - * @brief Copies fields of __rhs into this. - * @param __rhs The source values for the copies. - * @return Reference to this object. - * - * All fields of __rhs are copied into this object except that rdbuf() - * and rdstate() remain unchanged. All values in the pword and iword - * arrays are copied. Before copying, each callback is invoked with - * erase_event. After copying, each (new) callback is invoked with - * copyfmt_event. The final step is to copy exceptions(). - */ - basic_ios& - copyfmt(const basic_ios& __rhs); - - /** - * @brief Retrieves the @a empty character. - * @return The current fill character. - * - * It defaults to a space (' ') in the current locale. - */ - char_type - fill() const - { - if (!_M_fill_init) - { - _M_fill = this->widen(' '); - _M_fill_init = true; - } - return _M_fill; - } - - /** - * @brief Sets a new @a empty character. - * @param __ch The new character. - * @return The previous fill character. - * - * The fill character is used to fill out space when P+ characters - * have been requested (e.g., via setw), Q characters are actually - * used, and Qfill(); - _M_fill = __ch; - return __old; - } - - // Locales: - /** - * @brief Moves to a new locale. - * @param __loc The new locale. - * @return The previous locale. - * - * Calls @c ios_base::imbue(loc), and if a stream buffer is associated - * with this stream, calls that buffer's @c pubimbue(loc). - * - * Additional l10n notes are at - * http://gcc.gnu.org/onlinedocs/libstdc++/manual/localization.html - */ - locale - imbue(const locale& __loc); - - /** - * @brief Squeezes characters. - * @param __c The character to narrow. - * @param __dfault The character to narrow. - * @return The narrowed character. - * - * Maps a character of @c char_type to a character of @c char, - * if possible. - * - * Returns the result of - * @code - * std::use_facet >(getloc()).narrow(c,dfault) - * @endcode - * - * Additional l10n notes are at - * http://gcc.gnu.org/onlinedocs/libstdc++/manual/localization.html - */ - char - narrow(char_type __c, char __dfault) const - { return __check_facet(_M_ctype).narrow(__c, __dfault); } - - /** - * @brief Widens characters. - * @param __c The character to widen. - * @return The widened character. - * - * Maps a character of @c char to a character of @c char_type. - * - * Returns the result of - * @code - * std::use_facet >(getloc()).widen(c) - * @endcode - * - * Additional l10n notes are at - * http://gcc.gnu.org/onlinedocs/libstdc++/manual/localization.html - */ - char_type - widen(char __c) const - { return __check_facet(_M_ctype).widen(__c); } - - protected: - // 27.4.5.1 basic_ios constructors - /** - * @brief Empty. - * - * The default constructor does nothing and is not normally - * accessible to users. - */ - basic_ios() - : ios_base(), _M_tie(0), _M_fill(char_type()), _M_fill_init(false), - _M_streambuf(0), _M_ctype(0), _M_num_put(0), _M_num_get(0) - { } - - /** - * @brief All setup is performed here. - * - * This is called from the public constructor. It is not virtual and - * cannot be redefined. - */ - void - init(basic_streambuf<_CharT, _Traits>* __sb); - -#if __cplusplus >= 201103L - basic_ios(const basic_ios&) = delete; - basic_ios& operator=(const basic_ios&) = delete; - - void - move(basic_ios& __rhs) - { - ios_base::_M_move(__rhs); - _M_cache_locale(_M_ios_locale); - this->tie(__rhs.tie(nullptr)); - _M_fill = __rhs._M_fill; - _M_fill_init = __rhs._M_fill_init; - _M_streambuf = nullptr; - } - - void - move(basic_ios&& __rhs) - { this->move(__rhs); } - - void - swap(basic_ios& __rhs) noexcept - { - ios_base::_M_swap(__rhs); - _M_cache_locale(_M_ios_locale); - __rhs._M_cache_locale(__rhs._M_ios_locale); - std::swap(_M_tie, __rhs._M_tie); - std::swap(_M_fill, __rhs._M_fill); - std::swap(_M_fill_init, __rhs._M_fill_init); - } - - void - set_rdbuf(basic_streambuf<_CharT, _Traits>* __sb) - { _M_streambuf = __sb; } -#endif - - void - _M_cache_locale(const locale& __loc); - }; - -_GLIBCXX_END_NAMESPACE_VERSION -} // namespace - -#include - -#endif /* _BASIC_IOS_H */ diff --git a/.ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@c++@13.1.1@bits@basic_ios.h.blob b/.ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@c++@13.1.1@bits@basic_ios.h.blob deleted file mode 100644 index e7f3c61aa19b1c0e38a14ac9855c26b2d82e5fb5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 41691 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 diff --git a/.ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@c++@13.1.1@bits@basic_ios.tcc b/.ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@c++@13.1.1@bits@basic_ios.tcc deleted file mode 100644 index 6d40d14..0000000 --- a/.ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@c++@13.1.1@bits@basic_ios.tcc +++ /dev/null @@ -1,177 +0,0 @@ -// basic_ios member functions -*- C++ -*- - -// Copyright (C) 1999-2023 Free Software Foundation, Inc. -// -// This file is part of the GNU ISO C++ Library. This library is free -// software; you can redistribute it and/or modify it under the -// terms of the GNU General Public License as published by the -// Free Software Foundation; either version 3, or (at your option) -// any later version. - -// This library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. - -// Under Section 7 of GPL version 3, you are granted additional -// permissions described in the GCC Runtime Library Exception, version -// 3.1, as published by the Free Software Foundation. - -// You should have received a copy of the GNU General Public License and -// a copy of the GCC Runtime Library Exception along with this program; -// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see -// . - -/** @file bits/basic_ios.tcc - * This is an internal header file, included by other library headers. - * Do not attempt to use it directly. @headername{ios} - */ - -#ifndef _BASIC_IOS_TCC -#define _BASIC_IOS_TCC 1 - -#pragma GCC system_header - -namespace std _GLIBCXX_VISIBILITY(default) -{ -_GLIBCXX_BEGIN_NAMESPACE_VERSION - - template - void - basic_ios<_CharT, _Traits>::clear(iostate __state) - { - if (this->rdbuf()) - _M_streambuf_state = __state; - else - _M_streambuf_state = __state | badbit; - if (this->exceptions() & this->rdstate()) - __throw_ios_failure(__N("basic_ios::clear")); - } - - template - basic_streambuf<_CharT, _Traits>* - basic_ios<_CharT, _Traits>::rdbuf(basic_streambuf<_CharT, _Traits>* __sb) - { - basic_streambuf<_CharT, _Traits>* __old = _M_streambuf; - _M_streambuf = __sb; - this->clear(); - return __old; - } - - template - basic_ios<_CharT, _Traits>& - basic_ios<_CharT, _Traits>::copyfmt(const basic_ios& __rhs) - { - // _GLIBCXX_RESOLVE_LIB_DEFECTS - // 292. effects of a.copyfmt (a) - if (this != std::__addressof(__rhs)) - { - // Per 27.1.1, do not call imbue, yet must trash all caches - // associated with imbue() - - // Alloc any new word array first, so if it fails we have "rollback". - _Words* __words = (__rhs._M_word_size <= _S_local_word_size) ? - _M_local_word : new _Words[__rhs._M_word_size]; - - // Bump refs before doing callbacks, for safety. - _Callback_list* __cb = __rhs._M_callbacks; - if (__cb) - __cb->_M_add_reference(); - _M_call_callbacks(erase_event); - if (_M_word != _M_local_word) - { - delete [] _M_word; - _M_word = 0; - } - _M_dispose_callbacks(); - - // NB: Don't want any added during above. - _M_callbacks = __cb; - for (int __i = 0; __i < __rhs._M_word_size; ++__i) - __words[__i] = __rhs._M_word[__i]; - _M_word = __words; - _M_word_size = __rhs._M_word_size; - - this->flags(__rhs.flags()); - this->width(__rhs.width()); - this->precision(__rhs.precision()); - this->tie(__rhs.tie()); - this->fill(__rhs.fill()); - _M_ios_locale = __rhs.getloc(); - _M_cache_locale(_M_ios_locale); - - _M_call_callbacks(copyfmt_event); - - // The next is required to be the last assignment. - this->exceptions(__rhs.exceptions()); - } - return *this; - } - - // Locales: - template - locale - basic_ios<_CharT, _Traits>::imbue(const locale& __loc) - { - locale __old(this->getloc()); - ios_base::imbue(__loc); - _M_cache_locale(__loc); - if (this->rdbuf() != 0) - this->rdbuf()->pubimbue(__loc); - return __old; - } - - template - void - basic_ios<_CharT, _Traits>::init(basic_streambuf<_CharT, _Traits>* __sb) - { - // NB: This may be called more than once on the same object. - ios_base::_M_init(); - - // Cache locale data and specific facets used by iostreams. - _M_cache_locale(_M_ios_locale); - - // NB: The 27.4.4.1 Postconditions Table specifies requirements - // after basic_ios::init() has been called. As part of this, - // fill() must return widen(' ') any time after init() has been - // called, which needs an imbued ctype facet of char_type to - // return without throwing an exception. Unfortunately, - // ctype is not necessarily a required facet, so - // streams with char_type != [char, wchar_t] will not have it by - // default. Because of this, the correct value for _M_fill is - // constructed on the first call of fill(). That way, - // unformatted input and output with non-required basic_ios - // instantiations is possible even without imbuing the expected - // ctype facet. - _M_fill = _CharT(); - _M_fill_init = false; - - _M_tie = 0; - _M_exception = goodbit; - _M_streambuf = __sb; - _M_streambuf_state = __sb ? goodbit : badbit; - } - - template - void - basic_ios<_CharT, _Traits>::_M_cache_locale(const locale& __loc) - { - _M_ctype = std::__try_use_facet<__ctype_type>(__loc); - _M_num_put = std::__try_use_facet<__num_put_type>(__loc); - _M_num_get = std::__try_use_facet<__num_get_type>(__loc); - } - - // Inhibit implicit instantiations for required instantiations, - // which are defined via explicit instantiations elsewhere. -#if _GLIBCXX_EXTERN_TEMPLATE - extern template class basic_ios; - -#ifdef _GLIBCXX_USE_WCHAR_T - extern template class basic_ios; -#endif -#endif - -_GLIBCXX_END_NAMESPACE_VERSION -} // namespace std - -#endif diff --git a/.ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@c++@13.1.1@bits@basic_ios.tcc.blob b/.ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@c++@13.1.1@bits@basic_ios.tcc.blob deleted file mode 100644 index 4ee397d2b3ef1611c83e7536e48fc69931ef1297..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 24109 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 diff --git a/.ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@c++@13.1.1@bits@basic_string.h b/.ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@c++@13.1.1@bits@basic_string.h deleted file mode 100644 index 8247ee6..0000000 --- a/.ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@c++@13.1.1@bits@basic_string.h +++ /dev/null @@ -1,4541 +0,0 @@ -// Components for manipulating sequences of characters -*- C++ -*- - -// Copyright (C) 1997-2023 Free Software Foundation, Inc. -// -// This file is part of the GNU ISO C++ Library. This library is free -// software; you can redistribute it and/or modify it under the -// terms of the GNU General Public License as published by the -// Free Software Foundation; either version 3, or (at your option) -// any later version. - -// This library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. - -// Under Section 7 of GPL version 3, you are granted additional -// permissions described in the GCC Runtime Library Exception, version -// 3.1, as published by the Free Software Foundation. - -// You should have received a copy of the GNU General Public License and -// a copy of the GCC Runtime Library Exception along with this program; -// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see -// . - -/** @file bits/basic_string.h - * This is an internal header file, included by other library headers. - * Do not attempt to use it directly. @headername{string} - */ - -// -// ISO C++ 14882: 21 Strings library -// - -#ifndef _BASIC_STRING_H -#define _BASIC_STRING_H 1 - -#pragma GCC system_header - -#include -#include - -#if __cplusplus >= 201103L -#include -#endif - -#if __cplusplus >= 201703L -# include -#endif - -#if ! _GLIBCXX_USE_CXX11_ABI -# include "cow_string.h" -#else -namespace std _GLIBCXX_VISIBILITY(default) -{ -_GLIBCXX_BEGIN_NAMESPACE_VERSION -_GLIBCXX_BEGIN_NAMESPACE_CXX11 - -#ifdef __cpp_lib_is_constant_evaluated -// Support P0980R1 in C++20. -# define __cpp_lib_constexpr_string 201907L -#elif __cplusplus >= 201703L && _GLIBCXX_HAVE_IS_CONSTANT_EVALUATED -// Support P0426R1 changes to char_traits in C++17. -# define __cpp_lib_constexpr_string 201611L -#endif - - /** - * @class basic_string basic_string.h - * @brief Managing sequences of characters and character-like objects. - * - * @ingroup strings - * @ingroup sequences - * @headerfile string - * @since C++98 - * - * @tparam _CharT Type of character - * @tparam _Traits Traits for character type, defaults to - * char_traits<_CharT>. - * @tparam _Alloc Allocator type, defaults to allocator<_CharT>. - * - * Meets the requirements of a container, a - * reversible container, and a - * sequence. Of the - * optional sequence requirements, only - * @c push_back, @c at, and @c %array access are supported. - */ - template - class basic_string - { - typedef typename __gnu_cxx::__alloc_traits<_Alloc>::template - rebind<_CharT>::other _Char_alloc_type; - -#if __cpp_lib_constexpr_string < 201907L - typedef __gnu_cxx::__alloc_traits<_Char_alloc_type> _Alloc_traits; -#else - template - struct _Alloc_traits_impl : __gnu_cxx::__alloc_traits<_Char_alloc_type> - { - typedef __gnu_cxx::__alloc_traits<_Char_alloc_type> _Base; - - [[__gnu__::__always_inline__]] - static constexpr typename _Base::pointer - allocate(_Char_alloc_type& __a, typename _Base::size_type __n) - { - pointer __p = _Base::allocate(__a, __n); - if (std::is_constant_evaluated()) - // Begin the lifetime of characters in allocated storage. - for (size_type __i = 0; __i < __n; ++__i) - std::construct_at(__builtin_addressof(__p[__i])); - return __p; - } - }; - - template - struct _Alloc_traits_impl, _Dummy_for_PR85282> - : __gnu_cxx::__alloc_traits<_Char_alloc_type> - { - // std::char_traits begins the lifetime of characters. - }; - - using _Alloc_traits = _Alloc_traits_impl<_Traits, void>; -#endif - - // Types: - public: - typedef _Traits traits_type; - typedef typename _Traits::char_type value_type; - typedef _Char_alloc_type allocator_type; - typedef typename _Alloc_traits::size_type size_type; - typedef typename _Alloc_traits::difference_type difference_type; - typedef typename _Alloc_traits::reference reference; - typedef typename _Alloc_traits::const_reference const_reference; - typedef typename _Alloc_traits::pointer pointer; - typedef typename _Alloc_traits::const_pointer const_pointer; - typedef __gnu_cxx::__normal_iterator iterator; - typedef __gnu_cxx::__normal_iterator - const_iterator; - typedef std::reverse_iterator const_reverse_iterator; - typedef std::reverse_iterator reverse_iterator; - - /// Value returned by various member functions when they fail. - static const size_type npos = static_cast(-1); - - protected: - // type used for positions in insert, erase etc. -#if __cplusplus < 201103L - typedef iterator __const_iterator; -#else - typedef const_iterator __const_iterator; -#endif - - private: -#if __cplusplus >= 201703L - // A helper type for avoiding boiler-plate. - typedef basic_string_view<_CharT, _Traits> __sv_type; - - template - using _If_sv = enable_if_t< - __and_, - __not_>, - __not_>>::value, - _Res>; - - // Allows an implicit conversion to __sv_type. - _GLIBCXX20_CONSTEXPR - static __sv_type - _S_to_string_view(__sv_type __svt) noexcept - { return __svt; } - - // Wraps a string_view by explicit conversion and thus - // allows to add an internal constructor that does not - // participate in overload resolution when a string_view - // is provided. - struct __sv_wrapper - { - _GLIBCXX20_CONSTEXPR explicit - __sv_wrapper(__sv_type __sv) noexcept : _M_sv(__sv) { } - - __sv_type _M_sv; - }; - - /** - * @brief Only internally used: Construct string from a string view - * wrapper. - * @param __svw string view wrapper. - * @param __a Allocator to use. - */ - _GLIBCXX20_CONSTEXPR - explicit - basic_string(__sv_wrapper __svw, const _Alloc& __a) - : basic_string(__svw._M_sv.data(), __svw._M_sv.size(), __a) { } -#endif - - // Use empty-base optimization: http://www.cantrip.org/emptyopt.html - struct _Alloc_hider : allocator_type // TODO check __is_final - { -#if __cplusplus < 201103L - _Alloc_hider(pointer __dat, const _Alloc& __a = _Alloc()) - : allocator_type(__a), _M_p(__dat) { } -#else - _GLIBCXX20_CONSTEXPR - _Alloc_hider(pointer __dat, const _Alloc& __a) - : allocator_type(__a), _M_p(__dat) { } - - _GLIBCXX20_CONSTEXPR - _Alloc_hider(pointer __dat, _Alloc&& __a = _Alloc()) - : allocator_type(std::move(__a)), _M_p(__dat) { } -#endif - - pointer _M_p; // The actual data. - }; - - _Alloc_hider _M_dataplus; - size_type _M_string_length; - - enum { _S_local_capacity = 15 / sizeof(_CharT) }; - - union - { - _CharT _M_local_buf[_S_local_capacity + 1]; - size_type _M_allocated_capacity; - }; - - _GLIBCXX20_CONSTEXPR - void - _M_data(pointer __p) - { _M_dataplus._M_p = __p; } - - _GLIBCXX20_CONSTEXPR - void - _M_length(size_type __length) - { _M_string_length = __length; } - - _GLIBCXX20_CONSTEXPR - pointer - _M_data() const - { return _M_dataplus._M_p; } - - _GLIBCXX20_CONSTEXPR - pointer - _M_local_data() - { -#if __cplusplus >= 201103L - return std::pointer_traits::pointer_to(*_M_local_buf); -#else - return pointer(_M_local_buf); -#endif - } - - _GLIBCXX20_CONSTEXPR - const_pointer - _M_local_data() const - { -#if __cplusplus >= 201103L - return std::pointer_traits::pointer_to(*_M_local_buf); -#else - return const_pointer(_M_local_buf); -#endif - } - - _GLIBCXX20_CONSTEXPR - void - _M_capacity(size_type __capacity) - { _M_allocated_capacity = __capacity; } - - _GLIBCXX20_CONSTEXPR - void - _M_set_length(size_type __n) - { - _M_length(__n); - traits_type::assign(_M_data()[__n], _CharT()); - } - - _GLIBCXX20_CONSTEXPR - bool - _M_is_local() const - { - if (_M_data() == _M_local_data()) - { - if (_M_string_length > _S_local_capacity) - __builtin_unreachable(); - return true; - } - return false; - } - - // Create & Destroy - _GLIBCXX20_CONSTEXPR - pointer - _M_create(size_type&, size_type); - - _GLIBCXX20_CONSTEXPR - void - _M_dispose() - { - if (!_M_is_local()) - _M_destroy(_M_allocated_capacity); - } - - _GLIBCXX20_CONSTEXPR - void - _M_destroy(size_type __size) throw() - { _Alloc_traits::deallocate(_M_get_allocator(), _M_data(), __size + 1); } - -#if __cplusplus < 201103L || defined _GLIBCXX_DEFINING_STRING_INSTANTIATIONS - // _M_construct_aux is used to implement the 21.3.1 para 15 which - // requires special behaviour if _InIterator is an integral type - template - void - _M_construct_aux(_InIterator __beg, _InIterator __end, - std::__false_type) - { - typedef typename iterator_traits<_InIterator>::iterator_category _Tag; - _M_construct(__beg, __end, _Tag()); - } - - // _GLIBCXX_RESOLVE_LIB_DEFECTS - // 438. Ambiguity in the "do the right thing" clause - template - void - _M_construct_aux(_Integer __beg, _Integer __end, std::__true_type) - { _M_construct_aux_2(static_cast(__beg), __end); } - - void - _M_construct_aux_2(size_type __req, _CharT __c) - { _M_construct(__req, __c); } -#endif - - // For Input Iterators, used in istreambuf_iterators, etc. - template - _GLIBCXX20_CONSTEXPR - void - _M_construct(_InIterator __beg, _InIterator __end, - std::input_iterator_tag); - - // For forward_iterators up to random_access_iterators, used for - // string::iterator, _CharT*, etc. - template - _GLIBCXX20_CONSTEXPR - void - _M_construct(_FwdIterator __beg, _FwdIterator __end, - std::forward_iterator_tag); - - _GLIBCXX20_CONSTEXPR - void - _M_construct(size_type __req, _CharT __c); - - _GLIBCXX20_CONSTEXPR - allocator_type& - _M_get_allocator() - { return _M_dataplus; } - - _GLIBCXX20_CONSTEXPR - const allocator_type& - _M_get_allocator() const - { return _M_dataplus; } - - // Ensure that _M_local_buf is the active member of the union. - __attribute__((__always_inline__)) - _GLIBCXX14_CONSTEXPR - pointer - _M_use_local_data() _GLIBCXX_NOEXCEPT - { -#if __cpp_lib_is_constant_evaluated - if (std::is_constant_evaluated()) - for (size_type __i = 0; __i <= _S_local_capacity; ++__i) - _M_local_buf[__i] = _CharT(); -#endif - return _M_local_data(); - } - - private: - -#ifdef _GLIBCXX_DISAMBIGUATE_REPLACE_INST - // The explicit instantiations in misc-inst.cc require this due to - // https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64063 - template::__value - && !__are_same<_Tp, const _CharT*>::__value - && !__are_same<_Tp, iterator>::__value - && !__are_same<_Tp, const_iterator>::__value> - struct __enable_if_not_native_iterator - { typedef basic_string& __type; }; - template - struct __enable_if_not_native_iterator<_Tp, false> { }; -#endif - - _GLIBCXX20_CONSTEXPR - size_type - _M_check(size_type __pos, const char* __s) const - { - if (__pos > this->size()) - __throw_out_of_range_fmt(__N("%s: __pos (which is %zu) > " - "this->size() (which is %zu)"), - __s, __pos, this->size()); - return __pos; - } - - _GLIBCXX20_CONSTEXPR - void - _M_check_length(size_type __n1, size_type __n2, const char* __s) const - { - if (this->max_size() - (this->size() - __n1) < __n2) - __throw_length_error(__N(__s)); - } - - - // NB: _M_limit doesn't check for a bad __pos value. - _GLIBCXX20_CONSTEXPR - size_type - _M_limit(size_type __pos, size_type __off) const _GLIBCXX_NOEXCEPT - { - const bool __testoff = __off < this->size() - __pos; - return __testoff ? __off : this->size() - __pos; - } - - // True if _Rep and source do not overlap. - bool - _M_disjunct(const _CharT* __s) const _GLIBCXX_NOEXCEPT - { - return (less()(__s, _M_data()) - || less()(_M_data() + this->size(), __s)); - } - - // When __n = 1 way faster than the general multichar - // traits_type::copy/move/assign. - _GLIBCXX20_CONSTEXPR - static void - _S_copy(_CharT* __d, const _CharT* __s, size_type __n) - { - if (__n == 1) - traits_type::assign(*__d, *__s); - else - traits_type::copy(__d, __s, __n); - } - - _GLIBCXX20_CONSTEXPR - static void - _S_move(_CharT* __d, const _CharT* __s, size_type __n) - { - if (__n == 1) - traits_type::assign(*__d, *__s); - else - traits_type::move(__d, __s, __n); - } - - _GLIBCXX20_CONSTEXPR - static void - _S_assign(_CharT* __d, size_type __n, _CharT __c) - { - if (__n == 1) - traits_type::assign(*__d, __c); - else - traits_type::assign(__d, __n, __c); - } - - // _S_copy_chars is a separate template to permit specialization - // to optimize for the common case of pointers as iterators. - template - _GLIBCXX20_CONSTEXPR - static void - _S_copy_chars(_CharT* __p, _Iterator __k1, _Iterator __k2) - { - for (; __k1 != __k2; ++__k1, (void)++__p) - traits_type::assign(*__p, *__k1); // These types are off. - } - - _GLIBCXX20_CONSTEXPR - static void - _S_copy_chars(_CharT* __p, iterator __k1, iterator __k2) _GLIBCXX_NOEXCEPT - { _S_copy_chars(__p, __k1.base(), __k2.base()); } - - _GLIBCXX20_CONSTEXPR - static void - _S_copy_chars(_CharT* __p, const_iterator __k1, const_iterator __k2) - _GLIBCXX_NOEXCEPT - { _S_copy_chars(__p, __k1.base(), __k2.base()); } - - _GLIBCXX20_CONSTEXPR - static void - _S_copy_chars(_CharT* __p, _CharT* __k1, _CharT* __k2) _GLIBCXX_NOEXCEPT - { _S_copy(__p, __k1, __k2 - __k1); } - - _GLIBCXX20_CONSTEXPR - static void - _S_copy_chars(_CharT* __p, const _CharT* __k1, const _CharT* __k2) - _GLIBCXX_NOEXCEPT - { _S_copy(__p, __k1, __k2 - __k1); } - - _GLIBCXX20_CONSTEXPR - static int - _S_compare(size_type __n1, size_type __n2) _GLIBCXX_NOEXCEPT - { - const difference_type __d = difference_type(__n1 - __n2); - - if (__d > __gnu_cxx::__numeric_traits::__max) - return __gnu_cxx::__numeric_traits::__max; - else if (__d < __gnu_cxx::__numeric_traits::__min) - return __gnu_cxx::__numeric_traits::__min; - else - return int(__d); - } - - _GLIBCXX20_CONSTEXPR - void - _M_assign(const basic_string&); - - _GLIBCXX20_CONSTEXPR - void - _M_mutate(size_type __pos, size_type __len1, const _CharT* __s, - size_type __len2); - - _GLIBCXX20_CONSTEXPR - void - _M_erase(size_type __pos, size_type __n); - - public: - // Construct/copy/destroy: - // NB: We overload ctors in some cases instead of using default - // arguments, per 17.4.4.4 para. 2 item 2. - - /** - * @brief Default constructor creates an empty string. - */ - _GLIBCXX20_CONSTEXPR - basic_string() - _GLIBCXX_NOEXCEPT_IF(is_nothrow_default_constructible<_Alloc>::value) - : _M_dataplus(_M_local_data()) - { - _M_use_local_data(); - _M_set_length(0); - } - - /** - * @brief Construct an empty string using allocator @a a. - */ - _GLIBCXX20_CONSTEXPR - explicit - basic_string(const _Alloc& __a) _GLIBCXX_NOEXCEPT - : _M_dataplus(_M_local_data(), __a) - { - _M_use_local_data(); - _M_set_length(0); - } - - /** - * @brief Construct string with copy of value of @a __str. - * @param __str Source string. - */ - _GLIBCXX20_CONSTEXPR - basic_string(const basic_string& __str) - : _M_dataplus(_M_local_data(), - _Alloc_traits::_S_select_on_copy(__str._M_get_allocator())) - { - _M_construct(__str._M_data(), __str._M_data() + __str.length(), - std::forward_iterator_tag()); - } - - // _GLIBCXX_RESOLVE_LIB_DEFECTS - // 2583. no way to supply an allocator for basic_string(str, pos) - /** - * @brief Construct string as copy of a substring. - * @param __str Source string. - * @param __pos Index of first character to copy from. - * @param __a Allocator to use. - */ - _GLIBCXX20_CONSTEXPR - basic_string(const basic_string& __str, size_type __pos, - const _Alloc& __a = _Alloc()) - : _M_dataplus(_M_local_data(), __a) - { - const _CharT* __start = __str._M_data() - + __str._M_check(__pos, "basic_string::basic_string"); - _M_construct(__start, __start + __str._M_limit(__pos, npos), - std::forward_iterator_tag()); - } - - /** - * @brief Construct string as copy of a substring. - * @param __str Source string. - * @param __pos Index of first character to copy from. - * @param __n Number of characters to copy. - */ - _GLIBCXX20_CONSTEXPR - basic_string(const basic_string& __str, size_type __pos, - size_type __n) - : _M_dataplus(_M_local_data()) - { - const _CharT* __start = __str._M_data() - + __str._M_check(__pos, "basic_string::basic_string"); - _M_construct(__start, __start + __str._M_limit(__pos, __n), - std::forward_iterator_tag()); - } - - /** - * @brief Construct string as copy of a substring. - * @param __str Source string. - * @param __pos Index of first character to copy from. - * @param __n Number of characters to copy. - * @param __a Allocator to use. - */ - _GLIBCXX20_CONSTEXPR - basic_string(const basic_string& __str, size_type __pos, - size_type __n, const _Alloc& __a) - : _M_dataplus(_M_local_data(), __a) - { - const _CharT* __start - = __str._M_data() + __str._M_check(__pos, "string::string"); - _M_construct(__start, __start + __str._M_limit(__pos, __n), - std::forward_iterator_tag()); - } - - /** - * @brief Construct string initialized by a character %array. - * @param __s Source character %array. - * @param __n Number of characters to copy. - * @param __a Allocator to use (default is default allocator). - * - * NB: @a __s must have at least @a __n characters, '\\0' - * has no special meaning. - */ - _GLIBCXX20_CONSTEXPR - basic_string(const _CharT* __s, size_type __n, - const _Alloc& __a = _Alloc()) - : _M_dataplus(_M_local_data(), __a) - { - // NB: Not required, but considered best practice. - if (__s == 0 && __n > 0) - std::__throw_logic_error(__N("basic_string: " - "construction from null is not valid")); - _M_construct(__s, __s + __n, std::forward_iterator_tag()); - } - - /** - * @brief Construct string as copy of a C string. - * @param __s Source C string. - * @param __a Allocator to use (default is default allocator). - */ -#if __cpp_deduction_guides && ! defined _GLIBCXX_DEFINING_STRING_INSTANTIATIONS - // _GLIBCXX_RESOLVE_LIB_DEFECTS - // 3076. basic_string CTAD ambiguity - template> -#endif - _GLIBCXX20_CONSTEXPR - basic_string(const _CharT* __s, const _Alloc& __a = _Alloc()) - : _M_dataplus(_M_local_data(), __a) - { - // NB: Not required, but considered best practice. - if (__s == 0) - std::__throw_logic_error(__N("basic_string: " - "construction from null is not valid")); - const _CharT* __end = __s + traits_type::length(__s); - _M_construct(__s, __end, forward_iterator_tag()); - } - - /** - * @brief Construct string as multiple characters. - * @param __n Number of characters. - * @param __c Character to use. - * @param __a Allocator to use (default is default allocator). - */ -#if __cpp_deduction_guides && ! defined _GLIBCXX_DEFINING_STRING_INSTANTIATIONS - // _GLIBCXX_RESOLVE_LIB_DEFECTS - // 3076. basic_string CTAD ambiguity - template> -#endif - _GLIBCXX20_CONSTEXPR - basic_string(size_type __n, _CharT __c, const _Alloc& __a = _Alloc()) - : _M_dataplus(_M_local_data(), __a) - { _M_construct(__n, __c); } - -#if __cplusplus >= 201103L - /** - * @brief Move construct string. - * @param __str Source string. - * - * The newly-created string contains the exact contents of @a __str. - * @a __str is a valid, but unspecified string. - */ - _GLIBCXX20_CONSTEXPR - basic_string(basic_string&& __str) noexcept - : _M_dataplus(_M_local_data(), std::move(__str._M_get_allocator())) - { - if (__str._M_is_local()) - { - traits_type::copy(_M_local_buf, __str._M_local_buf, - __str.length() + 1); - } - else - { - _M_data(__str._M_data()); - _M_capacity(__str._M_allocated_capacity); - } - - // Must use _M_length() here not _M_set_length() because - // basic_stringbuf relies on writing into unallocated capacity so - // we mess up the contents if we put a '\0' in the string. - _M_length(__str.length()); - __str._M_data(__str._M_local_data()); - __str._M_set_length(0); - } - - /** - * @brief Construct string from an initializer %list. - * @param __l std::initializer_list of characters. - * @param __a Allocator to use (default is default allocator). - */ - _GLIBCXX20_CONSTEXPR - basic_string(initializer_list<_CharT> __l, const _Alloc& __a = _Alloc()) - : _M_dataplus(_M_local_data(), __a) - { _M_construct(__l.begin(), __l.end(), std::forward_iterator_tag()); } - - _GLIBCXX20_CONSTEXPR - basic_string(const basic_string& __str, const _Alloc& __a) - : _M_dataplus(_M_local_data(), __a) - { _M_construct(__str.begin(), __str.end(), std::forward_iterator_tag()); } - - _GLIBCXX20_CONSTEXPR - basic_string(basic_string&& __str, const _Alloc& __a) - noexcept(_Alloc_traits::_S_always_equal()) - : _M_dataplus(_M_local_data(), __a) - { - if (__str._M_is_local()) - { - traits_type::copy(_M_local_buf, __str._M_local_buf, - __str.length() + 1); - _M_length(__str.length()); - __str._M_set_length(0); - } - else if (_Alloc_traits::_S_always_equal() - || __str.get_allocator() == __a) - { - _M_data(__str._M_data()); - _M_length(__str.length()); - _M_capacity(__str._M_allocated_capacity); - __str._M_data(__str._M_local_buf); - __str._M_set_length(0); - } - else - _M_construct(__str.begin(), __str.end(), std::forward_iterator_tag()); - } -#endif // C++11 - -#if __cplusplus >= 202100L - basic_string(nullptr_t) = delete; - basic_string& operator=(nullptr_t) = delete; -#endif // C++23 - - /** - * @brief Construct string as copy of a range. - * @param __beg Start of range. - * @param __end End of range. - * @param __a Allocator to use (default is default allocator). - */ -#if __cplusplus >= 201103L - template> -#else - template -#endif - _GLIBCXX20_CONSTEXPR - basic_string(_InputIterator __beg, _InputIterator __end, - const _Alloc& __a = _Alloc()) - : _M_dataplus(_M_local_data(), __a) - { -#if __cplusplus >= 201103L - _M_construct(__beg, __end, std::__iterator_category(__beg)); -#else - typedef typename std::__is_integer<_InputIterator>::__type _Integral; - _M_construct_aux(__beg, __end, _Integral()); -#endif - } - -#if __cplusplus >= 201703L - /** - * @brief Construct string from a substring of a string_view. - * @param __t Source object convertible to string view. - * @param __pos The index of the first character to copy from __t. - * @param __n The number of characters to copy from __t. - * @param __a Allocator to use. - */ - template>> - _GLIBCXX20_CONSTEXPR - basic_string(const _Tp& __t, size_type __pos, size_type __n, - const _Alloc& __a = _Alloc()) - : basic_string(_S_to_string_view(__t).substr(__pos, __n), __a) { } - - /** - * @brief Construct string from a string_view. - * @param __t Source object convertible to string view. - * @param __a Allocator to use (default is default allocator). - */ - template> - _GLIBCXX20_CONSTEXPR - explicit - basic_string(const _Tp& __t, const _Alloc& __a = _Alloc()) - : basic_string(__sv_wrapper(_S_to_string_view(__t)), __a) { } -#endif // C++17 - - /** - * @brief Destroy the string instance. - */ - _GLIBCXX20_CONSTEXPR - ~basic_string() - { _M_dispose(); } - - /** - * @brief Assign the value of @a str to this string. - * @param __str Source string. - */ - _GLIBCXX20_CONSTEXPR - basic_string& - operator=(const basic_string& __str) - { - return this->assign(__str); - } - - /** - * @brief Copy contents of @a s into this string. - * @param __s Source null-terminated string. - */ - _GLIBCXX20_CONSTEXPR - basic_string& - operator=(const _CharT* __s) - { return this->assign(__s); } - - /** - * @brief Set value to string of length 1. - * @param __c Source character. - * - * Assigning to a character makes this string length 1 and - * (*this)[0] == @a c. - */ - _GLIBCXX20_CONSTEXPR - basic_string& - operator=(_CharT __c) - { - this->assign(1, __c); - return *this; - } - -#if __cplusplus >= 201103L - /** - * @brief Move assign the value of @a str to this string. - * @param __str Source string. - * - * The contents of @a str are moved into this string (without copying). - * @a str is a valid, but unspecified string. - */ - // _GLIBCXX_RESOLVE_LIB_DEFECTS - // 2063. Contradictory requirements for string move assignment - _GLIBCXX20_CONSTEXPR - basic_string& - operator=(basic_string&& __str) - noexcept(_Alloc_traits::_S_nothrow_move()) - { - const bool __equal_allocs = _Alloc_traits::_S_always_equal() - || _M_get_allocator() == __str._M_get_allocator(); - if (!_M_is_local() && _Alloc_traits::_S_propagate_on_move_assign() - && !__equal_allocs) - { - // Destroy existing storage before replacing allocator. - _M_destroy(_M_allocated_capacity); - _M_data(_M_local_data()); - _M_set_length(0); - } - // Replace allocator if POCMA is true. - std::__alloc_on_move(_M_get_allocator(), __str._M_get_allocator()); - - if (__str._M_is_local()) - { - // We've always got room for a short string, just copy it - // (unless this is a self-move, because that would violate the - // char_traits::copy precondition that the ranges don't overlap). - if (__builtin_expect(std::__addressof(__str) != this, true)) - { - if (__str.size()) - this->_S_copy(_M_data(), __str._M_data(), __str.size()); - _M_set_length(__str.size()); - } - } - else if (_Alloc_traits::_S_propagate_on_move_assign() || __equal_allocs) - { - // Just move the allocated pointer, our allocator can free it. - pointer __data = nullptr; - size_type __capacity; - if (!_M_is_local()) - { - if (__equal_allocs) - { - // __str can reuse our existing storage. - __data = _M_data(); - __capacity = _M_allocated_capacity; - } - else // __str can't use it, so free it. - _M_destroy(_M_allocated_capacity); - } - - _M_data(__str._M_data()); - _M_length(__str.length()); - _M_capacity(__str._M_allocated_capacity); - if (__data) - { - __str._M_data(__data); - __str._M_capacity(__capacity); - } - else - __str._M_data(__str._M_local_buf); - } - else // Need to do a deep copy - assign(__str); - __str.clear(); - return *this; - } - - /** - * @brief Set value to string constructed from initializer %list. - * @param __l std::initializer_list. - */ - _GLIBCXX20_CONSTEXPR - basic_string& - operator=(initializer_list<_CharT> __l) - { - this->assign(__l.begin(), __l.size()); - return *this; - } -#endif // C++11 - -#if __cplusplus >= 201703L - /** - * @brief Set value to string constructed from a string_view. - * @param __svt An object convertible to string_view. - */ - template - _GLIBCXX20_CONSTEXPR - _If_sv<_Tp, basic_string&> - operator=(const _Tp& __svt) - { return this->assign(__svt); } - - /** - * @brief Convert to a string_view. - * @return A string_view. - */ - _GLIBCXX20_CONSTEXPR - operator __sv_type() const noexcept - { return __sv_type(data(), size()); } -#endif // C++17 - - // Iterators: - /** - * Returns a read/write iterator that points to the first character in - * the %string. - */ - _GLIBCXX_NODISCARD _GLIBCXX20_CONSTEXPR - iterator - begin() _GLIBCXX_NOEXCEPT - { return iterator(_M_data()); } - - /** - * Returns a read-only (constant) iterator that points to the first - * character in the %string. - */ - _GLIBCXX_NODISCARD _GLIBCXX20_CONSTEXPR - const_iterator - begin() const _GLIBCXX_NOEXCEPT - { return const_iterator(_M_data()); } - - /** - * Returns a read/write iterator that points one past the last - * character in the %string. - */ - _GLIBCXX_NODISCARD _GLIBCXX20_CONSTEXPR - iterator - end() _GLIBCXX_NOEXCEPT - { return iterator(_M_data() + this->size()); } - - /** - * Returns a read-only (constant) iterator that points one past the - * last character in the %string. - */ - _GLIBCXX_NODISCARD _GLIBCXX20_CONSTEXPR - const_iterator - end() const _GLIBCXX_NOEXCEPT - { return const_iterator(_M_data() + this->size()); } - - /** - * Returns a read/write reverse iterator that points to the last - * character in the %string. Iteration is done in reverse element - * order. - */ - _GLIBCXX_NODISCARD _GLIBCXX20_CONSTEXPR - reverse_iterator - rbegin() _GLIBCXX_NOEXCEPT - { return reverse_iterator(this->end()); } - - /** - * Returns a read-only (constant) reverse iterator that points - * to the last character in the %string. Iteration is done in - * reverse element order. - */ - _GLIBCXX_NODISCARD _GLIBCXX20_CONSTEXPR - const_reverse_iterator - rbegin() const _GLIBCXX_NOEXCEPT - { return const_reverse_iterator(this->end()); } - - /** - * Returns a read/write reverse iterator that points to one before the - * first character in the %string. Iteration is done in reverse - * element order. - */ - _GLIBCXX_NODISCARD _GLIBCXX20_CONSTEXPR - reverse_iterator - rend() _GLIBCXX_NOEXCEPT - { return reverse_iterator(this->begin()); } - - /** - * Returns a read-only (constant) reverse iterator that points - * to one before the first character in the %string. Iteration - * is done in reverse element order. - */ - _GLIBCXX_NODISCARD _GLIBCXX20_CONSTEXPR - const_reverse_iterator - rend() const _GLIBCXX_NOEXCEPT - { return const_reverse_iterator(this->begin()); } - -#if __cplusplus >= 201103L - /** - * Returns a read-only (constant) iterator that points to the first - * character in the %string. - */ - _GLIBCXX_NODISCARD _GLIBCXX20_CONSTEXPR - const_iterator - cbegin() const noexcept - { return const_iterator(this->_M_data()); } - - /** - * Returns a read-only (constant) iterator that points one past the - * last character in the %string. - */ - _GLIBCXX_NODISCARD _GLIBCXX20_CONSTEXPR - const_iterator - cend() const noexcept - { return const_iterator(this->_M_data() + this->size()); } - - /** - * Returns a read-only (constant) reverse iterator that points - * to the last character in the %string. Iteration is done in - * reverse element order. - */ - _GLIBCXX_NODISCARD _GLIBCXX20_CONSTEXPR - const_reverse_iterator - crbegin() const noexcept - { return const_reverse_iterator(this->end()); } - - /** - * Returns a read-only (constant) reverse iterator that points - * to one before the first character in the %string. Iteration - * is done in reverse element order. - */ - _GLIBCXX_NODISCARD _GLIBCXX20_CONSTEXPR - const_reverse_iterator - crend() const noexcept - { return const_reverse_iterator(this->begin()); } -#endif - - public: - // Capacity: - /// Returns the number of characters in the string, not including any - /// null-termination. - _GLIBCXX_NODISCARD _GLIBCXX20_CONSTEXPR - size_type - size() const _GLIBCXX_NOEXCEPT - { return _M_string_length; } - - /// Returns the number of characters in the string, not including any - /// null-termination. - _GLIBCXX_NODISCARD _GLIBCXX20_CONSTEXPR - size_type - length() const _GLIBCXX_NOEXCEPT - { return _M_string_length; } - - /// Returns the size() of the largest possible %string. - _GLIBCXX_NODISCARD _GLIBCXX20_CONSTEXPR - size_type - max_size() const _GLIBCXX_NOEXCEPT - { return (_Alloc_traits::max_size(_M_get_allocator()) - 1) / 2; } - - /** - * @brief Resizes the %string to the specified number of characters. - * @param __n Number of characters the %string should contain. - * @param __c Character to fill any new elements. - * - * This function will %resize the %string to the specified - * number of characters. If the number is smaller than the - * %string's current size the %string is truncated, otherwise - * the %string is extended and new elements are %set to @a __c. - */ - _GLIBCXX20_CONSTEXPR - void - resize(size_type __n, _CharT __c); - - /** - * @brief Resizes the %string to the specified number of characters. - * @param __n Number of characters the %string should contain. - * - * This function will resize the %string to the specified length. If - * the new size is smaller than the %string's current size the %string - * is truncated, otherwise the %string is extended and new characters - * are default-constructed. For basic types such as char, this means - * setting them to 0. - */ - _GLIBCXX20_CONSTEXPR - void - resize(size_type __n) - { this->resize(__n, _CharT()); } - -#if __cplusplus >= 201103L -#pragma GCC diagnostic push -#pragma GCC diagnostic ignored "-Wdeprecated-declarations" - /// A non-binding request to reduce capacity() to size(). - _GLIBCXX20_CONSTEXPR - void - shrink_to_fit() noexcept - { reserve(); } -#pragma GCC diagnostic pop -#endif - -#if __cplusplus > 202002L -#define __cpp_lib_string_resize_and_overwrite 202110L - /** Resize the string and call a function to fill it. - * - * @param __n The maximum size requested. - * @param __op A callable object that writes characters to the string. - * - * This is a low-level function that is easy to misuse, be careful. - * - * Calling `str.resize_and_overwrite(n, op)` will reserve at least `n` - * characters in `str`, evaluate `n2 = std::move(op)(str.data(), n)`, - * and finally set the string length to `n2` (adding a null terminator - * at the end). The function object `op` is allowed to write to the - * extra capacity added by the initial reserve operation, which is not - * allowed if you just call `str.reserve(n)` yourself. - * - * This can be used to efficiently fill a `string` buffer without the - * overhead of zero-initializing characters that will be overwritten - * anyway. - * - * The callable `op` must not access the string directly (only through - * the pointer passed as its first argument), must not write more than - * `n` characters to the string, must return a value no greater than `n`, - * and must ensure that all characters up to the returned length are - * valid after it returns (i.e. there must be no uninitialized values - * left in the string after the call, because accessing them would - * have undefined behaviour). If `op` exits by throwing an exception - * the behaviour is undefined. - * - * @since C++23 - */ - template - constexpr void - resize_and_overwrite(size_type __n, _Operation __op); -#endif - - /** - * Returns the total number of characters that the %string can hold - * before needing to allocate more memory. - */ - _GLIBCXX_NODISCARD _GLIBCXX20_CONSTEXPR - size_type - capacity() const _GLIBCXX_NOEXCEPT - { - return _M_is_local() ? size_type(_S_local_capacity) - : _M_allocated_capacity; - } - - /** - * @brief Attempt to preallocate enough memory for specified number of - * characters. - * @param __res_arg Number of characters required. - * @throw std::length_error If @a __res_arg exceeds @c max_size(). - * - * This function attempts to reserve enough memory for the - * %string to hold the specified number of characters. If the - * number requested is more than max_size(), length_error is - * thrown. - * - * The advantage of this function is that if optimal code is a - * necessity and the user can determine the string length that will be - * required, the user can reserve the memory in %advance, and thus - * prevent a possible reallocation of memory and copying of %string - * data. - */ - _GLIBCXX20_CONSTEXPR - void - reserve(size_type __res_arg); - - /** - * Equivalent to shrink_to_fit(). - */ -#if __cplusplus > 201703L - [[deprecated("use shrink_to_fit() instead")]] -#endif - _GLIBCXX20_CONSTEXPR - void - reserve(); - - /** - * Erases the string, making it empty. - */ - _GLIBCXX20_CONSTEXPR - void - clear() _GLIBCXX_NOEXCEPT - { _M_set_length(0); } - - /** - * Returns true if the %string is empty. Equivalent to - * *this == "". - */ - _GLIBCXX_NODISCARD _GLIBCXX20_CONSTEXPR - bool - empty() const _GLIBCXX_NOEXCEPT - { return this->size() == 0; } - - // Element access: - /** - * @brief Subscript access to the data contained in the %string. - * @param __pos The index of the character to access. - * @return Read-only (constant) reference to the character. - * - * This operator allows for easy, array-style, data access. - * Note that data access with this operator is unchecked and - * out_of_range lookups are not defined. (For checked lookups - * see at().) - */ - _GLIBCXX_NODISCARD _GLIBCXX20_CONSTEXPR - const_reference - operator[] (size_type __pos) const _GLIBCXX_NOEXCEPT - { - __glibcxx_assert(__pos <= size()); - return _M_data()[__pos]; - } - - /** - * @brief Subscript access to the data contained in the %string. - * @param __pos The index of the character to access. - * @return Read/write reference to the character. - * - * This operator allows for easy, array-style, data access. - * Note that data access with this operator is unchecked and - * out_of_range lookups are not defined. (For checked lookups - * see at().) - */ - _GLIBCXX_NODISCARD _GLIBCXX20_CONSTEXPR - reference - operator[](size_type __pos) - { - // Allow pos == size() both in C++98 mode, as v3 extension, - // and in C++11 mode. - __glibcxx_assert(__pos <= size()); - // In pedantic mode be strict in C++98 mode. - _GLIBCXX_DEBUG_PEDASSERT(__cplusplus >= 201103L || __pos < size()); - return _M_data()[__pos]; - } - - /** - * @brief Provides access to the data contained in the %string. - * @param __n The index of the character to access. - * @return Read-only (const) reference to the character. - * @throw std::out_of_range If @a n is an invalid index. - * - * This function provides for safer data access. The parameter is - * first checked that it is in the range of the string. The function - * throws out_of_range if the check fails. - */ - _GLIBCXX_NODISCARD _GLIBCXX20_CONSTEXPR - const_reference - at(size_type __n) const - { - if (__n >= this->size()) - __throw_out_of_range_fmt(__N("basic_string::at: __n " - "(which is %zu) >= this->size() " - "(which is %zu)"), - __n, this->size()); - return _M_data()[__n]; - } - - /** - * @brief Provides access to the data contained in the %string. - * @param __n The index of the character to access. - * @return Read/write reference to the character. - * @throw std::out_of_range If @a n is an invalid index. - * - * This function provides for safer data access. The parameter is - * first checked that it is in the range of the string. The function - * throws out_of_range if the check fails. - */ - _GLIBCXX_NODISCARD _GLIBCXX20_CONSTEXPR - reference - at(size_type __n) - { - if (__n >= size()) - __throw_out_of_range_fmt(__N("basic_string::at: __n " - "(which is %zu) >= this->size() " - "(which is %zu)"), - __n, this->size()); - return _M_data()[__n]; - } - -#if __cplusplus >= 201103L - /** - * Returns a read/write reference to the data at the first - * element of the %string. - */ - _GLIBCXX_NODISCARD _GLIBCXX20_CONSTEXPR - reference - front() noexcept - { - __glibcxx_assert(!empty()); - return operator[](0); - } - - /** - * Returns a read-only (constant) reference to the data at the first - * element of the %string. - */ - _GLIBCXX_NODISCARD _GLIBCXX20_CONSTEXPR - const_reference - front() const noexcept - { - __glibcxx_assert(!empty()); - return operator[](0); - } - - /** - * Returns a read/write reference to the data at the last - * element of the %string. - */ - _GLIBCXX_NODISCARD _GLIBCXX20_CONSTEXPR - reference - back() noexcept - { - __glibcxx_assert(!empty()); - return operator[](this->size() - 1); - } - - /** - * Returns a read-only (constant) reference to the data at the - * last element of the %string. - */ - _GLIBCXX_NODISCARD _GLIBCXX20_CONSTEXPR - const_reference - back() const noexcept - { - __glibcxx_assert(!empty()); - return operator[](this->size() - 1); - } -#endif - - // Modifiers: - /** - * @brief Append a string to this string. - * @param __str The string to append. - * @return Reference to this string. - */ - _GLIBCXX20_CONSTEXPR - basic_string& - operator+=(const basic_string& __str) - { return this->append(__str); } - - /** - * @brief Append a C string. - * @param __s The C string to append. - * @return Reference to this string. - */ - _GLIBCXX20_CONSTEXPR - basic_string& - operator+=(const _CharT* __s) - { return this->append(__s); } - - /** - * @brief Append a character. - * @param __c The character to append. - * @return Reference to this string. - */ - _GLIBCXX20_CONSTEXPR - basic_string& - operator+=(_CharT __c) - { - this->push_back(__c); - return *this; - } - -#if __cplusplus >= 201103L - /** - * @brief Append an initializer_list of characters. - * @param __l The initializer_list of characters to be appended. - * @return Reference to this string. - */ - _GLIBCXX20_CONSTEXPR - basic_string& - operator+=(initializer_list<_CharT> __l) - { return this->append(__l.begin(), __l.size()); } -#endif // C++11 - -#if __cplusplus >= 201703L - /** - * @brief Append a string_view. - * @param __svt An object convertible to string_view to be appended. - * @return Reference to this string. - */ - template - _GLIBCXX20_CONSTEXPR - _If_sv<_Tp, basic_string&> - operator+=(const _Tp& __svt) - { return this->append(__svt); } -#endif // C++17 - - /** - * @brief Append a string to this string. - * @param __str The string to append. - * @return Reference to this string. - */ - _GLIBCXX20_CONSTEXPR - basic_string& - append(const basic_string& __str) - { return this->append(__str._M_data(), __str.size()); } - - /** - * @brief Append a substring. - * @param __str The string to append. - * @param __pos Index of the first character of str to append. - * @param __n The number of characters to append. - * @return Reference to this string. - * @throw std::out_of_range if @a __pos is not a valid index. - * - * This function appends @a __n characters from @a __str - * starting at @a __pos to this string. If @a __n is is larger - * than the number of available characters in @a __str, the - * remainder of @a __str is appended. - */ - _GLIBCXX20_CONSTEXPR - basic_string& - append(const basic_string& __str, size_type __pos, size_type __n = npos) - { return this->append(__str._M_data() - + __str._M_check(__pos, "basic_string::append"), - __str._M_limit(__pos, __n)); } - - /** - * @brief Append a C substring. - * @param __s The C string to append. - * @param __n The number of characters to append. - * @return Reference to this string. - */ - _GLIBCXX20_CONSTEXPR - basic_string& - append(const _CharT* __s, size_type __n) - { - __glibcxx_requires_string_len(__s, __n); - _M_check_length(size_type(0), __n, "basic_string::append"); - return _M_append(__s, __n); - } - - /** - * @brief Append a C string. - * @param __s The C string to append. - * @return Reference to this string. - */ - _GLIBCXX20_CONSTEXPR - basic_string& - append(const _CharT* __s) - { - __glibcxx_requires_string(__s); - const size_type __n = traits_type::length(__s); - _M_check_length(size_type(0), __n, "basic_string::append"); - return _M_append(__s, __n); - } - - /** - * @brief Append multiple characters. - * @param __n The number of characters to append. - * @param __c The character to use. - * @return Reference to this string. - * - * Appends __n copies of __c to this string. - */ - _GLIBCXX20_CONSTEXPR - basic_string& - append(size_type __n, _CharT __c) - { return _M_replace_aux(this->size(), size_type(0), __n, __c); } - -#if __cplusplus >= 201103L - /** - * @brief Append an initializer_list of characters. - * @param __l The initializer_list of characters to append. - * @return Reference to this string. - */ - _GLIBCXX20_CONSTEXPR - basic_string& - append(initializer_list<_CharT> __l) - { return this->append(__l.begin(), __l.size()); } -#endif // C++11 - - /** - * @brief Append a range of characters. - * @param __first Iterator referencing the first character to append. - * @param __last Iterator marking the end of the range. - * @return Reference to this string. - * - * Appends characters in the range [__first,__last) to this string. - */ -#if __cplusplus >= 201103L - template> - _GLIBCXX20_CONSTEXPR -#else - template -#endif - basic_string& - append(_InputIterator __first, _InputIterator __last) - { return this->replace(end(), end(), __first, __last); } - -#if __cplusplus >= 201703L - /** - * @brief Append a string_view. - * @param __svt An object convertible to string_view to be appended. - * @return Reference to this string. - */ - template - _GLIBCXX20_CONSTEXPR - _If_sv<_Tp, basic_string&> - append(const _Tp& __svt) - { - __sv_type __sv = __svt; - return this->append(__sv.data(), __sv.size()); - } - - /** - * @brief Append a range of characters from a string_view. - * @param __svt An object convertible to string_view to be appended from. - * @param __pos The position in the string_view to append from. - * @param __n The number of characters to append from the string_view. - * @return Reference to this string. - */ - template - _GLIBCXX20_CONSTEXPR - _If_sv<_Tp, basic_string&> - append(const _Tp& __svt, size_type __pos, size_type __n = npos) - { - __sv_type __sv = __svt; - return _M_append(__sv.data() - + std::__sv_check(__sv.size(), __pos, "basic_string::append"), - std::__sv_limit(__sv.size(), __pos, __n)); - } -#endif // C++17 - - /** - * @brief Append a single character. - * @param __c Character to append. - */ - _GLIBCXX20_CONSTEXPR - void - push_back(_CharT __c) - { - const size_type __size = this->size(); - if (__size + 1 > this->capacity()) - this->_M_mutate(__size, size_type(0), 0, size_type(1)); - traits_type::assign(this->_M_data()[__size], __c); - this->_M_set_length(__size + 1); - } - - /** - * @brief Set value to contents of another string. - * @param __str Source string to use. - * @return Reference to this string. - */ - _GLIBCXX20_CONSTEXPR - basic_string& - assign(const basic_string& __str) - { -#if __cplusplus >= 201103L - if (_Alloc_traits::_S_propagate_on_copy_assign()) - { - if (!_Alloc_traits::_S_always_equal() && !_M_is_local() - && _M_get_allocator() != __str._M_get_allocator()) - { - // Propagating allocator cannot free existing storage so must - // deallocate it before replacing current allocator. - if (__str.size() <= _S_local_capacity) - { - _M_destroy(_M_allocated_capacity); - _M_data(_M_use_local_data()); - _M_set_length(0); - } - else - { - const auto __len = __str.size(); - auto __alloc = __str._M_get_allocator(); - // If this allocation throws there are no effects: - auto __ptr = _Alloc_traits::allocate(__alloc, __len + 1); - _M_destroy(_M_allocated_capacity); - _M_data(__ptr); - _M_capacity(__len); - _M_set_length(__len); - } - } - std::__alloc_on_copy(_M_get_allocator(), __str._M_get_allocator()); - } -#endif - this->_M_assign(__str); - return *this; - } - -#if __cplusplus >= 201103L - /** - * @brief Set value to contents of another string. - * @param __str Source string to use. - * @return Reference to this string. - * - * This function sets this string to the exact contents of @a __str. - * @a __str is a valid, but unspecified string. - */ - _GLIBCXX20_CONSTEXPR - basic_string& - assign(basic_string&& __str) - noexcept(_Alloc_traits::_S_nothrow_move()) - { - // _GLIBCXX_RESOLVE_LIB_DEFECTS - // 2063. Contradictory requirements for string move assignment - return *this = std::move(__str); - } -#endif // C++11 - - /** - * @brief Set value to a substring of a string. - * @param __str The string to use. - * @param __pos Index of the first character of str. - * @param __n Number of characters to use. - * @return Reference to this string. - * @throw std::out_of_range if @a pos is not a valid index. - * - * This function sets this string to the substring of @a __str - * consisting of @a __n characters at @a __pos. If @a __n is - * is larger than the number of available characters in @a - * __str, the remainder of @a __str is used. - */ - _GLIBCXX20_CONSTEXPR - basic_string& - assign(const basic_string& __str, size_type __pos, size_type __n = npos) - { return _M_replace(size_type(0), this->size(), __str._M_data() - + __str._M_check(__pos, "basic_string::assign"), - __str._M_limit(__pos, __n)); } - - /** - * @brief Set value to a C substring. - * @param __s The C string to use. - * @param __n Number of characters to use. - * @return Reference to this string. - * - * This function sets the value of this string to the first @a __n - * characters of @a __s. If @a __n is is larger than the number of - * available characters in @a __s, the remainder of @a __s is used. - */ - _GLIBCXX20_CONSTEXPR - basic_string& - assign(const _CharT* __s, size_type __n) - { - __glibcxx_requires_string_len(__s, __n); - return _M_replace(size_type(0), this->size(), __s, __n); - } - - /** - * @brief Set value to contents of a C string. - * @param __s The C string to use. - * @return Reference to this string. - * - * This function sets the value of this string to the value of @a __s. - * The data is copied, so there is no dependence on @a __s once the - * function returns. - */ - _GLIBCXX20_CONSTEXPR - basic_string& - assign(const _CharT* __s) - { - __glibcxx_requires_string(__s); - return _M_replace(size_type(0), this->size(), __s, - traits_type::length(__s)); - } - - /** - * @brief Set value to multiple characters. - * @param __n Length of the resulting string. - * @param __c The character to use. - * @return Reference to this string. - * - * This function sets the value of this string to @a __n copies of - * character @a __c. - */ - _GLIBCXX20_CONSTEXPR - basic_string& - assign(size_type __n, _CharT __c) - { return _M_replace_aux(size_type(0), this->size(), __n, __c); } - - /** - * @brief Set value to a range of characters. - * @param __first Iterator referencing the first character to append. - * @param __last Iterator marking the end of the range. - * @return Reference to this string. - * - * Sets value of string to characters in the range [__first,__last). - */ -#if __cplusplus >= 201103L - template> - _GLIBCXX20_CONSTEXPR -#else - template -#endif - basic_string& - assign(_InputIterator __first, _InputIterator __last) - { return this->replace(begin(), end(), __first, __last); } - -#if __cplusplus >= 201103L - /** - * @brief Set value to an initializer_list of characters. - * @param __l The initializer_list of characters to assign. - * @return Reference to this string. - */ - _GLIBCXX20_CONSTEXPR - basic_string& - assign(initializer_list<_CharT> __l) - { return this->assign(__l.begin(), __l.size()); } -#endif // C++11 - -#if __cplusplus >= 201703L - /** - * @brief Set value from a string_view. - * @param __svt The source object convertible to string_view. - * @return Reference to this string. - */ - template - _GLIBCXX20_CONSTEXPR - _If_sv<_Tp, basic_string&> - assign(const _Tp& __svt) - { - __sv_type __sv = __svt; - return this->assign(__sv.data(), __sv.size()); - } - - /** - * @brief Set value from a range of characters in a string_view. - * @param __svt The source object convertible to string_view. - * @param __pos The position in the string_view to assign from. - * @param __n The number of characters to assign. - * @return Reference to this string. - */ - template - _GLIBCXX20_CONSTEXPR - _If_sv<_Tp, basic_string&> - assign(const _Tp& __svt, size_type __pos, size_type __n = npos) - { - __sv_type __sv = __svt; - return _M_replace(size_type(0), this->size(), - __sv.data() - + std::__sv_check(__sv.size(), __pos, "basic_string::assign"), - std::__sv_limit(__sv.size(), __pos, __n)); - } -#endif // C++17 - -#if __cplusplus >= 201103L - /** - * @brief Insert multiple characters. - * @param __p Const_iterator referencing location in string to - * insert at. - * @param __n Number of characters to insert - * @param __c The character to insert. - * @return Iterator referencing the first inserted char. - * @throw std::length_error If new length exceeds @c max_size(). - * - * Inserts @a __n copies of character @a __c starting at the - * position referenced by iterator @a __p. If adding - * characters causes the length to exceed max_size(), - * length_error is thrown. The value of the string doesn't - * change if an error is thrown. - */ - _GLIBCXX20_CONSTEXPR - iterator - insert(const_iterator __p, size_type __n, _CharT __c) - { - _GLIBCXX_DEBUG_PEDASSERT(__p >= begin() && __p <= end()); - const size_type __pos = __p - begin(); - this->replace(__p, __p, __n, __c); - return iterator(this->_M_data() + __pos); - } -#else - /** - * @brief Insert multiple characters. - * @param __p Iterator referencing location in string to insert at. - * @param __n Number of characters to insert - * @param __c The character to insert. - * @throw std::length_error If new length exceeds @c max_size(). - * - * Inserts @a __n copies of character @a __c starting at the - * position referenced by iterator @a __p. If adding - * characters causes the length to exceed max_size(), - * length_error is thrown. The value of the string doesn't - * change if an error is thrown. - */ - void - insert(iterator __p, size_type __n, _CharT __c) - { this->replace(__p, __p, __n, __c); } -#endif - -#if __cplusplus >= 201103L - /** - * @brief Insert a range of characters. - * @param __p Const_iterator referencing location in string to - * insert at. - * @param __beg Start of range. - * @param __end End of range. - * @return Iterator referencing the first inserted char. - * @throw std::length_error If new length exceeds @c max_size(). - * - * Inserts characters in range [beg,end). If adding characters - * causes the length to exceed max_size(), length_error is - * thrown. The value of the string doesn't change if an error - * is thrown. - */ - template> - _GLIBCXX20_CONSTEXPR - iterator - insert(const_iterator __p, _InputIterator __beg, _InputIterator __end) - { - _GLIBCXX_DEBUG_PEDASSERT(__p >= begin() && __p <= end()); - const size_type __pos = __p - begin(); - this->replace(__p, __p, __beg, __end); - return iterator(this->_M_data() + __pos); - } -#else - /** - * @brief Insert a range of characters. - * @param __p Iterator referencing location in string to insert at. - * @param __beg Start of range. - * @param __end End of range. - * @throw std::length_error If new length exceeds @c max_size(). - * - * Inserts characters in range [__beg,__end). If adding - * characters causes the length to exceed max_size(), - * length_error is thrown. The value of the string doesn't - * change if an error is thrown. - */ - template - void - insert(iterator __p, _InputIterator __beg, _InputIterator __end) - { this->replace(__p, __p, __beg, __end); } -#endif - -#if __cplusplus >= 201103L - /** - * @brief Insert an initializer_list of characters. - * @param __p Iterator referencing location in string to insert at. - * @param __l The initializer_list of characters to insert. - * @throw std::length_error If new length exceeds @c max_size(). - */ - _GLIBCXX20_CONSTEXPR - iterator - insert(const_iterator __p, initializer_list<_CharT> __l) - { return this->insert(__p, __l.begin(), __l.end()); } - -#ifdef _GLIBCXX_DEFINING_STRING_INSTANTIATIONS - // See PR libstdc++/83328 - void - insert(iterator __p, initializer_list<_CharT> __l) - { - _GLIBCXX_DEBUG_PEDASSERT(__p >= begin() && __p <= end()); - this->insert(__p - begin(), __l.begin(), __l.size()); - } -#endif -#endif // C++11 - - /** - * @brief Insert value of a string. - * @param __pos1 Position in string to insert at. - * @param __str The string to insert. - * @return Reference to this string. - * @throw std::length_error If new length exceeds @c max_size(). - * - * Inserts value of @a __str starting at @a __pos1. If adding - * characters causes the length to exceed max_size(), - * length_error is thrown. The value of the string doesn't - * change if an error is thrown. - */ - _GLIBCXX20_CONSTEXPR - basic_string& - insert(size_type __pos1, const basic_string& __str) - { return this->replace(__pos1, size_type(0), - __str._M_data(), __str.size()); } - - /** - * @brief Insert a substring. - * @param __pos1 Position in string to insert at. - * @param __str The string to insert. - * @param __pos2 Start of characters in str to insert. - * @param __n Number of characters to insert. - * @return Reference to this string. - * @throw std::length_error If new length exceeds @c max_size(). - * @throw std::out_of_range If @a pos1 > size() or - * @a __pos2 > @a str.size(). - * - * Starting at @a pos1, insert @a __n character of @a __str - * beginning with @a __pos2. If adding characters causes the - * length to exceed max_size(), length_error is thrown. If @a - * __pos1 is beyond the end of this string or @a __pos2 is - * beyond the end of @a __str, out_of_range is thrown. The - * value of the string doesn't change if an error is thrown. - */ - _GLIBCXX20_CONSTEXPR - basic_string& - insert(size_type __pos1, const basic_string& __str, - size_type __pos2, size_type __n = npos) - { return this->replace(__pos1, size_type(0), __str._M_data() - + __str._M_check(__pos2, "basic_string::insert"), - __str._M_limit(__pos2, __n)); } - - /** - * @brief Insert a C substring. - * @param __pos Position in string to insert at. - * @param __s The C string to insert. - * @param __n The number of characters to insert. - * @return Reference to this string. - * @throw std::length_error If new length exceeds @c max_size(). - * @throw std::out_of_range If @a __pos is beyond the end of this - * string. - * - * Inserts the first @a __n characters of @a __s starting at @a - * __pos. If adding characters causes the length to exceed - * max_size(), length_error is thrown. If @a __pos is beyond - * end(), out_of_range is thrown. The value of the string - * doesn't change if an error is thrown. - */ - _GLIBCXX20_CONSTEXPR - basic_string& - insert(size_type __pos, const _CharT* __s, size_type __n) - { return this->replace(__pos, size_type(0), __s, __n); } - - /** - * @brief Insert a C string. - * @param __pos Position in string to insert at. - * @param __s The C string to insert. - * @return Reference to this string. - * @throw std::length_error If new length exceeds @c max_size(). - * @throw std::out_of_range If @a pos is beyond the end of this - * string. - * - * Inserts the first @a n characters of @a __s starting at @a __pos. If - * adding characters causes the length to exceed max_size(), - * length_error is thrown. If @a __pos is beyond end(), out_of_range is - * thrown. The value of the string doesn't change if an error is - * thrown. - */ - _GLIBCXX20_CONSTEXPR - basic_string& - insert(size_type __pos, const _CharT* __s) - { - __glibcxx_requires_string(__s); - return this->replace(__pos, size_type(0), __s, - traits_type::length(__s)); - } - - /** - * @brief Insert multiple characters. - * @param __pos Index in string to insert at. - * @param __n Number of characters to insert - * @param __c The character to insert. - * @return Reference to this string. - * @throw std::length_error If new length exceeds @c max_size(). - * @throw std::out_of_range If @a __pos is beyond the end of this - * string. - * - * Inserts @a __n copies of character @a __c starting at index - * @a __pos. If adding characters causes the length to exceed - * max_size(), length_error is thrown. If @a __pos > length(), - * out_of_range is thrown. The value of the string doesn't - * change if an error is thrown. - */ - _GLIBCXX20_CONSTEXPR - basic_string& - insert(size_type __pos, size_type __n, _CharT __c) - { return _M_replace_aux(_M_check(__pos, "basic_string::insert"), - size_type(0), __n, __c); } - - /** - * @brief Insert one character. - * @param __p Iterator referencing position in string to insert at. - * @param __c The character to insert. - * @return Iterator referencing newly inserted char. - * @throw std::length_error If new length exceeds @c max_size(). - * - * Inserts character @a __c at position referenced by @a __p. - * If adding character causes the length to exceed max_size(), - * length_error is thrown. If @a __p is beyond end of string, - * out_of_range is thrown. The value of the string doesn't - * change if an error is thrown. - */ - _GLIBCXX20_CONSTEXPR - iterator - insert(__const_iterator __p, _CharT __c) - { - _GLIBCXX_DEBUG_PEDASSERT(__p >= begin() && __p <= end()); - const size_type __pos = __p - begin(); - _M_replace_aux(__pos, size_type(0), size_type(1), __c); - return iterator(_M_data() + __pos); - } - -#if __cplusplus >= 201703L - /** - * @brief Insert a string_view. - * @param __pos Position in string to insert at. - * @param __svt The object convertible to string_view to insert. - * @return Reference to this string. - */ - template - _GLIBCXX20_CONSTEXPR - _If_sv<_Tp, basic_string&> - insert(size_type __pos, const _Tp& __svt) - { - __sv_type __sv = __svt; - return this->insert(__pos, __sv.data(), __sv.size()); - } - - /** - * @brief Insert a string_view. - * @param __pos1 Position in string to insert at. - * @param __svt The object convertible to string_view to insert from. - * @param __pos2 Start of characters in str to insert. - * @param __n The number of characters to insert. - * @return Reference to this string. - */ - template - _GLIBCXX20_CONSTEXPR - _If_sv<_Tp, basic_string&> - insert(size_type __pos1, const _Tp& __svt, - size_type __pos2, size_type __n = npos) - { - __sv_type __sv = __svt; - return this->replace(__pos1, size_type(0), - __sv.data() - + std::__sv_check(__sv.size(), __pos2, "basic_string::insert"), - std::__sv_limit(__sv.size(), __pos2, __n)); - } -#endif // C++17 - - /** - * @brief Remove characters. - * @param __pos Index of first character to remove (default 0). - * @param __n Number of characters to remove (default remainder). - * @return Reference to this string. - * @throw std::out_of_range If @a pos is beyond the end of this - * string. - * - * Removes @a __n characters from this string starting at @a - * __pos. The length of the string is reduced by @a __n. If - * there are < @a __n characters to remove, the remainder of - * the string is truncated. If @a __p is beyond end of string, - * out_of_range is thrown. The value of the string doesn't - * change if an error is thrown. - */ - _GLIBCXX20_CONSTEXPR - basic_string& - erase(size_type __pos = 0, size_type __n = npos) - { - _M_check(__pos, "basic_string::erase"); - if (__n == npos) - this->_M_set_length(__pos); - else if (__n != 0) - this->_M_erase(__pos, _M_limit(__pos, __n)); - return *this; - } - - /** - * @brief Remove one character. - * @param __position Iterator referencing the character to remove. - * @return iterator referencing same location after removal. - * - * Removes the character at @a __position from this string. The value - * of the string doesn't change if an error is thrown. - */ - _GLIBCXX20_CONSTEXPR - iterator - erase(__const_iterator __position) - { - _GLIBCXX_DEBUG_PEDASSERT(__position >= begin() - && __position < end()); - const size_type __pos = __position - begin(); - this->_M_erase(__pos, size_type(1)); - return iterator(_M_data() + __pos); - } - - /** - * @brief Remove a range of characters. - * @param __first Iterator referencing the first character to remove. - * @param __last Iterator referencing the end of the range. - * @return Iterator referencing location of first after removal. - * - * Removes the characters in the range [first,last) from this string. - * The value of the string doesn't change if an error is thrown. - */ - _GLIBCXX20_CONSTEXPR - iterator - erase(__const_iterator __first, __const_iterator __last) - { - _GLIBCXX_DEBUG_PEDASSERT(__first >= begin() && __first <= __last - && __last <= end()); - const size_type __pos = __first - begin(); - if (__last == end()) - this->_M_set_length(__pos); - else - this->_M_erase(__pos, __last - __first); - return iterator(this->_M_data() + __pos); - } - -#if __cplusplus >= 201103L - /** - * @brief Remove the last character. - * - * The string must be non-empty. - */ - _GLIBCXX20_CONSTEXPR - void - pop_back() noexcept - { - __glibcxx_assert(!empty()); - _M_erase(size() - 1, 1); - } -#endif // C++11 - - /** - * @brief Replace characters with value from another string. - * @param __pos Index of first character to replace. - * @param __n Number of characters to be replaced. - * @param __str String to insert. - * @return Reference to this string. - * @throw std::out_of_range If @a pos is beyond the end of this - * string. - * @throw std::length_error If new length exceeds @c max_size(). - * - * Removes the characters in the range [__pos,__pos+__n) from - * this string. In place, the value of @a __str is inserted. - * If @a __pos is beyond end of string, out_of_range is thrown. - * If the length of the result exceeds max_size(), length_error - * is thrown. The value of the string doesn't change if an - * error is thrown. - */ - _GLIBCXX20_CONSTEXPR - basic_string& - replace(size_type __pos, size_type __n, const basic_string& __str) - { return this->replace(__pos, __n, __str._M_data(), __str.size()); } - - /** - * @brief Replace characters with value from another string. - * @param __pos1 Index of first character to replace. - * @param __n1 Number of characters to be replaced. - * @param __str String to insert. - * @param __pos2 Index of first character of str to use. - * @param __n2 Number of characters from str to use. - * @return Reference to this string. - * @throw std::out_of_range If @a __pos1 > size() or @a __pos2 > - * __str.size(). - * @throw std::length_error If new length exceeds @c max_size(). - * - * Removes the characters in the range [__pos1,__pos1 + n) from this - * string. In place, the value of @a __str is inserted. If @a __pos is - * beyond end of string, out_of_range is thrown. If the length of the - * result exceeds max_size(), length_error is thrown. The value of the - * string doesn't change if an error is thrown. - */ - _GLIBCXX20_CONSTEXPR - basic_string& - replace(size_type __pos1, size_type __n1, const basic_string& __str, - size_type __pos2, size_type __n2 = npos) - { return this->replace(__pos1, __n1, __str._M_data() - + __str._M_check(__pos2, "basic_string::replace"), - __str._M_limit(__pos2, __n2)); } - - /** - * @brief Replace characters with value of a C substring. - * @param __pos Index of first character to replace. - * @param __n1 Number of characters to be replaced. - * @param __s C string to insert. - * @param __n2 Number of characters from @a s to use. - * @return Reference to this string. - * @throw std::out_of_range If @a pos1 > size(). - * @throw std::length_error If new length exceeds @c max_size(). - * - * Removes the characters in the range [__pos,__pos + __n1) - * from this string. In place, the first @a __n2 characters of - * @a __s are inserted, or all of @a __s if @a __n2 is too large. If - * @a __pos is beyond end of string, out_of_range is thrown. If - * the length of result exceeds max_size(), length_error is - * thrown. The value of the string doesn't change if an error - * is thrown. - */ - _GLIBCXX20_CONSTEXPR - basic_string& - replace(size_type __pos, size_type __n1, const _CharT* __s, - size_type __n2) - { - __glibcxx_requires_string_len(__s, __n2); - return _M_replace(_M_check(__pos, "basic_string::replace"), - _M_limit(__pos, __n1), __s, __n2); - } - - /** - * @brief Replace characters with value of a C string. - * @param __pos Index of first character to replace. - * @param __n1 Number of characters to be replaced. - * @param __s C string to insert. - * @return Reference to this string. - * @throw std::out_of_range If @a pos > size(). - * @throw std::length_error If new length exceeds @c max_size(). - * - * Removes the characters in the range [__pos,__pos + __n1) - * from this string. In place, the characters of @a __s are - * inserted. If @a __pos is beyond end of string, out_of_range - * is thrown. If the length of result exceeds max_size(), - * length_error is thrown. The value of the string doesn't - * change if an error is thrown. - */ - _GLIBCXX20_CONSTEXPR - basic_string& - replace(size_type __pos, size_type __n1, const _CharT* __s) - { - __glibcxx_requires_string(__s); - return this->replace(__pos, __n1, __s, traits_type::length(__s)); - } - - /** - * @brief Replace characters with multiple characters. - * @param __pos Index of first character to replace. - * @param __n1 Number of characters to be replaced. - * @param __n2 Number of characters to insert. - * @param __c Character to insert. - * @return Reference to this string. - * @throw std::out_of_range If @a __pos > size(). - * @throw std::length_error If new length exceeds @c max_size(). - * - * Removes the characters in the range [pos,pos + n1) from this - * string. In place, @a __n2 copies of @a __c are inserted. - * If @a __pos is beyond end of string, out_of_range is thrown. - * If the length of result exceeds max_size(), length_error is - * thrown. The value of the string doesn't change if an error - * is thrown. - */ - _GLIBCXX20_CONSTEXPR - basic_string& - replace(size_type __pos, size_type __n1, size_type __n2, _CharT __c) - { return _M_replace_aux(_M_check(__pos, "basic_string::replace"), - _M_limit(__pos, __n1), __n2, __c); } - - /** - * @brief Replace range of characters with string. - * @param __i1 Iterator referencing start of range to replace. - * @param __i2 Iterator referencing end of range to replace. - * @param __str String value to insert. - * @return Reference to this string. - * @throw std::length_error If new length exceeds @c max_size(). - * - * Removes the characters in the range [__i1,__i2). In place, - * the value of @a __str is inserted. If the length of result - * exceeds max_size(), length_error is thrown. The value of - * the string doesn't change if an error is thrown. - */ - _GLIBCXX20_CONSTEXPR - basic_string& - replace(__const_iterator __i1, __const_iterator __i2, - const basic_string& __str) - { return this->replace(__i1, __i2, __str._M_data(), __str.size()); } - - /** - * @brief Replace range of characters with C substring. - * @param __i1 Iterator referencing start of range to replace. - * @param __i2 Iterator referencing end of range to replace. - * @param __s C string value to insert. - * @param __n Number of characters from s to insert. - * @return Reference to this string. - * @throw std::length_error If new length exceeds @c max_size(). - * - * Removes the characters in the range [__i1,__i2). In place, - * the first @a __n characters of @a __s are inserted. If the - * length of result exceeds max_size(), length_error is thrown. - * The value of the string doesn't change if an error is - * thrown. - */ - _GLIBCXX20_CONSTEXPR - basic_string& - replace(__const_iterator __i1, __const_iterator __i2, - const _CharT* __s, size_type __n) - { - _GLIBCXX_DEBUG_PEDASSERT(begin() <= __i1 && __i1 <= __i2 - && __i2 <= end()); - return this->replace(__i1 - begin(), __i2 - __i1, __s, __n); - } - - /** - * @brief Replace range of characters with C string. - * @param __i1 Iterator referencing start of range to replace. - * @param __i2 Iterator referencing end of range to replace. - * @param __s C string value to insert. - * @return Reference to this string. - * @throw std::length_error If new length exceeds @c max_size(). - * - * Removes the characters in the range [__i1,__i2). In place, - * the characters of @a __s are inserted. If the length of - * result exceeds max_size(), length_error is thrown. The - * value of the string doesn't change if an error is thrown. - */ - _GLIBCXX20_CONSTEXPR - basic_string& - replace(__const_iterator __i1, __const_iterator __i2, const _CharT* __s) - { - __glibcxx_requires_string(__s); - return this->replace(__i1, __i2, __s, traits_type::length(__s)); - } - - /** - * @brief Replace range of characters with multiple characters - * @param __i1 Iterator referencing start of range to replace. - * @param __i2 Iterator referencing end of range to replace. - * @param __n Number of characters to insert. - * @param __c Character to insert. - * @return Reference to this string. - * @throw std::length_error If new length exceeds @c max_size(). - * - * Removes the characters in the range [__i1,__i2). In place, - * @a __n copies of @a __c are inserted. If the length of - * result exceeds max_size(), length_error is thrown. The - * value of the string doesn't change if an error is thrown. - */ - _GLIBCXX20_CONSTEXPR - basic_string& - replace(__const_iterator __i1, __const_iterator __i2, size_type __n, - _CharT __c) - { - _GLIBCXX_DEBUG_PEDASSERT(begin() <= __i1 && __i1 <= __i2 - && __i2 <= end()); - return _M_replace_aux(__i1 - begin(), __i2 - __i1, __n, __c); - } - - /** - * @brief Replace range of characters with range. - * @param __i1 Iterator referencing start of range to replace. - * @param __i2 Iterator referencing end of range to replace. - * @param __k1 Iterator referencing start of range to insert. - * @param __k2 Iterator referencing end of range to insert. - * @return Reference to this string. - * @throw std::length_error If new length exceeds @c max_size(). - * - * Removes the characters in the range [__i1,__i2). In place, - * characters in the range [__k1,__k2) are inserted. If the - * length of result exceeds max_size(), length_error is thrown. - * The value of the string doesn't change if an error is - * thrown. - */ -#if __cplusplus >= 201103L - template> - _GLIBCXX20_CONSTEXPR - basic_string& - replace(const_iterator __i1, const_iterator __i2, - _InputIterator __k1, _InputIterator __k2) - { - _GLIBCXX_DEBUG_PEDASSERT(begin() <= __i1 && __i1 <= __i2 - && __i2 <= end()); - __glibcxx_requires_valid_range(__k1, __k2); - return this->_M_replace_dispatch(__i1, __i2, __k1, __k2, - std::__false_type()); - } -#else - template -#ifdef _GLIBCXX_DISAMBIGUATE_REPLACE_INST - typename __enable_if_not_native_iterator<_InputIterator>::__type -#else - basic_string& -#endif - replace(iterator __i1, iterator __i2, - _InputIterator __k1, _InputIterator __k2) - { - _GLIBCXX_DEBUG_PEDASSERT(begin() <= __i1 && __i1 <= __i2 - && __i2 <= end()); - __glibcxx_requires_valid_range(__k1, __k2); - typedef typename std::__is_integer<_InputIterator>::__type _Integral; - return _M_replace_dispatch(__i1, __i2, __k1, __k2, _Integral()); - } -#endif - - // Specializations for the common case of pointer and iterator: - // useful to avoid the overhead of temporary buffering in _M_replace. - _GLIBCXX20_CONSTEXPR - basic_string& - replace(__const_iterator __i1, __const_iterator __i2, - _CharT* __k1, _CharT* __k2) - { - _GLIBCXX_DEBUG_PEDASSERT(begin() <= __i1 && __i1 <= __i2 - && __i2 <= end()); - __glibcxx_requires_valid_range(__k1, __k2); - return this->replace(__i1 - begin(), __i2 - __i1, - __k1, __k2 - __k1); - } - - _GLIBCXX20_CONSTEXPR - basic_string& - replace(__const_iterator __i1, __const_iterator __i2, - const _CharT* __k1, const _CharT* __k2) - { - _GLIBCXX_DEBUG_PEDASSERT(begin() <= __i1 && __i1 <= __i2 - && __i2 <= end()); - __glibcxx_requires_valid_range(__k1, __k2); - return this->replace(__i1 - begin(), __i2 - __i1, - __k1, __k2 - __k1); - } - - _GLIBCXX20_CONSTEXPR - basic_string& - replace(__const_iterator __i1, __const_iterator __i2, - iterator __k1, iterator __k2) - { - _GLIBCXX_DEBUG_PEDASSERT(begin() <= __i1 && __i1 <= __i2 - && __i2 <= end()); - __glibcxx_requires_valid_range(__k1, __k2); - return this->replace(__i1 - begin(), __i2 - __i1, - __k1.base(), __k2 - __k1); - } - - _GLIBCXX20_CONSTEXPR - basic_string& - replace(__const_iterator __i1, __const_iterator __i2, - const_iterator __k1, const_iterator __k2) - { - _GLIBCXX_DEBUG_PEDASSERT(begin() <= __i1 && __i1 <= __i2 - && __i2 <= end()); - __glibcxx_requires_valid_range(__k1, __k2); - return this->replace(__i1 - begin(), __i2 - __i1, - __k1.base(), __k2 - __k1); - } - -#if __cplusplus >= 201103L - /** - * @brief Replace range of characters with initializer_list. - * @param __i1 Iterator referencing start of range to replace. - * @param __i2 Iterator referencing end of range to replace. - * @param __l The initializer_list of characters to insert. - * @return Reference to this string. - * @throw std::length_error If new length exceeds @c max_size(). - * - * Removes the characters in the range [__i1,__i2). In place, - * characters in the range [__k1,__k2) are inserted. If the - * length of result exceeds max_size(), length_error is thrown. - * The value of the string doesn't change if an error is - * thrown. - */ - _GLIBCXX20_CONSTEXPR - basic_string& replace(const_iterator __i1, const_iterator __i2, - initializer_list<_CharT> __l) - { return this->replace(__i1, __i2, __l.begin(), __l.size()); } -#endif // C++11 - -#if __cplusplus >= 201703L - /** - * @brief Replace range of characters with string_view. - * @param __pos The position to replace at. - * @param __n The number of characters to replace. - * @param __svt The object convertible to string_view to insert. - * @return Reference to this string. - */ - template - _GLIBCXX20_CONSTEXPR - _If_sv<_Tp, basic_string&> - replace(size_type __pos, size_type __n, const _Tp& __svt) - { - __sv_type __sv = __svt; - return this->replace(__pos, __n, __sv.data(), __sv.size()); - } - - /** - * @brief Replace range of characters with string_view. - * @param __pos1 The position to replace at. - * @param __n1 The number of characters to replace. - * @param __svt The object convertible to string_view to insert from. - * @param __pos2 The position in the string_view to insert from. - * @param __n2 The number of characters to insert. - * @return Reference to this string. - */ - template - _GLIBCXX20_CONSTEXPR - _If_sv<_Tp, basic_string&> - replace(size_type __pos1, size_type __n1, const _Tp& __svt, - size_type __pos2, size_type __n2 = npos) - { - __sv_type __sv = __svt; - return this->replace(__pos1, __n1, - __sv.data() - + std::__sv_check(__sv.size(), __pos2, "basic_string::replace"), - std::__sv_limit(__sv.size(), __pos2, __n2)); - } - - /** - * @brief Replace range of characters with string_view. - * @param __i1 An iterator referencing the start position - to replace at. - * @param __i2 An iterator referencing the end position - for the replace. - * @param __svt The object convertible to string_view to insert from. - * @return Reference to this string. - */ - template - _GLIBCXX20_CONSTEXPR - _If_sv<_Tp, basic_string&> - replace(const_iterator __i1, const_iterator __i2, const _Tp& __svt) - { - __sv_type __sv = __svt; - return this->replace(__i1 - begin(), __i2 - __i1, __sv); - } -#endif // C++17 - - private: - template - _GLIBCXX20_CONSTEXPR - basic_string& - _M_replace_dispatch(const_iterator __i1, const_iterator __i2, - _Integer __n, _Integer __val, __true_type) - { return _M_replace_aux(__i1 - begin(), __i2 - __i1, __n, __val); } - - template - _GLIBCXX20_CONSTEXPR - basic_string& - _M_replace_dispatch(const_iterator __i1, const_iterator __i2, - _InputIterator __k1, _InputIterator __k2, - __false_type); - - _GLIBCXX20_CONSTEXPR - basic_string& - _M_replace_aux(size_type __pos1, size_type __n1, size_type __n2, - _CharT __c); - - __attribute__((__noinline__, __noclone__, __cold__)) void - _M_replace_cold(pointer __p, size_type __len1, const _CharT* __s, - const size_type __len2, const size_type __how_much); - - _GLIBCXX20_CONSTEXPR - basic_string& - _M_replace(size_type __pos, size_type __len1, const _CharT* __s, - const size_type __len2); - - _GLIBCXX20_CONSTEXPR - basic_string& - _M_append(const _CharT* __s, size_type __n); - - public: - - /** - * @brief Copy substring into C string. - * @param __s C string to copy value into. - * @param __n Number of characters to copy. - * @param __pos Index of first character to copy. - * @return Number of characters actually copied - * @throw std::out_of_range If __pos > size(). - * - * Copies up to @a __n characters starting at @a __pos into the - * C string @a __s. If @a __pos is %greater than size(), - * out_of_range is thrown. - */ - _GLIBCXX20_CONSTEXPR - size_type - copy(_CharT* __s, size_type __n, size_type __pos = 0) const; - - /** - * @brief Swap contents with another string. - * @param __s String to swap with. - * - * Exchanges the contents of this string with that of @a __s in constant - * time. - */ - _GLIBCXX20_CONSTEXPR - void - swap(basic_string& __s) _GLIBCXX_NOEXCEPT; - - // String operations: - /** - * @brief Return const pointer to null-terminated contents. - * - * This is a handle to internal data. Do not modify or dire things may - * happen. - */ - _GLIBCXX_NODISCARD _GLIBCXX20_CONSTEXPR - const _CharT* - c_str() const _GLIBCXX_NOEXCEPT - { return _M_data(); } - - /** - * @brief Return const pointer to contents. - * - * This is a pointer to internal data. It is undefined to modify - * the contents through the returned pointer. To get a pointer that - * allows modifying the contents use @c &str[0] instead, - * (or in C++17 the non-const @c str.data() overload). - */ - _GLIBCXX_NODISCARD _GLIBCXX20_CONSTEXPR - const _CharT* - data() const _GLIBCXX_NOEXCEPT - { return _M_data(); } - -#if __cplusplus >= 201703L - /** - * @brief Return non-const pointer to contents. - * - * This is a pointer to the character sequence held by the string. - * Modifying the characters in the sequence is allowed. - */ - _GLIBCXX_NODISCARD _GLIBCXX20_CONSTEXPR - _CharT* - data() noexcept - { return _M_data(); } -#endif - - /** - * @brief Return copy of allocator used to construct this string. - */ - _GLIBCXX_NODISCARD _GLIBCXX20_CONSTEXPR - allocator_type - get_allocator() const _GLIBCXX_NOEXCEPT - { return _M_get_allocator(); } - - /** - * @brief Find position of a C substring. - * @param __s C string to locate. - * @param __pos Index of character to search from. - * @param __n Number of characters from @a s to search for. - * @return Index of start of first occurrence. - * - * Starting from @a __pos, searches forward for the first @a - * __n characters in @a __s within this string. If found, - * returns the index where it begins. If not found, returns - * npos. - */ - _GLIBCXX_NODISCARD _GLIBCXX20_CONSTEXPR - size_type - find(const _CharT* __s, size_type __pos, size_type __n) const - _GLIBCXX_NOEXCEPT; - - /** - * @brief Find position of a string. - * @param __str String to locate. - * @param __pos Index of character to search from (default 0). - * @return Index of start of first occurrence. - * - * Starting from @a __pos, searches forward for value of @a __str within - * this string. If found, returns the index where it begins. If not - * found, returns npos. - */ - _GLIBCXX_NODISCARD _GLIBCXX20_CONSTEXPR - size_type - find(const basic_string& __str, size_type __pos = 0) const - _GLIBCXX_NOEXCEPT - { return this->find(__str.data(), __pos, __str.size()); } - -#if __cplusplus >= 201703L - /** - * @brief Find position of a string_view. - * @param __svt The object convertible to string_view to locate. - * @param __pos Index of character to search from (default 0). - * @return Index of start of first occurrence. - */ - template - _GLIBCXX_NODISCARD _GLIBCXX20_CONSTEXPR - _If_sv<_Tp, size_type> - find(const _Tp& __svt, size_type __pos = 0) const - noexcept(is_same<_Tp, __sv_type>::value) - { - __sv_type __sv = __svt; - return this->find(__sv.data(), __pos, __sv.size()); - } -#endif // C++17 - - /** - * @brief Find position of a C string. - * @param __s C string to locate. - * @param __pos Index of character to search from (default 0). - * @return Index of start of first occurrence. - * - * Starting from @a __pos, searches forward for the value of @a - * __s within this string. If found, returns the index where - * it begins. If not found, returns npos. - */ - _GLIBCXX_NODISCARD _GLIBCXX20_CONSTEXPR - size_type - find(const _CharT* __s, size_type __pos = 0) const _GLIBCXX_NOEXCEPT - { - __glibcxx_requires_string(__s); - return this->find(__s, __pos, traits_type::length(__s)); - } - - /** - * @brief Find position of a character. - * @param __c Character to locate. - * @param __pos Index of character to search from (default 0). - * @return Index of first occurrence. - * - * Starting from @a __pos, searches forward for @a __c within - * this string. If found, returns the index where it was - * found. If not found, returns npos. - */ - _GLIBCXX_NODISCARD _GLIBCXX20_CONSTEXPR - size_type - find(_CharT __c, size_type __pos = 0) const _GLIBCXX_NOEXCEPT; - - /** - * @brief Find last position of a string. - * @param __str String to locate. - * @param __pos Index of character to search back from (default end). - * @return Index of start of last occurrence. - * - * Starting from @a __pos, searches backward for value of @a - * __str within this string. If found, returns the index where - * it begins. If not found, returns npos. - */ - _GLIBCXX_NODISCARD _GLIBCXX20_CONSTEXPR - size_type - rfind(const basic_string& __str, size_type __pos = npos) const - _GLIBCXX_NOEXCEPT - { return this->rfind(__str.data(), __pos, __str.size()); } - -#if __cplusplus >= 201703L - /** - * @brief Find last position of a string_view. - * @param __svt The object convertible to string_view to locate. - * @param __pos Index of character to search back from (default end). - * @return Index of start of last occurrence. - */ - template - _GLIBCXX_NODISCARD _GLIBCXX20_CONSTEXPR - _If_sv<_Tp, size_type> - rfind(const _Tp& __svt, size_type __pos = npos) const - noexcept(is_same<_Tp, __sv_type>::value) - { - __sv_type __sv = __svt; - return this->rfind(__sv.data(), __pos, __sv.size()); - } -#endif // C++17 - - /** - * @brief Find last position of a C substring. - * @param __s C string to locate. - * @param __pos Index of character to search back from. - * @param __n Number of characters from s to search for. - * @return Index of start of last occurrence. - * - * Starting from @a __pos, searches backward for the first @a - * __n characters in @a __s within this string. If found, - * returns the index where it begins. If not found, returns - * npos. - */ - _GLIBCXX_NODISCARD _GLIBCXX20_CONSTEXPR - size_type - rfind(const _CharT* __s, size_type __pos, size_type __n) const - _GLIBCXX_NOEXCEPT; - - /** - * @brief Find last position of a C string. - * @param __s C string to locate. - * @param __pos Index of character to start search at (default end). - * @return Index of start of last occurrence. - * - * Starting from @a __pos, searches backward for the value of - * @a __s within this string. If found, returns the index - * where it begins. If not found, returns npos. - */ - _GLIBCXX_NODISCARD _GLIBCXX20_CONSTEXPR - size_type - rfind(const _CharT* __s, size_type __pos = npos) const - { - __glibcxx_requires_string(__s); - return this->rfind(__s, __pos, traits_type::length(__s)); - } - - /** - * @brief Find last position of a character. - * @param __c Character to locate. - * @param __pos Index of character to search back from (default end). - * @return Index of last occurrence. - * - * Starting from @a __pos, searches backward for @a __c within - * this string. If found, returns the index where it was - * found. If not found, returns npos. - */ - _GLIBCXX_NODISCARD _GLIBCXX20_CONSTEXPR - size_type - rfind(_CharT __c, size_type __pos = npos) const _GLIBCXX_NOEXCEPT; - - /** - * @brief Find position of a character of string. - * @param __str String containing characters to locate. - * @param __pos Index of character to search from (default 0). - * @return Index of first occurrence. - * - * Starting from @a __pos, searches forward for one of the - * characters of @a __str within this string. If found, - * returns the index where it was found. If not found, returns - * npos. - */ - _GLIBCXX_NODISCARD _GLIBCXX20_CONSTEXPR - size_type - find_first_of(const basic_string& __str, size_type __pos = 0) const - _GLIBCXX_NOEXCEPT - { return this->find_first_of(__str.data(), __pos, __str.size()); } - -#if __cplusplus >= 201703L - /** - * @brief Find position of a character of a string_view. - * @param __svt An object convertible to string_view containing - * characters to locate. - * @param __pos Index of character to search from (default 0). - * @return Index of first occurrence. - */ - template - _GLIBCXX_NODISCARD _GLIBCXX20_CONSTEXPR - _If_sv<_Tp, size_type> - find_first_of(const _Tp& __svt, size_type __pos = 0) const - noexcept(is_same<_Tp, __sv_type>::value) - { - __sv_type __sv = __svt; - return this->find_first_of(__sv.data(), __pos, __sv.size()); - } -#endif // C++17 - - /** - * @brief Find position of a character of C substring. - * @param __s String containing characters to locate. - * @param __pos Index of character to search from. - * @param __n Number of characters from s to search for. - * @return Index of first occurrence. - * - * Starting from @a __pos, searches forward for one of the - * first @a __n characters of @a __s within this string. If - * found, returns the index where it was found. If not found, - * returns npos. - */ - _GLIBCXX_NODISCARD _GLIBCXX20_CONSTEXPR - size_type - find_first_of(const _CharT* __s, size_type __pos, size_type __n) const - _GLIBCXX_NOEXCEPT; - - /** - * @brief Find position of a character of C string. - * @param __s String containing characters to locate. - * @param __pos Index of character to search from (default 0). - * @return Index of first occurrence. - * - * Starting from @a __pos, searches forward for one of the - * characters of @a __s within this string. If found, returns - * the index where it was found. If not found, returns npos. - */ - _GLIBCXX_NODISCARD _GLIBCXX20_CONSTEXPR - size_type - find_first_of(const _CharT* __s, size_type __pos = 0) const - _GLIBCXX_NOEXCEPT - { - __glibcxx_requires_string(__s); - return this->find_first_of(__s, __pos, traits_type::length(__s)); - } - - /** - * @brief Find position of a character. - * @param __c Character to locate. - * @param __pos Index of character to search from (default 0). - * @return Index of first occurrence. - * - * Starting from @a __pos, searches forward for the character - * @a __c within this string. If found, returns the index - * where it was found. If not found, returns npos. - * - * Note: equivalent to find(__c, __pos). - */ - _GLIBCXX_NODISCARD _GLIBCXX20_CONSTEXPR - size_type - find_first_of(_CharT __c, size_type __pos = 0) const _GLIBCXX_NOEXCEPT - { return this->find(__c, __pos); } - - /** - * @brief Find last position of a character of string. - * @param __str String containing characters to locate. - * @param __pos Index of character to search back from (default end). - * @return Index of last occurrence. - * - * Starting from @a __pos, searches backward for one of the - * characters of @a __str within this string. If found, - * returns the index where it was found. If not found, returns - * npos. - */ - _GLIBCXX_NODISCARD _GLIBCXX20_CONSTEXPR - size_type - find_last_of(const basic_string& __str, size_type __pos = npos) const - _GLIBCXX_NOEXCEPT - { return this->find_last_of(__str.data(), __pos, __str.size()); } - -#if __cplusplus >= 201703L - /** - * @brief Find last position of a character of string. - * @param __svt An object convertible to string_view containing - * characters to locate. - * @param __pos Index of character to search back from (default end). - * @return Index of last occurrence. - */ - template - _GLIBCXX_NODISCARD _GLIBCXX20_CONSTEXPR - _If_sv<_Tp, size_type> - find_last_of(const _Tp& __svt, size_type __pos = npos) const - noexcept(is_same<_Tp, __sv_type>::value) - { - __sv_type __sv = __svt; - return this->find_last_of(__sv.data(), __pos, __sv.size()); - } -#endif // C++17 - - /** - * @brief Find last position of a character of C substring. - * @param __s C string containing characters to locate. - * @param __pos Index of character to search back from. - * @param __n Number of characters from s to search for. - * @return Index of last occurrence. - * - * Starting from @a __pos, searches backward for one of the - * first @a __n characters of @a __s within this string. If - * found, returns the index where it was found. If not found, - * returns npos. - */ - _GLIBCXX_NODISCARD _GLIBCXX20_CONSTEXPR - size_type - find_last_of(const _CharT* __s, size_type __pos, size_type __n) const - _GLIBCXX_NOEXCEPT; - - /** - * @brief Find last position of a character of C string. - * @param __s C string containing characters to locate. - * @param __pos Index of character to search back from (default end). - * @return Index of last occurrence. - * - * Starting from @a __pos, searches backward for one of the - * characters of @a __s within this string. If found, returns - * the index where it was found. If not found, returns npos. - */ - _GLIBCXX_NODISCARD _GLIBCXX20_CONSTEXPR - size_type - find_last_of(const _CharT* __s, size_type __pos = npos) const - _GLIBCXX_NOEXCEPT - { - __glibcxx_requires_string(__s); - return this->find_last_of(__s, __pos, traits_type::length(__s)); - } - - /** - * @brief Find last position of a character. - * @param __c Character to locate. - * @param __pos Index of character to search back from (default end). - * @return Index of last occurrence. - * - * Starting from @a __pos, searches backward for @a __c within - * this string. If found, returns the index where it was - * found. If not found, returns npos. - * - * Note: equivalent to rfind(__c, __pos). - */ - _GLIBCXX_NODISCARD _GLIBCXX20_CONSTEXPR - size_type - find_last_of(_CharT __c, size_type __pos = npos) const _GLIBCXX_NOEXCEPT - { return this->rfind(__c, __pos); } - - /** - * @brief Find position of a character not in string. - * @param __str String containing characters to avoid. - * @param __pos Index of character to search from (default 0). - * @return Index of first occurrence. - * - * Starting from @a __pos, searches forward for a character not contained - * in @a __str within this string. If found, returns the index where it - * was found. If not found, returns npos. - */ - _GLIBCXX_NODISCARD _GLIBCXX20_CONSTEXPR - size_type - find_first_not_of(const basic_string& __str, size_type __pos = 0) const - _GLIBCXX_NOEXCEPT - { return this->find_first_not_of(__str.data(), __pos, __str.size()); } - -#if __cplusplus >= 201703L - /** - * @brief Find position of a character not in a string_view. - * @param __svt A object convertible to string_view containing - * characters to avoid. - * @param __pos Index of character to search from (default 0). - * @return Index of first occurrence. - */ - template - _GLIBCXX_NODISCARD _GLIBCXX20_CONSTEXPR - _If_sv<_Tp, size_type> - find_first_not_of(const _Tp& __svt, size_type __pos = 0) const - noexcept(is_same<_Tp, __sv_type>::value) - { - __sv_type __sv = __svt; - return this->find_first_not_of(__sv.data(), __pos, __sv.size()); - } -#endif // C++17 - - /** - * @brief Find position of a character not in C substring. - * @param __s C string containing characters to avoid. - * @param __pos Index of character to search from. - * @param __n Number of characters from __s to consider. - * @return Index of first occurrence. - * - * Starting from @a __pos, searches forward for a character not - * contained in the first @a __n characters of @a __s within - * this string. If found, returns the index where it was - * found. If not found, returns npos. - */ - _GLIBCXX_NODISCARD _GLIBCXX20_CONSTEXPR - size_type - find_first_not_of(const _CharT* __s, size_type __pos, - size_type __n) const _GLIBCXX_NOEXCEPT; - - /** - * @brief Find position of a character not in C string. - * @param __s C string containing characters to avoid. - * @param __pos Index of character to search from (default 0). - * @return Index of first occurrence. - * - * Starting from @a __pos, searches forward for a character not - * contained in @a __s within this string. If found, returns - * the index where it was found. If not found, returns npos. - */ - _GLIBCXX_NODISCARD _GLIBCXX20_CONSTEXPR - size_type - find_first_not_of(const _CharT* __s, size_type __pos = 0) const - _GLIBCXX_NOEXCEPT - { - __glibcxx_requires_string(__s); - return this->find_first_not_of(__s, __pos, traits_type::length(__s)); - } - - /** - * @brief Find position of a different character. - * @param __c Character to avoid. - * @param __pos Index of character to search from (default 0). - * @return Index of first occurrence. - * - * Starting from @a __pos, searches forward for a character - * other than @a __c within this string. If found, returns the - * index where it was found. If not found, returns npos. - */ - _GLIBCXX_NODISCARD _GLIBCXX20_CONSTEXPR - size_type - find_first_not_of(_CharT __c, size_type __pos = 0) const - _GLIBCXX_NOEXCEPT; - - /** - * @brief Find last position of a character not in string. - * @param __str String containing characters to avoid. - * @param __pos Index of character to search back from (default end). - * @return Index of last occurrence. - * - * Starting from @a __pos, searches backward for a character - * not contained in @a __str within this string. If found, - * returns the index where it was found. If not found, returns - * npos. - */ - _GLIBCXX_NODISCARD _GLIBCXX20_CONSTEXPR - size_type - find_last_not_of(const basic_string& __str, size_type __pos = npos) const - _GLIBCXX_NOEXCEPT - { return this->find_last_not_of(__str.data(), __pos, __str.size()); } - -#if __cplusplus >= 201703L - /** - * @brief Find last position of a character not in a string_view. - * @param __svt An object convertible to string_view containing - * characters to avoid. - * @param __pos Index of character to search back from (default end). - * @return Index of last occurrence. - */ - template - _GLIBCXX_NODISCARD _GLIBCXX20_CONSTEXPR - _If_sv<_Tp, size_type> - find_last_not_of(const _Tp& __svt, size_type __pos = npos) const - noexcept(is_same<_Tp, __sv_type>::value) - { - __sv_type __sv = __svt; - return this->find_last_not_of(__sv.data(), __pos, __sv.size()); - } -#endif // C++17 - - /** - * @brief Find last position of a character not in C substring. - * @param __s C string containing characters to avoid. - * @param __pos Index of character to search back from. - * @param __n Number of characters from s to consider. - * @return Index of last occurrence. - * - * Starting from @a __pos, searches backward for a character not - * contained in the first @a __n characters of @a __s within this string. - * If found, returns the index where it was found. If not found, - * returns npos. - */ - _GLIBCXX_NODISCARD _GLIBCXX20_CONSTEXPR - size_type - find_last_not_of(const _CharT* __s, size_type __pos, - size_type __n) const _GLIBCXX_NOEXCEPT; - /** - * @brief Find last position of a character not in C string. - * @param __s C string containing characters to avoid. - * @param __pos Index of character to search back from (default end). - * @return Index of last occurrence. - * - * Starting from @a __pos, searches backward for a character - * not contained in @a __s within this string. If found, - * returns the index where it was found. If not found, returns - * npos. - */ - _GLIBCXX_NODISCARD _GLIBCXX20_CONSTEXPR - size_type - find_last_not_of(const _CharT* __s, size_type __pos = npos) const - _GLIBCXX_NOEXCEPT - { - __glibcxx_requires_string(__s); - return this->find_last_not_of(__s, __pos, traits_type::length(__s)); - } - - /** - * @brief Find last position of a different character. - * @param __c Character to avoid. - * @param __pos Index of character to search back from (default end). - * @return Index of last occurrence. - * - * Starting from @a __pos, searches backward for a character other than - * @a __c within this string. If found, returns the index where it was - * found. If not found, returns npos. - */ - _GLIBCXX_NODISCARD _GLIBCXX20_CONSTEXPR - size_type - find_last_not_of(_CharT __c, size_type __pos = npos) const - _GLIBCXX_NOEXCEPT; - - /** - * @brief Get a substring. - * @param __pos Index of first character (default 0). - * @param __n Number of characters in substring (default remainder). - * @return The new string. - * @throw std::out_of_range If __pos > size(). - * - * Construct and return a new string using the @a __n - * characters starting at @a __pos. If the string is too - * short, use the remainder of the characters. If @a __pos is - * beyond the end of the string, out_of_range is thrown. - */ - _GLIBCXX_NODISCARD _GLIBCXX20_CONSTEXPR - basic_string - substr(size_type __pos = 0, size_type __n = npos) const - { return basic_string(*this, - _M_check(__pos, "basic_string::substr"), __n); } - - /** - * @brief Compare to a string. - * @param __str String to compare against. - * @return Integer < 0, 0, or > 0. - * - * Returns an integer < 0 if this string is ordered before @a - * __str, 0 if their values are equivalent, or > 0 if this - * string is ordered after @a __str. Determines the effective - * length rlen of the strings to compare as the smallest of - * size() and str.size(). The function then compares the two - * strings by calling traits::compare(data(), str.data(),rlen). - * If the result of the comparison is nonzero returns it, - * otherwise the shorter one is ordered first. - */ - _GLIBCXX_NODISCARD _GLIBCXX20_CONSTEXPR - int - compare(const basic_string& __str) const - { - const size_type __size = this->size(); - const size_type __osize = __str.size(); - const size_type __len = std::min(__size, __osize); - - int __r = traits_type::compare(_M_data(), __str.data(), __len); - if (!__r) - __r = _S_compare(__size, __osize); - return __r; - } - -#if __cplusplus >= 201703L - /** - * @brief Compare to a string_view. - * @param __svt An object convertible to string_view to compare against. - * @return Integer < 0, 0, or > 0. - */ - template - _GLIBCXX_NODISCARD _GLIBCXX20_CONSTEXPR - _If_sv<_Tp, int> - compare(const _Tp& __svt) const - noexcept(is_same<_Tp, __sv_type>::value) - { - __sv_type __sv = __svt; - const size_type __size = this->size(); - const size_type __osize = __sv.size(); - const size_type __len = std::min(__size, __osize); - - int __r = traits_type::compare(_M_data(), __sv.data(), __len); - if (!__r) - __r = _S_compare(__size, __osize); - return __r; - } - - /** - * @brief Compare to a string_view. - * @param __pos A position in the string to start comparing from. - * @param __n The number of characters to compare. - * @param __svt An object convertible to string_view to compare - * against. - * @return Integer < 0, 0, or > 0. - */ - template - _GLIBCXX_NODISCARD _GLIBCXX20_CONSTEXPR - _If_sv<_Tp, int> - compare(size_type __pos, size_type __n, const _Tp& __svt) const - noexcept(is_same<_Tp, __sv_type>::value) - { - __sv_type __sv = __svt; - return __sv_type(*this).substr(__pos, __n).compare(__sv); - } - - /** - * @brief Compare to a string_view. - * @param __pos1 A position in the string to start comparing from. - * @param __n1 The number of characters to compare. - * @param __svt An object convertible to string_view to compare - * against. - * @param __pos2 A position in the string_view to start comparing from. - * @param __n2 The number of characters to compare. - * @return Integer < 0, 0, or > 0. - */ - template - _GLIBCXX_NODISCARD _GLIBCXX20_CONSTEXPR - _If_sv<_Tp, int> - compare(size_type __pos1, size_type __n1, const _Tp& __svt, - size_type __pos2, size_type __n2 = npos) const - noexcept(is_same<_Tp, __sv_type>::value) - { - __sv_type __sv = __svt; - return __sv_type(*this) - .substr(__pos1, __n1).compare(__sv.substr(__pos2, __n2)); - } -#endif // C++17 - - /** - * @brief Compare substring to a string. - * @param __pos Index of first character of substring. - * @param __n Number of characters in substring. - * @param __str String to compare against. - * @return Integer < 0, 0, or > 0. - * - * Form the substring of this string from the @a __n characters - * starting at @a __pos. Returns an integer < 0 if the - * substring is ordered before @a __str, 0 if their values are - * equivalent, or > 0 if the substring is ordered after @a - * __str. Determines the effective length rlen of the strings - * to compare as the smallest of the length of the substring - * and @a __str.size(). The function then compares the two - * strings by calling - * traits::compare(substring.data(),str.data(),rlen). If the - * result of the comparison is nonzero returns it, otherwise - * the shorter one is ordered first. - */ - _GLIBCXX_NODISCARD _GLIBCXX20_CONSTEXPR - int - compare(size_type __pos, size_type __n, const basic_string& __str) const - { - _M_check(__pos, "basic_string::compare"); - __n = _M_limit(__pos, __n); - const size_type __osize = __str.size(); - const size_type __len = std::min(__n, __osize); - int __r = traits_type::compare(_M_data() + __pos, __str.data(), __len); - if (!__r) - __r = _S_compare(__n, __osize); - return __r; - } - - /** - * @brief Compare substring to a substring. - * @param __pos1 Index of first character of substring. - * @param __n1 Number of characters in substring. - * @param __str String to compare against. - * @param __pos2 Index of first character of substring of str. - * @param __n2 Number of characters in substring of str. - * @return Integer < 0, 0, or > 0. - * - * Form the substring of this string from the @a __n1 - * characters starting at @a __pos1. Form the substring of @a - * __str from the @a __n2 characters starting at @a __pos2. - * Returns an integer < 0 if this substring is ordered before - * the substring of @a __str, 0 if their values are equivalent, - * or > 0 if this substring is ordered after the substring of - * @a __str. Determines the effective length rlen of the - * strings to compare as the smallest of the lengths of the - * substrings. The function then compares the two strings by - * calling - * traits::compare(substring.data(),str.substr(pos2,n2).data(),rlen). - * If the result of the comparison is nonzero returns it, - * otherwise the shorter one is ordered first. - */ - _GLIBCXX_NODISCARD _GLIBCXX20_CONSTEXPR - int - compare(size_type __pos1, size_type __n1, const basic_string& __str, - size_type __pos2, size_type __n2 = npos) const - { - _M_check(__pos1, "basic_string::compare"); - __str._M_check(__pos2, "basic_string::compare"); - __n1 = _M_limit(__pos1, __n1); - __n2 = __str._M_limit(__pos2, __n2); - const size_type __len = std::min(__n1, __n2); - int __r = traits_type::compare(_M_data() + __pos1, - __str.data() + __pos2, __len); - if (!__r) - __r = _S_compare(__n1, __n2); - return __r; - } - - /** - * @brief Compare to a C string. - * @param __s C string to compare against. - * @return Integer < 0, 0, or > 0. - * - * Returns an integer < 0 if this string is ordered before @a __s, 0 if - * their values are equivalent, or > 0 if this string is ordered after - * @a __s. Determines the effective length rlen of the strings to - * compare as the smallest of size() and the length of a string - * constructed from @a __s. The function then compares the two strings - * by calling traits::compare(data(),s,rlen). If the result of the - * comparison is nonzero returns it, otherwise the shorter one is - * ordered first. - */ - _GLIBCXX_NODISCARD _GLIBCXX20_CONSTEXPR - int - compare(const _CharT* __s) const _GLIBCXX_NOEXCEPT - { - __glibcxx_requires_string(__s); - const size_type __size = this->size(); - const size_type __osize = traits_type::length(__s); - const size_type __len = std::min(__size, __osize); - int __r = traits_type::compare(_M_data(), __s, __len); - if (!__r) - __r = _S_compare(__size, __osize); - return __r; - } - - // _GLIBCXX_RESOLVE_LIB_DEFECTS - // 5 String::compare specification questionable - /** - * @brief Compare substring to a C string. - * @param __pos Index of first character of substring. - * @param __n1 Number of characters in substring. - * @param __s C string to compare against. - * @return Integer < 0, 0, or > 0. - * - * Form the substring of this string from the @a __n1 - * characters starting at @a pos. Returns an integer < 0 if - * the substring is ordered before @a __s, 0 if their values - * are equivalent, or > 0 if the substring is ordered after @a - * __s. Determines the effective length rlen of the strings to - * compare as the smallest of the length of the substring and - * the length of a string constructed from @a __s. The - * function then compares the two string by calling - * traits::compare(substring.data(),__s,rlen). If the result of - * the comparison is nonzero returns it, otherwise the shorter - * one is ordered first. - */ - _GLIBCXX_NODISCARD _GLIBCXX20_CONSTEXPR - int - compare(size_type __pos, size_type __n1, const _CharT* __s) const - { - __glibcxx_requires_string(__s); - _M_check(__pos, "basic_string::compare"); - __n1 = _M_limit(__pos, __n1); - const size_type __osize = traits_type::length(__s); - const size_type __len = std::min(__n1, __osize); - int __r = traits_type::compare(_M_data() + __pos, __s, __len); - if (!__r) - __r = _S_compare(__n1, __osize); - return __r; - } - - /** - * @brief Compare substring against a character %array. - * @param __pos Index of first character of substring. - * @param __n1 Number of characters in substring. - * @param __s character %array to compare against. - * @param __n2 Number of characters of s. - * @return Integer < 0, 0, or > 0. - * - * Form the substring of this string from the @a __n1 - * characters starting at @a __pos. Form a string from the - * first @a __n2 characters of @a __s. Returns an integer < 0 - * if this substring is ordered before the string from @a __s, - * 0 if their values are equivalent, or > 0 if this substring - * is ordered after the string from @a __s. Determines the - * effective length rlen of the strings to compare as the - * smallest of the length of the substring and @a __n2. The - * function then compares the two strings by calling - * traits::compare(substring.data(),s,rlen). If the result of - * the comparison is nonzero returns it, otherwise the shorter - * one is ordered first. - * - * NB: s must have at least n2 characters, '\\0' has - * no special meaning. - */ - _GLIBCXX_NODISCARD _GLIBCXX20_CONSTEXPR - int - compare(size_type __pos, size_type __n1, const _CharT* __s, - size_type __n2) const - { - __glibcxx_requires_string_len(__s, __n2); - _M_check(__pos, "basic_string::compare"); - __n1 = _M_limit(__pos, __n1); - const size_type __len = std::min(__n1, __n2); - int __r = traits_type::compare(_M_data() + __pos, __s, __len); - if (!__r) - __r = _S_compare(__n1, __n2); - return __r; - } - -#if __cplusplus >= 202002L - [[nodiscard]] - constexpr bool - starts_with(basic_string_view<_CharT, _Traits> __x) const noexcept - { return __sv_type(this->data(), this->size()).starts_with(__x); } - - [[nodiscard]] - constexpr bool - starts_with(_CharT __x) const noexcept - { return __sv_type(this->data(), this->size()).starts_with(__x); } - - [[nodiscard, __gnu__::__nonnull__]] - constexpr bool - starts_with(const _CharT* __x) const noexcept - { return __sv_type(this->data(), this->size()).starts_with(__x); } - - [[nodiscard]] - constexpr bool - ends_with(basic_string_view<_CharT, _Traits> __x) const noexcept - { return __sv_type(this->data(), this->size()).ends_with(__x); } - - [[nodiscard]] - constexpr bool - ends_with(_CharT __x) const noexcept - { return __sv_type(this->data(), this->size()).ends_with(__x); } - - [[nodiscard, __gnu__::__nonnull__]] - constexpr bool - ends_with(const _CharT* __x) const noexcept - { return __sv_type(this->data(), this->size()).ends_with(__x); } -#endif // C++20 - -#if __cplusplus > 202002L - [[nodiscard]] - constexpr bool - contains(basic_string_view<_CharT, _Traits> __x) const noexcept - { return __sv_type(this->data(), this->size()).contains(__x); } - - [[nodiscard]] - constexpr bool - contains(_CharT __x) const noexcept - { return __sv_type(this->data(), this->size()).contains(__x); } - - [[nodiscard, __gnu__::__nonnull__]] - constexpr bool - contains(const _CharT* __x) const noexcept - { return __sv_type(this->data(), this->size()).contains(__x); } -#endif // C++23 - - // Allow basic_stringbuf::__xfer_bufptrs to call _M_length: - template friend class basic_stringbuf; - }; -_GLIBCXX_END_NAMESPACE_CXX11 -_GLIBCXX_END_NAMESPACE_VERSION -} // namespace std -#endif // _GLIBCXX_USE_CXX11_ABI - -namespace std _GLIBCXX_VISIBILITY(default) -{ -_GLIBCXX_BEGIN_NAMESPACE_VERSION - -#if __cpp_deduction_guides >= 201606 -_GLIBCXX_BEGIN_NAMESPACE_CXX11 - template::value_type, - typename _Allocator = allocator<_CharT>, - typename = _RequireInputIter<_InputIterator>, - typename = _RequireAllocator<_Allocator>> - basic_string(_InputIterator, _InputIterator, _Allocator = _Allocator()) - -> basic_string<_CharT, char_traits<_CharT>, _Allocator>; - - // _GLIBCXX_RESOLVE_LIB_DEFECTS - // 3075. basic_string needs deduction guides from basic_string_view - template, - typename = _RequireAllocator<_Allocator>> - basic_string(basic_string_view<_CharT, _Traits>, const _Allocator& = _Allocator()) - -> basic_string<_CharT, _Traits, _Allocator>; - - template, - typename = _RequireAllocator<_Allocator>> - basic_string(basic_string_view<_CharT, _Traits>, - typename basic_string<_CharT, _Traits, _Allocator>::size_type, - typename basic_string<_CharT, _Traits, _Allocator>::size_type, - const _Allocator& = _Allocator()) - -> basic_string<_CharT, _Traits, _Allocator>; -_GLIBCXX_END_NAMESPACE_CXX11 -#endif - - template - _GLIBCXX20_CONSTEXPR - inline _Str - __str_concat(typename _Str::value_type const* __lhs, - typename _Str::size_type __lhs_len, - typename _Str::value_type const* __rhs, - typename _Str::size_type __rhs_len, - typename _Str::allocator_type const& __a) - { - typedef typename _Str::allocator_type allocator_type; - typedef __gnu_cxx::__alloc_traits _Alloc_traits; - _Str __str(_Alloc_traits::_S_select_on_copy(__a)); - __str.reserve(__lhs_len + __rhs_len); - __str.append(__lhs, __lhs_len); - __str.append(__rhs, __rhs_len); - return __str; - } - - // operator+ - /** - * @brief Concatenate two strings. - * @param __lhs First string. - * @param __rhs Last string. - * @return New string with value of @a __lhs followed by @a __rhs. - */ - template - _GLIBCXX_NODISCARD _GLIBCXX20_CONSTEXPR - inline basic_string<_CharT, _Traits, _Alloc> - operator+(const basic_string<_CharT, _Traits, _Alloc>& __lhs, - const basic_string<_CharT, _Traits, _Alloc>& __rhs) - { - typedef basic_string<_CharT, _Traits, _Alloc> _Str; - return std::__str_concat<_Str>(__lhs.c_str(), __lhs.size(), - __rhs.c_str(), __rhs.size(), - __lhs.get_allocator()); - } - - /** - * @brief Concatenate C string and string. - * @param __lhs First string. - * @param __rhs Last string. - * @return New string with value of @a __lhs followed by @a __rhs. - */ - template - _GLIBCXX_NODISCARD _GLIBCXX20_CONSTEXPR - inline basic_string<_CharT,_Traits,_Alloc> - operator+(const _CharT* __lhs, - const basic_string<_CharT,_Traits,_Alloc>& __rhs) - { - __glibcxx_requires_string(__lhs); - typedef basic_string<_CharT, _Traits, _Alloc> _Str; - return std::__str_concat<_Str>(__lhs, _Traits::length(__lhs), - __rhs.c_str(), __rhs.size(), - __rhs.get_allocator()); - } - - /** - * @brief Concatenate character and string. - * @param __lhs First string. - * @param __rhs Last string. - * @return New string with @a __lhs followed by @a __rhs. - */ - template - _GLIBCXX_NODISCARD _GLIBCXX20_CONSTEXPR - inline basic_string<_CharT,_Traits,_Alloc> - operator+(_CharT __lhs, const basic_string<_CharT,_Traits,_Alloc>& __rhs) - { - typedef basic_string<_CharT, _Traits, _Alloc> _Str; - return std::__str_concat<_Str>(__builtin_addressof(__lhs), 1, - __rhs.c_str(), __rhs.size(), - __rhs.get_allocator()); - } - - /** - * @brief Concatenate string and C string. - * @param __lhs First string. - * @param __rhs Last string. - * @return New string with @a __lhs followed by @a __rhs. - */ - template - _GLIBCXX_NODISCARD _GLIBCXX20_CONSTEXPR - inline basic_string<_CharT, _Traits, _Alloc> - operator+(const basic_string<_CharT, _Traits, _Alloc>& __lhs, - const _CharT* __rhs) - { - __glibcxx_requires_string(__rhs); - typedef basic_string<_CharT, _Traits, _Alloc> _Str; - return std::__str_concat<_Str>(__lhs.c_str(), __lhs.size(), - __rhs, _Traits::length(__rhs), - __lhs.get_allocator()); - } - /** - * @brief Concatenate string and character. - * @param __lhs First string. - * @param __rhs Last string. - * @return New string with @a __lhs followed by @a __rhs. - */ - template - _GLIBCXX_NODISCARD _GLIBCXX20_CONSTEXPR - inline basic_string<_CharT, _Traits, _Alloc> - operator+(const basic_string<_CharT, _Traits, _Alloc>& __lhs, _CharT __rhs) - { - typedef basic_string<_CharT, _Traits, _Alloc> _Str; - return std::__str_concat<_Str>(__lhs.c_str(), __lhs.size(), - __builtin_addressof(__rhs), 1, - __lhs.get_allocator()); - } - -#if __cplusplus >= 201103L - template - _GLIBCXX_NODISCARD _GLIBCXX20_CONSTEXPR - inline basic_string<_CharT, _Traits, _Alloc> - operator+(basic_string<_CharT, _Traits, _Alloc>&& __lhs, - const basic_string<_CharT, _Traits, _Alloc>& __rhs) - { return std::move(__lhs.append(__rhs)); } - - template - _GLIBCXX20_CONSTEXPR - inline basic_string<_CharT, _Traits, _Alloc> - operator+(const basic_string<_CharT, _Traits, _Alloc>& __lhs, - basic_string<_CharT, _Traits, _Alloc>&& __rhs) - { return std::move(__rhs.insert(0, __lhs)); } - - template - _GLIBCXX_NODISCARD _GLIBCXX20_CONSTEXPR - inline basic_string<_CharT, _Traits, _Alloc> - operator+(basic_string<_CharT, _Traits, _Alloc>&& __lhs, - basic_string<_CharT, _Traits, _Alloc>&& __rhs) - { -#if _GLIBCXX_USE_CXX11_ABI - using _Alloc_traits = allocator_traits<_Alloc>; - bool __use_rhs = false; - if _GLIBCXX17_CONSTEXPR (typename _Alloc_traits::is_always_equal{}) - __use_rhs = true; - else if (__lhs.get_allocator() == __rhs.get_allocator()) - __use_rhs = true; - if (__use_rhs) -#endif - { - const auto __size = __lhs.size() + __rhs.size(); - if (__size > __lhs.capacity() && __size <= __rhs.capacity()) - return std::move(__rhs.insert(0, __lhs)); - } - return std::move(__lhs.append(__rhs)); - } - - template - _GLIBCXX_NODISCARD _GLIBCXX_NODISCARD _GLIBCXX20_CONSTEXPR - inline basic_string<_CharT, _Traits, _Alloc> - operator+(const _CharT* __lhs, - basic_string<_CharT, _Traits, _Alloc>&& __rhs) - { return std::move(__rhs.insert(0, __lhs)); } - - template - _GLIBCXX_NODISCARD _GLIBCXX20_CONSTEXPR - inline basic_string<_CharT, _Traits, _Alloc> - operator+(_CharT __lhs, - basic_string<_CharT, _Traits, _Alloc>&& __rhs) - { return std::move(__rhs.insert(0, 1, __lhs)); } - - template - _GLIBCXX_NODISCARD _GLIBCXX20_CONSTEXPR - inline basic_string<_CharT, _Traits, _Alloc> - operator+(basic_string<_CharT, _Traits, _Alloc>&& __lhs, - const _CharT* __rhs) - { return std::move(__lhs.append(__rhs)); } - - template - _GLIBCXX_NODISCARD _GLIBCXX20_CONSTEXPR - inline basic_string<_CharT, _Traits, _Alloc> - operator+(basic_string<_CharT, _Traits, _Alloc>&& __lhs, - _CharT __rhs) - { return std::move(__lhs.append(1, __rhs)); } -#endif - - // operator == - /** - * @brief Test equivalence of two strings. - * @param __lhs First string. - * @param __rhs Second string. - * @return True if @a __lhs.compare(@a __rhs) == 0. False otherwise. - */ - template - _GLIBCXX_NODISCARD _GLIBCXX20_CONSTEXPR - inline bool - operator==(const basic_string<_CharT, _Traits, _Alloc>& __lhs, - const basic_string<_CharT, _Traits, _Alloc>& __rhs) - _GLIBCXX_NOEXCEPT - { - return __lhs.size() == __rhs.size() - && !_Traits::compare(__lhs.data(), __rhs.data(), __lhs.size()); - } - - /** - * @brief Test equivalence of string and C string. - * @param __lhs String. - * @param __rhs C string. - * @return True if @a __lhs.compare(@a __rhs) == 0. False otherwise. - */ - template - _GLIBCXX_NODISCARD _GLIBCXX20_CONSTEXPR - inline bool - operator==(const basic_string<_CharT, _Traits, _Alloc>& __lhs, - const _CharT* __rhs) - { - return __lhs.size() == _Traits::length(__rhs) - && !_Traits::compare(__lhs.data(), __rhs, __lhs.size()); - } - -#if __cpp_lib_three_way_comparison - /** - * @brief Three-way comparison of a string and a C string. - * @param __lhs A string. - * @param __rhs A null-terminated string. - * @return A value indicating whether `__lhs` is less than, equal to, - * greater than, or incomparable with `__rhs`. - */ - template - [[nodiscard]] - constexpr auto - operator<=>(const basic_string<_CharT, _Traits, _Alloc>& __lhs, - const basic_string<_CharT, _Traits, _Alloc>& __rhs) noexcept - -> decltype(__detail::__char_traits_cmp_cat<_Traits>(0)) - { return __detail::__char_traits_cmp_cat<_Traits>(__lhs.compare(__rhs)); } - - /** - * @brief Three-way comparison of a string and a C string. - * @param __lhs A string. - * @param __rhs A null-terminated string. - * @return A value indicating whether `__lhs` is less than, equal to, - * greater than, or incomparable with `__rhs`. - */ - template - [[nodiscard]] - constexpr auto - operator<=>(const basic_string<_CharT, _Traits, _Alloc>& __lhs, - const _CharT* __rhs) noexcept - -> decltype(__detail::__char_traits_cmp_cat<_Traits>(0)) - { return __detail::__char_traits_cmp_cat<_Traits>(__lhs.compare(__rhs)); } -#else - /** - * @brief Test equivalence of C string and string. - * @param __lhs C string. - * @param __rhs String. - * @return True if @a __rhs.compare(@a __lhs) == 0. False otherwise. - */ - template - _GLIBCXX_NODISCARD - inline bool - operator==(const _CharT* __lhs, - const basic_string<_CharT, _Traits, _Alloc>& __rhs) - { return __rhs == __lhs; } - - // operator != - /** - * @brief Test difference of two strings. - * @param __lhs First string. - * @param __rhs Second string. - * @return True if @a __lhs.compare(@a __rhs) != 0. False otherwise. - */ - template - _GLIBCXX_NODISCARD - inline bool - operator!=(const basic_string<_CharT, _Traits, _Alloc>& __lhs, - const basic_string<_CharT, _Traits, _Alloc>& __rhs) - _GLIBCXX_NOEXCEPT - { return !(__lhs == __rhs); } - - /** - * @brief Test difference of C string and string. - * @param __lhs C string. - * @param __rhs String. - * @return True if @a __rhs.compare(@a __lhs) != 0. False otherwise. - */ - template - _GLIBCXX_NODISCARD - inline bool - operator!=(const _CharT* __lhs, - const basic_string<_CharT, _Traits, _Alloc>& __rhs) - { return !(__rhs == __lhs); } - - /** - * @brief Test difference of string and C string. - * @param __lhs String. - * @param __rhs C string. - * @return True if @a __lhs.compare(@a __rhs) != 0. False otherwise. - */ - template - _GLIBCXX_NODISCARD - inline bool - operator!=(const basic_string<_CharT, _Traits, _Alloc>& __lhs, - const _CharT* __rhs) - { return !(__lhs == __rhs); } - - // operator < - /** - * @brief Test if string precedes string. - * @param __lhs First string. - * @param __rhs Second string. - * @return True if @a __lhs precedes @a __rhs. False otherwise. - */ - template - _GLIBCXX_NODISCARD - inline bool - operator<(const basic_string<_CharT, _Traits, _Alloc>& __lhs, - const basic_string<_CharT, _Traits, _Alloc>& __rhs) - _GLIBCXX_NOEXCEPT - { return __lhs.compare(__rhs) < 0; } - - /** - * @brief Test if string precedes C string. - * @param __lhs String. - * @param __rhs C string. - * @return True if @a __lhs precedes @a __rhs. False otherwise. - */ - template - _GLIBCXX_NODISCARD - inline bool - operator<(const basic_string<_CharT, _Traits, _Alloc>& __lhs, - const _CharT* __rhs) - { return __lhs.compare(__rhs) < 0; } - - /** - * @brief Test if C string precedes string. - * @param __lhs C string. - * @param __rhs String. - * @return True if @a __lhs precedes @a __rhs. False otherwise. - */ - template - _GLIBCXX_NODISCARD - inline bool - operator<(const _CharT* __lhs, - const basic_string<_CharT, _Traits, _Alloc>& __rhs) - { return __rhs.compare(__lhs) > 0; } - - // operator > - /** - * @brief Test if string follows string. - * @param __lhs First string. - * @param __rhs Second string. - * @return True if @a __lhs follows @a __rhs. False otherwise. - */ - template - _GLIBCXX_NODISCARD - inline bool - operator>(const basic_string<_CharT, _Traits, _Alloc>& __lhs, - const basic_string<_CharT, _Traits, _Alloc>& __rhs) - _GLIBCXX_NOEXCEPT - { return __lhs.compare(__rhs) > 0; } - - /** - * @brief Test if string follows C string. - * @param __lhs String. - * @param __rhs C string. - * @return True if @a __lhs follows @a __rhs. False otherwise. - */ - template - _GLIBCXX_NODISCARD - inline bool - operator>(const basic_string<_CharT, _Traits, _Alloc>& __lhs, - const _CharT* __rhs) - { return __lhs.compare(__rhs) > 0; } - - /** - * @brief Test if C string follows string. - * @param __lhs C string. - * @param __rhs String. - * @return True if @a __lhs follows @a __rhs. False otherwise. - */ - template - _GLIBCXX_NODISCARD - inline bool - operator>(const _CharT* __lhs, - const basic_string<_CharT, _Traits, _Alloc>& __rhs) - { return __rhs.compare(__lhs) < 0; } - - // operator <= - /** - * @brief Test if string doesn't follow string. - * @param __lhs First string. - * @param __rhs Second string. - * @return True if @a __lhs doesn't follow @a __rhs. False otherwise. - */ - template - _GLIBCXX_NODISCARD - inline bool - operator<=(const basic_string<_CharT, _Traits, _Alloc>& __lhs, - const basic_string<_CharT, _Traits, _Alloc>& __rhs) - _GLIBCXX_NOEXCEPT - { return __lhs.compare(__rhs) <= 0; } - - /** - * @brief Test if string doesn't follow C string. - * @param __lhs String. - * @param __rhs C string. - * @return True if @a __lhs doesn't follow @a __rhs. False otherwise. - */ - template - _GLIBCXX_NODISCARD - inline bool - operator<=(const basic_string<_CharT, _Traits, _Alloc>& __lhs, - const _CharT* __rhs) - { return __lhs.compare(__rhs) <= 0; } - - /** - * @brief Test if C string doesn't follow string. - * @param __lhs C string. - * @param __rhs String. - * @return True if @a __lhs doesn't follow @a __rhs. False otherwise. - */ - template - _GLIBCXX_NODISCARD - inline bool - operator<=(const _CharT* __lhs, - const basic_string<_CharT, _Traits, _Alloc>& __rhs) - { return __rhs.compare(__lhs) >= 0; } - - // operator >= - /** - * @brief Test if string doesn't precede string. - * @param __lhs First string. - * @param __rhs Second string. - * @return True if @a __lhs doesn't precede @a __rhs. False otherwise. - */ - template - _GLIBCXX_NODISCARD - inline bool - operator>=(const basic_string<_CharT, _Traits, _Alloc>& __lhs, - const basic_string<_CharT, _Traits, _Alloc>& __rhs) - _GLIBCXX_NOEXCEPT - { return __lhs.compare(__rhs) >= 0; } - - /** - * @brief Test if string doesn't precede C string. - * @param __lhs String. - * @param __rhs C string. - * @return True if @a __lhs doesn't precede @a __rhs. False otherwise. - */ - template - _GLIBCXX_NODISCARD - inline bool - operator>=(const basic_string<_CharT, _Traits, _Alloc>& __lhs, - const _CharT* __rhs) - { return __lhs.compare(__rhs) >= 0; } - - /** - * @brief Test if C string doesn't precede string. - * @param __lhs C string. - * @param __rhs String. - * @return True if @a __lhs doesn't precede @a __rhs. False otherwise. - */ - template - _GLIBCXX_NODISCARD - inline bool - operator>=(const _CharT* __lhs, - const basic_string<_CharT, _Traits, _Alloc>& __rhs) - { return __rhs.compare(__lhs) <= 0; } -#endif // three-way comparison - - /** - * @brief Swap contents of two strings. - * @param __lhs First string. - * @param __rhs Second string. - * - * Exchanges the contents of @a __lhs and @a __rhs in constant time. - */ - template - _GLIBCXX20_CONSTEXPR - inline void - swap(basic_string<_CharT, _Traits, _Alloc>& __lhs, - basic_string<_CharT, _Traits, _Alloc>& __rhs) - _GLIBCXX_NOEXCEPT_IF(noexcept(__lhs.swap(__rhs))) - { __lhs.swap(__rhs); } - - - /** - * @brief Read stream into a string. - * @param __is Input stream. - * @param __str Buffer to store into. - * @return Reference to the input stream. - * - * Stores characters from @a __is into @a __str until whitespace is - * found, the end of the stream is encountered, or str.max_size() - * is reached. If is.width() is non-zero, that is the limit on the - * number of characters stored into @a __str. Any previous - * contents of @a __str are erased. - */ - template - basic_istream<_CharT, _Traits>& - operator>>(basic_istream<_CharT, _Traits>& __is, - basic_string<_CharT, _Traits, _Alloc>& __str); - - template<> - basic_istream& - operator>>(basic_istream& __is, basic_string& __str); - - /** - * @brief Write string to a stream. - * @param __os Output stream. - * @param __str String to write out. - * @return Reference to the output stream. - * - * Output characters of @a __str into os following the same rules as for - * writing a C string. - */ - template - inline basic_ostream<_CharT, _Traits>& - operator<<(basic_ostream<_CharT, _Traits>& __os, - const basic_string<_CharT, _Traits, _Alloc>& __str) - { - // _GLIBCXX_RESOLVE_LIB_DEFECTS - // 586. string inserter not a formatted function - return __ostream_insert(__os, __str.data(), __str.size()); - } - - /** - * @brief Read a line from stream into a string. - * @param __is Input stream. - * @param __str Buffer to store into. - * @param __delim Character marking end of line. - * @return Reference to the input stream. - * - * Stores characters from @a __is into @a __str until @a __delim is - * found, the end of the stream is encountered, or str.max_size() - * is reached. Any previous contents of @a __str are erased. If - * @a __delim is encountered, it is extracted but not stored into - * @a __str. - */ - template - basic_istream<_CharT, _Traits>& - getline(basic_istream<_CharT, _Traits>& __is, - basic_string<_CharT, _Traits, _Alloc>& __str, _CharT __delim); - - /** - * @brief Read a line from stream into a string. - * @param __is Input stream. - * @param __str Buffer to store into. - * @return Reference to the input stream. - * - * Stores characters from is into @a __str until '\n' is - * found, the end of the stream is encountered, or str.max_size() - * is reached. Any previous contents of @a __str are erased. If - * end of line is encountered, it is extracted but not stored into - * @a __str. - */ - template - inline basic_istream<_CharT, _Traits>& - getline(basic_istream<_CharT, _Traits>& __is, - basic_string<_CharT, _Traits, _Alloc>& __str) - { return std::getline(__is, __str, __is.widen('\n')); } - -#if __cplusplus >= 201103L - /// Read a line from an rvalue stream into a string. - template - inline basic_istream<_CharT, _Traits>& - getline(basic_istream<_CharT, _Traits>&& __is, - basic_string<_CharT, _Traits, _Alloc>& __str, _CharT __delim) - { return std::getline(__is, __str, __delim); } - - /// Read a line from an rvalue stream into a string. - template - inline basic_istream<_CharT, _Traits>& - getline(basic_istream<_CharT, _Traits>&& __is, - basic_string<_CharT, _Traits, _Alloc>& __str) - { return std::getline(__is, __str); } -#endif - - template<> - basic_istream& - getline(basic_istream& __in, basic_string& __str, - char __delim); - -#ifdef _GLIBCXX_USE_WCHAR_T - template<> - basic_istream& - getline(basic_istream& __in, basic_string& __str, - wchar_t __delim); -#endif - -_GLIBCXX_END_NAMESPACE_VERSION -} // namespace - -#if __cplusplus >= 201103L - -#include -#include - -namespace std _GLIBCXX_VISIBILITY(default) -{ -_GLIBCXX_BEGIN_NAMESPACE_VERSION -_GLIBCXX_BEGIN_NAMESPACE_CXX11 - -#if _GLIBCXX_USE_C99_STDLIB - // 21.4 Numeric Conversions [string.conversions]. - inline int - stoi(const string& __str, size_t* __idx = 0, int __base = 10) - { return __gnu_cxx::__stoa(&std::strtol, "stoi", __str.c_str(), - __idx, __base); } - - inline long - stol(const string& __str, size_t* __idx = 0, int __base = 10) - { return __gnu_cxx::__stoa(&std::strtol, "stol", __str.c_str(), - __idx, __base); } - - inline unsigned long - stoul(const string& __str, size_t* __idx = 0, int __base = 10) - { return __gnu_cxx::__stoa(&std::strtoul, "stoul", __str.c_str(), - __idx, __base); } - - inline long long - stoll(const string& __str, size_t* __idx = 0, int __base = 10) - { return __gnu_cxx::__stoa(&std::strtoll, "stoll", __str.c_str(), - __idx, __base); } - - inline unsigned long long - stoull(const string& __str, size_t* __idx = 0, int __base = 10) - { return __gnu_cxx::__stoa(&std::strtoull, "stoull", __str.c_str(), - __idx, __base); } - - // NB: strtof vs strtod. - inline float - stof(const string& __str, size_t* __idx = 0) - { return __gnu_cxx::__stoa(&std::strtof, "stof", __str.c_str(), __idx); } - - inline double - stod(const string& __str, size_t* __idx = 0) - { return __gnu_cxx::__stoa(&std::strtod, "stod", __str.c_str(), __idx); } - - inline long double - stold(const string& __str, size_t* __idx = 0) - { return __gnu_cxx::__stoa(&std::strtold, "stold", __str.c_str(), __idx); } -#endif // _GLIBCXX_USE_C99_STDLIB - - // DR 1261. Insufficent overloads for to_string / to_wstring - - _GLIBCXX_NODISCARD - inline string - to_string(int __val) -#if _GLIBCXX_USE_CXX11_ABI && (__CHAR_BIT__ * __SIZEOF_INT__) <= 32 - noexcept // any 32-bit value fits in the SSO buffer -#endif - { - const bool __neg = __val < 0; - const unsigned __uval = __neg ? (unsigned)~__val + 1u : __val; - const auto __len = __detail::__to_chars_len(__uval); - string __str(__neg + __len, '-'); - __detail::__to_chars_10_impl(&__str[__neg], __len, __uval); - return __str; - } - - _GLIBCXX_NODISCARD - inline string - to_string(unsigned __val) -#if _GLIBCXX_USE_CXX11_ABI && (__CHAR_BIT__ * __SIZEOF_INT__) <= 32 - noexcept // any 32-bit value fits in the SSO buffer -#endif - { - string __str(__detail::__to_chars_len(__val), '\0'); - __detail::__to_chars_10_impl(&__str[0], __str.size(), __val); - return __str; - } - - _GLIBCXX_NODISCARD - inline string - to_string(long __val) -#if _GLIBCXX_USE_CXX11_ABI && (__CHAR_BIT__ * __SIZEOF_LONG__) <= 32 - noexcept // any 32-bit value fits in the SSO buffer -#endif - { - const bool __neg = __val < 0; - const unsigned long __uval = __neg ? (unsigned long)~__val + 1ul : __val; - const auto __len = __detail::__to_chars_len(__uval); - string __str(__neg + __len, '-'); - __detail::__to_chars_10_impl(&__str[__neg], __len, __uval); - return __str; - } - - _GLIBCXX_NODISCARD - inline string - to_string(unsigned long __val) -#if _GLIBCXX_USE_CXX11_ABI && (__CHAR_BIT__ * __SIZEOF_LONG__) <= 32 - noexcept // any 32-bit value fits in the SSO buffer -#endif - { - string __str(__detail::__to_chars_len(__val), '\0'); - __detail::__to_chars_10_impl(&__str[0], __str.size(), __val); - return __str; - } - - _GLIBCXX_NODISCARD - inline string - to_string(long long __val) - { - const bool __neg = __val < 0; - const unsigned long long __uval - = __neg ? (unsigned long long)~__val + 1ull : __val; - const auto __len = __detail::__to_chars_len(__uval); - string __str(__neg + __len, '-'); - __detail::__to_chars_10_impl(&__str[__neg], __len, __uval); - return __str; - } - - _GLIBCXX_NODISCARD - inline string - to_string(unsigned long long __val) - { - string __str(__detail::__to_chars_len(__val), '\0'); - __detail::__to_chars_10_impl(&__str[0], __str.size(), __val); - return __str; - } - -#if _GLIBCXX_USE_C99_STDIO - // NB: (v)snprintf vs sprintf. - - _GLIBCXX_NODISCARD - inline string - to_string(float __val) - { - const int __n = - __gnu_cxx::__numeric_traits::__max_exponent10 + 20; - return __gnu_cxx::__to_xstring(&std::vsnprintf, __n, - "%f", __val); - } - - _GLIBCXX_NODISCARD - inline string - to_string(double __val) - { - const int __n = - __gnu_cxx::__numeric_traits::__max_exponent10 + 20; - return __gnu_cxx::__to_xstring(&std::vsnprintf, __n, - "%f", __val); - } - - _GLIBCXX_NODISCARD - inline string - to_string(long double __val) - { - const int __n = - __gnu_cxx::__numeric_traits::__max_exponent10 + 20; - return __gnu_cxx::__to_xstring(&std::vsnprintf, __n, - "%Lf", __val); - } -#endif // _GLIBCXX_USE_C99_STDIO - -#if defined(_GLIBCXX_USE_WCHAR_T) && _GLIBCXX_USE_C99_WCHAR - inline int - stoi(const wstring& __str, size_t* __idx = 0, int __base = 10) - { return __gnu_cxx::__stoa(&std::wcstol, "stoi", __str.c_str(), - __idx, __base); } - - inline long - stol(const wstring& __str, size_t* __idx = 0, int __base = 10) - { return __gnu_cxx::__stoa(&std::wcstol, "stol", __str.c_str(), - __idx, __base); } - - inline unsigned long - stoul(const wstring& __str, size_t* __idx = 0, int __base = 10) - { return __gnu_cxx::__stoa(&std::wcstoul, "stoul", __str.c_str(), - __idx, __base); } - - inline long long - stoll(const wstring& __str, size_t* __idx = 0, int __base = 10) - { return __gnu_cxx::__stoa(&std::wcstoll, "stoll", __str.c_str(), - __idx, __base); } - - inline unsigned long long - stoull(const wstring& __str, size_t* __idx = 0, int __base = 10) - { return __gnu_cxx::__stoa(&std::wcstoull, "stoull", __str.c_str(), - __idx, __base); } - - // NB: wcstof vs wcstod. - inline float - stof(const wstring& __str, size_t* __idx = 0) - { return __gnu_cxx::__stoa(&std::wcstof, "stof", __str.c_str(), __idx); } - - inline double - stod(const wstring& __str, size_t* __idx = 0) - { return __gnu_cxx::__stoa(&std::wcstod, "stod", __str.c_str(), __idx); } - - inline long double - stold(const wstring& __str, size_t* __idx = 0) - { return __gnu_cxx::__stoa(&std::wcstold, "stold", __str.c_str(), __idx); } - -#ifndef _GLIBCXX_HAVE_BROKEN_VSWPRINTF - // DR 1261. - _GLIBCXX_NODISCARD - inline wstring - to_wstring(int __val) - { return __gnu_cxx::__to_xstring(&std::vswprintf, 4 * sizeof(int), - L"%d", __val); } - - _GLIBCXX_NODISCARD - inline wstring - to_wstring(unsigned __val) - { return __gnu_cxx::__to_xstring(&std::vswprintf, - 4 * sizeof(unsigned), - L"%u", __val); } - - _GLIBCXX_NODISCARD - inline wstring - to_wstring(long __val) - { return __gnu_cxx::__to_xstring(&std::vswprintf, 4 * sizeof(long), - L"%ld", __val); } - - _GLIBCXX_NODISCARD - inline wstring - to_wstring(unsigned long __val) - { return __gnu_cxx::__to_xstring(&std::vswprintf, - 4 * sizeof(unsigned long), - L"%lu", __val); } - - _GLIBCXX_NODISCARD - inline wstring - to_wstring(long long __val) - { return __gnu_cxx::__to_xstring(&std::vswprintf, - 4 * sizeof(long long), - L"%lld", __val); } - - _GLIBCXX_NODISCARD - inline wstring - to_wstring(unsigned long long __val) - { return __gnu_cxx::__to_xstring(&std::vswprintf, - 4 * sizeof(unsigned long long), - L"%llu", __val); } - - _GLIBCXX_NODISCARD - inline wstring - to_wstring(float __val) - { - const int __n = - __gnu_cxx::__numeric_traits::__max_exponent10 + 20; - return __gnu_cxx::__to_xstring(&std::vswprintf, __n, - L"%f", __val); - } - - _GLIBCXX_NODISCARD - inline wstring - to_wstring(double __val) - { - const int __n = - __gnu_cxx::__numeric_traits::__max_exponent10 + 20; - return __gnu_cxx::__to_xstring(&std::vswprintf, __n, - L"%f", __val); - } - - _GLIBCXX_NODISCARD - inline wstring - to_wstring(long double __val) - { - const int __n = - __gnu_cxx::__numeric_traits::__max_exponent10 + 20; - return __gnu_cxx::__to_xstring(&std::vswprintf, __n, - L"%Lf", __val); - } -#endif // _GLIBCXX_HAVE_BROKEN_VSWPRINTF -#endif // _GLIBCXX_USE_WCHAR_T && _GLIBCXX_USE_C99_WCHAR - -_GLIBCXX_END_NAMESPACE_CXX11 -_GLIBCXX_END_NAMESPACE_VERSION -} // namespace - -#endif /* C++11 */ - -#if __cplusplus >= 201103L - -#include - -namespace std _GLIBCXX_VISIBILITY(default) -{ -_GLIBCXX_BEGIN_NAMESPACE_VERSION - - // _GLIBCXX_RESOLVE_LIB_DEFECTS - // 3705. Hashability shouldn't depend on basic_string's allocator - - template, _Alloc>> - struct __str_hash_base - : public __hash_base - { - [[__nodiscard__]] - size_t - operator()(const _StrT& __s) const noexcept - { return _Hash_impl::hash(__s.data(), __s.length() * sizeof(_CharT)); } - }; - -#ifndef _GLIBCXX_COMPATIBILITY_CXX0X - /// std::hash specialization for string. - template - struct hash, _Alloc>> - : public __str_hash_base - { }; - - /// std::hash specialization for wstring. - template - struct hash, _Alloc>> - : public __str_hash_base - { }; - - template - struct __is_fast_hash, - _Alloc>>> - : std::false_type - { }; -#endif /* _GLIBCXX_COMPATIBILITY_CXX0X */ - -#ifdef _GLIBCXX_USE_CHAR8_T - /// std::hash specialization for u8string. - template - struct hash, _Alloc>> - : public __str_hash_base - { }; -#endif - - /// std::hash specialization for u16string. - template - struct hash, _Alloc>> - : public __str_hash_base - { }; - - /// std::hash specialization for u32string. - template - struct hash, _Alloc>> - : public __str_hash_base - { }; - -#if ! _GLIBCXX_INLINE_VERSION - // PR libstdc++/105907 - __is_fast_hash affects unordered container ABI. - template<> struct __is_fast_hash> : std::false_type { }; - template<> struct __is_fast_hash> : std::false_type { }; - template<> struct __is_fast_hash> : std::false_type { }; - template<> struct __is_fast_hash> : std::false_type { }; -#ifdef _GLIBCXX_USE_CHAR8_T - template<> struct __is_fast_hash> : std::false_type { }; -#endif -#else - // For versioned namespace, assume every std::hash> is slow. - template - struct __is_fast_hash>> - : std::false_type - { }; -#endif - -#if __cplusplus >= 201402L - -#define __cpp_lib_string_udls 201304L - - inline namespace literals - { - inline namespace string_literals - { -#pragma GCC diagnostic push -#pragma GCC diagnostic ignored "-Wliteral-suffix" - -#if __cpp_lib_constexpr_string >= 201907L -# define _GLIBCXX_STRING_CONSTEXPR constexpr -#else -# define _GLIBCXX_STRING_CONSTEXPR -#endif - - _GLIBCXX_DEFAULT_ABI_TAG _GLIBCXX_STRING_CONSTEXPR - inline basic_string - operator""s(const char* __str, size_t __len) - { return basic_string{__str, __len}; } - - _GLIBCXX_DEFAULT_ABI_TAG _GLIBCXX_STRING_CONSTEXPR - inline basic_string - operator""s(const wchar_t* __str, size_t __len) - { return basic_string{__str, __len}; } - -#ifdef _GLIBCXX_USE_CHAR8_T - _GLIBCXX_DEFAULT_ABI_TAG _GLIBCXX_STRING_CONSTEXPR - inline basic_string - operator""s(const char8_t* __str, size_t __len) - { return basic_string{__str, __len}; } -#endif - - _GLIBCXX_DEFAULT_ABI_TAG _GLIBCXX_STRING_CONSTEXPR - inline basic_string - operator""s(const char16_t* __str, size_t __len) - { return basic_string{__str, __len}; } - - _GLIBCXX_DEFAULT_ABI_TAG _GLIBCXX_STRING_CONSTEXPR - inline basic_string - operator""s(const char32_t* __str, size_t __len) - { return basic_string{__str, __len}; } - -#undef _GLIBCXX_STRING_CONSTEXPR -#pragma GCC diagnostic pop - } // inline namespace string_literals - } // inline namespace literals - -#if __cplusplus >= 201703L - namespace __detail::__variant - { - template struct _Never_valueless_alt; // see - - // Provide the strong exception-safety guarantee when emplacing a - // basic_string into a variant, but only if moving the string cannot throw. - template - struct _Never_valueless_alt> - : __and_< - is_nothrow_move_constructible>, - is_nothrow_move_assignable> - >::type - { }; - } // namespace __detail::__variant -#endif // C++17 -#endif // C++14 - -_GLIBCXX_END_NAMESPACE_VERSION -} // namespace std - -#endif // C++11 - -#endif /* _BASIC_STRING_H */ diff --git a/.ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@c++@13.1.1@bits@basic_string.h.blob b/.ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@c++@13.1.1@bits@basic_string.h.blob deleted file mode 100644 index 992c3d98e54a8aacacb07ecfed162c3b32df6772..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 332068 zcmeFa2V4|K`#64uA}1g!8e8y0L_nGi6%i2?dj(5u=W!fz3U_#Sh}gTv-n%hsG-~W! zW9&V#ca27)QDf{W)^&c*%K&Zos9ZGE7YIoe4hG%V5P%Mowx}E3H)@(O$31 zFzU@wS@1`sE<0PM)MaXoy*{*5M6Su)2U;7EW-#k@R+Bleo@?KgZFJT-G7?$(ET}6z zHw`*M#!j5unwPD|Z?=tGcuf4pHljMc*=#gPmA2&}-!kfRHQLNflTHimm;Roug!7@t zZPLIDl7`{wcG@r<&YFM2EO{2IK1%~#FqtKCrt7uV9JAgcIR>Ot_!E{WjV3GAVudNz zSS7P+Em;x0^so*Lx+pSSIM=3M=Zo7;D$KTKnDyE;Se;s3A5E6Q7?GA|)MgoUk`6s?2)fk~OWo4O+&a>r`@rcOPWoXIpJ4`CuAw!nlVi+Jj?IcHPo>gzj)n-e6NwC#) z!lZtpkAkg3wfmXYo;MJilDKmsx>2{BWv-97Mhr*Psc-;(r2l7aSJ{OWA3yI z(CC6@fJ|AIsb7Hzz-hMxYI8Elesx$q!p6cj%+;FH0P!2sU_c96Z3LA#nM}cA z<7Ua}iW6kjnM{2QdX2%PNzXCr@Mf_%sbA3SG<|ALuPE|=$rcN;l22KznXp`qY_lXw z2wJ4kq-UF)H3Cp-lnw^BK%_|)Xu&-p_}*&P0^yceHG+OPoo;90E=+T5#W-HW|9bqAkf5ursF1&=a!lfX4-6LUM}O9ji{4|1b)Q z0IrLa&aXG78MM;0#{TOZzI0NNU{&Q$Lh-V)00)FIIiZj)b{;Qm10Z2nm=1Pa30vrl zB@(pPV(4YjJDX&@xbfUMOpc%ejV9kJ><5ykmHDn_j(?E+Hf3ibaO+}fNanHssu{Rd zy+*6k=`GT@&%S_gzzLs5(3W&rJgJ0g71R`#=BDPPORQbNh!RR_NGo{bkun@(kgnC~ zthLZ^7dEZHGJmE7#4X|$;YZhE|t3tA<#KA4;c zA_NxHC#U=dm0DomNp^yK$;Od5P&EeuH-bv&(o(K-9!fA=&Lu5DCekwCMtL&gfa~Ze z0h*4$s9JK6NG2A;0iQ@_$Dxyguj1K(Z3g@Z=9>F~T!7hf$)OXJ5{#k-*4fZ97$ebTB6%+uZ35@3794uXS zPQIL=;5%d{b^ZHmQw^|W3|0-_Ey*RzPCVhVBP^gT(x*l6+sk2BNURcIn4BseNOo>H znR5Z95HjFUYd*M!)Bq??7m)#qGQBwhRApvqy_^6S6UY0Lxr)%5b%Ymk7+R7w(}b1DrkvEw0>u<8 zEEK%M@Uk*!GhtNBnoNU5O2Z=nCbjX3V22s9uZi6ZJjsw2$%%lh&jjm$WM9Z9 z$*P9wDG-g5+&~BcO%{MFSbXpNldN)D^1XdG@#Iow9v5(!T(%F6eaufEsWoFGjiWx2 z)RhZbrSwc~FX@eJ-@Y8HA(NBvq?;z9l^PAOpc)WaHC8QYg2OcPO~9su9M{^w>Tayc4p&GlJV7SXP;5fMe4k`ji99GdX0GpeMTBnM5`wBTOD&1t(*;q)Amd=cj5{+){EU#E+pW-Z=1Epok zsGa3?DyJ~zoR+a);Y{m5XVsIe6lL4=FEt`$QQlQ$)m3$5^}V~x`g>26O;^p4?eRV+ zJEHns_NO=VUM6E?a&IO|E@K+QZ*TZD!mky6hr#b)g^U@l@MdPh?_Bu32fx260+>JG z_b>SSJ^ad*-i(`4#(b&_V7`RkP4L^xO~!og=FO~!-;MA)$X&*abq`=3!tWz@Z{|7t z7WD{VHhIXHEgs&?VfeiVf6F~(OfgSyCK7(@!*472?Et?w;a5>8fNAC>V?OipW|qS5 zHLn1sx=O~xtGpQl{N||wm~Y_sTlhur>sL5{>0DUG7~ppU{O*TePj4Ah$~%A=2){ew zw~r6B(NppEU@-Jid3&Kk5}$@1c* zHP!1VnZrfOz!Qr)Z<`w9zx&K7B@>hYfE0MTp@;o0`(!TH8987!0Q)26T5{4`?X_SG zWNSu^VtyFq@zbVpn2Z^8YLKzju)AYpF_z@^Y8+0-1IUyGiZXo&5%HYoA_W1#tHS_M zR1H^uNcL*sY`s{2sIjUw8e^!eWRfr2R# zEDFG)igM`gjsSi61#U$JL)9_unK^XXt}UcP`u^EwwJDpmO{hUC$$<>#_|gFB$?OG}pA-SW#8 zwCG5;S53alc#7s7KiGCm*S)on|L)&B1K;~BMJN8;HO*Y9uB8xj#-}7aYP5fUr;}(Q zGLT-M@ksz+DjIY6nYD!B!a~wP*K?lrDaD-i2}X+wYk%=PgnlQ*&jIk9PY`+_Gc<9Z z>^__T&jawhJ@A508Rh~2e^02|;PuYBqj8hiexlY*0v;Lr$)0eFjx0EC%AGB~OuZ2- zzaO;rLS?}nz1c64rQ^nY>RSz-c)WC&b)I4H#E|rK-cfm8_?2& z%P6YO_Ss1rDo3wJH*a|A^?FqiW+iNhmG&EAC2WY5_8VfQA_aim&>Ks_@Ty+R63ACq zDtZHOJbG}a+NMLhb>j(ewW1`mS`m(3>RvpFSNrxMz%_~>W(@$-|A?M`ZqUWQ2yiVR z{x75uXFc^R}P^ocePrW;T;4lGhf}EQa zYE=1J_Ug9_k1ry?9k54tDE!e6%iD+f$3Jez0RsUTDgMw-g)gAfa^er|RD=Prkr)~5 zf}Fb)AyWH(#kv-Ik#S5q9bDMMK}tV(f{@(2tL3=IS03XQa8r@^!}y8Kb9WRYs2Y91YxYAf6m3TB;L4No{( z`#$n=jE_8oto@=>PZ@q(H2qWBYb7f2Swg`0Z@z4ZZvHT?b@MF$v*_UKw5>Vy-o(n8 zdvZT`0#N_X_otK{l^!G*koPn4%Kd3BzmQfWM}PL*akG4f(3uuGK|dim=F-`-1fT{#FETI#z0re?`>#li~x zby=74KQuY_RLOYD74X<0E^gDIQ_3D0#jBq9l`LByc^K@(+EOc&<|`1vRE;SR!EjkV z1i?ra`8x>a<)w;i&t;!(Mu$>~a#xO@HznQL07XnFasKP`-*rR}69dxAKB@IRkEX<< zv;lC}26+e)u1U5!GuOu3Yj49fbg!zlOwFbBJW=~wV{SFxu4s}k z`icmt;oIV3QaM_YOu^K1i-)H*O6u!BWXYuv6`8SmZfyaWjdr^Gj459DQJ?@z(0oF6 zhZn~wlg$I-FdG>`OwxMreTj&Uh>iz3!SY9#2oO@iXLq$c7S?ecLKf3T!|+qwl$%{s6fpFDiuDjUt&b(>()J++H_DN_X=(P@<#CF zR-<>(tofthXuoa4zMIgYIiFj>_{&xBloD+o00hAkkG__7W)9q}-%&6>i6h@VGwd(( zxuA+*kYj`8fno-yvfP8IEH8tm#2jaWs_$AWsA9*NKfdidIwzX1Le7|gB%0)5A~u74 zjpD=SE51T*zth|bG^uElV^`+ReU4NURd465tzFwG*;tl*;8V}-O{}!667_7cp~q>( zkZiQxJ4^E*Za#y2E4FbfTK>WhkNMR{&a_OL0ZncIfDm}>q#+CBv?yZG z)yGY?^zF23Iqn>j1DsZlq6}J5x&5~K2Lmb#di?8+8C&|#t2%Y z*3}&Q=a{B>+$*&8)Z=P%6!mu4vc?bZxu);UJSF<#JO8cY=GCb{v)+ild=Y*6X^e2I z2t`q1dnRbjhO@#Pcqc(FQ+A#sZzXu|qO|I)gp|PAWojX|J7gOu07DThMK~;uMsQYY z3P`r)WP(7q5u^$iZ3p%>dR=Z`?nD2%{b+6l8r^aIxWV^lJV%oU7x`UNuZ}183iXN) zyIA@DG&-r6G0JC!Kb~l6(X~+4V_LBi&B=TaZP_O)jGmrLZ8YS0WGbqe<=5?sqQ)FI z=8eJwo^s+<`UWJ2H;US#{lhSjlTieS79;?Y;K@WP#qu?YK@*w?R_T@>)~~5Oa!3?y zNB+3vx6jOLx(1CM%;)}aT=Jx2rHuzS{eG3NB41%a+cNjp7Q6m@E6APCpr*`uTy#c- z{x<}<^O;-oymptP&n4`ox#h^O|B*S~t9Gb42x{G2-FmB=fg)a+JL4+%M z*trkCE4ymM8nhM!u4u1Et*{zs*06TorP`Jsdz03xL|rSICUjU{cOyz` zJmW~alZS7kfxRNe-WxpYIW5!o-qkYad|FkZWfW+dsr2=UWpnb-!NseJZSOa94$a!5 za{uwW?)%KQWj&YOd63)wBn1lot$69TliG#StScw&zY_kZTc9m#mx$OBt(LcFf=r7# zDn}mdFpFj#@!g^me(^2%{wdML2O}eIwrTY}3je9@rN!;D&Y~4FhP3EYSXGjip<`4fe$1$39>+^L3)~C2faDPMAYOQ*e4Ec0QCJL1K{n_SCB}B9CpZapX>bC>!ZCS^> z89(q{*9qw;@yWH#^S=6K70ue9>ggrLOEvz6W>unUbJJ?JO!%!MD&O#%fu+YcNJdBF z4tDfk@r={L%8>PNzhae6PQ6UaD3I=t%ClM}FBptw4$nQ77D2XtPpwbeQ@X7bCR_D%L7 z#lFEqR#e#YJMySk_Lq8HVmP&k3cD z>8_`5cE^|KK*ZxER^}A{!3PhmN3Ls2@O$44rMqXI_KiOD9v!K>xqssv&0sX8Sa;K& z$F`~JNvksEK*FDuaaoUHfd+jkg^%566dKlbS&%0rXpp*=xG zg0qsfn~`VnhpiiwnjC@Z4g6&PlndwfqP&qW^DG;^sUifu7*lW0x!1$5*a|;fFs@za z!1Jxpot59U?N@aA1eB8zTw3EZy&AGkRBoLW-1%qvw{0K;g_WF1 z@bZHP3|4M(raq*bdcnp(tyLRa3{BGTR9K0g#Z=7-_USMTrOpm-q24siiYl%t>ANLy z`;&i@RhsnO`!yr|3sbr-Q=*-zoxBTGuTd98R{SD&>Xg?_(dw!{Zu-UVPo8MZJbNl@ z(l={I*%pQ8rDA=)^83CvVh-%=^84pSYoOsfd%rHxYkE`kg~{vKfU6ga(M4fts9M?c z(FLBPRH7OqSAX&Oob^4>xfZXMRu1@i6k0NC{>2IFX7lpFpie4%ck}bR7TX6q)(!Fw z_BuHby($@h?{?3CWOR9}88KcBtSJ2UuvW`+cGaUFME)xmr`_7lTh)}v?f$_}6q_;- zGXA=&y8E1-CD8B(j6Ub`(`vNL<_43FuN*juq8ynU(nfxo+%2lpR&;E5qkbdmf3g;Z z3?I5|&aD~@>c6^TlXhLs-=c+wB{nPnx^=7orPUPIYN3(7`TB+=wUN893S0J}F zM~h~ZdwUGU`c3-esh7DZ&02EUO|)Qc?4Pt&C7OT!SY_SiH)YY_9;*j-dEng#t&KMx zJm&Qy)pQ`VQvTJuAOqEGK}+0g6@EJ^cltQg>&>BsJwLs9o>pJlvqH_NvPQnqO4P=Z z-9*+&GZS@vcdYq^(jga7$&Pmqf6^nIPB*IGtHt}m>I1p7NeWbI=eWHi{Q6fy+b2CA zS94X}<+S=~zSTVkryf?=vd%4E%3-Pg&C0+Mi|@n1(@ z4fDEJfclNP>;7#HNgg1J}cibec(TF;=$XuffSKwIN-tHL8i@ zwMuQkUnJ#$K}C%kMfldLm6(SrtpBrj_cL!!p=#4cZ>gYiH?g#+vZo(Y*|Qv>MZum5 zCc+cbqPEBSZ~5ZM}_i^&;fkwWm4VH7|T6_9o>($=HT81ydY8K?DODe^jL&h&b3o9NM=4&SqCB#CIAmY48*S1PK^S5Bw7LcM=-p8e&_ecwXxlq2(e57NK-Cfdz&njxJ< zGBDu$lxqPY2xpI?sE?iPNb1W%Cp%PKp`JS0$&_1FFK#^Uy&w;DUp;Mc(G5PcRnY!0 zcp}l>sIy+0MbBQ5nV`Vg3B}Ki_4B$a0){^5GT~^eE8|4Km%|SC>vgSbRS_^Cuv)`C z2~`@3fa#5_8@?@7XO{?gIlN`~blHxdM8KLgpQoh$nLJnoEc@!@`c?kMiy~nA`w@Q( z{^Qm)3?wT?h6;In8S2))hpgb0VcX4uE$%W};4lEJjBBtOu5l~lDx`lbU}ezd0GJOO z*6lYuSs65s5J3=3U_%g+cmVHu(aM0@@?9B|eZTMaD!11i)ctPb0Xtr;ET@9@hrwgF zGAK~AGAK~AGAK~AGAK~AGAK~AGAK~AGAK~AGAK~AGAK}DWyID!T4h$q=4CEUu>*UQ zj}R9d3vLZ!j>C!cCY=++Hd0(|Ta#F7bAW-+*4pYTXZnCMU>`4*==6rP#S2SvZfHzq z*v5K2t65N`ec2DEST~(R`*+T*RQdBdU!&DS{j10IT{6{!>FX5(Pi?gJ`nfI}QpRm3 zJBk9QC%$O-{6g_&9Izwg>};Qt1&VT-y@DCDSBN+#1qyR|xMMyS(PiXxm)85I@%I$i znNzr3IvLV4eN}e&8=ubtmIb)P{}KYP=Ny6iTf)@0CRSdA4o5ATwk&bSEN^i4ssT@J zekjR|QJ`o?QlMx@QlMx@QlMx@QlMx@QlMx@QlMx@QlM~0Lc@dMi4^;c&G1bEzsS~N z&(9gY*#H!KeiBsgPDg++2m7GHeSo;IW87)@J?$Gw(i}b@X^y(#G+bN;gAU-; zNdA4ep=8z4;0+@?Bpjh@SP<4L&M8AlunOfxtAx0Sizpk)p$Crt?2-ojrwP`w2^{z^ z|7nDDU*A;dj{=?Pd90Z~)4UI=Qn_71wYb0@3V0O+Pq^4Sjso9JI`I3~iPQQCNa={d zznmCx>%um!gQV#kCri>+6BorS1UuboG_ZLDw)Eg=XkDV88$2aR>l#41m7j;KQG0dO zYB5zKv5b2)W+K7(@ly=d}93CnR*A~E^eH@AwtMGHIhe-blC-qw?8=9dUh4|KM5H@}MB)q0aX zA_;5`jco1*K9J2Wp6=hVA~qg30DuIrg5w&%Ccp6*sMiy_-$zYtLq01ysOBh;u@>YwjJ*0FBGi~UjoXhkbz z?|vUQK4r9W6xUSM_3-;6+HC0iG0U7KWG*gtPULbiH*5{UijmC_2OA)c+YEIf9nWos zNgbvS%k&)Vhu#|lpIrK?)*uDE3WCROGf<$zW{@*&eVfA5oFI>k%yFI0-JKTfViP4e z2~8^vrxDg@bNV}~P=wwxpwBR2H*|?=Y%Vn#jnRcHSUpTcU06>#%u5henH#Dwvr?hA z2X;py*;m)%w!Wxe9A!jIZ?mRr>M2xQel0g?@S9t#(ES*gjmKUgMCg75=_g)6GEe3V zoN+kg9!rqyS8$%;D-Sk($TNUBBLU44i2=Q;3C!f*Lv0i}l|8*(;Fw z*^78LqhChkJT2dU%xV@pW9H_kPZz$Z*WvIP)Yk3zhFYEOUqBrm&F);Rv!WjAQfB!3 zO+}Zy{nW|g*elyTthc3UTZieQrx1jzCd5H8?^GE^*+EjT&Gd)W zHbhUM1(Rj9Qn*=4)ME6rz=T#eOQVyM>uuX{>C_37*{yHl>iAi|$-w+4XI_D;%q#Gr z!Fqh0Rw%LVWXgetufOTAZWM(-V3|8)Lv6Zfh~$6Z_$&HCu2l3hb@gf6UwS4Ya0gHDyux>efj10b0QH<{6j9W z$mqj<`X;?QrrjV4Y*6?-ko z9Q3D?QQsn!tas&FPw6jf_`X+gzFw5e2VZ3eLkd+E*UICXS5{tu{rJm@b#b=jWi zOf6V32wkF?uo}&p0V+a{1A!ET3jw8WnmSbvJcC|MG$Ej?i-xRN6R9_tSrsHy1+RJb z-bz1~PnFtqP}qVN4(ryi9<32}WQ1^-oKjQ|njVOS*N<0^nn7$3YdS%f2})&t09a+J zB?~q#)(K(-5q4z^B}xFSALaC{@IuRV5trsd;z1|V&893{ds3hTJ^6;aYNTIczhlic zag~5hHZ>3QxtVYT7WCXiy=hw$XOnjG&=}7SM?z%5Km>x}&xfnQaQD}fWQ`#pEoP9GngMN%^kF?yl+=xHu=Aj`+Tqf2Rh$T5;6Fb^t=W zv4B$GZ60FVQfYMi+d!}$9SDJ#xWfUlQt`0ywt~avRyn)zwm|w@IhN^_XkyOY?^U&% z1fkuBe;%w~H1rU9^0NL8bbHqsPiDKk7(6ABNV20qkz_}KBFT;dMUou_iX=M<6iIdz zD3t8pv+}*$XLBE%svJnoYrvcyS=?oz$8qI$RAXPQ#rJ(%x5e_Cgb>J`WD*}7;!e!* zXZ^@ryDToUNFM#BnYa1N1Jy=J&nIuk2Ns}}Ef{5pCMh?KB6&atEO{2gz?8zxGT^ISCM){cDRlCmW+lFw3NwvbZpJd|_BRV1B#W0|Ib*g;l}DV;J#EJKOUN*1`*fsrjRkI{iH#rA~pp zw&-!B6Ll)YX(cFHSj?zax6a8*#fVT)3M5>N$}xSQrD29~IU8x@zC?Oy(&=){*mem` zQh|X8?2ow3HhRDgDrpChC)^Ue28kSv5iookaI%WCG!lvi)PfEcP|?-J4T4p z{DEbbAaIdn?3F&i>ygH4G~!S*oYKd6DJYNwG?kM(9JUuMYY3Zx*$2Q!Ks^$gt62<3 zcu6^&lP0ICNkb3+k$CRQZ|*&m7&V*hDDl#aH#((kAS)KQYhiLF_O0qe_N{R1=)mSl zm*_|DNp%PpZCOo>-v7!@Bl}9nZ6VBk@|-HWBV5`-+)lIKL-tz;P8U8a_rNdeRw`QD zr%m6_d+e{o?wm&u6X21mB-uH?k@RHPIrApU>sAXIxk+N0U04IoR-u>|vQrw2=HJ_ZeA zgh`zts8Hby+d4(IDjT*1CIrN(f|tp;1n+BK#hspk+I$=D{o|>TYh)aU`&ZPv?T^y? z9i`&#e?WE3t|Q^9vB#GpuM3+_uO{g6YH~Wg8j!B#+YQj20v#`U@cA!&iz(5$YVFr; zuCx7?0$v5dW2e)jzyfr74StNeGe4)~To+p?v6;AY&<-00>)E{J%rpr2G0meC*#=V~ zJ=;UD4U+X%ZiT?Yh8nD(6DOqEshFJtYl?0Xj3I$l6!H-5Ifo}beka66z(b^9Be9`nHXQ-mYHQldIdpA86?wWk>=lYv99 z;#`31xOnmuy#bY%qg94)r({MnUnOT|dicQ;geufIyz2hM=<~dQCTD6Z!{8y2575g} zMdjP~dQaq*vW>aNmqfT~U->YVGpljt52S}s1xg61CX#%Z%@c|>J%!}Vd~gh!Uj+1Q zfCA@1dQp)YHikAC8Y-G|f%Gn7-iTnybIj4;O)4Ro^2>+yU;RMlh|_}rs{^K9m~Wo)BxvypDrm7# zf(`R1C{GU;>lNqv_Sv@QS>I=oI-P53KH79pm_uuvsnaF2>77E%-zDt%MTI`|?ecK{ zwX9O;#g1KHw>i4@HJbdi{P9@hv$rUu;h>wFJ?a&6XDr@v@Yre7DNv+Mr$CW5odQKU zbG?f(x!#i6^qM95wtG^=XTXP|S7LkpAVvBIC@DZPg_E$nPO%}_d2Jd)Y<4p7%ymBK z6*rMXUbu)br_qV-kL=g%JYiPA>H_T|i%@y}9J|5U0#rXJsZ<2jXAY>hV3`tT9FVr~ z3;`&VKx3<6{r~Z@Bw{*P+_=pEQUQ#C0T@MABTb05h>{bGj}?y~Jd?M$*<_$#twL$K zxmj}0%BHq_7ImdwptZtAAuDjC+-JjKr3)JdqJ-c8!1FDE*ZPMh-A222U93Lv(5Omi z^k*#(TzWjP1WV0*fJXWNy~LVrZ;}QBFIvBPSm4X4_j&%)4Fwx-o_uT$tctFky#Iam z$cs}PAqr+KoFrK58HQ5Y4DKI%ZYt~K%tcre*&LNodH9vbbhZily-k}sI^bUnwz2V8U&&dLXIXOj!HZ(@JEb~$1-=7Aj z2Q#s2h^vDyl~cl}7tV|j_g!D`oblz{cYPpT4BU5lT-2UDDJpfwi7?UpRuke7LsdW_ zu)FX*Q@|eC4mGrmK9FBoA;-z`aqtcHJQMx|#aYhv5n@Ee zn!!Ktuv2@uN3Ps13$c>ZGg!6*SPloHC|V;thswt9;%~G3o!a@qD7$k}r4LkDnHXknh8DZ6 z8~urAR7d3LleF^pyAa%!+Z4YHDjGljx~|dx=BAK9g$~;cJHNY>k2=JUgk3a}+fgGR zJ%MwG4;#0+OuOBQ3Fz_o)3++_IP8atkG@`V+4Gf&sFwfXgiAfj{^H4e4i533+dITl zpb+Umu8#27ImA<-DCc-+%y_RrG_735nj5p3y95u8_o@NF7%_IEKw)uiBD37$RU<3- z760FyNE>fPPMBkRO$t66*N0Au1|~woO-c_)_ku}DhATnIMGfQ#Cg<&ocObbw793UZ zakX?X?E-57%mUU%Y*jnaa+?}oaynOKb}HL@f+w`F_qvh!oUMxQTSIjr090nO2?OOaRiJqh^BgVDp9 z(A%#G3KUKiaK&1YTAQ#Smd&3v6{3Y zniLEVff0xO(=R>L&K^%)1k_>RB%n#eR~AP`hElU4#&~$L;BsF*h1n()a1yrxSq%uz zX-EU_Hd2ooDgsXks1bY{)LhgF^5e&p2H)b+ek8Ur69DM|E?p7Q6}fZ>q(iuL1f(Ol zbahBq=hC$xU5iWCg>+pmy%EwIx%4(jZ{yP6Li$@Sy${m+xb$I2ALi2EL;8CzeHzlI zx%7ERpJ&r3=w_v9k2mD~MAerb$P)F$`||2;^^nr5{DjS;W--Vk@td-#6Fc?G=T*J| z`7{S+ADZ%H{G$KOZ7qR!*+qck<*|GuyVYUcar{gWZ0;a#qgRA<*az`5S>S4B$j%f} zVPG8SLCOCfXOoWzXX9^ZGwlu5wjBTa91s=uSOJjwgXoCYS0p;+W&^;8IT9%EfX>s8?-x5i6#@6evW%kgGF1 zUF>tRKw(Y}RWo^}=-T>9jLrNc+}!x&AQ7|++FO86qrp`88QdN4nHy^=>smUCzg%QF)mn&r1~1OrkGdr1(VSWYh>sHQU56^Y{$#PhfN0vjs8 z45~ZOD1hBjtS+O?fV$xV3T%N)BYXt@sEyHAk>$-fhQRIhyr(TRGYNz!GJk4vJqKup zz{LwZoN(!I=ql8lrPmt4vlWb|#2X9RorU?5Xkx^?JgjendnwNzQHK1OB6sooYf4Nq z;bK(oq8EGfH+2`Hhr{CIIqRkK{6Lh!pH8^a>?;L|-GGl|0E-2C3xVgkK-dJ%3E<#R z#42;B^RaEQ;E!Pa6a*FGathx;S+zQma9gcBk>SW2>9%=k^D zO<*Gn3I>5(YE48vgC#Q8kOuMkL$UY;F3%Cz=NV5v=)VAhYloYxz~BJ>hwukjp(M5( zJ08HoVud2@04%Tu#ylLZp`XE&18v6}jN1EYCe~%$3_MmEEGY$Auwu==AG~@TLvy#) ziJM$xe>WL0TyO^f7?an5F&68<)r*59Nwp2dLnsp?M;?QkbZT*X^&}30 zPCowhzI^WSp)Rf+3B2_m)tg94gBUBY9)Ez&I8NkcA#dhoA=a$&7o?d&AE;T8@*4f` zu^(s&Kf`jJF++bYxq?Y?=3iVpt#+2$?dcA~<{ zzX|}u@S-I$mI=NgFVoRPw8m!(6@$GIh`!2;7&6~~)@Tgm@BqEz z%bC~-nop2WH0+2-Sr>4S2|%52n99R;DsoTP1D* zAuTEdH;<9q$ME3;=2J+2swhX&J(Vh^r!t77jY>Dh2-oG|JiFce;9=u-)B-|K%OjY; z6Cs_*rMa7pFdX&$^^XIi2PFwkAh#a%IL2D{RXuc~q;H~n;1@KqCYm#FfvN41Mt3O} ztVCm?eqJ_j&wGDV^Gf*G^QBMKLV2yuFL|;cJD&2zpWg5I!)xs^PcWO|%j5{+#8Mx< zqXMV#MREj$6=Gpdvp5a#EiMnF3-BkAKVA78WCvVIKFZD=mgPfbDWkxh0skWh(iL!v z6}icZ45c7?Kbo^ARZ(M2&PX;hK8@4&&X`Ftp5K;0b)R)f^lkF~2s#m4^sHN8r?0s@ zNPo8V!t}_a(`gyFwC>DhS@}wbxKDxy-O{+0W0#NEOmn!SBFmm1ar<(*JCb$m-t^w1 z!)?*Q?+1HiK05q8s(>f?C;@sl-d{ zho>Q^-gYR>MZ!qwJ?7ToJ$V zU2Kob%ax)CVZC;zj;WDu1aMv>I4*2Bq{kEz#IJ16`639W6Hg&$z$VK|>x3s~qn2PM zfIH0iuQ6l7Z38TuBmV`P5coBx4FOpZS78$uDBtFk%VXtgQ5h$yE?$7Z++)5DS(NXo z%CmAfBm#w2Q^#|Dm(+dHu0EE;|2uvYFn(3Tx%mWcuOMa*Z(d%ACLO@T3nL*G*J;<_ z4a6w;5KfOM=bRj=@ilJl8y7t=HEcpuI@F?)nnO}yt z?0)$R0f#rYXSKX>`(s;z29c%u;w{bj{uadA!3-8i<#7BUmJJcufeS7L7pIX@GUC?U z10sg>;G&0ghqOT|dI*0so5lrEYi)9#x{}sx)_#D4B;LMKT05s=9e4yt764@%kLS2n zV5A`7UR@x9z-_`io??Y&oa3EiuoEyffZ+hvGT$WP$Y47@N+l~UzKO9a=!+>EfwdFd zad3fGCTqaRfI->^v-u+3JA?6DU4Z*j_UJ3aH3w02Vshcu&*N9$X9- z(i3(Ak*~6qf|nHz%7Xjps`IaNhHey+xc22#zKICtQ-ikkfDVrH?X=g^;-B#v}(fD!CJs9b-Q(oW)qMZ za5Y0e!+BYs{`t=5~WA?S-=tqFgO zHmpF?3r*35Kc060^^Cp0qFL|MmxY;B9|b(c#3HfI$B)s$Wzj;Bm`Q^uF=_TuVkl7L ztxka=zjg`~<<$G6FnXVkVsuS`LUaweT+P`FBG2@ajy#j-7uN8rxt&@Gk^G0LZ>jZ= zhN}|ba;$oVkc_q9;`&-3edDu;F_5mUOtJ|r-~^66$VK)j-pyOY%&<5RYhKkt?HK=hc2gk-L08* z_GhQ}2X^nXV2V|iz+Zx)K-OrdKHp$nf-GSl3{;E566@;%MH5dhnZ?vVpPIy^>E zC{j)$rO_NEts=6{`T>-EEITtGTtr*y$`fUyv10RYP zEkzF;P{{*=i;@7NM4{6O(w+R;l5{$x)48-6(q=9_6w*Vv^f*Y5W7DWsmwTQ|I?o1s zNm^{I5Y5}H- zz5;$DaIA(3FQf{4Y3^@HUu>@hUJon_21;>3Xd`~#L72NdP8@`nTc9J5Q-L8Xdd|^Diyx514i&&5%Y^&XsANVs|d8~^3M)}>AChiX_ zp=%YEZmChZS~^;FyvOv$Kly#@$y|jnqE|iR#12^$C^UqAKu#_ssaOSn-7|){?pa$* z@hMP9@yW)Np)Y(34PUTpSP|h~`Y@91EN(=>vKMDe9R|AcVVp5_D5OU@HKvki5|n+n z(Fa1r@%-_pxL|j1wo_i#ac=SYSSzb&-N2HtZDqWSgffdr_7Tb~bmfu&g-}JN){KKo zlCx&G65crn+`js04Vl_hk-sUXoSdivWiYkN0*VUJC9yEZzQAi0I?8(ETx;6lWMm4b)N)e9KJEu682;9OmVIO#_62Zvy z{v6B)())9Gzc3azssI0*mj3VGwB&}omVft4wK*5E(7|68Xj2lVxuaGkSB^^lbo(n* zq30O4O5bl><-vq`#>0~!M!*y(LckO#x?h37D2??aV569mL5=k^-1x40i z$=yeo;Rw0L4pc6N%+^K!~&q3_sod?#?dED9TxgwrdL&nNDBV0Zv4nscEJ8+-UOjXkQ79gw;D@vW$fja#u9@cLuwxy8fN z8YT7hAF||9h>8eV_1xM5FdOZ3_Zd^X@S{KsWXqt^+ILa!@_L@6Rmjol6U|>lmoA#j zK~R~X-=F{4Hlc|vhrUlpySr@z>5c1X_SePZr?+~3=&Y!r#R!>K;UL)9N(qxV5${|I7|9yWLG=v$FP;~+ zkS&-J9~tS&sO`VqYT(A8LiID<>%VEy6_wq4bLyFX2Pd)nH3UM?gm{M&Kk~|u4)yK< z`?cba>YqD&K6^74Tg|p@Z3NhU({dLqfL|y`^SnWcoI${MCqQVkP+544^IiP*X@KYJ zCEcgc4W>jrUoN{h1wEoA>r#hME)#ywVSWMzZ;B9Ze@Avni_hEE|B_#%W-x#*op((fSsj!Sc~ z$qBq3sHN-quz5HgGlnDoS1l^8&6zu#rP$67c@RVb!D}IayZ&D|5hBplr0L;A13n?* zD?kWX2MBTi{yG=9_}@A$LM2Vo3}O7&EUmc@Mk1UaAa06qKih>C_(x8c5F*Mp zB0T(IuWKhB9>TL9cxwah!k)#nIpVV{Z~_G+Q#j~EJc~d}1pdYt6_ArS?8y_ZJc!kx zi&vt`%1W~j?VY*{UCkz!6xmCVzEWhAOvyYf z5(Ez+wag1hzu?lZA^n<7qbi*qM>pPep$4}RxvPuF0*2sSyxnKy276bPi#rSy>wRlZP*Yd-`NE9e4Y2etvpW2;4UPJmR%k0@-TM4hokzquS zO%rNg%P$FDv_}J%ZQQ&yeRw71DEQM1&mc6d*bkwrtHkc;=g2V z7n#y)f%&`^XG)KObRwA2HBDMJOKjM=v!;FHpbmX@Y7xiRj9_IE-)+1Rsi9ip zP7D!LT0hd z4VD>!)t|G7=O1B>D*J5l)l>zV!=d|5FDxN#WV`s`_HapaIJRA{$*kWx=;g)Bs79Lq zslT2Tc0)S9Th))I3>=LbRYlD!KRlO$&P{q#w`voUS?lmCKhbhvG%s> zx?sDmYj3;em;~_+ClpBe8&-T_*$EeN#)CyV-rjaifkN#Hs(3Y^y9l*Rhuf3B3j=6qrtoe~IanRf7Y`R-i}opTw6q zI;t_6*syQM9(Qw&!Tv6m3nZyDp$%^oQ-y-<|ay$%S;DyU}s0;QQ3X zHDU9XjrkE`w@m6Sl3xM5THu5nKW_phi_^u9{VkH8tZL>LKdqJm+L-`Pb2Q?hUsj2E zYAYdedG1{Rn2LrLxqju_e#=*3AUBiWy=W5jVo9U)e`H*RP6}icd&9`}=0?!~X`{Qq zNudEtMg%$^;dn_=19n_+t^!d29+j5fwcYkdt$Ie4?`K;p1nyvN?FEsAc>^ZgRR?fG|7vF-UG zO@Zi@*te7*DX1lq<8MO<0AC{kErPfl5Ytlk`ySqXpI6z7p+mC=%O_W6kW7Nfuf7nC{T3K8U+e3T7xzQ z!((@a_6WE_djwpe&0I@PdaJz_Od3BDfFtei)gI}a3c%jt%eF`Q4gug8QE?&~dqAyZ zScpoCyV9GaKlI}5FYE08;+uN4zLP+CHZD)%B{}7VHMSa{fqz>+E~Whjmq^ff)&lJ( zafyU0B2v81tKmy38!Vui6D zUImFCz%=p)C0zWL%bc+b$F?|&>kx3E8^XEM4Tkgx&(=12&pU5Ovc|XrYIR%JUFU#H zRogSu>{tm`I#dgXtdi-aNj9zm8;fuiz$-YG0w%iPbMysLPdf(sZ+PS7!+~?h?8&gv zQ}&?dfp21^Ea`SUPD3C0vsr?B`q+aRxO6zze+SOo=46D~a&mzIxt5R|wd2166b!69 z_FjMBKBxt$ljw4&XCEGFHYlyy7UC$Mn6ywWd+`G4BS;yX>mS~#d@vOA6ZWy6$sZ2&E8nNhg_{&j+)gP^YquT{^QY}UhWa2&4+g&S(`^b z?Z=G$LBS07^n=IlycGpXhzclq$fb-oPXb)r+7f7lGD5((bM~i(#1|IS+9dun@J~H~ zx9rLBnHorI-32cAJfBJJsKQ;wIdRihc&0y)%Y0pYN9`+(_cWwd{ zTPD1JGkDSEBQ)!%jK@tDv@bGFVxY+AXm|%#*gy_$$M`Z!h`_~;BfVw`Zf*p_Koc0Z zChqKQDM^rSfqC`z^ym^$4sBY5$q0_S>?~-F)=&W2IkB@o=Wy2%mP-kpgsb1PAQl(i zl6XB+S9<7<8`I2P0Z)wBIlP&BFaV=b`l&^on{D0OkZ@ehL9A)+o+x&fqClYw6ctcM zeKP3!1n*nisDU)V%z(fMGu(pFOWlhn@oL{bxL)=(`t<6xuPeDJU(?)jG}i6)nsoMYSjp0l?yo>? zCtp1j_eqIz$Wpn)+EJ0mjA&Wz^1OTBx2FywXg!lqx6qK-pCrbiU`~{1ivDRXa+{~3oSfy9kFY3F6Zl9~b{3)mP*ys1Bw z{iGL6DbS%QEs{3RnbHJZn0qhn#p@YuC>9-3dw=qcyr%c*LX@KpesQ<1esGTp54HAKM?_QmJF3*CVT=j2~QZCGg-3V}@vTrOr zNmw<24y(rx{PkS_RT2m`Un&F#vm}bxa59N_6WbH0Q8A!K#oXC@6^lZ;j8I|M)@ua#Zza(;lV+ zPj1lyb0a!k$8JI5R-=b=24oJYg@Zju$3`Z_RS%MA`K8XT{7DET0 zHFPf|0{(EWa*zA7Je49~*4CeHew+2%2oX?sY~YL2SN3n=fTiF=YLN~L^zuYEkEkU8 z=j3<@YpyPF?D`De<4l3(C;WD6Q<*QC@QEVKN`)Uh!Dx4-(y@~}d8b181^@_wClMKr zRNvV5_MM^R^D7l80PH3X<;UF}&R=3qa;{dCWL7J}MI0Ut+=OT#Dw1=pB7j+|2t&cQ z%M4iVTXGu#Zd9n4jfzs}&f+G`+jL9a%mIS|SVMfmbra;=q)?;E*Rof?U3h#E$+-i9 zbL~+0qaT*H5A%QeV0x(kip`8j}W~ZW@_(MAtVE}9-?mHK#3(>G-xK5V-p)0w) zRc$|OaqaJuKi4Dg6ljEmyO3Cs!o}7Q1rFA{_{y0+5F@7#7cZwbq%#Z6v}s;GHeL>h z_|!R-Zd4jE3P=Mt0z!E(AN`4w(1k>slWccbQjEkzLJ}|c<2+8ylr|-afDU1NBG4b$ zXsWoPzoD*Cfu!fsl|R6?u#s!3V4^|1Q!xIrbqbF-cNGx9fBXqXs=~niVL2BtOcKvr z@&@xmB8rP8MiyT>P+q8*9Izy%@u1jzXb8%6El@2R^qd~mOo3|nw&GgYZ%an11)0li z1_}Y~0M}$~-`1r~+3~1%)TWPh+mhnIVC-u8ld7F zRUBY}`QXikjWn!bDHYreQ;V<%NwknoE7IP!xri~zkj}fN@qJA<;REN~2ncrvF)C3O zRQQ6mDDiR<+`r5%O+R>00Pv$Nz|F+?{#vRt%n!`1_RLlQh?4lD0q_Eo>W^VUQliwU>^D z)78ee5(1~|%@#d>05VR~j5|izQru?e8QYVL&;zh%{$o8zF7tFouh3aKt_PVW@L4AR zBit-_z-DF&U0`#$E$iF|7Hf?0%|Ae<;HsU#aFv|d3qG)W{d|djU=O7C`&EPXD^Zmj zd)y+AHrRtUwL4vYapxJ}hIS?(P*>#n0wvsqL+-;7JI3w<$Jl*-Dac2Dd19rNugimD z>^{GK@C=i3j9swZymsQT%V2(U(9zlWa*3D3YRBqIOzDpL&;ltnpjij?Uu;hZy%+_$ zk*LCK=*37#*Kk=+0(e>qC4hL#QAJqq(ssK4-7{aY)#*h+)-ic&%% zy*CUDGdP;9ul$zxEpi*cPu{l^p?W!r__EWQPv7os$2Ls?+%jRK32NdvU7SV@4k~X> zE|joQ_~{Qj*Pjo=N>D0~zhH-d$fch4PCWMRK)|Ffg6lgM!3}0uW4j10WLoSs&PGQm zlgf*Fyj06taRKRwoqmLr^S^f&g3BIB|4}`Y%bY08Fif-k<&%P;7YX29;Tk<$0PfNg z$H*o|K;ZYNQV4JR|He%RO5}f}QNq1;%s^BmchKGj9WJa!UzSr@5{d@JDPX;IfhSGu z*0tEn3cx{9Ze6Bo%BoAdtr#moK?)`>j!q#i?pc@Z@)9ISEoYSADWc@OMih{C_nvLr zWG;J+uuOn(ivgryTJ(RxX9W5war%+0aQlOdSi<>GwY?x9@Y=d1qx$$34nyx}k6aOV z<;ZW8FjbN7yqCS95aX2TtUy^~EN=1`+bPHCB$pF*(~UVL4}d3-P@mq)G^V#QgQTN8 zqM0a<8YEq&P&uYdAvK{&ttvknGjn}H2bNM|dR8`Rfh%NDxmPZCR@&mJyr(<@|D zyd0+07oGr7yh%<|T(0KQ=`;5i($dWbfyTdG@bKBFZXHk~UC{W7r7Jw9yU=Z_>A~B- z{F*te&$wLN6O9$Nj`Mf1v8+=^h(pi~B1$<8#!)+)$l(ffa=`gIk-yX`g6d7(oPKCc z$BpbM?8I|);FR|Y*}LDzjZYbkFUvDyn}b!|&tlAm^O;r<*`T%f z_E+FBU>U*PH$XIDZ?H*I9KMk;g12c!L`Ov9gBp&|aIivwzc*aAAzBRo zXq6hPiKR3DOs$+}411>?XoUp#YRR@R&E=e?>OCGW#fz3NdXh!N$T~BOER!rE>V#xd z@d?*XY%G~3M~5m^G-#F%LD11dpu58|<3UItb_1uh_MAf%-k;RQ$N5BIbuy_B5OU+b zIR;ot*l`N%6e@L`&XlH)4(T8amI4VJy6dH1qx)}n;@*P;jzvIr&?S}M0 zp>_OUbu(0;uO=p4-JG-ZJsP}!_NCAnXFw?256)ft!7y8D$CW>hEq}0)V1xreh7Py~ zqWybjEPa16u_*>}!5s*qkBH*G8wQe`R^zN1jxS{f@&gK2SAC7_VG4fV07h&8k!Wd$`|8+=T zXVd5lua_IrV@48kPOuglw|0(Y`-!@L@ChYQ(nxp`(eKbr<`>j8FyK%43!kL;~BifCt z;B-N?vQf)|#0ay#uONU51iMw?ka76)Rle4ry|q7aA}UtD`Nc`~*BobAu+DIyR%dw- zVZl0)bPrI5E(G_2h2Twq8G#e+AKkooz8f#%!RsKUA3Q-wZr;^$+~X^c1^uS`=IyRFp3kNO@VG7o;>$zpE;{g+h)Ov7JC=YU_1O4)Q@ky0!WA7kaQ|6n9Z>5 zH@mZPFNXq1=d&M{ZvNBb#`kQ~c)WeB5}kjm)f3SKoyKxIQuc*zmbEJwJ#Yb5ZK1T_ zT1E*rODG-!ODjAbSSlU@r|*U7+6(eJCXjm|eVE*frbOz|{VN!X$Mi*!i-#52JLA?h zbYfj-p^Bv!*6?KZ%ZtHNQcUV7P(?j+G(zLifY& z#74(SjDt%{$x$?ca|;rJ3CLqqI?r&8&@$V^x2bDE_Fac z{)&yIzWenk9U%d%N!a{`5GubR7dAf;(oK{C?l>95f7TigxSx}3K{3nO`K#Krdm#A0 zNm1^eQcSVPbzoT7ZeXz(dXZxvP=(OtHA~xv9Pa=s#MMlzWy7F{5H>5cYjk&f&=KTt z9r3(68h)hGfLW36sirIMewURUyvyn&CY-fK*c(fwwuqUy7IGG0-bp-V0Qlp-hcS7t zWc~3$Ey^Gzs7EOK2ytYk{qcz*m#2V0DM{>WkUX)wA&^n9YYA=^vG*5fWPo6^7e{}rtc~Sd@n$eaSO@ou%ouHY5phkLp&4lgzI?+wq+v;?!Z;2qVUwboOg681g=hk7rb zx$U54M+rB^%Qpy~IMh9$-PXs;28EL8QuzijD&G*1p&bBm@H7(pEf$8Hh2b#rtlv&I zc~&rff_ zBlx zweN7;K92KWaH8WEE6wxEMBGkiDrxPHD0@*_BPAEkeMazuG{0;EtBVi^ve&;jLs(r?3*l=1a)UW|ggC>Ax zjYCCPG{ocvYrrK<3&2Z20iK(%M{e*sf71idS5iMd#bZO5P|TU}fh!=&t5vH>H!+UE z6dOlClF8grwV#{cjP13$Au8H`_OK46dLy)3|9YhM7q72T%pcWzmCR@siFRb1D)MPY ze5wc21H6fQfGf1`b=qt5NG?-jvy%VNF&|5Kot z7(+~_tp|QUGDs}1x1t;?S zM=qNKYW5hypEs?|G}{#x8A9=dR|gafZ~X9?TedNq9=3It%JIz4z|K zL_&Zl@Hf-Sn1KOnJVn5ZTdD^pq+NI}0tOx3w@r3w4(qm0i_cUp-?eYk309NCg~f4n zvG-yQdB(xhl3=k<3MrUR;6`hV(Y^$|*q4Ra=sDcg*96YlU`YC$w}Lt6&E|gv=~rBu zi>*fTaCd~^G)kQ}XoXwFsaX!g&s$!^_ul*sL55V#Q!~C^y3=bD4S*7b^}SceOFL;B z%02!`-Ov9Ydv5|?)7ABl=iZxHB%x+O5F{i)5Ck#BtZIlDnutawb$@n z)8;oJ9~Is9JmI4Uzc{$j3{QFbF{n>JwK8zgjVdDFu(-dGTq&1qONHK$?8)SQMTQ*#=YOwDOnGBu}R z$yA?)Efa9;oL~$kr*F5|(7(%8DA<0DER&3(xNK^`NTynJr5E?4_UaohQzbzR~5bP<;5vTRU;WWlRQ$>j?Ck)|ID^^Sx-?(ScQrtTlSD zOKAjvmiF!lN7~JYH+Ots{Hcym8ZrTy-J6yZ%O1dr0&n6u*%aejj&}3p0+6~46XOv) zta>zun&B`?2O?-S(3_`hRRJ9=0$6W!csTFLZ?nH4qlypAbgt9tb8^L@<>0<`Jdmyu zgaFnc?>gE5)*w88karXrIA&-2=a0&EMgVJ&_h4LOHF~u`c1?`@V`G^~r5frijT}Wb z3t(jtMu=avnuK!I0wBV5qK1kg91p>&bMtX8+Z@pI@~J}HbB!9Z?!C;A&{SFw=+^r> z;i)vio?~_@fe4sXnlJ(-bb;l^zhYqmdjG80G~j|lJzxi@f2A@3En$hma$#2NDdw0; zqoe7Mo}>O~IzsH!Rxi8GZG#RvG|3~hqx2jLaTLB z=ZCG`1{y8Ct)9y{sGNDm)YN7b*=8qV^3ex_6^$Yo<$|G@ZqA^&GFFot-jcqEHTDLt zz@{_agC(S=1DB7+!brX*KbT{{uqg*;DT7;KYBr5s!Ee|tR+U4oDp3ubK`O$)Wd~6a zeHV{84m8DMV_PQt@#!IQ!07z(A1$YMB3?m<{MJ6+5M;8XI+w;3Ldw?Nv;5lRYRA|X z*x%XR(%;!bt36AmdJ7aLv}az)UzWK4HML*ye+KHHR=oQ3o}5qQ?rryos=(UWKYRYw zJP)Lz;!s`4z#R~)V5DCKHJPfUn?P?8v@oADei~GlG$d@&HbRkL^l4*#%V{G&tameo zSh|_GIxD=)tW7bfyTx4jcbm8tvot|KAH7c-SZ~^Rwqx|)1+OLxSBl}W_CS9AyD^`CjO7wQ-z8ac>fnT#ut zI~ZLZj^64V2oo-H>MG}bBJfjKn@%_ebmFQ%c{{7q+Wu7s?dLy9PhLY86!Kfw_3?7D zZS9R_KRA!NFFqoXZw(t*@#xeEd6cC(A~}bse5)eBmTInh{A*WC=b5B)kUcs_WRiXc zdXcNjqacIysoKYU1R^${dl{HX09h=0(6?IgYb$yo$V3ll#4ixR?BQ_P%OgdF2Gt&5 z4Z4@x07^yc-&4ZS(#St%FHprScGM#DC<2&1Y>v^3T)bEJwZ<=MzrcMa0z!d`U>X@I z94Q504n%dYv@TwG946y+~ zX_u*|2xCm6g>{t;23wifg7AIx6QU^jM#6R&aSyTM>6Y@e$=|2@ol*vr=E$nkRP&x; zAkYDl@f1`^P^K%}J()70BvoQ++tdS9r?>)ei3}=tVaT)SZ^n_d8O2P!6Rs^L&5li9 zIb+}#8Kl?DKABs$mw0G`0l^!WpLY8amIcL9!}hd=uI`qFt|c^8!`b#_wDd-FUT+s3 zt+xu%daHP}9w~UR)|7&`fRZBq8A#T*8@Il@CKDAg{+76fs&l7JD*HyOs@W{}bm2>z zyNnq{TqyGra{G~f3(iH596grBDQ+kx3G?y|jgzXKI6U%@Gs|j&FD@PrnIGn-{01Jf zAj3rLZt1y2(Q9qax!TT!5uZKWtH;ovn?C-pt76W^VsUB2JE4g91nc!1dJI$h@L1m|5 zlszpxyQe^(H6-JmOyp(rV=L#L@!C!<@7`8t%9TAXq|Gl$!InYk5iT-tib!uXlUX8~ zinwk6bltpRw>j>KWXfL9w5(RLcgYoz=CK;4jHMIIM)P$p6z`5C z%WKlC6$g*ECB=p;?eJ6dNhf0dw&<{S`$szyuZZ<;ZECWU)*qt($i)wrv?K2yd&>W$ zqx;+9)N!>tg{~qVqkZE)oaMfUWGrpzeEg$U{-O=3^u@{U7uPn;%pvxyUnU};h4)oE zn_pEwg?gjNe`^>*?j9_B55bY{)tHOYk?eR`^}C024*L_YlVipV3MpQSEP0Xay3~|e zfK096{?#?NNur3{3rzGEI9E}F_Mf0FhKlGW8JC#*=3q6c1A+isf^?**`4p8vbx_f! z@4xz9@Lq*y%P*&;-_x0=IZt68`<}BS2QQ#=Uu6{O)JGRLWl{9L6@4RUibcvGI#ryh zf4~=A=qtLj45QnkJA1~i?y z^i3VBCtwX%!qT}?z#4uDdUd`}totCddg80dI!1^rJKIoAg&ljCwT5Or=^LUtag`F1 zTR&z0HPR&iM?ei}un>I%b3AllS&KZ^{74+-7(O=B*0t%8?!H;@AG0({ZgQelFPoZ@ zqB^9J1W%2N$}$BmCdbs;p-E=0KdJ@>3H~(Wkc;Rqw0moDe z;iRJUTmLs5?({5_e@xU=SO3ECB;mvmpLb0S3z8*sm;UK>CH;G{yIsw1OFrK;&)L$} zNH15d)lM?iR=Zbd`6m46ZyIg<=#r_vr*LseN1R=Guh{qO==nCrJv*)Jq}2ZRTK2y5 z>$|YY-ENhox`Bx62c4!gy6k_8B(C>vI5_mkKt;owyJcgXC_1&1Tx<{0E0Q_y|^{fm+1FI&c% z+;MTbG0sDcotX)i%-z@gSjnv3pUanXBy$R^-_`oYo2Q6p&Ey|k9+zKBW-WHg*P-#u z0wirtm0KT8=$p^m(#kU&S343Fe=jZI^Q{yBu(33&k|&?16g*YEZ30to+jv&S2N9Y; zIxwPf4bU>%1HrPrXA^B4UVG23VD_|S=Cx%9&p=BDL;-qz{A)gA_VWKhwQhX@liMOtlY1j?NU&ABoWWMne|oYu>Kv6LPI?YLMrVm|!wu z&&&){!f`)$8B(W&#IZgXadu?o>?4b&E-M?SVeUG%ul<&&7H?~qGAvNTbi8iyNITZ| zeZdUGj|FSNzNf)VLYeB|TQJ(P$Gc_%zqsG*9e7*kNaF^b*>(`_|BurK7U{PNO z@ObJ$5GhrZCYR&huRfyu#v^hGIT$S!(Nz@<<+KQsm2m4yh7#n%&>t**HMXvzw-y7R z);W4_|NjjAP^LK55BKHUJe*t5Qv21XYMB^JwJnL#;ZV%kD9cFT@bDa)i`!Urdwvs} z3dgzpAa!K~if7~+;_LjT&~5`9QU^23l97yD|6taM7Bzn)#fxlD&p&7C4qh2|Js|1U zdlh2`oV8w#peH~hFMnjMoRJI{S679l?shtZ zvmF0tB6F(LEZVc&%$DTcDf!(iKl5Hfz8c>uX7#ntCWES|y zt^lpMg3zETT_r~inpG^3L92@GpSv^E4u9(2$R4^%6^Y^10}D(oeKx^p2{87+)l;j> zN~Vt9DGMc79i8f~VW?s7dot6L%z)-PO+iS>f4k64?$B^<{@6Rswi zns7DAln!sUSxBbTk~K_CxSDLK30Es(sA(x;2-QY&N~R{7Q!+KtoRX=D=9ElzG$-3@ zoaF|>_L}ZU>gjIc9`gZ6^ci5{`JSRs1#1)R+`|&=oWW=TZ%k?OpXXDCKiRR|T}KL9 z)c~Cjvl}h`vWzTeD*EAnU&M%r!#LxMLo}mBusfqgkUFC?jlq^oBZm$U5vYv6 z3cOXu5JvwD`e#8OGDTPpnRsHzNmF~vNmEDGrl4cArJy5EFcFnf8Q%xaDIez&j4tC` z$5O^QjM3p(#o^8a7%jqn7)_j;Sco%^1POF$ZV7a0$@rqA5~I($gj&uDXKGc%cvN-e z*7@eHO)Sk_`FF>`YdcPafuHb*w4CsWV&AoZwg~#AM>We!5B`p#L^W$;M!9Npe%}5F z%3&YLAI|vdj3{}mQSSkE%~ZO%pqixUJl=+FYa;4yDi9Z@3iO2!K~HlUY&Cf*=nGtH zrJ9ynM}ht#!zkE3NnPpImi)=`?9`h#ph4*ZJ$EnSXLAEieeC2%yNn!ZKdySA_Elx* zuXXQ~3rz9c=D7!6H|@_FeZ*>v9zf3D0a0UgKj_1rO{_IW%i7i$wJvdLKmPYijFz=u zVzk`w)zcTveYk_n>@l{=;DRkDxZ_}jb0*|YQ01RSs`2bpMMHOZV~ z!-}lg*Xf*&!kQ=nW^_I?rvb)W&sYX4E6x2=M;=I}G{B)w4`4F|AUrSt5u`NV%O7+# zZKxpCVpy)c?vY;JOQy#okW7}}k?4KO_vl81Xky$?y}c-JrT$(zRk~Qt0rlF&Cg9Ea zS7Vdx#?JYwBB8mrk7>i|tdREi8G*%x}o?xw;X5?VtK9>Y;S4l^nG+zR= zk7M7z4#L1f0cnc7b(Yu%UZ6uEa2IIJ-&}wfCfO*8VyHy>wTsLcEz+yNR&2ju8e^}itUunUTu z?6RQC3OX2cu*lE;cy-xvPJJgF%gMAZ^MGk)Vk;?6Py|5WtEgBET!l@i#N<>|W0LDM zCL^}DfFf#+)!vGJD6lb7(qJ&9X#v#DEX=ySG82@q;!|@*9L{4#QuXDegvR4PO(70b z((`2n{rVRrB=;^IB=(dJ%oZij`+|TM6{`GS?lCOgtkw+C1M>D2l=Dj)a z83G&_szg(0l1&AwL=(`Rfhs}0t62fl4m}SozLK~uSXk)AmC9yvY5t{yXRh>)BE92> zhTq>dbwzc>v82(vL=eB$9weC>y-PARdY5Es^e)NN=v|Vj*1PaXd3S3uxCmvSm|PPl zCgOfJ@Y?9N*7VmfpHzLZ>Gy;I-)oo|k4$IRRmy0hVSYAd_wGZZzTnVf@}3e)MANd= zj5jv?viN*C4by2y#Gvi(Cw{A8N?lUJR7+L(nNt3; z4v|ca#ZWRe7DLHYTMQuvb$y&s_@Fz9d}mF<^t0INYVCp(kb^WHC`Qn3J50^EWHh_KIj*FE0P1P-R zz*i104Z88(O<2)yB37KLt2aPD67E`eukzDFD-1Q0zFp%_Wh^o5CcmHk;@Do_r8hk-zZ>Fl zC1^D?$<*jwlBv3NYK4O_vSPyus!@n zYI2W?V$)_?C`%TzswXmBJ0&@Wo(lY}AZ`HHLKzfowI%UtV&7te|5lig{sVf4XML*$j#U#gOWfKxRzF8cXo^ja z7xp%_ZQAJ^3l&;$$hRa{@oofP!U&Ur7M}}l1z==NHR5cBgxe0FOsRT8%d@{f00a${vw$g z{Y5f0`io?$^%o{h9p!tm`7F#!j6MhL=A36Rqi=w|!D-Ur;jO5A7oMIL?osG(ho4^j zdjE}P70IV%JV&H_j~L|_WugzCI&khYQgl-Pi1u%~&zHVb`A)gdL;Gh5m=si{(Q;{* zt;*PcZ;aaTR(DIK1y9}}2gXR=3VhJ(*Zs@4kh*gVSFODvw6XD^^TBfDy}+ic``30T zj2YbcVDQ0EO>7eXHgR6|?Tc&OlRL_rITFA0yCZrY8C8wc>Kia}Y)0Q8(yqdRiROtr z&XS~Bx7HM&xI0UZa_vzbmryx&u+HWu58JZLrA`xAC6Y6;pRt=K!4^{$w*0D2+!hlI zx&}p6?kECr?E)RjA7h4ovnbOGPy!hCSx`1=G$xt*Q2=dW^pK#2cp;ii%Q9+-%bRU}ib|BF|x@X^}dcaKxhDe=#4 z;<>EdtJ5ib8;j|Ka?xps6kwYg|4YwaCo=#xQqx znd+9Czbh~9u10cS%`t^-&Dg?|GdcvV;NC6=1t&I}j-xn^<%*EmmJB5vP>2ejLQVEg zNu%`*;Ce>PnJ~&AIF^4P^n3P2q^CGcn2y93`cJ4q0<)IxV`M|8Kle?3HkYM&&?ZLm z)zz{q^Di8_Qz0lD|HvrUnRkOG4nL+dc2*T#=R;N0#NPp0gLJkCc^mOHhavDP@Rd9rv>hxQ(CKxo3QHr63h8J1c!Ym z0>vo3$EeEiX)0}+LaXNa@vOkTQfkn*LK5te)(L|cF_ipcZ(;jHbdOZVCtdRu9Xvv7 zog`|T7IjP%hY`mB`mM>dWH--Sl}OCj-yL{*+jpT6FA##OzP5(l9%EZDJCc(NpL&h` zslpAq=Zd_Cam%}B{OA3T68Pe!>3~DVcXy4rSG5({ef`b|*AKJG6PL6gqac^@5&nl-Vq*85n=s3{VV2OqKDHgH#R6*$px|bo0jW^RC0ZrrB9#<+m zVKzs#r{?Y~l!!EH_^tcAfK>gnydpLgll_PHDhbx2>dfKM^s?1MVp%jH#eB++~d>nMPGMg8&rJ-=0U#i4>K10Kl z{YII>>@3=nT=tW7iq3vxS&xVFk{^=;%X|7Rbv?~%nL&|kxwTcdy@R(d zlOvGL^d_g1dS&GhEhijseAVXpJJbtj^;Z`w2axy2u*y9a?zl&wpL({p26@%D9v_&o z4tO^r5+F6r9A}P4RRsQbu)A`6U?#fe8nAceGj63b^WHvDMMLD8Ipsb<}#N zZ>AgEKXm)Z%x3vXm4$DdH4mRu$XNn)E8WgURiJlkO~jI^F%e6q#zZWc8WXW(s!haf zrkLb2Fu`UIEPUIAJ0(wVeJ3@KBd8;LIXaQv8QFS3$s?8)mT6P$){)qjQAVd-2EbFk zbAd|f!Ygj>0=>sYgI=@L`nYN1L42g{bgzU?rM-a$?NC7&#G#DF zV+i;sda8kihZ~qE^q^cl?&u-fnLxmzz*B%OOi4||>QZajGH@LFUK#^BL?jOj3>U{E z{1nfViH(n^QAO6_K+P+}8&G&D1yKrp#WA&E3Be={mT#bEUfcs zC$h3a%&?G6L(YkhNal4zbd~VLy05<`p$`d!x0v|E^wijlxITIdlnHOel!0M?l@j!b zOhHIVD{F8HMas#}lnQrD46DV+qVMV2X4Vl$vim;=%Iq7F?>u=ir1y|%&9)3BslgR1 z&S=!|EZJCih$*GX^+7!3@G!kOlU%0<;(@pPZbWr)N$+8Mf zzi93ie^y5V@@}+M!!X@oDN>JNSeX65Er`0Cu&mxRaZz^z^exl>?!Ya}nNH3Bj6IXR zhOHV8M5hzzwjdRBt1b}M69t5-B3`YkBQGEn47!?QghNx2eIDlStC-m7YEI7V*9+l> zY5@gF$F0eHr3d2fR6@liWiojbn>+~jNCtp)5N2(^M3jy}*dntUvqf44_?Dr#cqW0M z8ySId8H$T@1r2T?#Pt^vIk=Iog)ET*(etB_Q`9nYI7ext-->XV!+~U-ujN zzT%8)c4i4r)zSHoS;M&MDKrLzOymw~guNs8NCqA78kh$Zz&0IAryUSZm7|zy2Cr-C z%!_uyOrqGhDFh^{RK}*o^+Db$Lsyn+2v>lxTG;MQmko!Xd_^#C+*QHyrmK+Oq){xz zBG%v?VGj;1x) zK6(5%r1*`R(Q~7g$U5Jo;>8k!mv|Q0s52R@YOc6C7%UL!fxs3WGjAQ<&`$4f)vt?g6lB@S7p6&BN@@VpA_xBq% z-}G4sh<4wDK4LfW-P(P5JSEVm zR&V;tMlvw$v(3)Gbh|>f*7;-d-E;54<3mxi46r>LjJ(FV1EZtCjRf3qBu_UZCm+_W zaU`qAxbE0vN>tVgvIAUC?o)bwuqrhNUYBx~@|BPUACm z2dHaKq1Uu4@JlSYPwO+4%->bzbA&$XUOMP>yQ-5ns0S*C3x#PWcq9CouI4RaY!k6*<<*k|0wf-d$Me`v=x zi0_v^op9#vJU8NTdF81%-@`W@SV)B<5JkOlu`miChdSc|9zVh>Qov6Ud|}&Xp%(pq zBNJ!T`0C2*i_089=WVu}f94!c58beNH*)jF#VZ&$1l`h&*4uR?nW4@07JPHyND?@& z!Dr1+XVoN=|J;A#{LYCF$cPfFHg%j|W|Qf4Tf?~`F0K}J@MN*+?0c<|xYOE; z=eKtO-9^wJfc}8fVm*1~cA8%LU4ATX?(CqF{d zkXOAz1L`vl#`JFm;8bt$_I7A?@WIiK?(uX^(cmq$@l`qX{N=-r8e|B4!V11{v`%Ss zkVhfglMpl#%}I#vi@HaloK8Y{haxf&@=5ouTOJqRNao!-*nO1K)kre!W5+dHOOO#< zJwAfyog)H!<0sHZQGUvS$gp?24kDR{XUA`C<7~9k>VHKBo(!=QuNw1KD{ic#&y0+_ zRv1AxnADz0|DftOXf%s~T{RuqO{|DL@b`Heu5eS&bX$21itf&$G3)7o~VNZ)48H}XS;M@y4%Y3=NK5o{Hg$>Lr z4yJYZ9_DwoJj~Bij30phGryg>+<8f+Xs+?pzTW65ZXPCR>7=k*pSxvZzw+G!Q$~}P zoyP_LH0t_kN6XXvezO4#mQu-F}Jio-Yl2 zX08Ce7FlOq`k0g1p4`BRPK}bOIWluywIZ|@lFY|sLxgkn!=SGrnc;x7qd0Sg5gqO?J7M3Z8J zR()|zBG)g6tlRxf+$6SB3CKPzUaW|MMBvKFc9W3C0z^IBsua(RA> z)^A1kS}&Lt!K_J&O*nGs#j#y`7*oJQlS%@pnlU#c9&WR-5IL}t7Ja40o$(8II5BeJ0}nCyF)`(PpA(GYM@bi8hzqT3ar;ac}4)x4xj0=yyrL;XmhX zne;}Gj(H$Q+d;qBfibj!o+BN_;p;5J;5fzVhoF0&_%6<-^ePJ`k5p zJ$6w~p2!mSsK;K~I}O)R&2gB;r#g@$?V`QQdxZ35=TK%0R?5yRm=!TG@n)FWl4#Cd zMoJ9T&H>;I=+o7BCBqv!#`H6I^`Ti}DV&M0xWqCm#HG z!S4@#f59IH{xHEG5B_-0CsQvypV8y^{*YG{*(!4{Qu6rW`&G_3kX5f0y;36Q=oQ7T zLS2IP&Agp*sj~EshqvS!o4Jfi@9XNHOF-d0nSz>E*f#h$B=EN_j6 z5v7?-zCgG5s9s^vB*raTw91WI3sFr=mNDDYhOclGwPH7Rb zvo~tZAvrbrAGU=^oEY(19pyN_ zzG2xa4w->6kIq)?bynMCcbJpA3)6Bp(9xc~umX%EaDR_`6ECkRO8R_WdiBuat0Ro~ zNH+wSGo_D!>X~A{I_ThYWQUV`t8Bwa_adIxi1h#Xc%1apY0@>g^wCtdkigI)sx8T2 z>1ztd#ZF&JEtZ@VR$d)YFO=JQSir`Qb3p*45=uEs-8K;VY@pC>tAGwN%)^5i$fMBU z9YZsFuQf_Qb8Y;PKsi@%*=c7mCD#e%V^|3ps^nXGprTU`Q)xzzFu7VrnBYtYzZR-H z)dEr?r5l27$Y~)t)?{&GLLHSX&E-Bae=Cl|Yfty$8z>yIvIbNZ@0E-W1lCx<8o9SB=H`2>0`WuAcg(X99j zQ1$E-;?)i+k8#Ly^RQ&OaVziu&?DTa!Of9uJC)hoGJRY)*;ci{te$5owkDoayvMd5 z8yro}e$^%OjoEv%TyVl?Cw}c|S2ES7U9@EO0Na+FscAVJ4>R1YoTjiY7|evA{kmkT zzs^>i19460IkHLCpFv!LP$Trav3u8U+`YXgsrsk8^Ps^#14x)lq4TX9Jo!?zQKE#T zXwK$zP_W$-pkCIG=|t%pKE& z>0>JB8ICG!9%}5!NXdY)UpIY#MPSl4!v2B0rDWeeK<{%$C^AByk#%4;vs?lg{e;b% zR-M2H{eYO9HYk`%Rf{NxqOqZ}K{QH)L?#kN@i$77ZUe_U-`wR`K@P4H`L#ixCiD9Z zzfJb-TKjugsW<14pwSCL%jSQ(7AbwA#+F58uRJAR#5X&)m8eRX|xd6$5d z3)R3qv_;1WYMXRyR7$fYzIIzqcZEVojVt5*MF zv41QJNwPz0^g|ePKLM>l=>a*`V6uW`uy{^&>`H~$w6xekRv$Vf zD}s1BrDUc7|IXTrI?e3G;IPn}RP8Na1A>DBpEL=Rp)&n4VUFw*3rur_uqK(Q6F=KY zEYP=NETmSw=;&&kaK|^&VF2(=Pc_FSQjeZFHW^{C7*-Q$((CJ^saqe7AyZdvY1ZV| zZ%2@ZqtXZewBq(MFTgq%#8pJ=v6D=V$4)Xe9y`g@cWZQ$onOq&gu8k{WETG(1-tS^ZC-uCwqS8*cy0c6WQJ8t&lgrJ%5*!J2CUd z=<5&5lC^P}x|HZJMIjQ_uvRjg6yw}GIWs11;6Q5lOHN7a7n`IcsRVBzbeEylw+nfv%OX*%Zxq?{#gT$={yT1`mCWB;|nc~(UYLDO>!$oX>#sS;H*`5 zw!E)DbZo?UWPlL)dDLy-#}mYu8A=+kY|^-)-7FOCMv~V^DctRUt5~@8syM5 z?+6mnyVv8F{;Qpt0KSGS%xm5Q$i9_<9?i$xTW=aGj1a+pyv(@V?XsR)!WIz%6eZ3i zdtmis1eQ)lZpMRTS#-B~5>&MpP@rEpdNXnQCum0sbSVM-+NY%qK)`LfZ){u~Odd1_ zm+H;{M1;b@gMrPg#(+wrwkjSpUoaBQ5d;ln2H}XbDj-zBX17&`^HOk@pp@jKLB4#c z1wfCJZ!3OXxdZ*48ec&#_lBv241x@fghcwRcotf@B$7txCLmvhW(WfZM7$`D0KVz5 z_(cKU$sdsC)v#nDGYu@FxC-2O97jteqYv1*0vK?(sZdWjT!DCNKEaT0L;FMiDh(5c z1qToe8h``tuw^$!AX8#eI+Pm&Y2^RKhaWER%W}57bS#Lg2stv>x7?kDWH*~lk~yLv z`R-m*Csz&gz|l%QuFY@(QmS7gCUJDO5XVrmtJjc@-FGZv z_Y|u0&YfKjk~t(1KAogQR2bJgC8+0Rt~#_T&%^59DOjhq!BQN$aB-m*7Xw{dUoXZO zoBO3^Q20isM`Wh6>?nyWMRm(q){)EVOsNq(-V#Nzn(~O(#8e=I<){2baKYFGV9o;V zQqyl;C|xq!3S^~;alE$k0ozM*M{eMEp^<4eC4+SBE%sZ(<^sS5;8$YOVmWI5!h#TH zHaOnWGI`m=0EdwHige#`BwK6TFIsf+@GYd=!S0tv)!uNG96R>K+YgqMe~av$-{zf{ zk9YmTm4yocYq%hQ8_t8i$Pfpe#%Z4cNJ&QrY*&?rlwP4_wj3 zhxFa-=@D^e+ZfS?NQ>I*n+>h@Wd>H!lm#ZkE&6UYbKrSwz~_ZI@K?|m43T&Y6M1^2 zK})Zm5sk>nNr&6sS?2!^N%B2%%+Dv{PZQd(@H!$xAK5YyK{Z+{k7TN?JR(L<*#DRk zauzo{i<0M530Y?7YT5N`!>DXCM@|EYNUPHTDkXK#B~h%}SZOwKXws*I;kn22id48i zL&7W%ci_ig0}9{z;bNc%q<;T5OD|})d9xfW1G(|zfsf`^4%j7!=2`UUf$w_%?965) zbLHwhM$S(NfEevlDw(ydQ_C4FeJ}`p069Pn2xic!c-&^m>6tLSFzKqiBP!WYIZO8( zU;!oK1PRlOK#HKu%w!GdgURBJh3*XzLao$d(K9;K*~b#<%zHo{j;tymRs|K$c;w!R zaU8EksDE?^@~sT*t`J))0s+>DLl!$|v3pMdJ;BJrhlpR7A%{mT8#z^{$MPm5^VG_> zqC7jXF;b!S$66f}0@_~yI6@kA0;ZnYnFGK3mQ`Q?rr=57b`NSX+ zcV*zndmqIPhE1IpCe@xKB~yKpv>Zq1;BiFsX=49Q!&`XT*hqUamrTvcTrxE$bIH`4 z%q3HEGM7xv$y_p}ip^H^IXve%+vofR%wLSYnrKD=3OecCt$Tb=`N~u{?AB95uS|4a zc5%F1J(b*VAF5Tvyz;eY03Xsk&I5I1i25sP*cOqBpM9!0I8?;08;UUx72{9oaEyOU zi?*$rH0|0orem{CZ?%nT7K1-yBAPXC)-L5v`rllw^ti7jXs#}UV`LI#-#?Q9Y8~55XPCaq#s&7)}SOpB9 zKFcs=mWk;@>1}GI?M+15vs^xC9dYW^9iFXkXGE#WPObA$0Y4Bm{H715NQ7bx@@oiErwVkvf5B9ak$p>7)DlBh)yi01OHOj&H6 za&GpRa_9Y=5k}3jzHH;GIaBRQ2KELk+N>QZ$yAS&CC>rUY)ng9+Tw88)|)Aymad?? z3c5Gw-hxgCoi6B+phpUNBIt>No&kD>H$r4#%bO2+zMz+bUM}b}pw9^U0_Y2Z76)AR z-P_>b7W_w`9|`(T(0>ZrsX!5nQvv>4UZA}MT^w|ALBFDH(c%N|zmF&Hho6z9^fS_X z=(}|EEQSkSYS58r6DisVcreN*`@TC_V`L>qm8Rppquu?z&lBnXM*orSO|R`)Q0vk= zR!u;?6f_Ea94-5#v%;hv1nHye$+mjGka}pQ)t7`ER`gW_f^nA4-EF=N9Y0S^`#_iJ zml@ZGTBVSH;NajyPHcat*=*zfA!N#lcHgxd*P}4G*rWY{C2_TnkoPY2U$OA=@K)sQ zlLHpNS1S53*Y)qi*?QltGK)mI2l|2A0Cd^t@4WjJp6#2#p2MmfTAdVWF%}k&L2RhXd~qF+WsBm#35kQ_RVv-i_y@05;7gdM zQQ&Jx%7U|oNB)7*tNS_uH{vKHU|iL6IA?KgjkJkHbWN;?wCM>t&a)4C-$?efh&tjE z(0>|PJksaOONLcrjQEHpuxiDlWU9rZFmlCgZW*3lujmXmp7@W6xK=OK%dhmR4@hF7 z$H~Wu>qn6}-S^FY9I}6nXhYn~UN4ZaH~vPBOG4*E7M4jfe1RhQ8a_L!pNJKv99Y77 z7Bg5TAQEpvK0kI~84vn{d@9pfb6A=-;tKh;Gr1sO{PnkWbwwdKA;r?}EF?+?v zy~}}Q{3Sj<{J0vF8zq^Z!4bV8a2UP6f*hs}v!pA6gSJv5Am4(0vl5XbPqXu|6Z35x z*0EN=EKA8u#-1!7!#KhWHz2-hodr5mYc+V!b#RGiL1fElzf^N~^DycAo!X)B$U>8U zH(Tf5&o>4nU8-Ka47r)_{T(xV4eCt}7u-6c;tS&dM~NAtfSur!&=^dATsCP~c6@C{ zOQx{|Sz4*%#)jXOu0#(R{D(=%qBZv#{hr)6kIPeMc1utViK&stJ25qgB8C8OuQ=+m)SUw5&tn zsC7=hq}b+DkM=FOzLp(g*E@Mz);pCWJHP#C(aVEPT2dyn-kK~&^B2R#?IFiN9~1O6 zr^*0v?O&xj>Ah?4gmaQ&#`sN`{v%>}iPaR1Fo_g^OMIuoHq7}lLw`LG%mn%8cFMXmTIPF+Z&UUKk`!-n z5C^3j4P6@+pSiSoHk%_ATk1j=@Z1U~AbU}rk2#B#FhBsDqSfWCxyC@*l4UeFI56k3 z(URZbg9}PD3|OlXD6gab zjT|(IJR2dPzvlMa=o>cP4z9sS0e|d)=pqju{Pzg7F~3S&HRbPYwG^;5Y5h~ZFzJiu zU>m?@rLs3j;RZbqUuvhfn6aPfeu2tL-%i{wfdwyy#W%J$J+x}T$?-%Xd3+)&hjC-| z`y}JLxjvZcds5y=4?%t3YJv2BFw=yiVkNv}h%D&G46Vw0(XXpEZHY{07Qs8!Rh8f9 z#%{$CXZt?waqRQ@x8)e4w6hrK4>jeoFX6RRDumuWL(mHyWpO^Z{Dj8?@8gSl0{n5M z<%k~rQ)nm{PWn8`Ou*PF4HPAXs`KIw=EO7(H4eK04AM$T(F}@D&blk-Uy4oOfCR|P zRQ-0NBtU*d--BwMQ1<8$bGRM(wEX82(|Igka!T@Ga~cI8J~tE_DM;jT}u^C)yOjMEKE2qB>$lf5m%zumLscve0HMVf!6cL%(fRt4ysZ& zjVwOgVeR@hCpMFhH}q@r#{JV9NvHYo#};G-yhD1tIJ>k{zM9j$EKfa*xC&}v1D|_% zTb_IPY5?&pFFfkwYC?va^L2kCDC|474NKvG{|uJei1VuL-4TarhYIC`qqbg-`pdgy?i-af z#k|TMsoC3p!hZIX*xL?+KI4&xy^YBN^+tdtm&aX1{VnLJx$Yk7_Eb{mysiBM8;oiz zpi(gV{sKvw(^jCCfNFsu0*?9V)UM!1G_fou4ZJY5;8zQFl^o)7U)kASP0UN#3wf*3 z8gdfzQj97>-W?v8c*X1;Of@?H06aw`L}$)|-@3;DFZR_0zt{t~pl7FgNNSq)NP*Sl zBjzgUeN&{M7aMfWlHQqAU;5R&54QZ&fIMkne17bU#P+1pCr&3XU+G+%RNvBl*4HO~ zzfH_;7oE+QZ@)v5%hXEg-n07Le3qjS@JDS0{4ozt%Q27AS^<9?0{*zIfR{{-fR{{- zfR{{7%M%drCu{}0WNJjLWNL)5WNKQ9YVmr)_~w9<`IDB!C2P;iI{LRdkiZ&|$gmlwi z#td!6f~jB(GQ)lcT@Cl>M{CYP4Wau!UVz;Xf25^k_U{3d98=@QUA%1`26zi9iM4MsYNTC++QO??9adnpA8&G(CT;cqsWzt5m68n|%ce zN)Yc#w5K|c=r(w`(vnhQVO^t#WOnR!MD2#=xZ1H(+!)VZp!+iVBk(^G{5@WgsNcZA z1&NpQXAM8yq|$A80wU;w`=Sf6Ff%DYorZ-JcIDZGq&N6 zXAu5)Mlbxa=JrjCJDm0Vn7=c9>)6L*?*+#sj3Q@_cCDJydL~Wxr2mL>!BWQ^8%C7n zf6}H-HLI@K_s6+a-jV% z@jLNj9k;?E?nGS=+1^^vp!Z|8%DIfS5lQW#Y-s?yEFL&5nD(|SBO(RQg`!w&HPB5c zK9R-9umeHA*g@`nm<`H0^@^ZeNffT0Y`R?qn%&j>+?XIR@EG46o-=n(&i4Vtp^qnT zFW?SYo8sOREXBR2Gg{z2FuFV<=*xSLWVAnMe?bR%54Hq(k7fKCz=^2gJ(SV4LDv?v zh`wk1wYdLUasQ2Ivr)9!hI?)k_uK(`hoJZ1{(Hpz_oMxO(f%;#!-77B_Q!a8lKkTK z59RJ(KQCttQn^wPf|Y_4Pjx9r{xNw}a!#$GDJS$ie8cmk;UPKKp<-K192iy0n^+tc zqy0?5R*4yb!&+Jjf+px`hR-G{ablC>SiN(=)^M~LA^~qyx^=%NZ-;+cB=e{>5M2FS z%vT8voW3;7HM@y4n^(iVS`mX~AwsVf8p<*0z5w(RgkeP@JdmDmV>+5snL?4yvx(yQ zOk~n7HkHYO<-Y`cdB{I`h|#jx&>B};?SVux)%z6_j}Bz=)8u;bC(kUh=XZtrK(!a0 zy-H)JQo)g;#GHFI90!zm=8o(ZT!DhQk_C!lfw7)f-2ZxcgI2Yd`uXhW$@Dhzt~i!v zCh?UGBai0mC@R-fdPL~*PDo5jLZ=R*u?@cFBy&H_HmN9SS+rRN-U;l9R{rLIG938Z)3&NXM>>CujP09A=J@bq!zq-e-29W8am!q1WD{<$;v z7%T$4*m<&bigm(!aX$&(E|kzzqQ`o+73dG)7tj7)y~? zq*MJJ0`RNWz{Amen{TM;X6l{Fz-&gKcoHL0d{e2(4YQo56DAI31;gCY0V$~&iT&u@ zr$K9UW#hck4_2u-;PTPo5*j9ySnSv00cfPYiFAB4(dEeJzqyhlksof3tg*a3*|z+} z!d{QAeo4*w2Fn3#I0q2(ODFVx&_5Y~vro1tcLp)}dNld#?)mpUWxY z#JV>y8IV2Lgl#I>w!)~f>P#~y#Fm8P;VoqCY5n;a5Db9?h>Xj~1S%g%_>=tJk2Qq!hmAAf#`uY?7H4GWr2b=4= z6woUnF$0gUL{7L@D`Bwof*kMV$n~LE&~c9b4!(`iC^@JXoc&Y)roqr+h7}u+#_QH# z<)y|V)npLv1|}ai^&`Dgy2IDEKOY((PB=h1Kq?RIQ09rEDVK3bj$%FTOJO#XWBZwX zX{)d>CIxvdI@lT+E`m)9>oj7Y)2J$7R8y%&OMP&Y^WYwCO9^BnF)kEwX*6!;;9 zR}p1Uij_m`$v%K`??WyMJ%fJ_`Zxf(F*u~v^S8PUtyX*ynNfLXu}yczUnlp>#)3oQ z*3BZbMjorYb4}N?K_AERVJO1 zBPeosB!9S8tCLK%R>uN;oN(&!!&RSY_X38S(QXJBa`WVTAJ9I67KrP#4RP8LF=+ey ziQoQ}C@4PO>J2^zH9?I1D}KisFm(|laZ$jgUjTg_qax!os%T=IF{+q=bThKLSd{o< z_89PzX>ilE6|Oa)_lg2wi+Qi??o7?f5jDNU8=F2kbT`gSmJB?1?L}m08D}|kL@q2g zDa1)qIZz8GtB9#ZO&8}(ZA(!vQ`_`QF6W`s? zq5nZA>n|N1@t<3>D!H^K^XGS)<#)5#_u?b+QGr=Y0~|xn=!ot-L21ZXM@2xkOh(PNTVU5bM;|Ml~vZ01bI0p?*#q0FBw+p>@}kZn<7| zlYw;otna$fb)g&dq-=#O!eYE&ni0!N=~yZ3!r=ZUoYIC9*&9Y6kN zcURAfP4&;SEJfI)GJx*Ypie31@J_goV)bI7fH)8sm(3IHW3Q6HP?0&$38XUG9eF@2nW~1e$>(e7=UJD#ymUY+lDKi#bDtp zCMt>+Wpob*lVy%qdt6=p43a`=skvUoa3LNYdsfV-Z&RBFE&5LOzkx(oD&saFv*H;k zF@}6qc+!C;V>q0gx-<2|qqQwK@($mil+KOl>uj)`z=}9wD#$c~Po}wrl(v*E-fNdN%r5=M@{i93;EQK@_x; z8^3)}D_a>`UpXCWu_JS7$KWH?00@qjLjYsIz|T2?VF8cF%Dhn#FRZ(mCi@A6=8_xmw_?bXr?4C=;+}~gHyRx5tE;}u>@fT@zmVDewN7l0WlH)NWPVPh5rWST1 zSE%T&qKd5xXg9}f&`x=qTCaZ2`0QoNs=>#nWyy|kBv)>n+cvE4o0G|s2kSTX{MzFo zIs4oCUERN~ewnn|H@tf1jXw{QJ>q_-)dAvGN^ghZJz_g6bXy9vE1Qmq9E=^Q0y?9D zBR_!ofv)J7oa>qszo~l=gDkRzzfy1pq}j*jOs3kr-Km|!2L4L!-q|hKD(H0$>nOa5n;1+8^g`>Io zEV#u;HcgM3JLG8N0P=Iy!f7SHzYxc_tUHMLz2n5oBHspm*J&h7OFr98Gj}$st7PIE z$dVH6ey10^eQlI?}HR#P;KiB0QG z&F`M7ZNG5_HNCMjeJWHmez-+2T{3gva(q2zZ?op&DW+_9U-?h5fWnt7gECVY z59z!V+fJo{94#s8ATzt@yscF!6}8dXmqlj?(+EuKSnmv)5V~!$>Inly31IPB6s?54 zGyD)di!wHT05qT2-U136w^7~&G}Dyf?O`TRIOO9};#q7RO28+ZDGm&bFwCk?m1UTq z(_orOM)eXLB53#`e>RbN^LURRTJKqDgvp$xWhx1x%o-zX=|tM_DN}fe z=9T!UnWeHcpCRvcgoB>-r!HMJ0ku6=Zn3Hdo3Tcg7n>VxH_5>f6R&s>RCrpxx6_>;m&jK}!t|K=cRukQs$}~_zOyD_`rUUu?Y@^%-P!)*{y=VCeJ%tbc*{8tv?UllI@-ZGqV>u`&E`SvW=S!p&NGMyF({{+O5 z@T2KDQsIwm2K}g+JNHLMfNt*I(zHS^5D{F7(WZl;q-w zt0|6166)V92HMwIl?S0@mMJE?t2)&pvDxuyDpmGHJ%I&G!eb zIN)aSLE#D?=W<#wX35lmF-xWfj9D`MzTdIY;lwPC$tal`FlHYF4*58j&>Bl6Q*A7@ zlyR3p6e$_c%ZI zV@4~H<3yK~Ciz)HT0)#61<;&hTX7FXQgUlpxbPh1@z-Kv5)nF~QJd&P*?T@aziG`E z$9Hi)iZ>@E_6u-G9qdWh0x;vp8azi{yxfsoUs~+5j-L#zN7nmJne%VZmB2yc{jW3+1**`k|0w)%u*buiMKaPgXcemCaQ1PP_#yevvGt5=3LVSuqWn z1s0&@tHDwik5Si)r##mIUC*n%b%TmD{8TiYrV%GQpSi~rh7QO_1r+I7=4T-~YWr3hf$NBlwwY7V!uD6ejSoC?Zb!9RO z&_|BI)tr2re|(=J*S_{*3so}P?;E&b-ksYsHO!VMyQbao z+$BPuNAq=Ofc3D8dMpM@3k-h?FJAbyIq2429hDdp-}()#Q6_R)aE%_00dsnCC2G0A z{K``Fd?l=ej&6=2C!NetG8A+)cl&e1=9hArD%UHG>%F$}xB;Yg!2UhmHjjAjj8}@l z)so0TV1p%@^8Be`N_|+vJmFG*#gTm}eE!I5$GfE>b3oTQbRKV0u>< zJWm&|mW=)Y^aq?KE8aQ$j*}&!r^swo9RCbAJSz?*4l-rsPJ#Zfo8+o|rkCfcU;5G? zA=u^shsu?i7!v@bFoYoIb(?o2a$YB$FI)A_*pGdf0KAi#e7H=b0Y~%2=Push8;CQ* zU%{o`tAy0OvV4<2m5YG8|9h*!g^O6$kh8|)hnLQZ8SIRgion&9$YEgfMKU$G?vkm& zb(c&HuDfJvaNQ+SjqAvteE52fyg3|GC<{{yhf=&K+hP z)XgFdH6CK2>nhH9(DpeAy!K$P;l~dT zN{iLfT}N*RoEx0)pAjQ^TgPySgyBLw3@ctGocc18wRDZ_L?HJc>BHjM$&DYVEu96`1Zwn(y`QK0dPuuLC2QQVnCn zFPR$MK{7SEgJf!S2g%gv4w9+S9V9cG?ttR$8~bK`eg51bIphq3GzA??O$9c`R%soO zCdc~q#bMum`Bd%fJP(!Wa@!hVG` zq(K<~4rh<89(D?m@>XUB!fbRtM00r@rr*zE_d}T$_1V}a+YU!y?cLnv?G^K+2927g zbtBk|`VHuTj5;Q%j83OnDQTHNaH5%Ikp1rL*XhTx$_byHv74S9HqRlYdb4fr75DEPtn5k$vP!ka^pjnG=-1DE0gU(jgjJq`2 z*bI&wcVQK>vG8PXtYg%%X{0yYz=S7mmvT3Em{RaHWYNlOO$;Rv z=4rqV8+Il;=p@Tb&PYs>RSuJRkwdgn_F_6E5c4bTq4LF$UJD2he3`j1<_AsD+3=6}7lOJNuze=e3(!lbh>WeSY$r^&^cKK|fp} zq|nng3e={@gqUnqJQhPEKuJcQkn9pbY6AKNc zK(d)nb6IIvc}+20X{NKVlD6xLm3I%T?Veb9cR@e!ig(Di;1K_n#&uIUL#c36mL9dV zwtsiQiH9GwyhEx~ZgFntcLB@D`!COQEIar5b`$Q&##1{NBvU;Xl$NsZlnG*#A7z^q zH_n>oj@cW=AkVqcx66Ss-@I&ge>IsFRxaaV#TB2C8eyeY)=jT_T9`{nkDHEjezBZ$ zv}-CCHX9vlw5;=JBN}D>#~i+q&4jJo%0{l{>Bn^@KN7_eCyfM+xbz7MJyP|8HgMtctY+Zile9a zn;|>MayXoaT<(|*YJW?NhogpmHwM1PbXd`f_~JBK3=dSy8(^Y%xT2s-cn3O!R1dC6 zA<@hLc=v6Zl1vK$vu3BfTqRaM0l@Kg$u6r9JX6*K4Ji9 zNtPX{mE6kQX+Md4*Q}dEyRQHskv_2W-qwk2L&&x%dtKHq7<9V0CD^$Kt_)4VZlrOr zR1T$vI@^LI)4}Kckno+eKh`ouVv2?-BfT`tDuyjrQ`fj!G|ahcYF})9;>86GQ+o0l zvxaj;OAY7BM5E(Nrbfq?OpT5&nHn8mGSxc1r4|OSma{MUF!TqDUyZG+*sq83f>=Zr z`(n)6Xj$92q9#Dj67HOV3)L%Iz1@3Dt4^m_OUYC_r(dCEL;O%f+ec~)W@9+!E1gMQ z@#mZ$=CU7Z0%jB2M{4F=$kNO?gp@z$d#Urpnd@0g$$Xh|y;{)I{O*(~oW5TT9#gnN zSb6g7PTSG?hzTDB z;<71Gd<ysUiN4ZzFd^X5l zJ)r3vzW{V-BuTtd1;aY273m8*5>owCCrvlfC`!iV321@5qfu@$kIP&QrN2qF2jdhLjVtr7UPamKJIv z#p+BuxV6g{zmY24Hhf?Cy%VFzyzu!)%3WXgzyz$VKwLJ{raY!ic}yGQryUx6GvmpR zm^K2JOK;kAitM&H=?6o!M*HMqmHF#ygv4Zo^Ziwx>dTc&7dr<%*U$!ZKgD;1+Q99@ z5b6l~4{)g89B5K=;rX3gfXDHC26|qBJ{TG!@vQ4wv&)Iaf08mKooASbu6Wakk686^ zZSt#RmYQ6(`WK7++hP4S7Mr1bO=yr!nm-d$!O^B)_dnl-(tSW?C)2xAoF9fe8r%#g2z@m7zyVkss7Int`x%91sClP>`d zCH$bxhCq&l2yM1H=o;QL9ojVsqiRzILaPQa1q%4f>~KEeKPgAn?;ZCkDNrk9{GF%o z2AR-45SNX7seuQs;oXsB9jGXn^bR#p|zZP5fAcleo2`94gXy$_{wi4pP%LEp zz}}?!pyiE!Z$^X%zw8-ZSoEKP zq)z;*$NXP1DEZA@w>ibPgVOv2xt`Fc-@(bk8u` z?$Kom(XQeDM(&aqKZ&ZpkI+hBR_J*g~J)|=V7bR4>IoaoZApeKoS8g3artJZa zZ=oqaj-8%+5AmHsy$q+JBc_Q?nF@LqI)(0L{sRKilT%@d$>3WWC)u9n-y^_MWBKe- z#JgQmhk72N@_!CW$dH2tUu@dgxcI?XS{K32p;ho66Bjn{4zfU`A zPxa3QmoiD&hMg&?P-Zr@RAs<}H!A37*bY;<6M6^o<8~lF?(yA0CA(X#*@-7K?~_>B z3Eej^Z&;T9;>UcO=%BMkF;buY|8E;r%L1v5J=l;ve4}uL zaFO}7NzJyyEA_Tpo1VTk4({~+?q3pHIF-)>pWf|AUl38HCf^Z?n;h#A#jEna?Gk!d z&c|-Z=kLn<5kAOw$-q9HNrj|BH+~o`pUdHc8&`(3L(gEy}1LeDf*OU}g zIB}eLAJfXZL|1%kT7&i9>sGkcQ6*2|#=uzPiuXw_EU55I@gXiL8a0$7+$cX<(D&s@ z-12w3qd1yJ>D^8|qFZTn-(VM|y{<4BWw)CDXgWH%qZgQy*xx4&3@8bC0^w79-%mfY zBfE|CM`xI4`qc8>zKEJ&c4FKNzwB8lD3Hd!FDT#l1=xTBgHTBQHX~d6RkRiMJ@3a` zS>IPRo;9KM+uASKbQFU|qo-*h15A&y$;Zm6{AS1N;<6pJx1@9aVz&U4)yaTmNA9h%Io z+J0vVn1@O0m#!`|P{I6mn9A)F=W$@p<37>NrqP#fzD3$NFuYTBWdp-vTkx%toiP+b zgN9@hK>-_yP9gXkAH^Y4K;RRQJSc{-5xIEsrwF~yp@t-e+DO&$q^AfUH-o}_On9l|4&DPaSE>*g15(WZt2uljZVN-2q{L z4LOyJ4)km2vjZh{s1uzt!4D13)5H zU>Wdpk0&j;MgCu(eC1U-T7?P2Jd1Z%1_ra2NeQr~xA5!T?nc40y{Y zeT1w2(ejDc%@gE<|4q{;p=_$zQn~HZfSvmF^jqGFg6KKJ{qrqTJE>u%y)gMGT9-1U zf^{iFDp;2?q=I!RL&{s1(rXG@Wa8)0)QW79aA;M7+(i=`3)`C*URQUR2&I<%ek%ek zi}rm!XN)8KSo$M@8M&971~hv987@t+dz|9BFqi=TvqXc?TE!Ckwo zmG6D1<0ps(1eeLmv!b%wz(@?M6&@a!m>wNIIFj2h@Vr1*Qst?l8Z~%N8}z`?!dNmi zp3FG(oyxh!MCds}&kY76^cJDF6#9(NXA1p9=qH8L4Esve3`stHg!Cz7jF2&bz<2MN zy3_Q-dhnfq3x4e2wMCBxtkr}j4_=S;Ua9|v^^Z!m$vUeuwlUKh%)05-y*nE}7jyy9 z%Xe+gMZ61OS&y!(7u-YNzdkD!Z4ITO?wAtb=voMKXga+)*&n#akbbDijH`WGzvY*m z0>pCBuF--3isIys?lQU@e=D z6C$p^Y0HX`z}u=XmOkH6doeV8@~Y%Ou&OKn2x1;Sn$xnxr!LE?3J1g5uF2i8`3Q8s znHD}}+nO5{G5;b+G*>PRb8{+l)9QYaeMTJ`j$Un7Jj28U4tITfNiYBGIw%;jblR~i zYB7I!^uG+AzPYs7>}>x*qQ99Z3S1?+8pMXGQn4XNzladlFeF=|1l(SG-Jcs&`xx|^ z`m4Il^4@1vaC4}EsoWesLwht7DU^^UXIx*o1F>@_{AdonM~*0@0i6TfVJaXG?-xm3U8Kgix-x0HwGAVcx}>4jCDAIW;MAv<7jD}v3{e5ckn{EL zjIfL0BCMGha;J94@;x~m-E6rSI%9H&$lp1cBX#R`r;-$g?7i^L!kbSX-Js-VP0}VI zA0LRNVx4_Sb>lHiimNNBIbTug#{(%k%CV4t3H^3(RC0MmfK+s!h)OZOnp{^>YF5mu zOX(9jtrR(E8;>&m>**H)T8qy0vSaXZ?CuGC!r|FJYXogFop_{7GlR z$sKhjCZe9iL|$iNJi?O6!pe^{RrzrB!s<`MDo^99KLz3GhU8i!fqQ`g!*+Dj z+y;xndKc_C9Wq{mk7{EoSAB+5QvDYvjNriH@g4bbz(Naytee=?eEbT2>)Pkk+`VZ5 z{|IK-ufF-Q<1!b8v8hbSfoD|6=Ow;QF-lOh(tu+)-w8)u{?4pavx&qWshAU0nm87T z{P)UR)F`ooNJDMx$C^5rI7bl02tU=#k+*}OH8xKnPSF+b*_@Mg?)EHyVUEXG_DV0^ zg3TgV7+#tA{!n-u1I{abo3|eL)4Ny~bLLizQyo{hmNPS~a#l7n)zAO))g67I2FDOr zExh}9fhU2?0cwiF)xIayTEkx$!5mwgXiobWgMkv$46fqH(O}jNoP`JBOz@TzG#k%C zzyn^>ED>K=s;ItLrOi9W}#E%k|2Ky5CU2Y%+t2gAQkP$~8AjoiuNlC$w zRoGGd`()F5m6y_HY!G||`HFOpgO3J1RvGLRBmrz zNM(CNQm4`y{j5D?dxMdU*5URJrdNOgY;Txn@*pf`%a56|tWP@j4DYL1I2{n_{wtmu)oL7|&bl!y|1G=>oMTUA^?{`f()egxlcqOVyrScxiu2 zxnC{r1ft5Cbekcb$*fU_Qdp?SaE*zhYL#**T(SI?PEDDFtt}kg1fx$bw^|~R4^Au2 zYKpywmwW024Hpb=AQqJ#E4+$NW74?Tev3PdY;!}~E)Q&u^gB`7>PRZ5cj=Ge&-}&K zTx>st1H|q~oy3nnUw8EaNAG{rJfDodtWrd;pSDjCCu<;YP%YH6TocPbPBl+YCM-kT z4*Dhy43CT^E|7(nSr_12+T3!Hv0<@~DHqIE))6kJe|DZJnvnw;4r_XL$lK$|bwn3z zd>6hWf)Nf8BRd9;dgO%U+_N&5&8S~%N?qK>^!@<-cF(ZOZx_VaIzpUkN|ni~1BlThnhr&wO&|R(xAmb^Uj=%eUVY`f_BLCXl>e}HGrK`|pn6SFSGCKJ za}1=5#TcPY>;Vc6f*4Z4K@dYKI0#}$1qVS4DeoW%Khg_RA4TV43@Pti?El3oEfEJx zmxx0YE6_vnnPoItCvro#KD!7)XEU&`>DS zR=Nh5I5-;NXby%}{Wg_$iahL6VLGv$E1pRKD$h}gFoTs)f#^!6`<O|+Dle)TXjPX18GAIF2;hDhD6#}gM{zw|4}P2q+J1H(xLG| z$C;aqzBt?uhtrpmk9^+U+qEJ_MLI!jg~?t~+i@atMkk7$;ds=r;IN~sG$}bSS?nmC zEOu4M$(;+(dX>iU-1ruq*fF6F+M=*lpEu6$2H#HAymn_)S$`;ga`DK%?6c;7c%&ko zC9Z+V3T!U_T(*BoHPiz};$#-?tFy#D3Llov#wyOndb_=M*N9u_<|Id)cx$u?@~z(6 zn_V$0#O`6f@#IgbKi+=i1W3GvDv{0iOC_NYQ9@*gQXxBDLevOhdu0+Lei|^(c*^`h zPzMoRIKw_Uxe+_=Wvw-^%3hd!fb|{i zc!qS+GwfPqIpM7WvgP77z9qlTaf-Aor-CGjAr&M^45=VVVn`*DB>oZE+M!yw->y`0{&d zbfd-lN|j)isP7z@^}WSQ6+AdQVG328b4rm*#9nxw1t{d?mxb2r$haTTKR2^Vh+)gK zVXJ0dxGl)@>kclP6RvXimpo^ZpD6U?QKDciFJPc5!U-r;NI($+p=|~roW?8k4Lx%6 zUDHP20Z!Gs?j=2PalIy5C{QZ}MTN~l2G01PoMQFg=S)F`&6M&An<=QUnNnV1GX=$6 zDdiP5Q?W{^2IdO^ZI)?9zF6Kz`9Qz-nHzW(SKJBDNM~eyC&z?FJq{t9`&$f z)cJLPcqEZ-6`NzSQ@q`5N91fDl%r%CX((9}GT zdEY_;fL~Ptho_v{20rGF?(+HM_uKy|Cy3E4LbC*h4rPQ<_bX`}mxnY?o`R8!tci5b z-%&6aS5H3hkc?ULj}#33+Mk#`5(vnZo;0gI^b<%re2n>`{)2bdC6)%GfAL_>mpJ^q zFz#z3yTBE)RaW|;vGedDi$85#QcgtWe^V^IVfnzDNhUOOBddc2V2bXtlDeV#qLZS1dEzwEu zU31|4-U(w(yM?Lz;Sq}U@ml;yYzCR#pU*HE7fT($a)m-)H?ipTiQe^O-^ef!ThuXi z_5g`byxzX?YYsue3p1~>*a1zT@<(E634WtQ`8OEDMmbZ0a$C3|{imBWmy2_A{!Hf? zHI00#Q$iF2#IPtlQr~r%=q$&TQ)BERdbQdokx2JRj3|6lqAk5CF{SW5gzxe2SQTyQ zSQUzgnMq3{qc`@DGhbNbex=qB>EokNl2AMD&W)%me1{3z?<5*Fnd(#nBRo1YlQ6LH z6wKt-B?g{JGq*vF}Jl*$c|41wGj47 zczEnU)B~}%x3>`)SRv<${NRNQe=&u9+VbVN`7Sr$eB<+q@f2T#_#z(9M^B~r=ZJsK z<9Ve9isv_R3iFbG3iA?P3iAR~3iHxL0z=y7=`Djssy!vOBR}f!D|~H9$MF0dD9XF( zJL^bb44i&u=Fu}rRrL>#kmivf4?|)F>Wi9<%}Jd;2T#Pdh_J@w3Gt_z?HE-2WF(~l zmtf8%5^GqJ6P`aNXi`17v$OF)!;t$s?+OYis^C+n`}v)BYwQ4zQSsllj~M<40;`wk zXm?E52Z63D54hf_SBI;(2)vUu0y7;QAM^hsfd?0lEjOrQ)(S4AJndwBBHEi})fHW9 zaqlVqP3xdwjmL2U>x=t_?LRpGIe{y6i@xcqTSYa6+ z=lYIo^+KQ)B@pY@=fK7>-)qC~;k&=b=f)MWta^tA3_mfeufStPYcKJRXA2K!#<3i) z@>R_X_U{|P|Bp=5X z#e&yzS62aaBjMK@Q=fq(%2{KF#t!cCQHVt5{KZd;l&2z1lsIB?ms*O&X!SY{(@Y9~ zmpDtmOOTr)7DJ)EV{u_*cp-U%{7Aq$EPeh$=hMgG$C|^n)}`;6!95TOdi%WE6{TIM z=HLHTp}AHqy5{($CqY99Y8!!SQoKO{Do1$~oGolQ_svees@MwCO_yr4%?h*=0M-i6 z%{^?g+kTtRvZ_PV1sn5*?fX&;GZL?EnVcT$0(oz5JKj0v*60t9{+9|RC3AXgQmx&v z+kZ}(dc;F2l!o795CklKkPOx<{tI1txiXf2W)6CEELkL6&g z#IX)?lET{ubntA~y?c1DcbCoqq2A&6Z@8DYk9WI}F52df4$jT&3AYV>koAp^MsI6F zP_{G zy|Zb?^{Bei9x9HQoPkA3rJFB9nprruJM7Vji#NfLv0iE057cUzuaNVWU4Y$e(Y}WY z$mY#IhD3eolBIw&DZ99BgHhs51!VB^#-Fo3KPpl{{y$WuFr0j0D&>^>`XC+BN5xD* zxlbB_$OsinMMpBx_-v$BH(SkGHJon1>-19PnilTd zPTd$Y1&P<*bB#JbFM3~v z)xmfE`2|1wcjONdLf*Ez+PZL1z}aM$>WXd{(f1&6=2^~V zjZBfMXYYTax$(+YK{Dl&fT~qDFk0XZRZg|)I>NVA^+etYF=U%C=LCJOvVaO*(xXzN zQ{pjzE%%7qMq_9&QR-C@6;|n1NEy#8bd5G2VFCA6tOj?#Lz^km%Q z@o*qsA^XN)I6R^aVeNy0J@y)(OB*%BkQrcYgQPxAkgabE^9R3bd}O>%taNb4 zg~7>nU71!AFu7u-9B^hML5@yAkX&ih$4YX^g?yCPgjYvqeJ@OX=uL$eU{d%4N?<== zP(X8TvWV`f1r%J6+H>$NJ$ChhA)4?mRT7{YMe@8b8o99YGKlz&-w6IrdM8*z z;agkCHemqp|GZy67+c^`&h!12F|FN}(B2UJCs$a(Zgkl6q>IDpG3h^F{A>u=B?==_15%MY$ii0G}8w~>^_=aith9n^39cJqXT;1 zT1F0EeiPC?+bSbySl1M`HYK1vtl}uKt=irx6oJRx6oI(v%M;}vq|4#4BWS> zX3BJp{LaUYT=H2WcjG?w%EV> zJ$h~zyYOQUuQErkAtRfIvK)GF|KOZ`sT)~)#IUyMw4!D4Tkf$Orn_?AFCEyMgGl4}(zSftuJ@2wto%?V>5cR4yc5 z7fmZfmJ5j&f;mGptAcyv>bPIa>+PddX$Wd?glJkSPEdwan4lq=Mwru7*@1ZeQd+%w z>9B-#rUc$RPD(!7a;_cRUcYeFo>@{BO&Io{x657HRV2qYIyQFw=FUsJ8^LPzg&&@% zwboSnG*-r(Xs@Y*GXE)7zTN9kWq208# z!C*|Il-W&x-g@Xs^RaJ*b5#P%-aOoOGJ9JXEPQ=*$EBslA*>Tb_L(96(c34pu0<-o z#!=%M8*4RYIr80-_I1+e%XHU~-KBS4#qMbIFe!Yz+_WIzmBn1R`=M8}pL^|luy+=O z`%G~U@62ujcpYvus@u)+mweViX8TKO6V<&xRm7-B<1}nBxj;zgtW2wGGbhm*)DJZw z`f1oI>>P-2$E2t-z*rFJ^V9I8is94~Pi zWem3+BL_Fx|F8qAc+CL;eX@Vtm6Jc%wX$pU%{Y5681K3)Ib5a6A#gV`k8L<2u7tf) zJZD6Z{fM!`uAl5?p!R4kP4)GTzzoh!~W(F6>>Fw-^Zapq4$i? z@%bTfL99xS*X=f^?|&t{qY0@VX;#{%jwbM_*6$b|&kXc9&8%3OltAVG2!gkLRs zG@ZDp7wdMMAN@~RwM*(Vqz{bB4Cy|v%-9)J^YraPe4gxvNTaG-Z+V18vc@eQd-CL^ z(d%;<@k^sdaGO}=Trj$X+4Z6kZ*B6IOgIGtW0?ej>W75&Mg5SPdYYIxmH8S7*VU7Y z6oDM1=tyL1VPfneywE7LKig8jz zqHV%yqu?DXY6yqKQtSyQxX1U6#bZWkHis5H#vODi4w|VdHPy4k*0}S>mHMl$R-m^z z#X2Q+5=`T+Qfmp8fxFNP_kzlN!IA^ey@Ep`qJFPLgKq#zxlyxOQGsuOqm9V1FFi<9 zL1GaQ*MEYe0el%5*U@g!t$Cm`O7qzVSkoPT?;EnGr|ZgYoLZNMmVwkm%Z#cbw?Wuf zi>P(EJRk5N;KTH4{Orc1VDa$5$?kU>4Ttul3fe5#ytOl^SKZaAYN*i@_*BzKrR|NG zlh{&ViaTs6{8u%h{(5zgg&=U3IgKeZ)RHpeHKytyTn{y-*y=NPmoYrbh2mq%Q*4I+ z4?;(>PauE!PvJ!`6}mUL(_ei#hxZ>d@6i&n(QyFRrWPOB zcf9I-nXtWGoA$ErRP~?zDAo1KR%n`<9Iid=Za0?IU{u5DCqy$Fu&gRDrQzo&?HTze z;8C{yGk>k4jbY$>!(^SGlbFsK%$as@XwBCj&j01?udt1wOfNYZuiPlfR`g23pH1#K z?a-o-#`7q`Sk^^qoPF>egzu^)%Culu2=ag9-{h~IlklO+<#Y`z)qNpMvtPy!Runqh z6iKj(9+>ky#t2 zXEj>5>2$#!Hd>$VKCAP5+v78`tWPhsDezHUGz9uxZEvxmR*jh~>%mivR;237XL7P1Bk|)5OOUM&^#+ z20xq^=)E-duMck)4ZN^y-7{7-7^AXf|F_?k!i7`?7S7v~Zoh2qCa|5fyjshlbDn}h z-LMsd2lmfnb)Nj|xPQmRwkuhkRlsUv9laetM>#wgJ+%UQT5pmpzd;1c@CuCVR> zR;=59qrxBVBS)h@;Iwpw7=*~tG!+lB3&=(Md4oRw$fgF(^?=^)0UQXoRDAxIe=Ed3X@QgE$!4XRlu8A6SiXK}2eB*b3foTrzv z@LqibSToMXDeq@P5!h(WFx@dEZybAPUuMH9mgZ4N1aUtSxcR0-Pl?H+C9wW{_V)`z z?g;nEsBY@ZpyQ{F6?WTyBpNvpH8D<8B;h#TWJS`Bax0OzqoX4MwXtUp4Sjjs9b7&n zs=RtRr4u(J^Kg#kVI&I@XJ!w=d)2X3@a}%Xw{8|w1Py)k+oXDKvgCE#3wZbCs&{Bq z>;~5M_ou^Z)H^cGR@U}Wr;^LmwvTxQD?PJ2-F9oUhGkXJ)Zgs>DD%85YxrWTTX1De zDdae}*w^j1csI*h{l=n~H+oz^xljd3mOvFNdseB&X9bEHja-xzAiu~JytSj(HR8wX z2L{vl!H0DDj<85Wj#bX-MVb#pqt*E21UW&I0;BwYWB8J2PJ-`5A#YoOLr>W3oEog4 zw}7$$POv7h&t#e8RY*H9!y+a?Bg$?vPCi#E-p5EW8xIa{B{%Y2;@Rnw9 zYGkjl12MJ(p!I8mmB~Y1zE_t@)m<^UDe@p0Qh^7_kX!Cv3)>ztX)h)58B!r9sC!C5 zy&OB8A>Sxrr~A}`lzIahR}HynHoA9r-O26f3A;KQPV+L&bcBY@R<~a($zpzu;A+9* zC!X!6l*v}U+w!KvwOSZ&0S5eoxo?xDv!>Lm)}aY)hpxC%bKj+t6Jl(2RR^;#slo^K z7~_K`=3}7BkS$}9mY>OoBO~LU9;`L!4CJi7*m1(3cT58iLYg3WN7X^J<6&PE8%P^f6H8mk_=&KWZ zhv(b@i$R|z^?3Y($pxU~WbEfNgAXx1JnX`JyS?3~-Z(b^9vSK9jXU%09%$?M4D{>L znVl(6V{mJ)HN$ta8v!yt3XWV}-@!j-Cwy^8ygO;ZYhg=fa@`XoG6xu5zEJ0qSzqh&;;p)QP>Z! zsD50O?Mef)UwBjYbxgI4v23^`kf46s>36}cXM_CTyJ=x?|3@ zkP3=4VyK!uJaFrl4gzhzcKi<0eM?(^W8#a^7QK@I@G!c5~yf zJrB`jo&G@juzLFk9KX$2&sa^9Ac<<^)U>Uz#QnjnMnS8tz_Cul(r3n6R)eLj9!}P} zC^BF#pNcB}U~*^XdprlyFxs4QDU&d=R4&WjYBBlfiB$+42q@aDcIaSdkZalGiNr~Ec1}7z_q2>5c zv?WEg4swV_Ck-5!gohkT_sJ2LoP_G)7%`8;v1O+gVQ;EH?5b9~lPof>K-0D#PG+nf zIUSZho28Q!nXd zKZC7i%MOF;=dFKu^hd)VW_~Q&E%7=}b*1I!1}{${Qy;BQMA}Ap1dtzkw2PT7GdZHc z%j{L^^>0Qz6M&pF-=hYNh+n9g0=jP9>OP&LITGf4nY*LsfzRJyL%zgl<;o+%7Jh5} z*qg>zR!-zfC!D!Rz4n&(4OZOcG4RUpVATziKU|mP7&RIaMZQ@uV8Vx48*AxkGMG`Ns;mKa=3^4~vsZW79J99&U)V?yVMaFzoZoJL}8Otlo{ z;6`FgM7qN|ad+wQ2W>(Lq0hYoy}v)OT;?@+87o2z`R6Cj>-Hi>kP;uQ)A!9MpQ0F9 zj>mDM4UBI-6nGB@I`*{A?c^ws+*pl&>uHraHsQ%?8B48l$Ii)-@hQksBa*ieM@6E# z;-eupB0J}*Tod?#{BNlz`VIEqZDR3~-4JlKr7eD0`%Bo!S$vN{*30Sk)|rpzvK~}{ z;VE9Ki`%wu2I-nrGsMq!RD~gu?bW(9a0y`VOlt1tFg4Ti7kdZCC22y_=mUw2>;R1+ zw+BegHVAh`2~1d!TjRm>_32Qf+UCLphn~@_uujQse>ESf$tr|ZbkFW(F|b!x#u|r? zU2H6WEq}xmlaQvFV(q_I^^_M{~#^>5Q<>OBf-vBjn*z#LG9>>Jw>sh{ye2U&`K*z?$PJtuN$wM#1w@bEYgv-2^PFR;>vQi#9$GWJ+R~ zw_U1UbLVuyO2gMqFT{O!OAl6<7}QSx0RK}ljGqh!mp&VHyQJnO%VDm+_lB3(IVKu| zSC>w|&vTk3r^}dW>%C}LoX#t-TiiKxMz(qw3^u#d*5JB*Cz&$_&kNfYUpn`(gz}!Y z^UfGzKRe96HvHySxpOLMPU+3vLtC*66>ed_uh?E+Hmd<^72LIa7rnu{UT?;k`A-yn z{&Fir22SO^V5qK7Kh*E($LspUA>3cD7xtV4B%5tkUVoB?m>a)elJ=%;v20$=IdS}y zwr`9UkCCE@s_NPe_ouwd@L`$QUojXRe63;eTX&TRKJV?{A+-A)#yezLaH7Nq?%gYz z_G*?0hAqvm;^JvEjuy~mJt7-EQDti@FtH`Xk>2dZjS!ph^Jv5&4Ee$Q#_b( zYjZarmL;;ZH)S7HBY@;n?N83gIFO2JV?qd;7+&vsCoXdW%f|kyR`e$VUEj>>UbVZV zHH6h3{d=e3%5NetP408$m}=2m_8R-E3QvbD{M!EO$)zy%MdHWL>CDBtt_8v zz3p?LV&fI8?5VA>VD*_26NNTHy!?zbGK>x~`E*V4OWZ@!Ll2ua#v{nY!Y1+@zxap{ z6vJ{eb181iL3^9>Bl6)3O}(fEc6vSo%E zT4C~{Y?-0xgnJcr!Yve~ybg*VCwC<=glYa(JJsTwAA+m_+!r$O3z>$_^b48zh1G`Y z@>yVY!HpWb>pQot*q3x7p_W)G@(a;1FL7G!Mt{)<=}n!vzHlegilSs}MPU+&rE!MV zn7pVnpE&$}oZ)OS4C-#ReX3{FbF8{ZO@%ao<--Ax&h`$>sOdbNJe2>@2aCdaFUPzn ztp_`zKX-WlbZZ@%X0G63OmLu7QB6(DwpPJbi^JjIRoE{->-mLsN)!_En|-WVbJ~dg zU~w_*@#q%2OJL26I}r&lezk+#tCxyTPChbU1ev+_&J=w8?(=W^jCYsw4?Px(Jr>LN zSS<2k1c9lH}lb}#_d^s%&Bob72k8F&x)G^9YlrmfvkKIdz{+?V7ZWh_& z6bMH*^WnTF+dkOvNJBj_7<=4_Xwo8fFPRB+s)%5*N%8!tFV?n@pBw}>lIaw)P(QG8 zR8Ryc?-GBcr|&RooHveO72R`r;2iR`#El z8L(d$E|(SWIsekz3KrGX8<}+4xQ-G=^o`;uWBm@7U2Xh!ZNa*N z?qq6Gf9y$rLtCk;mRK5Nn2c#0g<}m_Ty#??+z;V?94xF&Rvr1t6C#2D;W2paqnbdZhVCpN0XY!od3OQ)_ zc}4rUJN9wUO8WTP?It(t8+2Std^m-W6~umOVk_8ZH zX6PwxW*C4IwS}QQCKsHPqHFmY3lGd4&iYTb`V|OQTvstE@zHD}poUsp1Q&&VQOp)j z!||ZHiP`Tn41Q$7(F6*@9|13KA-jC-&LFT)n9ccpHpe2 zbFk7mw9=|rX;o5bK@P!cjXsE2+-w#FNwl3kWPep;(cFcoCj@g8i-%J){S%`*|)O zIN~jwIlkkKYn_fuz^t&@{#Es!mcjbI?JjKlH6~7p>6~Cy*G~WF+9cB-AE2Y|kF=Mg zdz^(^Rhlmi>ao!o>`J3MTCShC39LWXSSOhrQC+ZggI{%fUA}$c-eUNJ9fx3?QNbod zi9H1~qYxqrRt&XW(I^5UOgc^YIPHwDpn)$$tQFMvD{8!hmE+G0l?i#pFv6_5o_MKg zrl4V6Q5#s$^%Znv!7JKwN`2#cZ$W2_dEXiHwF@9^t*`pcIUTG8C|g!Xl|qs zKoSPp1g()enA$_fGZ*?UT-m-8ya+gw*{FKZZ;0Pz&}OLf)l9(<1)BWSRv$9dbTGJT z7(MiB{dJRIJ0d96f~tkaMm^~}HyHh^{dw(B$$KR+x+>~QS5T2wqUcxA(tsHlz}esy z)w{oL5h3_C6IA`6;hf)fbDyW%%T(9|#jPccoN7i`%=3i-*}B@c-wkprMlAx{<*AA1 z-|Sx}C>23`yw0sJ@w-OD@D)auJG+0`00(xw^ggRT`lAw=G!sR`uHVxOR=Oi=^YIu`$w|=$Ht;klcD~f?>U%ie`0dIx>7_zJP6?8uStHigJ6sCttxcY_4s+H4o9%Zz zhnSn)h9NEHJsfH2bQyL}{rw|rDVmg3z5F?=#55`qaz`JGwp%wR=@ry% zw`rL1l(t>qwA+bLqqQIO!1G z2EU#rL^Xjur}qX<-+vmO zII(;~)xCp9&WFCS(^sroNPM=9GuT}E6X`O7nYCGe?Rnk{liM+&J{Iync}X@NvJ@# z2);d7$RQcE!y*gGTyYBH3?*jt!hvTPp{94`tXJ-6u$41eLaND3K;^YRC5PZz=U zR;{i^`40C4_2KQi`4?}T4zE1TVolz)I1evZht<8%{@Q!^_HwFT|CP}_;Z>EXN9RQi ziG!AQ7YZHk6s18=v+H{wed(_XO_~H2X&gMXN{~juIq$Eh%SLIH0Ml%MiUb~`Kt%A{*Lh1_U%fAk zF4cw=DVo`1v(TF3b@;+vD~>yk1E#16Q45E!RjogBAgInvdhzqCK?gwq1dkU?JNNL( z#|1Fs-ntL|?k`WnlfBy));)ST9hlZG`-BMYq&>2T*?E*&Fv&6R!^1hH8geB!GAqY8 z$F~V58vWsRFtEquj<+L!15He|5DG<7Khyx(PttCP>qc>XF<)PrFBWmJ6gLR-4Wju{ z5SK!6S(q=2<{OE)krX!(^G&4rCLwMT!9l0c?EFE{`F^GB8*k+KcpG-dN_ZJ&Vj8C^ z-YGPi2WrAD^Xw(3YwB8}V+%b`^I^+U1qaeH_qoik9CUs>)$fwG!7u35u&&nNbgLr4 z*{l%MTJR$xc)bAT-9hl(0B_pG%!qd!tqC=!4Dt%>sJ&b;x`mgwN8K{m^+^KtE{)R6 z-ug{bW+n9XT8ih9X%i1Z@ux1?9#5=agJ9~zJpGD5^YX7}RyECjDeD%o^oxEXrlIH+ z_KSWm0ugRp8T#HT(?>oRB$w)FE?IkPc6dliWPBRaIH7$-F7aRV{V;W>Z@Ul(CxP^< zz9*(Y?B;K%UjB`ggQYoPBKPEj*`GRnZ|HP{Q{a&Aey%`kEXIizSc5=ZfsR-pnNZ)b zm~Z+Xv_MNN&;bk7T-R#WVqF_oY~M%PzOL1Gby~J|;fzY! z_YT|lj<)Zez6*g!b>3t9-qZGd!1jHh?fZxo`$*g8+j4jCijM<`kXPYH41Q(}s$7p* znJ9v|!bIKDp8Kj+^3@XjY6<;n34RqJ^3~_~)#vo9FYv1`=vQCjS6|Yvo(kL2e0)ZL zlk#3I(YMB8NUxUY*B}sApd%JYdi4bs^Mdy3OMOc$ko4+r*KL7$!ipi1g|){qC6h;>)6q+R~XGEqg0_89PNR^)sxB3Hg>VclV3*&p#dCE3f!rtoUJC z@xxeggh<7Y=sRK}6+f!)ipd9|WBSgRC?Dp2(}bJ}es>u|L!KYo4tbIxcIJX{Cg1<& zt*Pvm@r$^sps*$yjr&qL*&N5(KA4w|KZ_}(bo?gMy^6YGsCei95fHQr7d zyY)tafpiP{KG>pffi2pqZ-xoEUecY2+evY|5Vwos3K3UGakunqNpIjH{yO%oC@x&Dh8x3su+brmF%|Q zJoe;Go2Qjaatfm#(JB604CgZL3Q?2dnFrp_%49k{^%s!3<%*&^#_=LlVoIRMJ z8r;vc8(Cvd*ri`MXnHVcLqyH7rcQ+r(5tW3`WXkhLM@kB7xTNVe+GiTrI$ga%f3Ea zcn~HXO1ir1)c8fv#Anzt58;7`Y6gLrZ6De*c;$~9ZTmv6;hEKNp zMTlEOamx|6oZ{9XZVkn4K->n3i!lsDX+$p^RQD9Sb@$#ZPEfuN%*TCTKHUfATEjO${tK6VjYDf%2VI9zvu|$yiJ>EoKnzXoKjE)+y)uVe#eYPRff3$6~^1G2vJYLRhVm#`A*m z_M3N?4FoA9ck(>Pq`4;l{GB zqw2rxSjo{9j7L{6J-UMN=t78lI|Sd3!XBx8zWJfZy{p8^KkbE|_M)Hm!cQYadZaym zx;^={)ECbeUwXb=bFcj=Zc0mivH{EgsKDL)>Mm6m>rI3&5&It0?P`+)fxgSLtOMGh z+QFH@o`<@`9Y3zTAHA?2y=XsrVLu|oecTH_PDa%iyU&+&AC;ube^dfL2Co~pDm>T< zzCX!tY1UxgR1w^4x83p1a-TcO8)}0MwV@5Q!G?^n1)Q3y3TH(Vf7b1u=L^xF z8_w<6WpNfbc8sfGU1vrD2w_04C3hdLddvrXH=nzbDBYgC3>H>f*Qaz@;unk_y5n

bwN=p+?PmFNmzJtDbcHC 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. - -/** @file bits/basic_string.tcc - * This is an internal header file, included by other library headers. - * Do not attempt to use it directly. @headername{string} - */ - -// -// ISO C++ 14882: 21 Strings library -// - -// Written by Jason Merrill based upon the specification by Takanori Adachi -// in ANSI X3J16/94-0013R2. Rewritten by Nathan Myers to ISO-14882. -// Non-reference-counted implementation written by Paolo Carlini and -// updated by Jonathan Wakely for ISO-14882-2011. - -#ifndef _BASIC_STRING_TCC -#define _BASIC_STRING_TCC 1 - -#pragma GCC system_header - -#include - -namespace std _GLIBCXX_VISIBILITY(default) -{ -_GLIBCXX_BEGIN_NAMESPACE_VERSION - -#if _GLIBCXX_USE_CXX11_ABI - - template - const typename basic_string<_CharT, _Traits, _Alloc>::size_type - basic_string<_CharT, _Traits, _Alloc>::npos; - - template - _GLIBCXX20_CONSTEXPR - void - basic_string<_CharT, _Traits, _Alloc>:: - swap(basic_string& __s) _GLIBCXX_NOEXCEPT - { - if (this == std::__addressof(__s)) - return; - - _Alloc_traits::_S_on_swap(_M_get_allocator(), __s._M_get_allocator()); - - if (_M_is_local()) - if (__s._M_is_local()) - { - if (length() && __s.length()) - { - _CharT __tmp_data[_S_local_capacity + 1]; - traits_type::copy(__tmp_data, __s._M_local_buf, - __s.length() + 1); - traits_type::copy(__s._M_local_buf, _M_local_buf, - length() + 1); - traits_type::copy(_M_local_buf, __tmp_data, - __s.length() + 1); - } - else if (__s.length()) - { - traits_type::copy(_M_local_buf, __s._M_local_buf, - __s.length() + 1); - _M_length(__s.length()); - __s._M_set_length(0); - return; - } - else if (length()) - { - traits_type::copy(__s._M_local_buf, _M_local_buf, - length() + 1); - __s._M_length(length()); - _M_set_length(0); - return; - } - } - else - { - const size_type __tmp_capacity = __s._M_allocated_capacity; - traits_type::copy(__s._M_local_buf, _M_local_buf, - length() + 1); - _M_data(__s._M_data()); - __s._M_data(__s._M_local_buf); - _M_capacity(__tmp_capacity); - } - else - { - const size_type __tmp_capacity = _M_allocated_capacity; - if (__s._M_is_local()) - { - traits_type::copy(_M_local_buf, __s._M_local_buf, - __s.length() + 1); - __s._M_data(_M_data()); - _M_data(_M_local_buf); - } - else - { - pointer __tmp_ptr = _M_data(); - _M_data(__s._M_data()); - __s._M_data(__tmp_ptr); - _M_capacity(__s._M_allocated_capacity); - } - __s._M_capacity(__tmp_capacity); - } - - const size_type __tmp_length = length(); - _M_length(__s.length()); - __s._M_length(__tmp_length); - } - - template - _GLIBCXX20_CONSTEXPR - typename basic_string<_CharT, _Traits, _Alloc>::pointer - basic_string<_CharT, _Traits, _Alloc>:: - _M_create(size_type& __capacity, size_type __old_capacity) - { - // _GLIBCXX_RESOLVE_LIB_DEFECTS - // 83. String::npos vs. string::max_size() - if (__capacity > max_size()) - std::__throw_length_error(__N("basic_string::_M_create")); - - // The below implements an exponential growth policy, necessary to - // meet amortized linear time requirements of the library: see - // http://gcc.gnu.org/ml/libstdc++/2001-07/msg00085.html. - if (__capacity > __old_capacity && __capacity < 2 * __old_capacity) - { - __capacity = 2 * __old_capacity; - // Never allocate a string bigger than max_size. - if (__capacity > max_size()) - __capacity = max_size(); - } - - // NB: Need an array of char_type[__capacity], plus a terminating - // null char_type() element. - return _Alloc_traits::allocate(_M_get_allocator(), __capacity + 1); - } - - // NB: This is the special case for Input Iterators, used in - // istreambuf_iterators, etc. - // Input Iterators have a cost structure very different from - // pointers, calling for a different coding style. - template - template - _GLIBCXX20_CONSTEXPR - void - basic_string<_CharT, _Traits, _Alloc>:: - _M_construct(_InIterator __beg, _InIterator __end, - std::input_iterator_tag) - { - size_type __len = 0; - size_type __capacity = size_type(_S_local_capacity); - - pointer __p = _M_use_local_data(); - - while (__beg != __end && __len < __capacity) - { - __p[__len++] = *__beg; - ++__beg; - } - - struct _Guard - { - _GLIBCXX20_CONSTEXPR - explicit _Guard(basic_string* __s) : _M_guarded(__s) { } - - _GLIBCXX20_CONSTEXPR - ~_Guard() { if (_M_guarded) _M_guarded->_M_dispose(); } - - basic_string* _M_guarded; - } __guard(this); - - while (__beg != __end) - { - if (__len == __capacity) - { - // Allocate more space. - __capacity = __len + 1; - pointer __another = _M_create(__capacity, __len); - this->_S_copy(__another, _M_data(), __len); - _M_dispose(); - _M_data(__another); - _M_capacity(__capacity); - } - traits_type::assign(_M_data()[__len++], *__beg); - ++__beg; - } - - __guard._M_guarded = 0; - - _M_set_length(__len); - } - - template - template - _GLIBCXX20_CONSTEXPR - void - basic_string<_CharT, _Traits, _Alloc>:: - _M_construct(_InIterator __beg, _InIterator __end, - std::forward_iterator_tag) - { - size_type __dnew = static_cast(std::distance(__beg, __end)); - - if (__dnew > size_type(_S_local_capacity)) - { - _M_data(_M_create(__dnew, size_type(0))); - _M_capacity(__dnew); - } - else - _M_use_local_data(); - - // Check for out_of_range and length_error exceptions. - struct _Guard - { - _GLIBCXX20_CONSTEXPR - explicit _Guard(basic_string* __s) : _M_guarded(__s) { } - - _GLIBCXX20_CONSTEXPR - ~_Guard() { if (_M_guarded) _M_guarded->_M_dispose(); } - - basic_string* _M_guarded; - } __guard(this); - - this->_S_copy_chars(_M_data(), __beg, __end); - - __guard._M_guarded = 0; - - _M_set_length(__dnew); - } - - template - _GLIBCXX20_CONSTEXPR - void - basic_string<_CharT, _Traits, _Alloc>:: - _M_construct(size_type __n, _CharT __c) - { - if (__n > size_type(_S_local_capacity)) - { - _M_data(_M_create(__n, size_type(0))); - _M_capacity(__n); - } - else - _M_use_local_data(); - - if (__n) - this->_S_assign(_M_data(), __n, __c); - - _M_set_length(__n); - } - - template - _GLIBCXX20_CONSTEXPR - void - basic_string<_CharT, _Traits, _Alloc>:: - _M_assign(const basic_string& __str) - { - if (this != std::__addressof(__str)) - { - const size_type __rsize = __str.length(); - const size_type __capacity = capacity(); - - if (__rsize > __capacity) - { - size_type __new_capacity = __rsize; - pointer __tmp = _M_create(__new_capacity, __capacity); - _M_dispose(); - _M_data(__tmp); - _M_capacity(__new_capacity); - } - - if (__rsize) - this->_S_copy(_M_data(), __str._M_data(), __rsize); - - _M_set_length(__rsize); - } - } - - template - _GLIBCXX20_CONSTEXPR - void - basic_string<_CharT, _Traits, _Alloc>:: - reserve(size_type __res) - { - const size_type __capacity = capacity(); - // _GLIBCXX_RESOLVE_LIB_DEFECTS - // 2968. Inconsistencies between basic_string reserve and - // vector/unordered_map/unordered_set reserve functions - // P0966 reserve should not shrink - if (__res <= __capacity) - return; - - pointer __tmp = _M_create(__res, __capacity); - this->_S_copy(__tmp, _M_data(), length() + 1); - _M_dispose(); - _M_data(__tmp); - _M_capacity(__res); - } - - template - _GLIBCXX20_CONSTEXPR - void - basic_string<_CharT, _Traits, _Alloc>:: - _M_mutate(size_type __pos, size_type __len1, const _CharT* __s, - size_type __len2) - { - const size_type __how_much = length() - __pos - __len1; - - size_type __new_capacity = length() + __len2 - __len1; - pointer __r = _M_create(__new_capacity, capacity()); - - if (__pos) - this->_S_copy(__r, _M_data(), __pos); - if (__s && __len2) - this->_S_copy(__r + __pos, __s, __len2); - if (__how_much) - this->_S_copy(__r + __pos + __len2, - _M_data() + __pos + __len1, __how_much); - - _M_dispose(); - _M_data(__r); - _M_capacity(__new_capacity); - } - - template - _GLIBCXX20_CONSTEXPR - void - basic_string<_CharT, _Traits, _Alloc>:: - _M_erase(size_type __pos, size_type __n) - { - const size_type __how_much = length() - __pos - __n; - - if (__how_much && __n) - this->_S_move(_M_data() + __pos, _M_data() + __pos + __n, __how_much); - - _M_set_length(length() - __n); - } - - template - _GLIBCXX20_CONSTEXPR - void - basic_string<_CharT, _Traits, _Alloc>:: - reserve() - { - if (_M_is_local()) - return; - - const size_type __length = length(); - const size_type __capacity = _M_allocated_capacity; - - if (__length <= size_type(_S_local_capacity)) - { - this->_S_copy(_M_use_local_data(), _M_data(), __length + 1); - _M_destroy(__capacity); - _M_data(_M_local_data()); - } -#if __cpp_exceptions - else if (__length < __capacity) - try - { - pointer __tmp - = _Alloc_traits::allocate(_M_get_allocator(), __length + 1); - this->_S_copy(__tmp, _M_data(), __length + 1); - _M_dispose(); - _M_data(__tmp); - _M_capacity(__length); - } - catch (const __cxxabiv1::__forced_unwind&) - { throw; } - catch (...) - { /* swallow the exception */ } -#endif - } - - template - _GLIBCXX20_CONSTEXPR - void - basic_string<_CharT, _Traits, _Alloc>:: - resize(size_type __n, _CharT __c) - { - const size_type __size = this->size(); - if (__size < __n) - this->append(__n - __size, __c); - else if (__n < __size) - this->_M_set_length(__n); - } - - template - _GLIBCXX20_CONSTEXPR - basic_string<_CharT, _Traits, _Alloc>& - basic_string<_CharT, _Traits, _Alloc>:: - _M_append(const _CharT* __s, size_type __n) - { - const size_type __len = __n + this->size(); - - if (__len <= this->capacity()) - { - if (__n) - this->_S_copy(this->_M_data() + this->size(), __s, __n); - } - else - this->_M_mutate(this->size(), size_type(0), __s, __n); - - this->_M_set_length(__len); - return *this; - } - - template - template - _GLIBCXX20_CONSTEXPR - basic_string<_CharT, _Traits, _Alloc>& - basic_string<_CharT, _Traits, _Alloc>:: - _M_replace_dispatch(const_iterator __i1, const_iterator __i2, - _InputIterator __k1, _InputIterator __k2, - std::__false_type) - { - // _GLIBCXX_RESOLVE_LIB_DEFECTS - // 2788. unintentionally require a default constructible allocator - const basic_string __s(__k1, __k2, this->get_allocator()); - const size_type __n1 = __i2 - __i1; - return _M_replace(__i1 - begin(), __n1, __s._M_data(), - __s.size()); - } - - template - _GLIBCXX20_CONSTEXPR - basic_string<_CharT, _Traits, _Alloc>& - basic_string<_CharT, _Traits, _Alloc>:: - _M_replace_aux(size_type __pos1, size_type __n1, size_type __n2, - _CharT __c) - { - _M_check_length(__n1, __n2, "basic_string::_M_replace_aux"); - - const size_type __old_size = this->size(); - const size_type __new_size = __old_size + __n2 - __n1; - - if (__new_size <= this->capacity()) - { - pointer __p = this->_M_data() + __pos1; - - const size_type __how_much = __old_size - __pos1 - __n1; - if (__how_much && __n1 != __n2) - this->_S_move(__p + __n2, __p + __n1, __how_much); - } - else - this->_M_mutate(__pos1, __n1, 0, __n2); - - if (__n2) - this->_S_assign(this->_M_data() + __pos1, __n2, __c); - - this->_M_set_length(__new_size); - return *this; - } - - template - __attribute__((__noinline__, __noclone__, __cold__)) void - basic_string<_CharT, _Traits, _Alloc>:: - _M_replace_cold(pointer __p, size_type __len1, const _CharT* __s, - const size_type __len2, const size_type __how_much) - { - // Work in-place. - if (__len2 && __len2 <= __len1) - this->_S_move(__p, __s, __len2); - if (__how_much && __len1 != __len2) - this->_S_move(__p + __len2, __p + __len1, __how_much); - if (__len2 > __len1) - { - if (__s + __len2 <= __p + __len1) - this->_S_move(__p, __s, __len2); - else if (__s >= __p + __len1) - { - // Hint to middle end that __p and __s overlap - // (PR 98465). - const size_type __poff = (__s - __p) + (__len2 - __len1); - this->_S_copy(__p, __p + __poff, __len2); - } - else - { - const size_type __nleft = (__p + __len1) - __s; - this->_S_move(__p, __s, __nleft); - this->_S_copy(__p + __nleft, __p + __len2, __len2 - __nleft); - } - } - } - - template - _GLIBCXX20_CONSTEXPR - basic_string<_CharT, _Traits, _Alloc>& - basic_string<_CharT, _Traits, _Alloc>:: - _M_replace(size_type __pos, size_type __len1, const _CharT* __s, - const size_type __len2) - { - _M_check_length(__len1, __len2, "basic_string::_M_replace"); - - const size_type __old_size = this->size(); - const size_type __new_size = __old_size + __len2 - __len1; - - if (__new_size <= this->capacity()) - { - pointer __p = this->_M_data() + __pos; - - const size_type __how_much = __old_size - __pos - __len1; -#if __cpp_lib_is_constant_evaluated - if (std::is_constant_evaluated()) - { - auto __newp = _Alloc_traits::allocate(_M_get_allocator(), - __new_size); - _S_copy(__newp, this->_M_data(), __pos); - _S_copy(__newp + __pos, __s, __len2); - _S_copy(__newp + __pos + __len2, __p + __len1, __how_much); - _S_copy(this->_M_data(), __newp, __new_size); - this->_M_get_allocator().deallocate(__newp, __new_size); - } - else -#endif - if (__builtin_expect(_M_disjunct(__s), true)) - { - if (__how_much && __len1 != __len2) - this->_S_move(__p + __len2, __p + __len1, __how_much); - if (__len2) - this->_S_copy(__p, __s, __len2); - } - else - _M_replace_cold(__p, __len1, __s, __len2, __how_much); - } - else - this->_M_mutate(__pos, __len1, __s, __len2); - - this->_M_set_length(__new_size); - return *this; - } - - template - _GLIBCXX20_CONSTEXPR - typename basic_string<_CharT, _Traits, _Alloc>::size_type - basic_string<_CharT, _Traits, _Alloc>:: - copy(_CharT* __s, size_type __n, size_type __pos) const - { - _M_check(__pos, "basic_string::copy"); - __n = _M_limit(__pos, __n); - __glibcxx_requires_string_len(__s, __n); - if (__n) - _S_copy(__s, _M_data() + __pos, __n); - // 21.3.5.7 par 3: do not append null. (good.) - return __n; - } - -#if __cplusplus > 202002L - template - template - constexpr void - basic_string<_CharT, _Traits, _Alloc>:: - resize_and_overwrite(size_type __n, _Operation __op) - { - const size_type __capacity = capacity(); - _CharT* __p; - if (__n > __capacity) - { - __p = _M_create(__n, __capacity); - this->_S_copy(__p, _M_data(), length()); // exclude trailing null -#if __cpp_lib_is_constant_evaluated - if (std::is_constant_evaluated()) - traits_type::assign(__p + length(), __n - length(), _CharT()); -#endif - _M_dispose(); - _M_data(__p); - _M_capacity(__n); - } - else - __p = _M_data(); - struct _Terminator { - constexpr ~_Terminator() { _M_this->_M_set_length(_M_r); } - basic_string* _M_this; - size_type _M_r; - }; - _Terminator __term{this}; - auto __r = std::move(__op)(auto(__p), auto(__n)); - static_assert(ranges::__detail::__is_integer_like); - _GLIBCXX_DEBUG_ASSERT(__r >= 0 && __r <= __n); - __term._M_r = size_type(__r); - if (__term._M_r > __n) - __builtin_unreachable(); - } -#endif // C++23 - -#endif // _GLIBCXX_USE_CXX11_ABI - -#if __cpp_lib_constexpr_string >= 201907L -# define _GLIBCXX_STRING_CONSTEXPR constexpr -#else -# define _GLIBCXX_STRING_CONSTEXPR -#endif - template - _GLIBCXX_STRING_CONSTEXPR - typename basic_string<_CharT, _Traits, _Alloc>::size_type - basic_string<_CharT, _Traits, _Alloc>:: - find(const _CharT* __s, size_type __pos, size_type __n) const - _GLIBCXX_NOEXCEPT - { - __glibcxx_requires_string_len(__s, __n); - const size_type __size = this->size(); - - if (__n == 0) - return __pos <= __size ? __pos : npos; - if (__pos >= __size) - return npos; - - const _CharT __elem0 = __s[0]; - const _CharT* const __data = data(); - const _CharT* __first = __data + __pos; - const _CharT* const __last = __data + __size; - size_type __len = __size - __pos; - - while (__len >= __n) - { - // Find the first occurrence of __elem0: - __first = traits_type::find(__first, __len - __n + 1, __elem0); - if (!__first) - return npos; - // Compare the full strings from the first occurrence of __elem0. - // We already know that __first[0] == __s[0] but compare them again - // anyway because __s is probably aligned, which helps memcmp. - if (traits_type::compare(__first, __s, __n) == 0) - return __first - __data; - __len = __last - ++__first; - } - return npos; - } - - template - _GLIBCXX_STRING_CONSTEXPR - typename basic_string<_CharT, _Traits, _Alloc>::size_type - basic_string<_CharT, _Traits, _Alloc>:: - find(_CharT __c, size_type __pos) const _GLIBCXX_NOEXCEPT - { - size_type __ret = npos; - const size_type __size = this->size(); - if (__pos < __size) - { - const _CharT* __data = _M_data(); - const size_type __n = __size - __pos; - const _CharT* __p = traits_type::find(__data + __pos, __n, __c); - if (__p) - __ret = __p - __data; - } - return __ret; - } - - template - _GLIBCXX_STRING_CONSTEXPR - typename basic_string<_CharT, _Traits, _Alloc>::size_type - basic_string<_CharT, _Traits, _Alloc>:: - rfind(const _CharT* __s, size_type __pos, size_type __n) const - _GLIBCXX_NOEXCEPT - { - __glibcxx_requires_string_len(__s, __n); - const size_type __size = this->size(); - if (__n <= __size) - { - __pos = std::min(size_type(__size - __n), __pos); - const _CharT* __data = _M_data(); - do - { - if (traits_type::compare(__data + __pos, __s, __n) == 0) - return __pos; - } - while (__pos-- > 0); - } - return npos; - } - - template - _GLIBCXX_STRING_CONSTEXPR - typename basic_string<_CharT, _Traits, _Alloc>::size_type - basic_string<_CharT, _Traits, _Alloc>:: - rfind(_CharT __c, size_type __pos) const _GLIBCXX_NOEXCEPT - { - size_type __size = this->size(); - if (__size) - { - if (--__size > __pos) - __size = __pos; - for (++__size; __size-- > 0; ) - if (traits_type::eq(_M_data()[__size], __c)) - return __size; - } - return npos; - } - - template - _GLIBCXX_STRING_CONSTEXPR - typename basic_string<_CharT, _Traits, _Alloc>::size_type - basic_string<_CharT, _Traits, _Alloc>:: - find_first_of(const _CharT* __s, size_type __pos, size_type __n) const - _GLIBCXX_NOEXCEPT - { - __glibcxx_requires_string_len(__s, __n); - for (; __n && __pos < this->size(); ++__pos) - { - const _CharT* __p = traits_type::find(__s, __n, _M_data()[__pos]); - if (__p) - return __pos; - } - return npos; - } - - template - _GLIBCXX_STRING_CONSTEXPR - typename basic_string<_CharT, _Traits, _Alloc>::size_type - basic_string<_CharT, _Traits, _Alloc>:: - find_last_of(const _CharT* __s, size_type __pos, size_type __n) const - _GLIBCXX_NOEXCEPT - { - __glibcxx_requires_string_len(__s, __n); - size_type __size = this->size(); - if (__size && __n) - { - if (--__size > __pos) - __size = __pos; - do - { - if (traits_type::find(__s, __n, _M_data()[__size])) - return __size; - } - while (__size-- != 0); - } - return npos; - } - - template - _GLIBCXX_STRING_CONSTEXPR - typename basic_string<_CharT, _Traits, _Alloc>::size_type - basic_string<_CharT, _Traits, _Alloc>:: - find_first_not_of(const _CharT* __s, size_type __pos, size_type __n) const - _GLIBCXX_NOEXCEPT - { - __glibcxx_requires_string_len(__s, __n); - for (; __pos < this->size(); ++__pos) - if (!traits_type::find(__s, __n, _M_data()[__pos])) - return __pos; - return npos; - } - - template - _GLIBCXX_STRING_CONSTEXPR - typename basic_string<_CharT, _Traits, _Alloc>::size_type - basic_string<_CharT, _Traits, _Alloc>:: - find_first_not_of(_CharT __c, size_type __pos) const _GLIBCXX_NOEXCEPT - { - for (; __pos < this->size(); ++__pos) - if (!traits_type::eq(_M_data()[__pos], __c)) - return __pos; - return npos; - } - - template - _GLIBCXX_STRING_CONSTEXPR - typename basic_string<_CharT, _Traits, _Alloc>::size_type - basic_string<_CharT, _Traits, _Alloc>:: - find_last_not_of(const _CharT* __s, size_type __pos, size_type __n) const - _GLIBCXX_NOEXCEPT - { - __glibcxx_requires_string_len(__s, __n); - size_type __size = this->size(); - if (__size) - { - if (--__size > __pos) - __size = __pos; - do - { - if (!traits_type::find(__s, __n, _M_data()[__size])) - return __size; - } - while (__size--); - } - return npos; - } - - template - _GLIBCXX_STRING_CONSTEXPR - typename basic_string<_CharT, _Traits, _Alloc>::size_type - basic_string<_CharT, _Traits, _Alloc>:: - find_last_not_of(_CharT __c, size_type __pos) const _GLIBCXX_NOEXCEPT - { - size_type __size = this->size(); - if (__size) - { - if (--__size > __pos) - __size = __pos; - do - { - if (!traits_type::eq(_M_data()[__size], __c)) - return __size; - } - while (__size--); - } - return npos; - } - -#undef _GLIBCXX_STRING_CONSTEXPR - - // 21.3.7.9 basic_string::getline and operators - template - basic_istream<_CharT, _Traits>& - operator>>(basic_istream<_CharT, _Traits>& __in, - basic_string<_CharT, _Traits, _Alloc>& __str) - { - typedef basic_istream<_CharT, _Traits> __istream_type; - typedef basic_string<_CharT, _Traits, _Alloc> __string_type; - typedef typename __istream_type::ios_base __ios_base; - typedef typename __istream_type::int_type __int_type; - typedef typename __string_type::size_type __size_type; - typedef ctype<_CharT> __ctype_type; - typedef typename __ctype_type::ctype_base __ctype_base; - - __size_type __extracted = 0; - typename __ios_base::iostate __err = __ios_base::goodbit; - typename __istream_type::sentry __cerb(__in, false); - if (__cerb) - { - __try - { - // Avoid reallocation for common case. - __str.erase(); - _CharT __buf[128]; - __size_type __len = 0; - const streamsize __w = __in.width(); - const __size_type __n = __w > 0 ? static_cast<__size_type>(__w) - : __str.max_size(); - const __ctype_type& __ct = use_facet<__ctype_type>(__in.getloc()); - const __int_type __eof = _Traits::eof(); - __int_type __c = __in.rdbuf()->sgetc(); - - while (__extracted < __n - && !_Traits::eq_int_type(__c, __eof) - && !__ct.is(__ctype_base::space, - _Traits::to_char_type(__c))) - { - if (__len == sizeof(__buf) / sizeof(_CharT)) - { - __str.append(__buf, sizeof(__buf) / sizeof(_CharT)); - __len = 0; - } - __buf[__len++] = _Traits::to_char_type(__c); - ++__extracted; - __c = __in.rdbuf()->snextc(); - } - __str.append(__buf, __len); - - if (__extracted < __n && _Traits::eq_int_type(__c, __eof)) - __err |= __ios_base::eofbit; - __in.width(0); - } - __catch(__cxxabiv1::__forced_unwind&) - { - __in._M_setstate(__ios_base::badbit); - __throw_exception_again; - } - __catch(...) - { - // _GLIBCXX_RESOLVE_LIB_DEFECTS - // 91. Description of operator>> and getline() for string<> - // might cause endless loop - __in._M_setstate(__ios_base::badbit); - } - } - // 211. operator>>(istream&, string&) doesn't set failbit - if (!__extracted) - __err |= __ios_base::failbit; - if (__err) - __in.setstate(__err); - return __in; - } - - template - basic_istream<_CharT, _Traits>& - getline(basic_istream<_CharT, _Traits>& __in, - basic_string<_CharT, _Traits, _Alloc>& __str, _CharT __delim) - { - typedef basic_istream<_CharT, _Traits> __istream_type; - typedef basic_string<_CharT, _Traits, _Alloc> __string_type; - typedef typename __istream_type::ios_base __ios_base; - typedef typename __istream_type::int_type __int_type; - typedef typename __string_type::size_type __size_type; - - __size_type __extracted = 0; - const __size_type __n = __str.max_size(); - typename __ios_base::iostate __err = __ios_base::goodbit; - typename __istream_type::sentry __cerb(__in, true); - if (__cerb) - { - __try - { - __str.erase(); - const __int_type __idelim = _Traits::to_int_type(__delim); - const __int_type __eof = _Traits::eof(); - __int_type __c = __in.rdbuf()->sgetc(); - - while (__extracted < __n - && !_Traits::eq_int_type(__c, __eof) - && !_Traits::eq_int_type(__c, __idelim)) - { - __str += _Traits::to_char_type(__c); - ++__extracted; - __c = __in.rdbuf()->snextc(); - } - - if (_Traits::eq_int_type(__c, __eof)) - __err |= __ios_base::eofbit; - else if (_Traits::eq_int_type(__c, __idelim)) - { - ++__extracted; - __in.rdbuf()->sbumpc(); - } - else - __err |= __ios_base::failbit; - } - __catch(__cxxabiv1::__forced_unwind&) - { - __in._M_setstate(__ios_base::badbit); - __throw_exception_again; - } - __catch(...) - { - // _GLIBCXX_RESOLVE_LIB_DEFECTS - // 91. Description of operator>> and getline() for string<> - // might cause endless loop - __in._M_setstate(__ios_base::badbit); - } - } - if (!__extracted) - __err |= __ios_base::failbit; - if (__err) - __in.setstate(__err); - return __in; - } - - // Inhibit implicit instantiations for required instantiations, - // which are defined via explicit instantiations elsewhere. -#if _GLIBCXX_EXTERN_TEMPLATE - // The explicit instantiation definitions in src/c++11/string-inst.cc and - // src/c++17/string-inst.cc only instantiate the members required for C++17 - // and earlier standards (so not C++20's starts_with and ends_with). - // Suppress the explicit instantiation declarations for C++20, so C++20 - // code will implicitly instantiate std::string and std::wstring as needed. -# if __cplusplus <= 201703L && _GLIBCXX_EXTERN_TEMPLATE > 0 - extern template class basic_string; -# elif ! _GLIBCXX_USE_CXX11_ABI - // Still need to prevent implicit instantiation of the COW empty rep, - // to ensure the definition in libstdc++.so is unique (PR 86138). - extern template basic_string::size_type - basic_string::_Rep::_S_empty_rep_storage[]; -# elif _GLIBCXX_EXTERN_TEMPLATE > 0 - // Export _M_replace_cold even for C++20. - extern template void - basic_string::_M_replace_cold(char *, size_type, const char*, - const size_type, const size_type); -# endif - - extern template - basic_istream& - operator>>(basic_istream&, string&); - extern template - basic_ostream& - operator<<(basic_ostream&, const string&); - extern template - basic_istream& - getline(basic_istream&, string&, char); - extern template - basic_istream& - getline(basic_istream&, string&); - -#ifdef _GLIBCXX_USE_WCHAR_T -# if __cplusplus <= 201703L && _GLIBCXX_EXTERN_TEMPLATE > 0 - extern template class basic_string; -# elif ! _GLIBCXX_USE_CXX11_ABI - extern template basic_string::size_type - basic_string::_Rep::_S_empty_rep_storage[]; -# elif _GLIBCXX_EXTERN_TEMPLATE > 0 - // Export _M_replace_cold even for C++20. - extern template void - basic_string::_M_replace_cold(wchar_t*, size_type, const wchar_t*, - const size_type, const size_type); -# endif - - extern template - basic_istream& - operator>>(basic_istream&, wstring&); - extern template - basic_ostream& - operator<<(basic_ostream&, const wstring&); - extern template - basic_istream& - getline(basic_istream&, wstring&, wchar_t); - extern template - basic_istream& - getline(basic_istream&, wstring&); -#endif // _GLIBCXX_USE_WCHAR_T -#endif // _GLIBCXX_EXTERN_TEMPLATE - -_GLIBCXX_END_NAMESPACE_VERSION -} // namespace std - -#endif diff --git a/.ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@c++@13.1.1@bits@basic_string.tcc.blob b/.ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@c++@13.1.1@bits@basic_string.tcc.blob deleted file mode 100644 index be20dbce8374bbc3faa74a5e1df93af478b6e0b1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 119477 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. - -/** @file bits/char_traits.h - * This is an internal header file, included by other library headers. - * Do not attempt to use it directly. @headername{string} - */ - -// -// ISO C++ 14882: 21 Strings library -// - -#ifndef _CHAR_TRAITS_H -#define _CHAR_TRAITS_H 1 - -#pragma GCC system_header - -#include - -#if _GLIBCXX_HOSTED -# include // For streampos -#endif // HOSTED - -#ifdef _GLIBCXX_USE_WCHAR_T -# include // For WEOF, wmemmove, wmemset, etc. -#endif // USE_WCHAR_T - -#if __cplusplus >= 201103L -# include -#if !defined __UINT_LEAST16_TYPE__ || !defined __UINT_LEAST32_TYPE__ -# include -#endif -#endif -#if __cplusplus >= 202002L -# include -# include -#endif - -#ifndef _GLIBCXX_ALWAYS_INLINE -# define _GLIBCXX_ALWAYS_INLINE inline __attribute__((__always_inline__)) -#endif - -namespace __gnu_cxx _GLIBCXX_VISIBILITY(default) -{ -_GLIBCXX_BEGIN_NAMESPACE_VERSION - -#pragma GCC diagnostic push -#pragma GCC diagnostic ignored "-Wstringop-overflow" -#pragma GCC diagnostic ignored "-Wstringop-overread" -#pragma GCC diagnostic ignored "-Warray-bounds" - - /** - * @brief Mapping from character type to associated types. - * - * @note This is an implementation class for the generic version - * of char_traits. It defines int_type, off_type, pos_type, and - * state_type. By default these are unsigned long, streamoff, - * streampos, and mbstate_t. Users who need a different set of - * types, but who don't need to change the definitions of any function - * defined in char_traits, can specialize __gnu_cxx::_Char_types - * while leaving __gnu_cxx::char_traits alone. */ - template - struct _Char_types - { - typedef unsigned long int_type; -#if _GLIBCXX_HOSTED - typedef std::streampos pos_type; - typedef std::streamoff off_type; - typedef std::mbstate_t state_type; -#endif // HOSTED - }; - - - /** - * @brief Base class used to implement std::char_traits. - * - * @note For any given actual character type, this definition is - * probably wrong. (Most of the member functions are likely to be - * right, but the int_type and state_type typedefs, and the eof() - * member function, are likely to be wrong.) The reason this class - * exists is so users can specialize it. Classes in namespace std - * may not be specialized for fundamental types, but classes in - * namespace __gnu_cxx may be. - * - * See https://gcc.gnu.org/onlinedocs/libstdc++/manual/strings.html#strings.string.character_types - * for advice on how to make use of this class for @a unusual character - * types. Also, check out include/ext/pod_char_traits.h. - */ - template - struct char_traits - { - typedef _CharT char_type; - typedef typename _Char_types<_CharT>::int_type int_type; -#if _GLIBCXX_HOSTED - typedef typename _Char_types<_CharT>::pos_type pos_type; - typedef typename _Char_types<_CharT>::off_type off_type; - typedef typename _Char_types<_CharT>::state_type state_type; -#endif // HOSTED -#if __cpp_lib_three_way_comparison - using comparison_category = std::strong_ordering; -#endif - - static _GLIBCXX14_CONSTEXPR void - assign(char_type& __c1, const char_type& __c2) - { -#if __cpp_constexpr_dynamic_alloc - if (std::__is_constant_evaluated()) - std::construct_at(__builtin_addressof(__c1), __c2); - else -#endif - __c1 = __c2; - } - - static _GLIBCXX_CONSTEXPR bool - eq(const char_type& __c1, const char_type& __c2) - { return __c1 == __c2; } - - static _GLIBCXX_CONSTEXPR bool - lt(const char_type& __c1, const char_type& __c2) - { return __c1 < __c2; } - - static _GLIBCXX14_CONSTEXPR int - compare(const char_type* __s1, const char_type* __s2, std::size_t __n); - - static _GLIBCXX14_CONSTEXPR std::size_t - length(const char_type* __s); - - static _GLIBCXX14_CONSTEXPR const char_type* - find(const char_type* __s, std::size_t __n, const char_type& __a); - - static _GLIBCXX20_CONSTEXPR char_type* - move(char_type* __s1, const char_type* __s2, std::size_t __n); - - static _GLIBCXX20_CONSTEXPR char_type* - copy(char_type* __s1, const char_type* __s2, std::size_t __n); - - static _GLIBCXX20_CONSTEXPR char_type* - assign(char_type* __s, std::size_t __n, char_type __a); - - static _GLIBCXX_CONSTEXPR char_type - to_char_type(const int_type& __c) - { return static_cast(__c); } - - static _GLIBCXX_CONSTEXPR int_type - to_int_type(const char_type& __c) - { return static_cast(__c); } - - static _GLIBCXX_CONSTEXPR bool - eq_int_type(const int_type& __c1, const int_type& __c2) - { return __c1 == __c2; } - -#ifdef _GLIBCXX_STDIO_EOF - static _GLIBCXX_CONSTEXPR int_type - eof() - { return static_cast(_GLIBCXX_STDIO_EOF); } - - static _GLIBCXX_CONSTEXPR int_type - not_eof(const int_type& __c) - { return !eq_int_type(__c, eof()) ? __c : to_int_type(char_type()); } -#endif // defined(_GLIBCXX_STDIO_EOF) - }; - - template - _GLIBCXX14_CONSTEXPR int - char_traits<_CharT>:: - compare(const char_type* __s1, const char_type* __s2, std::size_t __n) - { - for (std::size_t __i = 0; __i < __n; ++__i) - if (lt(__s1[__i], __s2[__i])) - return -1; - else if (lt(__s2[__i], __s1[__i])) - return 1; - return 0; - } - - template - _GLIBCXX14_CONSTEXPR std::size_t - char_traits<_CharT>:: - length(const char_type* __p) - { - std::size_t __i = 0; - while (!eq(__p[__i], char_type())) - ++__i; - return __i; - } - - template - _GLIBCXX14_CONSTEXPR const typename char_traits<_CharT>::char_type* - char_traits<_CharT>:: - find(const char_type* __s, std::size_t __n, const char_type& __a) - { - for (std::size_t __i = 0; __i < __n; ++__i) - if (eq(__s[__i], __a)) - return __s + __i; - return 0; - } - - template - _GLIBCXX20_CONSTEXPR - typename char_traits<_CharT>::char_type* - char_traits<_CharT>:: - move(char_type* __s1, const char_type* __s2, std::size_t __n) - { - if (__n == 0) - return __s1; -#if __cplusplus >= 202002L - if (std::__is_constant_evaluated()) - { - if (__s1 == __s2) // unlikely, but saves a lot of work - return __s1; - const auto __end = __s2 + __n - 1; - bool __overlap = false; - for (std::size_t __i = 0; __i < __n - 1; ++__i) - { - if (__s1 + __i == __end) - { - __overlap = true; - break; - } - } - if (__overlap) - { - do - { - --__n; - assign(__s1[__n], __s2[__n]); - } - while (__n > 0); - } - else - copy(__s1, __s2, __n); - return __s1; - } -#endif - __builtin_memmove(__s1, __s2, __n * sizeof(char_type)); - return __s1; - } - - template - _GLIBCXX20_CONSTEXPR - typename char_traits<_CharT>::char_type* - char_traits<_CharT>:: - copy(char_type* __s1, const char_type* __s2, std::size_t __n) - { - if (__n == 0) - return __s1; -#if __cplusplus >= 202002L - if (std::__is_constant_evaluated()) - { - for (std::size_t __i = 0; __i < __n; ++__i) - std::construct_at(__s1 + __i, __s2[__i]); - return __s1; - } -#endif - __builtin_memcpy(__s1, __s2, __n * sizeof(char_type)); - return __s1; - } - - template - _GLIBCXX20_CONSTEXPR - typename char_traits<_CharT>::char_type* - char_traits<_CharT>:: - assign(char_type* __s, std::size_t __n, char_type __a) - { -#if __cplusplus >= 202002L - if (std::__is_constant_evaluated()) - { - for (std::size_t __i = 0; __i < __n; ++__i) - std::construct_at(__s + __i, __a); - return __s; - } -#endif - - if _GLIBCXX17_CONSTEXPR (sizeof(_CharT) == 1 && __is_trivial(_CharT)) - { - if (__n) - { - unsigned char __c; - __builtin_memcpy(&__c, __builtin_addressof(__a), 1); - __builtin_memset(__s, __c, __n); - } - } - else - { - for (std::size_t __i = 0; __i < __n; ++__i) - __s[__i] = __a; - } - return __s; - } - -_GLIBCXX_END_NAMESPACE_VERSION -} // namespace - -namespace std _GLIBCXX_VISIBILITY(default) -{ -_GLIBCXX_BEGIN_NAMESPACE_VERSION - -#ifdef __cpp_lib_is_constant_evaluated -// Unofficial macro indicating P1032R1 support in C++20 -# define __cpp_lib_constexpr_char_traits 201811L -#elif __cplusplus >= 201703L && _GLIBCXX_HAVE_IS_CONSTANT_EVALUATED -// Unofficial macro indicating P0426R1 support in C++17 -# define __cpp_lib_constexpr_char_traits 201611L -#endif - - // 21.1 - /** - * @brief Basis for explicit traits specializations. - * - * @note For any given actual character type, this definition is - * probably wrong. Since this is just a thin wrapper around - * __gnu_cxx::char_traits, it is possible to achieve a more - * appropriate definition by specializing __gnu_cxx::char_traits. - * - * See https://gcc.gnu.org/onlinedocs/libstdc++/manual/strings.html#strings.string.character_types - * for advice on how to make use of this class for @a unusual character - * types. Also, check out include/ext/pod_char_traits.h. - */ - template - struct char_traits : public __gnu_cxx::char_traits<_CharT> - { }; - - - /// 21.1.3.1 char_traits specializations - template<> - struct char_traits - { - typedef char char_type; - typedef int int_type; -#if _GLIBCXX_HOSTED - typedef streampos pos_type; - typedef streamoff off_type; - typedef mbstate_t state_type; -#endif // HOSTED -#if __cpp_lib_three_way_comparison - using comparison_category = strong_ordering; -#endif - - static _GLIBCXX17_CONSTEXPR void - assign(char_type& __c1, const char_type& __c2) _GLIBCXX_NOEXCEPT - { -#if __cpp_constexpr_dynamic_alloc - if (std::__is_constant_evaluated()) - std::construct_at(__builtin_addressof(__c1), __c2); - else -#endif - __c1 = __c2; - } - - static _GLIBCXX_CONSTEXPR bool - eq(const char_type& __c1, const char_type& __c2) _GLIBCXX_NOEXCEPT - { return __c1 == __c2; } - - static _GLIBCXX_CONSTEXPR bool - lt(const char_type& __c1, const char_type& __c2) _GLIBCXX_NOEXCEPT - { - // LWG 467. - return (static_cast(__c1) - < static_cast(__c2)); - } - - static _GLIBCXX17_CONSTEXPR int - compare(const char_type* __s1, const char_type* __s2, size_t __n) - { - if (__n == 0) - return 0; -#if __cplusplus >= 201703L - if (std::__is_constant_evaluated()) - { - for (size_t __i = 0; __i < __n; ++__i) - if (lt(__s1[__i], __s2[__i])) - return -1; - else if (lt(__s2[__i], __s1[__i])) - return 1; - return 0; - } -#endif - return __builtin_memcmp(__s1, __s2, __n); - } - - static _GLIBCXX17_CONSTEXPR size_t - length(const char_type* __s) - { -#if __cplusplus >= 201703L - if (std::__is_constant_evaluated()) - return __gnu_cxx::char_traits::length(__s); -#endif - return __builtin_strlen(__s); - } - - static _GLIBCXX17_CONSTEXPR const char_type* - find(const char_type* __s, size_t __n, const char_type& __a) - { - if (__n == 0) - return 0; -#if __cplusplus >= 201703L - if (std::__is_constant_evaluated()) - return __gnu_cxx::char_traits::find(__s, __n, __a); -#endif - return static_cast(__builtin_memchr(__s, __a, __n)); - } - - static _GLIBCXX20_CONSTEXPR char_type* - move(char_type* __s1, const char_type* __s2, size_t __n) - { - if (__n == 0) - return __s1; -#if __cplusplus >= 202002L - if (std::__is_constant_evaluated()) - return __gnu_cxx::char_traits::move(__s1, __s2, __n); -#endif - return static_cast(__builtin_memmove(__s1, __s2, __n)); - } - - static _GLIBCXX20_CONSTEXPR char_type* - copy(char_type* __s1, const char_type* __s2, size_t __n) - { - if (__n == 0) - return __s1; -#if __cplusplus >= 202002L - if (std::__is_constant_evaluated()) - return __gnu_cxx::char_traits::copy(__s1, __s2, __n); -#endif - return static_cast(__builtin_memcpy(__s1, __s2, __n)); - } - - static _GLIBCXX20_CONSTEXPR char_type* - assign(char_type* __s, size_t __n, char_type __a) - { - if (__n == 0) - return __s; -#if __cplusplus >= 202002L - if (std::__is_constant_evaluated()) - return __gnu_cxx::char_traits::assign(__s, __n, __a); -#endif - return static_cast(__builtin_memset(__s, __a, __n)); - } - - static _GLIBCXX_CONSTEXPR char_type - to_char_type(const int_type& __c) _GLIBCXX_NOEXCEPT - { return static_cast(__c); } - - // To keep both the byte 0xff and the eof symbol 0xffffffff - // from ending up as 0xffffffff. - static _GLIBCXX_CONSTEXPR int_type - to_int_type(const char_type& __c) _GLIBCXX_NOEXCEPT - { return static_cast(static_cast(__c)); } - - static _GLIBCXX_CONSTEXPR bool - eq_int_type(const int_type& __c1, const int_type& __c2) _GLIBCXX_NOEXCEPT - { return __c1 == __c2; } - -#ifdef _GLIBCXX_STDIO_EOF - static _GLIBCXX_CONSTEXPR int_type - eof() _GLIBCXX_NOEXCEPT - { return static_cast(_GLIBCXX_STDIO_EOF); } - - static _GLIBCXX_CONSTEXPR int_type - not_eof(const int_type& __c) _GLIBCXX_NOEXCEPT - { return (__c == eof()) ? 0 : __c; } -#endif // defined(_GLIBCXX_STDIO_EOF) - }; - - -#ifdef _GLIBCXX_USE_WCHAR_T - /// 21.1.3.2 char_traits specializations - template<> - struct char_traits - { - typedef wchar_t char_type; - typedef wint_t int_type; -#if _GLIBCXX_HOSTED - typedef streamoff off_type; - typedef wstreampos pos_type; - typedef mbstate_t state_type; -#endif // HOSTED -#if __cpp_lib_three_way_comparison - using comparison_category = strong_ordering; -#endif - - static _GLIBCXX17_CONSTEXPR void - assign(char_type& __c1, const char_type& __c2) _GLIBCXX_NOEXCEPT - { -#if __cpp_constexpr_dynamic_alloc - if (std::__is_constant_evaluated()) - std::construct_at(__builtin_addressof(__c1), __c2); - else -#endif - __c1 = __c2; - } - - static _GLIBCXX_CONSTEXPR bool - eq(const char_type& __c1, const char_type& __c2) _GLIBCXX_NOEXCEPT - { return __c1 == __c2; } - - static _GLIBCXX_CONSTEXPR bool - lt(const char_type& __c1, const char_type& __c2) _GLIBCXX_NOEXCEPT - { return __c1 < __c2; } - - static _GLIBCXX17_CONSTEXPR int - compare(const char_type* __s1, const char_type* __s2, size_t __n) - { - if (__n == 0) - return 0; -#if __cplusplus >= 201703L - if (std::__is_constant_evaluated()) - return __gnu_cxx::char_traits::compare(__s1, __s2, __n); -#endif - return wmemcmp(__s1, __s2, __n); - } - - static _GLIBCXX17_CONSTEXPR size_t - length(const char_type* __s) - { -#if __cplusplus >= 201703L - if (std::__is_constant_evaluated()) - return __gnu_cxx::char_traits::length(__s); -#endif - return wcslen(__s); - } - - static _GLIBCXX17_CONSTEXPR const char_type* - find(const char_type* __s, size_t __n, const char_type& __a) - { - if (__n == 0) - return 0; -#if __cplusplus >= 201703L - if (std::__is_constant_evaluated()) - return __gnu_cxx::char_traits::find(__s, __n, __a); -#endif - return wmemchr(__s, __a, __n); - } - - static _GLIBCXX20_CONSTEXPR char_type* - move(char_type* __s1, const char_type* __s2, size_t __n) - { - if (__n == 0) - return __s1; -#if __cplusplus >= 202002L - if (std::__is_constant_evaluated()) - return __gnu_cxx::char_traits::move(__s1, __s2, __n); -#endif - return wmemmove(__s1, __s2, __n); - } - - static _GLIBCXX20_CONSTEXPR char_type* - copy(char_type* __s1, const char_type* __s2, size_t __n) - { - if (__n == 0) - return __s1; -#if __cplusplus >= 202002L - if (std::__is_constant_evaluated()) - return __gnu_cxx::char_traits::copy(__s1, __s2, __n); -#endif - return wmemcpy(__s1, __s2, __n); - } - - static _GLIBCXX20_CONSTEXPR char_type* - assign(char_type* __s, size_t __n, char_type __a) - { - if (__n == 0) - return __s; -#if __cplusplus >= 202002L - if (std::__is_constant_evaluated()) - return __gnu_cxx::char_traits::assign(__s, __n, __a); -#endif - return wmemset(__s, __a, __n); - } - - static _GLIBCXX_CONSTEXPR char_type - to_char_type(const int_type& __c) _GLIBCXX_NOEXCEPT - { return char_type(__c); } - - static _GLIBCXX_CONSTEXPR int_type - to_int_type(const char_type& __c) _GLIBCXX_NOEXCEPT - { return int_type(__c); } - - static _GLIBCXX_CONSTEXPR bool - eq_int_type(const int_type& __c1, const int_type& __c2) _GLIBCXX_NOEXCEPT - { return __c1 == __c2; } - -#if _GLIBCXX_HOSTED - static _GLIBCXX_CONSTEXPR int_type - eof() _GLIBCXX_NOEXCEPT - { return static_cast(WEOF); } - - static _GLIBCXX_CONSTEXPR int_type - not_eof(const int_type& __c) _GLIBCXX_NOEXCEPT - { return eq_int_type(__c, eof()) ? 0 : __c; } -#endif // HOSTED - }; -#else // _GLIBCXX_USE_WCHAR_T - template<> - struct char_traits : public __gnu_cxx::char_traits - { }; -#endif //_GLIBCXX_USE_WCHAR_T - -#ifdef _GLIBCXX_USE_CHAR8_T - template<> - struct char_traits - { - typedef char8_t char_type; - typedef unsigned int int_type; -#if _GLIBCXX_HOSTED - typedef u8streampos pos_type; - typedef streamoff off_type; - typedef mbstate_t state_type; -#endif // HOSTED -#if __cpp_lib_three_way_comparison - using comparison_category = strong_ordering; -#endif - - static _GLIBCXX17_CONSTEXPR void - assign(char_type& __c1, const char_type& __c2) _GLIBCXX_NOEXCEPT - { -#if __cpp_constexpr_dynamic_alloc - if (std::__is_constant_evaluated()) - std::construct_at(__builtin_addressof(__c1), __c2); - else -#endif - __c1 = __c2; - } - - static _GLIBCXX_CONSTEXPR bool - eq(const char_type& __c1, const char_type& __c2) _GLIBCXX_NOEXCEPT - { return __c1 == __c2; } - - static _GLIBCXX_CONSTEXPR bool - lt(const char_type& __c1, const char_type& __c2) _GLIBCXX_NOEXCEPT - { return __c1 < __c2; } - - static _GLIBCXX17_CONSTEXPR int - compare(const char_type* __s1, const char_type* __s2, size_t __n) - { - if (__n == 0) - return 0; -#if __cplusplus >= 201703L - if (std::__is_constant_evaluated()) - return __gnu_cxx::char_traits::compare(__s1, __s2, __n); -#endif - return __builtin_memcmp(__s1, __s2, __n); - } - - static _GLIBCXX17_CONSTEXPR size_t - length(const char_type* __s) - { -#if __cplusplus >= 201703L - if (std::__is_constant_evaluated()) - return __gnu_cxx::char_traits::length(__s); -#endif - size_t __i = 0; - while (!eq(__s[__i], char_type())) - ++__i; - return __i; - } - - static _GLIBCXX17_CONSTEXPR const char_type* - find(const char_type* __s, size_t __n, const char_type& __a) - { - if (__n == 0) - return 0; -#if __cplusplus >= 201703L - if (std::__is_constant_evaluated()) - return __gnu_cxx::char_traits::find(__s, __n, __a); -#endif - return static_cast(__builtin_memchr(__s, __a, __n)); - } - - static _GLIBCXX20_CONSTEXPR char_type* - move(char_type* __s1, const char_type* __s2, size_t __n) - { - if (__n == 0) - return __s1; -#if __cplusplus >= 202002L - if (std::__is_constant_evaluated()) - return __gnu_cxx::char_traits::move(__s1, __s2, __n); -#endif - return static_cast(__builtin_memmove(__s1, __s2, __n)); - } - - static _GLIBCXX20_CONSTEXPR char_type* - copy(char_type* __s1, const char_type* __s2, size_t __n) - { - if (__n == 0) - return __s1; -#if __cplusplus >= 202002L - if (std::__is_constant_evaluated()) - return __gnu_cxx::char_traits::copy(__s1, __s2, __n); -#endif - return static_cast(__builtin_memcpy(__s1, __s2, __n)); - } - - static _GLIBCXX20_CONSTEXPR char_type* - assign(char_type* __s, size_t __n, char_type __a) - { - if (__n == 0) - return __s; -#if __cplusplus >= 202002L - if (std::__is_constant_evaluated()) - return __gnu_cxx::char_traits::assign(__s, __n, __a); -#endif - return static_cast(__builtin_memset(__s, __a, __n)); - } - - static _GLIBCXX_CONSTEXPR char_type - to_char_type(const int_type& __c) _GLIBCXX_NOEXCEPT - { return char_type(__c); } - - static _GLIBCXX_CONSTEXPR int_type - to_int_type(const char_type& __c) _GLIBCXX_NOEXCEPT - { return int_type(__c); } - - static _GLIBCXX_CONSTEXPR bool - eq_int_type(const int_type& __c1, const int_type& __c2) _GLIBCXX_NOEXCEPT - { return __c1 == __c2; } - -#if _GLIBCXX_HOSTED - static _GLIBCXX_CONSTEXPR int_type - eof() _GLIBCXX_NOEXCEPT - { return static_cast(-1); } - - static _GLIBCXX_CONSTEXPR int_type - not_eof(const int_type& __c) _GLIBCXX_NOEXCEPT - { return eq_int_type(__c, eof()) ? 0 : __c; } -#endif // HOSTED - }; -#endif //_GLIBCXX_USE_CHAR8_T - -_GLIBCXX_END_NAMESPACE_VERSION -} // namespace - -#if __cplusplus >= 201103L - -namespace std _GLIBCXX_VISIBILITY(default) -{ -_GLIBCXX_BEGIN_NAMESPACE_VERSION - - template<> - struct char_traits - { - typedef char16_t char_type; -#ifdef __UINT_LEAST16_TYPE__ - typedef __UINT_LEAST16_TYPE__ int_type; -#elif defined _GLIBCXX_USE_C99_STDINT_TR1 - typedef uint_least16_t int_type; -#else - typedef make_unsigned::type int_type; -#endif -#if _GLIBCXX_HOSTED - typedef streamoff off_type; - typedef u16streampos pos_type; - typedef mbstate_t state_type; -#endif // HOSTED -#if __cpp_lib_three_way_comparison - using comparison_category = strong_ordering; -#endif - - static _GLIBCXX17_CONSTEXPR void - assign(char_type& __c1, const char_type& __c2) noexcept - { -#if __cpp_constexpr_dynamic_alloc - if (std::__is_constant_evaluated()) - std::construct_at(__builtin_addressof(__c1), __c2); - else -#endif - __c1 = __c2; - } - - static constexpr bool - eq(const char_type& __c1, const char_type& __c2) noexcept - { return __c1 == __c2; } - - static constexpr bool - lt(const char_type& __c1, const char_type& __c2) noexcept - { return __c1 < __c2; } - - static _GLIBCXX17_CONSTEXPR int - compare(const char_type* __s1, const char_type* __s2, size_t __n) - { - for (size_t __i = 0; __i < __n; ++__i) - if (lt(__s1[__i], __s2[__i])) - return -1; - else if (lt(__s2[__i], __s1[__i])) - return 1; - return 0; - } - - static _GLIBCXX17_CONSTEXPR size_t - length(const char_type* __s) - { - size_t __i = 0; - while (!eq(__s[__i], char_type())) - ++__i; - return __i; - } - - static _GLIBCXX17_CONSTEXPR const char_type* - find(const char_type* __s, size_t __n, const char_type& __a) - { - for (size_t __i = 0; __i < __n; ++__i) - if (eq(__s[__i], __a)) - return __s + __i; - return 0; - } - - static _GLIBCXX20_CONSTEXPR char_type* - move(char_type* __s1, const char_type* __s2, size_t __n) - { - if (__n == 0) - return __s1; -#if __cplusplus >= 202002L - if (std::__is_constant_evaluated()) - return __gnu_cxx::char_traits::move(__s1, __s2, __n); -#endif - return (static_cast - (__builtin_memmove(__s1, __s2, __n * sizeof(char_type)))); - } - - static _GLIBCXX20_CONSTEXPR char_type* - copy(char_type* __s1, const char_type* __s2, size_t __n) - { - if (__n == 0) - return __s1; -#if __cplusplus >= 202002L - if (std::__is_constant_evaluated()) - return __gnu_cxx::char_traits::copy(__s1, __s2, __n); -#endif - return (static_cast - (__builtin_memcpy(__s1, __s2, __n * sizeof(char_type)))); - } - - static _GLIBCXX20_CONSTEXPR char_type* - assign(char_type* __s, size_t __n, char_type __a) - { - for (size_t __i = 0; __i < __n; ++__i) - assign(__s[__i], __a); - return __s; - } - - static constexpr char_type - to_char_type(const int_type& __c) noexcept - { return char_type(__c); } - - static constexpr bool - eq_int_type(const int_type& __c1, const int_type& __c2) noexcept - { return __c1 == __c2; } - -#if _GLIBCXX_HOSTED - static constexpr int_type - to_int_type(const char_type& __c) noexcept - { return __c == eof() ? int_type(0xfffd) : int_type(__c); } - - static constexpr int_type - eof() noexcept - { return static_cast(-1); } - - static constexpr int_type - not_eof(const int_type& __c) noexcept - { return eq_int_type(__c, eof()) ? 0 : __c; } -#else // !HOSTED - static constexpr int_type - to_int_type(const char_type& __c) noexcept - { return int_type(__c); } -#endif // !HOSTED - }; - - template<> - struct char_traits - { - typedef char32_t char_type; -#ifdef __UINT_LEAST32_TYPE__ - typedef __UINT_LEAST32_TYPE__ int_type; -#elif defined _GLIBCXX_USE_C99_STDINT_TR1 - typedef uint_least32_t int_type; -#else - typedef make_unsigned::type int_type; -#endif -#if _GLIBCXX_HOSTED - typedef streamoff off_type; - typedef u32streampos pos_type; - typedef mbstate_t state_type; -#endif // HOSTED -#if __cpp_lib_three_way_comparison - using comparison_category = strong_ordering; -#endif - - static _GLIBCXX17_CONSTEXPR void - assign(char_type& __c1, const char_type& __c2) noexcept - { -#if __cpp_constexpr_dynamic_alloc - if (std::__is_constant_evaluated()) - std::construct_at(__builtin_addressof(__c1), __c2); - else -#endif - __c1 = __c2; - } - - static constexpr bool - eq(const char_type& __c1, const char_type& __c2) noexcept - { return __c1 == __c2; } - - static constexpr bool - lt(const char_type& __c1, const char_type& __c2) noexcept - { return __c1 < __c2; } - - static _GLIBCXX17_CONSTEXPR int - compare(const char_type* __s1, const char_type* __s2, size_t __n) - { - for (size_t __i = 0; __i < __n; ++__i) - if (lt(__s1[__i], __s2[__i])) - return -1; - else if (lt(__s2[__i], __s1[__i])) - return 1; - return 0; - } - - static _GLIBCXX17_CONSTEXPR size_t - length(const char_type* __s) - { - size_t __i = 0; - while (!eq(__s[__i], char_type())) - ++__i; - return __i; - } - - static _GLIBCXX17_CONSTEXPR const char_type* - find(const char_type* __s, size_t __n, const char_type& __a) - { - for (size_t __i = 0; __i < __n; ++__i) - if (eq(__s[__i], __a)) - return __s + __i; - return 0; - } - - static _GLIBCXX20_CONSTEXPR char_type* - move(char_type* __s1, const char_type* __s2, size_t __n) - { - if (__n == 0) - return __s1; -#if __cplusplus >= 202002L - if (std::__is_constant_evaluated()) - return __gnu_cxx::char_traits::move(__s1, __s2, __n); -#endif - return (static_cast - (__builtin_memmove(__s1, __s2, __n * sizeof(char_type)))); - } - - static _GLIBCXX20_CONSTEXPR char_type* - copy(char_type* __s1, const char_type* __s2, size_t __n) - { - if (__n == 0) - return __s1; -#if __cplusplus >= 202002L - if (std::__is_constant_evaluated()) - return __gnu_cxx::char_traits::copy(__s1, __s2, __n); -#endif - return (static_cast - (__builtin_memcpy(__s1, __s2, __n * sizeof(char_type)))); - } - - static _GLIBCXX20_CONSTEXPR char_type* - assign(char_type* __s, size_t __n, char_type __a) - { - for (size_t __i = 0; __i < __n; ++__i) - assign(__s[__i], __a); - return __s; - } - - static constexpr char_type - to_char_type(const int_type& __c) noexcept - { return char_type(__c); } - - static constexpr int_type - to_int_type(const char_type& __c) noexcept - { return int_type(__c); } - - static constexpr bool - eq_int_type(const int_type& __c1, const int_type& __c2) noexcept - { return __c1 == __c2; } - -#if _GLIBCXX_HOSTED - static constexpr int_type - eof() noexcept - { return static_cast(-1); } - - static constexpr int_type - not_eof(const int_type& __c) noexcept - { return eq_int_type(__c, eof()) ? 0 : __c; } -#endif // HOSTED - }; - -#if __cpp_lib_three_way_comparison - namespace __detail - { - template - constexpr auto - __char_traits_cmp_cat(int __cmp) noexcept - { - if constexpr (requires { typename _ChTraits::comparison_category; }) - { - using _Cat = typename _ChTraits::comparison_category; - static_assert( !is_void_v> ); - return static_cast<_Cat>(__cmp <=> 0); - } - else - return static_cast(__cmp <=> 0); - } - } // namespace __detail -#endif // C++20 - -#pragma GCC diagnostic pop - -_GLIBCXX_END_NAMESPACE_VERSION -} // namespace - -#endif // C++11 - -#endif // _CHAR_TRAITS_H diff --git a/.ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@c++@13.1.1@bits@char_traits.h.blob b/.ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@c++@13.1.1@bits@char_traits.h.blob deleted file mode 100644 index 1ba1b3fef092f1a7d80ff1a6bdd56c5115f1b01f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 54929 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. - -/** @file bits/charconv.h - * This is an internal header file, included by other library headers. - * Do not attempt to use it directly. @headername{charconv} - */ - -#ifndef _GLIBCXX_CHARCONV_H -#define _GLIBCXX_CHARCONV_H 1 - -#pragma GCC system_header - -#if __cplusplus >= 201103L - -#include -#include - -namespace std _GLIBCXX_VISIBILITY(default) -{ -_GLIBCXX_BEGIN_NAMESPACE_VERSION -namespace __detail -{ -#if __cpp_variable_templates - // This accepts 128-bit integers even in strict mode. - template - constexpr bool __integer_to_chars_is_unsigned - = ! __gnu_cxx::__int_traits<_Tp>::__is_signed; -#endif - - // Generic implementation for arbitrary bases. - template - _GLIBCXX14_CONSTEXPR unsigned - __to_chars_len(_Tp __value, int __base = 10) noexcept - { -#if __cpp_variable_templates - static_assert(__integer_to_chars_is_unsigned<_Tp>, "implementation bug"); -#endif - - unsigned __n = 1; - const unsigned __b2 = __base * __base; - const unsigned __b3 = __b2 * __base; - const unsigned long __b4 = __b3 * __base; - for (;;) - { - if (__value < (unsigned)__base) return __n; - if (__value < __b2) return __n + 1; - if (__value < __b3) return __n + 2; - if (__value < __b4) return __n + 3; - __value /= __b4; - __n += 4; - } - } - - // Write an unsigned integer value to the range [first,first+len). - // The caller is required to provide a buffer of exactly the right size - // (which can be determined by the __to_chars_len function). - template - _GLIBCXX23_CONSTEXPR void - __to_chars_10_impl(char* __first, unsigned __len, _Tp __val) noexcept - { -#if __cpp_variable_templates - static_assert(__integer_to_chars_is_unsigned<_Tp>, "implementation bug"); -#endif - - constexpr char __digits[201] = - "0001020304050607080910111213141516171819" - "2021222324252627282930313233343536373839" - "4041424344454647484950515253545556575859" - "6061626364656667686970717273747576777879" - "8081828384858687888990919293949596979899"; - unsigned __pos = __len - 1; - while (__val >= 100) - { - auto const __num = (__val % 100) * 2; - __val /= 100; - __first[__pos] = __digits[__num + 1]; - __first[__pos - 1] = __digits[__num]; - __pos -= 2; - } - if (__val >= 10) - { - auto const __num = __val * 2; - __first[1] = __digits[__num + 1]; - __first[0] = __digits[__num]; - } - else - __first[0] = '0' + __val; - } - -} // namespace __detail -_GLIBCXX_END_NAMESPACE_VERSION -} // namespace std -#endif // C++11 -#endif // _GLIBCXX_CHARCONV_H diff --git a/.ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@c++@13.1.1@bits@charconv.h.blob b/.ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@c++@13.1.1@bits@charconv.h.blob deleted file mode 100644 index b41bbb1c45b6ad92c789817206fc9f066ebe5bdc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 23799 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. - -/** @file bits/concept_check.h - * This is an internal header file, included by other library headers. - * Do not attempt to use it directly. @headername{iterator} - */ - -#ifndef _CONCEPT_CHECK_H -#define _CONCEPT_CHECK_H 1 - -#pragma GCC system_header - -#include - -// All places in libstdc++-v3 where these are used, or /might/ be used, or -// don't need to be used, or perhaps /should/ be used, are commented with -// "concept requirements" (and maybe some more text). So grep like crazy -// if you're looking for additional places to use these. - -// Concept-checking code is off by default unless users turn it on via -// configure options or editing c++config.h. -// It is not supported for freestanding implementations. - -#if !defined(_GLIBCXX_CONCEPT_CHECKS) - -#define __glibcxx_function_requires(...) -#define __glibcxx_class_requires(_a,_b) -#define __glibcxx_class_requires2(_a,_b,_c) -#define __glibcxx_class_requires3(_a,_b,_c,_d) -#define __glibcxx_class_requires4(_a,_b,_c,_d,_e) - -#else // the checks are on - -#include - -// Note that the obvious and elegant approach of -// -//#define glibcxx_function_requires(C) debug::function_requires< debug::C >() -// -// won't work due to concept templates with more than one parameter, e.g., -// BinaryPredicateConcept. The preprocessor tries to split things up on -// the commas in the template argument list. We can't use an inner pair of -// parenthesis to hide the commas, because "debug::(Temp)" isn't -// a valid instantiation pattern. Thus, we steal a feature from C99. - -#define __glibcxx_function_requires(...) \ - __gnu_cxx::__function_requires< __gnu_cxx::__VA_ARGS__ >(); -#define __glibcxx_class_requires(_a,_C) \ - _GLIBCXX_CLASS_REQUIRES(_a, __gnu_cxx, _C); -#define __glibcxx_class_requires2(_a,_b,_C) \ - _GLIBCXX_CLASS_REQUIRES2(_a, _b, __gnu_cxx, _C); -#define __glibcxx_class_requires3(_a,_b,_c,_C) \ - _GLIBCXX_CLASS_REQUIRES3(_a, _b, _c, __gnu_cxx, _C); -#define __glibcxx_class_requires4(_a,_b,_c,_d,_C) \ - _GLIBCXX_CLASS_REQUIRES4(_a, _b, _c, _d, __gnu_cxx, _C); - -#endif // enable/disable - -#endif // _GLIBCXX_CONCEPT_CHECK diff --git a/.ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@c++@13.1.1@bits@concept_check.h.blob b/.ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@c++@13.1.1@bits@concept_check.h.blob deleted file mode 100644 index 78a89134b13bc9eea6a077b5fa904a8ed87c255f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8341 zcmbVR&5ImG6rWv1(1YwBAaOyEXtt;KE2{`Xa7~Eh!zjUvLQzv)GgEGVjNR2cvw<8$ zyoq@665_>^7lq`YcXP?bt0(^f|A64l`07sR+5pZ&`zA0hKR&8XL>G$<>TbH?L16CCi<@=jkY-acRl`@u{Eu}aHDFiA^`SQt!f z#0vyweBcF!q}{-ZlS0dcfeKkpP>vzDhqQdyzFL5WW$1UEQ~%~d3s$jVg9E@LA=0SJ#gk>l8^(2+HlPqd9i zfL995lm=&NjO5su@b=MpncJXrNrY*C)g@4c_Ypt z6DtCn5flh#gWCRp=PPHMOwF7Y-uE#~^-=qsR@({q*Te%-u~K`mRh zNCehnVk)t1x9YfK6QqP@2^9%k3j@SZ3(;*x=Lyt054}ty#pzztlwQ?K4Lc~%3B7LA3`q74JX0B93m_mm zL@2E;vnx3UOvCu7H-$}F_W8W>oiTNQD_x&X-sxevgFqIMN}#0E`J&aMTI*`C+_&kS z)jttA#`W(_4iO@Q*|Kg5y_M_Ca6^^4rCFg$2c}Y!Rz)IP;9yKdcebqJz%=f(^OPBy zk6|q^Q#omC=apl22I~_{nY~ZEF1BY7mBMx8+4ms82JpvfLLx`Fwq{qAPWKi#*!j(i z?lki%Wp^iBLwMTRl5xhiYskU=itRp^UzBh?E7%m`%TABI(Nz}%Hq-Q>q3K`Tn7ewZ z^8jil%$d(SLn|$6IP1HV3nN3 zs-O-$j(rhs)es;e&ALrSV)KdFEqFZ1mhGrFe*uYE96Faz&~MS_CBgL|$_^Dve`4p%b}@uhc587Cai-nO?~l%&ZJH zR;D>ZXt}wDV7?rbt6{Lyj=9TF1_J+z!0whSTD;n-J^5j;zbmman-{|`10*v1h|{rc zSl8OibyDj7gfzBR>6og~j^E6jW`|*);~e6uRuF;b5Ft?W1;xyLq^h_Mk~UjCTRlUM)vee=(2j7`jdvsl=g&z6(x{$McJea&8uHoZjW8Q)@~Ehe^Dw8i8b zgTdO~#@>7D=65uBx&}<1{_@e)SALpa`rgN6Zxu;W4yZ4^_@b!(O2kh{}n}?Tg i-DZbZFCSiGSAp+l&A0Kl%^l!$ZsXkcy7}F=oc;s$g;~=8 diff --git a/.ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@c++@13.1.1@bits@cpp_type_traits.h b/.ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@c++@13.1.1@bits@cpp_type_traits.h deleted file mode 100644 index 4312f32..0000000 --- a/.ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@c++@13.1.1@bits@cpp_type_traits.h +++ /dev/null @@ -1,614 +0,0 @@ -// The -*- C++ -*- type traits classes for internal use in libstdc++ - -// Copyright (C) 2000-2023 Free Software Foundation, Inc. -// -// This file is part of the GNU ISO C++ Library. This library is free -// software; you can redistribute it and/or modify it under the -// terms of the GNU General Public License as published by the -// Free Software Foundation; either version 3, or (at your option) -// any later version. - -// This library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. - -// Under Section 7 of GPL version 3, you are granted additional -// permissions described in the GCC Runtime Library Exception, version -// 3.1, as published by the Free Software Foundation. - -// You should have received a copy of the GNU General Public License and -// a copy of the GCC Runtime Library Exception along with this program; -// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see -// . - -/** @file bits/cpp_type_traits.h - * This is an internal header file, included by other library headers. - * Do not attempt to use it directly. @headername{ext/type_traits} - */ - -// Written by Gabriel Dos Reis - -#ifndef _CPP_TYPE_TRAITS_H -#define _CPP_TYPE_TRAITS_H 1 - -#pragma GCC system_header - -#include - -// -// This file provides some compile-time information about various types. -// These representations were designed, on purpose, to be constant-expressions -// and not types as found in . In particular, they -// can be used in control structures and the optimizer hopefully will do -// the obvious thing. -// -// Why integral expressions, and not functions nor types? -// Firstly, these compile-time entities are used as template-arguments -// so function return values won't work: We need compile-time entities. -// We're left with types and constant integral expressions. -// Secondly, from the point of view of ease of use, type-based compile-time -// information is -not- *that* convenient. One has to write lots of -// overloaded functions and to hope that the compiler will select the right -// one. As a net effect, the overall structure isn't very clear at first -// glance. -// Thirdly, partial ordering and overload resolution (of function templates) -// is highly costly in terms of compiler-resource. It is a Good Thing to -// keep these resource consumption as least as possible. -// -// See valarray_array.h for a case use. -// -// -- Gaby (dosreis@cmla.ens-cachan.fr) 2000-03-06. -// -// Update 2005: types are also provided and has been -// removed. -// - -extern "C++" { - -namespace std _GLIBCXX_VISIBILITY(default) -{ -_GLIBCXX_BEGIN_NAMESPACE_VERSION - - struct __true_type { }; - struct __false_type { }; - - template - struct __truth_type - { typedef __false_type __type; }; - - template<> - struct __truth_type - { typedef __true_type __type; }; - - // N.B. The conversions to bool are needed due to the issue - // explained in c++/19404. - template - struct __traitor - { - enum { __value = bool(_Sp::__value) || bool(_Tp::__value) }; - typedef typename __truth_type<__value>::__type __type; - }; - - // Compare for equality of types. - template - struct __are_same - { - enum { __value = 0 }; - typedef __false_type __type; - }; - - template - struct __are_same<_Tp, _Tp> - { - enum { __value = 1 }; - typedef __true_type __type; - }; - - // Holds if the template-argument is a void type. - template - struct __is_void - { - enum { __value = 0 }; - typedef __false_type __type; - }; - - template<> - struct __is_void - { - enum { __value = 1 }; - typedef __true_type __type; - }; - - // - // Integer types - // - template - struct __is_integer - { - enum { __value = 0 }; - typedef __false_type __type; - }; - - // Thirteen specializations (yes there are eleven standard integer - // types; long long and unsigned long long are - // supported as extensions). Up to four target-specific __int - // types are supported as well. - template<> - struct __is_integer - { - enum { __value = 1 }; - typedef __true_type __type; - }; - - template<> - struct __is_integer - { - enum { __value = 1 }; - typedef __true_type __type; - }; - - template<> - struct __is_integer - { - enum { __value = 1 }; - typedef __true_type __type; - }; - - template<> - struct __is_integer - { - enum { __value = 1 }; - typedef __true_type __type; - }; - -# ifdef __WCHAR_TYPE__ - template<> - struct __is_integer - { - enum { __value = 1 }; - typedef __true_type __type; - }; -# endif - -#ifdef _GLIBCXX_USE_CHAR8_T - template<> - struct __is_integer - { - enum { __value = 1 }; - typedef __true_type __type; - }; -#endif - -#if __cplusplus >= 201103L - template<> - struct __is_integer - { - enum { __value = 1 }; - typedef __true_type __type; - }; - - template<> - struct __is_integer - { - enum { __value = 1 }; - typedef __true_type __type; - }; -#endif - - template<> - struct __is_integer - { - enum { __value = 1 }; - typedef __true_type __type; - }; - - template<> - struct __is_integer - { - enum { __value = 1 }; - typedef __true_type __type; - }; - - template<> - struct __is_integer - { - enum { __value = 1 }; - typedef __true_type __type; - }; - - template<> - struct __is_integer - { - enum { __value = 1 }; - typedef __true_type __type; - }; - - template<> - struct __is_integer - { - enum { __value = 1 }; - typedef __true_type __type; - }; - - template<> - struct __is_integer - { - enum { __value = 1 }; - typedef __true_type __type; - }; - - template<> - struct __is_integer - { - enum { __value = 1 }; - typedef __true_type __type; - }; - - template<> - struct __is_integer - { - enum { __value = 1 }; - typedef __true_type __type; - }; - -#define __INT_N(TYPE) \ - __extension__ \ - template<> \ - struct __is_integer \ - { \ - enum { __value = 1 }; \ - typedef __true_type __type; \ - }; \ - __extension__ \ - template<> \ - struct __is_integer \ - { \ - enum { __value = 1 }; \ - typedef __true_type __type; \ - }; - -#ifdef __GLIBCXX_TYPE_INT_N_0 -__INT_N(__GLIBCXX_TYPE_INT_N_0) -#endif -#ifdef __GLIBCXX_TYPE_INT_N_1 -__INT_N(__GLIBCXX_TYPE_INT_N_1) -#endif -#ifdef __GLIBCXX_TYPE_INT_N_2 -__INT_N(__GLIBCXX_TYPE_INT_N_2) -#endif -#ifdef __GLIBCXX_TYPE_INT_N_3 -__INT_N(__GLIBCXX_TYPE_INT_N_3) -#endif - -#undef __INT_N - - // - // Floating point types - // - template - struct __is_floating - { - enum { __value = 0 }; - typedef __false_type __type; - }; - - // three specializations (float, double and 'long double') - template<> - struct __is_floating - { - enum { __value = 1 }; - typedef __true_type __type; - }; - - template<> - struct __is_floating - { - enum { __value = 1 }; - typedef __true_type __type; - }; - - template<> - struct __is_floating - { - enum { __value = 1 }; - typedef __true_type __type; - }; - -#ifdef __STDCPP_FLOAT16_T__ - template<> - struct __is_floating<_Float16> - { - enum { __value = 1 }; - typedef __true_type __type; - }; -#endif - -#ifdef __STDCPP_FLOAT32_T__ - template<> - struct __is_floating<_Float32> - { - enum { __value = 1 }; - typedef __true_type __type; - }; -#endif - -#ifdef __STDCPP_FLOAT64_T__ - template<> - struct __is_floating<_Float64> - { - enum { __value = 1 }; - typedef __true_type __type; - }; -#endif - -#ifdef __STDCPP_FLOAT128_T__ - template<> - struct __is_floating<_Float128> - { - enum { __value = 1 }; - typedef __true_type __type; - }; -#endif - -#ifdef __STDCPP_BFLOAT16_T__ - template<> - struct __is_floating<__gnu_cxx::__bfloat16_t> - { - enum { __value = 1 }; - typedef __true_type __type; - }; -#endif - - // - // Pointer types - // - template - struct __is_pointer - { - enum { __value = 0 }; - typedef __false_type __type; - }; - - template - struct __is_pointer<_Tp*> - { - enum { __value = 1 }; - typedef __true_type __type; - }; - - // - // An arithmetic type is an integer type or a floating point type - // - template - struct __is_arithmetic - : public __traitor<__is_integer<_Tp>, __is_floating<_Tp> > - { }; - - // - // A scalar type is an arithmetic type or a pointer type - // - template - struct __is_scalar - : public __traitor<__is_arithmetic<_Tp>, __is_pointer<_Tp> > - { }; - - // - // For use in std::copy and std::find overloads for streambuf iterators. - // - template - struct __is_char - { - enum { __value = 0 }; - typedef __false_type __type; - }; - - template<> - struct __is_char - { - enum { __value = 1 }; - typedef __true_type __type; - }; - -#ifdef __WCHAR_TYPE__ - template<> - struct __is_char - { - enum { __value = 1 }; - typedef __true_type __type; - }; -#endif - - template - struct __is_byte - { - enum { __value = 0 }; - typedef __false_type __type; - }; - - template<> - struct __is_byte - { - enum { __value = 1 }; - typedef __true_type __type; - }; - - template<> - struct __is_byte - { - enum { __value = 1 }; - typedef __true_type __type; - }; - - template<> - struct __is_byte - { - enum { __value = 1 }; - typedef __true_type __type; - }; - -#if __cplusplus >= 201703L - enum class byte : unsigned char; - - template<> - struct __is_byte - { - enum { __value = 1 }; - typedef __true_type __type; - }; -#endif // C++17 - -#ifdef _GLIBCXX_USE_CHAR8_T - template<> - struct __is_byte - { - enum { __value = 1 }; - typedef __true_type __type; - }; -#endif - - template struct iterator_traits; - - // A type that is safe for use with memcpy, memmove, memcmp etc. - template - struct __is_nonvolatile_trivially_copyable - { - enum { __value = __is_trivially_copyable(_Tp) }; - }; - - // Cannot use memcpy/memmove/memcmp on volatile types even if they are - // trivially copyable, so ensure __memcpyable - // and similar will be false. - template - struct __is_nonvolatile_trivially_copyable - { - enum { __value = 0 }; - }; - - // Whether two iterator types can be used with memcpy/memmove. - template - struct __memcpyable - { - enum { __value = 0 }; - }; - - template - struct __memcpyable<_Tp*, _Tp*> - : __is_nonvolatile_trivially_copyable<_Tp> - { }; - - template - struct __memcpyable<_Tp*, const _Tp*> - : __is_nonvolatile_trivially_copyable<_Tp> - { }; - - // Whether two iterator types can be used with memcmp. - // This trait only says it's well-formed to use memcmp, not that it - // gives the right answer for a given algorithm. So for example, std::equal - // needs to add additional checks that the types are integers or pointers, - // because other trivially copyable types can overload operator==. - template - struct __memcmpable - { - enum { __value = 0 }; - }; - - // OK to use memcmp with pointers to trivially copyable types. - template - struct __memcmpable<_Tp*, _Tp*> - : __is_nonvolatile_trivially_copyable<_Tp> - { }; - - template - struct __memcmpable - : __is_nonvolatile_trivially_copyable<_Tp> - { }; - - template - struct __memcmpable<_Tp*, const _Tp*> - : __is_nonvolatile_trivially_copyable<_Tp> - { }; - - // Whether memcmp can be used to determine ordering for a type - // e.g. in std::lexicographical_compare or three-way comparisons. - // True for unsigned integer-like types where comparing each byte in turn - // as an unsigned char yields the right result. This is true for all - // unsigned integers on big endian targets, but only unsigned narrow - // character types (and std::byte) on little endian targets. - template::__value -#else - __is_byte<_Tp>::__value -#endif - > - struct __is_memcmp_ordered - { - static const bool __value = _Tp(-1) > _Tp(1); // is unsigned - }; - - template - struct __is_memcmp_ordered<_Tp, false> - { - static const bool __value = false; - }; - - // Whether two types can be compared using memcmp. - template - struct __is_memcmp_ordered_with - { - static const bool __value = __is_memcmp_ordered<_Tp>::__value - && __is_memcmp_ordered<_Up>::__value; - }; - - template - struct __is_memcmp_ordered_with<_Tp, _Up, false> - { - static const bool __value = false; - }; - -#if __cplusplus >= 201703L -#if __BYTE_ORDER__ == __ORDER_BIG_ENDIAN__ - // std::byte is not an integer, but it can be compared using memcmp. - template<> - struct __is_memcmp_ordered - { static constexpr bool __value = true; }; -#endif - - // std::byte can only be compared to itself, not to other types. - template<> - struct __is_memcmp_ordered_with - { static constexpr bool __value = true; }; - - template - struct __is_memcmp_ordered_with<_Tp, std::byte, _SameSize> - { static constexpr bool __value = false; }; - - template - struct __is_memcmp_ordered_with - { static constexpr bool __value = false; }; -#endif - - // - // Move iterator type - // - template - struct __is_move_iterator - { - enum { __value = 0 }; - typedef __false_type __type; - }; - - // Fallback implementation of the function in bits/stl_iterator.h used to - // remove the move_iterator wrapper. - template - _GLIBCXX20_CONSTEXPR - inline _Iterator - __miter_base(_Iterator __it) - { return __it; } - -_GLIBCXX_END_NAMESPACE_VERSION -} // namespace -} // extern "C++" - -#endif //_CPP_TYPE_TRAITS_H diff --git a/.ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@c++@13.1.1@bits@cpp_type_traits.h.blob b/.ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@c++@13.1.1@bits@cpp_type_traits.h.blob deleted file mode 100644 index 30851f267aa81a6c451812eb71ab431e432ea457..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 32395 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 diff --git a/.ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@c++@13.1.1@bits@cxxabi_forced.h b/.ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@c++@13.1.1@bits@cxxabi_forced.h deleted file mode 100644 index 83624fc..0000000 --- a/.ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@c++@13.1.1@bits@cxxabi_forced.h +++ /dev/null @@ -1,60 +0,0 @@ -// cxxabi.h subset for cancellation -*- C++ -*- - -// Copyright (C) 2007-2023 Free Software Foundation, Inc. -// -// This file is part of GCC. -// -// GCC is free software; you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation; either version 3, or (at your option) -// any later version. -// -// GCC is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. -// -// Under Section 7 of GPL version 3, you are granted additional -// permissions described in the GCC Runtime Library Exception, version -// 3.1, as published by the Free Software Foundation. - -// You should have received a copy of the GNU General Public License and -// a copy of the GCC Runtime Library Exception along with this program; -// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see -// . - -/** @file bits/cxxabi_forced.h - * This is an internal header file, included by other library headers. - * Do not attempt to use it directly. @headername{cxxabi.h} - */ - -#ifndef _CXXABI_FORCED_H -#define _CXXABI_FORCED_H 1 - -#pragma GCC system_header - -#pragma GCC visibility push(default) - -#ifdef __cplusplus -namespace __cxxabiv1 -{ - /** - * @brief Thrown as part of forced unwinding. - * @ingroup exceptions - * - * A magic placeholder class that can be caught by reference to - * recognize forced unwinding. - */ - class __forced_unwind - { - virtual ~__forced_unwind() throw(); - - // Prevent catch by value. - virtual void __pure_dummy() = 0; - }; -} -#endif // __cplusplus - -#pragma GCC visibility pop - -#endif // __CXXABI_FORCED_H diff --git a/.ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@c++@13.1.1@bits@cxxabi_forced.h.blob b/.ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@c++@13.1.1@bits@cxxabi_forced.h.blob deleted file mode 100644 index ee8676ef1e7875674056194410975a1cf30b5acf..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8316 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 diff --git a/.ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@c++@13.1.1@bits@cxxabi_init_exception.h b/.ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@c++@13.1.1@bits@cxxabi_init_exception.h deleted file mode 100644 index d9b0e1b..0000000 --- a/.ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@c++@13.1.1@bits@cxxabi_init_exception.h +++ /dev/null @@ -1,81 +0,0 @@ -// ABI Support -*- C++ -*- - -// Copyright (C) 2016-2023 Free Software Foundation, Inc. -// -// This file is part of GCC. -// -// GCC is free software; you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation; either version 3, or (at your option) -// any later version. -// -// GCC is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. -// -// Under Section 7 of GPL version 3, you are granted additional -// permissions described in the GCC Runtime Library Exception, version -// 3.1, as published by the Free Software Foundation. - -// You should have received a copy of the GNU General Public License and -// a copy of the GCC Runtime Library Exception along with this program; -// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see -// . - -/** @file bits/cxxabi_init_exception.h - * This is an internal header file, included by other library headers. - * Do not attempt to use it directly. - */ - -#ifndef _CXXABI_INIT_EXCEPTION_H -#define _CXXABI_INIT_EXCEPTION_H 1 - -#pragma GCC system_header - -#pragma GCC visibility push(default) - -#include -#include - -#ifndef _GLIBCXX_CDTOR_CALLABI -#define _GLIBCXX_CDTOR_CALLABI -#define _GLIBCXX_HAVE_CDTOR_CALLABI 0 -#else -#define _GLIBCXX_HAVE_CDTOR_CALLABI 1 -#endif - -#ifdef __cplusplus - -namespace std -{ - class type_info; -} - -namespace __cxxabiv1 -{ - struct __cxa_refcounted_exception; - - extern "C" - { - // Allocate memory for the primary exception plus the thrown object. - void* - __cxa_allocate_exception(size_t) _GLIBCXX_NOTHROW; - - void - __cxa_free_exception(void*) _GLIBCXX_NOTHROW; - - // Initialize exception (this is a GNU extension) - __cxa_refcounted_exception* - __cxa_init_primary_exception(void *__object, std::type_info *__tinfo, - void (_GLIBCXX_CDTOR_CALLABI *__dest) (void *)) - _GLIBCXX_NOTHROW; - - } -} // namespace __cxxabiv1 - -#endif - -#pragma GCC visibility pop - -#endif // _CXXABI_INIT_EXCEPTION_H diff --git a/.ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@c++@13.1.1@bits@cxxabi_init_exception.h.blob b/.ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@c++@13.1.1@bits@cxxabi_init_exception.h.blob deleted file mode 100644 index 233cdb448d841db08b94c036b4cbf37e73769a99..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 10081 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 diff --git a/.ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@c++@13.1.1@bits@exception.h b/.ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@c++@13.1.1@bits@exception.h deleted file mode 100644 index 840df6b..0000000 --- a/.ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@c++@13.1.1@bits@exception.h +++ /dev/null @@ -1,83 +0,0 @@ -// Exception Handling support header for -*- C++ -*- - -// Copyright (C) 2016-2023 Free Software Foundation, Inc. -// -// This file is part of GCC. -// -// GCC is free software; you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation; either version 3, or (at your option) -// any later version. -// -// GCC is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. -// -// Under Section 7 of GPL version 3, you are granted additional -// permissions described in the GCC Runtime Library Exception, version -// 3.1, as published by the Free Software Foundation. - -// You should have received a copy of the GNU General Public License and -// a copy of the GCC Runtime Library Exception along with this program; -// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see -// . - -/** @file bits/exception.h - * This is an internal header file, included by other library headers. - * Do not attempt to use it directly. - */ - -#ifndef __EXCEPTION_H -#define __EXCEPTION_H 1 - -#pragma GCC system_header - -#include - -extern "C++" { - -namespace std _GLIBCXX_VISIBILITY(default) -{ - /** - * @defgroup exceptions Exceptions - * @ingroup diagnostics - * @since C++98 - * - * Classes and functions for reporting errors via exceptions. - * @{ - */ - - /** - * @brief Base class for all library exceptions. - * - * This is the base class for all exceptions thrown by the standard - * library, and by certain language expressions. You are free to derive - * your own %exception classes, or use a different hierarchy, or to - * throw non-class data (e.g., fundamental types). - */ - class exception - { - public: - exception() _GLIBCXX_NOTHROW { } - virtual ~exception() _GLIBCXX_TXN_SAFE_DYN _GLIBCXX_NOTHROW; -#if __cplusplus >= 201103L - exception(const exception&) = default; - exception& operator=(const exception&) = default; - exception(exception&&) = default; - exception& operator=(exception&&) = default; -#endif - - /** Returns a C-style character string describing the general cause - * of the current error. */ - virtual const char* - what() const _GLIBCXX_TXN_SAFE_DYN _GLIBCXX_NOTHROW; - }; - - /// @} - -} // namespace std - -} - -#endif diff --git a/.ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@c++@13.1.1@bits@exception.h.blob b/.ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@c++@13.1.1@bits@exception.h.blob deleted file mode 100644 index 66dfbcb3c5adc967e6ad0002911881e25455bb70..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 10143 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. - -/** @file bits/exception_defines.h - * This is an internal header file, included by other library headers. - * Do not attempt to use it directly. @headername{exception} - */ - -#ifndef _EXCEPTION_DEFINES_H -#define _EXCEPTION_DEFINES_H 1 - -#if ! __cpp_exceptions -// Iff -fno-exceptions, transform error handling code to work without it. -# define __try if (true) -# define __catch(X) if (false) -# define __throw_exception_again -#else -// Else proceed normally. -# define __try try -# define __catch(X) catch(X) -# define __throw_exception_again throw -#endif - -#endif diff --git a/.ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@c++@13.1.1@bits@exception_defines.h.blob b/.ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@c++@13.1.1@bits@exception_defines.h.blob deleted file mode 100644 index 2e3941368b09d60cbf157f3f0d89c1e3abb7adc9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8025 zcmbVR&5j#I5cURfAPNXY93fajQ8t9}uwvOn{76Bt5s^YbA&1;r?Vh&X>`afD=~;V& z5C<+CxFRITiCYj7f&KT)j*4p({SAX@>Usd(I-235om9j418!t=ONxn>MV!Gu12LWUo)9V5$fD3WwR$CkducgiJWX@K0YAOpYQ_A@9^2cErXos}uIABLR}QhT znAnh)2+YPH2nZ!D2I&NG9@18`|rSb`aRf*99H8PKS{)%C~j4n6w*~YSmX*15o4oi9s&WB8Vhi4 zCuw4Wc3XmcZwe0OipUzzj$pU}D&SGt@pxOXo!59-$^!jNI--j}@l4N@Hr=)bA%j_t zwnzjnVqzk(Y&Uq^^9f2qu>?kf&_V+-FhaDu(OUvs7m$}aQJk(d>$}%{8BpY9ReK4w zX;p#&mdUX~ZfLwsYy~8|Nz>u{ihc^UL>}H!jY}B{vQ2IqyGC$41&p<-s5=2t%c3!f z>^^(Dq|ACC3g|l}<3h-iX0i1JzU#2#LIR@K+VEig>4E}j2-R~~jfgDte1kPnCEZ5| z*VH9`#Dz38KBqeDEPP(Uq16#oZf%q~>aqlvObh9_C1LrL-g@1wg&fTa*FLpzk(`@Y zS5U*@>^l0hfZA3#K&EIDN14q|FZAogeyCv4^>(*bFt;SZc5>Y_i~7b>HsR%jv=>?o zm2VUp)aE)SQj=#%U5!giscgy%o^7-P%yY~uPvkD^HUg(^G`%3Y3Fc>dd#tILC z0PjKbMugQ90)*`X2o0JA+qyGwnK&RVU-_4Grk&_YQw_@~z+cV-(tMK9qsCGJsopcl zatTZT8yK}5M@WM_m34Fy#)qAU-X7$xELrG-;6ymib=ef`92WBjoIBD8+-cQYH0o1h zRE-w1Ha)L~yCKhA;hD)3LS)caF3U(K*PUo=C~{o56?i?e+)jEGg&ZY9i-_TDc*TQh z!|8e{+b|!(NMJj1(%0T9&+QCGC+ILcmjpxXu0WKAn~}$#fdCu8AE_~k9N{{aues55 zQX2U%L@xZ+F86p^%?eaC26&3FMdS96PgXNd|0c=u3w6 z_~NwOR(-t%z_QR|KBlw8wAyr}!AOevoDUUKS{b%9t0nN*U`Hif6v-r7p2x%z%TiZZx#EkP~VEjug=Z?#N^j!7W)qU%AoP4tYv)fEO5BBNcU@xzY&N zV>C^m2m~jB!Jum&$06+r;PgQl+L8)|>R|z674bq~^VD!Hil(`}N6xEZ+Bu=v>7x6D z*|btT1+Nq=RV8(~Cay2B(+E$;`JxM~&9O6YQIJ1*&$M zZ6QKa;W}2O5Ay?>n^D{H4!9AabxrOtEK3GGz2j^wQ+P2z+JakRRzr9?X&j}Y5CTnh zaE0Uh@RsggntZ-)rVZ|*`?m`k!F4t?ZEU-Wx|lf(H|Bz3?po z%lI4!U5&M?FpXpCLBLqrSBGtN(37uIDur2I(XAUwxI-JfgI`xzcTuCf5UUolx7F{R zKi%s+dHlkC{n^w1{PYcD@P<=NdcEE=FS)y+e*M+qI-9LZ%jYqI_QslE0 zb2C2XN`tb2r;HNm<3fOS@$AK`r|jpATKAt{z4^zFfBn4+N|rxc{WJYnu5KMabw9dw y=AADhwtwf{{f};6|L`VzZ~xl$oBJQL_d$4jxhe6yzXQ9Sd-mLwQ}**Mx7&Ym<>uM| diff --git a/.ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@c++@13.1.1@bits@exception_ptr.h b/.ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@c++@13.1.1@bits@exception_ptr.h deleted file mode 100644 index 5be6981..0000000 --- a/.ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@c++@13.1.1@bits@exception_ptr.h +++ /dev/null @@ -1,295 +0,0 @@ -// Exception Handling support header (exception_ptr class) for -*- C++ -*- - -// Copyright (C) 2008-2023 Free Software Foundation, Inc. -// -// This file is part of GCC. -// -// GCC is free software; you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation; either version 3, or (at your option) -// any later version. -// -// GCC is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. -// -// Under Section 7 of GPL version 3, you are granted additional -// permissions described in the GCC Runtime Library Exception, version -// 3.1, as published by the Free Software Foundation. - -// You should have received a copy of the GNU General Public License and -// a copy of the GCC Runtime Library Exception along with this program; -// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see -// . - -/** @file bits/exception_ptr.h - * This is an internal header file, included by other library headers. - * Do not attempt to use it directly. @headername{exception} - */ - -#ifndef _EXCEPTION_PTR_H -#define _EXCEPTION_PTR_H - -#include -#include -#include -#include -#include - -#if __cplusplus >= 201103L -# include -#endif - -#ifdef _GLIBCXX_EH_PTR_RELOPS_COMPAT -# define _GLIBCXX_EH_PTR_USED __attribute__((__used__)) -#else -# define _GLIBCXX_EH_PTR_USED -#endif - -extern "C++" { - -namespace std _GLIBCXX_VISIBILITY(default) -{ - class type_info; - - /** - * @addtogroup exceptions - * @{ - */ - - namespace __exception_ptr - { - class exception_ptr; - } - - using __exception_ptr::exception_ptr; - - /** Obtain an exception_ptr to the currently handled exception. - * - * If there is none, or the currently handled exception is foreign, - * return the null value. - * - * @since C++11 - */ - exception_ptr current_exception() _GLIBCXX_USE_NOEXCEPT; - - template - exception_ptr make_exception_ptr(_Ex) _GLIBCXX_USE_NOEXCEPT; - - /// Throw the object pointed to by the exception_ptr. - void rethrow_exception(exception_ptr) __attribute__ ((__noreturn__)); - - namespace __exception_ptr - { - using std::rethrow_exception; // So that ADL finds it. - - /** - * @brief An opaque pointer to an arbitrary exception. - * - * The actual name of this type is unspecified, so the alias - * `std::exception_ptr` should be used to refer to it. - * - * @headerfile exception - * @since C++11 (but usable in C++98 as a GCC extension) - * @ingroup exceptions - */ - class exception_ptr - { - void* _M_exception_object; - - explicit exception_ptr(void* __e) _GLIBCXX_USE_NOEXCEPT; - - void _M_addref() _GLIBCXX_USE_NOEXCEPT; - void _M_release() _GLIBCXX_USE_NOEXCEPT; - - void *_M_get() const _GLIBCXX_NOEXCEPT __attribute__ ((__pure__)); - - friend exception_ptr std::current_exception() _GLIBCXX_USE_NOEXCEPT; - friend void std::rethrow_exception(exception_ptr); - template - friend exception_ptr std::make_exception_ptr(_Ex) _GLIBCXX_USE_NOEXCEPT; - - public: - exception_ptr() _GLIBCXX_USE_NOEXCEPT; - - exception_ptr(const exception_ptr&) _GLIBCXX_USE_NOEXCEPT; - -#if __cplusplus >= 201103L - exception_ptr(nullptr_t) noexcept - : _M_exception_object(nullptr) - { } - - exception_ptr(exception_ptr&& __o) noexcept - : _M_exception_object(__o._M_exception_object) - { __o._M_exception_object = nullptr; } -#endif - -#if (__cplusplus < 201103L) || defined (_GLIBCXX_EH_PTR_COMPAT) - typedef void (exception_ptr::*__safe_bool)(); - - // For construction from nullptr or 0. - exception_ptr(__safe_bool) _GLIBCXX_USE_NOEXCEPT; -#endif - - exception_ptr& - operator=(const exception_ptr&) _GLIBCXX_USE_NOEXCEPT; - -#if __cplusplus >= 201103L - exception_ptr& - operator=(exception_ptr&& __o) noexcept - { - exception_ptr(static_cast(__o)).swap(*this); - return *this; - } -#endif - - ~exception_ptr() _GLIBCXX_USE_NOEXCEPT; - - void - swap(exception_ptr&) _GLIBCXX_USE_NOEXCEPT; - -#ifdef _GLIBCXX_EH_PTR_COMPAT - // Retained for compatibility with CXXABI_1.3. - void _M_safe_bool_dummy() _GLIBCXX_USE_NOEXCEPT - __attribute__ ((__const__)); - bool operator!() const _GLIBCXX_USE_NOEXCEPT - __attribute__ ((__pure__)); - operator __safe_bool() const _GLIBCXX_USE_NOEXCEPT; -#endif - -#if __cplusplus >= 201103L - explicit operator bool() const noexcept - { return _M_exception_object; } -#endif - -#if __cpp_impl_three_way_comparison >= 201907L \ - && ! defined _GLIBCXX_EH_PTR_RELOPS_COMPAT - friend bool - operator==(const exception_ptr&, const exception_ptr&) noexcept = default; -#else - friend _GLIBCXX_EH_PTR_USED bool - operator==(const exception_ptr& __x, const exception_ptr& __y) - _GLIBCXX_USE_NOEXCEPT - { return __x._M_exception_object == __y._M_exception_object; } - - friend _GLIBCXX_EH_PTR_USED bool - operator!=(const exception_ptr& __x, const exception_ptr& __y) - _GLIBCXX_USE_NOEXCEPT - { return __x._M_exception_object != __y._M_exception_object; } -#endif - - const class std::type_info* - __cxa_exception_type() const _GLIBCXX_USE_NOEXCEPT - __attribute__ ((__pure__)); - }; - - _GLIBCXX_EH_PTR_USED - inline - exception_ptr::exception_ptr() _GLIBCXX_USE_NOEXCEPT - : _M_exception_object(0) - { } - - _GLIBCXX_EH_PTR_USED - inline - exception_ptr::exception_ptr(const exception_ptr& __other) - _GLIBCXX_USE_NOEXCEPT - : _M_exception_object(__other._M_exception_object) - { - if (_M_exception_object) - _M_addref(); - } - - _GLIBCXX_EH_PTR_USED - inline - exception_ptr::~exception_ptr() _GLIBCXX_USE_NOEXCEPT - { - if (_M_exception_object) - _M_release(); - } - - _GLIBCXX_EH_PTR_USED - inline exception_ptr& - exception_ptr::operator=(const exception_ptr& __other) _GLIBCXX_USE_NOEXCEPT - { - exception_ptr(__other).swap(*this); - return *this; - } - - _GLIBCXX_EH_PTR_USED - inline void - exception_ptr::swap(exception_ptr &__other) _GLIBCXX_USE_NOEXCEPT - { - void *__tmp = _M_exception_object; - _M_exception_object = __other._M_exception_object; - __other._M_exception_object = __tmp; - } - - /// @relates exception_ptr - inline void - swap(exception_ptr& __lhs, exception_ptr& __rhs) - { __lhs.swap(__rhs); } - - /// @cond undocumented - template - _GLIBCXX_CDTOR_CALLABI - inline void - __dest_thunk(void* __x) - { static_cast<_Ex*>(__x)->~_Ex(); } - /// @endcond - - } // namespace __exception_ptr - - using __exception_ptr::swap; // So that std::swap(exp1, exp2) finds it. - - /// Obtain an exception_ptr pointing to a copy of the supplied object. -#if (__cplusplus >= 201103L && __cpp_rtti) || __cpp_exceptions - template - exception_ptr - make_exception_ptr(_Ex __ex) _GLIBCXX_USE_NOEXCEPT - { -#if __cplusplus >= 201103L && __cpp_rtti - using _Ex2 = typename decay<_Ex>::type; - void* __e = __cxxabiv1::__cxa_allocate_exception(sizeof(_Ex)); - (void) __cxxabiv1::__cxa_init_primary_exception( - __e, const_cast(&typeid(_Ex)), - __exception_ptr::__dest_thunk<_Ex2>); - __try - { - ::new (__e) _Ex2(__ex); - return exception_ptr(__e); - } - __catch(...) - { - __cxxabiv1::__cxa_free_exception(__e); - return current_exception(); - } -#else - try - { - throw __ex; - } - catch(...) - { - return current_exception(); - } -#endif - } -#else // no RTTI and no exceptions - // This is always_inline so the linker will never use this useless definition - // instead of a working one compiled with RTTI and/or exceptions enabled. - template - __attribute__ ((__always_inline__)) - inline exception_ptr - make_exception_ptr(_Ex) _GLIBCXX_USE_NOEXCEPT - { return exception_ptr(); } -#endif - -#undef _GLIBCXX_EH_PTR_USED - - /// @} group exceptions -} // namespace std - -} // extern "C++" - -#endif diff --git a/.ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@c++@13.1.1@bits@exception_ptr.h.blob b/.ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@c++@13.1.1@bits@exception_ptr.h.blob deleted file mode 100644 index 2d400f3accfb714bade0934a241374784b569982..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 16966 zcmbtb4R{pgou7BJ;2Hq)sulFCS845ON~`98UW+Xi`c&`X;bJ?0-22Z2^(IPB{;1WF&Rk48m&a_GS)-bjCvq7xD|O;Md@ zr^e8=6mggrWLXUfz`yf)sTm_pjeKK+HyZNFk`f>B_9=0L;}G)12Zb1A3~i8;F*-Cq zW3kbgE)Mb_f~q-;jEI6B*Tk5k4yaJbP0Y{pgTa^%Cgyd=p+aoX+b4n_NFhH}7mhk` z=J9miDZ!}TuZcpK2XdhSeo#`p;Za2xltPY#>6D193cBJAse^;6l6%-N)rWUD)Gtu= zXBpKHNE#Gl(wMW^>4@N{F2;t1sN+gD2Mf`a9JFd1BaVc`s4l5W{$V-2p%1i$d}R57 zAqzDQdYqigGPZF%-*#K)xO(uOYrd-0IYOF9@*i$z6e$Fb4PsazQ2ykBK0=%+B|uV3M-^R2Yt1y~G= z5maICz|-l@ZCem@o>K&1x{w8^$p+P-f&h?HF!UNPFe=1lx?i)r$IdKl!(l-S1Ntao zP-r1^H?XVb(_xb77kz?CXx>QV; z!Ce)DEyo!)j(9#2RdX=`km?VCatnecbMQ@_>mL?$MYH6 z(3%j7i5k_jqaq3cDBaV;lA;%uEhoz$mH}Ii92gc0^@}uYXW_U_Cv+qPOF$$rEhG>= zJrv5XM%xs?x*X$0B`gWfu_kl%BwpqqWb>;0Ar##z1_B_G(+F9l@aWhQfN(KMhoM)h zr(7wKjo+Bm7ZYtt6AeTP^J>(2=}fh1Vq{n|lCFFRCXVQSB@U4v zcDwoMY@#`h3=GrkAt)p;k9X9yZI(^#JQQ4zmlm9o)5J#OL{gxi^5<7hz#Fh1 zk@_4tr|cRipTtJJAS6PU0B7XiW;um2sx4Z$2uj`{PP1~OaA|BPGC|P9Eph0##rS^k zFC*V9=v}m8&KFB<<^{}zJoC>KJrs@SO$2T0P`iXiMuecmONylP`4P)7BTcfsF=!Tv zVXw8jvV7dZ=8!Mt>^somN$1dp0a0ia$fBADYA6LjypXpa`edT!g-)5~+;(&3ZAg$E zceG7m81W>ho@R<7w8)${JskqZ@j`J>XdMF)@;iV*56qCyspz0&>Q8Ou6|@jdg|bvj zhsrAUlGS)nE?A{ttx$Nspj%0T3|i56S&BI|cx?KmJS5>AJQB-oM?lG(g0+Pp_o-%Z zDYzSf6D%C^7M~#BNFhTdm4*pHuF5czS4kOC2b__XQnUKNSr*EqWNZd20616hv_2MP zI2>@4g)T|G8q8A=l<8;)YXEu$u);v^+)En0X~*Z8Vxn=)TplN68P|{@TgH6tNI|2a zDytnyX$?bDDIyDf&Ko(Czql^R$pX)rwY12`^N@k^P_gp5Kv~E#v&90Q9K?&`!N^^( zFXN;juy4p~)RskRJXuxe*dIpswzb0h?A$2 z@ky7Gp)!{Wo)P8j!)FpqW>FDU3#Agm*{!+GAaf?JK-Ws7*XEi{MX+);TejDhcSf#E zuRYf+YcqA^8i8G%?pzNko5=&2*-IF2>HW+@>|@Ng*neTZTRL4znCUACJAD=WUP##T z1oIDxd$&LPz*R%46y_H5yut2JeRDJ33+5TIn2J2L*bCzIMVz7<+F;n~I)?tRcqNxs zU6QA(10?b27xb0~-OKJZ${da^0j`FmQ+kZ*T5~g=VAeW6N*l@5@Vwj~TgnwVR_l)~ zV#?Qg$Z5~%dDAX8`K{-J1}311G8_-bxHQ@f<4PQPqUqUZM-KijvGc>voxQDm;R*6V z`3GF$;sY;<6HoncRtbp3mY|FuFZ;OJO%iK<|MKOb$3ORKP*vp|JgHHm-F?d~wX`zI zF)WQ06mw)LH>2^RHiMKlmXUFGoI{ECvHQOQ9J><24_0>Gzi|J%iEAbf>Q_E;_7jGR z!X$3J@a`w?U3ce~#F3~hg(STg4x5`zxj2-)c2Sa9%O~bM&5G0wIFfOf3^GQb-(yNx&nwp_ON^A zP7^o&-Uy)ZG%?e&nUnkgUh_rB-X$e$~5xaIi;&n&&8JnzCVSbvWys*8?B2~x$!=};7%J*`^YK>vjqXhq_wA>yzVX3@<2MzdIKw|eaZQ6J zduk`!_1E50#V~gSbwN@%K}p|doUU?uzsMyC$fI1ppoC>HoEqjUExj#*gEWzoVqg|U zT*|3hp=mf4Vu1(|Y-y<`!pkBGoub5LnS(+zE&|~IoLhxNZq1S<_4R00a3WU+*U^eP z>Tq{x1A&1c-Vd+?dl)k9A!YDsq&j-xO<|~`@8O>s`;xYR3|$~(L**1vxy423&xF>L zBjEh(E!4C<>F2Y-`3|v%8j!7n><=2j&rCNg-p}|h9$-&|S9R=$D(x*pCBW8%HTo9x zEygwa*uJ|Bcc)^1>o4A0za;X0eG#H@HAM_cVaJRh(dPagkIpBPHIo!v-tqhj-Jc}h zzUv=r$y>+gy3n_+jfng7ID5P%v3UCZgU`$VgBZRV_r*?j=QSwo4tD1dD0J1Fft$;I zw!l{e|Ax&6g#jB%@esyp`E?^UCfj?e$pz1arMO2w@l2NyW0(H)$8U~RPd@tBiEj?x z`OeabudcWp9K@rl*-@@VO@;3|w0^wd%u_IBGh<)WRo_2r6f~L$Cbuz7qFz z33zJ>@g=rjF{^8NSz8?nYkfI*{lZ;KZtwpa`ehO{Ei9%Klg^$#-Tcx-2pkEK!_~!g ztwjZPxx2=cfD*=gg;gF0WqvPm*>*e zE{7emh22tvDudq}z^MC5ANa<`t$(K!k?UMHqmBLl&vho)37YFX#~v_pozESs`nQ+9 zJmpIK`stR9LpN+YZ{|AY9++9Klde0{xT4KWknW(~NaC`+H(aWn_~?4(a`-D;8E!%i zhS~5K#FFIhggr?TM{Wszhs19vDZ+L$2GycyLW-%{1VBjL#qO#^FL;FgI(h*~g#Tmp z4R6-p-{HcvAq`S@&)dB?4JH6m;m7)_2o^G3vWO{MO$OKKyJPHF4RSrkZi5UAxR!nO z7vBE$ucjDqVg^zkU=>wvSAQz3gDFP;>Q|rKdhFkCGVEFe8xX*|_&!n34%zGmnv)vg zR4SLM(fSfAeGOD&2B4xANcXrI6aqGrqH>Pb9Hkrki02I>N;cGUpR6F>h2+PsAD1OQ zT(LiTS0Z`@F&(#jjE&JP55MnY2*yq7tY(BMT*w(f1}_E0m4PIh!S==)tel)>&sL+M zK4j1JFaeM$%*Bd*gedvvmJr4s3Iy8AfBqa$mPjX-IU1)HV zi)$~!H1y9HT@O8O8{;S3dlkm4{!+8bdm3JAH(7F6e}Og>t4I^!_SVau+ zy^=JKL+i0k6$}>$Y7)q@TH(~Fuq7@glO(8_RII=R4f;YFBq?b{RxgxcLP(DbGDkf` z#i9#}DAWcPQ*i~44yA}Bh9QSB$~I^a3bE47)YH>g+04cI)wmqyf+81>8R;49K9RB@ z=}>xc0ppM`BFSQk5BSPSL+4=+O?{DRU?{tmHXD&J>@<0zQ_G1h&Uyy z=dA_=`gq>Q2-*o|HhiiF_rSAW~K?QsjzmIA{ru+Rr0^on^as*v~!_X;SD zTnBvzL45#*b?^b@CAiW@{_EvGPW;G#Y^n%~(*{J_;TuCW;6ERuXLzc%3gd%`fs+;m7Z%{hyVkX>*}H zf-it(lGL^OG*%(3hQxkV#{WOaU`rGG#1Z4oeS85X<0;B$@CH1mt*mRyGFJuLKv8MP zZ4)H~wXmY%V4EEEwgH*kw2`=@9ztRd_csfYJGl{z8MC|am;V+B|km1(BVyykx}^n zHNT~IIDgg$W!SDI3A0IK^|P#AOo@du7GPR82wP-%+42fPmNU~;#FYY7W_E8`FC>-& zjRUJ7dQ{7R`bwh$_Xn#F!acxF4SWENud%Xsvp^n!j1cqev&+uXR^8c}vrWu2CfN znmw8stuV@L*nqw@@xa6mq&~4>Vn>QP`q+Wq19t;;vyOlS926&xFdh$9DHj?qwBS6b zE?TTYgnAI@q82`ogIL+uj5r%HIqRJ0p`2As^ki^Wc>trnc_8;^Q6KLdr_{%*#xtnz zuiTH+s~+9`g+H$T%QgJEjce9*_uh8LdcM22hi?a%;I23R-vKJR%xC1$itq8;r>a_lW;v>dLF*{)blCa zC%)M`^3yZVJ@&4BKAC3V44NSe;JJBNWjeS%7zKYXwf%`6-<4{vCY!2Y!xQBvs$Ap* zdtyB^2YumG`>7uA*suNlyC3QD9WDG9J8x@UvvDK8uAPd0*PZLu0vENG^p4MoZ@#bD zMXyu?o_!VjS_9;{is#_^g6D<00C~mp3S58U`3YR#_Ph<(_dM^xb^2N|7e0+3)tt6h z)$Om`-D8*9b-v|%59nppr`<4O;dhm-bN=+bz4j4gdKTzq7O8;eBRlG4eiZDLe9oa1dVYBcv{J046w5gaXsEv~Y zhTTvDG=t?q3RXcj*ur?At2uvo-Y}f;Z=JUluYs)*mTW8E)>1~Eu6%keOZM07?}Y27 z{o7e`pymMFAJ}vN?q6bGT2@A0V_(DT+Sl%3$?IjWH?!ntWj}-KiP{qY_$S$u@bqN+ zNrfe+t~u3OMywYGW@H8vpvNB=rvN>^VLSt%_xJ8cfHvE;Md--r|0Yc^);_i#O#s#E s`jiR4wyv#BTU*>@+q`WUug!+M2`Dt0f=qNB{r; diff --git a/.ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@c++@13.1.1@bits@functexcept.h b/.ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@c++@13.1.1@bits@functexcept.h deleted file mode 100644 index 89972ba..0000000 --- a/.ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@c++@13.1.1@bits@functexcept.h +++ /dev/null @@ -1,143 +0,0 @@ -// Function-Based Exception Support -*- C++ -*- - -// Copyright (C) 2001-2023 Free Software Foundation, Inc. -// -// This file is part of the GNU ISO C++ Library. This library is free -// software; you can redistribute it and/or modify it under the -// terms of the GNU General Public License as published by the -// Free Software Foundation; either version 3, or (at your option) -// any later version. - -// This library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. - -// Under Section 7 of GPL version 3, you are granted additional -// permissions described in the GCC Runtime Library Exception, version -// 3.1, as published by the Free Software Foundation. - -// You should have received a copy of the GNU General Public License and -// a copy of the GCC Runtime Library Exception along with this program; -// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see -// . - -/** @file bits/functexcept.h - * This is an internal header file, included by other library headers. - * Do not attempt to use it directly. @headername{exception} - * - * This header provides support for -fno-exceptions. - */ - -// -// ISO C++ 14882: 19.1 Exception classes -// - -#ifndef _FUNCTEXCEPT_H -#define _FUNCTEXCEPT_H 1 - -#include -#include - -namespace std _GLIBCXX_VISIBILITY(default) -{ -_GLIBCXX_BEGIN_NAMESPACE_VERSION - -#if _GLIBCXX_HOSTED - // Helper for exception objects in - void - __throw_bad_exception(void) __attribute__((__noreturn__)); - - // Helper for exception objects in - void - __throw_bad_alloc(void) __attribute__((__noreturn__)); - - void - __throw_bad_array_new_length(void) __attribute__((__noreturn__)); - - // Helper for exception objects in - void - __throw_bad_cast(void) __attribute__((__noreturn__)); - - void - __throw_bad_typeid(void) __attribute__((__noreturn__)); - - // Helpers for exception objects in - void - __throw_logic_error(const char*) __attribute__((__noreturn__)); - - void - __throw_domain_error(const char*) __attribute__((__noreturn__)); - - void - __throw_invalid_argument(const char*) __attribute__((__noreturn__)); - - void - __throw_length_error(const char*) __attribute__((__noreturn__)); - - void - __throw_out_of_range(const char*) __attribute__((__noreturn__)); - - void - __throw_out_of_range_fmt(const char*, ...) __attribute__((__noreturn__)) - __attribute__((__format__(__gnu_printf__, 1, 2))); - - void - __throw_runtime_error(const char*) __attribute__((__noreturn__)); - - void - __throw_range_error(const char*) __attribute__((__noreturn__)); - - void - __throw_overflow_error(const char*) __attribute__((__noreturn__)); - - void - __throw_underflow_error(const char*) __attribute__((__noreturn__)); - - // Helpers for exception objects in - void - __throw_ios_failure(const char*) __attribute__((__noreturn__)); - - void - __throw_ios_failure(const char*, int) __attribute__((__noreturn__)); - - // Helpers for exception objects in - void - __throw_system_error(int) __attribute__((__noreturn__)); - - // Helpers for exception objects in - void - __throw_future_error(int) __attribute__((__noreturn__)); - - // Helpers for exception objects in - void - __throw_bad_function_call() __attribute__((__noreturn__)); - -#else // ! HOSTED - - __attribute__((__noreturn__)) inline void - __throw_invalid_argument(const char*) - { std::__terminate(); } - - __attribute__((__noreturn__)) inline void - __throw_out_of_range(const char*) - { std::__terminate(); } - - __attribute__((__noreturn__)) inline void - __throw_out_of_range_fmt(const char*, ...) - { std::__terminate(); } - - __attribute__((__noreturn__)) inline void - __throw_runtime_error(const char*) - { std::__terminate(); } - - __attribute__((__noreturn__)) inline void - __throw_overflow_error(const char*) - { std::__terminate(); } - -#endif // HOSTED - -_GLIBCXX_END_NAMESPACE_VERSION -} // namespace - -#endif diff --git a/.ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@c++@13.1.1@bits@functexcept.h.blob b/.ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@c++@13.1.1@bits@functexcept.h.blob deleted file mode 100644 index aac60b5052baf0f9f4945039d9feac4781ed74eb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 11015 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 diff --git a/.ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@c++@13.1.1@bits@functional_hash.h b/.ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@c++@13.1.1@bits@functional_hash.h deleted file mode 100644 index 87030a1..0000000 --- a/.ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@c++@13.1.1@bits@functional_hash.h +++ /dev/null @@ -1,305 +0,0 @@ -// functional_hash.h header -*- C++ -*- - -// Copyright (C) 2007-2023 Free Software Foundation, Inc. -// -// This file is part of the GNU ISO C++ Library. This library is free -// software; you can redistribute it and/or modify it under the -// terms of the GNU General Public License as published by the -// Free Software Foundation; either version 3, or (at your option) -// any later version. - -// This library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. - -// Under Section 7 of GPL version 3, you are granted additional -// permissions described in the GCC Runtime Library Exception, version -// 3.1, as published by the Free Software Foundation. - -// You should have received a copy of the GNU General Public License and -// a copy of the GCC Runtime Library Exception along with this program; -// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see -// . - -/** @file bits/functional_hash.h - * This is an internal header file, included by other library headers. - * Do not attempt to use it directly. @headername{functional} - */ - -#ifndef _FUNCTIONAL_HASH_H -#define _FUNCTIONAL_HASH_H 1 - -#pragma GCC system_header - -#include -#include - -namespace std _GLIBCXX_VISIBILITY(default) -{ -_GLIBCXX_BEGIN_NAMESPACE_VERSION - - /** @defgroup hashes Hashes - * @ingroup functors - * - * Hashing functors taking a variable type and returning a @c std::size_t. - * - * @{ - */ - - template - struct __hash_base - { - typedef _Result result_type _GLIBCXX17_DEPRECATED; - typedef _Arg argument_type _GLIBCXX17_DEPRECATED; - }; - - /// Primary class template hash. - template - struct hash; - - template - struct __poison_hash - { - static constexpr bool __enable_hash_call = false; - private: - // Private rather than deleted to be non-trivially-copyable. - __poison_hash(__poison_hash&&); - ~__poison_hash(); - }; - - template - struct __poison_hash<_Tp, __void_t()(declval<_Tp>()))>> - { - static constexpr bool __enable_hash_call = true; - }; - - // Helper struct for SFINAE-poisoning non-enum types. - template::value> - struct __hash_enum - { - private: - // Private rather than deleted to be non-trivially-copyable. - __hash_enum(__hash_enum&&); - ~__hash_enum(); - }; - - // Helper struct for hash with enum types. - template - struct __hash_enum<_Tp, true> : public __hash_base - { - size_t - operator()(_Tp __val) const noexcept - { - using __type = typename underlying_type<_Tp>::type; - return hash<__type>{}(static_cast<__type>(__val)); - } - }; - - /// Primary class template hash, usable for enum types only. - // Use with non-enum types still SFINAES. - template - struct hash : __hash_enum<_Tp> - { }; - - /// Partial specializations for pointer types. - template - struct hash<_Tp*> : public __hash_base - { - size_t - operator()(_Tp* __p) const noexcept - { return reinterpret_cast(__p); } - }; - - // Explicit specializations for integer types. -#define _Cxx_hashtable_define_trivial_hash(_Tp) \ - template<> \ - struct hash<_Tp> : public __hash_base \ - { \ - size_t \ - operator()(_Tp __val) const noexcept \ - { return static_cast(__val); } \ - }; - - /// Explicit specialization for bool. - _Cxx_hashtable_define_trivial_hash(bool) - - /// Explicit specialization for char. - _Cxx_hashtable_define_trivial_hash(char) - - /// Explicit specialization for signed char. - _Cxx_hashtable_define_trivial_hash(signed char) - - /// Explicit specialization for unsigned char. - _Cxx_hashtable_define_trivial_hash(unsigned char) - - /// Explicit specialization for wchar_t. - _Cxx_hashtable_define_trivial_hash(wchar_t) - -#ifdef _GLIBCXX_USE_CHAR8_T - /// Explicit specialization for char8_t. - _Cxx_hashtable_define_trivial_hash(char8_t) -#endif - - /// Explicit specialization for char16_t. - _Cxx_hashtable_define_trivial_hash(char16_t) - - /// Explicit specialization for char32_t. - _Cxx_hashtable_define_trivial_hash(char32_t) - - /// Explicit specialization for short. - _Cxx_hashtable_define_trivial_hash(short) - - /// Explicit specialization for int. - _Cxx_hashtable_define_trivial_hash(int) - - /// Explicit specialization for long. - _Cxx_hashtable_define_trivial_hash(long) - - /// Explicit specialization for long long. - _Cxx_hashtable_define_trivial_hash(long long) - - /// Explicit specialization for unsigned short. - _Cxx_hashtable_define_trivial_hash(unsigned short) - - /// Explicit specialization for unsigned int. - _Cxx_hashtable_define_trivial_hash(unsigned int) - - /// Explicit specialization for unsigned long. - _Cxx_hashtable_define_trivial_hash(unsigned long) - - /// Explicit specialization for unsigned long long. - _Cxx_hashtable_define_trivial_hash(unsigned long long) - -#ifdef __GLIBCXX_TYPE_INT_N_0 - __extension__ - _Cxx_hashtable_define_trivial_hash(__GLIBCXX_TYPE_INT_N_0) - __extension__ - _Cxx_hashtable_define_trivial_hash(__GLIBCXX_TYPE_INT_N_0 unsigned) -#endif -#ifdef __GLIBCXX_TYPE_INT_N_1 - __extension__ - _Cxx_hashtable_define_trivial_hash(__GLIBCXX_TYPE_INT_N_1) - __extension__ - _Cxx_hashtable_define_trivial_hash(__GLIBCXX_TYPE_INT_N_1 unsigned) -#endif -#ifdef __GLIBCXX_TYPE_INT_N_2 - __extension__ - _Cxx_hashtable_define_trivial_hash(__GLIBCXX_TYPE_INT_N_2) - __extension__ - _Cxx_hashtable_define_trivial_hash(__GLIBCXX_TYPE_INT_N_2 unsigned) -#endif -#ifdef __GLIBCXX_TYPE_INT_N_3 - __extension__ - _Cxx_hashtable_define_trivial_hash(__GLIBCXX_TYPE_INT_N_3) - __extension__ - _Cxx_hashtable_define_trivial_hash(__GLIBCXX_TYPE_INT_N_3 unsigned) -#endif - -#undef _Cxx_hashtable_define_trivial_hash - - struct _Hash_impl - { - static size_t - hash(const void* __ptr, size_t __clength, - size_t __seed = static_cast(0xc70f6907UL)) - { return _Hash_bytes(__ptr, __clength, __seed); } - - template - static size_t - hash(const _Tp& __val) - { return hash(&__val, sizeof(__val)); } - - template - static size_t - __hash_combine(const _Tp& __val, size_t __hash) - { return hash(&__val, sizeof(__val), __hash); } - }; - - // A hash function similar to FNV-1a (see PR59406 for how it differs). - struct _Fnv_hash_impl - { - static size_t - hash(const void* __ptr, size_t __clength, - size_t __seed = static_cast(2166136261UL)) - { return _Fnv_hash_bytes(__ptr, __clength, __seed); } - - template - static size_t - hash(const _Tp& __val) - { return hash(&__val, sizeof(__val)); } - - template - static size_t - __hash_combine(const _Tp& __val, size_t __hash) - { return hash(&__val, sizeof(__val), __hash); } - }; - - /// Specialization for float. - template<> - struct hash : public __hash_base - { - size_t - operator()(float __val) const noexcept - { - // 0 and -0 both hash to zero. - return __val != 0.0f ? std::_Hash_impl::hash(__val) : 0; - } - }; - - /// Specialization for double. - template<> - struct hash : public __hash_base - { - size_t - operator()(double __val) const noexcept - { - // 0 and -0 both hash to zero. - return __val != 0.0 ? std::_Hash_impl::hash(__val) : 0; - } - }; - - /// Specialization for long double. - template<> - struct hash - : public __hash_base - { - _GLIBCXX_PURE size_t - operator()(long double __val) const noexcept; - }; - -#if __cplusplus >= 201703L - template<> - struct hash : public __hash_base - { - size_t - operator()(nullptr_t) const noexcept - { return 0; } - }; -#endif - - /// @} group hashes - - /** Hint about performance of hash functions. - * - * If a given hash function object is not fast, the hash-based containers - * will cache the hash code. - * The default behavior is to consider that hashers are fast unless specified - * otherwise. - * - * Users can specialize this for their own hash functions in order to force - * caching of hash codes in unordered containers. Specializing this trait - * affects the ABI of the unordered containers, so use it carefully. - */ - template - struct __is_fast_hash : public std::true_type - { }; - - template<> - struct __is_fast_hash> : public std::false_type - { }; - -_GLIBCXX_END_NAMESPACE_VERSION -} // namespace - -#endif // _FUNCTIONAL_HASH_H diff --git a/.ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@c++@13.1.1@bits@functional_hash.h.blob b/.ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@c++@13.1.1@bits@functional_hash.h.blob deleted file mode 100644 index 3abf39c9700f477b06da4374e71a4618eb3141ad..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 26282 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

y3*?k{6m!mdgvcM|F^-j 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 diff --git a/.ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@c++@13.1.1@bits@hash_bytes.h b/.ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@c++@13.1.1@bits@hash_bytes.h deleted file mode 100644 index 204e264..0000000 --- a/.ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@c++@13.1.1@bits@hash_bytes.h +++ /dev/null @@ -1,59 +0,0 @@ -// Declarations for hash functions. -*- C++ -*- - -// Copyright (C) 2010-2023 Free Software Foundation, Inc. -// -// This file is part of the GNU ISO C++ Library. This library is free -// software; you can redistribute it and/or modify it under the -// terms of the GNU General Public License as published by the -// Free Software Foundation; either version 3, or (at your option) -// any later version. - -// This library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. - -// Under Section 7 of GPL version 3, you are granted additional -// permissions described in the GCC Runtime Library Exception, version -// 3.1, as published by the Free Software Foundation. - -// You should have received a copy of the GNU General Public License and -// a copy of the GCC Runtime Library Exception along with this program; -// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see -// . - -/** @file bits/hash_bytes.h - * This is an internal header file, included by other library headers. - * Do not attempt to use it directly. @headername{functional} - */ - -#ifndef _HASH_BYTES_H -#define _HASH_BYTES_H 1 - -#pragma GCC system_header - -#include - -namespace std -{ -_GLIBCXX_BEGIN_NAMESPACE_VERSION - - // Hash function implementation for the nontrivial specialization. - // All of them are based on a primitive that hashes a pointer to a - // byte array. The actual hash algorithm is not guaranteed to stay - // the same from release to release -- it may be updated or tuned to - // improve hash quality or speed. - size_t - _Hash_bytes(const void* __ptr, size_t __len, size_t __seed); - - // A similar hash primitive, using the FNV hash algorithm. This - // algorithm is guaranteed to stay the same from release to release. - // (although it might not produce the same values on different - // machines.) - size_t - _Fnv_hash_bytes(const void* __ptr, size_t __len, size_t __seed); - -_GLIBCXX_END_NAMESPACE_VERSION -} // namespace - -#endif diff --git a/.ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@c++@13.1.1@bits@hash_bytes.h.blob b/.ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@c++@13.1.1@bits@hash_bytes.h.blob deleted file mode 100644 index 7289457e517d0ce691b50ef16213a078a486440b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 10101 zcmb^%ON<;xwP(FVWQ3G}EMggCwH(VyYZYIrn_dQy#1MU zSMSW)vJ~-AI7C879QZ^&L`oDCAcO-*fZ%|H%mE3BJBM5l;lSqt2khn5tDfGP?&|JI z#7f?s>3;S8|MCgz&I>nQytUS|yh#!kTi@Qjf=em;-zM$&=p3husZ#!y9su zc@c{M*Ju{F6D80xwAh_8`Q~R|eeu@vn|(Y!OVcFijue)Y=-)9X8wet`fEm20`Z7t{F>S92r=9hESu4(k&@SH;{c;H4>4YA-lH=M zVK}2{0NE!FK%rgUhN+~%n3}T{R%-M(4b)GPZO#Z!$S99}87x@?evR#b4fC;wzl|Jg zphzkcA-HR-*fO5bI3i>;O`4d1le;A>t^|rPJ>#+HmaUOx5KE;kBL~W2{)A!KuH|t}CkP3}5;78)78(dw z_>5||rS5UNbfMu9Yx zg>?c#hn+z$1G&pf7Wlw84i14`GBx%ai>U?T&L{*@+V4neRjoGQI*SS2Jmog`P@1}$ zCoK&KIfHJrEF+z{ZmAtICC7zYA+I|!w;Q#JKq@6dV~OUhX+>jGnp1UPvd!LsK|=QN zMqO*CG_?~LxS%iXJkn@lwK(B1>{H(Po2Qy;5j0HX_BqLiVdq>Ur;F|glWxUn2wF)= z$TQPQNYgL!P!t64NI9SzJ+XR3P9roNCyR2_8Na}Z95q_URgiDqWvD`FvV~}xC9Ayh zcqiF5=VruKZjNgfs$x>XP?iky%#RZ_3*kD!C<~HAuLkpUrg4OZLI`QHBUh+=-%L_% zvyJboVoKvKx_^0~W?UshUB ztORCUA}F#@Gjqv;ylco;<3V*ha+70H5ZKpu)HJ%H#)~<;AwJZ;*oaEmLM^AGTr@-w z-uA3EmPqCCcw|btnjvK4rMlZDOK8AF@Ebfy142RMC5mk1%vx<+&8;57^)*UaQER?b zWv&SSVzFV4ew0Gb|3;%#F`MrL7PpIPPFzCN7-_Kl!pi~@(K%#jK8{t%sKuSe0@_mE zAhs1Y4Zd)>5QcMZ?!^#7MPcJAzKXDDi$+Q6@Arhgk2YOHHukQ7x9p{@wY@+7bN1ew zcV2iH)N<~eTz(K?<7cuJ@8D*G;LY2E*zMXo2@mWOM0S~{6kKtJkdVdIM;T+mL)M|A zM=a~So$-i=G_~cn#Ga<`P4FFd%Fg9})fN+GZ#{iky_Kaih3o9dwJ%M0)-S)?JhR6+ z>^$Itiv_kwfCsvZhcg;6dz2=TokHe?i(2`%_~`Z@q@kE3`FLV;VMlyC5q6viU?T}~ zA3%XRB7mMNXPKSEcECp?mcn+eA5njTYy5{S>%iWpKS#G;dEei!?cMz0cSnEt&3!-E z``cT0?s@sw_kX~8k7e}+>w}}Wd+WW;^}$yxYwuO>m%m#3`Y-OQtM?+P;s2o8_gj|4 zWG@Pm&7*0^BH)|Ky968j1*MCV7&gp1(E8Z2=fxHXA>97?Ftn4Agoy}oWjkVBKa&3homb3KvIYmX|=b0^quEld*JH7_P)7w>-w7y z91Zrqea|<(_K)9gCulWy-90R==B&HdB>0yO{`t`M_oL%7Mqy=Y=P~TeB{A8L>V9vX zIt^A=KmV0~?sC?hd)IsJ1@~$A{bl#6bcIcLGI(lm8Gerj>3Z+=;zappz0Q}xzxJ-Y z`_8+5cjn(u!Oc8OF0eqBtk~CYSO*W@WqmRia>$mZg!Bh5Akys;GIRU=@{2syzpi~J zFrmTCoqgTDvGi1~7sHT+wHJ_$HXeE8EIwa45imhHz%M=Ap()(k2nl^R{CJ-I#L1Hz zXZkmEo*-7`TDpo-q#H}DPD7A;l7#YBw8B=(#%!+c6XjT5c`Id9yn&EQltucXD%Ai& zBmyUv3eiOICutHV@~I}rh6YgOt^v%z>Aqfcd;-#6ar0E8s+KDICI++18>bKi*T`=6 zYj8>m=&u*xQk=plCh$b2l=;f=YFK=`;5!`tqmGd!=_gB8fb~GtFoeK{m4H_+`AXH~ zTaXh*Iix$~37HKA>Rf*!#Ppo!jeXw*ByN(9y#)7FLE>j#8B1OWc_$Mvjm~%Bf7N(p zG(nFmq7Y(vtxWf2S%s$utlqJM#}4;;$E>q!@cr&Gvh|{X_0u|Zs4r{C=Lf^vYnU>I zuiuvWrK~!&D!e%I=wJ(v92;y|>c}F&EmM&t8P3R3<%aHDo`EbiFUTxPS>u_37(9n` zMuX>yGmF&P#G1S5K89pI=ss4kwn)OuWT1g4q;WsxUcn<5+$#l@=Rf. - -/** @file include/bits/invoke.h - * This is an internal header file, included by other library headers. - * Do not attempt to use it directly. @headername{functional} - */ - -#ifndef _GLIBCXX_INVOKE_H -#define _GLIBCXX_INVOKE_H 1 - -#pragma GCC system_header - -#if __cplusplus < 201103L -# include -#else - -#include -#include // forward - -namespace std _GLIBCXX_VISIBILITY(default) -{ -_GLIBCXX_BEGIN_NAMESPACE_VERSION - - /** - * @addtogroup utilities - * @{ - */ - - // Used by __invoke_impl instead of std::forward<_Tp> so that a - // reference_wrapper is converted to an lvalue-reference. - template::type> - constexpr _Up&& - __invfwd(typename remove_reference<_Tp>::type& __t) noexcept - { return static_cast<_Up&&>(__t); } - - template - constexpr _Res - __invoke_impl(__invoke_other, _Fn&& __f, _Args&&... __args) - { return std::forward<_Fn>(__f)(std::forward<_Args>(__args)...); } - - template - constexpr _Res - __invoke_impl(__invoke_memfun_ref, _MemFun&& __f, _Tp&& __t, - _Args&&... __args) - { return (__invfwd<_Tp>(__t).*__f)(std::forward<_Args>(__args)...); } - - template - constexpr _Res - __invoke_impl(__invoke_memfun_deref, _MemFun&& __f, _Tp&& __t, - _Args&&... __args) - { - return ((*std::forward<_Tp>(__t)).*__f)(std::forward<_Args>(__args)...); - } - - template - constexpr _Res - __invoke_impl(__invoke_memobj_ref, _MemPtr&& __f, _Tp&& __t) - { return __invfwd<_Tp>(__t).*__f; } - - template - constexpr _Res - __invoke_impl(__invoke_memobj_deref, _MemPtr&& __f, _Tp&& __t) - { return (*std::forward<_Tp>(__t)).*__f; } - - /// Invoke a callable object. - template - constexpr typename __invoke_result<_Callable, _Args...>::type - __invoke(_Callable&& __fn, _Args&&... __args) - noexcept(__is_nothrow_invocable<_Callable, _Args...>::value) - { - using __result = __invoke_result<_Callable, _Args...>; - using __type = typename __result::type; - using __tag = typename __result::__invoke_type; - return std::__invoke_impl<__type>(__tag{}, std::forward<_Callable>(__fn), - std::forward<_Args>(__args)...); - } - -#if __cplusplus >= 201703L - // INVOKE: Invoke a callable object and convert the result to R. - template - constexpr enable_if_t, _Res> - __invoke_r(_Callable&& __fn, _Args&&... __args) - noexcept(is_nothrow_invocable_r_v<_Res, _Callable, _Args...>) - { - using __result = __invoke_result<_Callable, _Args...>; - using __type = typename __result::type; - using __tag = typename __result::__invoke_type; - if constexpr (is_void_v<_Res>) - std::__invoke_impl<__type>(__tag{}, std::forward<_Callable>(__fn), - std::forward<_Args>(__args)...); - else - return std::__invoke_impl<__type>(__tag{}, - std::forward<_Callable>(__fn), - std::forward<_Args>(__args)...); - } -#else // C++11 or C++14 - // This is a non-SFINAE-friendly std::invoke_r(fn, args...) for C++11/14. - // It's used in std::function, std::bind, and std::packaged_task. Only - // std::function is constrained on is_invocable_r, but that is checked on - // construction so doesn't need to be checked again when calling __invoke_r. - // Consequently, these __invoke_r overloads do not check for invocable - // arguments, nor check that the invoke result is convertible to R. - - // INVOKE: Invoke a callable object and convert the result to R. - template - constexpr __enable_if_t::value, _Res> - __invoke_r(_Callable&& __fn, _Args&&... __args) - { - using __result = __invoke_result<_Callable, _Args...>; - using __type = typename __result::type; -#if __has_builtin(__reference_converts_from_temporary) - static_assert(!__reference_converts_from_temporary(_Res, __type), - "INVOKE must not create a dangling reference"); -#endif - using __tag = typename __result::__invoke_type; - return std::__invoke_impl<__type>(__tag{}, std::forward<_Callable>(__fn), - std::forward<_Args>(__args)...); - } - - // INVOKE when R is cv void - template - _GLIBCXX14_CONSTEXPR __enable_if_t::value, _Res> - __invoke_r(_Callable&& __fn, _Args&&... __args) - { - using __result = __invoke_result<_Callable, _Args...>; - using __type = typename __result::type; - using __tag = typename __result::__invoke_type; - std::__invoke_impl<__type>(__tag{}, std::forward<_Callable>(__fn), - std::forward<_Args>(__args)...); - } -#endif // C++11 or C++14 - -_GLIBCXX_END_NAMESPACE_VERSION -} // namespace std - -#endif // C++11 - -#endif // _GLIBCXX_INVOKE_H diff --git a/.ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@c++@13.1.1@bits@invoke.h.blob b/.ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@c++@13.1.1@bits@invoke.h.blob deleted file mode 100644 index 759cb2ad9b21082798d6ee7ed9469379110d6b8d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 17311 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 diff --git a/.ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@c++@13.1.1@bits@ios_base.h b/.ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@c++@13.1.1@bits@ios_base.h deleted file mode 100644 index addfd05..0000000 --- a/.ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@c++@13.1.1@bits@ios_base.h +++ /dev/null @@ -1,1122 +0,0 @@ -// Iostreams base classes -*- C++ -*- - -// Copyright (C) 1997-2023 Free Software Foundation, Inc. -// -// This file is part of the GNU ISO C++ Library. This library is free -// software; you can redistribute it and/or modify it under the -// terms of the GNU General Public License as published by the -// Free Software Foundation; either version 3, or (at your option) -// any later version. - -// This library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. - -// Under Section 7 of GPL version 3, you are granted additional -// permissions described in the GCC Runtime Library Exception, version -// 3.1, as published by the Free Software Foundation. - -// You should have received a copy of the GNU General Public License and -// a copy of the GCC Runtime Library Exception along with this program; -// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see -// . - -/** @file bits/ios_base.h - * This is an internal header file, included by other library headers. - * Do not attempt to use it directly. @headername{ios} - */ - -// -// ISO C++ 14882: 27.4 Iostreams base classes -// - -#ifndef _IOS_BASE_H -#define _IOS_BASE_H 1 - -#pragma GCC system_header - -#include -#include -#include - -#if __cplusplus < 201103L -# include -#else -# include -#endif - -namespace std _GLIBCXX_VISIBILITY(default) -{ -_GLIBCXX_BEGIN_NAMESPACE_VERSION - - // The following definitions of bitmask types are enums, not ints, - // as permitted (but not required) in the standard, in order to provide - // better type safety in iostream calls. A side effect is that in C++98 - // expressions involving them are not compile-time constants. - enum _Ios_Fmtflags - { - _S_boolalpha = 1L << 0, - _S_dec = 1L << 1, - _S_fixed = 1L << 2, - _S_hex = 1L << 3, - _S_internal = 1L << 4, - _S_left = 1L << 5, - _S_oct = 1L << 6, - _S_right = 1L << 7, - _S_scientific = 1L << 8, - _S_showbase = 1L << 9, - _S_showpoint = 1L << 10, - _S_showpos = 1L << 11, - _S_skipws = 1L << 12, - _S_unitbuf = 1L << 13, - _S_uppercase = 1L << 14, - _S_adjustfield = _S_left | _S_right | _S_internal, - _S_basefield = _S_dec | _S_oct | _S_hex, - _S_floatfield = _S_scientific | _S_fixed, - _S_ios_fmtflags_end = 1L << 16, - _S_ios_fmtflags_max = __INT_MAX__, - _S_ios_fmtflags_min = ~__INT_MAX__ - }; - - inline _GLIBCXX_CONSTEXPR _Ios_Fmtflags - operator&(_Ios_Fmtflags __a, _Ios_Fmtflags __b) - { return _Ios_Fmtflags(static_cast(__a) & static_cast(__b)); } - - inline _GLIBCXX_CONSTEXPR _Ios_Fmtflags - operator|(_Ios_Fmtflags __a, _Ios_Fmtflags __b) - { return _Ios_Fmtflags(static_cast(__a) | static_cast(__b)); } - - inline _GLIBCXX_CONSTEXPR _Ios_Fmtflags - operator^(_Ios_Fmtflags __a, _Ios_Fmtflags __b) - { return _Ios_Fmtflags(static_cast(__a) ^ static_cast(__b)); } - - inline _GLIBCXX_CONSTEXPR _Ios_Fmtflags - operator~(_Ios_Fmtflags __a) - { return _Ios_Fmtflags(~static_cast(__a)); } - - inline const _Ios_Fmtflags& - operator|=(_Ios_Fmtflags& __a, _Ios_Fmtflags __b) - { return __a = __a | __b; } - - inline const _Ios_Fmtflags& - operator&=(_Ios_Fmtflags& __a, _Ios_Fmtflags __b) - { return __a = __a & __b; } - - inline const _Ios_Fmtflags& - operator^=(_Ios_Fmtflags& __a, _Ios_Fmtflags __b) - { return __a = __a ^ __b; } - - - enum _Ios_Openmode - { - _S_app = 1L << 0, - _S_ate = 1L << 1, - _S_bin = 1L << 2, - _S_in = 1L << 3, - _S_out = 1L << 4, - _S_trunc = 1L << 5, - _S_noreplace = 1L << 6, - _S_ios_openmode_end = 1L << 16, - _S_ios_openmode_max = __INT_MAX__, - _S_ios_openmode_min = ~__INT_MAX__ - }; - - inline _GLIBCXX_CONSTEXPR _Ios_Openmode - operator&(_Ios_Openmode __a, _Ios_Openmode __b) - { return _Ios_Openmode(static_cast(__a) & static_cast(__b)); } - - inline _GLIBCXX_CONSTEXPR _Ios_Openmode - operator|(_Ios_Openmode __a, _Ios_Openmode __b) - { return _Ios_Openmode(static_cast(__a) | static_cast(__b)); } - - inline _GLIBCXX_CONSTEXPR _Ios_Openmode - operator^(_Ios_Openmode __a, _Ios_Openmode __b) - { return _Ios_Openmode(static_cast(__a) ^ static_cast(__b)); } - - inline _GLIBCXX_CONSTEXPR _Ios_Openmode - operator~(_Ios_Openmode __a) - { return _Ios_Openmode(~static_cast(__a)); } - - inline const _Ios_Openmode& - operator|=(_Ios_Openmode& __a, _Ios_Openmode __b) - { return __a = __a | __b; } - - inline const _Ios_Openmode& - operator&=(_Ios_Openmode& __a, _Ios_Openmode __b) - { return __a = __a & __b; } - - inline const _Ios_Openmode& - operator^=(_Ios_Openmode& __a, _Ios_Openmode __b) - { return __a = __a ^ __b; } - - - enum _Ios_Iostate - { - _S_goodbit = 0, - _S_badbit = 1L << 0, - _S_eofbit = 1L << 1, - _S_failbit = 1L << 2, - _S_ios_iostate_end = 1L << 16, - _S_ios_iostate_max = __INT_MAX__, - _S_ios_iostate_min = ~__INT_MAX__ - }; - - inline _GLIBCXX_CONSTEXPR _Ios_Iostate - operator&(_Ios_Iostate __a, _Ios_Iostate __b) - { return _Ios_Iostate(static_cast(__a) & static_cast(__b)); } - - inline _GLIBCXX_CONSTEXPR _Ios_Iostate - operator|(_Ios_Iostate __a, _Ios_Iostate __b) - { return _Ios_Iostate(static_cast(__a) | static_cast(__b)); } - - inline _GLIBCXX_CONSTEXPR _Ios_Iostate - operator^(_Ios_Iostate __a, _Ios_Iostate __b) - { return _Ios_Iostate(static_cast(__a) ^ static_cast(__b)); } - - inline _GLIBCXX_CONSTEXPR _Ios_Iostate - operator~(_Ios_Iostate __a) - { return _Ios_Iostate(~static_cast(__a)); } - - inline const _Ios_Iostate& - operator|=(_Ios_Iostate& __a, _Ios_Iostate __b) - { return __a = __a | __b; } - - inline const _Ios_Iostate& - operator&=(_Ios_Iostate& __a, _Ios_Iostate __b) - { return __a = __a & __b; } - - inline const _Ios_Iostate& - operator^=(_Ios_Iostate& __a, _Ios_Iostate __b) - { return __a = __a ^ __b; } - - - enum _Ios_Seekdir - { - _S_beg = 0, - _S_cur = _GLIBCXX_STDIO_SEEK_CUR, - _S_end = _GLIBCXX_STDIO_SEEK_END, - _S_ios_seekdir_end = 1L << 16 - }; - -#if __cplusplus >= 201103L - /// I/O error code - enum class io_errc { stream = 1 }; - - template <> struct is_error_code_enum : public true_type { }; - - [[__nodiscard__, __gnu__::__const__]] - const error_category& - iostream_category() noexcept; - - [[__nodiscard__]] - inline error_code - make_error_code(io_errc __e) noexcept - { return error_code(static_cast(__e), iostream_category()); } - - [[__nodiscard__]] - inline error_condition - make_error_condition(io_errc __e) noexcept - { return error_condition(static_cast(__e), iostream_category()); } -#endif - - // 27.4.2 Class ios_base - /** - * @brief The base of the I/O class hierarchy. - * @ingroup io - * - * This class defines everything that can be defined about I/O that does - * not depend on the type of characters being input or output. Most - * people will only see @c ios_base when they need to specify the full - * name of the various I/O flags (e.g., the openmodes). - */ - class ios_base - { -#if _GLIBCXX_USE_CXX11_ABI -#if __cplusplus < 201103L - // Type that is layout-compatible with std::system_error - struct system_error : std::runtime_error - { - // Type that is layout-compatible with std::error_code - struct error_code - { - error_code() { } - private: - int _M_value; - const void* _M_cat; - } _M_code; - }; -#endif -#endif - public: - - /** - * @brief These are thrown to indicate problems with io. - * @ingroup exceptions - * - * 27.4.2.1.1 Class ios_base::failure - */ -#if _GLIBCXX_USE_CXX11_ABI - class _GLIBCXX_ABI_TAG_CXX11 failure : public system_error - { - public: - explicit - failure(const string& __str); - -#if __cplusplus >= 201103L - explicit - failure(const string&, const error_code&); - - explicit - failure(const char*, const error_code& = io_errc::stream); -#endif - - virtual - ~failure() throw(); - - virtual const char* - what() const throw(); - }; -#else - class failure : public exception - { - public: - // _GLIBCXX_RESOLVE_LIB_DEFECTS - // 48. Use of non-existent exception constructor - explicit - failure(const string& __str) throw(); - - // This declaration is not useless: - // http://gcc.gnu.org/onlinedocs/gcc-4.3.2/gcc/Vague-Linkage.html - virtual - ~failure() throw(); - - virtual const char* - what() const throw(); - -#if __cplusplus >= 201103L - // Define the new members required by C++11, - // even though the error_code cannot be stored. - - explicit - failure(const string& __s, const error_code&) noexcept - : failure(__s) - { } - - explicit - failure(const char* __s, const error_code& = error_code{}) - : failure(string(__s)) - { } - - // Stand-in for system_error::code() but returning by value. - error_code code() const noexcept { return error_code{}; } -#endif - - private: - string _M_msg; - }; -#endif - - // 27.4.2.1.2 Type ios_base::fmtflags - /** - * @brief This is a bitmask type. - * - * @c @a _Ios_Fmtflags is implementation-defined, but it is valid to - * perform bitwise operations on these values and expect the Right - * Thing to happen. Defined objects of type fmtflags are: - * - boolalpha - * - dec - * - fixed - * - hex - * - internal - * - left - * - oct - * - right - * - scientific - * - showbase - * - showpoint - * - showpos - * - skipws - * - unitbuf - * - uppercase - * - adjustfield - * - basefield - * - floatfield - */ - typedef _Ios_Fmtflags fmtflags; - - /// Insert/extract @c bool in alphabetic rather than numeric format. - static const fmtflags boolalpha = _S_boolalpha; - - /// Converts integer input or generates integer output in decimal base. - static const fmtflags dec = _S_dec; - - /// Generate floating-point output in fixed-point notation. - static const fmtflags fixed = _S_fixed; - - /// Converts integer input or generates integer output in hexadecimal base. - static const fmtflags hex = _S_hex; - - /// Adds fill characters at a designated internal point in certain - /// generated output, or identical to @c right if no such point is - /// designated. - static const fmtflags internal = _S_internal; - - /// Adds fill characters on the right (final positions) of certain - /// generated output. (I.e., the thing you print is flush left.) - static const fmtflags left = _S_left; - - /// Converts integer input or generates integer output in octal base. - static const fmtflags oct = _S_oct; - - /// Adds fill characters on the left (initial positions) of certain - /// generated output. (I.e., the thing you print is flush right.) - static const fmtflags right = _S_right; - - /// Generates floating-point output in scientific notation. - static const fmtflags scientific = _S_scientific; - - /// Generates a prefix indicating the numeric base of generated integer - /// output. - static const fmtflags showbase = _S_showbase; - - /// Generates a decimal-point character unconditionally in generated - /// floating-point output. - static const fmtflags showpoint = _S_showpoint; - - /// Generates a + sign in non-negative generated numeric output. - static const fmtflags showpos = _S_showpos; - - /// Skips leading white space before certain input operations. - static const fmtflags skipws = _S_skipws; - - /// Flushes output after each output operation. - static const fmtflags unitbuf = _S_unitbuf; - - /// Replaces certain lowercase letters with their uppercase equivalents - /// in generated output. - static const fmtflags uppercase = _S_uppercase; - - /// A mask of left|right|internal. Useful for the 2-arg form of @c setf. - static const fmtflags adjustfield = _S_adjustfield; - - /// A mask of dec|oct|hex. Useful for the 2-arg form of @c setf. - static const fmtflags basefield = _S_basefield; - - /// A mask of scientific|fixed. Useful for the 2-arg form of @c setf. - static const fmtflags floatfield = _S_floatfield; - - // 27.4.2.1.3 Type ios_base::iostate - /** - * @brief This is a bitmask type. - * - * @c @a _Ios_Iostate is implementation-defined, but it is valid to - * perform bitwise operations on these values and expect the Right - * Thing to happen. Defined objects of type iostate are: - * - badbit - * - eofbit - * - failbit - * - goodbit - */ - typedef _Ios_Iostate iostate; - - /// Indicates a loss of integrity in an input or output sequence (such - /// as an irrecoverable read error from a file). - static const iostate badbit = _S_badbit; - - /// Indicates that an input operation reached the end of an input sequence. - static const iostate eofbit = _S_eofbit; - - /// Indicates that an input operation failed to read the expected - /// characters, or that an output operation failed to generate the - /// desired characters. - static const iostate failbit = _S_failbit; - - /// Indicates all is well. - static const iostate goodbit = _S_goodbit; - - // 27.4.2.1.4 Type ios_base::openmode - /** - * @brief This is a bitmask type. - * - * @c @a _Ios_Openmode is implementation-defined, but it is valid to - * perform bitwise operations on these values and expect the Right - * Thing to happen. Defined objects of type openmode are: - * - app - * - ate - * - binary - * - in - * - out - * - trunc - */ - typedef _Ios_Openmode openmode; - - /// Seek to end before each write. - static const openmode app = _S_app; - - /// Open and seek to end immediately after opening. - static const openmode ate = _S_ate; - - /// Perform input and output in binary mode (as opposed to text mode). - /// This is probably not what you think it is; see - /// https://gcc.gnu.org/onlinedocs/libstdc++/manual/fstreams.html#std.io.filestreams.binary - static const openmode binary = _S_bin; - - /// Open for input. Default for @c ifstream and fstream. - static const openmode in = _S_in; - - /// Open for output. Default for @c ofstream and fstream. - static const openmode out = _S_out; - - /// Truncate an existing stream when opening. Default for @c ofstream. - static const openmode trunc = _S_trunc; - - static const openmode __noreplace = _S_noreplace; - -#if __cplusplus >= 202100L -#define __cpp_lib_ios_noreplace 202207L - /// Open a file in exclusive mode. - static const openmode noreplace = _S_noreplace; -#endif - - // 27.4.2.1.5 Type ios_base::seekdir - /** - * @brief This is an enumerated type. - * - * @c @a _Ios_Seekdir is implementation-defined. Defined values - * of type seekdir are: - * - beg - * - cur, equivalent to @c SEEK_CUR in the C standard library. - * - end, equivalent to @c SEEK_END in the C standard library. - */ - typedef _Ios_Seekdir seekdir; - - /// Request a seek relative to the beginning of the stream. - static const seekdir beg = _S_beg; - - /// Request a seek relative to the current position within the sequence. - static const seekdir cur = _S_cur; - - /// Request a seek relative to the current end of the sequence. - static const seekdir end = _S_end; - -#if __cplusplus <= 201402L - // Annex D.6 (removed in C++17) - typedef int io_state - _GLIBCXX_DEPRECATED_SUGGEST("std::iostate"); - typedef int open_mode - _GLIBCXX_DEPRECATED_SUGGEST("std::openmode"); - typedef int seek_dir - _GLIBCXX_DEPRECATED_SUGGEST("std::seekdir"); - - typedef std::streampos streampos - _GLIBCXX_DEPRECATED_SUGGEST("std::streampos"); - typedef std::streamoff streamoff - _GLIBCXX_DEPRECATED_SUGGEST("std::streamoff"); -#endif - - // Callbacks; - /** - * @brief The set of events that may be passed to an event callback. - * - * erase_event is used during ~ios() and copyfmt(). imbue_event is used - * during imbue(). copyfmt_event is used during copyfmt(). - */ - enum event - { - erase_event, - imbue_event, - copyfmt_event - }; - - /** - * @brief The type of an event callback function. - * @param __e One of the members of the event enum. - * @param __b Reference to the ios_base object. - * @param __i The integer provided when the callback was registered. - * - * Event callbacks are user defined functions that get called during - * several ios_base and basic_ios functions, specifically imbue(), - * copyfmt(), and ~ios(). - */ - typedef void (*event_callback) (event __e, ios_base& __b, int __i); - - /** - * @brief Add the callback __fn with parameter __index. - * @param __fn The function to add. - * @param __index The integer to pass to the function when invoked. - * - * Registers a function as an event callback with an integer parameter to - * be passed to the function when invoked. Multiple copies of the - * function are allowed. If there are multiple callbacks, they are - * invoked in the order they were registered. - */ - void - register_callback(event_callback __fn, int __index); - - protected: - streamsize _M_precision; - streamsize _M_width; - fmtflags _M_flags; - iostate _M_exception; - iostate _M_streambuf_state; - - // 27.4.2.6 Members for callbacks - // 27.4.2.6 ios_base callbacks - struct _Callback_list - { - // Data Members - _Callback_list* _M_next; - ios_base::event_callback _M_fn; - int _M_index; - _Atomic_word _M_refcount; // 0 means one reference. - - _Callback_list(ios_base::event_callback __fn, int __index, - _Callback_list* __cb) - : _M_next(__cb), _M_fn(__fn), _M_index(__index), _M_refcount(0) { } - - void - _M_add_reference() { __gnu_cxx::__atomic_add_dispatch(&_M_refcount, 1); } - - // 0 => OK to delete. - int - _M_remove_reference() - { - // Be race-detector-friendly. For more info see bits/c++config. - _GLIBCXX_SYNCHRONIZATION_HAPPENS_BEFORE(&_M_refcount); - int __res = __gnu_cxx::__exchange_and_add_dispatch(&_M_refcount, -1); - if (__res == 0) - { - _GLIBCXX_SYNCHRONIZATION_HAPPENS_AFTER(&_M_refcount); - } - return __res; - } - }; - - _Callback_list* _M_callbacks; - - void - _M_call_callbacks(event __ev) throw(); - - void - _M_dispose_callbacks(void) throw(); - - // 27.4.2.5 Members for iword/pword storage - struct _Words - { - void* _M_pword; - long _M_iword; - _Words() : _M_pword(0), _M_iword(0) { } - }; - - // Only for failed iword/pword calls. - _Words _M_word_zero; - - // Guaranteed storage. - // The first 5 iword and pword slots are reserved for internal use. - enum { _S_local_word_size = 8 }; - _Words _M_local_word[_S_local_word_size]; - - // Allocated storage. - int _M_word_size; - _Words* _M_word; - - _Words& - _M_grow_words(int __index, bool __iword); - - // Members for locale and locale caching. - locale _M_ios_locale; - - void - _M_init() throw(); - - public: - - // 27.4.2.1.6 Class ios_base::Init - // Used to initialize standard streams. In theory, g++ could use - // -finit-priority to order this stuff correctly without going - // through these machinations. - class Init - { - friend class ios_base; - public: - Init(); - ~Init(); - -#if __cplusplus >= 201103L - Init(const Init&) = default; - Init& operator=(const Init&) = default; -#endif - - private: - static _Atomic_word _S_refcount; - static bool _S_synced_with_stdio; - }; - - // [27.4.2.2] fmtflags state functions - /** - * @brief Access to format flags. - * @return The format control flags for both input and output. - */ - fmtflags - flags() const - { return _M_flags; } - - /** - * @brief Setting new format flags all at once. - * @param __fmtfl The new flags to set. - * @return The previous format control flags. - * - * This function overwrites all the format flags with @a __fmtfl. - */ - fmtflags - flags(fmtflags __fmtfl) - { - fmtflags __old = _M_flags; - _M_flags = __fmtfl; - return __old; - } - - /** - * @brief Setting new format flags. - * @param __fmtfl Additional flags to set. - * @return The previous format control flags. - * - * This function sets additional flags in format control. Flags that - * were previously set remain set. - */ - fmtflags - setf(fmtflags __fmtfl) - { - fmtflags __old = _M_flags; - _M_flags |= __fmtfl; - return __old; - } - - /** - * @brief Setting new format flags. - * @param __fmtfl Additional flags to set. - * @param __mask The flags mask for @a fmtfl. - * @return The previous format control flags. - * - * This function clears @a mask in the format flags, then sets - * @a fmtfl @c & @a mask. An example mask is @c ios_base::adjustfield. - */ - fmtflags - setf(fmtflags __fmtfl, fmtflags __mask) - { - fmtflags __old = _M_flags; - _M_flags &= ~__mask; - _M_flags |= (__fmtfl & __mask); - return __old; - } - - /** - * @brief Clearing format flags. - * @param __mask The flags to unset. - * - * This function clears @a __mask in the format flags. - */ - void - unsetf(fmtflags __mask) - { _M_flags &= ~__mask; } - - /** - * @brief Flags access. - * @return The precision to generate on certain output operations. - * - * Be careful if you try to give a definition of @a precision here; see - * DR 189. - */ - streamsize - precision() const - { return _M_precision; } - - /** - * @brief Changing flags. - * @param __prec The new precision value. - * @return The previous value of precision(). - */ - streamsize - precision(streamsize __prec) - { - streamsize __old = _M_precision; - _M_precision = __prec; - return __old; - } - - /** - * @brief Flags access. - * @return The minimum field width to generate on output operations. - * - * Minimum field width refers to the number of characters. - */ - streamsize - width() const - { return _M_width; } - - /** - * @brief Changing flags. - * @param __wide The new width value. - * @return The previous value of width(). - */ - streamsize - width(streamsize __wide) - { - streamsize __old = _M_width; - _M_width = __wide; - return __old; - } - - // [27.4.2.4] ios_base static members - /** - * @brief Interaction with the standard C I/O objects. - * @param __sync Whether to synchronize or not. - * @return True if the standard streams were previously synchronized. - * - * The synchronization referred to is @e only that between the standard - * C facilities (e.g., stdout) and the standard C++ objects (e.g., - * cout). User-declared streams are unaffected. See - * https://gcc.gnu.org/onlinedocs/libstdc++/manual/fstreams.html#std.io.filestreams.binary - */ - static bool - sync_with_stdio(bool __sync = true); - - // [27.4.2.3] ios_base locale functions - /** - * @brief Setting a new locale. - * @param __loc The new locale. - * @return The previous locale. - * - * Sets the new locale for this stream, and then invokes each callback - * with imbue_event. - */ - locale - imbue(const locale& __loc) throw(); - - /** - * @brief Locale access - * @return A copy of the current locale. - * - * If @c imbue(loc) has previously been called, then this function - * returns @c loc. Otherwise, it returns a copy of @c std::locale(), - * the global C++ locale. - */ - locale - getloc() const - { return _M_ios_locale; } - - /** - * @brief Locale access - * @return A reference to the current locale. - * - * Like getloc above, but returns a reference instead of - * generating a copy. - */ - const locale& - _M_getloc() const - { return _M_ios_locale; } - - // [27.4.2.5] ios_base storage functions - /** - * @brief Access to unique indices. - * @return An integer different from all previous calls. - * - * This function returns a unique integer every time it is called. It - * can be used for any purpose, but is primarily intended to be a unique - * index for the iword and pword functions. The expectation is that an - * application calls xalloc in order to obtain an index in the iword and - * pword arrays that can be used without fear of conflict. - * - * The implementation maintains a static variable that is incremented and - * returned on each invocation. xalloc is guaranteed to return an index - * that is safe to use in the iword and pword arrays. - */ - static int - xalloc() throw(); - - /** - * @brief Access to integer array. - * @param __ix Index into the array. - * @return A reference to an integer associated with the index. - * - * The iword function provides access to an array of integers that can be - * used for any purpose. The array grows as required to hold the - * supplied index. All integers in the array are initialized to 0. - * - * The implementation reserves several indices. You should use xalloc to - * obtain an index that is safe to use. Also note that since the array - * can grow dynamically, it is not safe to hold onto the reference. - */ - long& - iword(int __ix) - { - _Words& __word = ((unsigned)__ix < (unsigned)_M_word_size) - ? _M_word[__ix] : _M_grow_words(__ix, true); - return __word._M_iword; - } - - /** - * @brief Access to void pointer array. - * @param __ix Index into the array. - * @return A reference to a void* associated with the index. - * - * The pword function provides access to an array of pointers that can be - * used for any purpose. The array grows as required to hold the - * supplied index. All pointers in the array are initialized to 0. - * - * The implementation reserves several indices. You should use xalloc to - * obtain an index that is safe to use. Also note that since the array - * can grow dynamically, it is not safe to hold onto the reference. - */ - void*& - pword(int __ix) - { - _Words& __word = ((unsigned)__ix < (unsigned)_M_word_size) - ? _M_word[__ix] : _M_grow_words(__ix, false); - return __word._M_pword; - } - - // Destructor - /** - * Invokes each callback with erase_event. Destroys local storage. - * - * Note that the ios_base object for the standard streams never gets - * destroyed. As a result, any callbacks registered with the standard - * streams will not get invoked with erase_event (unless copyfmt is - * used). - */ - virtual ~ios_base(); - - protected: - ios_base() throw (); - -#if __cplusplus < 201103L - // _GLIBCXX_RESOLVE_LIB_DEFECTS - // 50. Copy constructor and assignment operator of ios_base - private: - ios_base(const ios_base&); - - ios_base& - operator=(const ios_base&); -#else - public: - ios_base(const ios_base&) = delete; - - ios_base& - operator=(const ios_base&) = delete; - - protected: - void - _M_move(ios_base&) noexcept; - - void - _M_swap(ios_base& __rhs) noexcept; -#endif - }; - - // [27.4.5.1] fmtflags manipulators - /// Calls base.setf(ios_base::boolalpha). - inline ios_base& - boolalpha(ios_base& __base) - { - __base.setf(ios_base::boolalpha); - return __base; - } - - /// Calls base.unsetf(ios_base::boolalpha). - inline ios_base& - noboolalpha(ios_base& __base) - { - __base.unsetf(ios_base::boolalpha); - return __base; - } - - /// Calls base.setf(ios_base::showbase). - inline ios_base& - showbase(ios_base& __base) - { - __base.setf(ios_base::showbase); - return __base; - } - - /// Calls base.unsetf(ios_base::showbase). - inline ios_base& - noshowbase(ios_base& __base) - { - __base.unsetf(ios_base::showbase); - return __base; - } - - /// Calls base.setf(ios_base::showpoint). - inline ios_base& - showpoint(ios_base& __base) - { - __base.setf(ios_base::showpoint); - return __base; - } - - /// Calls base.unsetf(ios_base::showpoint). - inline ios_base& - noshowpoint(ios_base& __base) - { - __base.unsetf(ios_base::showpoint); - return __base; - } - - /// Calls base.setf(ios_base::showpos). - inline ios_base& - showpos(ios_base& __base) - { - __base.setf(ios_base::showpos); - return __base; - } - - /// Calls base.unsetf(ios_base::showpos). - inline ios_base& - noshowpos(ios_base& __base) - { - __base.unsetf(ios_base::showpos); - return __base; - } - - /// Calls base.setf(ios_base::skipws). - inline ios_base& - skipws(ios_base& __base) - { - __base.setf(ios_base::skipws); - return __base; - } - - /// Calls base.unsetf(ios_base::skipws). - inline ios_base& - noskipws(ios_base& __base) - { - __base.unsetf(ios_base::skipws); - return __base; - } - - /// Calls base.setf(ios_base::uppercase). - inline ios_base& - uppercase(ios_base& __base) - { - __base.setf(ios_base::uppercase); - return __base; - } - - /// Calls base.unsetf(ios_base::uppercase). - inline ios_base& - nouppercase(ios_base& __base) - { - __base.unsetf(ios_base::uppercase); - return __base; - } - - /// Calls base.setf(ios_base::unitbuf). - inline ios_base& - unitbuf(ios_base& __base) - { - __base.setf(ios_base::unitbuf); - return __base; - } - - /// Calls base.unsetf(ios_base::unitbuf). - inline ios_base& - nounitbuf(ios_base& __base) - { - __base.unsetf(ios_base::unitbuf); - return __base; - } - - // [27.4.5.2] adjustfield manipulators - /// Calls base.setf(ios_base::internal, ios_base::adjustfield). - inline ios_base& - internal(ios_base& __base) - { - __base.setf(ios_base::internal, ios_base::adjustfield); - return __base; - } - - /// Calls base.setf(ios_base::left, ios_base::adjustfield). - inline ios_base& - left(ios_base& __base) - { - __base.setf(ios_base::left, ios_base::adjustfield); - return __base; - } - - /// Calls base.setf(ios_base::right, ios_base::adjustfield). - inline ios_base& - right(ios_base& __base) - { - __base.setf(ios_base::right, ios_base::adjustfield); - return __base; - } - - // [27.4.5.3] basefield manipulators - /// Calls base.setf(ios_base::dec, ios_base::basefield). - inline ios_base& - dec(ios_base& __base) - { - __base.setf(ios_base::dec, ios_base::basefield); - return __base; - } - - /// Calls base.setf(ios_base::hex, ios_base::basefield). - inline ios_base& - hex(ios_base& __base) - { - __base.setf(ios_base::hex, ios_base::basefield); - return __base; - } - - /// Calls base.setf(ios_base::oct, ios_base::basefield). - inline ios_base& - oct(ios_base& __base) - { - __base.setf(ios_base::oct, ios_base::basefield); - return __base; - } - - // [27.4.5.4] floatfield manipulators - /// Calls base.setf(ios_base::fixed, ios_base::floatfield). - inline ios_base& - fixed(ios_base& __base) - { - __base.setf(ios_base::fixed, ios_base::floatfield); - return __base; - } - - /// Calls base.setf(ios_base::scientific, ios_base::floatfield). - inline ios_base& - scientific(ios_base& __base) - { - __base.setf(ios_base::scientific, ios_base::floatfield); - return __base; - } - -#if __cplusplus >= 201103L - // New C++11 floatfield manipulators - - /// Calls - /// base.setf(ios_base::fixed|ios_base::scientific, ios_base::floatfield) - inline ios_base& - hexfloat(ios_base& __base) - { - __base.setf(ios_base::fixed | ios_base::scientific, ios_base::floatfield); - return __base; - } - - /// Calls @c base.unsetf(ios_base::floatfield) - inline ios_base& - defaultfloat(ios_base& __base) - { - __base.unsetf(ios_base::floatfield); - return __base; - } -#endif - -_GLIBCXX_END_NAMESPACE_VERSION -} // namespace - -#endif /* _IOS_BASE_H */ diff --git a/.ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@c++@13.1.1@bits@ios_base.h.blob b/.ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@c++@13.1.1@bits@ios_base.h.blob deleted file mode 100644 index 29020127a452d141f8a2c332f21a10703ef89e3c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 63066 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 S?ge$&Ylsbd(LE%*vHc$fV(I?? diff --git a/.ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@c++@13.1.1@bits@istream.tcc b/.ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@c++@13.1.1@bits@istream.tcc deleted file mode 100644 index 334a917..0000000 --- a/.ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@c++@13.1.1@bits@istream.tcc +++ /dev/null @@ -1,1169 +0,0 @@ -// istream classes -*- C++ -*- - -// Copyright (C) 1997-2023 Free Software Foundation, Inc. -// -// This file is part of the GNU ISO C++ Library. This library is free -// software; you can redistribute it and/or modify it under the -// terms of the GNU General Public License as published by the -// Free Software Foundation; either version 3, or (at your option) -// any later version. - -// This library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. - -// Under Section 7 of GPL version 3, you are granted additional -// permissions described in the GCC Runtime Library Exception, version -// 3.1, as published by the Free Software Foundation. - -// You should have received a copy of the GNU General Public License and -// a copy of the GCC Runtime Library Exception along with this program; -// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see -// . - -/** @file bits/istream.tcc - * This is an internal header file, included by other library headers. - * Do not attempt to use it directly. @headername{istream} - */ - -// -// ISO C++ 14882: 27.6.1 Input streams -// - -#ifndef _ISTREAM_TCC -#define _ISTREAM_TCC 1 - -#pragma GCC system_header - -#include - -namespace std _GLIBCXX_VISIBILITY(default) -{ -_GLIBCXX_BEGIN_NAMESPACE_VERSION - - template - basic_istream<_CharT, _Traits>::sentry:: - sentry(basic_istream<_CharT, _Traits>& __in, bool __noskip) : _M_ok(false) - { - ios_base::iostate __err = ios_base::goodbit; - if (__in.good()) - { - __try - { - if (__in.tie()) - __in.tie()->flush(); - if (!__noskip && bool(__in.flags() & ios_base::skipws)) - { - const __int_type __eof = traits_type::eof(); - __streambuf_type* __sb = __in.rdbuf(); - __int_type __c = __sb->sgetc(); - - const __ctype_type& __ct = __check_facet(__in._M_ctype); - while (!traits_type::eq_int_type(__c, __eof) - && __ct.is(ctype_base::space, - traits_type::to_char_type(__c))) - __c = __sb->snextc(); - - // _GLIBCXX_RESOLVE_LIB_DEFECTS - // 195. Should basic_istream::sentry's constructor ever - // set eofbit? - if (traits_type::eq_int_type(__c, __eof)) - __err |= ios_base::eofbit; - } - } - __catch(__cxxabiv1::__forced_unwind&) - { - __in._M_setstate(ios_base::badbit); - __throw_exception_again; - } - __catch(...) - { __in._M_setstate(ios_base::badbit); } - } - - if (__in.good() && __err == ios_base::goodbit) - _M_ok = true; - else - { - __err |= ios_base::failbit; - __in.setstate(__err); - } - } - - template - template - basic_istream<_CharT, _Traits>& - basic_istream<_CharT, _Traits>:: - _M_extract(_ValueT& __v) - { - sentry __cerb(*this, false); - if (__cerb) - { - ios_base::iostate __err = ios_base::goodbit; - __try - { -#ifndef _GLIBCXX_LONG_DOUBLE_ALT128_COMPAT - const __num_get_type& __ng = __check_facet(this->_M_num_get); -#else - const __num_get_type& __ng - = use_facet<__num_get_type>(this->_M_ios_locale); -#endif - __ng.get(*this, 0, *this, __err, __v); - } - __catch(__cxxabiv1::__forced_unwind&) - { - this->_M_setstate(ios_base::badbit); - __throw_exception_again; - } - __catch(...) - { this->_M_setstate(ios_base::badbit); } - if (__err) - this->setstate(__err); - } - return *this; - } - - template - basic_istream<_CharT, _Traits>& - basic_istream<_CharT, _Traits>:: - operator>>(short& __n) - { - // _GLIBCXX_RESOLVE_LIB_DEFECTS - // 118. basic_istream uses nonexistent num_get member functions. - sentry __cerb(*this, false); - if (__cerb) - { - ios_base::iostate __err = ios_base::goodbit; - __try - { - long __l; -#ifndef _GLIBCXX_LONG_DOUBLE_ALT128_COMPAT - const __num_get_type& __ng = __check_facet(this->_M_num_get); -#else - const __num_get_type& __ng - = use_facet<__num_get_type>(this->_M_ios_locale); -#endif - __ng.get(*this, 0, *this, __err, __l); - - // _GLIBCXX_RESOLVE_LIB_DEFECTS - // 696. istream::operator>>(int&) broken. - if (__l < __gnu_cxx::__numeric_traits::__min) - { - __err |= ios_base::failbit; - __n = __gnu_cxx::__numeric_traits::__min; - } - else if (__l > __gnu_cxx::__numeric_traits::__max) - { - __err |= ios_base::failbit; - __n = __gnu_cxx::__numeric_traits::__max; - } - else - __n = short(__l); - } - __catch(__cxxabiv1::__forced_unwind&) - { - this->_M_setstate(ios_base::badbit); - __throw_exception_again; - } - __catch(...) - { this->_M_setstate(ios_base::badbit); } - if (__err) - this->setstate(__err); - } - return *this; - } - - template - basic_istream<_CharT, _Traits>& - basic_istream<_CharT, _Traits>:: - operator>>(int& __n) - { - // _GLIBCXX_RESOLVE_LIB_DEFECTS - // 118. basic_istream uses nonexistent num_get member functions. - sentry __cerb(*this, false); - if (__cerb) - { - ios_base::iostate __err = ios_base::goodbit; - __try - { - long __l; -#ifndef _GLIBCXX_LONG_DOUBLE_ALT128_COMPAT - const __num_get_type& __ng = __check_facet(this->_M_num_get); -#else - const __num_get_type& __ng - = use_facet<__num_get_type>(this->_M_ios_locale); -#endif - __ng.get(*this, 0, *this, __err, __l); - - // _GLIBCXX_RESOLVE_LIB_DEFECTS - // 696. istream::operator>>(int&) broken. - if (__l < __gnu_cxx::__numeric_traits::__min) - { - __err |= ios_base::failbit; - __n = __gnu_cxx::__numeric_traits::__min; - } - else if (__l > __gnu_cxx::__numeric_traits::__max) - { - __err |= ios_base::failbit; - __n = __gnu_cxx::__numeric_traits::__max; - } - else - __n = int(__l); - } - __catch(__cxxabiv1::__forced_unwind&) - { - this->_M_setstate(ios_base::badbit); - __throw_exception_again; - } - __catch(...) - { this->_M_setstate(ios_base::badbit); } - if (__err) - this->setstate(__err); - } - return *this; - } - - template - basic_istream<_CharT, _Traits>& - basic_istream<_CharT, _Traits>:: - operator>>(__streambuf_type* __sbout) - { - ios_base::iostate __err = ios_base::goodbit; - sentry __cerb(*this, false); - if (__cerb && __sbout) - { - __try - { - bool __ineof; - if (!__copy_streambufs_eof(this->rdbuf(), __sbout, __ineof)) - __err |= ios_base::failbit; - if (__ineof) - __err |= ios_base::eofbit; - } - __catch(__cxxabiv1::__forced_unwind&) - { - this->_M_setstate(ios_base::failbit); - __throw_exception_again; - } - __catch(...) - { this->_M_setstate(ios_base::failbit); } - } - else if (!__sbout) - __err |= ios_base::failbit; - if (__err) - this->setstate(__err); - return *this; - } - - template - typename basic_istream<_CharT, _Traits>::int_type - basic_istream<_CharT, _Traits>:: - get(void) - { - const int_type __eof = traits_type::eof(); - int_type __c = __eof; - _M_gcount = 0; - ios_base::iostate __err = ios_base::goodbit; - sentry __cerb(*this, true); - if (__cerb) - { - __try - { - __c = this->rdbuf()->sbumpc(); - // 27.6.1.1 paragraph 3 - if (!traits_type::eq_int_type(__c, __eof)) - _M_gcount = 1; - else - __err |= ios_base::eofbit; - } - __catch(__cxxabiv1::__forced_unwind&) - { - this->_M_setstate(ios_base::badbit); - __throw_exception_again; - } - __catch(...) - { this->_M_setstate(ios_base::badbit); } - } - if (!_M_gcount) - __err |= ios_base::failbit; - if (__err) - this->setstate(__err); - return __c; - } - - template - basic_istream<_CharT, _Traits>& - basic_istream<_CharT, _Traits>:: - get(char_type& __c) - { - _M_gcount = 0; - ios_base::iostate __err = ios_base::goodbit; - sentry __cerb(*this, true); - if (__cerb) - { - __try - { - const int_type __cb = this->rdbuf()->sbumpc(); - // 27.6.1.1 paragraph 3 - if (!traits_type::eq_int_type(__cb, traits_type::eof())) - { - _M_gcount = 1; - __c = traits_type::to_char_type(__cb); - } - else - __err |= ios_base::eofbit; - } - __catch(__cxxabiv1::__forced_unwind&) - { - this->_M_setstate(ios_base::badbit); - __throw_exception_again; - } - __catch(...) - { this->_M_setstate(ios_base::badbit); } - } - if (!_M_gcount) - __err |= ios_base::failbit; - if (__err) - this->setstate(__err); - return *this; - } - - template - basic_istream<_CharT, _Traits>& - basic_istream<_CharT, _Traits>:: - get(char_type* __s, streamsize __n, char_type __delim) - { - _M_gcount = 0; - ios_base::iostate __err = ios_base::goodbit; - sentry __cerb(*this, true); - if (__cerb) - { - __try - { - const int_type __idelim = traits_type::to_int_type(__delim); - const int_type __eof = traits_type::eof(); - __streambuf_type* __sb = this->rdbuf(); - int_type __c = __sb->sgetc(); - - while (_M_gcount + 1 < __n - && !traits_type::eq_int_type(__c, __eof) - && !traits_type::eq_int_type(__c, __idelim)) - { - *__s++ = traits_type::to_char_type(__c); - ++_M_gcount; - __c = __sb->snextc(); - } - if (traits_type::eq_int_type(__c, __eof)) - __err |= ios_base::eofbit; - } - __catch(__cxxabiv1::__forced_unwind&) - { - this->_M_setstate(ios_base::badbit); - __throw_exception_again; - } - __catch(...) - { this->_M_setstate(ios_base::badbit); } - } - // _GLIBCXX_RESOLVE_LIB_DEFECTS - // 243. get and getline when sentry reports failure. - if (__n > 0) - *__s = char_type(); - if (!_M_gcount) - __err |= ios_base::failbit; - if (__err) - this->setstate(__err); - return *this; - } - - template - basic_istream<_CharT, _Traits>& - basic_istream<_CharT, _Traits>:: - get(__streambuf_type& __sb, char_type __delim) - { - _M_gcount = 0; - ios_base::iostate __err = ios_base::goodbit; - sentry __cerb(*this, true); - if (__cerb) - { - __try - { - const int_type __idelim = traits_type::to_int_type(__delim); - const int_type __eof = traits_type::eof(); - __streambuf_type* __this_sb = this->rdbuf(); - int_type __c = __this_sb->sgetc(); - char_type __c2 = traits_type::to_char_type(__c); - unsigned long long __gcount = 0; - - while (!traits_type::eq_int_type(__c, __eof) - && !traits_type::eq_int_type(__c, __idelim) - && !traits_type::eq_int_type(__sb.sputc(__c2), __eof)) - { - ++__gcount; - __c = __this_sb->snextc(); - __c2 = traits_type::to_char_type(__c); - } - if (traits_type::eq_int_type(__c, __eof)) - __err |= ios_base::eofbit; - // _GLIBCXX_RESOLVE_LIB_DEFECTS - // 3464. istream::gcount() can overflow - if (__gcount <= __gnu_cxx::__numeric_traits::__max) - _M_gcount = __gcount; - else - _M_gcount = __gnu_cxx::__numeric_traits::__max; - } - __catch(__cxxabiv1::__forced_unwind&) - { - this->_M_setstate(ios_base::badbit); - __throw_exception_again; - } - __catch(...) - { this->_M_setstate(ios_base::badbit); } - } - if (!_M_gcount) - __err |= ios_base::failbit; - if (__err) - this->setstate(__err); - return *this; - } - - template - basic_istream<_CharT, _Traits>& - basic_istream<_CharT, _Traits>:: - getline(char_type* __s, streamsize __n, char_type __delim) - { - _M_gcount = 0; - ios_base::iostate __err = ios_base::goodbit; - sentry __cerb(*this, true); - if (__cerb) - { - __try - { - const int_type __idelim = traits_type::to_int_type(__delim); - const int_type __eof = traits_type::eof(); - __streambuf_type* __sb = this->rdbuf(); - int_type __c = __sb->sgetc(); - - while (_M_gcount + 1 < __n - && !traits_type::eq_int_type(__c, __eof) - && !traits_type::eq_int_type(__c, __idelim)) - { - *__s++ = traits_type::to_char_type(__c); - __c = __sb->snextc(); - ++_M_gcount; - } - if (traits_type::eq_int_type(__c, __eof)) - __err |= ios_base::eofbit; - else - { - if (traits_type::eq_int_type(__c, __idelim)) - { - __sb->sbumpc(); - ++_M_gcount; - } - else - __err |= ios_base::failbit; - } - } - __catch(__cxxabiv1::__forced_unwind&) - { - this->_M_setstate(ios_base::badbit); - __throw_exception_again; - } - __catch(...) - { this->_M_setstate(ios_base::badbit); } - } - // _GLIBCXX_RESOLVE_LIB_DEFECTS - // 243. get and getline when sentry reports failure. - if (__n > 0) - *__s = char_type(); - if (!_M_gcount) - __err |= ios_base::failbit; - if (__err) - this->setstate(__err); - return *this; - } - - // We provide three overloads, since the first two are much simpler - // than the general case. Also, the latter two can thus adopt the - // same "batchy" strategy used by getline above. - template - basic_istream<_CharT, _Traits>& - basic_istream<_CharT, _Traits>:: - ignore(void) - { - _M_gcount = 0; - sentry __cerb(*this, true); - if (__cerb) - { - ios_base::iostate __err = ios_base::goodbit; - __try - { - const int_type __eof = traits_type::eof(); - __streambuf_type* __sb = this->rdbuf(); - - if (traits_type::eq_int_type(__sb->sbumpc(), __eof)) - __err |= ios_base::eofbit; - else - _M_gcount = 1; - } - __catch(__cxxabiv1::__forced_unwind&) - { - this->_M_setstate(ios_base::badbit); - __throw_exception_again; - } - __catch(...) - { this->_M_setstate(ios_base::badbit); } - if (__err) - this->setstate(__err); - } - return *this; - } - - template - basic_istream<_CharT, _Traits>& - basic_istream<_CharT, _Traits>:: - ignore(streamsize __n) - { - _M_gcount = 0; - sentry __cerb(*this, true); - if (__cerb && __n > 0) - { - ios_base::iostate __err = ios_base::goodbit; - __try - { - const int_type __eof = traits_type::eof(); - __streambuf_type* __sb = this->rdbuf(); - int_type __c = __sb->sgetc(); - - // N.B. On LFS-enabled platforms streamsize is still 32 bits - // wide: if we want to implement the standard mandated behavior - // for n == max() (see 27.6.1.3/24) we are at risk of signed - // integer overflow: thus these contortions. Also note that, - // by definition, when more than 2G chars are actually ignored, - // _M_gcount (the return value of gcount, that is) cannot be - // really correct, being unavoidably too small. - bool __large_ignore = false; - while (true) - { - while (_M_gcount < __n - && !traits_type::eq_int_type(__c, __eof)) - { - ++_M_gcount; - __c = __sb->snextc(); - } - if (__n == __gnu_cxx::__numeric_traits::__max - && !traits_type::eq_int_type(__c, __eof)) - { - _M_gcount = - __gnu_cxx::__numeric_traits::__min; - __large_ignore = true; - } - else - break; - } - - if (__n == __gnu_cxx::__numeric_traits::__max) - { - if (__large_ignore) - _M_gcount = __gnu_cxx::__numeric_traits::__max; - - if (traits_type::eq_int_type(__c, __eof)) - __err |= ios_base::eofbit; - } - else if (_M_gcount < __n) - { - if (traits_type::eq_int_type(__c, __eof)) - __err |= ios_base::eofbit; - } - } - __catch(__cxxabiv1::__forced_unwind&) - { - this->_M_setstate(ios_base::badbit); - __throw_exception_again; - } - __catch(...) - { this->_M_setstate(ios_base::badbit); } - if (__err) - this->setstate(__err); - } - return *this; - } - - template - basic_istream<_CharT, _Traits>& - basic_istream<_CharT, _Traits>:: - ignore(streamsize __n, int_type __delim) - { - _M_gcount = 0; - sentry __cerb(*this, true); - if (__cerb && __n > 0) - { - ios_base::iostate __err = ios_base::goodbit; - __try - { - const int_type __eof = traits_type::eof(); - __streambuf_type* __sb = this->rdbuf(); - int_type __c = __sb->sgetc(); - - // See comment above. - bool __large_ignore = false; - while (true) - { - while (_M_gcount < __n - && !traits_type::eq_int_type(__c, __eof) - && !traits_type::eq_int_type(__c, __delim)) - { - ++_M_gcount; - __c = __sb->snextc(); - } - if (__n == __gnu_cxx::__numeric_traits::__max - && !traits_type::eq_int_type(__c, __eof) - && !traits_type::eq_int_type(__c, __delim)) - { - _M_gcount = - __gnu_cxx::__numeric_traits::__min; - __large_ignore = true; - } - else - break; - } - - if (__n == __gnu_cxx::__numeric_traits::__max) - { - if (__large_ignore) - _M_gcount = __gnu_cxx::__numeric_traits::__max; - - if (traits_type::eq_int_type(__c, __eof)) - __err |= ios_base::eofbit; - else - { - if (_M_gcount != __n) - ++_M_gcount; - __sb->sbumpc(); - } - } - else if (_M_gcount < __n) // implies __c == __delim or EOF - { - if (traits_type::eq_int_type(__c, __eof)) - __err |= ios_base::eofbit; - else - { - ++_M_gcount; - __sb->sbumpc(); - } - } - } - __catch(__cxxabiv1::__forced_unwind&) - { - this->_M_setstate(ios_base::badbit); - __throw_exception_again; - } - __catch(...) - { this->_M_setstate(ios_base::badbit); } - if (__err) - this->setstate(__err); - } - return *this; - } - - template - typename basic_istream<_CharT, _Traits>::int_type - basic_istream<_CharT, _Traits>:: - peek(void) - { - int_type __c = traits_type::eof(); - _M_gcount = 0; - sentry __cerb(*this, true); - if (__cerb) - { - ios_base::iostate __err = ios_base::goodbit; - __try - { - __c = this->rdbuf()->sgetc(); - if (traits_type::eq_int_type(__c, traits_type::eof())) - __err |= ios_base::eofbit; - } - __catch(__cxxabiv1::__forced_unwind&) - { - this->_M_setstate(ios_base::badbit); - __throw_exception_again; - } - __catch(...) - { this->_M_setstate(ios_base::badbit); } - if (__err) - this->setstate(__err); - } - return __c; - } - - template - basic_istream<_CharT, _Traits>& - basic_istream<_CharT, _Traits>:: - read(char_type* __s, streamsize __n) - { - _M_gcount = 0; - sentry __cerb(*this, true); - if (__cerb) - { - ios_base::iostate __err = ios_base::goodbit; - __try - { - _M_gcount = this->rdbuf()->sgetn(__s, __n); - if (_M_gcount != __n) - __err |= (ios_base::eofbit | ios_base::failbit); - } - __catch(__cxxabiv1::__forced_unwind&) - { - this->_M_setstate(ios_base::badbit); - __throw_exception_again; - } - __catch(...) - { this->_M_setstate(ios_base::badbit); } - if (__err) - this->setstate(__err); - } - return *this; - } - - template - streamsize - basic_istream<_CharT, _Traits>:: - readsome(char_type* __s, streamsize __n) - { - _M_gcount = 0; - sentry __cerb(*this, true); - if (__cerb) - { - ios_base::iostate __err = ios_base::goodbit; - __try - { - // Cannot compare int_type with streamsize generically. - const streamsize __num = this->rdbuf()->in_avail(); - if (__num > 0) - _M_gcount = this->rdbuf()->sgetn(__s, std::min(__num, __n)); - else if (__num == -1) - __err |= ios_base::eofbit; - } - __catch(__cxxabiv1::__forced_unwind&) - { - this->_M_setstate(ios_base::badbit); - __throw_exception_again; - } - __catch(...) - { this->_M_setstate(ios_base::badbit); } - if (__err) - this->setstate(__err); - } - return _M_gcount; - } - - template - basic_istream<_CharT, _Traits>& - basic_istream<_CharT, _Traits>:: - putback(char_type __c) - { - // _GLIBCXX_RESOLVE_LIB_DEFECTS - // 60. What is a formatted input function? - _M_gcount = 0; - // Clear eofbit per N3168. - this->clear(this->rdstate() & ~ios_base::eofbit); - sentry __cerb(*this, true); - if (__cerb) - { - ios_base::iostate __err = ios_base::goodbit; - __try - { - const int_type __eof = traits_type::eof(); - __streambuf_type* __sb = this->rdbuf(); - if (!__sb - || traits_type::eq_int_type(__sb->sputbackc(__c), __eof)) - __err |= ios_base::badbit; - } - __catch(__cxxabiv1::__forced_unwind&) - { - this->_M_setstate(ios_base::badbit); - __throw_exception_again; - } - __catch(...) - { this->_M_setstate(ios_base::badbit); } - if (__err) - this->setstate(__err); - } - return *this; - } - - template - basic_istream<_CharT, _Traits>& - basic_istream<_CharT, _Traits>:: - unget(void) - { - // _GLIBCXX_RESOLVE_LIB_DEFECTS - // 60. What is a formatted input function? - _M_gcount = 0; - // Clear eofbit per N3168. - this->clear(this->rdstate() & ~ios_base::eofbit); - sentry __cerb(*this, true); - if (__cerb) - { - ios_base::iostate __err = ios_base::goodbit; - __try - { - const int_type __eof = traits_type::eof(); - __streambuf_type* __sb = this->rdbuf(); - if (!__sb - || traits_type::eq_int_type(__sb->sungetc(), __eof)) - __err |= ios_base::badbit; - } - __catch(__cxxabiv1::__forced_unwind&) - { - this->_M_setstate(ios_base::badbit); - __throw_exception_again; - } - __catch(...) - { this->_M_setstate(ios_base::badbit); } - if (__err) - this->setstate(__err); - } - return *this; - } - - template - int - basic_istream<_CharT, _Traits>:: - sync(void) - { - // _GLIBCXX_RESOLVE_LIB_DEFECTS - // DR60. Do not change _M_gcount. - int __ret = -1; - sentry __cerb(*this, true); - if (__cerb) - { - ios_base::iostate __err = ios_base::goodbit; - __try - { - __streambuf_type* __sb = this->rdbuf(); - if (__sb) - { - if (__sb->pubsync() == -1) - __err |= ios_base::badbit; - else - __ret = 0; - } - } - __catch(__cxxabiv1::__forced_unwind&) - { - this->_M_setstate(ios_base::badbit); - __throw_exception_again; - } - __catch(...) - { this->_M_setstate(ios_base::badbit); } - if (__err) - this->setstate(__err); - } - return __ret; - } - - template - typename basic_istream<_CharT, _Traits>::pos_type - basic_istream<_CharT, _Traits>:: - tellg(void) - { - // _GLIBCXX_RESOLVE_LIB_DEFECTS - // DR60. Do not change _M_gcount. - pos_type __ret = pos_type(-1); - sentry __cerb(*this, true); - if (__cerb) - { - __try - { - if (!this->fail()) - __ret = this->rdbuf()->pubseekoff(0, ios_base::cur, - ios_base::in); - } - __catch(__cxxabiv1::__forced_unwind&) - { - this->_M_setstate(ios_base::badbit); - __throw_exception_again; - } - __catch(...) - { this->_M_setstate(ios_base::badbit); } - } - return __ret; - } - - template - basic_istream<_CharT, _Traits>& - basic_istream<_CharT, _Traits>:: - seekg(pos_type __pos) - { - // _GLIBCXX_RESOLVE_LIB_DEFECTS - // DR60. Do not change _M_gcount. - // Clear eofbit per N3168. - this->clear(this->rdstate() & ~ios_base::eofbit); - sentry __cerb(*this, true); - if (__cerb) - { - ios_base::iostate __err = ios_base::goodbit; - __try - { - if (!this->fail()) - { - // 136. seekp, seekg setting wrong streams? - const pos_type __p = this->rdbuf()->pubseekpos(__pos, - ios_base::in); - - // 129. Need error indication from seekp() and seekg() - if (__p == pos_type(off_type(-1))) - __err |= ios_base::failbit; - } - } - __catch(__cxxabiv1::__forced_unwind&) - { - this->_M_setstate(ios_base::badbit); - __throw_exception_again; - } - __catch(...) - { this->_M_setstate(ios_base::badbit); } - if (__err) - this->setstate(__err); - } - return *this; - } - - template - basic_istream<_CharT, _Traits>& - basic_istream<_CharT, _Traits>:: - seekg(off_type __off, ios_base::seekdir __dir) - { - // _GLIBCXX_RESOLVE_LIB_DEFECTS - // DR60. Do not change _M_gcount. - // Clear eofbit per N3168. - this->clear(this->rdstate() & ~ios_base::eofbit); - sentry __cerb(*this, true); - if (__cerb) - { - ios_base::iostate __err = ios_base::goodbit; - __try - { - if (!this->fail()) - { - // 136. seekp, seekg setting wrong streams? - const pos_type __p = this->rdbuf()->pubseekoff(__off, __dir, - ios_base::in); - - // 129. Need error indication from seekp() and seekg() - if (__p == pos_type(off_type(-1))) - __err |= ios_base::failbit; - } - } - __catch(__cxxabiv1::__forced_unwind&) - { - this->_M_setstate(ios_base::badbit); - __throw_exception_again; - } - __catch(...) - { this->_M_setstate(ios_base::badbit); } - if (__err) - this->setstate(__err); - } - return *this; - } - - // 27.6.1.2.3 Character extraction templates - template - basic_istream<_CharT, _Traits>& - operator>>(basic_istream<_CharT, _Traits>& __in, _CharT& __c) - { - typedef basic_istream<_CharT, _Traits> __istream_type; - typedef typename __istream_type::int_type __int_type; - - typename __istream_type::sentry __cerb(__in, false); - if (__cerb) - { - ios_base::iostate __err = ios_base::goodbit; - __try - { - const __int_type __cb = __in.rdbuf()->sbumpc(); - if (!_Traits::eq_int_type(__cb, _Traits::eof())) - __c = _Traits::to_char_type(__cb); - else - __err |= (ios_base::eofbit | ios_base::failbit); - } - __catch(__cxxabiv1::__forced_unwind&) - { - __in._M_setstate(ios_base::badbit); - __throw_exception_again; - } - __catch(...) - { __in._M_setstate(ios_base::badbit); } - if (__err) - __in.setstate(__err); - } - return __in; - } - - template - void - __istream_extract(basic_istream<_CharT, _Traits>& __in, _CharT* __s, - streamsize __num) - { - typedef basic_istream<_CharT, _Traits> __istream_type; - typedef basic_streambuf<_CharT, _Traits> __streambuf_type; - typedef typename _Traits::int_type int_type; - typedef _CharT char_type; - typedef ctype<_CharT> __ctype_type; - - streamsize __extracted = 0; - ios_base::iostate __err = ios_base::goodbit; - typename __istream_type::sentry __cerb(__in, false); - if (__cerb) - { - __try - { - // Figure out how many characters to extract. - streamsize __width = __in.width(); - if (0 < __width && __width < __num) - __num = __width; - - const __ctype_type& __ct = use_facet<__ctype_type>(__in.getloc()); - - const int_type __eof = _Traits::eof(); - __streambuf_type* __sb = __in.rdbuf(); - int_type __c = __sb->sgetc(); - - while (__extracted < __num - 1 - && !_Traits::eq_int_type(__c, __eof) - && !__ct.is(ctype_base::space, - _Traits::to_char_type(__c))) - { - *__s++ = _Traits::to_char_type(__c); - ++__extracted; - __c = __sb->snextc(); - } - - if (__extracted < __num - 1 - && _Traits::eq_int_type(__c, __eof)) - __err |= ios_base::eofbit; - - // _GLIBCXX_RESOLVE_LIB_DEFECTS - // 68. Extractors for char* should store null at end - *__s = char_type(); - __in.width(0); - } - __catch(__cxxabiv1::__forced_unwind&) - { - __in._M_setstate(ios_base::badbit); - __throw_exception_again; - } - __catch(...) - { __in._M_setstate(ios_base::badbit); } - } - if (!__extracted) - __err |= ios_base::failbit; - if (__err) - __in.setstate(__err); - } - - // 27.6.1.4 Standard basic_istream manipulators - template - basic_istream<_CharT, _Traits>& - ws(basic_istream<_CharT, _Traits>& __in) - { - typedef basic_istream<_CharT, _Traits> __istream_type; - typedef basic_streambuf<_CharT, _Traits> __streambuf_type; - typedef typename __istream_type::int_type __int_type; - typedef ctype<_CharT> __ctype_type; - - // _GLIBCXX_RESOLVE_LIB_DEFECTS - // 451. behavior of std::ws - typename __istream_type::sentry __cerb(__in, true); - if (__cerb) - { - ios_base::iostate __err = ios_base::goodbit; - __try - { - const __ctype_type& __ct = use_facet<__ctype_type>(__in.getloc()); - const __int_type __eof = _Traits::eof(); - __streambuf_type* __sb = __in.rdbuf(); - __int_type __c = __sb->sgetc(); - - while (true) - { - if (_Traits::eq_int_type(__c, __eof)) - { - __err = ios_base::eofbit; - break; - } - if (!__ct.is(ctype_base::space, _Traits::to_char_type(__c))) - break; - __c = __sb->snextc(); - } - } - __catch (const __cxxabiv1::__forced_unwind&) - { - __in._M_setstate(ios_base::badbit); - __throw_exception_again; - } - __catch (...) - { - __in._M_setstate(ios_base::badbit); - } - if (__err) - __in.setstate(__err); - } - return __in; - } - - // Inhibit implicit instantiations for required instantiations, - // which are defined via explicit instantiations elsewhere. -#if _GLIBCXX_EXTERN_TEMPLATE - extern template class basic_istream; - extern template istream& ws(istream&); - extern template istream& operator>>(istream&, char&); - extern template istream& operator>>(istream&, unsigned char&); - extern template istream& operator>>(istream&, signed char&); - - extern template istream& istream::_M_extract(unsigned short&); - extern template istream& istream::_M_extract(unsigned int&); - extern template istream& istream::_M_extract(long&); - extern template istream& istream::_M_extract(unsigned long&); - extern template istream& istream::_M_extract(bool&); -#ifdef _GLIBCXX_USE_LONG_LONG - extern template istream& istream::_M_extract(long long&); - extern template istream& istream::_M_extract(unsigned long long&); -#endif - extern template istream& istream::_M_extract(float&); - extern template istream& istream::_M_extract(double&); - extern template istream& istream::_M_extract(long double&); - extern template istream& istream::_M_extract(void*&); - - extern template class basic_iostream; - -#ifdef _GLIBCXX_USE_WCHAR_T - extern template class basic_istream; - extern template wistream& ws(wistream&); - extern template wistream& operator>>(wistream&, wchar_t&); - extern template void __istream_extract(wistream&, wchar_t*, streamsize); - - extern template wistream& wistream::_M_extract(unsigned short&); - extern template wistream& wistream::_M_extract(unsigned int&); - extern template wistream& wistream::_M_extract(long&); - extern template wistream& wistream::_M_extract(unsigned long&); - extern template wistream& wistream::_M_extract(bool&); -#ifdef _GLIBCXX_USE_LONG_LONG - extern template wistream& wistream::_M_extract(long long&); - extern template wistream& wistream::_M_extract(unsigned long long&); -#endif - extern template wistream& wistream::_M_extract(float&); - extern template wistream& wistream::_M_extract(double&); - extern template wistream& wistream::_M_extract(long double&); - extern template wistream& wistream::_M_extract(void*&); - - extern template class basic_iostream; -#endif -#endif - -_GLIBCXX_END_NAMESPACE_VERSION -} // namespace std - -#endif diff --git a/.ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@c++@13.1.1@bits@istream.tcc.blob b/.ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@c++@13.1.1@bits@istream.tcc.blob deleted file mode 100644 index 77851780b0ed8970e152111a407211e0b311eb39..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 68546 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 diff --git a/.ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@c++@13.1.1@bits@locale_classes.h b/.ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@c++@13.1.1@bits@locale_classes.h deleted file mode 100644 index 32b2a3f..0000000 --- a/.ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@c++@13.1.1@bits@locale_classes.h +++ /dev/null @@ -1,871 +0,0 @@ -// Locale support -*- C++ -*- - -// Copyright (C) 1997-2023 Free Software Foundation, Inc. -// -// This file is part of the GNU ISO C++ Library. This library is free -// software; you can redistribute it and/or modify it under the -// terms of the GNU General Public License as published by the -// Free Software Foundation; either version 3, or (at your option) -// any later version. - -// This library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. - -// Under Section 7 of GPL version 3, you are granted additional -// permissions described in the GCC Runtime Library Exception, version -// 3.1, as published by the Free Software Foundation. - -// You should have received a copy of the GNU General Public License and -// a copy of the GCC Runtime Library Exception along with this program; -// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see -// . - -/** @file bits/locale_classes.h - * This is an internal header file, included by other library headers. - * Do not attempt to use it directly. @headername{locale} - */ - -// -// ISO C++ 14882: 22.1 Locales -// - -#ifndef _LOCALE_CLASSES_H -#define _LOCALE_CLASSES_H 1 - -#pragma GCC system_header - -#include -#include -#include - -namespace std _GLIBCXX_VISIBILITY(default) -{ -_GLIBCXX_BEGIN_NAMESPACE_VERSION - - // 22.1.1 Class locale - /** - * @brief Container class for localization functionality. - * @ingroup locales - * - * The locale class is first a class wrapper for C library locales. It is - * also an extensible container for user-defined localization. A locale is - * a collection of facets that implement various localization features such - * as money, time, and number printing. - * - * Constructing C++ locales does not change the C library locale. - * - * This library supports efficient construction and copying of locales - * through a reference counting implementation of the locale class. - */ - class locale - { - public: - // Types: - /// Definition of locale::category. - typedef int category; - - // Forward decls and friends: - class facet; - class id; - class _Impl; - - friend class facet; - friend class _Impl; - - template - friend bool - has_facet(const locale&) throw(); - - template - friend const _Facet& - use_facet(const locale&); - - template - friend const _Facet* - __try_use_facet(const locale&) _GLIBCXX_NOTHROW; - - template - friend struct __use_cache; - - ///@{ - /** - * @brief Category values. - * - * The standard category values are none, ctype, numeric, collate, time, - * monetary, and messages. They form a bitmask that supports union and - * intersection. The category all is the union of these values. - * - * NB: Order must match _S_facet_categories definition in locale.cc - */ - static const category none = 0; - static const category ctype = 1L << 0; - static const category numeric = 1L << 1; - static const category collate = 1L << 2; - static const category time = 1L << 3; - static const category monetary = 1L << 4; - static const category messages = 1L << 5; - static const category all = (ctype | numeric | collate | - time | monetary | messages); - ///@} - - // Construct/copy/destroy: - - /** - * @brief Default constructor. - * - * Constructs a copy of the global locale. If no locale has been - * explicitly set, this is the C locale. - */ - locale() throw(); - - /** - * @brief Copy constructor. - * - * Constructs a copy of @a other. - * - * @param __other The locale to copy. - */ - locale(const locale& __other) throw(); - - /** - * @brief Named locale constructor. - * - * Constructs a copy of the named C library locale. - * - * @param __s Name of the locale to construct. - * @throw std::runtime_error if __s is null or an undefined locale. - */ - explicit - locale(const char* __s); - - /** - * @brief Construct locale with facets from another locale. - * - * Constructs a copy of the locale @a base. The facets specified by @a - * cat are replaced with those from the locale named by @a s. If base is - * named, this locale instance will also be named. - * - * @param __base The locale to copy. - * @param __s Name of the locale to use facets from. - * @param __cat Set of categories defining the facets to use from __s. - * @throw std::runtime_error if __s is null or an undefined locale. - */ - locale(const locale& __base, const char* __s, category __cat); - -#if __cplusplus >= 201103L - /** - * @brief Named locale constructor. - * - * Constructs a copy of the named C library locale. - * - * @param __s Name of the locale to construct. - * @throw std::runtime_error if __s is an undefined locale. - */ - explicit - locale(const std::string& __s) : locale(__s.c_str()) { } - - /** - * @brief Construct locale with facets from another locale. - * - * Constructs a copy of the locale @a base. The facets specified by @a - * cat are replaced with those from the locale named by @a s. If base is - * named, this locale instance will also be named. - * - * @param __base The locale to copy. - * @param __s Name of the locale to use facets from. - * @param __cat Set of categories defining the facets to use from __s. - * @throw std::runtime_error if __s is an undefined locale. - */ - locale(const locale& __base, const std::string& __s, category __cat) - : locale(__base, __s.c_str(), __cat) { } -#endif - - /** - * @brief Construct locale with facets from another locale. - * - * Constructs a copy of the locale @a base. The facets specified by @a - * cat are replaced with those from the locale @a add. If @a base and @a - * add are named, this locale instance will also be named. - * - * @param __base The locale to copy. - * @param __add The locale to use facets from. - * @param __cat Set of categories defining the facets to use from add. - */ - locale(const locale& __base, const locale& __add, category __cat); - - /** - * @brief Construct locale with another facet. - * - * Constructs a copy of the locale @a __other. The facet @a __f - * is added to @a __other, replacing an existing facet of type - * Facet if there is one. If @a __f is null, this locale is a - * copy of @a __other. - * - * @param __other The locale to copy. - * @param __f The facet to add in. - */ - template - locale(const locale& __other, _Facet* __f); - - /// Locale destructor. - ~locale() throw(); - - /** - * @brief Assignment operator. - * - * Set this locale to be a copy of @a other. - * - * @param __other The locale to copy. - * @return A reference to this locale. - */ - const locale& - operator=(const locale& __other) throw(); - - /** - * @brief Construct locale with another facet. - * - * Constructs and returns a new copy of this locale. Adds or replaces an - * existing facet of type Facet from the locale @a other into the new - * locale. - * - * @tparam _Facet The facet type to copy from other - * @param __other The locale to copy from. - * @return Newly constructed locale. - * @throw std::runtime_error if __other has no facet of type _Facet. - */ - template - locale - combine(const locale& __other) const; - - // Locale operations: - /** - * @brief Return locale name. - * @return Locale name or "*" if unnamed. - */ - _GLIBCXX_DEFAULT_ABI_TAG - string - name() const; - - /** - * @brief Locale equality. - * - * @param __other The locale to compare against. - * @return True if other and this refer to the same locale instance, are - * copies, or have the same name. False otherwise. - */ - bool - operator==(const locale& __other) const throw(); - -#if __cpp_impl_three_way_comparison < 201907L - /** - * @brief Locale inequality. - * - * @param __other The locale to compare against. - * @return ! (*this == __other) - */ - bool - operator!=(const locale& __other) const throw() - { return !(this->operator==(__other)); } -#endif - - /** - * @brief Compare two strings according to collate. - * - * Template operator to compare two strings using the compare function of - * the collate facet in this locale. One use is to provide the locale to - * the sort function. For example, a vector v of strings could be sorted - * according to locale loc by doing: - * @code - * std::sort(v.begin(), v.end(), loc); - * @endcode - * - * @param __s1 First string to compare. - * @param __s2 Second string to compare. - * @return True if collate<_Char> facet compares __s1 < __s2, else false. - */ - template - bool - operator()(const basic_string<_Char, _Traits, _Alloc>& __s1, - const basic_string<_Char, _Traits, _Alloc>& __s2) const; - - // Global locale objects: - /** - * @brief Set global locale - * - * This function sets the global locale to the argument and returns a - * copy of the previous global locale. If the argument has a name, it - * will also call std::setlocale(LC_ALL, loc.name()). - * - * @param __loc The new locale to make global. - * @return Copy of the old global locale. - */ - static locale - global(const locale& __loc); - - /** - * @brief Return reference to the C locale. - */ - static const locale& - classic(); - - private: - // The (shared) implementation - _Impl* _M_impl; - - // The "C" reference locale - static _Impl* _S_classic; - - // Current global locale - static _Impl* _S_global; - - // Names of underlying locale categories. - // NB: locale::global() has to know how to modify all the - // underlying categories, not just the ones required by the C++ - // standard. - static const char* const* const _S_categories; - - // Number of standard categories. For C++, these categories are - // collate, ctype, monetary, numeric, time, and messages. These - // directly correspond to ISO C99 macros LC_COLLATE, LC_CTYPE, - // LC_MONETARY, LC_NUMERIC, and LC_TIME. In addition, POSIX (IEEE - // 1003.1-2001) specifies LC_MESSAGES. - // In addition to the standard categories, the underlying - // operating system is allowed to define extra LC_* - // macros. For GNU systems, the following are also valid: - // LC_PAPER, LC_NAME, LC_ADDRESS, LC_TELEPHONE, LC_MEASUREMENT, - // and LC_IDENTIFICATION. - enum { _S_categories_size = 6 + _GLIBCXX_NUM_CATEGORIES }; - -#ifdef __GTHREADS - static __gthread_once_t _S_once; -#endif - - explicit - locale(_Impl*) throw(); - - static void - _S_initialize(); - - static void - _S_initialize_once() throw(); - - static category - _S_normalize_category(category); - - void - _M_coalesce(const locale& __base, const locale& __add, category __cat); - -#if _GLIBCXX_USE_CXX11_ABI - static const id* const _S_twinned_facets[]; -#endif - }; - - - // 22.1.1.1.2 Class locale::facet - /** - * @brief Localization functionality base class. - * @ingroup locales - * - * The facet class is the base class for a localization feature, such as - * money, time, and number printing. It provides common support for facets - * and reference management. - * - * Facets may not be copied or assigned. - */ - class locale::facet - { - private: - friend class locale; - friend class locale::_Impl; - - mutable _Atomic_word _M_refcount; - - // Contains data from the underlying "C" library for the classic locale. - static __c_locale _S_c_locale; - - // String literal for the name of the classic locale. - static const char _S_c_name[2]; - -#ifdef __GTHREADS - static __gthread_once_t _S_once; -#endif - - static void - _S_initialize_once(); - - protected: - /** - * @brief Facet constructor. - * - * This is the constructor provided by the standard. If refs is 0, the - * facet is destroyed when the last referencing locale is destroyed. - * Otherwise the facet will never be destroyed. - * - * @param __refs The initial value for reference count. - */ - explicit - facet(size_t __refs = 0) throw() : _M_refcount(__refs ? 1 : 0) - { } - - /// Facet destructor. - virtual - ~facet(); - - static void - _S_create_c_locale(__c_locale& __cloc, const char* __s, - __c_locale __old = 0); - - static __c_locale - _S_clone_c_locale(__c_locale& __cloc) throw(); - - static void - _S_destroy_c_locale(__c_locale& __cloc); - - static __c_locale - _S_lc_ctype_c_locale(__c_locale __cloc, const char* __s); - - // Returns data from the underlying "C" library data for the - // classic locale. - static __c_locale - _S_get_c_locale(); - - _GLIBCXX_CONST static const char* - _S_get_c_name() throw(); - -#if __cplusplus < 201103L - private: - facet(const facet&); // Not defined. - - facet& - operator=(const facet&); // Not defined. -#else - facet(const facet&) = delete; - - facet& - operator=(const facet&) = delete; -#endif - - private: - void - _M_add_reference() const throw() - { __gnu_cxx::__atomic_add_dispatch(&_M_refcount, 1); } - - void - _M_remove_reference() const throw() - { - // Be race-detector-friendly. For more info see bits/c++config. - _GLIBCXX_SYNCHRONIZATION_HAPPENS_BEFORE(&_M_refcount); - if (__gnu_cxx::__exchange_and_add_dispatch(&_M_refcount, -1) == 1) - { - _GLIBCXX_SYNCHRONIZATION_HAPPENS_AFTER(&_M_refcount); - __try - { delete this; } - __catch(...) - { } - } - } - - const facet* _M_sso_shim(const id*) const; - const facet* _M_cow_shim(const id*) const; - - protected: - class __shim; // For internal use only. - }; - - - // 22.1.1.1.3 Class locale::id - /** - * @brief Facet ID class. - * @ingroup locales - * - * The ID class provides facets with an index used to identify them. - * Every facet class must define a public static member locale::id, or be - * derived from a facet that provides this member, otherwise the facet - * cannot be used in a locale. The locale::id ensures that each class - * type gets a unique identifier. - */ - class locale::id - { - private: - friend class locale; - friend class locale::_Impl; - - template - friend const _Facet& - use_facet(const locale&); - - template - friend bool - has_facet(const locale&) throw(); - - template - friend const _Facet* - __try_use_facet(const locale&) _GLIBCXX_NOTHROW; - - // NB: There is no accessor for _M_index because it may be used - // before the constructor is run; the effect of calling a member - // function (even an inline) would be undefined. - mutable size_t _M_index; - - // Last id number assigned. - static _Atomic_word _S_refcount; - - void - operator=(const id&); // Not defined. - - id(const id&); // Not defined. - - public: - // NB: This class is always a static data member, and thus can be - // counted on to be zero-initialized. - /// Constructor. - id() { } - - size_t - _M_id() const throw(); - }; - - - // Implementation object for locale. - class locale::_Impl - { - public: - // Friends. - friend class locale; - friend class locale::facet; - - template - friend bool - has_facet(const locale&) throw(); - - template - friend const _Facet& - use_facet(const locale&); - - template - friend const _Facet* - __try_use_facet(const locale&) _GLIBCXX_NOTHROW; - - template - friend struct __use_cache; - - private: - // Data Members. - _Atomic_word _M_refcount; - const facet** _M_facets; - size_t _M_facets_size; - const facet** _M_caches; - char** _M_names; - static const locale::id* const _S_id_ctype[]; - static const locale::id* const _S_id_numeric[]; - static const locale::id* const _S_id_collate[]; - static const locale::id* const _S_id_time[]; - static const locale::id* const _S_id_monetary[]; - static const locale::id* const _S_id_messages[]; - static const locale::id* const* const _S_facet_categories[]; - - void - _M_add_reference() throw() - { __gnu_cxx::__atomic_add_dispatch(&_M_refcount, 1); } - - void - _M_remove_reference() throw() - { - // Be race-detector-friendly. For more info see bits/c++config. - _GLIBCXX_SYNCHRONIZATION_HAPPENS_BEFORE(&_M_refcount); - if (__gnu_cxx::__exchange_and_add_dispatch(&_M_refcount, -1) == 1) - { - _GLIBCXX_SYNCHRONIZATION_HAPPENS_AFTER(&_M_refcount); - __try - { delete this; } - __catch(...) - { } - } - } - - _Impl(const _Impl&, size_t); - _Impl(const char*, size_t); - _Impl(size_t) throw(); - - ~_Impl() throw(); - - _Impl(const _Impl&); // Not defined. - - void - operator=(const _Impl&); // Not defined. - - bool - _M_check_same_name() - { - bool __ret = true; - if (_M_names[1]) - // We must actually compare all the _M_names: can be all equal! - for (size_t __i = 0; __ret && __i < _S_categories_size - 1; ++__i) - __ret = __builtin_strcmp(_M_names[__i], _M_names[__i + 1]) == 0; - return __ret; - } - - void - _M_replace_categories(const _Impl*, category); - - void - _M_replace_category(const _Impl*, const locale::id* const*); - - void - _M_replace_facet(const _Impl*, const locale::id*); - - void - _M_install_facet(const locale::id*, const facet*); - - template - void - _M_init_facet(_Facet* __facet) - { _M_install_facet(&_Facet::id, __facet); } - - template - void - _M_init_facet_unchecked(_Facet* __facet) - { - __facet->_M_add_reference(); - _M_facets[_Facet::id._M_id()] = __facet; - } - - void - _M_install_cache(const facet*, size_t); - - void _M_init_extra(facet**); - void _M_init_extra(void*, void*, const char*, const char*); - -#ifdef _GLIBCXX_LONG_DOUBLE_ALT128_COMPAT - void _M_init_extra_ldbl128(bool); -#endif - }; - - - /** - * @brief Facet for localized string comparison. - * - * This facet encapsulates the code to compare strings in a localized - * manner. - * - * The collate template uses protected virtual functions to provide - * the actual results. The public accessors forward the call to - * the virtual functions. These virtual functions are hooks for - * developers to implement the behavior they require from the - * collate facet. - */ - template - class _GLIBCXX_NAMESPACE_CXX11 collate : public locale::facet - { - public: - // Types: - ///@{ - /// Public typedefs - typedef _CharT char_type; - typedef basic_string<_CharT> string_type; - ///@} - - protected: - // Underlying "C" library locale information saved from - // initialization, needed by collate_byname as well. - __c_locale _M_c_locale_collate; - - public: - /// Numpunct facet id. - static locale::id id; - - /** - * @brief Constructor performs initialization. - * - * This is the constructor provided by the standard. - * - * @param __refs Passed to the base facet class. - */ - explicit - collate(size_t __refs = 0) - : facet(__refs), _M_c_locale_collate(_S_get_c_locale()) - { } - - /** - * @brief Internal constructor. Not for general use. - * - * This is a constructor for use by the library itself to set up new - * locales. - * - * @param __cloc The C locale. - * @param __refs Passed to the base facet class. - */ - explicit - collate(__c_locale __cloc, size_t __refs = 0) - : facet(__refs), _M_c_locale_collate(_S_clone_c_locale(__cloc)) - { } - - /** - * @brief Compare two strings. - * - * This function compares two strings and returns the result by calling - * collate::do_compare(). - * - * @param __lo1 Start of string 1. - * @param __hi1 End of string 1. - * @param __lo2 Start of string 2. - * @param __hi2 End of string 2. - * @return 1 if string1 > string2, -1 if string1 < string2, else 0. - */ - int - compare(const _CharT* __lo1, const _CharT* __hi1, - const _CharT* __lo2, const _CharT* __hi2) const - { return this->do_compare(__lo1, __hi1, __lo2, __hi2); } - - /** - * @brief Transform string to comparable form. - * - * This function is a wrapper for strxfrm functionality. It takes the - * input string and returns a modified string that can be directly - * compared to other transformed strings. In the C locale, this - * function just returns a copy of the input string. In some other - * locales, it may replace two chars with one, change a char for - * another, etc. It does so by returning collate::do_transform(). - * - * @param __lo Start of string. - * @param __hi End of string. - * @return Transformed string_type. - */ - string_type - transform(const _CharT* __lo, const _CharT* __hi) const - { return this->do_transform(__lo, __hi); } - - /** - * @brief Return hash of a string. - * - * This function computes and returns a hash on the input string. It - * does so by returning collate::do_hash(). - * - * @param __lo Start of string. - * @param __hi End of string. - * @return Hash value. - */ - long - hash(const _CharT* __lo, const _CharT* __hi) const - { return this->do_hash(__lo, __hi); } - - // Used to abstract out _CharT bits in virtual member functions, below. - int - _M_compare(const _CharT*, const _CharT*) const throw(); - - size_t - _M_transform(_CharT*, const _CharT*, size_t) const throw(); - - protected: - /// Destructor. - virtual - ~collate() - { _S_destroy_c_locale(_M_c_locale_collate); } - - /** - * @brief Compare two strings. - * - * This function is a hook for derived classes to change the value - * returned. @see compare(). - * - * @param __lo1 Start of string 1. - * @param __hi1 End of string 1. - * @param __lo2 Start of string 2. - * @param __hi2 End of string 2. - * @return 1 if string1 > string2, -1 if string1 < string2, else 0. - */ - virtual int - do_compare(const _CharT* __lo1, const _CharT* __hi1, - const _CharT* __lo2, const _CharT* __hi2) const; - - /** - * @brief Transform string to comparable form. - * - * This function is a hook for derived classes to change the value - * returned. - * - * @param __lo Start. - * @param __hi End. - * @return transformed string. - */ - virtual string_type - do_transform(const _CharT* __lo, const _CharT* __hi) const; - - /** - * @brief Return hash of a string. - * - * This function computes and returns a hash on the input string. This - * function is a hook for derived classes to change the value returned. - * - * @param __lo Start of string. - * @param __hi End of string. - * @return Hash value. - */ - virtual long - do_hash(const _CharT* __lo, const _CharT* __hi) const; - }; - - template - locale::id collate<_CharT>::id; - - // Specializations. - template<> - int - collate::_M_compare(const char*, const char*) const throw(); - - template<> - size_t - collate::_M_transform(char*, const char*, size_t) const throw(); - -#ifdef _GLIBCXX_USE_WCHAR_T - template<> - int - collate::_M_compare(const wchar_t*, const wchar_t*) const throw(); - - template<> - size_t - collate::_M_transform(wchar_t*, const wchar_t*, size_t) const throw(); -#endif - - /// class collate_byname [22.2.4.2]. - template - class _GLIBCXX_NAMESPACE_CXX11 collate_byname : public collate<_CharT> - { - public: - ///@{ - /// Public typedefs - typedef _CharT char_type; - typedef basic_string<_CharT> string_type; - ///@} - - explicit - collate_byname(const char* __s, size_t __refs = 0) - : collate<_CharT>(__refs) - { - if (__builtin_strcmp(__s, "C") != 0 - && __builtin_strcmp(__s, "POSIX") != 0) - { - this->_S_destroy_c_locale(this->_M_c_locale_collate); - this->_S_create_c_locale(this->_M_c_locale_collate, __s); - } - } - -#if __cplusplus >= 201103L - explicit - collate_byname(const string& __s, size_t __refs = 0) - : collate_byname(__s.c_str(), __refs) { } -#endif - - protected: - virtual - ~collate_byname() { } - }; - -_GLIBCXX_END_NAMESPACE_VERSION -} // namespace - -# include - -#endif diff --git a/.ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@c++@13.1.1@bits@locale_classes.h.blob b/.ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@c++@13.1.1@bits@locale_classes.h.blob deleted file mode 100644 index 5aa208cd4086cbccbc8651815b560c140bad864e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 48269 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 diff --git a/.ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@c++@13.1.1@bits@locale_classes.tcc b/.ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@c++@13.1.1@bits@locale_classes.tcc deleted file mode 100644 index 94838cd..0000000 --- a/.ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@c++@13.1.1@bits@locale_classes.tcc +++ /dev/null @@ -1,370 +0,0 @@ -// Locale support -*- C++ -*- - -// Copyright (C) 2007-2023 Free Software Foundation, Inc. -// -// This file is part of the GNU ISO C++ Library. This library is free -// software; you can redistribute it and/or modify it under the -// terms of the GNU General Public License as published by the -// Free Software Foundation; either version 3, or (at your option) -// any later version. - -// This library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. - -// Under Section 7 of GPL version 3, you are granted additional -// permissions described in the GCC Runtime Library Exception, version -// 3.1, as published by the Free Software Foundation. - -// You should have received a copy of the GNU General Public License and -// a copy of the GCC Runtime Library Exception along with this program; -// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see -// . - -/** @file bits/locale_classes.tcc - * This is an internal header file, included by other library headers. - * Do not attempt to use it directly. @headername{locale} - */ - -// -// ISO C++ 14882: 22.1 Locales -// - -#ifndef _LOCALE_CLASSES_TCC -#define _LOCALE_CLASSES_TCC 1 - -#pragma GCC system_header - -namespace std _GLIBCXX_VISIBILITY(default) -{ -_GLIBCXX_BEGIN_NAMESPACE_VERSION - - template - locale:: - locale(const locale& __other, _Facet* __f) - { - _M_impl = new _Impl(*__other._M_impl, 1); - - __try - { _M_impl->_M_install_facet(&_Facet::id, __f); } - __catch(...) - { - _M_impl->_M_remove_reference(); - __throw_exception_again; - } - delete [] _M_impl->_M_names[0]; - _M_impl->_M_names[0] = 0; // Unnamed. - } - - template - locale - locale:: - combine(const locale& __other) const - { - _Impl* __tmp = new _Impl(*_M_impl, 1); - __try - { - __tmp->_M_replace_facet(__other._M_impl, &_Facet::id); - } - __catch(...) - { - __tmp->_M_remove_reference(); - __throw_exception_again; - } - return locale(__tmp); - } - - template - bool - locale:: - operator()(const basic_string<_CharT, _Traits, _Alloc>& __s1, - const basic_string<_CharT, _Traits, _Alloc>& __s2) const - { - typedef std::collate<_CharT> __collate_type; - const __collate_type& __collate = use_facet<__collate_type>(*this); - return (__collate.compare(__s1.data(), __s1.data() + __s1.length(), - __s2.data(), __s2.data() + __s2.length()) < 0); - } - - template - inline const _Facet* - __try_use_facet(const locale& __loc) _GLIBCXX_NOTHROW - { - const size_t __i = _Facet::id._M_id(); - const locale::facet** __facets = __loc._M_impl->_M_facets; - - // We know these standard facets are always installed in every locale - // so dynamic_cast always succeeds, just use static_cast instead. -#define _GLIBCXX_STD_FACET(...) \ - if _GLIBCXX17_CONSTEXPR (__is_same(_Facet, __VA_ARGS__)) \ - return static_cast(__facets[__i]) - - _GLIBCXX_STD_FACET(ctype); - _GLIBCXX_STD_FACET(num_get); - _GLIBCXX_STD_FACET(num_put); - _GLIBCXX_STD_FACET(codecvt); - _GLIBCXX_STD_FACET(collate); - _GLIBCXX_STD_FACET(moneypunct); - _GLIBCXX_STD_FACET(moneypunct); - _GLIBCXX_STD_FACET(money_get); - _GLIBCXX_STD_FACET(money_put); - _GLIBCXX_STD_FACET(numpunct); - _GLIBCXX_STD_FACET(time_get); - _GLIBCXX_STD_FACET(time_put); - _GLIBCXX_STD_FACET(messages); - -#ifdef _GLIBCXX_USE_WCHAR_T - _GLIBCXX_STD_FACET(ctype); - _GLIBCXX_STD_FACET(num_get); - _GLIBCXX_STD_FACET(num_put); - _GLIBCXX_STD_FACET(codecvt); - _GLIBCXX_STD_FACET(collate); - _GLIBCXX_STD_FACET(moneypunct); - _GLIBCXX_STD_FACET(moneypunct); - _GLIBCXX_STD_FACET(money_get); - _GLIBCXX_STD_FACET(money_put); - _GLIBCXX_STD_FACET(numpunct); - _GLIBCXX_STD_FACET(time_get); - _GLIBCXX_STD_FACET(time_put); - _GLIBCXX_STD_FACET(messages); -#endif -#ifdef _GLIBCXX_USE_CHAR8_T - _GLIBCXX_STD_FACET(codecvt); -#endif -#if __cplusplus >= 201103L - _GLIBCXX_STD_FACET(codecvt); - _GLIBCXX_STD_FACET(codecvt); -#endif - -#undef _GLIBCXX_STD_FACET - - if (__i >= __loc._M_impl->_M_facets_size || !__facets[__i]) - return 0; - -#if __cpp_rtti - return dynamic_cast(__facets[__i]); -#else - return static_cast(__facets[__i]); -#endif - } - - /** - * @brief Test for the presence of a facet. - * @ingroup locales - * - * has_facet tests the locale argument for the presence of the facet type - * provided as the template parameter. Facets derived from the facet - * parameter will also return true. - * - * @tparam _Facet The facet type to test the presence of. - * @param __loc The locale to test. - * @return true if @p __loc contains a facet of type _Facet, else false. - */ - template - inline bool - has_facet(const locale& __loc) throw() - { -#if __cplusplus >= 201103L - static_assert(__is_base_of(locale::facet, _Facet), - "template argument must be derived from locale::facet"); -#else - (void) static_cast(static_cast(0)); -#endif - return std::__try_use_facet<_Facet>(__loc) != 0; - } - - /** - * @brief Return a facet. - * @ingroup locales - * - * use_facet looks for and returns a reference to a facet of type Facet - * where Facet is the template parameter. If has_facet(locale) is true, - * there is a suitable facet to return. It throws std::bad_cast if the - * locale doesn't contain a facet of type Facet. - * - * @tparam _Facet The facet type to access. - * @param __loc The locale to use. - * @return Reference to facet of type Facet. - * @throw std::bad_cast if @p __loc doesn't contain a facet of type _Facet. - */ -#pragma GCC diagnostic push -#pragma GCC diagnostic ignored "-Wdangling-reference" - template - inline const _Facet& - use_facet(const locale& __loc) - { -#if __cplusplus >= 201103L - static_assert(__is_base_of(locale::facet, _Facet), - "template argument must be derived from locale::facet"); -#else - (void) static_cast(static_cast(0)); -#endif - if (const _Facet* __f = std::__try_use_facet<_Facet>(__loc)) - return *__f; - __throw_bad_cast(); - } -#pragma GCC diagnostic pop - - - // Generic version does nothing. - template - int - collate<_CharT>::_M_compare(const _CharT*, const _CharT*) const throw () - { return 0; } - - // Generic version does nothing. - template - size_t - collate<_CharT>::_M_transform(_CharT*, const _CharT*, size_t) const throw () - { return 0; } - - template - int - collate<_CharT>:: - do_compare(const _CharT* __lo1, const _CharT* __hi1, - const _CharT* __lo2, const _CharT* __hi2) const - { - // strcoll assumes zero-terminated strings so we make a copy - // and then put a zero at the end. - const string_type __one(__lo1, __hi1); - const string_type __two(__lo2, __hi2); - - const _CharT* __p = __one.c_str(); - const _CharT* __pend = __one.data() + __one.length(); - const _CharT* __q = __two.c_str(); - const _CharT* __qend = __two.data() + __two.length(); - - // strcoll stops when it sees a nul character so we break - // the strings into zero-terminated substrings and pass those - // to strcoll. - for (;;) - { - const int __res = _M_compare(__p, __q); - if (__res) - return __res; - - __p += char_traits<_CharT>::length(__p); - __q += char_traits<_CharT>::length(__q); - if (__p == __pend && __q == __qend) - return 0; - else if (__p == __pend) - return -1; - else if (__q == __qend) - return 1; - - __p++; - __q++; - } - } - - template - typename collate<_CharT>::string_type - collate<_CharT>:: - do_transform(const _CharT* __lo, const _CharT* __hi) const - { - string_type __ret; - - // strxfrm assumes zero-terminated strings so we make a copy - const string_type __str(__lo, __hi); - - const _CharT* __p = __str.c_str(); - const _CharT* __pend = __str.data() + __str.length(); - - size_t __len = (__hi - __lo) * 2; - - _CharT* __c = new _CharT[__len]; - - __try - { - // strxfrm stops when it sees a nul character so we break - // the string into zero-terminated substrings and pass those - // to strxfrm. - for (;;) - { - // First try a buffer perhaps big enough. - size_t __res = _M_transform(__c, __p, __len); - // If the buffer was not large enough, try again with the - // correct size. - if (__res >= __len) - { - __len = __res + 1; - delete [] __c, __c = 0; - __c = new _CharT[__len]; - __res = _M_transform(__c, __p, __len); - } - - __ret.append(__c, __res); - __p += char_traits<_CharT>::length(__p); - if (__p == __pend) - break; - - __p++; - __ret.push_back(_CharT()); - } - } - __catch(...) - { - delete [] __c; - __throw_exception_again; - } - - delete [] __c; - - return __ret; - } - - template - long - collate<_CharT>:: - do_hash(const _CharT* __lo, const _CharT* __hi) const - { - unsigned long __val = 0; - for (; __lo < __hi; ++__lo) - __val = - *__lo + ((__val << 7) - | (__val >> (__gnu_cxx::__numeric_traits:: - __digits - 7))); - return static_cast(__val); - } - - // Inhibit implicit instantiations for required instantiations, - // which are defined via explicit instantiations elsewhere. -#if _GLIBCXX_EXTERN_TEMPLATE - extern template class collate; - extern template class collate_byname; - - extern template - const collate* - __try_use_facet >(const locale&) _GLIBCXX_NOTHROW; - - extern template - const collate& - use_facet >(const locale&); - - extern template - bool - has_facet >(const locale&); - -#ifdef _GLIBCXX_USE_WCHAR_T - extern template class collate; - extern template class collate_byname; - - extern template - const collate* - __try_use_facet >(const locale&) _GLIBCXX_NOTHROW; - - extern template - const collate& - use_facet >(const locale&); - - extern template - bool - has_facet >(const locale&); -#endif -#endif - -_GLIBCXX_END_NAMESPACE_VERSION -} // namespace std - -#endif diff --git a/.ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@c++@13.1.1@bits@locale_classes.tcc.blob b/.ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@c++@13.1.1@bits@locale_classes.tcc.blob deleted file mode 100644 index 6590fee03f648b804378636bab1d6613a76f96c7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 36338 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 Hz`_3s1-Mpt diff --git a/.ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@c++@13.1.1@bits@locale_facets.h b/.ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@c++@13.1.1@bits@locale_facets.h deleted file mode 100644 index d469195..0000000 --- a/.ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@c++@13.1.1@bits@locale_facets.h +++ /dev/null @@ -1,2689 +0,0 @@ -// Locale support -*- C++ -*- - -// Copyright (C) 1997-2023 Free Software Foundation, Inc. -// -// This file is part of the GNU ISO C++ Library. This library is free -// software; you can redistribute it and/or modify it under the -// terms of the GNU General Public License as published by the -// Free Software Foundation; either version 3, or (at your option) -// any later version. - -// This library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. - -// Under Section 7 of GPL version 3, you are granted additional -// permissions described in the GCC Runtime Library Exception, version -// 3.1, as published by the Free Software Foundation. - -// You should have received a copy of the GNU General Public License and -// a copy of the GCC Runtime Library Exception along with this program; -// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see -// . - -/** @file bits/locale_facets.h - * This is an internal header file, included by other library headers. - * Do not attempt to use it directly. @headername{locale} - */ - -// -// ISO C++ 14882: 22.1 Locales -// - -#ifndef _LOCALE_FACETS_H -#define _LOCALE_FACETS_H 1 - -#pragma GCC system_header - -#include // For wctype_t -#include -#include -#include -#include // For ios_base, ios_base::iostate -#include -#include -#include -#include -#include - -namespace std _GLIBCXX_VISIBILITY(default) -{ -_GLIBCXX_BEGIN_NAMESPACE_VERSION - -// Number of standard facets (for narrow characters only) -#define _GLIBCXX_NUM_FACETS 14 - -// Number of duplicated facets for cxx11 ABI -#define _GLIBCXX_NUM_CXX11_FACETS (_GLIBCXX_USE_DUAL_ABI ? 8 : 0) - -// codecvt and codecvt -#ifdef _GLIBCXX_USE_CHAR8_T -# define _GLIBCXX_NUM_UNICODE_FACETS 4 -#else -# define _GLIBCXX_NUM_UNICODE_FACETS 2 -#endif - -// Facets duplicated for alt128 long double format -// num_get, num_put, money_get, money_put (+ cxx11 money_get, money_put) -#define _GLIBCXX_NUM_LBDL_ALT128_FACETS (4 + (_GLIBCXX_USE_DUAL_ABI ? 2 : 0)) - - // Convert string to numeric value of type _Tp and store results. - // NB: This is specialized for all required types, there is no - // generic definition. - template - void - __convert_to_v(const char*, _Tp&, ios_base::iostate&, - const __c_locale&) throw(); - - // Explicit specializations for required types. - template<> - void - __convert_to_v(const char*, float&, ios_base::iostate&, - const __c_locale&) throw(); - - template<> - void - __convert_to_v(const char*, double&, ios_base::iostate&, - const __c_locale&) throw(); - - template<> - void - __convert_to_v(const char*, long double&, ios_base::iostate&, - const __c_locale&) throw(); - - // NB: __pad is a struct, rather than a function, so it can be - // partially-specialized. - template - struct __pad - { - static void - _S_pad(ios_base& __io, _CharT __fill, _CharT* __news, - const _CharT* __olds, streamsize __newlen, streamsize __oldlen); - }; - - // Used by both numeric and monetary facets. - // Inserts "group separator" characters into an array of characters. - // It's recursive, one iteration per group. It moves the characters - // in the buffer this way: "xxxx12345" -> "12,345xxx". Call this - // only with __gsize != 0. - template - _CharT* - __add_grouping(_CharT* __s, _CharT __sep, - const char* __gbeg, size_t __gsize, - const _CharT* __first, const _CharT* __last); - - // This template permits specializing facet output code for - // ostreambuf_iterator. For ostreambuf_iterator, sputn is - // significantly more efficient than incrementing iterators. - template - inline - ostreambuf_iterator<_CharT> - __write(ostreambuf_iterator<_CharT> __s, const _CharT* __ws, int __len) - { - __s._M_put(__ws, __len); - return __s; - } - - // This is the unspecialized form of the template. - template - inline - _OutIter - __write(_OutIter __s, const _CharT* __ws, int __len) - { - for (int __j = 0; __j < __len; __j++, ++__s) - *__s = __ws[__j]; - return __s; - } - - - // 22.2.1.1 Template class ctype - // Include host and configuration specific ctype enums for ctype_base. - - /** - * @brief Common base for ctype facet - * - * This template class provides implementations of the public functions - * that forward to the protected virtual functions. - * - * This template also provides abstract stubs for the protected virtual - * functions. - */ - template - class __ctype_abstract_base : public locale::facet, public ctype_base - { - public: - // Types: - /// Typedef for the template parameter - typedef _CharT char_type; - - /** - * @brief Test char_type classification. - * - * This function finds a mask M for @a __c and compares it to - * mask @a __m. It does so by returning the value of - * ctype::do_is(). - * - * @param __c The char_type to compare the mask of. - * @param __m The mask to compare against. - * @return (M & __m) != 0. - */ - bool - is(mask __m, char_type __c) const - { return this->do_is(__m, __c); } - - /** - * @brief Return a mask array. - * - * This function finds the mask for each char_type in the range [lo,hi) - * and successively writes it to vec. vec must have as many elements - * as the char array. It does so by returning the value of - * ctype::do_is(). - * - * @param __lo Pointer to start of range. - * @param __hi Pointer to end of range. - * @param __vec Pointer to an array of mask storage. - * @return @a __hi. - */ - const char_type* - is(const char_type *__lo, const char_type *__hi, mask *__vec) const - { return this->do_is(__lo, __hi, __vec); } - - /** - * @brief Find char_type matching a mask - * - * This function searches for and returns the first char_type c in - * [lo,hi) for which is(m,c) is true. It does so by returning - * ctype::do_scan_is(). - * - * @param __m The mask to compare against. - * @param __lo Pointer to start of range. - * @param __hi Pointer to end of range. - * @return Pointer to matching char_type if found, else @a __hi. - */ - const char_type* - scan_is(mask __m, const char_type* __lo, const char_type* __hi) const - { return this->do_scan_is(__m, __lo, __hi); } - - /** - * @brief Find char_type not matching a mask - * - * This function searches for and returns the first char_type c in - * [lo,hi) for which is(m,c) is false. It does so by returning - * ctype::do_scan_not(). - * - * @param __m The mask to compare against. - * @param __lo Pointer to first char in range. - * @param __hi Pointer to end of range. - * @return Pointer to non-matching char if found, else @a __hi. - */ - const char_type* - scan_not(mask __m, const char_type* __lo, const char_type* __hi) const - { return this->do_scan_not(__m, __lo, __hi); } - - /** - * @brief Convert to uppercase. - * - * This function converts the argument to uppercase if possible. - * If not possible (for example, '2'), returns the argument. It does - * so by returning ctype::do_toupper(). - * - * @param __c The char_type to convert. - * @return The uppercase char_type if convertible, else @a __c. - */ - char_type - toupper(char_type __c) const - { return this->do_toupper(__c); } - - /** - * @brief Convert array to uppercase. - * - * This function converts each char_type in the range [lo,hi) to - * uppercase if possible. Other elements remain untouched. It does so - * by returning ctype:: do_toupper(lo, hi). - * - * @param __lo Pointer to start of range. - * @param __hi Pointer to end of range. - * @return @a __hi. - */ - const char_type* - toupper(char_type *__lo, const char_type* __hi) const - { return this->do_toupper(__lo, __hi); } - - /** - * @brief Convert to lowercase. - * - * This function converts the argument to lowercase if possible. If - * not possible (for example, '2'), returns the argument. It does so - * by returning ctype::do_tolower(c). - * - * @param __c The char_type to convert. - * @return The lowercase char_type if convertible, else @a __c. - */ - char_type - tolower(char_type __c) const - { return this->do_tolower(__c); } - - /** - * @brief Convert array to lowercase. - * - * This function converts each char_type in the range [__lo,__hi) to - * lowercase if possible. Other elements remain untouched. It does so - * by returning ctype:: do_tolower(__lo, __hi). - * - * @param __lo Pointer to start of range. - * @param __hi Pointer to end of range. - * @return @a __hi. - */ - const char_type* - tolower(char_type* __lo, const char_type* __hi) const - { return this->do_tolower(__lo, __hi); } - - /** - * @brief Widen char to char_type - * - * This function converts the char argument to char_type using the - * simplest reasonable transformation. It does so by returning - * ctype::do_widen(c). - * - * Note: this is not what you want for codepage conversions. See - * codecvt for that. - * - * @param __c The char to convert. - * @return The converted char_type. - */ - char_type - widen(char __c) const - { return this->do_widen(__c); } - - /** - * @brief Widen array to char_type - * - * This function converts each char in the input to char_type using the - * simplest reasonable transformation. It does so by returning - * ctype::do_widen(c). - * - * Note: this is not what you want for codepage conversions. See - * codecvt for that. - * - * @param __lo Pointer to start of range. - * @param __hi Pointer to end of range. - * @param __to Pointer to the destination array. - * @return @a __hi. - */ - const char* - widen(const char* __lo, const char* __hi, char_type* __to) const - { return this->do_widen(__lo, __hi, __to); } - - /** - * @brief Narrow char_type to char - * - * This function converts the char_type to char using the simplest - * reasonable transformation. If the conversion fails, dfault is - * returned instead. It does so by returning - * ctype::do_narrow(__c). - * - * Note: this is not what you want for codepage conversions. See - * codecvt for that. - * - * @param __c The char_type to convert. - * @param __dfault Char to return if conversion fails. - * @return The converted char. - */ - char - narrow(char_type __c, char __dfault) const - { return this->do_narrow(__c, __dfault); } - - /** - * @brief Narrow array to char array - * - * This function converts each char_type in the input to char using the - * simplest reasonable transformation and writes the results to the - * destination array. For any char_type in the input that cannot be - * converted, @a dfault is used instead. It does so by returning - * ctype::do_narrow(__lo, __hi, __dfault, __to). - * - * Note: this is not what you want for codepage conversions. See - * codecvt for that. - * - * @param __lo Pointer to start of range. - * @param __hi Pointer to end of range. - * @param __dfault Char to use if conversion fails. - * @param __to Pointer to the destination array. - * @return @a __hi. - */ - const char_type* - narrow(const char_type* __lo, const char_type* __hi, - char __dfault, char* __to) const - { return this->do_narrow(__lo, __hi, __dfault, __to); } - - protected: - explicit - __ctype_abstract_base(size_t __refs = 0): facet(__refs) { } - - virtual - ~__ctype_abstract_base() { } - - /** - * @brief Test char_type classification. - * - * This function finds a mask M for @a c and compares it to mask @a m. - * - * do_is() is a hook for a derived facet to change the behavior of - * classifying. do_is() must always return the same result for the - * same input. - * - * @param __c The char_type to find the mask of. - * @param __m The mask to compare against. - * @return (M & __m) != 0. - */ - virtual bool - do_is(mask __m, char_type __c) const = 0; - - /** - * @brief Return a mask array. - * - * This function finds the mask for each char_type in the range [lo,hi) - * and successively writes it to vec. vec must have as many elements - * as the input. - * - * do_is() is a hook for a derived facet to change the behavior of - * classifying. do_is() must always return the same result for the - * same input. - * - * @param __lo Pointer to start of range. - * @param __hi Pointer to end of range. - * @param __vec Pointer to an array of mask storage. - * @return @a __hi. - */ - virtual const char_type* - do_is(const char_type* __lo, const char_type* __hi, - mask* __vec) const = 0; - - /** - * @brief Find char_type matching mask - * - * This function searches for and returns the first char_type c in - * [__lo,__hi) for which is(__m,c) is true. - * - * do_scan_is() is a hook for a derived facet to change the behavior of - * match searching. do_is() must always return the same result for the - * same input. - * - * @param __m The mask to compare against. - * @param __lo Pointer to start of range. - * @param __hi Pointer to end of range. - * @return Pointer to a matching char_type if found, else @a __hi. - */ - virtual const char_type* - do_scan_is(mask __m, const char_type* __lo, - const char_type* __hi) const = 0; - - /** - * @brief Find char_type not matching mask - * - * This function searches for and returns a pointer to the first - * char_type c of [lo,hi) for which is(m,c) is false. - * - * do_scan_is() is a hook for a derived facet to change the behavior of - * match searching. do_is() must always return the same result for the - * same input. - * - * @param __m The mask to compare against. - * @param __lo Pointer to start of range. - * @param __hi Pointer to end of range. - * @return Pointer to a non-matching char_type if found, else @a __hi. - */ - virtual const char_type* - do_scan_not(mask __m, const char_type* __lo, - const char_type* __hi) const = 0; - - /** - * @brief Convert to uppercase. - * - * This virtual function converts the char_type argument to uppercase - * if possible. If not possible (for example, '2'), returns the - * argument. - * - * do_toupper() is a hook for a derived facet to change the behavior of - * uppercasing. do_toupper() must always return the same result for - * the same input. - * - * @param __c The char_type to convert. - * @return The uppercase char_type if convertible, else @a __c. - */ - virtual char_type - do_toupper(char_type __c) const = 0; - - /** - * @brief Convert array to uppercase. - * - * This virtual function converts each char_type in the range [__lo,__hi) - * to uppercase if possible. Other elements remain untouched. - * - * do_toupper() is a hook for a derived facet to change the behavior of - * uppercasing. do_toupper() must always return the same result for - * the same input. - * - * @param __lo Pointer to start of range. - * @param __hi Pointer to end of range. - * @return @a __hi. - */ - virtual const char_type* - do_toupper(char_type* __lo, const char_type* __hi) const = 0; - - /** - * @brief Convert to lowercase. - * - * This virtual function converts the argument to lowercase if - * possible. If not possible (for example, '2'), returns the argument. - * - * do_tolower() is a hook for a derived facet to change the behavior of - * lowercasing. do_tolower() must always return the same result for - * the same input. - * - * @param __c The char_type to convert. - * @return The lowercase char_type if convertible, else @a __c. - */ - virtual char_type - do_tolower(char_type __c) const = 0; - - /** - * @brief Convert array to lowercase. - * - * This virtual function converts each char_type in the range [__lo,__hi) - * to lowercase if possible. Other elements remain untouched. - * - * do_tolower() is a hook for a derived facet to change the behavior of - * lowercasing. do_tolower() must always return the same result for - * the same input. - * - * @param __lo Pointer to start of range. - * @param __hi Pointer to end of range. - * @return @a __hi. - */ - virtual const char_type* - do_tolower(char_type* __lo, const char_type* __hi) const = 0; - - /** - * @brief Widen char - * - * This virtual function converts the char to char_type using the - * simplest reasonable transformation. - * - * do_widen() is a hook for a derived facet to change the behavior of - * widening. do_widen() must always return the same result for the - * same input. - * - * Note: this is not what you want for codepage conversions. See - * codecvt for that. - * - * @param __c The char to convert. - * @return The converted char_type - */ - virtual char_type - do_widen(char __c) const = 0; - - /** - * @brief Widen char array - * - * This function converts each char in the input to char_type using the - * simplest reasonable transformation. - * - * do_widen() is a hook for a derived facet to change the behavior of - * widening. do_widen() must always return the same result for the - * same input. - * - * Note: this is not what you want for codepage conversions. See - * codecvt for that. - * - * @param __lo Pointer to start range. - * @param __hi Pointer to end of range. - * @param __to Pointer to the destination array. - * @return @a __hi. - */ - virtual const char* - do_widen(const char* __lo, const char* __hi, char_type* __to) const = 0; - - /** - * @brief Narrow char_type to char - * - * This virtual function converts the argument to char using the - * simplest reasonable transformation. If the conversion fails, dfault - * is returned instead. - * - * do_narrow() is a hook for a derived facet to change the behavior of - * narrowing. do_narrow() must always return the same result for the - * same input. - * - * Note: this is not what you want for codepage conversions. See - * codecvt for that. - * - * @param __c The char_type to convert. - * @param __dfault Char to return if conversion fails. - * @return The converted char. - */ - virtual char - do_narrow(char_type __c, char __dfault) const = 0; - - /** - * @brief Narrow char_type array to char - * - * This virtual function converts each char_type in the range - * [__lo,__hi) to char using the simplest reasonable - * transformation and writes the results to the destination - * array. For any element in the input that cannot be - * converted, @a __dfault is used instead. - * - * do_narrow() is a hook for a derived facet to change the behavior of - * narrowing. do_narrow() must always return the same result for the - * same input. - * - * Note: this is not what you want for codepage conversions. See - * codecvt for that. - * - * @param __lo Pointer to start of range. - * @param __hi Pointer to end of range. - * @param __dfault Char to use if conversion fails. - * @param __to Pointer to the destination array. - * @return @a __hi. - */ - virtual const char_type* - do_narrow(const char_type* __lo, const char_type* __hi, - char __dfault, char* __to) const = 0; - }; - - /** - * @brief Primary class template ctype facet. - * @ingroup locales - * - * This template class defines classification and conversion functions for - * character sets. It wraps cctype functionality. Ctype gets used by - * streams for many I/O operations. - * - * This template provides the protected virtual functions the developer - * will have to replace in a derived class or specialization to make a - * working facet. The public functions that access them are defined in - * __ctype_abstract_base, to allow for implementation flexibility. See - * ctype for an example. The functions are documented in - * __ctype_abstract_base. - * - * Note: implementations are provided for all the protected virtual - * functions, but will likely not be useful. - */ - template - class ctype : public __ctype_abstract_base<_CharT> - { - public: - // Types: - typedef _CharT char_type; - typedef typename __ctype_abstract_base<_CharT>::mask mask; - - /// The facet id for ctype - static locale::id id; - - explicit - ctype(size_t __refs = 0) : __ctype_abstract_base<_CharT>(__refs) { } - - protected: - virtual - ~ctype(); - - virtual bool - do_is(mask __m, char_type __c) const; - - virtual const char_type* - do_is(const char_type* __lo, const char_type* __hi, mask* __vec) const; - - virtual const char_type* - do_scan_is(mask __m, const char_type* __lo, const char_type* __hi) const; - - virtual const char_type* - do_scan_not(mask __m, const char_type* __lo, - const char_type* __hi) const; - - virtual char_type - do_toupper(char_type __c) const; - - virtual const char_type* - do_toupper(char_type* __lo, const char_type* __hi) const; - - virtual char_type - do_tolower(char_type __c) const; - - virtual const char_type* - do_tolower(char_type* __lo, const char_type* __hi) const; - - virtual char_type - do_widen(char __c) const; - - virtual const char* - do_widen(const char* __lo, const char* __hi, char_type* __dest) const; - - virtual char - do_narrow(char_type, char __dfault) const; - - virtual const char_type* - do_narrow(const char_type* __lo, const char_type* __hi, - char __dfault, char* __to) const; - }; - - template - locale::id ctype<_CharT>::id; - - // Incomplete to provide a compile time diagnostics for common misuse - // of [locale.convenience] functions with basic_string as a character type. - template - class ctype >; - - /** - * @brief The ctype specialization. - * @ingroup locales - * - * This class defines classification and conversion functions for - * the char type. It gets used by char streams for many I/O - * operations. The char specialization provides a number of - * optimizations as well. - */ - template<> - class ctype : public locale::facet, public ctype_base - { - public: - // Types: - /// Typedef for the template parameter char. - typedef char char_type; - - protected: - // Data Members: - __c_locale _M_c_locale_ctype; - bool _M_del; - __to_type _M_toupper; - __to_type _M_tolower; - const mask* _M_table; - mutable char _M_widen_ok; - mutable char _M_widen[1 + static_cast(-1)]; - mutable char _M_narrow[1 + static_cast(-1)]; - mutable char _M_narrow_ok; // 0 uninitialized, 1 init, - // 2 memcpy can't be used - - public: - /// The facet id for ctype - static locale::id id; - /// The size of the mask table. It is SCHAR_MAX + 1. - static const size_t table_size = 1 + static_cast(-1); - - /** - * @brief Constructor performs initialization. - * - * This is the constructor provided by the standard. - * - * @param __table If non-zero, table is used as the per-char mask. - * Else classic_table() is used. - * @param __del If true, passes ownership of table to this facet. - * @param __refs Passed to the base facet class. - */ - explicit - ctype(const mask* __table = 0, bool __del = false, size_t __refs = 0); - - /** - * @brief Constructor performs static initialization. - * - * This constructor is used to construct the initial C locale facet. - * - * @param __cloc Handle to C locale data. - * @param __table If non-zero, table is used as the per-char mask. - * @param __del If true, passes ownership of table to this facet. - * @param __refs Passed to the base facet class. - */ - explicit - ctype(__c_locale __cloc, const mask* __table = 0, bool __del = false, - size_t __refs = 0); - - /** - * @brief Test char classification. - * - * This function compares the mask table[c] to @a __m. - * - * @param __c The char to compare the mask of. - * @param __m The mask to compare against. - * @return True if __m & table[__c] is true, false otherwise. - */ - inline bool - is(mask __m, char __c) const; - - /** - * @brief Return a mask array. - * - * This function finds the mask for each char in the range [lo, hi) and - * successively writes it to vec. vec must have as many elements as - * the char array. - * - * @param __lo Pointer to start of range. - * @param __hi Pointer to end of range. - * @param __vec Pointer to an array of mask storage. - * @return @a __hi. - */ - inline const char* - is(const char* __lo, const char* __hi, mask* __vec) const; - - /** - * @brief Find char matching a mask - * - * This function searches for and returns the first char in [lo,hi) for - * which is(m,char) is true. - * - * @param __m The mask to compare against. - * @param __lo Pointer to start of range. - * @param __hi Pointer to end of range. - * @return Pointer to a matching char if found, else @a __hi. - */ - inline const char* - scan_is(mask __m, const char* __lo, const char* __hi) const; - - /** - * @brief Find char not matching a mask - * - * This function searches for and returns a pointer to the first char - * in [__lo,__hi) for which is(m,char) is false. - * - * @param __m The mask to compare against. - * @param __lo Pointer to start of range. - * @param __hi Pointer to end of range. - * @return Pointer to a non-matching char if found, else @a __hi. - */ - inline const char* - scan_not(mask __m, const char* __lo, const char* __hi) const; - - /** - * @brief Convert to uppercase. - * - * This function converts the char argument to uppercase if possible. - * If not possible (for example, '2'), returns the argument. - * - * toupper() acts as if it returns ctype::do_toupper(c). - * do_toupper() must always return the same result for the same input. - * - * @param __c The char to convert. - * @return The uppercase char if convertible, else @a __c. - */ - char_type - toupper(char_type __c) const - { return this->do_toupper(__c); } - - /** - * @brief Convert array to uppercase. - * - * This function converts each char in the range [__lo,__hi) to uppercase - * if possible. Other chars remain untouched. - * - * toupper() acts as if it returns ctype:: do_toupper(__lo, __hi). - * do_toupper() must always return the same result for the same input. - * - * @param __lo Pointer to first char in range. - * @param __hi Pointer to end of range. - * @return @a __hi. - */ - const char_type* - toupper(char_type *__lo, const char_type* __hi) const - { return this->do_toupper(__lo, __hi); } - - /** - * @brief Convert to lowercase. - * - * This function converts the char argument to lowercase if possible. - * If not possible (for example, '2'), returns the argument. - * - * tolower() acts as if it returns ctype::do_tolower(__c). - * do_tolower() must always return the same result for the same input. - * - * @param __c The char to convert. - * @return The lowercase char if convertible, else @a __c. - */ - char_type - tolower(char_type __c) const - { return this->do_tolower(__c); } - - /** - * @brief Convert array to lowercase. - * - * This function converts each char in the range [lo,hi) to lowercase - * if possible. Other chars remain untouched. - * - * tolower() acts as if it returns ctype:: do_tolower(__lo, __hi). - * do_tolower() must always return the same result for the same input. - * - * @param __lo Pointer to first char in range. - * @param __hi Pointer to end of range. - * @return @a __hi. - */ - const char_type* - tolower(char_type* __lo, const char_type* __hi) const - { return this->do_tolower(__lo, __hi); } - - /** - * @brief Widen char - * - * This function converts the char to char_type using the simplest - * reasonable transformation. For an underived ctype facet, the - * argument will be returned unchanged. - * - * This function works as if it returns ctype::do_widen(c). - * do_widen() must always return the same result for the same input. - * - * Note: this is not what you want for codepage conversions. See - * codecvt for that. - * - * @param __c The char to convert. - * @return The converted character. - */ - char_type - widen(char __c) const - { - if (_M_widen_ok) - return _M_widen[static_cast(__c)]; - this->_M_widen_init(); - return this->do_widen(__c); - } - - /** - * @brief Widen char array - * - * This function converts each char in the input to char using the - * simplest reasonable transformation. For an underived ctype - * facet, the argument will be copied unchanged. - * - * This function works as if it returns ctype::do_widen(c). - * do_widen() must always return the same result for the same input. - * - * Note: this is not what you want for codepage conversions. See - * codecvt for that. - * - * @param __lo Pointer to first char in range. - * @param __hi Pointer to end of range. - * @param __to Pointer to the destination array. - * @return @a __hi. - */ - const char* - widen(const char* __lo, const char* __hi, char_type* __to) const - { - if (_M_widen_ok == 1) - { - if (__builtin_expect(__hi != __lo, true)) - __builtin_memcpy(__to, __lo, __hi - __lo); - return __hi; - } - if (!_M_widen_ok) - _M_widen_init(); - return this->do_widen(__lo, __hi, __to); - } - - /** - * @brief Narrow char - * - * This function converts the char to char using the simplest - * reasonable transformation. If the conversion fails, dfault is - * returned instead. For an underived ctype facet, @a c - * will be returned unchanged. - * - * This function works as if it returns ctype::do_narrow(c). - * do_narrow() must always return the same result for the same input. - * - * Note: this is not what you want for codepage conversions. See - * codecvt for that. - * - * @param __c The char to convert. - * @param __dfault Char to return if conversion fails. - * @return The converted character. - */ - char - narrow(char_type __c, char __dfault) const - { - if (_M_narrow[static_cast(__c)]) - return _M_narrow[static_cast(__c)]; - const char __t = do_narrow(__c, __dfault); - if (__t != __dfault) - _M_narrow[static_cast(__c)] = __t; - return __t; - } - - /** - * @brief Narrow char array - * - * This function converts each char in the input to char using the - * simplest reasonable transformation and writes the results to the - * destination array. For any char in the input that cannot be - * converted, @a dfault is used instead. For an underived ctype - * facet, the argument will be copied unchanged. - * - * This function works as if it returns ctype::do_narrow(lo, hi, - * dfault, to). do_narrow() must always return the same result for the - * same input. - * - * Note: this is not what you want for codepage conversions. See - * codecvt for that. - * - * @param __lo Pointer to start of range. - * @param __hi Pointer to end of range. - * @param __dfault Char to use if conversion fails. - * @param __to Pointer to the destination array. - * @return @a __hi. - */ - const char_type* - narrow(const char_type* __lo, const char_type* __hi, - char __dfault, char* __to) const - { - if (__builtin_expect(_M_narrow_ok == 1, true)) - { - if (__builtin_expect(__hi != __lo, true)) - __builtin_memcpy(__to, __lo, __hi - __lo); - return __hi; - } - if (!_M_narrow_ok) - _M_narrow_init(); - return this->do_narrow(__lo, __hi, __dfault, __to); - } - - // _GLIBCXX_RESOLVE_LIB_DEFECTS - // DR 695. ctype::classic_table() not accessible. - /// Returns a pointer to the mask table provided to the constructor, or - /// the default from classic_table() if none was provided. - const mask* - table() const throw() - { return _M_table; } - - /// Returns a pointer to the C locale mask table. - static const mask* - classic_table() throw(); - protected: - - /** - * @brief Destructor. - * - * This function deletes table() if @a del was true in the - * constructor. - */ - virtual - ~ctype(); - - /** - * @brief Convert to uppercase. - * - * This virtual function converts the char argument to uppercase if - * possible. If not possible (for example, '2'), returns the argument. - * - * do_toupper() is a hook for a derived facet to change the behavior of - * uppercasing. do_toupper() must always return the same result for - * the same input. - * - * @param __c The char to convert. - * @return The uppercase char if convertible, else @a __c. - */ - virtual char_type - do_toupper(char_type __c) const; - - /** - * @brief Convert array to uppercase. - * - * This virtual function converts each char in the range [lo,hi) to - * uppercase if possible. Other chars remain untouched. - * - * do_toupper() is a hook for a derived facet to change the behavior of - * uppercasing. do_toupper() must always return the same result for - * the same input. - * - * @param __lo Pointer to start of range. - * @param __hi Pointer to end of range. - * @return @a __hi. - */ - virtual const char_type* - do_toupper(char_type* __lo, const char_type* __hi) const; - - /** - * @brief Convert to lowercase. - * - * This virtual function converts the char argument to lowercase if - * possible. If not possible (for example, '2'), returns the argument. - * - * do_tolower() is a hook for a derived facet to change the behavior of - * lowercasing. do_tolower() must always return the same result for - * the same input. - * - * @param __c The char to convert. - * @return The lowercase char if convertible, else @a __c. - */ - virtual char_type - do_tolower(char_type __c) const; - - /** - * @brief Convert array to lowercase. - * - * This virtual function converts each char in the range [lo,hi) to - * lowercase if possible. Other chars remain untouched. - * - * do_tolower() is a hook for a derived facet to change the behavior of - * lowercasing. do_tolower() must always return the same result for - * the same input. - * - * @param __lo Pointer to first char in range. - * @param __hi Pointer to end of range. - * @return @a __hi. - */ - virtual const char_type* - do_tolower(char_type* __lo, const char_type* __hi) const; - - /** - * @brief Widen char - * - * This virtual function converts the char to char using the simplest - * reasonable transformation. For an underived ctype facet, the - * argument will be returned unchanged. - * - * do_widen() is a hook for a derived facet to change the behavior of - * widening. do_widen() must always return the same result for the - * same input. - * - * Note: this is not what you want for codepage conversions. See - * codecvt for that. - * - * @param __c The char to convert. - * @return The converted character. - */ - virtual char_type - do_widen(char __c) const - { return __c; } - - /** - * @brief Widen char array - * - * This function converts each char in the range [lo,hi) to char using - * the simplest reasonable transformation. For an underived - * ctype facet, the argument will be copied unchanged. - * - * do_widen() is a hook for a derived facet to change the behavior of - * widening. do_widen() must always return the same result for the - * same input. - * - * Note: this is not what you want for codepage conversions. See - * codecvt for that. - * - * @param __lo Pointer to start of range. - * @param __hi Pointer to end of range. - * @param __to Pointer to the destination array. - * @return @a __hi. - */ - virtual const char* - do_widen(const char* __lo, const char* __hi, char_type* __to) const - { - if (__builtin_expect(__hi != __lo, true)) - __builtin_memcpy(__to, __lo, __hi - __lo); - return __hi; - } - - /** - * @brief Narrow char - * - * This virtual function converts the char to char using the simplest - * reasonable transformation. If the conversion fails, dfault is - * returned instead. For an underived ctype facet, @a c will be - * returned unchanged. - * - * do_narrow() is a hook for a derived facet to change the behavior of - * narrowing. do_narrow() must always return the same result for the - * same input. - * - * Note: this is not what you want for codepage conversions. See - * codecvt for that. - * - * @param __c The char to convert. - * @param __dfault Char to return if conversion fails. - * @return The converted char. - */ - virtual char - do_narrow(char_type __c, char __dfault __attribute__((__unused__))) const - { return __c; } - - /** - * @brief Narrow char array to char array - * - * This virtual function converts each char in the range [lo,hi) to - * char using the simplest reasonable transformation and writes the - * results to the destination array. For any char in the input that - * cannot be converted, @a dfault is used instead. For an underived - * ctype facet, the argument will be copied unchanged. - * - * do_narrow() is a hook for a derived facet to change the behavior of - * narrowing. do_narrow() must always return the same result for the - * same input. - * - * Note: this is not what you want for codepage conversions. See - * codecvt for that. - * - * @param __lo Pointer to start of range. - * @param __hi Pointer to end of range. - * @param __dfault Char to use if conversion fails. - * @param __to Pointer to the destination array. - * @return @a __hi. - */ - virtual const char_type* - do_narrow(const char_type* __lo, const char_type* __hi, - char __dfault __attribute__((__unused__)), char* __to) const - { - if (__builtin_expect(__hi != __lo, true)) - __builtin_memcpy(__to, __lo, __hi - __lo); - return __hi; - } - - private: - void _M_narrow_init() const; - void _M_widen_init() const; - }; - -#ifdef _GLIBCXX_USE_WCHAR_T - /** - * @brief The ctype specialization. - * @ingroup locales - * - * This class defines classification and conversion functions for the - * wchar_t type. It gets used by wchar_t streams for many I/O operations. - * The wchar_t specialization provides a number of optimizations as well. - * - * ctype inherits its public methods from - * __ctype_abstract_base. - */ - template<> - class ctype : public __ctype_abstract_base - { - public: - // Types: - /// Typedef for the template parameter wchar_t. - typedef wchar_t char_type; - typedef wctype_t __wmask_type; - - protected: - __c_locale _M_c_locale_ctype; - - // Pre-computed narrowed and widened chars. - bool _M_narrow_ok; - char _M_narrow[128]; - wint_t _M_widen[1 + static_cast(-1)]; - - // Pre-computed elements for do_is. - mask _M_bit[16]; - __wmask_type _M_wmask[16]; - - public: - // Data Members: - /// The facet id for ctype - static locale::id id; - - /** - * @brief Constructor performs initialization. - * - * This is the constructor provided by the standard. - * - * @param __refs Passed to the base facet class. - */ - explicit - ctype(size_t __refs = 0); - - /** - * @brief Constructor performs static initialization. - * - * This constructor is used to construct the initial C locale facet. - * - * @param __cloc Handle to C locale data. - * @param __refs Passed to the base facet class. - */ - explicit - ctype(__c_locale __cloc, size_t __refs = 0); - - protected: - __wmask_type - _M_convert_to_wmask(const mask __m) const throw(); - - /// Destructor - virtual - ~ctype(); - - /** - * @brief Test wchar_t classification. - * - * This function finds a mask M for @a c and compares it to mask @a m. - * - * do_is() is a hook for a derived facet to change the behavior of - * classifying. do_is() must always return the same result for the - * same input. - * - * @param __c The wchar_t to find the mask of. - * @param __m The mask to compare against. - * @return (M & __m) != 0. - */ - virtual bool - do_is(mask __m, char_type __c) const; - - /** - * @brief Return a mask array. - * - * This function finds the mask for each wchar_t in the range [lo,hi) - * and successively writes it to vec. vec must have as many elements - * as the input. - * - * do_is() is a hook for a derived facet to change the behavior of - * classifying. do_is() must always return the same result for the - * same input. - * - * @param __lo Pointer to start of range. - * @param __hi Pointer to end of range. - * @param __vec Pointer to an array of mask storage. - * @return @a __hi. - */ - virtual const char_type* - do_is(const char_type* __lo, const char_type* __hi, mask* __vec) const; - - /** - * @brief Find wchar_t matching mask - * - * This function searches for and returns the first wchar_t c in - * [__lo,__hi) for which is(__m,c) is true. - * - * do_scan_is() is a hook for a derived facet to change the behavior of - * match searching. do_is() must always return the same result for the - * same input. - * - * @param __m The mask to compare against. - * @param __lo Pointer to start of range. - * @param __hi Pointer to end of range. - * @return Pointer to a matching wchar_t if found, else @a __hi. - */ - virtual const char_type* - do_scan_is(mask __m, const char_type* __lo, const char_type* __hi) const; - - /** - * @brief Find wchar_t not matching mask - * - * This function searches for and returns a pointer to the first - * wchar_t c of [__lo,__hi) for which is(__m,c) is false. - * - * do_scan_is() is a hook for a derived facet to change the behavior of - * match searching. do_is() must always return the same result for the - * same input. - * - * @param __m The mask to compare against. - * @param __lo Pointer to start of range. - * @param __hi Pointer to end of range. - * @return Pointer to a non-matching wchar_t if found, else @a __hi. - */ - virtual const char_type* - do_scan_not(mask __m, const char_type* __lo, - const char_type* __hi) const; - - /** - * @brief Convert to uppercase. - * - * This virtual function converts the wchar_t argument to uppercase if - * possible. If not possible (for example, '2'), returns the argument. - * - * do_toupper() is a hook for a derived facet to change the behavior of - * uppercasing. do_toupper() must always return the same result for - * the same input. - * - * @param __c The wchar_t to convert. - * @return The uppercase wchar_t if convertible, else @a __c. - */ - virtual char_type - do_toupper(char_type __c) const; - - /** - * @brief Convert array to uppercase. - * - * This virtual function converts each wchar_t in the range [lo,hi) to - * uppercase if possible. Other elements remain untouched. - * - * do_toupper() is a hook for a derived facet to change the behavior of - * uppercasing. do_toupper() must always return the same result for - * the same input. - * - * @param __lo Pointer to start of range. - * @param __hi Pointer to end of range. - * @return @a __hi. - */ - virtual const char_type* - do_toupper(char_type* __lo, const char_type* __hi) const; - - /** - * @brief Convert to lowercase. - * - * This virtual function converts the argument to lowercase if - * possible. If not possible (for example, '2'), returns the argument. - * - * do_tolower() is a hook for a derived facet to change the behavior of - * lowercasing. do_tolower() must always return the same result for - * the same input. - * - * @param __c The wchar_t to convert. - * @return The lowercase wchar_t if convertible, else @a __c. - */ - virtual char_type - do_tolower(char_type __c) const; - - /** - * @brief Convert array to lowercase. - * - * This virtual function converts each wchar_t in the range [lo,hi) to - * lowercase if possible. Other elements remain untouched. - * - * do_tolower() is a hook for a derived facet to change the behavior of - * lowercasing. do_tolower() must always return the same result for - * the same input. - * - * @param __lo Pointer to start of range. - * @param __hi Pointer to end of range. - * @return @a __hi. - */ - virtual const char_type* - do_tolower(char_type* __lo, const char_type* __hi) const; - - /** - * @brief Widen char to wchar_t - * - * This virtual function converts the char to wchar_t using the - * simplest reasonable transformation. For an underived ctype - * facet, the argument will be cast to wchar_t. - * - * do_widen() is a hook for a derived facet to change the behavior of - * widening. do_widen() must always return the same result for the - * same input. - * - * Note: this is not what you want for codepage conversions. See - * codecvt for that. - * - * @param __c The char to convert. - * @return The converted wchar_t. - */ - virtual char_type - do_widen(char __c) const; - - /** - * @brief Widen char array to wchar_t array - * - * This function converts each char in the input to wchar_t using the - * simplest reasonable transformation. For an underived ctype - * facet, the argument will be copied, casting each element to wchar_t. - * - * do_widen() is a hook for a derived facet to change the behavior of - * widening. do_widen() must always return the same result for the - * same input. - * - * Note: this is not what you want for codepage conversions. See - * codecvt for that. - * - * @param __lo Pointer to start range. - * @param __hi Pointer to end of range. - * @param __to Pointer to the destination array. - * @return @a __hi. - */ - virtual const char* - do_widen(const char* __lo, const char* __hi, char_type* __to) const; - - /** - * @brief Narrow wchar_t to char - * - * This virtual function converts the argument to char using - * the simplest reasonable transformation. If the conversion - * fails, dfault is returned instead. For an underived - * ctype facet, @a c will be cast to char and - * returned. - * - * do_narrow() is a hook for a derived facet to change the - * behavior of narrowing. do_narrow() must always return the - * same result for the same input. - * - * Note: this is not what you want for codepage conversions. See - * codecvt for that. - * - * @param __c The wchar_t to convert. - * @param __dfault Char to return if conversion fails. - * @return The converted char. - */ - virtual char - do_narrow(char_type __c, char __dfault) const; - - /** - * @brief Narrow wchar_t array to char array - * - * This virtual function converts each wchar_t in the range [lo,hi) to - * char using the simplest reasonable transformation and writes the - * results to the destination array. For any wchar_t in the input that - * cannot be converted, @a dfault is used instead. For an underived - * ctype facet, the argument will be copied, casting each - * element to char. - * - * do_narrow() is a hook for a derived facet to change the behavior of - * narrowing. do_narrow() must always return the same result for the - * same input. - * - * Note: this is not what you want for codepage conversions. See - * codecvt for that. - * - * @param __lo Pointer to start of range. - * @param __hi Pointer to end of range. - * @param __dfault Char to use if conversion fails. - * @param __to Pointer to the destination array. - * @return @a __hi. - */ - virtual const char_type* - do_narrow(const char_type* __lo, const char_type* __hi, - char __dfault, char* __to) const; - - // For use at construction time only. - void - _M_initialize_ctype() throw(); - }; -#endif //_GLIBCXX_USE_WCHAR_T - - /// class ctype_byname [22.2.1.2]. - template - class ctype_byname : public ctype<_CharT> - { - public: - typedef typename ctype<_CharT>::mask mask; - - explicit - ctype_byname(const char* __s, size_t __refs = 0); - -#if __cplusplus >= 201103L - explicit - ctype_byname(const string& __s, size_t __refs = 0) - : ctype_byname(__s.c_str(), __refs) { } -#endif - - protected: - virtual - ~ctype_byname() { } - }; - - /// 22.2.1.4 Class ctype_byname specializations. - template<> - class ctype_byname : public ctype - { - public: - explicit - ctype_byname(const char* __s, size_t __refs = 0); - -#if __cplusplus >= 201103L - explicit - ctype_byname(const string& __s, size_t __refs = 0); -#endif - - protected: - virtual - ~ctype_byname(); - }; - -#ifdef _GLIBCXX_USE_WCHAR_T - template<> - class ctype_byname : public ctype - { - public: - explicit - ctype_byname(const char* __s, size_t __refs = 0); - -#if __cplusplus >= 201103L - explicit - ctype_byname(const string& __s, size_t __refs = 0); -#endif - - protected: - virtual - ~ctype_byname(); - }; -#endif - -_GLIBCXX_END_NAMESPACE_VERSION -} // namespace - -// Include host and configuration specific ctype inlines. -#include - -namespace std _GLIBCXX_VISIBILITY(default) -{ -_GLIBCXX_BEGIN_NAMESPACE_VERSION - - // 22.2.2 The numeric category. - class __num_base - { - public: - // NB: Code depends on the order of _S_atoms_out elements. - // Below are the indices into _S_atoms_out. - enum - { - _S_ominus, - _S_oplus, - _S_ox, - _S_oX, - _S_odigits, - _S_odigits_end = _S_odigits + 16, - _S_oudigits = _S_odigits_end, - _S_oudigits_end = _S_oudigits + 16, - _S_oe = _S_odigits + 14, // For scientific notation, 'e' - _S_oE = _S_oudigits + 14, // For scientific notation, 'E' - _S_oend = _S_oudigits_end - }; - - // A list of valid numeric literals for output. This array - // contains chars that will be passed through the current locale's - // ctype<_CharT>.widen() and then used to render numbers. - // For the standard "C" locale, this is - // "-+xX0123456789abcdef0123456789ABCDEF". - static const char* _S_atoms_out; - - // String literal of acceptable (narrow) input, for num_get. - // "-+xX0123456789abcdefABCDEF" - static const char* _S_atoms_in; - - enum - { - _S_iminus, - _S_iplus, - _S_ix, - _S_iX, - _S_izero, - _S_ie = _S_izero + 14, - _S_iE = _S_izero + 20, - _S_iend = 26 - }; - - // num_put - // Construct and return valid scanf format for floating point types. - static void - _S_format_float(const ios_base& __io, char* __fptr, char __mod) throw(); - }; - - template - struct __numpunct_cache : public locale::facet - { - const char* _M_grouping; - size_t _M_grouping_size; - bool _M_use_grouping; - const _CharT* _M_truename; - size_t _M_truename_size; - const _CharT* _M_falsename; - size_t _M_falsename_size; - _CharT _M_decimal_point; - _CharT _M_thousands_sep; - - // A list of valid numeric literals for output: in the standard - // "C" locale, this is "-+xX0123456789abcdef0123456789ABCDEF". - // This array contains the chars after having been passed - // through the current locale's ctype<_CharT>.widen(). - _CharT _M_atoms_out[__num_base::_S_oend]; - - // A list of valid numeric literals for input: in the standard - // "C" locale, this is "-+xX0123456789abcdefABCDEF" - // This array contains the chars after having been passed - // through the current locale's ctype<_CharT>.widen(). - _CharT _M_atoms_in[__num_base::_S_iend]; - - bool _M_allocated; - - __numpunct_cache(size_t __refs = 0) - : facet(__refs), _M_grouping(0), _M_grouping_size(0), - _M_use_grouping(false), - _M_truename(0), _M_truename_size(0), _M_falsename(0), - _M_falsename_size(0), _M_decimal_point(_CharT()), - _M_thousands_sep(_CharT()), _M_allocated(false) - { } - - ~__numpunct_cache(); - - void - _M_cache(const locale& __loc); - - private: - __numpunct_cache& - operator=(const __numpunct_cache&); - - explicit - __numpunct_cache(const __numpunct_cache&); - }; - - template - __numpunct_cache<_CharT>::~__numpunct_cache() - { - if (_M_allocated) - { - delete [] _M_grouping; - delete [] _M_truename; - delete [] _M_falsename; - } - } - -_GLIBCXX_BEGIN_NAMESPACE_CXX11 - - /** - * @brief Primary class template numpunct. - * @ingroup locales - * - * This facet stores several pieces of information related to printing and - * scanning numbers, such as the decimal point character. It takes a - * template parameter specifying the char type. The numpunct facet is - * used by streams for many I/O operations involving numbers. - * - * The numpunct template uses protected virtual functions to provide the - * actual results. The public accessors forward the call to the virtual - * functions. These virtual functions are hooks for developers to - * implement the behavior they require from a numpunct facet. - */ - template - class numpunct : public locale::facet - { - public: - // Types: - ///@{ - /// Public typedefs - typedef _CharT char_type; - typedef basic_string<_CharT> string_type; - ///@} - typedef __numpunct_cache<_CharT> __cache_type; - - protected: - __cache_type* _M_data; - - public: - /// Numpunct facet id. - static locale::id id; - - /** - * @brief Numpunct constructor. - * - * @param __refs Refcount to pass to the base class. - */ - explicit - numpunct(size_t __refs = 0) - : facet(__refs), _M_data(0) - { _M_initialize_numpunct(); } - - /** - * @brief Internal constructor. Not for general use. - * - * This is a constructor for use by the library itself to set up the - * predefined locale facets. - * - * @param __cache __numpunct_cache object. - * @param __refs Refcount to pass to the base class. - */ - explicit - numpunct(__cache_type* __cache, size_t __refs = 0) - : facet(__refs), _M_data(__cache) - { _M_initialize_numpunct(); } - - /** - * @brief Internal constructor. Not for general use. - * - * This is a constructor for use by the library itself to set up new - * locales. - * - * @param __cloc The C locale. - * @param __refs Refcount to pass to the base class. - */ - explicit - numpunct(__c_locale __cloc, size_t __refs = 0) - : facet(__refs), _M_data(0) - { _M_initialize_numpunct(__cloc); } - - /** - * @brief Return decimal point character. - * - * This function returns a char_type to use as a decimal point. It - * does so by returning returning - * numpunct::do_decimal_point(). - * - * @return @a char_type representing a decimal point. - */ - char_type - decimal_point() const - { return this->do_decimal_point(); } - - /** - * @brief Return thousands separator character. - * - * This function returns a char_type to use as a thousands - * separator. It does so by returning returning - * numpunct::do_thousands_sep(). - * - * @return char_type representing a thousands separator. - */ - char_type - thousands_sep() const - { return this->do_thousands_sep(); } - - /** - * @brief Return grouping specification. - * - * This function returns a string representing groupings for the - * integer part of a number. Groupings indicate where thousands - * separators should be inserted in the integer part of a number. - * - * Each char in the return string is interpret as an integer - * rather than a character. These numbers represent the number - * of digits in a group. The first char in the string - * represents the number of digits in the least significant - * group. If a char is negative, it indicates an unlimited - * number of digits for the group. If more chars from the - * string are required to group a number, the last char is used - * repeatedly. - * - * For example, if the grouping() returns "\003\002" and is - * applied to the number 123456789, this corresponds to - * 12,34,56,789. Note that if the string was "32", this would - * put more than 50 digits into the least significant group if - * the character set is ASCII. - * - * The string is returned by calling - * numpunct::do_grouping(). - * - * @return string representing grouping specification. - */ - string - grouping() const - { return this->do_grouping(); } - - /** - * @brief Return string representation of bool true. - * - * This function returns a string_type containing the text - * representation for true bool variables. It does so by calling - * numpunct::do_truename(). - * - * @return string_type representing printed form of true. - */ - string_type - truename() const - { return this->do_truename(); } - - /** - * @brief Return string representation of bool false. - * - * This function returns a string_type containing the text - * representation for false bool variables. It does so by calling - * numpunct::do_falsename(). - * - * @return string_type representing printed form of false. - */ - string_type - falsename() const - { return this->do_falsename(); } - - protected: - /// Destructor. - virtual - ~numpunct(); - - /** - * @brief Return decimal point character. - * - * Returns a char_type to use as a decimal point. This function is a - * hook for derived classes to change the value returned. - * - * @return @a char_type representing a decimal point. - */ - virtual char_type - do_decimal_point() const - { return _M_data->_M_decimal_point; } - - /** - * @brief Return thousands separator character. - * - * Returns a char_type to use as a thousands separator. This function - * is a hook for derived classes to change the value returned. - * - * @return @a char_type representing a thousands separator. - */ - virtual char_type - do_thousands_sep() const - { return _M_data->_M_thousands_sep; } - - /** - * @brief Return grouping specification. - * - * Returns a string representing groupings for the integer part of a - * number. This function is a hook for derived classes to change the - * value returned. @see grouping() for details. - * - * @return String representing grouping specification. - */ - virtual string - do_grouping() const - { return _M_data->_M_grouping; } - - /** - * @brief Return string representation of bool true. - * - * Returns a string_type containing the text representation for true - * bool variables. This function is a hook for derived classes to - * change the value returned. - * - * @return string_type representing printed form of true. - */ - virtual string_type - do_truename() const - { return _M_data->_M_truename; } - - /** - * @brief Return string representation of bool false. - * - * Returns a string_type containing the text representation for false - * bool variables. This function is a hook for derived classes to - * change the value returned. - * - * @return string_type representing printed form of false. - */ - virtual string_type - do_falsename() const - { return _M_data->_M_falsename; } - - // For use at construction time only. - void - _M_initialize_numpunct(__c_locale __cloc = 0); - }; - - template - locale::id numpunct<_CharT>::id; - - template<> - numpunct::~numpunct(); - - template<> - void - numpunct::_M_initialize_numpunct(__c_locale __cloc); - -#ifdef _GLIBCXX_USE_WCHAR_T - template<> - numpunct::~numpunct(); - - template<> - void - numpunct::_M_initialize_numpunct(__c_locale __cloc); -#endif - - /// class numpunct_byname [22.2.3.2]. - template - class numpunct_byname : public numpunct<_CharT> - { - public: - typedef _CharT char_type; - typedef basic_string<_CharT> string_type; - - explicit - numpunct_byname(const char* __s, size_t __refs = 0) - : numpunct<_CharT>(__refs) - { - if (__builtin_strcmp(__s, "C") != 0 - && __builtin_strcmp(__s, "POSIX") != 0) - { - __c_locale __tmp; - this->_S_create_c_locale(__tmp, __s); - this->_M_initialize_numpunct(__tmp); - this->_S_destroy_c_locale(__tmp); - } - } - -#if __cplusplus >= 201103L - explicit - numpunct_byname(const string& __s, size_t __refs = 0) - : numpunct_byname(__s.c_str(), __refs) { } -#endif - - protected: - virtual - ~numpunct_byname() { } - }; - -_GLIBCXX_END_NAMESPACE_CXX11 - -_GLIBCXX_BEGIN_NAMESPACE_LDBL - - /** - * @brief Primary class template num_get. - * @ingroup locales - * - * This facet encapsulates the code to parse and return a number - * from a string. It is used by the istream numeric extraction - * operators. - * - * The num_get template uses protected virtual functions to provide the - * actual results. The public accessors forward the call to the virtual - * functions. These virtual functions are hooks for developers to - * implement the behavior they require from the num_get facet. - */ - template - class num_get : public locale::facet - { - public: - // Types: - ///@{ - /// Public typedefs - typedef _CharT char_type; - typedef _InIter iter_type; - ///@} - - /// Numpunct facet id. - static locale::id id; - - /** - * @brief Constructor performs initialization. - * - * This is the constructor provided by the standard. - * - * @param __refs Passed to the base facet class. - */ - explicit - num_get(size_t __refs = 0) : facet(__refs) { } - - /** - * @brief Numeric parsing. - * - * Parses the input stream into the bool @a v. It does so by calling - * num_get::do_get(). - * - * If ios_base::boolalpha is set, attempts to read - * ctype::truename() or ctype::falsename(). Sets - * @a v to true or false if successful. Sets err to - * ios_base::failbit if reading the string fails. Sets err to - * ios_base::eofbit if the stream is emptied. - * - * If ios_base::boolalpha is not set, proceeds as with reading a long, - * except if the value is 1, sets @a v to true, if the value is 0, sets - * @a v to false, and otherwise set err to ios_base::failbit. - * - * @param __in Start of input stream. - * @param __end End of input stream. - * @param __io Source of locale and flags. - * @param __err Error flags to set. - * @param __v Value to format and insert. - * @return Iterator after reading. - */ - iter_type - get(iter_type __in, iter_type __end, ios_base& __io, - ios_base::iostate& __err, bool& __v) const - { return this->do_get(__in, __end, __io, __err, __v); } - - ///@{ - /** - * @brief Numeric parsing. - * - * Parses the input stream into the integral variable @a v. It does so - * by calling num_get::do_get(). - * - * Parsing is affected by the flag settings in @a io. - * - * The basic parse is affected by the value of io.flags() & - * ios_base::basefield. If equal to ios_base::oct, parses like the - * scanf %o specifier. Else if equal to ios_base::hex, parses like %X - * specifier. Else if basefield equal to 0, parses like the %i - * specifier. Otherwise, parses like %d for signed and %u for unsigned - * types. The matching type length modifier is also used. - * - * Digit grouping is interpreted according to - * numpunct::grouping() and numpunct::thousands_sep(). If the - * pattern of digit groups isn't consistent, sets err to - * ios_base::failbit. - * - * If parsing the string yields a valid value for @a v, @a v is set. - * Otherwise, sets err to ios_base::failbit and leaves @a v unaltered. - * Sets err to ios_base::eofbit if the stream is emptied. - * - * @param __in Start of input stream. - * @param __end End of input stream. - * @param __io Source of locale and flags. - * @param __err Error flags to set. - * @param __v Value to format and insert. - * @return Iterator after reading. - */ - iter_type - get(iter_type __in, iter_type __end, ios_base& __io, - ios_base::iostate& __err, long& __v) const - { return this->do_get(__in, __end, __io, __err, __v); } - - iter_type - get(iter_type __in, iter_type __end, ios_base& __io, - ios_base::iostate& __err, unsigned short& __v) const - { return this->do_get(__in, __end, __io, __err, __v); } - - iter_type - get(iter_type __in, iter_type __end, ios_base& __io, - ios_base::iostate& __err, unsigned int& __v) const - { return this->do_get(__in, __end, __io, __err, __v); } - - iter_type - get(iter_type __in, iter_type __end, ios_base& __io, - ios_base::iostate& __err, unsigned long& __v) const - { return this->do_get(__in, __end, __io, __err, __v); } - -#ifdef _GLIBCXX_USE_LONG_LONG - iter_type - get(iter_type __in, iter_type __end, ios_base& __io, - ios_base::iostate& __err, long long& __v) const - { return this->do_get(__in, __end, __io, __err, __v); } - - iter_type - get(iter_type __in, iter_type __end, ios_base& __io, - ios_base::iostate& __err, unsigned long long& __v) const - { return this->do_get(__in, __end, __io, __err, __v); } -#endif - ///@} - - ///@{ - /** - * @brief Numeric parsing. - * - * Parses the input stream into the integral variable @a v. It does so - * by calling num_get::do_get(). - * - * The input characters are parsed like the scanf %g specifier. The - * matching type length modifier is also used. - * - * The decimal point character used is numpunct::decimal_point(). - * Digit grouping is interpreted according to - * numpunct::grouping() and numpunct::thousands_sep(). If the - * pattern of digit groups isn't consistent, sets err to - * ios_base::failbit. - * - * If parsing the string yields a valid value for @a v, @a v is set. - * Otherwise, sets err to ios_base::failbit and leaves @a v unaltered. - * Sets err to ios_base::eofbit if the stream is emptied. - * - * @param __in Start of input stream. - * @param __end End of input stream. - * @param __io Source of locale and flags. - * @param __err Error flags to set. - * @param __v Value to format and insert. - * @return Iterator after reading. - */ - iter_type - get(iter_type __in, iter_type __end, ios_base& __io, - ios_base::iostate& __err, float& __v) const - { return this->do_get(__in, __end, __io, __err, __v); } - - iter_type - get(iter_type __in, iter_type __end, ios_base& __io, - ios_base::iostate& __err, double& __v) const - { return this->do_get(__in, __end, __io, __err, __v); } - - iter_type - get(iter_type __in, iter_type __end, ios_base& __io, - ios_base::iostate& __err, long double& __v) const - { return this->do_get(__in, __end, __io, __err, __v); } - ///@} - - /** - * @brief Numeric parsing. - * - * Parses the input stream into the pointer variable @a v. It does so - * by calling num_get::do_get(). - * - * The input characters are parsed like the scanf %p specifier. - * - * Digit grouping is interpreted according to - * numpunct::grouping() and numpunct::thousands_sep(). If the - * pattern of digit groups isn't consistent, sets err to - * ios_base::failbit. - * - * Note that the digit grouping effect for pointers is a bit ambiguous - * in the standard and shouldn't be relied on. See DR 344. - * - * If parsing the string yields a valid value for @a v, @a v is set. - * Otherwise, sets err to ios_base::failbit and leaves @a v unaltered. - * Sets err to ios_base::eofbit if the stream is emptied. - * - * @param __in Start of input stream. - * @param __end End of input stream. - * @param __io Source of locale and flags. - * @param __err Error flags to set. - * @param __v Value to format and insert. - * @return Iterator after reading. - */ - iter_type - get(iter_type __in, iter_type __end, ios_base& __io, - ios_base::iostate& __err, void*& __v) const - { return this->do_get(__in, __end, __io, __err, __v); } - - protected: - /// Destructor. - virtual ~num_get() { } - - _GLIBCXX_DEFAULT_ABI_TAG - iter_type - _M_extract_float(iter_type, iter_type, ios_base&, ios_base::iostate&, - string&) const; - - template - _GLIBCXX_DEFAULT_ABI_TAG - iter_type - _M_extract_int(iter_type, iter_type, ios_base&, ios_base::iostate&, - _ValueT&) const; - - template - typename __gnu_cxx::__enable_if<__is_char<_CharT2>::__value, int>::__type - _M_find(const _CharT2*, size_t __len, _CharT2 __c) const - { - int __ret = -1; - if (__len <= 10) - { - if (__c >= _CharT2('0') && __c < _CharT2(_CharT2('0') + __len)) - __ret = __c - _CharT2('0'); - } - else - { - if (__c >= _CharT2('0') && __c <= _CharT2('9')) - __ret = __c - _CharT2('0'); - else if (__c >= _CharT2('a') && __c <= _CharT2('f')) - __ret = 10 + (__c - _CharT2('a')); - else if (__c >= _CharT2('A') && __c <= _CharT2('F')) - __ret = 10 + (__c - _CharT2('A')); - } - return __ret; - } - - template - typename __gnu_cxx::__enable_if::__value, - int>::__type - _M_find(const _CharT2* __zero, size_t __len, _CharT2 __c) const - { - int __ret = -1; - const char_type* __q = char_traits<_CharT2>::find(__zero, __len, __c); - if (__q) - { - __ret = __q - __zero; - if (__ret > 15) - __ret -= 6; - } - return __ret; - } - - ///@{ - /** - * @brief Numeric parsing. - * - * Parses the input stream into the variable @a v. This function is a - * hook for derived classes to change the value returned. @see get() - * for more details. - * - * @param __beg Start of input stream. - * @param __end End of input stream. - * @param __io Source of locale and flags. - * @param __err Error flags to set. - * @param __v Value to format and insert. - * @return Iterator after reading. - */ - virtual iter_type - do_get(iter_type, iter_type, ios_base&, ios_base::iostate&, bool&) const; - - virtual iter_type - do_get(iter_type __beg, iter_type __end, ios_base& __io, - ios_base::iostate& __err, long& __v) const - { return _M_extract_int(__beg, __end, __io, __err, __v); } - - virtual iter_type - do_get(iter_type __beg, iter_type __end, ios_base& __io, - ios_base::iostate& __err, unsigned short& __v) const - { return _M_extract_int(__beg, __end, __io, __err, __v); } - - virtual iter_type - do_get(iter_type __beg, iter_type __end, ios_base& __io, - ios_base::iostate& __err, unsigned int& __v) const - { return _M_extract_int(__beg, __end, __io, __err, __v); } - - virtual iter_type - do_get(iter_type __beg, iter_type __end, ios_base& __io, - ios_base::iostate& __err, unsigned long& __v) const - { return _M_extract_int(__beg, __end, __io, __err, __v); } - -#ifdef _GLIBCXX_USE_LONG_LONG - virtual iter_type - do_get(iter_type __beg, iter_type __end, ios_base& __io, - ios_base::iostate& __err, long long& __v) const - { return _M_extract_int(__beg, __end, __io, __err, __v); } - - virtual iter_type - do_get(iter_type __beg, iter_type __end, ios_base& __io, - ios_base::iostate& __err, unsigned long long& __v) const - { return _M_extract_int(__beg, __end, __io, __err, __v); } -#endif - - virtual iter_type - do_get(iter_type, iter_type, ios_base&, ios_base::iostate&, float&) const; - - virtual iter_type - do_get(iter_type, iter_type, ios_base&, ios_base::iostate&, - double&) const; - - // XXX GLIBCXX_ABI Deprecated -#if defined _GLIBCXX_LONG_DOUBLE_COMPAT && defined __LONG_DOUBLE_128__ - // For __gnu_cxx_ldbl128::num_get and __gnu_cxx_ieee128::num_get - // this entry in the vtable is for a 64-bit "long double" with the - // same format as double. This keeps the vtable layout consistent - // with std::num_get (visible when -mlong-double-64 is used). - virtual iter_type - __do_get(iter_type, iter_type, ios_base&, ios_base::iostate&, - double&) const; -#else - virtual iter_type - do_get(iter_type, iter_type, ios_base&, ios_base::iostate&, - long double&) const; -#endif - - virtual iter_type - do_get(iter_type, iter_type, ios_base&, ios_base::iostate&, void*&) const; - - // XXX GLIBCXX_ABI Deprecated -#if defined _GLIBCXX_LONG_DOUBLE_ALT128_COMPAT \ - && defined __LONG_DOUBLE_IEEE128__ - // For __gnu_cxx_ieee128::num_get this entry in the vtable is for - // the non-IEEE 128-bit "long double" (aka "double double"). This - // is consistent with __gnu_cxx_ldbl128::num_get (-mabi=ibmlongdouble) - virtual iter_type - __do_get(iter_type, iter_type, ios_base&, ios_base::iostate&, - __ibm128&) const; -#endif - - // XXX GLIBCXX_ABI Deprecated -#if defined _GLIBCXX_LONG_DOUBLE_COMPAT && defined __LONG_DOUBLE_128__ - // For __gnu_cxx_ldbl128::num_get and __gnu_cxx_ieee128::num_get - // this entry in the vtable is for the 128-bit "long double" type. - virtual iter_type - do_get(iter_type, iter_type, ios_base&, ios_base::iostate&, - long double&) const; -#endif - ///@} - }; - - template - locale::id num_get<_CharT, _InIter>::id; - - - /** - * @brief Primary class template num_put. - * @ingroup locales - * - * This facet encapsulates the code to convert a number to a string. It is - * used by the ostream numeric insertion operators. - * - * The num_put template uses protected virtual functions to provide the - * actual results. The public accessors forward the call to the virtual - * functions. These virtual functions are hooks for developers to - * implement the behavior they require from the num_put facet. - */ - template - class num_put : public locale::facet - { - public: - // Types: - ///@{ - /// Public typedefs - typedef _CharT char_type; - typedef _OutIter iter_type; - ///@} - - /// Numpunct facet id. - static locale::id id; - - /** - * @brief Constructor performs initialization. - * - * This is the constructor provided by the standard. - * - * @param __refs Passed to the base facet class. - */ - explicit - num_put(size_t __refs = 0) : facet(__refs) { } - - /** - * @brief Numeric formatting. - * - * Formats the boolean @a v and inserts it into a stream. It does so - * by calling num_put::do_put(). - * - * If ios_base::boolalpha is set, writes ctype::truename() or - * ctype::falsename(). Otherwise formats @a v as an int. - * - * @param __s Stream to write to. - * @param __io Source of locale and flags. - * @param __fill Char_type to use for filling. - * @param __v Value to format and insert. - * @return Iterator after writing. - */ - iter_type - put(iter_type __s, ios_base& __io, char_type __fill, bool __v) const - { return this->do_put(__s, __io, __fill, __v); } - - ///@{ - /** - * @brief Numeric formatting. - * - * Formats the integral value @a v and inserts it into a - * stream. It does so by calling num_put::do_put(). - * - * Formatting is affected by the flag settings in @a io. - * - * The basic format is affected by the value of io.flags() & - * ios_base::basefield. If equal to ios_base::oct, formats like the - * printf %o specifier. Else if equal to ios_base::hex, formats like - * %x or %X with ios_base::uppercase unset or set respectively. - * Otherwise, formats like %d, %ld, %lld for signed and %u, %lu, %llu - * for unsigned values. Note that if both oct and hex are set, neither - * will take effect. - * - * If ios_base::showpos is set, '+' is output before positive values. - * If ios_base::showbase is set, '0' precedes octal values (except 0) - * and '0[xX]' precedes hex values. - * - * The decimal point character used is numpunct::decimal_point(). - * Thousands separators are inserted according to - * numpunct::grouping() and numpunct::thousands_sep(). - * - * If io.width() is non-zero, enough @a fill characters are inserted to - * make the result at least that wide. If - * (io.flags() & ios_base::adjustfield) == ios_base::left, result is - * padded at the end. If ios_base::internal, then padding occurs - * immediately after either a '+' or '-' or after '0x' or '0X'. - * Otherwise, padding occurs at the beginning. - * - * @param __s Stream to write to. - * @param __io Source of locale and flags. - * @param __fill Char_type to use for filling. - * @param __v Value to format and insert. - * @return Iterator after writing. - */ - iter_type - put(iter_type __s, ios_base& __io, char_type __fill, long __v) const - { return this->do_put(__s, __io, __fill, __v); } - - iter_type - put(iter_type __s, ios_base& __io, char_type __fill, - unsigned long __v) const - { return this->do_put(__s, __io, __fill, __v); } - -#ifdef _GLIBCXX_USE_LONG_LONG - iter_type - put(iter_type __s, ios_base& __io, char_type __fill, long long __v) const - { return this->do_put(__s, __io, __fill, __v); } - - iter_type - put(iter_type __s, ios_base& __io, char_type __fill, - unsigned long long __v) const - { return this->do_put(__s, __io, __fill, __v); } -#endif - ///@} - - ///@{ - /** - * @brief Numeric formatting. - * - * Formats the floating point value @a v and inserts it into a stream. - * It does so by calling num_put::do_put(). - * - * Formatting is affected by the flag settings in @a io. - * - * The basic format is affected by the value of io.flags() & - * ios_base::floatfield. If equal to ios_base::fixed, formats like the - * printf %f specifier. Else if equal to ios_base::scientific, formats - * like %e or %E with ios_base::uppercase unset or set respectively. - * Otherwise, formats like %g or %G depending on uppercase. Note that - * if both fixed and scientific are set, the effect will also be like - * %g or %G. - * - * The output precision is given by io.precision(). This precision is - * capped at numeric_limits::digits10 + 2 (different for double and - * long double). The default precision is 6. - * - * If ios_base::showpos is set, '+' is output before positive values. - * If ios_base::showpoint is set, a decimal point will always be - * output. - * - * The decimal point character used is numpunct::decimal_point(). - * Thousands separators are inserted according to - * numpunct::grouping() and numpunct::thousands_sep(). - * - * If io.width() is non-zero, enough @a fill characters are inserted to - * make the result at least that wide. If - * (io.flags() & ios_base::adjustfield) == ios_base::left, result is - * padded at the end. If ios_base::internal, then padding occurs - * immediately after either a '+' or '-' or after '0x' or '0X'. - * Otherwise, padding occurs at the beginning. - * - * @param __s Stream to write to. - * @param __io Source of locale and flags. - * @param __fill Char_type to use for filling. - * @param __v Value to format and insert. - * @return Iterator after writing. - */ - iter_type - put(iter_type __s, ios_base& __io, char_type __fill, double __v) const - { return this->do_put(__s, __io, __fill, __v); } - - iter_type - put(iter_type __s, ios_base& __io, char_type __fill, - long double __v) const - { return this->do_put(__s, __io, __fill, __v); } - ///@} - - /** - * @brief Numeric formatting. - * - * Formats the pointer value @a v and inserts it into a stream. It - * does so by calling num_put::do_put(). - * - * This function formats @a v as an unsigned long with ios_base::hex - * and ios_base::showbase set. - * - * @param __s Stream to write to. - * @param __io Source of locale and flags. - * @param __fill Char_type to use for filling. - * @param __v Value to format and insert. - * @return Iterator after writing. - */ - iter_type - put(iter_type __s, ios_base& __io, char_type __fill, - const void* __v) const - { return this->do_put(__s, __io, __fill, __v); } - - protected: - template - iter_type - _M_insert_float(iter_type, ios_base& __io, char_type __fill, - char __mod, _ValueT __v) const; - - void - _M_group_float(const char* __grouping, size_t __grouping_size, - char_type __sep, const char_type* __p, char_type* __new, - char_type* __cs, int& __len) const; - - template - iter_type - _M_insert_int(iter_type, ios_base& __io, char_type __fill, - _ValueT __v) const; - - void - _M_group_int(const char* __grouping, size_t __grouping_size, - char_type __sep, ios_base& __io, char_type* __new, - char_type* __cs, int& __len) const; - - void - _M_pad(char_type __fill, streamsize __w, ios_base& __io, - char_type* __new, const char_type* __cs, int& __len) const; - - /// Destructor. - virtual - ~num_put() { } - - ///@{ - /** - * @brief Numeric formatting. - * - * These functions do the work of formatting numeric values and - * inserting them into a stream. This function is a hook for derived - * classes to change the value returned. - * - * @param __s Stream to write to. - * @param __io Source of locale and flags. - * @param __fill Char_type to use for filling. - * @param __v Value to format and insert. - * @return Iterator after writing. - */ - virtual iter_type - do_put(iter_type __s, ios_base& __io, char_type __fill, bool __v) const; - - virtual iter_type - do_put(iter_type __s, ios_base& __io, char_type __fill, long __v) const - { return _M_insert_int(__s, __io, __fill, __v); } - - virtual iter_type - do_put(iter_type __s, ios_base& __io, char_type __fill, - unsigned long __v) const - { return _M_insert_int(__s, __io, __fill, __v); } - -#ifdef _GLIBCXX_USE_LONG_LONG - virtual iter_type - do_put(iter_type __s, ios_base& __io, char_type __fill, - long long __v) const - { return _M_insert_int(__s, __io, __fill, __v); } - - virtual iter_type - do_put(iter_type __s, ios_base& __io, char_type __fill, - unsigned long long __v) const - { return _M_insert_int(__s, __io, __fill, __v); } -#endif - - virtual iter_type - do_put(iter_type, ios_base&, char_type, double) const; - - // XXX GLIBCXX_ABI Deprecated -#if defined _GLIBCXX_LONG_DOUBLE_COMPAT && defined __LONG_DOUBLE_128__ - virtual iter_type - __do_put(iter_type, ios_base&, char_type, double) const; -#else - virtual iter_type - do_put(iter_type, ios_base&, char_type, long double) const; -#endif - - virtual iter_type - do_put(iter_type, ios_base&, char_type, const void*) const; - - // XXX GLIBCXX_ABI Deprecated -#if defined _GLIBCXX_LONG_DOUBLE_ALT128_COMPAT \ - && defined __LONG_DOUBLE_IEEE128__ - virtual iter_type - __do_put(iter_type, ios_base&, char_type, __ibm128) const; -#endif - - // XXX GLIBCXX_ABI Deprecated -#if defined _GLIBCXX_LONG_DOUBLE_COMPAT && defined __LONG_DOUBLE_128__ - virtual iter_type - do_put(iter_type, ios_base&, char_type, long double) const; -#endif - ///@} - }; - - template - locale::id num_put<_CharT, _OutIter>::id; - -_GLIBCXX_END_NAMESPACE_LDBL - - // Subclause convenience interfaces, inlines. - // NB: These are inline because, when used in a loop, some compilers - // can hoist the body out of the loop; then it's just as fast as the - // C is*() function. - - /// Convenience interface to ctype.is(ctype_base::space, __c). - template - inline bool - isspace(_CharT __c, const locale& __loc) - { return use_facet >(__loc).is(ctype_base::space, __c); } - - /// Convenience interface to ctype.is(ctype_base::print, __c). - template - inline bool - isprint(_CharT __c, const locale& __loc) - { return use_facet >(__loc).is(ctype_base::print, __c); } - - /// Convenience interface to ctype.is(ctype_base::cntrl, __c). - template - inline bool - iscntrl(_CharT __c, const locale& __loc) - { return use_facet >(__loc).is(ctype_base::cntrl, __c); } - - /// Convenience interface to ctype.is(ctype_base::upper, __c). - template - inline bool - isupper(_CharT __c, const locale& __loc) - { return use_facet >(__loc).is(ctype_base::upper, __c); } - - /// Convenience interface to ctype.is(ctype_base::lower, __c). - template - inline bool - islower(_CharT __c, const locale& __loc) - { return use_facet >(__loc).is(ctype_base::lower, __c); } - - /// Convenience interface to ctype.is(ctype_base::alpha, __c). - template - inline bool - isalpha(_CharT __c, const locale& __loc) - { return use_facet >(__loc).is(ctype_base::alpha, __c); } - - /// Convenience interface to ctype.is(ctype_base::digit, __c). - template - inline bool - isdigit(_CharT __c, const locale& __loc) - { return use_facet >(__loc).is(ctype_base::digit, __c); } - - /// Convenience interface to ctype.is(ctype_base::punct, __c). - template - inline bool - ispunct(_CharT __c, const locale& __loc) - { return use_facet >(__loc).is(ctype_base::punct, __c); } - - /// Convenience interface to ctype.is(ctype_base::xdigit, __c). - template - inline bool - isxdigit(_CharT __c, const locale& __loc) - { return use_facet >(__loc).is(ctype_base::xdigit, __c); } - - /// Convenience interface to ctype.is(ctype_base::alnum, __c). - template - inline bool - isalnum(_CharT __c, const locale& __loc) - { return use_facet >(__loc).is(ctype_base::alnum, __c); } - - /// Convenience interface to ctype.is(ctype_base::graph, __c). - template - inline bool - isgraph(_CharT __c, const locale& __loc) - { return use_facet >(__loc).is(ctype_base::graph, __c); } - -#if __cplusplus >= 201103L - /// Convenience interface to ctype.is(ctype_base::blank, __c). - template - inline bool - isblank(_CharT __c, const locale& __loc) - { return use_facet >(__loc).is(ctype_base::blank, __c); } -#endif - - /// Convenience interface to ctype.toupper(__c). - template - inline _CharT - toupper(_CharT __c, const locale& __loc) - { return use_facet >(__loc).toupper(__c); } - - /// Convenience interface to ctype.tolower(__c). - template - inline _CharT - tolower(_CharT __c, const locale& __loc) - { return use_facet >(__loc).tolower(__c); } - -_GLIBCXX_END_NAMESPACE_VERSION -} // namespace std - -# include - -#endif diff --git a/.ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@c++@13.1.1@bits@locale_facets.h.blob b/.ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@c++@13.1.1@bits@locale_facets.h.blob deleted file mode 100644 index 3789453719db0f70e33040c447ec4826fccaeb8c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 198319 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׮HO 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. - -/** @file bits/locale_facets.tcc - * This is an internal header file, included by other library headers. - * Do not attempt to use it directly. @headername{locale} - */ - -#ifndef _LOCALE_FACETS_TCC -#define _LOCALE_FACETS_TCC 1 - -#pragma GCC system_header - -namespace std _GLIBCXX_VISIBILITY(default) -{ -_GLIBCXX_BEGIN_NAMESPACE_VERSION - - // Routine to access a cache for the facet. If the cache didn't - // exist before, it gets constructed on the fly. - template - struct __use_cache - { - const _Facet* - operator() (const locale& __loc) const; - }; - - // Specializations. - template - struct __use_cache<__numpunct_cache<_CharT> > - { - const __numpunct_cache<_CharT>* - operator() (const locale& __loc) const - { - const size_t __i = numpunct<_CharT>::id._M_id(); - const locale::facet** __caches = __loc._M_impl->_M_caches; - if (!__caches[__i]) - { - __numpunct_cache<_CharT>* __tmp = 0; - __try - { - __tmp = new __numpunct_cache<_CharT>; - __tmp->_M_cache(__loc); - } - __catch(...) - { - delete __tmp; - __throw_exception_again; - } - __loc._M_impl->_M_install_cache(__tmp, __i); - } - return static_cast*>(__caches[__i]); - } - }; - - template - void - __numpunct_cache<_CharT>::_M_cache(const locale& __loc) - { - const numpunct<_CharT>& __np = use_facet >(__loc); - - char* __grouping = 0; - _CharT* __truename = 0; - _CharT* __falsename = 0; - __try - { - const string& __g = __np.grouping(); - _M_grouping_size = __g.size(); - __grouping = new char[_M_grouping_size]; - __g.copy(__grouping, _M_grouping_size); - _M_use_grouping = (_M_grouping_size - && static_cast(__grouping[0]) > 0 - && (__grouping[0] - != __gnu_cxx::__numeric_traits::__max)); - - const basic_string<_CharT>& __tn = __np.truename(); - _M_truename_size = __tn.size(); - __truename = new _CharT[_M_truename_size]; - __tn.copy(__truename, _M_truename_size); - - const basic_string<_CharT>& __fn = __np.falsename(); - _M_falsename_size = __fn.size(); - __falsename = new _CharT[_M_falsename_size]; - __fn.copy(__falsename, _M_falsename_size); - - _M_decimal_point = __np.decimal_point(); - _M_thousands_sep = __np.thousands_sep(); - - const ctype<_CharT>& __ct = use_facet >(__loc); - __ct.widen(__num_base::_S_atoms_out, - __num_base::_S_atoms_out - + __num_base::_S_oend, _M_atoms_out); - __ct.widen(__num_base::_S_atoms_in, - __num_base::_S_atoms_in - + __num_base::_S_iend, _M_atoms_in); - - _M_grouping = __grouping; - _M_truename = __truename; - _M_falsename = __falsename; - _M_allocated = true; - } - __catch(...) - { - delete [] __grouping; - delete [] __truename; - delete [] __falsename; - __throw_exception_again; - } - } - - // Used by both numeric and monetary facets. - // Check to make sure that the __grouping_tmp string constructed in - // money_get or num_get matches the canonical grouping for a given - // locale. - // __grouping_tmp is parsed L to R - // 1,222,444 == __grouping_tmp of "\1\3\3" - // __grouping is parsed R to L - // 1,222,444 == __grouping of "\3" == "\3\3\3" - _GLIBCXX_PURE bool - __verify_grouping(const char* __grouping, size_t __grouping_size, - const string& __grouping_tmp) throw (); - -_GLIBCXX_BEGIN_NAMESPACE_LDBL - - template - _GLIBCXX_DEFAULT_ABI_TAG - _InIter - num_get<_CharT, _InIter>:: - _M_extract_float(_InIter __beg, _InIter __end, ios_base& __io, - ios_base::iostate& __err, string& __xtrc) const - { - typedef char_traits<_CharT> __traits_type; - typedef __numpunct_cache<_CharT> __cache_type; - __use_cache<__cache_type> __uc; - const locale& __loc = __io._M_getloc(); - const __cache_type* __lc = __uc(__loc); - const _CharT* __lit = __lc->_M_atoms_in; - char_type __c = char_type(); - - // True if __beg becomes equal to __end. - bool __testeof = __beg == __end; - - // First check for sign. - if (!__testeof) - { - __c = *__beg; - const bool __plus = __c == __lit[__num_base::_S_iplus]; - if ((__plus || __c == __lit[__num_base::_S_iminus]) - && !(__lc->_M_use_grouping && __c == __lc->_M_thousands_sep) - && !(__c == __lc->_M_decimal_point)) - { - __xtrc += __plus ? '+' : '-'; - if (++__beg != __end) - __c = *__beg; - else - __testeof = true; - } - } - - // Next, look for leading zeros. - bool __found_mantissa = false; - int __sep_pos = 0; - while (!__testeof) - { - if ((__lc->_M_use_grouping && __c == __lc->_M_thousands_sep) - || __c == __lc->_M_decimal_point) - break; - else if (__c == __lit[__num_base::_S_izero]) - { - if (!__found_mantissa) - { - __xtrc += '0'; - __found_mantissa = true; - } - ++__sep_pos; - - if (++__beg != __end) - __c = *__beg; - else - __testeof = true; - } - else - break; - } - - // Only need acceptable digits for floating point numbers. - bool __found_dec = false; - bool __found_sci = false; - string __found_grouping; - if (__lc->_M_use_grouping) - __found_grouping.reserve(32); - const char_type* __lit_zero = __lit + __num_base::_S_izero; - - if (!__lc->_M_allocated) - // "C" locale - while (!__testeof) - { - const int __digit = _M_find(__lit_zero, 10, __c); - if (__digit != -1) - { - __xtrc += '0' + __digit; - __found_mantissa = true; - } - else if (__c == __lc->_M_decimal_point - && !__found_dec && !__found_sci) - { - __xtrc += '.'; - __found_dec = true; - } - else if ((__c == __lit[__num_base::_S_ie] - || __c == __lit[__num_base::_S_iE]) - && !__found_sci && __found_mantissa) - { - // Scientific notation. - __xtrc += 'e'; - __found_sci = true; - - // Remove optional plus or minus sign, if they exist. - if (++__beg != __end) - { - __c = *__beg; - const bool __plus = __c == __lit[__num_base::_S_iplus]; - if (__plus || __c == __lit[__num_base::_S_iminus]) - __xtrc += __plus ? '+' : '-'; - else - continue; - } - else - { - __testeof = true; - break; - } - } - else - break; - - if (++__beg != __end) - __c = *__beg; - else - __testeof = true; - } - else - while (!__testeof) - { - // According to 22.2.2.1.2, p8-9, first look for thousands_sep - // and decimal_point. - if (__lc->_M_use_grouping && __c == __lc->_M_thousands_sep) - { - if (!__found_dec && !__found_sci) - { - // NB: Thousands separator at the beginning of a string - // is a no-no, as is two consecutive thousands separators. - if (__sep_pos) - { - __found_grouping += static_cast(__sep_pos); - __sep_pos = 0; - } - else - { - // NB: __convert_to_v will not assign __v and will - // set the failbit. - __xtrc.clear(); - break; - } - } - else - break; - } - else if (__c == __lc->_M_decimal_point) - { - if (!__found_dec && !__found_sci) - { - // If no grouping chars are seen, no grouping check - // is applied. Therefore __found_grouping is adjusted - // only if decimal_point comes after some thousands_sep. - if (__found_grouping.size()) - __found_grouping += static_cast(__sep_pos); - __xtrc += '.'; - __found_dec = true; - } - else - break; - } - else - { - const char_type* __q = - __traits_type::find(__lit_zero, 10, __c); - if (__q) - { - __xtrc += '0' + (__q - __lit_zero); - __found_mantissa = true; - ++__sep_pos; - } - else if ((__c == __lit[__num_base::_S_ie] - || __c == __lit[__num_base::_S_iE]) - && !__found_sci && __found_mantissa) - { - // Scientific notation. - if (__found_grouping.size() && !__found_dec) - __found_grouping += static_cast(__sep_pos); - __xtrc += 'e'; - __found_sci = true; - - // Remove optional plus or minus sign, if they exist. - if (++__beg != __end) - { - __c = *__beg; - const bool __plus = __c == __lit[__num_base::_S_iplus]; - if ((__plus || __c == __lit[__num_base::_S_iminus]) - && !(__lc->_M_use_grouping - && __c == __lc->_M_thousands_sep) - && !(__c == __lc->_M_decimal_point)) - __xtrc += __plus ? '+' : '-'; - else - continue; - } - else - { - __testeof = true; - break; - } - } - else - break; - } - - if (++__beg != __end) - __c = *__beg; - else - __testeof = true; - } - - // Digit grouping is checked. If grouping and found_grouping don't - // match, then get very very upset, and set failbit. - if (__found_grouping.size()) - { - // Add the ending grouping if a decimal or 'e'/'E' wasn't found. - if (!__found_dec && !__found_sci) - __found_grouping += static_cast(__sep_pos); - - if (!std::__verify_grouping(__lc->_M_grouping, - __lc->_M_grouping_size, - __found_grouping)) - __err = ios_base::failbit; - } - - return __beg; - } - - template - template - _GLIBCXX_DEFAULT_ABI_TAG - _InIter - num_get<_CharT, _InIter>:: - _M_extract_int(_InIter __beg, _InIter __end, ios_base& __io, - ios_base::iostate& __err, _ValueT& __v) const - { - typedef char_traits<_CharT> __traits_type; - using __gnu_cxx::__add_unsigned; - typedef typename __add_unsigned<_ValueT>::__type __unsigned_type; - typedef __numpunct_cache<_CharT> __cache_type; - __use_cache<__cache_type> __uc; - const locale& __loc = __io._M_getloc(); - const __cache_type* __lc = __uc(__loc); - const _CharT* __lit = __lc->_M_atoms_in; - char_type __c = char_type(); - - // NB: Iff __basefield == 0, __base can change based on contents. - const ios_base::fmtflags __basefield = __io.flags() - & ios_base::basefield; - const bool __oct = __basefield == ios_base::oct; - int __base = __oct ? 8 : (__basefield == ios_base::hex ? 16 : 10); - - // True if __beg becomes equal to __end. - bool __testeof = __beg == __end; - - // First check for sign. - bool __negative = false; - if (!__testeof) - { - __c = *__beg; - __negative = __c == __lit[__num_base::_S_iminus]; - if ((__negative || __c == __lit[__num_base::_S_iplus]) - && !(__lc->_M_use_grouping && __c == __lc->_M_thousands_sep) - && !(__c == __lc->_M_decimal_point)) - { - if (++__beg != __end) - __c = *__beg; - else - __testeof = true; - } - } - - // Next, look for leading zeros and check required digits - // for base formats. - bool __found_zero = false; - int __sep_pos = 0; - while (!__testeof) - { - if ((__lc->_M_use_grouping && __c == __lc->_M_thousands_sep) - || __c == __lc->_M_decimal_point) - break; - else if (__c == __lit[__num_base::_S_izero] - && (!__found_zero || __base == 10)) - { - __found_zero = true; - ++__sep_pos; - if (__basefield == 0) - __base = 8; - if (__base == 8) - __sep_pos = 0; - } - else if (__found_zero - && (__c == __lit[__num_base::_S_ix] - || __c == __lit[__num_base::_S_iX])) - { - if (__basefield == 0) - __base = 16; - if (__base == 16) - { - __found_zero = false; - __sep_pos = 0; - } - else - break; - } - else - break; - - if (++__beg != __end) - { - __c = *__beg; - if (!__found_zero) - break; - } - else - __testeof = true; - } - - // At this point, base is determined. If not hex, only allow - // base digits as valid input. - const size_t __len = (__base == 16 ? __num_base::_S_iend - - __num_base::_S_izero : __base); - - // Extract. - typedef __gnu_cxx::__numeric_traits<_ValueT> __num_traits; - string __found_grouping; - if (__lc->_M_use_grouping) - __found_grouping.reserve(32); - bool __testfail = false; - bool __testoverflow = false; - const __unsigned_type __max = - (__negative && __num_traits::__is_signed) - ? -static_cast<__unsigned_type>(__num_traits::__min) - : __num_traits::__max; - const __unsigned_type __smax = __max / __base; - __unsigned_type __result = 0; - int __digit = 0; - const char_type* __lit_zero = __lit + __num_base::_S_izero; - - if (!__lc->_M_allocated) - // "C" locale - while (!__testeof) - { - __digit = _M_find(__lit_zero, __len, __c); - if (__digit == -1) - break; - - if (__result > __smax) - __testoverflow = true; - else - { - __result *= __base; - __testoverflow |= __result > __max - __digit; - __result += __digit; - ++__sep_pos; - } - - if (++__beg != __end) - __c = *__beg; - else - __testeof = true; - } - else - while (!__testeof) - { - // According to 22.2.2.1.2, p8-9, first look for thousands_sep - // and decimal_point. - if (__lc->_M_use_grouping && __c == __lc->_M_thousands_sep) - { - // NB: Thousands separator at the beginning of a string - // is a no-no, as is two consecutive thousands separators. - if (__sep_pos) - { - __found_grouping += static_cast(__sep_pos); - __sep_pos = 0; - } - else - { - __testfail = true; - break; - } - } - else if (__c == __lc->_M_decimal_point) - break; - else - { - const char_type* __q = - __traits_type::find(__lit_zero, __len, __c); - if (!__q) - break; - - __digit = __q - __lit_zero; - if (__digit > 15) - __digit -= 6; - if (__result > __smax) - __testoverflow = true; - else - { - __result *= __base; - __testoverflow |= __result > __max - __digit; - __result += __digit; - ++__sep_pos; - } - } - - if (++__beg != __end) - __c = *__beg; - else - __testeof = true; - } - - // Digit grouping is checked. If grouping and found_grouping don't - // match, then get very very upset, and set failbit. - if (__found_grouping.size()) - { - // Add the ending grouping. - __found_grouping += static_cast(__sep_pos); - - if (!std::__verify_grouping(__lc->_M_grouping, - __lc->_M_grouping_size, - __found_grouping)) - __err = ios_base::failbit; - } - - // _GLIBCXX_RESOLVE_LIB_DEFECTS - // 23. Num_get overflow result. - if ((!__sep_pos && !__found_zero && !__found_grouping.size()) - || __testfail) - { - __v = 0; - __err = ios_base::failbit; - } - else if (__testoverflow) - { - if (__negative && __num_traits::__is_signed) - __v = __num_traits::__min; - else - __v = __num_traits::__max; - __err = ios_base::failbit; - } - else - __v = __negative ? -__result : __result; - - if (__testeof) - __err |= ios_base::eofbit; - return __beg; - } - - // _GLIBCXX_RESOLVE_LIB_DEFECTS - // 17. Bad bool parsing - template - _InIter - num_get<_CharT, _InIter>:: - do_get(iter_type __beg, iter_type __end, ios_base& __io, - ios_base::iostate& __err, bool& __v) const - { - if (!(__io.flags() & ios_base::boolalpha)) - { - // Parse bool values as long. - // NB: We can't just call do_get(long) here, as it might - // refer to a derived class. - long __l = -1; - __beg = _M_extract_int(__beg, __end, __io, __err, __l); - if (__l == 0 || __l == 1) - __v = bool(__l); - else - { - // _GLIBCXX_RESOLVE_LIB_DEFECTS - // 23. Num_get overflow result. - __v = true; - __err = ios_base::failbit; - if (__beg == __end) - __err |= ios_base::eofbit; - } - } - else - { - // Parse bool values as alphanumeric. - typedef __numpunct_cache<_CharT> __cache_type; - __use_cache<__cache_type> __uc; - const locale& __loc = __io._M_getloc(); - const __cache_type* __lc = __uc(__loc); - - bool __testf = true; - bool __testt = true; - bool __donef = __lc->_M_falsename_size == 0; - bool __donet = __lc->_M_truename_size == 0; - bool __testeof = false; - size_t __n = 0; - while (!__donef || !__donet) - { - if (__beg == __end) - { - __testeof = true; - break; - } - - const char_type __c = *__beg; - - if (!__donef) - __testf = __c == __lc->_M_falsename[__n]; - - if (!__testf && __donet) - break; - - if (!__donet) - __testt = __c == __lc->_M_truename[__n]; - - if (!__testt && __donef) - break; - - if (!__testt && !__testf) - break; - - ++__n; - ++__beg; - - __donef = !__testf || __n >= __lc->_M_falsename_size; - __donet = !__testt || __n >= __lc->_M_truename_size; - } - if (__testf && __n == __lc->_M_falsename_size && __n) - { - __v = false; - if (__testt && __n == __lc->_M_truename_size) - __err = ios_base::failbit; - else - __err = __testeof ? ios_base::eofbit : ios_base::goodbit; - } - else if (__testt && __n == __lc->_M_truename_size && __n) - { - __v = true; - __err = __testeof ? ios_base::eofbit : ios_base::goodbit; - } - else - { - // _GLIBCXX_RESOLVE_LIB_DEFECTS - // 23. Num_get overflow result. - __v = false; - __err = ios_base::failbit; - if (__testeof) - __err |= ios_base::eofbit; - } - } - return __beg; - } - - template - _InIter - num_get<_CharT, _InIter>:: - do_get(iter_type __beg, iter_type __end, ios_base& __io, - ios_base::iostate& __err, float& __v) const - { - string __xtrc; - __xtrc.reserve(32); - __beg = _M_extract_float(__beg, __end, __io, __err, __xtrc); - std::__convert_to_v(__xtrc.c_str(), __v, __err, _S_get_c_locale()); - if (__beg == __end) - __err |= ios_base::eofbit; - return __beg; - } - - template - _InIter - num_get<_CharT, _InIter>:: - do_get(iter_type __beg, iter_type __end, ios_base& __io, - ios_base::iostate& __err, double& __v) const - { - string __xtrc; - __xtrc.reserve(32); - __beg = _M_extract_float(__beg, __end, __io, __err, __xtrc); - std::__convert_to_v(__xtrc.c_str(), __v, __err, _S_get_c_locale()); - if (__beg == __end) - __err |= ios_base::eofbit; - return __beg; - } - -#if defined _GLIBCXX_LONG_DOUBLE_COMPAT && defined __LONG_DOUBLE_128__ - template - _InIter - num_get<_CharT, _InIter>:: - __do_get(iter_type __beg, iter_type __end, ios_base& __io, - ios_base::iostate& __err, double& __v) const - { - string __xtrc; - __xtrc.reserve(32); - __beg = _M_extract_float(__beg, __end, __io, __err, __xtrc); - std::__convert_to_v(__xtrc.c_str(), __v, __err, _S_get_c_locale()); - if (__beg == __end) - __err |= ios_base::eofbit; - return __beg; - } -#endif - - template - _InIter - num_get<_CharT, _InIter>:: - do_get(iter_type __beg, iter_type __end, ios_base& __io, - ios_base::iostate& __err, long double& __v) const - { - string __xtrc; - __xtrc.reserve(32); - __beg = _M_extract_float(__beg, __end, __io, __err, __xtrc); - std::__convert_to_v(__xtrc.c_str(), __v, __err, _S_get_c_locale()); - if (__beg == __end) - __err |= ios_base::eofbit; - return __beg; - } - - template - _InIter - num_get<_CharT, _InIter>:: - do_get(iter_type __beg, iter_type __end, ios_base& __io, - ios_base::iostate& __err, void*& __v) const - { - // Prepare for hex formatted input. - typedef ios_base::fmtflags fmtflags; - const fmtflags __fmt = __io.flags(); - __io.flags((__fmt & ~ios_base::basefield) | ios_base::hex); - - typedef __gnu_cxx::__conditional_type<(sizeof(void*) - <= sizeof(unsigned long)), - unsigned long, unsigned long long>::__type _UIntPtrType; - - _UIntPtrType __ul; - __beg = _M_extract_int(__beg, __end, __io, __err, __ul); - - // Reset from hex formatted input. - __io.flags(__fmt); - - __v = reinterpret_cast(__ul); - return __beg; - } - -#if defined _GLIBCXX_LONG_DOUBLE_ALT128_COMPAT \ - && defined __LONG_DOUBLE_IEEE128__ - template - _InIter - num_get<_CharT, _InIter>:: - __do_get(iter_type __beg, iter_type __end, ios_base& __io, - ios_base::iostate& __err, __ibm128& __v) const - { - string __xtrc; - __xtrc.reserve(32); - __beg = _M_extract_float(__beg, __end, __io, __err, __xtrc); - std::__convert_to_v(__xtrc.c_str(), __v, __err, _S_get_c_locale()); - if (__beg == __end) - __err |= ios_base::eofbit; - return __beg; - } -#endif - - // For use by integer and floating-point types after they have been - // converted into a char_type string. - template - void - num_put<_CharT, _OutIter>:: - _M_pad(_CharT __fill, streamsize __w, ios_base& __io, - _CharT* __new, const _CharT* __cs, int& __len) const - { - // [22.2.2.2.2] Stage 3. - // If necessary, pad. - __pad<_CharT, char_traits<_CharT> >::_S_pad(__io, __fill, __new, - __cs, __w, __len); - __len = static_cast(__w); - } - -_GLIBCXX_END_NAMESPACE_LDBL - - template - int - __int_to_char(_CharT* __bufend, _ValueT __v, const _CharT* __lit, - ios_base::fmtflags __flags, bool __dec) - { - _CharT* __buf = __bufend; - if (__builtin_expect(__dec, true)) - { - // Decimal. - do - { - *--__buf = __lit[(__v % 10) + __num_base::_S_odigits]; - __v /= 10; - } - while (__v != 0); - } - else if ((__flags & ios_base::basefield) == ios_base::oct) - { - // Octal. - do - { - *--__buf = __lit[(__v & 0x7) + __num_base::_S_odigits]; - __v >>= 3; - } - while (__v != 0); - } - else - { - // Hex. - const bool __uppercase = __flags & ios_base::uppercase; - const int __case_offset = __uppercase ? __num_base::_S_oudigits - : __num_base::_S_odigits; - do - { - *--__buf = __lit[(__v & 0xf) + __case_offset]; - __v >>= 4; - } - while (__v != 0); - } - return __bufend - __buf; - } - -_GLIBCXX_BEGIN_NAMESPACE_LDBL - - template - void - num_put<_CharT, _OutIter>:: - _M_group_int(const char* __grouping, size_t __grouping_size, _CharT __sep, - ios_base&, _CharT* __new, _CharT* __cs, int& __len) const - { - _CharT* __p = std::__add_grouping(__new, __sep, __grouping, - __grouping_size, __cs, __cs + __len); - __len = __p - __new; - } - - template - template - _OutIter - num_put<_CharT, _OutIter>:: - _M_insert_int(_OutIter __s, ios_base& __io, _CharT __fill, - _ValueT __v) const - { - using __gnu_cxx::__add_unsigned; - typedef typename __add_unsigned<_ValueT>::__type __unsigned_type; - typedef __numpunct_cache<_CharT> __cache_type; - __use_cache<__cache_type> __uc; - const locale& __loc = __io._M_getloc(); - const __cache_type* __lc = __uc(__loc); - const _CharT* __lit = __lc->_M_atoms_out; - const ios_base::fmtflags __flags = __io.flags(); - - // Long enough to hold hex, dec, and octal representations. - const int __ilen = 5 * sizeof(_ValueT); - _CharT* __cs = static_cast<_CharT*>(__builtin_alloca(sizeof(_CharT) - * __ilen)); - - // [22.2.2.2.2] Stage 1, numeric conversion to character. - // Result is returned right-justified in the buffer. - const ios_base::fmtflags __basefield = __flags & ios_base::basefield; - const bool __dec = (__basefield != ios_base::oct - && __basefield != ios_base::hex); - const __unsigned_type __u = ((__v > 0 || !__dec) - ? __unsigned_type(__v) - : -__unsigned_type(__v)); - int __len = __int_to_char(__cs + __ilen, __u, __lit, __flags, __dec); - __cs += __ilen - __len; - - // Add grouping, if necessary. - if (__lc->_M_use_grouping) - { - // Grouping can add (almost) as many separators as the number - // of digits + space is reserved for numeric base or sign. - _CharT* __cs2 = static_cast<_CharT*>(__builtin_alloca(sizeof(_CharT) - * (__len + 1) - * 2)); - _M_group_int(__lc->_M_grouping, __lc->_M_grouping_size, - __lc->_M_thousands_sep, __io, __cs2 + 2, __cs, __len); - __cs = __cs2 + 2; - } - - // Complete Stage 1, prepend numeric base or sign. - if (__builtin_expect(__dec, true)) - { - // Decimal. - if (__v >= 0) - { - if (bool(__flags & ios_base::showpos) - && __gnu_cxx::__numeric_traits<_ValueT>::__is_signed) - *--__cs = __lit[__num_base::_S_oplus], ++__len; - } - else - *--__cs = __lit[__num_base::_S_ominus], ++__len; - } - else if (bool(__flags & ios_base::showbase) && __v) - { - if (__basefield == ios_base::oct) - *--__cs = __lit[__num_base::_S_odigits], ++__len; - else - { - // 'x' or 'X' - const bool __uppercase = __flags & ios_base::uppercase; - *--__cs = __lit[__num_base::_S_ox + __uppercase]; - // '0' - *--__cs = __lit[__num_base::_S_odigits]; - __len += 2; - } - } - - // Pad. - const streamsize __w = __io.width(); - if (__w > static_cast(__len)) - { - _CharT* __cs3 = static_cast<_CharT*>(__builtin_alloca(sizeof(_CharT) - * __w)); - _M_pad(__fill, __w, __io, __cs3, __cs, __len); - __cs = __cs3; - } - __io.width(0); - - // [22.2.2.2.2] Stage 4. - // Write resulting, fully-formatted string to output iterator. - return std::__write(__s, __cs, __len); - } - - template - void - num_put<_CharT, _OutIter>:: - _M_group_float(const char* __grouping, size_t __grouping_size, - _CharT __sep, const _CharT* __p, _CharT* __new, - _CharT* __cs, int& __len) const - { - // _GLIBCXX_RESOLVE_LIB_DEFECTS - // 282. What types does numpunct grouping refer to? - // Add grouping, if necessary. - const int __declen = __p ? __p - __cs : __len; - _CharT* __p2 = std::__add_grouping(__new, __sep, __grouping, - __grouping_size, - __cs, __cs + __declen); - - // Tack on decimal part. - int __newlen = __p2 - __new; - if (__p) - { - char_traits<_CharT>::copy(__p2, __p, __len - __declen); - __newlen += __len - __declen; - } - __len = __newlen; - } - - // The following code uses vsnprintf (or vsprintf(), when - // _GLIBCXX_USE_C99_STDIO is not defined) to convert floating point - // values for insertion into a stream. An optimization would be to - // replace them with code that works directly on a wide buffer and - // then use __pad to do the padding. It would be good to replace - // them anyway to gain back the efficiency that C++ provides by - // knowing up front the type of the values to insert. Also, sprintf - // is dangerous since may lead to accidental buffer overruns. This - // implementation follows the C++ standard fairly directly as - // outlined in 22.2.2.2 [lib.locale.num.put] - template - template - _OutIter - num_put<_CharT, _OutIter>:: - _M_insert_float(_OutIter __s, ios_base& __io, _CharT __fill, char __mod, - _ValueT __v) const - { - typedef __numpunct_cache<_CharT> __cache_type; - __use_cache<__cache_type> __uc; - const locale& __loc = __io._M_getloc(); - const __cache_type* __lc = __uc(__loc); - - // Use default precision if out of range. - const streamsize __prec = __io.precision() < 0 ? 6 : __io.precision(); - - const int __max_digits = - __gnu_cxx::__numeric_traits<_ValueT>::__digits10; - - // [22.2.2.2.2] Stage 1, numeric conversion to character. - int __len; - // Long enough for the max format spec. - char __fbuf[16]; - __num_base::_S_format_float(__io, __fbuf, __mod); - -#if _GLIBCXX_USE_C99_STDIO && !_GLIBCXX_HAVE_BROKEN_VSNPRINTF - // Precision is always used except for hexfloat format. - const bool __use_prec = - (__io.flags() & ios_base::floatfield) != ios_base::floatfield; - - // First try a buffer perhaps big enough (most probably sufficient - // for non-ios_base::fixed outputs) - int __cs_size = __max_digits * 3; - char* __cs = static_cast(__builtin_alloca(__cs_size)); - if (__use_prec) - __len = std::__convert_from_v(_S_get_c_locale(), __cs, __cs_size, - __fbuf, __prec, __v); - else - __len = std::__convert_from_v(_S_get_c_locale(), __cs, __cs_size, - __fbuf, __v); - - // If the buffer was not large enough, try again with the correct size. - if (__len >= __cs_size) - { - __cs_size = __len + 1; - __cs = static_cast(__builtin_alloca(__cs_size)); - if (__use_prec) - __len = std::__convert_from_v(_S_get_c_locale(), __cs, __cs_size, - __fbuf, __prec, __v); - else - __len = std::__convert_from_v(_S_get_c_locale(), __cs, __cs_size, - __fbuf, __v); - } -#else - // Consider the possibility of long ios_base::fixed outputs - const bool __fixed = __io.flags() & ios_base::fixed; - const int __max_exp = - __gnu_cxx::__numeric_traits<_ValueT>::__max_exponent10; - - // The size of the output string is computed as follows. - // ios_base::fixed outputs may need up to __max_exp + 1 chars - // for the integer part + __prec chars for the fractional part - // + 3 chars for sign, decimal point, '\0'. On the other hand, - // for non-fixed outputs __max_digits * 2 + __prec chars are - // largely sufficient. - const int __cs_size = __fixed ? __max_exp + __prec + 4 - : __max_digits * 2 + __prec; - char* __cs = static_cast(__builtin_alloca(__cs_size)); - __len = std::__convert_from_v(_S_get_c_locale(), __cs, 0, __fbuf, - __prec, __v); -#endif - - // [22.2.2.2.2] Stage 2, convert to char_type, using correct - // numpunct.decimal_point() values for '.' and adding grouping. - const ctype<_CharT>& __ctype = use_facet >(__loc); - - _CharT* __ws = static_cast<_CharT*>(__builtin_alloca(sizeof(_CharT) - * __len)); - __ctype.widen(__cs, __cs + __len, __ws); - - // Replace decimal point. - _CharT* __wp = 0; - const char* __p = char_traits::find(__cs, __len, '.'); - if (__p) - { - __wp = __ws + (__p - __cs); - *__wp = __lc->_M_decimal_point; - } - - // Add grouping, if necessary. - // N.B. Make sure to not group things like 2e20, i.e., no decimal - // point, scientific notation. - if (__lc->_M_use_grouping - && (__wp || __len < 3 || (__cs[1] <= '9' && __cs[2] <= '9' - && __cs[1] >= '0' && __cs[2] >= '0'))) - { - // Grouping can add (almost) as many separators as the - // number of digits, but no more. - _CharT* __ws2 = static_cast<_CharT*>(__builtin_alloca(sizeof(_CharT) - * __len * 2)); - - streamsize __off = 0; - if (__cs[0] == '-' || __cs[0] == '+') - { - __off = 1; - __ws2[0] = __ws[0]; - __len -= 1; - } - - _M_group_float(__lc->_M_grouping, __lc->_M_grouping_size, - __lc->_M_thousands_sep, __wp, __ws2 + __off, - __ws + __off, __len); - __len += __off; - - __ws = __ws2; - } - - // Pad. - const streamsize __w = __io.width(); - if (__w > static_cast(__len)) - { - _CharT* __ws3 = static_cast<_CharT*>(__builtin_alloca(sizeof(_CharT) - * __w)); - _M_pad(__fill, __w, __io, __ws3, __ws, __len); - __ws = __ws3; - } - __io.width(0); - - // [22.2.2.2.2] Stage 4. - // Write resulting, fully-formatted string to output iterator. - return std::__write(__s, __ws, __len); - } - - template - _OutIter - num_put<_CharT, _OutIter>:: - do_put(iter_type __s, ios_base& __io, char_type __fill, bool __v) const - { - const ios_base::fmtflags __flags = __io.flags(); - if ((__flags & ios_base::boolalpha) == 0) - { - const long __l = __v; - __s = _M_insert_int(__s, __io, __fill, __l); - } - else - { - typedef __numpunct_cache<_CharT> __cache_type; - __use_cache<__cache_type> __uc; - const locale& __loc = __io._M_getloc(); - const __cache_type* __lc = __uc(__loc); - - const _CharT* __name = __v ? __lc->_M_truename - : __lc->_M_falsename; - int __len = __v ? __lc->_M_truename_size - : __lc->_M_falsename_size; - - const streamsize __w = __io.width(); - if (__w > static_cast(__len)) - { - const streamsize __plen = __w - __len; - _CharT* __ps - = static_cast<_CharT*>(__builtin_alloca(sizeof(_CharT) - * __plen)); - - char_traits<_CharT>::assign(__ps, __plen, __fill); - __io.width(0); - - if ((__flags & ios_base::adjustfield) == ios_base::left) - { - __s = std::__write(__s, __name, __len); - __s = std::__write(__s, __ps, __plen); - } - else - { - __s = std::__write(__s, __ps, __plen); - __s = std::__write(__s, __name, __len); - } - return __s; - } - __io.width(0); - __s = std::__write(__s, __name, __len); - } - return __s; - } - - template - _OutIter - num_put<_CharT, _OutIter>:: - do_put(iter_type __s, ios_base& __io, char_type __fill, double __v) const - { return _M_insert_float(__s, __io, __fill, char(), __v); } - -#if defined _GLIBCXX_LONG_DOUBLE_COMPAT && defined __LONG_DOUBLE_128__ - template - _OutIter - num_put<_CharT, _OutIter>:: - __do_put(iter_type __s, ios_base& __io, char_type __fill, double __v) const - { return _M_insert_float(__s, __io, __fill, char(), __v); } -#endif - - template - _OutIter - num_put<_CharT, _OutIter>:: - do_put(iter_type __s, ios_base& __io, char_type __fill, - long double __v) const - { return _M_insert_float(__s, __io, __fill, 'L', __v); } - - template - _OutIter - num_put<_CharT, _OutIter>:: - do_put(iter_type __s, ios_base& __io, char_type __fill, - const void* __v) const - { - const ios_base::fmtflags __flags = __io.flags(); - const ios_base::fmtflags __fmt = ~(ios_base::basefield - | ios_base::uppercase); - __io.flags((__flags & __fmt) | (ios_base::hex | ios_base::showbase)); - - typedef __gnu_cxx::__conditional_type<(sizeof(const void*) - <= sizeof(unsigned long)), - unsigned long, unsigned long long>::__type _UIntPtrType; - - __s = _M_insert_int(__s, __io, __fill, - reinterpret_cast<_UIntPtrType>(__v)); - __io.flags(__flags); - return __s; - } - -#if defined _GLIBCXX_LONG_DOUBLE_ALT128_COMPAT \ - && defined __LONG_DOUBLE_IEEE128__ - template - _OutIter - num_put<_CharT, _OutIter>:: - __do_put(iter_type __s, ios_base& __io, char_type __fill, - __ibm128 __v) const - { return _M_insert_float(__s, __io, __fill, 'L', __v); } -#endif -_GLIBCXX_END_NAMESPACE_LDBL - - // Construct correctly padded string, as per 22.2.2.2.2 - // Assumes - // __newlen > __oldlen - // __news is allocated for __newlen size - - // NB: Of the two parameters, _CharT can be deduced from the - // function arguments. The other (_Traits) has to be explicitly specified. - template - void - __pad<_CharT, _Traits>::_S_pad(ios_base& __io, _CharT __fill, - _CharT* __news, const _CharT* __olds, - streamsize __newlen, streamsize __oldlen) - { - const size_t __plen = static_cast(__newlen - __oldlen); - const ios_base::fmtflags __adjust = __io.flags() & ios_base::adjustfield; - - // Padding last. - if (__adjust == ios_base::left) - { - _Traits::copy(__news, __olds, __oldlen); - _Traits::assign(__news + __oldlen, __plen, __fill); - return; - } - - size_t __mod = 0; - if (__adjust == ios_base::internal) - { - // Pad after the sign, if there is one. - // Pad after 0[xX], if there is one. - // Who came up with these rules, anyway? Jeeze. - const locale& __loc = __io._M_getloc(); - const ctype<_CharT>& __ctype = use_facet >(__loc); - - if (__ctype.widen('-') == __olds[0] - || __ctype.widen('+') == __olds[0]) - { - __news[0] = __olds[0]; - __mod = 1; - ++__news; - } - else if (__ctype.widen('0') == __olds[0] - && __oldlen > 1 - && (__ctype.widen('x') == __olds[1] - || __ctype.widen('X') == __olds[1])) - { - __news[0] = __olds[0]; - __news[1] = __olds[1]; - __mod = 2; - __news += 2; - } - // else Padding first. - } - _Traits::assign(__news, __plen, __fill); - _Traits::copy(__news + __plen, __olds + __mod, __oldlen - __mod); - } - - template - _CharT* - __add_grouping(_CharT* __s, _CharT __sep, - const char* __gbeg, size_t __gsize, - const _CharT* __first, const _CharT* __last) - { - size_t __idx = 0; - size_t __ctr = 0; - - while (__last - __first > __gbeg[__idx] - && static_cast(__gbeg[__idx]) > 0 - && __gbeg[__idx] != __gnu_cxx::__numeric_traits::__max) - { - __last -= __gbeg[__idx]; - __idx < __gsize - 1 ? ++__idx : ++__ctr; - } - - while (__first != __last) - *__s++ = *__first++; - - while (__ctr--) - { - *__s++ = __sep; - for (char __i = __gbeg[__idx]; __i > 0; --__i) - *__s++ = *__first++; - } - - while (__idx--) - { - *__s++ = __sep; - for (char __i = __gbeg[__idx]; __i > 0; --__i) - *__s++ = *__first++; - } - - return __s; - } - - // Inhibit implicit instantiations for required instantiations, - // which are defined via explicit instantiations elsewhere. -#if _GLIBCXX_EXTERN_TEMPLATE - extern template class _GLIBCXX_NAMESPACE_CXX11 numpunct; - extern template class _GLIBCXX_NAMESPACE_CXX11 numpunct_byname; - extern template class _GLIBCXX_NAMESPACE_LDBL num_get; - extern template class _GLIBCXX_NAMESPACE_LDBL num_put; - extern template class ctype_byname; - - extern template - const ctype* - __try_use_facet >(const locale&) _GLIBCXX_NOTHROW; - - extern template - const numpunct* - __try_use_facet >(const locale&) _GLIBCXX_NOTHROW; - - extern template - const num_put* - __try_use_facet >(const locale&) _GLIBCXX_NOTHROW; - - extern template - const num_get* - __try_use_facet >(const locale&) _GLIBCXX_NOTHROW; - - extern template - const ctype& - use_facet >(const locale&); - - extern template - const numpunct& - use_facet >(const locale&); - - extern template - const num_put& - use_facet >(const locale&); - - extern template - const num_get& - use_facet >(const locale&); - - extern template - bool - has_facet >(const locale&); - - extern template - bool - has_facet >(const locale&); - - extern template - bool - has_facet >(const locale&); - - extern template - bool - has_facet >(const locale&); - -#ifdef _GLIBCXX_USE_WCHAR_T - extern template class _GLIBCXX_NAMESPACE_CXX11 numpunct; - extern template class _GLIBCXX_NAMESPACE_CXX11 numpunct_byname; - extern template class _GLIBCXX_NAMESPACE_LDBL num_get; - extern template class _GLIBCXX_NAMESPACE_LDBL num_put; - extern template class ctype_byname; - - extern template - const ctype* - __try_use_facet >(const locale&) _GLIBCXX_NOTHROW; - - extern template - const numpunct* - __try_use_facet >(const locale&) _GLIBCXX_NOTHROW; - - extern template - const num_put* - __try_use_facet >(const locale&) _GLIBCXX_NOTHROW; - - extern template - const num_get* - __try_use_facet >(const locale&) _GLIBCXX_NOTHROW; - - extern template - const ctype& - use_facet >(const locale&); - - extern template - const numpunct& - use_facet >(const locale&); - - extern template - const num_put& - use_facet >(const locale&); - - extern template - const num_get& - use_facet >(const locale&); - - extern template - bool - has_facet >(const locale&); - - extern template - bool - has_facet >(const locale&); - - extern template - bool - has_facet >(const locale&); - - extern template - bool - has_facet >(const locale&); -#endif -#endif - -_GLIBCXX_END_NAMESPACE_VERSION -} // namespace - -#endif diff --git a/.ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@c++@13.1.1@bits@locale_facets.tcc.blob b/.ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@c++@13.1.1@bits@locale_facets.tcc.blob deleted file mode 100644 index 641141050e5af4e576af99b2419c9f15cfd822f1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 128775 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 diff --git a/.ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@c++@13.1.1@bits@localefwd.h b/.ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@c++@13.1.1@bits@localefwd.h deleted file mode 100644 index cf8e9ec..0000000 --- a/.ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@c++@13.1.1@bits@localefwd.h +++ /dev/null @@ -1,214 +0,0 @@ -// Forward declarations -*- C++ -*- - -// Copyright (C) 1997-2023 Free Software Foundation, Inc. -// -// This file is part of the GNU ISO C++ Library. This library is free -// software; you can redistribute it and/or modify it under the -// terms of the GNU General Public License as published by the -// Free Software Foundation; either version 3, or (at your option) -// any later version. - -// This library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. - -// Under Section 7 of GPL version 3, you are granted additional -// permissions described in the GCC Runtime Library Exception, version -// 3.1, as published by the Free Software Foundation. - -// You should have received a copy of the GNU General Public License and -// a copy of the GCC Runtime Library Exception along with this program; -// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see -// . - -/** @file bits/localefwd.h - * This is an internal header file, included by other library headers. - * Do not attempt to use it directly. @headername{locale} - */ - -// -// ISO C++ 14882: 22.1 Locales -// - -#ifndef _LOCALE_FWD_H -#define _LOCALE_FWD_H 1 - -#pragma GCC system_header - -#include -#include // Defines __c_locale, config-specific include -#include // For ostreambuf_iterator, istreambuf_iterator -#include - -namespace std _GLIBCXX_VISIBILITY(default) -{ -_GLIBCXX_BEGIN_NAMESPACE_VERSION - - /** - * @defgroup locales Locales - * - * Classes and functions for internationalization and localization. - */ - - // 22.1.1 Locale - class locale; - - template - bool - has_facet(const locale&) throw(); - - template - const _Facet& - use_facet(const locale&); - - // 22.1.3 Convenience interfaces - template - bool - isspace(_CharT, const locale&); - - template - bool - isprint(_CharT, const locale&); - - template - bool - iscntrl(_CharT, const locale&); - - template - bool - isupper(_CharT, const locale&); - - template - bool - islower(_CharT, const locale&); - - template - bool - isalpha(_CharT, const locale&); - - template - bool - isdigit(_CharT, const locale&); - - template - bool - ispunct(_CharT, const locale&); - - template - bool - isxdigit(_CharT, const locale&); - - template - bool - isalnum(_CharT, const locale&); - - template - bool - isgraph(_CharT, const locale&); - -#if __cplusplus >= 201103L - template - bool - isblank(_CharT, const locale&); -#endif - - template - _CharT - toupper(_CharT, const locale&); - - template - _CharT - tolower(_CharT, const locale&); - - // 22.2.1 and 22.2.1.3 ctype - struct ctype_base; - template - class ctype; - template<> class ctype; -#ifdef _GLIBCXX_USE_WCHAR_T - template<> class ctype; -#endif - template - class ctype_byname; - // NB: Specialized for char and wchar_t in locale_facets.h. - - class codecvt_base; - template - class codecvt; - template<> class codecvt; -#ifdef _GLIBCXX_USE_WCHAR_T - template<> class codecvt; -#endif -#if __cplusplus >= 201103L - template<> class codecvt; - template<> class codecvt; -#ifdef _GLIBCXX_USE_CHAR8_T - template<> class codecvt; - template<> class codecvt; -#endif -#endif - template - class codecvt_byname; - - // 22.2.2 and 22.2.3 numeric -_GLIBCXX_BEGIN_NAMESPACE_LDBL - template > - class num_get; - template > - class num_put; -_GLIBCXX_END_NAMESPACE_LDBL -_GLIBCXX_BEGIN_NAMESPACE_CXX11 - template class numpunct; - template class numpunct_byname; -_GLIBCXX_END_NAMESPACE_CXX11 - -_GLIBCXX_BEGIN_NAMESPACE_CXX11 - // 22.2.4 collation - template - class collate; - template - class collate_byname; -_GLIBCXX_END_NAMESPACE_CXX11 - - // 22.2.5 date and time - class time_base; -_GLIBCXX_BEGIN_NAMESPACE_CXX11 - template > - class time_get; - template > - class time_get_byname; -_GLIBCXX_END_NAMESPACE_CXX11 - template > - class time_put; - template > - class time_put_byname; - - // 22.2.6 money - class money_base; -_GLIBCXX_BEGIN_NAMESPACE_LDBL_OR_CXX11 - template > - class money_get; - template > - class money_put; -_GLIBCXX_END_NAMESPACE_LDBL_OR_CXX11 -_GLIBCXX_BEGIN_NAMESPACE_CXX11 - template - class moneypunct; - template - class moneypunct_byname; -_GLIBCXX_END_NAMESPACE_CXX11 - - // 22.2.7 message retrieval - struct messages_base; -_GLIBCXX_BEGIN_NAMESPACE_CXX11 - template - class messages; - template - class messages_byname; -_GLIBCXX_END_NAMESPACE_CXX11 - -_GLIBCXX_END_NAMESPACE_VERSION -} // namespace std - -#endif diff --git a/.ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@c++@13.1.1@bits@localefwd.h.blob b/.ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@c++@13.1.1@bits@localefwd.h.blob deleted file mode 100644 index 720362775102aba335928a02a7985f5a8b17ef13..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 16801 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 Forward declarations -*- C++ -*- - -// Copyright (C) 2001-2023 Free Software Foundation, Inc. -// -// This file is part of the GNU ISO C++ Library. This library is free -// software; you can redistribute it and/or modify it under the -// terms of the GNU General Public License as published by the -// Free Software Foundation; either version 3, or (at your option) -// any later version. - -// This library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. - -// Under Section 7 of GPL version 3, you are granted additional -// permissions described in the GCC Runtime Library Exception, version -// 3.1, as published by the Free Software Foundation. - -// You should have received a copy of the GNU General Public License and -// a copy of the GCC Runtime Library Exception along with this program; -// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see -// . - -/* - * Copyright (c) 1996-1997 - * Silicon Graphics Computer Systems, Inc. - * - * Permission to use, copy, modify, distribute and sell this software - * and its documentation for any purpose is hereby granted without fee, - * provided that the above copyright notice appear in all copies and - * that both that copyright notice and this permission notice appear - * in supporting documentation. Silicon Graphics makes no - * representations about the suitability of this software for any - * purpose. It is provided "as is" without express or implied warranty. - */ - -/** @file bits/memoryfwd.h - * This is an internal header file, included by other library headers. - * Do not attempt to use it directly. @headername{memory} - */ - -#ifndef _MEMORYFWD_H -#define _MEMORYFWD_H 1 - -#pragma GCC system_header - -#include - -namespace std _GLIBCXX_VISIBILITY(default) -{ -_GLIBCXX_BEGIN_NAMESPACE_VERSION - - /** - * @defgroup allocators Allocators - * @ingroup memory - * - * Classes encapsulating memory operations. - * - * @{ - */ - -#if _GLIBCXX_HOSTED - template - class allocator; - - template<> - class allocator; -#endif - -#if __cplusplus >= 201103L - /// Declare uses_allocator so it can be specialized in `` etc. - template - struct uses_allocator; - - template - struct allocator_traits; -#endif - - /// @} group memory - -_GLIBCXX_END_NAMESPACE_VERSION -} // namespace std - -#endif diff --git a/.ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@c++@13.1.1@bits@memoryfwd.h.blob b/.ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@c++@13.1.1@bits@memoryfwd.h.blob deleted file mode 100644 index 3ca7fe3792309875e437abbab9dd4e2fa31b6c99..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 9292 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. - -/** @file bits/move.h - * This is an internal header file, included by other library headers. - * Do not attempt to use it directly. @headername{utility} - */ - -#ifndef _MOVE_H -#define _MOVE_H 1 - -#include -#if __cplusplus < 201103L -# include -#else -# include // Brings in std::declval too. -#endif - -namespace std _GLIBCXX_VISIBILITY(default) -{ -_GLIBCXX_BEGIN_NAMESPACE_VERSION - - // Used, in C++03 mode too, by allocators, etc. - /** - * @brief Same as C++11 std::addressof - * @ingroup utilities - */ - template - inline _GLIBCXX_CONSTEXPR _Tp* - __addressof(_Tp& __r) _GLIBCXX_NOEXCEPT - { return __builtin_addressof(__r); } - -#if __cplusplus >= 201103L - - /** - * @addtogroup utilities - * @{ - */ - - /** - * @brief Forward an lvalue. - * @return The parameter cast to the specified type. - * - * This function is used to implement "perfect forwarding". - */ - template - _GLIBCXX_NODISCARD - constexpr _Tp&& - forward(typename std::remove_reference<_Tp>::type& __t) noexcept - { return static_cast<_Tp&&>(__t); } - - /** - * @brief Forward an rvalue. - * @return The parameter cast to the specified type. - * - * This function is used to implement "perfect forwarding". - */ - template - _GLIBCXX_NODISCARD - constexpr _Tp&& - forward(typename std::remove_reference<_Tp>::type&& __t) noexcept - { - static_assert(!std::is_lvalue_reference<_Tp>::value, - "std::forward must not be used to convert an rvalue to an lvalue"); - return static_cast<_Tp&&>(__t); - } - - /** - * @brief Convert a value to an rvalue. - * @param __t A thing of arbitrary type. - * @return The parameter cast to an rvalue-reference to allow moving it. - */ - template - _GLIBCXX_NODISCARD - constexpr typename std::remove_reference<_Tp>::type&& - move(_Tp&& __t) noexcept - { return static_cast::type&&>(__t); } - - - template - struct __move_if_noexcept_cond - : public __and_<__not_>, - is_copy_constructible<_Tp>>::type { }; - - /** - * @brief Conditionally convert a value to an rvalue. - * @param __x A thing of arbitrary type. - * @return The parameter, possibly cast to an rvalue-reference. - * - * Same as std::move unless the type's move constructor could throw and the - * type is copyable, in which case an lvalue-reference is returned instead. - */ - template - _GLIBCXX_NODISCARD - constexpr - __conditional_t<__move_if_noexcept_cond<_Tp>::value, const _Tp&, _Tp&&> - move_if_noexcept(_Tp& __x) noexcept - { return std::move(__x); } - - // declval, from type_traits. - -#if __cplusplus > 201402L - // _GLIBCXX_RESOLVE_LIB_DEFECTS - // 2296. std::addressof should be constexpr -# define __cpp_lib_addressof_constexpr 201603L -#endif - /** - * @brief Returns the actual address of the object or function - * referenced by r, even in the presence of an overloaded - * operator&. - * @param __r Reference to an object or function. - * @return The actual address. - */ - template - _GLIBCXX_NODISCARD - inline _GLIBCXX17_CONSTEXPR _Tp* - addressof(_Tp& __r) noexcept - { return std::__addressof(__r); } - - // _GLIBCXX_RESOLVE_LIB_DEFECTS - // 2598. addressof works on temporaries - template - const _Tp* addressof(const _Tp&&) = delete; - - // C++11 version of std::exchange for internal use. - template - _GLIBCXX20_CONSTEXPR - inline _Tp - __exchange(_Tp& __obj, _Up&& __new_val) - { - _Tp __old_val = std::move(__obj); - __obj = std::forward<_Up>(__new_val); - return __old_val; - } - - /// @} group utilities - -#define _GLIBCXX_FWDREF(_Tp) _Tp&& -#define _GLIBCXX_MOVE(__val) std::move(__val) -#define _GLIBCXX_FORWARD(_Tp, __val) std::forward<_Tp>(__val) -#else -#define _GLIBCXX_FWDREF(_Tp) const _Tp& -#define _GLIBCXX_MOVE(__val) (__val) -#define _GLIBCXX_FORWARD(_Tp, __val) (__val) -#endif - - /** - * @addtogroup utilities - * @{ - */ - - /** - * @brief Swaps two values. - * @param __a A thing of arbitrary type. - * @param __b Another thing of arbitrary type. - * @return Nothing. - */ - template - _GLIBCXX20_CONSTEXPR - inline -#if __cplusplus >= 201103L - typename enable_if<__and_<__not_<__is_tuple_like<_Tp>>, - is_move_constructible<_Tp>, - is_move_assignable<_Tp>>::value>::type -#else - void -#endif - swap(_Tp& __a, _Tp& __b) - _GLIBCXX_NOEXCEPT_IF(__and_, - is_nothrow_move_assignable<_Tp>>::value) - { -#if __cplusplus < 201103L - // concept requirements - __glibcxx_function_requires(_SGIAssignableConcept<_Tp>) -#endif - _Tp __tmp = _GLIBCXX_MOVE(__a); - __a = _GLIBCXX_MOVE(__b); - __b = _GLIBCXX_MOVE(__tmp); - } - - // _GLIBCXX_RESOLVE_LIB_DEFECTS - // DR 809. std::swap should be overloaded for array types. - /// Swap the contents of two arrays. - template - _GLIBCXX20_CONSTEXPR - inline -#if __cplusplus >= 201103L - typename enable_if<__is_swappable<_Tp>::value>::type -#else - void -#endif - swap(_Tp (&__a)[_Nm], _Tp (&__b)[_Nm]) - _GLIBCXX_NOEXCEPT_IF(__is_nothrow_swappable<_Tp>::value) - { - for (size_t __n = 0; __n < _Nm; ++__n) - swap(__a[__n], __b[__n]); - } - - /// @} group utilities -_GLIBCXX_END_NAMESPACE_VERSION -} // namespace - -#endif /* _MOVE_H */ diff --git a/.ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@c++@13.1.1@bits@move.h.blob b/.ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@c++@13.1.1@bits@move.h.blob deleted file mode 100644 index ec0a9368f63af9ab2bd4675f4f837f25e67e74f6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 17111 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 e@uxaY4R9Cmy?Ul;2K3CVnpx}NXZvR1@&60-b. - -/** @file bits/nested_exception.h - * This is an internal header file, included by other library headers. - * Do not attempt to use it directly. @headername{exception} - */ - -#ifndef _GLIBCXX_NESTED_EXCEPTION_H -#define _GLIBCXX_NESTED_EXCEPTION_H 1 - -#if __cplusplus < 201103L -# include -#else - -#include -#include - -extern "C++" { - -namespace std _GLIBCXX_VISIBILITY(default) -{ - /** - * @addtogroup exceptions - * @{ - */ - - /** Mixin class that stores the current exception. - * - * This type can be used via `std::throw_with_nested` to store - * the current exception nested within another exception. - * - * @headerfile exception - * @since C++11 - * @see std::throw_with_nested - * @ingroup exceptions - */ - class nested_exception - { - exception_ptr _M_ptr; - - public: - /// The default constructor stores the current exception (if any). - nested_exception() noexcept : _M_ptr(current_exception()) { } - - nested_exception(const nested_exception&) noexcept = default; - - nested_exception& operator=(const nested_exception&) noexcept = default; - - virtual ~nested_exception() noexcept; - - /// Rethrow the stored exception, or terminate if none was stored. - [[noreturn]] - void - rethrow_nested() const - { - if (_M_ptr) - rethrow_exception(_M_ptr); - std::terminate(); - } - - /// Access the stored exception. - exception_ptr - nested_ptr() const noexcept - { return _M_ptr; } - }; - - /// @cond undocumented - - template - struct _Nested_exception : public _Except, public nested_exception - { - explicit _Nested_exception(const _Except& __ex) - : _Except(__ex) - { } - - explicit _Nested_exception(_Except&& __ex) - : _Except(static_cast<_Except&&>(__ex)) - { } - }; - -#if __cplusplus < 201703L || ! defined __cpp_if_constexpr - // [except.nested]/8 - // Throw an exception of unspecified type that is publicly derived from - // both remove_reference_t<_Tp> and nested_exception. - template - [[noreturn]] - inline void - __throw_with_nested_impl(_Tp&& __t, true_type) - { - throw _Nested_exception<__remove_cvref_t<_Tp>>{std::forward<_Tp>(__t)}; - } - - template - [[noreturn]] - inline void - __throw_with_nested_impl(_Tp&& __t, false_type) - { throw std::forward<_Tp>(__t); } -#endif - - /// @endcond - - /** Throw an exception that also stores the currently active exception. - * - * If `_Tp` is derived from `std::nested_exception` or is not usable - * as a base-class, throws a copy of `__t`. - * Otherwise, throws an object of an implementation-defined type derived - * from both `_Tp` and `std::nested_exception`, containing a copy of `__t` - * and the result of `std::current_exception()`. - * - * In other words, throws the argument as a new exception that contains - * the currently active exception nested within it. This is intended for - * use in a catch handler to replace the caught exception with a different - * type, while still preserving the original exception. When the new - * exception is caught, the nested exception can be rethrown by using - * `std::rethrow_if_nested`. - * - * This can be used at API boundaries, for example to catch a library's - * internal exception type and rethrow it nested with a `std::runtime_error`, - * or vice versa. - * - * @since C++11 - */ - template - [[noreturn]] - inline void - throw_with_nested(_Tp&& __t) - { - using _Up = typename decay<_Tp>::type; - using _CopyConstructible - = __and_, is_move_constructible<_Up>>; - static_assert(_CopyConstructible::value, - "throw_with_nested argument must be CopyConstructible"); - -#if __cplusplus >= 201703L && __cpp_if_constexpr - if constexpr (is_class_v<_Up>) - if constexpr (!is_final_v<_Up>) - if constexpr (!is_base_of_v) - throw _Nested_exception<_Up>{std::forward<_Tp>(__t)}; - throw std::forward<_Tp>(__t); -#else - using __nest = __and_, __bool_constant, - __not_>>; - std::__throw_with_nested_impl(std::forward<_Tp>(__t), __nest{}); -#endif - } - -#if __cplusplus < 201703L || ! defined __cpp_if_constexpr - /// @cond undocumented - - // Attempt dynamic_cast to nested_exception and call rethrow_nested(). - template - inline void - __rethrow_if_nested_impl(const _Ex* __ptr, true_type) - { - if (auto __ne_ptr = dynamic_cast(__ptr)) - __ne_ptr->rethrow_nested(); - } - - // Otherwise, no effects. - inline void - __rethrow_if_nested_impl(const void*, false_type) - { } - - /// @endcond -#endif - - /** Rethrow a nested exception - * - * If `__ex` contains a `std::nested_exception` object, call its - * `rethrow_nested()` member to rethrow the stored exception. - * - * After catching an exception thrown by a call to `std::throw_with_nested` - * this function can be used to rethrow the exception that was active when - * `std::throw_with_nested` was called. - * - * @since C++11 - */ - // _GLIBCXX_RESOLVE_LIB_DEFECTS - // 2484. rethrow_if_nested() is doubly unimplementable - // 2784. Resolution to LWG 2484 is missing "otherwise, no effects" and [...] - template -# if ! __cpp_rtti - [[__gnu__::__always_inline__]] -#endif - inline void - rethrow_if_nested(const _Ex& __ex) - { - const _Ex* __ptr = __builtin_addressof(__ex); -#if __cplusplus < 201703L || ! defined __cpp_if_constexpr -# if __cpp_rtti - using __cast = __and_, - __or_<__not_>, - is_convertible<_Ex*, nested_exception*>>>; -# else - using __cast = __and_, - is_base_of, - is_convertible<_Ex*, nested_exception*>>; -# endif - std::__rethrow_if_nested_impl(__ptr, __cast{}); -#else - if constexpr (!is_polymorphic_v<_Ex>) - return; - else if constexpr (is_base_of_v - && !is_convertible_v<_Ex*, nested_exception*>) - return; // nested_exception base class is inaccessible or ambiguous. -# if ! __cpp_rtti - else if constexpr (!is_base_of_v) - return; // Cannot do polymorphic casts without RTTI. -# endif - else if (auto __ne_ptr = dynamic_cast(__ptr)) - __ne_ptr->rethrow_nested(); -#endif - } - - /// @} group exceptions -} // namespace std - -} // extern "C++" - -#endif // C++11 -#endif // _GLIBCXX_NESTED_EXCEPTION_H diff --git a/.ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@c++@13.1.1@bits@nested_exception.h.blob b/.ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@c++@13.1.1@bits@nested_exception.h.blob deleted file mode 100644 index 55923ff988d18174e1a162eb870ce5c58ed3ad67..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 18198 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 VgBhkP. - -/** @file bits/new_allocator.h - * This is an internal header file, included by other library headers. - * Do not attempt to use it directly. @headername{memory} - */ - -#ifndef _STD_NEW_ALLOCATOR_H -#define _STD_NEW_ALLOCATOR_H 1 - -#include -#include -#include -#include -#if __cplusplus >= 201103L -#include -#endif - -namespace std _GLIBCXX_VISIBILITY(default) -{ -_GLIBCXX_BEGIN_NAMESPACE_VERSION - - /** - * @brief An allocator that uses global `new`, as per C++03 [20.4.1]. - * @ingroup allocators - * - * This is precisely the allocator defined in the C++ Standard. - * - all allocation calls `operator new` - * - all deallocation calls `operator delete` - * - * This is the default base-class implementation of `std::allocator`, - * and is also the base-class of the `__gnu_cxx::new_allocator` extension. - * You should use either `std::allocator` or `__gnu_cxx::new_allocator` - * instead of using this directly. - * - * @tparam _Tp Type of allocated object. - * - * @headerfile memory - */ - template - class __new_allocator - { - public: - typedef _Tp value_type; - typedef std::size_t size_type; - typedef std::ptrdiff_t difference_type; -#if __cplusplus <= 201703L - typedef _Tp* pointer; - typedef const _Tp* const_pointer; - typedef _Tp& reference; - typedef const _Tp& const_reference; - - template - struct rebind - { typedef __new_allocator<_Tp1> other; }; -#endif - -#if __cplusplus >= 201103L - // _GLIBCXX_RESOLVE_LIB_DEFECTS - // 2103. propagate_on_container_move_assignment - typedef std::true_type propagate_on_container_move_assignment; -#endif - - __attribute__((__always_inline__)) - _GLIBCXX20_CONSTEXPR - __new_allocator() _GLIBCXX_USE_NOEXCEPT { } - - __attribute__((__always_inline__)) - _GLIBCXX20_CONSTEXPR - __new_allocator(const __new_allocator&) _GLIBCXX_USE_NOEXCEPT { } - - template - __attribute__((__always_inline__)) - _GLIBCXX20_CONSTEXPR - __new_allocator(const __new_allocator<_Tp1>&) _GLIBCXX_USE_NOEXCEPT { } - -#if __cplusplus <= 201703L - ~__new_allocator() _GLIBCXX_USE_NOEXCEPT { } - - pointer - address(reference __x) const _GLIBCXX_NOEXCEPT - { return std::__addressof(__x); } - - const_pointer - address(const_reference __x) const _GLIBCXX_NOEXCEPT - { return std::__addressof(__x); } -#endif - -#if __has_builtin(__builtin_operator_new) >= 201802L -# define _GLIBCXX_OPERATOR_NEW __builtin_operator_new -# define _GLIBCXX_OPERATOR_DELETE __builtin_operator_delete -#else -# define _GLIBCXX_OPERATOR_NEW ::operator new -# define _GLIBCXX_OPERATOR_DELETE ::operator delete -#endif - - // NB: __n is permitted to be 0. The C++ standard says nothing - // about what the return value is when __n == 0. - _GLIBCXX_NODISCARD _Tp* - allocate(size_type __n, const void* = static_cast(0)) - { -#if __cplusplus >= 201103L - // _GLIBCXX_RESOLVE_LIB_DEFECTS - // 3308. std::allocator().allocate(n) - static_assert(sizeof(_Tp) != 0, "cannot allocate incomplete types"); -#endif - - if (__builtin_expect(__n > this->_M_max_size(), false)) - { - // _GLIBCXX_RESOLVE_LIB_DEFECTS - // 3190. allocator::allocate sometimes returns too little storage - if (__n > (std::size_t(-1) / sizeof(_Tp))) - std::__throw_bad_array_new_length(); - std::__throw_bad_alloc(); - } - -#if __cpp_aligned_new - if (alignof(_Tp) > __STDCPP_DEFAULT_NEW_ALIGNMENT__) - { - std::align_val_t __al = std::align_val_t(alignof(_Tp)); - return static_cast<_Tp*>(_GLIBCXX_OPERATOR_NEW(__n * sizeof(_Tp), - __al)); - } -#endif - return static_cast<_Tp*>(_GLIBCXX_OPERATOR_NEW(__n * sizeof(_Tp))); - } - - // __p is not permitted to be a null pointer. - void - deallocate(_Tp* __p, size_type __n __attribute__ ((__unused__))) - { -#if __cpp_sized_deallocation -# define _GLIBCXX_SIZED_DEALLOC(p, n) (p), (n) * sizeof(_Tp) -#else -# define _GLIBCXX_SIZED_DEALLOC(p, n) (p) -#endif - -#if __cpp_aligned_new - if (alignof(_Tp) > __STDCPP_DEFAULT_NEW_ALIGNMENT__) - { - _GLIBCXX_OPERATOR_DELETE(_GLIBCXX_SIZED_DEALLOC(__p, __n), - std::align_val_t(alignof(_Tp))); - return; - } -#endif - _GLIBCXX_OPERATOR_DELETE(_GLIBCXX_SIZED_DEALLOC(__p, __n)); - } - -#undef _GLIBCXX_SIZED_DEALLOC -#undef _GLIBCXX_OPERATOR_DELETE -#undef _GLIBCXX_OPERATOR_NEW - -#if __cplusplus <= 201703L - __attribute__((__always_inline__)) - size_type - max_size() const _GLIBCXX_USE_NOEXCEPT - { return _M_max_size(); } - -#if __cplusplus >= 201103L - template - __attribute__((__always_inline__)) - void - construct(_Up* __p, _Args&&... __args) - noexcept(std::is_nothrow_constructible<_Up, _Args...>::value) - { ::new((void *)__p) _Up(std::forward<_Args>(__args)...); } - - template - __attribute__((__always_inline__)) - void - destroy(_Up* __p) - noexcept(std::is_nothrow_destructible<_Up>::value) - { __p->~_Up(); } -#else - // _GLIBCXX_RESOLVE_LIB_DEFECTS - // 402. wrong new expression in [some_] allocator::construct - __attribute__((__always_inline__)) - void - construct(pointer __p, const _Tp& __val) - { ::new((void *)__p) _Tp(__val); } - - __attribute__((__always_inline__)) - void - destroy(pointer __p) { __p->~_Tp(); } -#endif -#endif // ! C++20 - - template - friend __attribute__((__always_inline__)) _GLIBCXX20_CONSTEXPR bool - operator==(const __new_allocator&, const __new_allocator<_Up>&) - _GLIBCXX_NOTHROW - { return true; } - -#if __cpp_impl_three_way_comparison < 201907L - template - friend __attribute__((__always_inline__)) _GLIBCXX20_CONSTEXPR bool - operator!=(const __new_allocator&, const __new_allocator<_Up>&) - _GLIBCXX_NOTHROW - { return false; } -#endif - - private: - __attribute__((__always_inline__)) - _GLIBCXX_CONSTEXPR size_type - _M_max_size() const _GLIBCXX_USE_NOEXCEPT - { -#if __PTRDIFF_MAX__ < __SIZE_MAX__ - return std::size_t(__PTRDIFF_MAX__) / sizeof(_Tp); -#else - return std::size_t(-1) / sizeof(_Tp); -#endif - } - }; - -_GLIBCXX_END_NAMESPACE_VERSION -} // namespace - -#endif diff --git a/.ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@c++@13.1.1@bits@new_allocator.h.blob b/.ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@c++@13.1.1@bits@new_allocator.h.blob deleted file mode 100644 index 82bded2eddc0e1c565cac937c86d65d72ccb7773..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 17413 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 BP{RNK diff --git a/.ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@c++@13.1.1@bits@ostream.tcc b/.ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@c++@13.1.1@bits@ostream.tcc deleted file mode 100644 index bb85842..0000000 --- a/.ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@c++@13.1.1@bits@ostream.tcc +++ /dev/null @@ -1,393 +0,0 @@ -// ostream classes -*- C++ -*- - -// Copyright (C) 1997-2023 Free Software Foundation, Inc. -// -// This file is part of the GNU ISO C++ Library. This library is free -// software; you can redistribute it and/or modify it under the -// terms of the GNU General Public License as published by the -// Free Software Foundation; either version 3, or (at your option) -// any later version. - -// This library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. - -// Under Section 7 of GPL version 3, you are granted additional -// permissions described in the GCC Runtime Library Exception, version -// 3.1, as published by the Free Software Foundation. - -// You should have received a copy of the GNU General Public License and -// a copy of the GCC Runtime Library Exception along with this program; -// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see -// . - -/** @file bits/ostream.tcc - * This is an internal header file, included by other library headers. - * Do not attempt to use it directly. @headername{ostream} - */ - -// -// ISO C++ 14882: 27.6.2 Output streams -// - -#ifndef _OSTREAM_TCC -#define _OSTREAM_TCC 1 - -#pragma GCC system_header - -#include - -namespace std _GLIBCXX_VISIBILITY(default) -{ -_GLIBCXX_BEGIN_NAMESPACE_VERSION - - template - basic_ostream<_CharT, _Traits>::sentry:: - sentry(basic_ostream<_CharT, _Traits>& __os) - : _M_ok(false), _M_os(__os) - { - // XXX MT - if (__os.tie() && __os.good()) - __os.tie()->flush(); - - if (__os.good()) - _M_ok = true; - else if (__os.bad()) - __os.setstate(ios_base::failbit); - } - - template - template - basic_ostream<_CharT, _Traits>& - basic_ostream<_CharT, _Traits>:: - _M_insert(_ValueT __v) - { - sentry __cerb(*this); - if (__cerb) - { - ios_base::iostate __err = ios_base::goodbit; - __try - { -#ifndef _GLIBCXX_LONG_DOUBLE_ALT128_COMPAT - const __num_put_type& __np = __check_facet(this->_M_num_put); -#else - const __num_put_type& __np - = use_facet<__num_put_type>(this->_M_ios_locale); -#endif - if (__np.put(*this, *this, this->fill(), __v).failed()) - __err |= ios_base::badbit; - } - __catch(__cxxabiv1::__forced_unwind&) - { - this->_M_setstate(ios_base::badbit); - __throw_exception_again; - } - __catch(...) - { this->_M_setstate(ios_base::badbit); } - if (__err) - this->setstate(__err); - } - return *this; - } - - template - basic_ostream<_CharT, _Traits>& - basic_ostream<_CharT, _Traits>:: - operator<<(short __n) - { - // _GLIBCXX_RESOLVE_LIB_DEFECTS - // 117. basic_ostream uses nonexistent num_put member functions. - const ios_base::fmtflags __fmt = this->flags() & ios_base::basefield; - if (__fmt == ios_base::oct || __fmt == ios_base::hex) - return _M_insert(static_cast(static_cast(__n))); - else - return _M_insert(static_cast(__n)); - } - - template - basic_ostream<_CharT, _Traits>& - basic_ostream<_CharT, _Traits>:: - operator<<(int __n) - { - // _GLIBCXX_RESOLVE_LIB_DEFECTS - // 117. basic_ostream uses nonexistent num_put member functions. - const ios_base::fmtflags __fmt = this->flags() & ios_base::basefield; - if (__fmt == ios_base::oct || __fmt == ios_base::hex) - return _M_insert(static_cast(static_cast(__n))); - else - return _M_insert(static_cast(__n)); - } - - template - basic_ostream<_CharT, _Traits>& - basic_ostream<_CharT, _Traits>:: - operator<<(__streambuf_type* __sbin) - { - ios_base::iostate __err = ios_base::goodbit; - sentry __cerb(*this); - if (__cerb && __sbin) - { - __try - { - if (!__copy_streambufs(__sbin, this->rdbuf())) - __err |= ios_base::failbit; - } - __catch(__cxxabiv1::__forced_unwind&) - { - this->_M_setstate(ios_base::badbit); - __throw_exception_again; - } - __catch(...) - { this->_M_setstate(ios_base::failbit); } - } - else if (!__sbin) - __err |= ios_base::badbit; - if (__err) - this->setstate(__err); - return *this; - } - - template - basic_ostream<_CharT, _Traits>& - basic_ostream<_CharT, _Traits>:: - put(char_type __c) - { - // _GLIBCXX_RESOLVE_LIB_DEFECTS - // DR 60. What is a formatted input function? - // basic_ostream::put(char_type) is an unformatted output function. - // DR 63. Exception-handling policy for unformatted output. - // Unformatted output functions should catch exceptions thrown - // from streambuf members. - sentry __cerb(*this); - if (__cerb) - { - ios_base::iostate __err = ios_base::goodbit; - __try - { - const int_type __put = this->rdbuf()->sputc(__c); - if (traits_type::eq_int_type(__put, traits_type::eof())) - __err |= ios_base::badbit; - } - __catch(__cxxabiv1::__forced_unwind&) - { - this->_M_setstate(ios_base::badbit); - __throw_exception_again; - } - __catch(...) - { this->_M_setstate(ios_base::badbit); } - if (__err) - this->setstate(__err); - } - return *this; - } - - template - basic_ostream<_CharT, _Traits>& - basic_ostream<_CharT, _Traits>:: - write(const _CharT* __s, streamsize __n) - { - // _GLIBCXX_RESOLVE_LIB_DEFECTS - // DR 60. What is a formatted input function? - // basic_ostream::write(const char_type*, streamsize) is an - // unformatted output function. - // DR 63. Exception-handling policy for unformatted output. - // Unformatted output functions should catch exceptions thrown - // from streambuf members. - sentry __cerb(*this); - if (__cerb) - { - ios_base::iostate __err = ios_base::goodbit; - __try - { - if (this->rdbuf()->sputn(__s, __n) != __n) - __err = ios_base::badbit; - } - __catch(__cxxabiv1::__forced_unwind&) - { - this->_M_setstate(ios_base::badbit); - __throw_exception_again; - } - __catch(...) - { this->_M_setstate(ios_base::badbit); } - if (__err) - this->setstate(ios_base::badbit); - } - return *this; - } - - template - basic_ostream<_CharT, _Traits>& - basic_ostream<_CharT, _Traits>:: - flush() - { - // _GLIBCXX_RESOLVE_LIB_DEFECTS - // DR 60. What is a formatted input function? - // basic_ostream::flush() is *not* an unformatted output function. - // 581. flush() not unformatted function - // basic_ostream::flush() *is* an unformatted output function. - if (__streambuf_type* __buf = this->rdbuf()) - { - sentry __cerb(*this); - if (__cerb) - { - ios_base::iostate __err = ios_base::goodbit; - __try - { - if (this->rdbuf()->pubsync() == -1) - __err |= ios_base::badbit; - } - __catch(__cxxabiv1::__forced_unwind&) - { - this->_M_setstate(ios_base::badbit); - __throw_exception_again; - } - __catch(...) - { this->_M_setstate(ios_base::badbit); } - if (__err) - this->setstate(__err); - } - } - return *this; - } - - template - typename basic_ostream<_CharT, _Traits>::pos_type - basic_ostream<_CharT, _Traits>:: - tellp() - { - sentry __cerb(*this); - pos_type __ret = pos_type(-1); - if (!this->fail()) - __ret = this->rdbuf()->pubseekoff(0, ios_base::cur, ios_base::out); - return __ret; - } - - template - basic_ostream<_CharT, _Traits>& - basic_ostream<_CharT, _Traits>:: - seekp(pos_type __pos) - { - sentry __cerb(*this); - if (!this->fail()) - { - // _GLIBCXX_RESOLVE_LIB_DEFECTS - // 136. seekp, seekg setting wrong streams? - const pos_type __p = this->rdbuf()->pubseekpos(__pos, ios_base::out); - - // 129. Need error indication from seekp() and seekg() - if (__p == pos_type(off_type(-1))) - this->setstate(ios_base::failbit); - } - return *this; - } - - template - basic_ostream<_CharT, _Traits>& - basic_ostream<_CharT, _Traits>:: - seekp(off_type __off, ios_base::seekdir __dir) - { - sentry __cerb(*this); - if (!this->fail()) - { - // _GLIBCXX_RESOLVE_LIB_DEFECTS - // 136. seekp, seekg setting wrong streams? - const pos_type __p = this->rdbuf()->pubseekoff(__off, __dir, - ios_base::out); - - // 129. Need error indication from seekp() and seekg() - if (__p == pos_type(off_type(-1))) - this->setstate(ios_base::failbit); - } - return *this; - } - - template - basic_ostream<_CharT, _Traits>& - operator<<(basic_ostream<_CharT, _Traits>& __out, const char* __s) - { - if (!__s) - __out.setstate(ios_base::badbit); - else - { - // _GLIBCXX_RESOLVE_LIB_DEFECTS - // 167. Improper use of traits_type::length() - const size_t __clen = char_traits::length(__s); - __try - { - struct __ptr_guard - { - _CharT *__p; - __ptr_guard (_CharT *__ip): __p(__ip) { } - ~__ptr_guard() { delete[] __p; } - _CharT* __get() { return __p; } - } __pg (new _CharT[__clen]); - - _CharT *__ws = __pg.__get(); - for (size_t __i = 0; __i < __clen; ++__i) - __ws[__i] = __out.widen(__s[__i]); - __ostream_insert(__out, __ws, __clen); - } - __catch(__cxxabiv1::__forced_unwind&) - { - __out._M_setstate(ios_base::badbit); - __throw_exception_again; - } - __catch(...) - { __out._M_setstate(ios_base::badbit); } - } - return __out; - } - - // Inhibit implicit instantiations for required instantiations, - // which are defined via explicit instantiations elsewhere. -#if _GLIBCXX_EXTERN_TEMPLATE - extern template class basic_ostream; - extern template ostream& endl(ostream&); - extern template ostream& ends(ostream&); - extern template ostream& flush(ostream&); - extern template ostream& operator<<(ostream&, char); - extern template ostream& operator<<(ostream&, unsigned char); - extern template ostream& operator<<(ostream&, signed char); - extern template ostream& operator<<(ostream&, const char*); - extern template ostream& operator<<(ostream&, const unsigned char*); - extern template ostream& operator<<(ostream&, const signed char*); - - extern template ostream& ostream::_M_insert(long); - extern template ostream& ostream::_M_insert(unsigned long); - extern template ostream& ostream::_M_insert(bool); -#ifdef _GLIBCXX_USE_LONG_LONG - extern template ostream& ostream::_M_insert(long long); - extern template ostream& ostream::_M_insert(unsigned long long); -#endif - extern template ostream& ostream::_M_insert(double); - extern template ostream& ostream::_M_insert(long double); - extern template ostream& ostream::_M_insert(const void*); - -#ifdef _GLIBCXX_USE_WCHAR_T - extern template class basic_ostream; - extern template wostream& endl(wostream&); - extern template wostream& ends(wostream&); - extern template wostream& flush(wostream&); - extern template wostream& operator<<(wostream&, wchar_t); - extern template wostream& operator<<(wostream&, char); - extern template wostream& operator<<(wostream&, const wchar_t*); - extern template wostream& operator<<(wostream&, const char*); - - extern template wostream& wostream::_M_insert(long); - extern template wostream& wostream::_M_insert(unsigned long); - extern template wostream& wostream::_M_insert(bool); -#ifdef _GLIBCXX_USE_LONG_LONG - extern template wostream& wostream::_M_insert(long long); - extern template wostream& wostream::_M_insert(unsigned long long); -#endif - extern template wostream& wostream::_M_insert(double); - extern template wostream& wostream::_M_insert(long double); - extern template wostream& wostream::_M_insert(const void*); -#endif -#endif - -_GLIBCXX_END_NAMESPACE_VERSION -} // namespace std - -#endif diff --git a/.ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@c++@13.1.1@bits@ostream.tcc.blob b/.ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@c++@13.1.1@bits@ostream.tcc.blob deleted file mode 100644 index 4821877cb310f396732e81ab10c1f55d681cbeb1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 33893 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

    Gx!qsVi`*T9@n-A=xMDl06@i-F-BY9m5%t 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. - -/** @file bits/ostream_insert.h - * This is an internal header file, included by other library headers. - * Do not attempt to use it directly. @headername{ostream} - */ - -#ifndef _OSTREAM_INSERT_H -#define _OSTREAM_INSERT_H 1 - -#pragma GCC system_header - -#include -#include -#include - -namespace std _GLIBCXX_VISIBILITY(default) -{ -_GLIBCXX_BEGIN_NAMESPACE_VERSION - - /// @cond undocumented - - template - inline void - __ostream_write(basic_ostream<_CharT, _Traits>& __out, - const _CharT* __s, streamsize __n) - { - typedef basic_ostream<_CharT, _Traits> __ostream_type; - typedef typename __ostream_type::ios_base __ios_base; - - const streamsize __put = __out.rdbuf()->sputn(__s, __n); - if (__put != __n) - __out.setstate(__ios_base::badbit); - } - - template - inline void - __ostream_fill(basic_ostream<_CharT, _Traits>& __out, streamsize __n) - { - typedef basic_ostream<_CharT, _Traits> __ostream_type; - typedef typename __ostream_type::ios_base __ios_base; - - const _CharT __c = __out.fill(); - for (; __n > 0; --__n) - { - const typename _Traits::int_type __put = __out.rdbuf()->sputc(__c); - if (_Traits::eq_int_type(__put, _Traits::eof())) - { - __out.setstate(__ios_base::badbit); - break; - } - } - } - - template - basic_ostream<_CharT, _Traits>& - __ostream_insert(basic_ostream<_CharT, _Traits>& __out, - const _CharT* __s, streamsize __n) - { - typedef basic_ostream<_CharT, _Traits> __ostream_type; - typedef typename __ostream_type::ios_base __ios_base; - - typename __ostream_type::sentry __cerb(__out); - if (__cerb) - { - __try - { - const streamsize __w = __out.width(); - if (__w > __n) - { - const bool __left = ((__out.flags() - & __ios_base::adjustfield) - == __ios_base::left); - if (!__left) - __ostream_fill(__out, __w - __n); - if (__out.good()) - __ostream_write(__out, __s, __n); - if (__left && __out.good()) - __ostream_fill(__out, __w - __n); - } - else - __ostream_write(__out, __s, __n); - __out.width(0); - } - __catch(__cxxabiv1::__forced_unwind&) - { - __out._M_setstate(__ios_base::badbit); - __throw_exception_again; - } - __catch(...) - { __out._M_setstate(__ios_base::badbit); } - } - return __out; - } - - // Inhibit implicit instantiations for required instantiations, - // which are defined via explicit instantiations elsewhere. -#if _GLIBCXX_EXTERN_TEMPLATE - extern template ostream& __ostream_insert(ostream&, const char*, streamsize); - -#ifdef _GLIBCXX_USE_WCHAR_T - extern template wostream& __ostream_insert(wostream&, const wchar_t*, - streamsize); -#endif -#endif - - /// @endcond - -_GLIBCXX_END_NAMESPACE_VERSION -} // namespace std - -#endif /* _OSTREAM_INSERT_H */ diff --git a/.ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@c++@13.1.1@bits@ostream_insert.h.blob b/.ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@c++@13.1.1@bits@ostream_insert.h.blob deleted file mode 100644 index 8e11d15f26726dbe98af5b8e1097fe722b3e7c85..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 13144 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 diff --git a/.ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@c++@13.1.1@bits@postypes.h b/.ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@c++@13.1.1@bits@postypes.h deleted file mode 100644 index 2298a72..0000000 --- a/.ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@c++@13.1.1@bits@postypes.h +++ /dev/null @@ -1,223 +0,0 @@ -// Position types -*- C++ -*- - -// Copyright (C) 1997-2023 Free Software Foundation, Inc. -// -// This file is part of the GNU ISO C++ Library. This library is free -// software; you can redistribute it and/or modify it under the -// terms of the GNU General Public License as published by the -// Free Software Foundation; either version 3, or (at your option) -// any later version. - -// This library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. - -// Under Section 7 of GPL version 3, you are granted additional -// permissions described in the GCC Runtime Library Exception, version -// 3.1, as published by the Free Software Foundation. - -// You should have received a copy of the GNU General Public License and -// a copy of the GCC Runtime Library Exception along with this program; -// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see -// . - -/** @file bits/postypes.h - * This is an internal header file, included by other library headers. - * Do not attempt to use it directly. @headername{iosfwd} - */ - -// -// ISO C++ 14882: 27.4.1 - Types -// ISO C++ 14882: 27.4.3 - Template class fpos -// - -#ifndef _GLIBCXX_POSTYPES_H -#define _GLIBCXX_POSTYPES_H 1 - -#pragma GCC system_header - -#include // For mbstate_t - -namespace std _GLIBCXX_VISIBILITY(default) -{ -_GLIBCXX_BEGIN_NAMESPACE_VERSION - - // The types streamoff, streampos and wstreampos and the class - // template fpos<> are described in clauses 21.1.2, 21.1.3, 27.1.2, - // 27.2, 27.4.1, 27.4.3 and D.6. Despite all this verbiage, the - // behaviour of these types is mostly implementation defined or - // unspecified. The behaviour in this implementation is as noted - // below. - - /** - * @brief Type used by fpos, char_traits, and char_traits. - * - * In clauses 21.1.3.1 and 27.4.1 streamoff is described as an - * implementation defined type. - * Note: In versions of GCC up to and including GCC 3.3, streamoff - * was typedef long. - */ -#ifdef __INT64_TYPE__ - typedef __INT64_TYPE__ streamoff; -#else - typedef long long streamoff; -#endif - - /// Integral type for I/O operation counts and buffer sizes. - typedef ptrdiff_t streamsize; // Signed integral type - - /** - * @brief Class representing stream positions. - * - * The standard places no requirements upon the template parameter StateT. - * In this implementation StateT must be DefaultConstructible, - * CopyConstructible and Assignable. The standard only requires that fpos - * should contain a member of type StateT. In this implementation it also - * contains an offset stored as a signed integer. - * - * @param StateT Type passed to and returned from state(). - */ - template - class fpos - { - private: - streamoff _M_off; - _StateT _M_state; - - public: - // The standard doesn't require that fpos objects can be default - // constructed. This implementation provides a default - // constructor that initializes the offset to 0 and default - // constructs the state. - fpos() - : _M_off(0), _M_state() { } - - // The standard requires that fpos objects can be constructed - // from streamoff objects using the constructor syntax, and - // fails to give any meaningful semantics. In this - // implementation implicit conversion is also allowed, and this - // constructor stores the streamoff as the offset and default - // constructs the state. - /// Construct position from offset. - fpos(streamoff __off) - : _M_off(__off), _M_state() { } - -#if __cplusplus >= 201103L - fpos(const fpos&) = default; - fpos& operator=(const fpos&) = default; - ~fpos() = default; -#endif - - /// Convert to streamoff. - operator streamoff() const { return _M_off; } - - /// Remember the value of @a st. - void - state(_StateT __st) - { _M_state = __st; } - - /// Return the last set value of @a st. - _StateT - state() const - { return _M_state; } - - // The standard requires that this operator must be defined, but - // gives no semantics. In this implementation it just adds its - // argument to the stored offset and returns *this. - /// Add offset to this position. - fpos& - operator+=(streamoff __off) - { - _M_off += __off; - return *this; - } - - // The standard requires that this operator must be defined, but - // gives no semantics. In this implementation it just subtracts - // its argument from the stored offset and returns *this. - /// Subtract offset from this position. - fpos& - operator-=(streamoff __off) - { - _M_off -= __off; - return *this; - } - - // The standard requires that this operator must be defined, but - // defines its semantics only in terms of operator-. In this - // implementation it constructs a copy of *this, adds the - // argument to that copy using operator+= and then returns the - // copy. - /// Add position and offset. - fpos - operator+(streamoff __off) const - { - fpos __pos(*this); - __pos += __off; - return __pos; - } - - // The standard requires that this operator must be defined, but - // defines its semantics only in terms of operator+. In this - // implementation it constructs a copy of *this, subtracts the - // argument from that copy using operator-= and then returns the - // copy. - /// Subtract offset from position. - fpos - operator-(streamoff __off) const - { - fpos __pos(*this); - __pos -= __off; - return __pos; - } - - // The standard requires that this operator must be defined, but - // defines its semantics only in terms of operator+. In this - // implementation it returns the difference between the offset - // stored in *this and in the argument. - /// Subtract position to return offset. - streamoff - operator-(const fpos& __other) const - { return _M_off - __other._M_off; } - }; - - // The standard only requires that operator== must be an - // equivalence relation. In this implementation two fpos - // objects belong to the same equivalence class if the contained - // offsets compare equal. - /// Test if equivalent to another position. - template - inline bool - operator==(const fpos<_StateT>& __lhs, const fpos<_StateT>& __rhs) - { return streamoff(__lhs) == streamoff(__rhs); } - - template - inline bool - operator!=(const fpos<_StateT>& __lhs, const fpos<_StateT>& __rhs) - { return streamoff(__lhs) != streamoff(__rhs); } - - // Clauses 21.1.3.1 and 21.1.3.2 describe streampos and wstreampos - // as implementation defined types, but clause 27.2 requires that - // they must both be typedefs for fpos - /// File position for char streams. - typedef fpos streampos; - /// File position for wchar_t streams. - typedef fpos wstreampos; - -#ifdef _GLIBCXX_USE_CHAR8_T - /// File position for char8_t streams. - typedef fpos u8streampos; -#endif - -#if __cplusplus >= 201103L - /// File position for char16_t streams. - typedef fpos u16streampos; - /// File position for char32_t streams. - typedef fpos u32streampos; -#endif - -_GLIBCXX_END_NAMESPACE_VERSION -} // namespace - -#endif diff --git a/.ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@c++@13.1.1@bits@postypes.h.blob b/.ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@c++@13.1.1@bits@postypes.h.blob deleted file mode 100644 index 582e2bb31ce39c5a9eb6c330d4db5c8130242913..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 15762 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 Tq2WVpFUl=<@7>*ZWAFa~Wu>Hr diff --git a/.ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@c++@13.1.1@bits@predefined_ops.h b/.ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@c++@13.1.1@bits@predefined_ops.h deleted file mode 100644 index e993337..0000000 --- a/.ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@c++@13.1.1@bits@predefined_ops.h +++ /dev/null @@ -1,407 +0,0 @@ -// Default predicates for internal use -*- C++ -*- - -// Copyright (C) 2013-2023 Free Software Foundation, Inc. -// -// This file is part of the GNU ISO C++ Library. This library is free -// software; you can redistribute it and/or modify it under the -// terms of the GNU General Public License as published by the -// Free Software Foundation; either version 3, or (at your option) -// any later version. - -// This library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. - -// Under Section 7 of GPL version 3, you are granted additional -// permissions described in the GCC Runtime Library Exception, version -// 3.1, as published by the Free Software Foundation. - -// You should have received a copy of the GNU General Public License and -// a copy of the GCC Runtime Library Exception along with this program; -// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see -// . - -/** @file predefined_ops.h - * This is an internal header file, included by other library headers. - * You should not attempt to use it directly. @headername{algorithm} - */ - -#ifndef _GLIBCXX_PREDEFINED_OPS_H -#define _GLIBCXX_PREDEFINED_OPS_H 1 - -#include - -namespace __gnu_cxx -{ -namespace __ops -{ - struct _Iter_less_iter - { - template - _GLIBCXX14_CONSTEXPR - bool - operator()(_Iterator1 __it1, _Iterator2 __it2) const - { return *__it1 < *__it2; } - }; - - _GLIBCXX14_CONSTEXPR - inline _Iter_less_iter - __iter_less_iter() - { return _Iter_less_iter(); } - - struct _Iter_less_val - { -#if __cplusplus >= 201103L - constexpr _Iter_less_val() = default; -#else - _Iter_less_val() { } -#endif - - _GLIBCXX20_CONSTEXPR - explicit - _Iter_less_val(_Iter_less_iter) { } - - template - _GLIBCXX20_CONSTEXPR - bool - operator()(_Iterator __it, _Value& __val) const - { return *__it < __val; } - }; - - _GLIBCXX20_CONSTEXPR - inline _Iter_less_val - __iter_less_val() - { return _Iter_less_val(); } - - _GLIBCXX20_CONSTEXPR - inline _Iter_less_val - __iter_comp_val(_Iter_less_iter) - { return _Iter_less_val(); } - - struct _Val_less_iter - { -#if __cplusplus >= 201103L - constexpr _Val_less_iter() = default; -#else - _Val_less_iter() { } -#endif - - _GLIBCXX20_CONSTEXPR - explicit - _Val_less_iter(_Iter_less_iter) { } - - template - _GLIBCXX20_CONSTEXPR - bool - operator()(_Value& __val, _Iterator __it) const - { return __val < *__it; } - }; - - _GLIBCXX20_CONSTEXPR - inline _Val_less_iter - __val_less_iter() - { return _Val_less_iter(); } - - _GLIBCXX20_CONSTEXPR - inline _Val_less_iter - __val_comp_iter(_Iter_less_iter) - { return _Val_less_iter(); } - - struct _Iter_equal_to_iter - { - template - _GLIBCXX20_CONSTEXPR - bool - operator()(_Iterator1 __it1, _Iterator2 __it2) const - { return *__it1 == *__it2; } - }; - - _GLIBCXX20_CONSTEXPR - inline _Iter_equal_to_iter - __iter_equal_to_iter() - { return _Iter_equal_to_iter(); } - - struct _Iter_equal_to_val - { - template - _GLIBCXX20_CONSTEXPR - bool - operator()(_Iterator __it, _Value& __val) const - { return *__it == __val; } - }; - - _GLIBCXX20_CONSTEXPR - inline _Iter_equal_to_val - __iter_equal_to_val() - { return _Iter_equal_to_val(); } - - _GLIBCXX20_CONSTEXPR - inline _Iter_equal_to_val - __iter_comp_val(_Iter_equal_to_iter) - { return _Iter_equal_to_val(); } - - template - struct _Iter_comp_iter - { - _Compare _M_comp; - - explicit _GLIBCXX14_CONSTEXPR - _Iter_comp_iter(_Compare __comp) - : _M_comp(_GLIBCXX_MOVE(__comp)) - { } - - template - _GLIBCXX14_CONSTEXPR - bool - operator()(_Iterator1 __it1, _Iterator2 __it2) - { return bool(_M_comp(*__it1, *__it2)); } - }; - - template - _GLIBCXX14_CONSTEXPR - inline _Iter_comp_iter<_Compare> - __iter_comp_iter(_Compare __comp) - { return _Iter_comp_iter<_Compare>(_GLIBCXX_MOVE(__comp)); } - - template - struct _Iter_comp_val - { - _Compare _M_comp; - - _GLIBCXX20_CONSTEXPR - explicit - _Iter_comp_val(_Compare __comp) - : _M_comp(_GLIBCXX_MOVE(__comp)) - { } - - _GLIBCXX20_CONSTEXPR - explicit - _Iter_comp_val(const _Iter_comp_iter<_Compare>& __comp) - : _M_comp(__comp._M_comp) - { } - -#if __cplusplus >= 201103L - _GLIBCXX20_CONSTEXPR - explicit - _Iter_comp_val(_Iter_comp_iter<_Compare>&& __comp) - : _M_comp(std::move(__comp._M_comp)) - { } -#endif - - template - _GLIBCXX20_CONSTEXPR - bool - operator()(_Iterator __it, _Value& __val) - { return bool(_M_comp(*__it, __val)); } - }; - - template - _GLIBCXX20_CONSTEXPR - inline _Iter_comp_val<_Compare> - __iter_comp_val(_Compare __comp) - { return _Iter_comp_val<_Compare>(_GLIBCXX_MOVE(__comp)); } - - template - _GLIBCXX20_CONSTEXPR - inline _Iter_comp_val<_Compare> - __iter_comp_val(_Iter_comp_iter<_Compare> __comp) - { return _Iter_comp_val<_Compare>(_GLIBCXX_MOVE(__comp)); } - - template - struct _Val_comp_iter - { - _Compare _M_comp; - - _GLIBCXX20_CONSTEXPR - explicit - _Val_comp_iter(_Compare __comp) - : _M_comp(_GLIBCXX_MOVE(__comp)) - { } - - _GLIBCXX20_CONSTEXPR - explicit - _Val_comp_iter(const _Iter_comp_iter<_Compare>& __comp) - : _M_comp(__comp._M_comp) - { } - -#if __cplusplus >= 201103L - _GLIBCXX20_CONSTEXPR - explicit - _Val_comp_iter(_Iter_comp_iter<_Compare>&& __comp) - : _M_comp(std::move(__comp._M_comp)) - { } -#endif - - template - _GLIBCXX20_CONSTEXPR - bool - operator()(_Value& __val, _Iterator __it) - { return bool(_M_comp(__val, *__it)); } - }; - - template - _GLIBCXX20_CONSTEXPR - inline _Val_comp_iter<_Compare> - __val_comp_iter(_Compare __comp) - { return _Val_comp_iter<_Compare>(_GLIBCXX_MOVE(__comp)); } - - template - _GLIBCXX20_CONSTEXPR - inline _Val_comp_iter<_Compare> - __val_comp_iter(_Iter_comp_iter<_Compare> __comp) - { return _Val_comp_iter<_Compare>(_GLIBCXX_MOVE(__comp)); } - - template - struct _Iter_equals_val - { - _Value& _M_value; - - _GLIBCXX20_CONSTEXPR - explicit - _Iter_equals_val(_Value& __value) - : _M_value(__value) - { } - - template - _GLIBCXX20_CONSTEXPR - bool - operator()(_Iterator __it) - { return *__it == _M_value; } - }; - - template - _GLIBCXX20_CONSTEXPR - inline _Iter_equals_val<_Value> - __iter_equals_val(_Value& __val) - { return _Iter_equals_val<_Value>(__val); } - - template - struct _Iter_equals_iter - { - _Iterator1 _M_it1; - - _GLIBCXX20_CONSTEXPR - explicit - _Iter_equals_iter(_Iterator1 __it1) - : _M_it1(__it1) - { } - - template - _GLIBCXX20_CONSTEXPR - bool - operator()(_Iterator2 __it2) - { return *__it2 == *_M_it1; } - }; - - template - _GLIBCXX20_CONSTEXPR - inline _Iter_equals_iter<_Iterator> - __iter_comp_iter(_Iter_equal_to_iter, _Iterator __it) - { return _Iter_equals_iter<_Iterator>(__it); } - - template - struct _Iter_pred - { - _Predicate _M_pred; - - _GLIBCXX20_CONSTEXPR - explicit - _Iter_pred(_Predicate __pred) - : _M_pred(_GLIBCXX_MOVE(__pred)) - { } - - template - _GLIBCXX20_CONSTEXPR - bool - operator()(_Iterator __it) - { return bool(_M_pred(*__it)); } - }; - - template - _GLIBCXX20_CONSTEXPR - inline _Iter_pred<_Predicate> - __pred_iter(_Predicate __pred) - { return _Iter_pred<_Predicate>(_GLIBCXX_MOVE(__pred)); } - - template - struct _Iter_comp_to_val - { - _Compare _M_comp; - _Value& _M_value; - - _GLIBCXX20_CONSTEXPR - _Iter_comp_to_val(_Compare __comp, _Value& __value) - : _M_comp(_GLIBCXX_MOVE(__comp)), _M_value(__value) - { } - - template - _GLIBCXX20_CONSTEXPR - bool - operator()(_Iterator __it) - { return bool(_M_comp(*__it, _M_value)); } - }; - - template - _Iter_comp_to_val<_Compare, _Value> - _GLIBCXX20_CONSTEXPR - __iter_comp_val(_Compare __comp, _Value &__val) - { - return _Iter_comp_to_val<_Compare, _Value>(_GLIBCXX_MOVE(__comp), __val); - } - - template - struct _Iter_comp_to_iter - { - _Compare _M_comp; - _Iterator1 _M_it1; - - _GLIBCXX20_CONSTEXPR - _Iter_comp_to_iter(_Compare __comp, _Iterator1 __it1) - : _M_comp(_GLIBCXX_MOVE(__comp)), _M_it1(__it1) - { } - - template - _GLIBCXX20_CONSTEXPR - bool - operator()(_Iterator2 __it2) - { return bool(_M_comp(*__it2, *_M_it1)); } - }; - - template - _GLIBCXX20_CONSTEXPR - inline _Iter_comp_to_iter<_Compare, _Iterator> - __iter_comp_iter(_Iter_comp_iter<_Compare> __comp, _Iterator __it) - { - return _Iter_comp_to_iter<_Compare, _Iterator>( - _GLIBCXX_MOVE(__comp._M_comp), __it); - } - - template - struct _Iter_negate - { - _Predicate _M_pred; - - _GLIBCXX20_CONSTEXPR - explicit - _Iter_negate(_Predicate __pred) - : _M_pred(_GLIBCXX_MOVE(__pred)) - { } - - template - _GLIBCXX20_CONSTEXPR - bool - operator()(_Iterator __it) - { return !bool(_M_pred(*__it)); } - }; - - template - _GLIBCXX20_CONSTEXPR - inline _Iter_negate<_Predicate> - __negate(_Iter_pred<_Predicate> __pred) - { return _Iter_negate<_Predicate>(_GLIBCXX_MOVE(__pred._M_pred)); } - -} // namespace __ops -} // namespace __gnu_cxx - -#endif diff --git a/.ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@c++@13.1.1@bits@predefined_ops.h.blob b/.ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@c++@13.1.1@bits@predefined_ops.h.blob deleted file mode 100644 index e8c02d4266985afddce72fdfd74c6b5789282861..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 28718 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 WA#wtI`BE%T|0. - -/** @file bits/ptr_traits.h - * This is an internal header file, included by other library headers. - * Do not attempt to use it directly. @headername{memory} - */ - -#ifndef _PTR_TRAITS_H -#define _PTR_TRAITS_H 1 - -#if __cplusplus >= 201103L - -#include - -/* Duplicate definition with unique_ptr.h. */ -#if __cplusplus > 202002L && defined(__cpp_constexpr_dynamic_alloc) -# define __cpp_lib_constexpr_memory 202202L -#elif __cplusplus > 201703L -# define __cpp_lib_constexpr_memory 201811L -#endif - -#if __cplusplus > 201703L -#include -namespace __gnu_debug { struct _Safe_iterator_base; } -#endif - -namespace std _GLIBCXX_VISIBILITY(default) -{ -_GLIBCXX_BEGIN_NAMESPACE_VERSION - - /// @cond undocumented - - class __undefined; - - // For a specialization `SomeTemplate` the member `type` is T, - // otherwise `type` is `__undefined`. - template - struct __get_first_arg - { using type = __undefined; }; - - template class _SomeTemplate, typename _Tp, - typename... _Types> - struct __get_first_arg<_SomeTemplate<_Tp, _Types...>> - { using type = _Tp; }; - - // For a specialization `SomeTemplate` and a type `U` the member - // `type` is `SomeTemplate`, otherwise there is no member `type`. - template - struct __replace_first_arg - { }; - - template class _SomeTemplate, typename _Up, - typename _Tp, typename... _Types> - struct __replace_first_arg<_SomeTemplate<_Tp, _Types...>, _Up> - { using type = _SomeTemplate<_Up, _Types...>; }; - - // Detect the element type of a pointer-like type. - template - struct __ptr_traits_elem : __get_first_arg<_Ptr> - { }; - - // Use _Ptr::element_type if is a valid type. -#if __cpp_concepts - template requires requires { typename _Ptr::element_type; } - struct __ptr_traits_elem<_Ptr, void> - { using type = typename _Ptr::element_type; }; -#else - template - struct __ptr_traits_elem<_Ptr, __void_t> - { using type = typename _Ptr::element_type; }; -#endif - - template - using __ptr_traits_elem_t = typename __ptr_traits_elem<_Ptr>::type; - - /// @endcond - - // Define pointer_traits

    ::pointer_to. - template::value> - struct __ptr_traits_ptr_to - { - using pointer = _Ptr; - using element_type = _Elt; - - /** - * @brief Obtain a pointer to an object - * @param __r A reference to an object of type `element_type` - * @return `pointer::pointer_to(__r)` - * @pre `pointer::pointer_to(__r)` is a valid expression. - */ - static pointer - pointer_to(element_type& __r) -#if __cpp_lib_concepts - requires requires { - { pointer::pointer_to(__r) } -> convertible_to; - } -#endif - { return pointer::pointer_to(__r); } - }; - - // Do not define pointer_traits

  1. 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
    uAKn- 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 diff --git a/.ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@c++@13.1.1@bits@stl_iterator.h b/.ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@c++@13.1.1@bits@stl_iterator.h deleted file mode 100644 index b22d9a4..0000000 --- a/.ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@c++@13.1.1@bits@stl_iterator.h +++ /dev/null @@ -1,3007 +0,0 @@ -// Iterators -*- C++ -*- - -// Copyright (C) 2001-2023 Free Software Foundation, Inc. -// -// This file is part of the GNU ISO C++ Library. This library is free -// software; you can redistribute it and/or modify it under the -// terms of the GNU General Public License as published by the -// Free Software Foundation; either version 3, or (at your option) -// any later version. - -// This library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. - -// Under Section 7 of GPL version 3, you are granted additional -// permissions described in the GCC Runtime Library Exception, version -// 3.1, as published by the Free Software Foundation. - -// You should have received a copy of the GNU General Public License and -// a copy of the GCC Runtime Library Exception along with this program; -// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see -// . - -/* - * - * Copyright (c) 1994 - * Hewlett-Packard Company - * - * Permission to use, copy, modify, distribute and sell this software - * and its documentation for any purpose is hereby granted without fee, - * provided that the above copyright notice appear in all copies and - * that both that copyright notice and this permission notice appear - * in supporting documentation. Hewlett-Packard Company makes no - * representations about the suitability of this software for any - * purpose. It is provided "as is" without express or implied warranty. - * - * - * Copyright (c) 1996-1998 - * Silicon Graphics Computer Systems, Inc. - * - * Permission to use, copy, modify, distribute and sell this software - * and its documentation for any purpose is hereby granted without fee, - * provided that the above copyright notice appear in all copies and - * that both that copyright notice and this permission notice appear - * in supporting documentation. Silicon Graphics makes no - * representations about the suitability of this software for any - * purpose. It is provided "as is" without express or implied warranty. - */ - -/** @file bits/stl_iterator.h - * This is an internal header file, included by other library headers. - * Do not attempt to use it directly. @headername{iterator} - * - * This file implements reverse_iterator, back_insert_iterator, - * front_insert_iterator, insert_iterator, __normal_iterator, and their - * supporting functions and overloaded operators. - */ - -#ifndef _STL_ITERATOR_H -#define _STL_ITERATOR_H 1 - -#include -#include -#include -#include -#include - -#if __cplusplus >= 201103L -# include -#endif - -#if __cplusplus > 201703L -# define __cpp_lib_array_constexpr 201811L -# define __cpp_lib_constexpr_iterator 201811L -#elif __cplusplus == 201703L -# define __cpp_lib_array_constexpr 201803L -#endif - -#if __cplusplus >= 202002L -# include -# include -# include -# include -# include -#endif - -namespace std _GLIBCXX_VISIBILITY(default) -{ -_GLIBCXX_BEGIN_NAMESPACE_VERSION - - /** - * @addtogroup iterators - * @{ - */ - -#if __cpp_lib_concepts - namespace __detail - { - // Weaken iterator_category _Cat to _Limit if it is derived from that, - // otherwise use _Otherwise. - template - using __clamp_iter_cat - = __conditional_t, _Limit, _Otherwise>; - - template - concept __different_from - = !same_as, remove_cvref_t<_Up>>; - } -#endif - -// Ignore warnings about std::iterator. -#pragma GCC diagnostic push -#pragma GCC diagnostic ignored "-Wdeprecated-declarations" - - // 24.4.1 Reverse iterators - /** - * Bidirectional and random access iterators have corresponding reverse - * %iterator adaptors that iterate through the data structure in the - * opposite direction. They have the same signatures as the corresponding - * iterators. The fundamental relation between a reverse %iterator and its - * corresponding %iterator @c i is established by the identity: - * @code - * &*(reverse_iterator(i)) == &*(i - 1) - * @endcode - * - * This mapping is dictated by the fact that while there is always a - * pointer past the end of an array, there might not be a valid pointer - * before the beginning of an array. [24.4.1]/1,2 - * - * Reverse iterators can be tricky and surprising at first. Their - * semantics make sense, however, and the trickiness is a side effect of - * the requirement that the iterators must be safe. - */ - template - class reverse_iterator - : public iterator::iterator_category, - typename iterator_traits<_Iterator>::value_type, - typename iterator_traits<_Iterator>::difference_type, - typename iterator_traits<_Iterator>::pointer, - typename iterator_traits<_Iterator>::reference> - { - template - friend class reverse_iterator; - -#if __cpp_lib_concepts - // _GLIBCXX_RESOLVE_LIB_DEFECTS - // 3435. three_way_comparable_with, [...]> - template - static constexpr bool __convertible = !is_same_v<_Iter, _Iterator> - && convertible_to; -#endif - - protected: - _Iterator current; - - typedef iterator_traits<_Iterator> __traits_type; - - public: - typedef _Iterator iterator_type; - typedef typename __traits_type::pointer pointer; -#if ! __cpp_lib_concepts - typedef typename __traits_type::difference_type difference_type; - typedef typename __traits_type::reference reference; -#else - using iterator_concept - = __conditional_t, - random_access_iterator_tag, - bidirectional_iterator_tag>; - using iterator_category - = __detail::__clamp_iter_cat; - using value_type = iter_value_t<_Iterator>; - using difference_type = iter_difference_t<_Iterator>; - using reference = iter_reference_t<_Iterator>; -#endif - - /** - * The default constructor value-initializes member @p current. - * If it is a pointer, that means it is zero-initialized. - */ - // _GLIBCXX_RESOLVE_LIB_DEFECTS - // 235 No specification of default ctor for reverse_iterator - // 1012. reverse_iterator default ctor should value initialize - _GLIBCXX17_CONSTEXPR - reverse_iterator() - _GLIBCXX_NOEXCEPT_IF(noexcept(_Iterator())) - : current() - { } - - /** - * This %iterator will move in the opposite direction that @p x does. - */ - explicit _GLIBCXX17_CONSTEXPR - reverse_iterator(iterator_type __x) - _GLIBCXX_NOEXCEPT_IF(noexcept(_Iterator(__x))) - : current(__x) - { } - - /** - * The copy constructor is normal. - */ - _GLIBCXX17_CONSTEXPR - reverse_iterator(const reverse_iterator& __x) - _GLIBCXX_NOEXCEPT_IF(noexcept(_Iterator(__x.current))) - : current(__x.current) - { } - -#if __cplusplus >= 201103L - reverse_iterator& operator=(const reverse_iterator&) = default; -#endif - - /** - * A %reverse_iterator across other types can be copied if the - * underlying %iterator can be converted to the type of @c current. - */ - template -#if __cpp_lib_concepts - requires __convertible<_Iter> -#endif - _GLIBCXX17_CONSTEXPR - reverse_iterator(const reverse_iterator<_Iter>& __x) - _GLIBCXX_NOEXCEPT_IF(noexcept(_Iterator(__x.current))) - : current(__x.current) - { } - -#if __cplusplus >= 201103L - template -#if __cpp_lib_concepts - requires __convertible<_Iter> - && assignable_from<_Iterator&, const _Iter&> -#endif - _GLIBCXX17_CONSTEXPR - reverse_iterator& - operator=(const reverse_iterator<_Iter>& __x) - _GLIBCXX_NOEXCEPT_IF(noexcept(current = __x.current)) - { - current = __x.current; - return *this; - } -#endif - - /** - * @return @c current, the %iterator used for underlying work. - */ - _GLIBCXX_NODISCARD - _GLIBCXX17_CONSTEXPR iterator_type - base() const - _GLIBCXX_NOEXCEPT_IF(noexcept(_Iterator(current))) - { return current; } - - /** - * @return A reference to the value at @c --current - * - * This requires that @c --current is dereferenceable. - * - * @warning This implementation requires that for an iterator of the - * underlying iterator type, @c x, a reference obtained by - * @c *x remains valid after @c x has been modified or - * destroyed. This is a bug: http://gcc.gnu.org/PR51823 - */ - _GLIBCXX_NODISCARD - _GLIBCXX17_CONSTEXPR reference - operator*() const - { - _Iterator __tmp = current; - return *--__tmp; - } - - /** - * @return A pointer to the value at @c --current - * - * This requires that @c --current is dereferenceable. - */ - _GLIBCXX_NODISCARD - _GLIBCXX17_CONSTEXPR pointer - operator->() const -#if __cplusplus > 201703L && __cpp_concepts >= 201907L - requires is_pointer_v<_Iterator> - || requires(const _Iterator __i) { __i.operator->(); } -#endif - { - // _GLIBCXX_RESOLVE_LIB_DEFECTS - // 1052. operator-> should also support smart pointers - _Iterator __tmp = current; - --__tmp; - return _S_to_pointer(__tmp); - } - - /** - * @return @c *this - * - * Decrements the underlying iterator. - */ - _GLIBCXX17_CONSTEXPR reverse_iterator& - operator++() - { - --current; - return *this; - } - - /** - * @return The original value of @c *this - * - * Decrements the underlying iterator. - */ - _GLIBCXX17_CONSTEXPR reverse_iterator - operator++(int) - { - reverse_iterator __tmp = *this; - --current; - return __tmp; - } - - /** - * @return @c *this - * - * Increments the underlying iterator. - */ - _GLIBCXX17_CONSTEXPR reverse_iterator& - operator--() - { - ++current; - return *this; - } - - /** - * @return A reverse_iterator with the previous value of @c *this - * - * Increments the underlying iterator. - */ - _GLIBCXX17_CONSTEXPR reverse_iterator - operator--(int) - { - reverse_iterator __tmp = *this; - ++current; - return __tmp; - } - - /** - * @return A reverse_iterator that refers to @c current - @a __n - * - * The underlying iterator must be a Random Access Iterator. - */ - _GLIBCXX_NODISCARD - _GLIBCXX17_CONSTEXPR reverse_iterator - operator+(difference_type __n) const - { return reverse_iterator(current - __n); } - - /** - * @return *this - * - * Moves the underlying iterator backwards @a __n steps. - * The underlying iterator must be a Random Access Iterator. - */ - _GLIBCXX17_CONSTEXPR reverse_iterator& - operator+=(difference_type __n) - { - current -= __n; - return *this; - } - - /** - * @return A reverse_iterator that refers to @c current - @a __n - * - * The underlying iterator must be a Random Access Iterator. - */ - _GLIBCXX_NODISCARD - _GLIBCXX17_CONSTEXPR reverse_iterator - operator-(difference_type __n) const - { return reverse_iterator(current + __n); } - - /** - * @return *this - * - * Moves the underlying iterator forwards @a __n steps. - * The underlying iterator must be a Random Access Iterator. - */ - _GLIBCXX17_CONSTEXPR reverse_iterator& - operator-=(difference_type __n) - { - current += __n; - return *this; - } - - /** - * @return The value at @c current - @a __n - 1 - * - * The underlying iterator must be a Random Access Iterator. - */ - _GLIBCXX_NODISCARD - _GLIBCXX17_CONSTEXPR reference - operator[](difference_type __n) const - { return *(*this + __n); } - -#if __cplusplus > 201703L && __cpp_lib_concepts - [[nodiscard]] - friend constexpr iter_rvalue_reference_t<_Iterator> - iter_move(const reverse_iterator& __i) - noexcept(is_nothrow_copy_constructible_v<_Iterator> - && noexcept(ranges::iter_move(--std::declval<_Iterator&>()))) - { - auto __tmp = __i.base(); - return ranges::iter_move(--__tmp); - } - - template _Iter2> - friend constexpr void - iter_swap(const reverse_iterator& __x, - const reverse_iterator<_Iter2>& __y) - noexcept(is_nothrow_copy_constructible_v<_Iterator> - && is_nothrow_copy_constructible_v<_Iter2> - && noexcept(ranges::iter_swap(--std::declval<_Iterator&>(), - --std::declval<_Iter2&>()))) - { - auto __xtmp = __x.base(); - auto __ytmp = __y.base(); - ranges::iter_swap(--__xtmp, --__ytmp); - } -#endif - - private: - template - static _GLIBCXX17_CONSTEXPR _Tp* - _S_to_pointer(_Tp* __p) - { return __p; } - - template - static _GLIBCXX17_CONSTEXPR pointer - _S_to_pointer(_Tp __t) - { return __t.operator->(); } - }; - - ///@{ - /** - * @param __x A %reverse_iterator. - * @param __y A %reverse_iterator. - * @return A simple bool. - * - * Reverse iterators forward comparisons to their underlying base() - * iterators. - * - */ -#if __cplusplus <= 201703L || ! defined __cpp_lib_concepts - template - _GLIBCXX_NODISCARD - inline _GLIBCXX17_CONSTEXPR bool - operator==(const reverse_iterator<_Iterator>& __x, - const reverse_iterator<_Iterator>& __y) - { return __x.base() == __y.base(); } - - template - _GLIBCXX_NODISCARD - inline _GLIBCXX17_CONSTEXPR bool - operator<(const reverse_iterator<_Iterator>& __x, - const reverse_iterator<_Iterator>& __y) - { return __y.base() < __x.base(); } - - template - _GLIBCXX_NODISCARD - inline _GLIBCXX17_CONSTEXPR bool - operator!=(const reverse_iterator<_Iterator>& __x, - const reverse_iterator<_Iterator>& __y) - { return !(__x == __y); } - - template - _GLIBCXX_NODISCARD - inline _GLIBCXX17_CONSTEXPR bool - operator>(const reverse_iterator<_Iterator>& __x, - const reverse_iterator<_Iterator>& __y) - { return __y < __x; } - - template - _GLIBCXX_NODISCARD - inline _GLIBCXX17_CONSTEXPR bool - operator<=(const reverse_iterator<_Iterator>& __x, - const reverse_iterator<_Iterator>& __y) - { return !(__y < __x); } - - template - _GLIBCXX_NODISCARD - inline _GLIBCXX17_CONSTEXPR bool - operator>=(const reverse_iterator<_Iterator>& __x, - const reverse_iterator<_Iterator>& __y) - { return !(__x < __y); } - - // _GLIBCXX_RESOLVE_LIB_DEFECTS - // DR 280. Comparison of reverse_iterator to const reverse_iterator. - - template - _GLIBCXX_NODISCARD - inline _GLIBCXX17_CONSTEXPR bool - operator==(const reverse_iterator<_IteratorL>& __x, - const reverse_iterator<_IteratorR>& __y) - { return __x.base() == __y.base(); } - - template - _GLIBCXX_NODISCARD - inline _GLIBCXX17_CONSTEXPR bool - operator<(const reverse_iterator<_IteratorL>& __x, - const reverse_iterator<_IteratorR>& __y) - { return __x.base() > __y.base(); } - - template - _GLIBCXX_NODISCARD - inline _GLIBCXX17_CONSTEXPR bool - operator!=(const reverse_iterator<_IteratorL>& __x, - const reverse_iterator<_IteratorR>& __y) - { return __x.base() != __y.base(); } - - template - _GLIBCXX_NODISCARD - inline _GLIBCXX17_CONSTEXPR bool - operator>(const reverse_iterator<_IteratorL>& __x, - const reverse_iterator<_IteratorR>& __y) - { return __x.base() < __y.base(); } - - template - inline _GLIBCXX17_CONSTEXPR bool - operator<=(const reverse_iterator<_IteratorL>& __x, - const reverse_iterator<_IteratorR>& __y) - { return __x.base() >= __y.base(); } - - template - _GLIBCXX_NODISCARD - inline _GLIBCXX17_CONSTEXPR bool - operator>=(const reverse_iterator<_IteratorL>& __x, - const reverse_iterator<_IteratorR>& __y) - { return __x.base() <= __y.base(); } -#else // C++20 - template - [[nodiscard]] - constexpr bool - operator==(const reverse_iterator<_IteratorL>& __x, - const reverse_iterator<_IteratorR>& __y) - requires requires { { __x.base() == __y.base() } -> convertible_to; } - { return __x.base() == __y.base(); } - - template - [[nodiscard]] - constexpr bool - operator!=(const reverse_iterator<_IteratorL>& __x, - const reverse_iterator<_IteratorR>& __y) - requires requires { { __x.base() != __y.base() } -> convertible_to; } - { return __x.base() != __y.base(); } - - template - [[nodiscard]] - constexpr bool - operator<(const reverse_iterator<_IteratorL>& __x, - const reverse_iterator<_IteratorR>& __y) - requires requires { { __x.base() > __y.base() } -> convertible_to; } - { return __x.base() > __y.base(); } - - template - [[nodiscard]] - constexpr bool - operator>(const reverse_iterator<_IteratorL>& __x, - const reverse_iterator<_IteratorR>& __y) - requires requires { { __x.base() < __y.base() } -> convertible_to; } - { return __x.base() < __y.base(); } - - template - [[nodiscard]] - constexpr bool - operator<=(const reverse_iterator<_IteratorL>& __x, - const reverse_iterator<_IteratorR>& __y) - requires requires { { __x.base() >= __y.base() } -> convertible_to; } - { return __x.base() >= __y.base(); } - - template - [[nodiscard]] - constexpr bool - operator>=(const reverse_iterator<_IteratorL>& __x, - const reverse_iterator<_IteratorR>& __y) - requires requires { { __x.base() <= __y.base() } -> convertible_to; } - { return __x.base() <= __y.base(); } - - template _IteratorR> - [[nodiscard]] - constexpr compare_three_way_result_t<_IteratorL, _IteratorR> - operator<=>(const reverse_iterator<_IteratorL>& __x, - const reverse_iterator<_IteratorR>& __y) - { return __y.base() <=> __x.base(); } - - // Additional, non-standard overloads to avoid ambiguities with greedy, - // unconstrained overloads in associated namespaces. - - template - [[nodiscard]] - constexpr bool - operator==(const reverse_iterator<_Iterator>& __x, - const reverse_iterator<_Iterator>& __y) - requires requires { { __x.base() == __y.base() } -> convertible_to; } - { return __x.base() == __y.base(); } - - template - [[nodiscard]] - constexpr compare_three_way_result_t<_Iterator, _Iterator> - operator<=>(const reverse_iterator<_Iterator>& __x, - const reverse_iterator<_Iterator>& __y) - { return __y.base() <=> __x.base(); } -#endif // C++20 - ///@} - -#if __cplusplus < 201103L - template - inline typename reverse_iterator<_Iterator>::difference_type - operator-(const reverse_iterator<_Iterator>& __x, - const reverse_iterator<_Iterator>& __y) - { return __y.base() - __x.base(); } - - template - inline typename reverse_iterator<_IteratorL>::difference_type - operator-(const reverse_iterator<_IteratorL>& __x, - const reverse_iterator<_IteratorR>& __y) - { return __y.base() - __x.base(); } -#else - // _GLIBCXX_RESOLVE_LIB_DEFECTS - // DR 685. reverse_iterator/move_iterator difference has invalid signatures - template - [[__nodiscard__]] - inline _GLIBCXX17_CONSTEXPR auto - operator-(const reverse_iterator<_IteratorL>& __x, - const reverse_iterator<_IteratorR>& __y) - -> decltype(__y.base() - __x.base()) - { return __y.base() - __x.base(); } -#endif - - template - _GLIBCXX_NODISCARD - inline _GLIBCXX17_CONSTEXPR reverse_iterator<_Iterator> - operator+(typename reverse_iterator<_Iterator>::difference_type __n, - const reverse_iterator<_Iterator>& __x) - { return reverse_iterator<_Iterator>(__x.base() - __n); } - -#if __cplusplus >= 201103L - // Same as C++14 make_reverse_iterator but used in C++11 mode too. - template - inline _GLIBCXX17_CONSTEXPR reverse_iterator<_Iterator> - __make_reverse_iterator(_Iterator __i) - { return reverse_iterator<_Iterator>(__i); } - -# if __cplusplus >= 201402L -# define __cpp_lib_make_reverse_iterator 201402L - - // _GLIBCXX_RESOLVE_LIB_DEFECTS - // DR 2285. make_reverse_iterator - /// Generator function for reverse_iterator. - template - [[__nodiscard__]] - inline _GLIBCXX17_CONSTEXPR reverse_iterator<_Iterator> - make_reverse_iterator(_Iterator __i) - { return reverse_iterator<_Iterator>(__i); } - -# if __cplusplus > 201703L && defined __cpp_lib_concepts - template - requires (!sized_sentinel_for<_Iterator1, _Iterator2>) - inline constexpr bool - disable_sized_sentinel_for, - reverse_iterator<_Iterator2>> = true; -# endif // C++20 -# endif // C++14 - - template - _GLIBCXX20_CONSTEXPR - auto - __niter_base(reverse_iterator<_Iterator> __it) - -> decltype(__make_reverse_iterator(__niter_base(__it.base()))) - { return __make_reverse_iterator(__niter_base(__it.base())); } - - template - struct __is_move_iterator > - : __is_move_iterator<_Iterator> - { }; - - template - _GLIBCXX20_CONSTEXPR - auto - __miter_base(reverse_iterator<_Iterator> __it) - -> decltype(__make_reverse_iterator(__miter_base(__it.base()))) - { return __make_reverse_iterator(__miter_base(__it.base())); } -#endif // C++11 - - // 24.4.2.2.1 back_insert_iterator - /** - * @brief Turns assignment into insertion. - * - * These are output iterators, constructed from a container-of-T. - * Assigning a T to the iterator appends it to the container using - * push_back. - * - * Tip: Using the back_inserter function to create these iterators can - * save typing. - */ - template - class back_insert_iterator - : public iterator - { - protected: - _Container* container; - - public: - /// A nested typedef for the type of whatever container you used. - typedef _Container container_type; -#if __cplusplus > 201703L - using difference_type = ptrdiff_t; -#endif - - /// The only way to create this %iterator is with a container. - explicit _GLIBCXX20_CONSTEXPR - back_insert_iterator(_Container& __x) - : container(std::__addressof(__x)) { } - - /** - * @param __value An instance of whatever type - * container_type::const_reference is; presumably a - * reference-to-const T for container. - * @return This %iterator, for chained operations. - * - * This kind of %iterator doesn't really have a @a position in the - * container (you can think of the position as being permanently at - * the end, if you like). Assigning a value to the %iterator will - * always append the value to the end of the container. - */ -#if __cplusplus < 201103L - back_insert_iterator& - operator=(typename _Container::const_reference __value) - { - container->push_back(__value); - return *this; - } -#else - _GLIBCXX20_CONSTEXPR - back_insert_iterator& - operator=(const typename _Container::value_type& __value) - { - container->push_back(__value); - return *this; - } - - _GLIBCXX20_CONSTEXPR - back_insert_iterator& - operator=(typename _Container::value_type&& __value) - { - container->push_back(std::move(__value)); - return *this; - } -#endif - - /// Simply returns *this. - _GLIBCXX_NODISCARD _GLIBCXX20_CONSTEXPR - back_insert_iterator& - operator*() - { return *this; } - - /// Simply returns *this. (This %iterator does not @a move.) - _GLIBCXX20_CONSTEXPR - back_insert_iterator& - operator++() - { return *this; } - - /// Simply returns *this. (This %iterator does not @a move.) - _GLIBCXX20_CONSTEXPR - back_insert_iterator - operator++(int) - { return *this; } - }; - - /** - * @param __x A container of arbitrary type. - * @return An instance of back_insert_iterator working on @p __x. - * - * This wrapper function helps in creating back_insert_iterator instances. - * Typing the name of the %iterator requires knowing the precise full - * type of the container, which can be tedious and impedes generic - * programming. Using this function lets you take advantage of automatic - * template parameter deduction, making the compiler match the correct - * types for you. - */ - template - _GLIBCXX_NODISCARD _GLIBCXX20_CONSTEXPR - inline back_insert_iterator<_Container> - back_inserter(_Container& __x) - { return back_insert_iterator<_Container>(__x); } - - /** - * @brief Turns assignment into insertion. - * - * These are output iterators, constructed from a container-of-T. - * Assigning a T to the iterator prepends it to the container using - * push_front. - * - * Tip: Using the front_inserter function to create these iterators can - * save typing. - */ - template - class front_insert_iterator - : public iterator - { - protected: - _Container* container; - - public: - /// A nested typedef for the type of whatever container you used. - typedef _Container container_type; -#if __cplusplus > 201703L - using difference_type = ptrdiff_t; -#endif - - /// The only way to create this %iterator is with a container. - explicit _GLIBCXX20_CONSTEXPR - front_insert_iterator(_Container& __x) - : container(std::__addressof(__x)) { } - - /** - * @param __value An instance of whatever type - * container_type::const_reference is; presumably a - * reference-to-const T for container. - * @return This %iterator, for chained operations. - * - * This kind of %iterator doesn't really have a @a position in the - * container (you can think of the position as being permanently at - * the front, if you like). Assigning a value to the %iterator will - * always prepend the value to the front of the container. - */ -#if __cplusplus < 201103L - front_insert_iterator& - operator=(typename _Container::const_reference __value) - { - container->push_front(__value); - return *this; - } -#else - _GLIBCXX20_CONSTEXPR - front_insert_iterator& - operator=(const typename _Container::value_type& __value) - { - container->push_front(__value); - return *this; - } - - _GLIBCXX20_CONSTEXPR - front_insert_iterator& - operator=(typename _Container::value_type&& __value) - { - container->push_front(std::move(__value)); - return *this; - } -#endif - - /// Simply returns *this. - _GLIBCXX_NODISCARD _GLIBCXX20_CONSTEXPR - front_insert_iterator& - operator*() - { return *this; } - - /// Simply returns *this. (This %iterator does not @a move.) - _GLIBCXX20_CONSTEXPR - front_insert_iterator& - operator++() - { return *this; } - - /// Simply returns *this. (This %iterator does not @a move.) - _GLIBCXX20_CONSTEXPR - front_insert_iterator - operator++(int) - { return *this; } - }; - - /** - * @param __x A container of arbitrary type. - * @return An instance of front_insert_iterator working on @p x. - * - * This wrapper function helps in creating front_insert_iterator instances. - * Typing the name of the %iterator requires knowing the precise full - * type of the container, which can be tedious and impedes generic - * programming. Using this function lets you take advantage of automatic - * template parameter deduction, making the compiler match the correct - * types for you. - */ - template - _GLIBCXX_NODISCARD _GLIBCXX20_CONSTEXPR - inline front_insert_iterator<_Container> - front_inserter(_Container& __x) - { return front_insert_iterator<_Container>(__x); } - - /** - * @brief Turns assignment into insertion. - * - * These are output iterators, constructed from a container-of-T. - * Assigning a T to the iterator inserts it in the container at the - * %iterator's position, rather than overwriting the value at that - * position. - * - * (Sequences will actually insert a @e copy of the value before the - * %iterator's position.) - * - * Tip: Using the inserter function to create these iterators can - * save typing. - */ - template - class insert_iterator - : public iterator - { -#if __cplusplus > 201703L && defined __cpp_lib_concepts - using _Iter = std::__detail::__range_iter_t<_Container>; -#else - typedef typename _Container::iterator _Iter; -#endif - protected: - _Container* container; - _Iter iter; - - public: - /// A nested typedef for the type of whatever container you used. - typedef _Container container_type; - -#if __cplusplus > 201703L && defined __cpp_lib_concepts - using difference_type = ptrdiff_t; -#endif - - /** - * The only way to create this %iterator is with a container and an - * initial position (a normal %iterator into the container). - */ - _GLIBCXX20_CONSTEXPR - insert_iterator(_Container& __x, _Iter __i) - : container(std::__addressof(__x)), iter(__i) {} - - /** - * @param __value An instance of whatever type - * container_type::const_reference is; presumably a - * reference-to-const T for container. - * @return This %iterator, for chained operations. - * - * This kind of %iterator maintains its own position in the - * container. Assigning a value to the %iterator will insert the - * value into the container at the place before the %iterator. - * - * The position is maintained such that subsequent assignments will - * insert values immediately after one another. For example, - * @code - * // vector v contains A and Z - * - * insert_iterator i (v, ++v.begin()); - * i = 1; - * i = 2; - * i = 3; - * - * // vector v contains A, 1, 2, 3, and Z - * @endcode - */ -#if __cplusplus < 201103L - insert_iterator& - operator=(typename _Container::const_reference __value) - { - iter = container->insert(iter, __value); - ++iter; - return *this; - } -#else - _GLIBCXX20_CONSTEXPR - insert_iterator& - operator=(const typename _Container::value_type& __value) - { - iter = container->insert(iter, __value); - ++iter; - return *this; - } - - _GLIBCXX20_CONSTEXPR - insert_iterator& - operator=(typename _Container::value_type&& __value) - { - iter = container->insert(iter, std::move(__value)); - ++iter; - return *this; - } -#endif - - /// Simply returns *this. - _GLIBCXX_NODISCARD _GLIBCXX20_CONSTEXPR - insert_iterator& - operator*() - { return *this; } - - /// Simply returns *this. (This %iterator does not @a move.) - _GLIBCXX20_CONSTEXPR - insert_iterator& - operator++() - { return *this; } - - /// Simply returns *this. (This %iterator does not @a move.) - _GLIBCXX20_CONSTEXPR - insert_iterator& - operator++(int) - { return *this; } - }; - -#pragma GCC diagnostic pop - - /** - * @param __x A container of arbitrary type. - * @param __i An iterator into the container. - * @return An instance of insert_iterator working on @p __x. - * - * This wrapper function helps in creating insert_iterator instances. - * Typing the name of the %iterator requires knowing the precise full - * type of the container, which can be tedious and impedes generic - * programming. Using this function lets you take advantage of automatic - * template parameter deduction, making the compiler match the correct - * types for you. - */ -#if __cplusplus > 201703L && defined __cpp_lib_concepts - template - [[nodiscard]] - constexpr insert_iterator<_Container> - inserter(_Container& __x, std::__detail::__range_iter_t<_Container> __i) - { return insert_iterator<_Container>(__x, __i); } -#else - template - _GLIBCXX_NODISCARD - inline insert_iterator<_Container> - inserter(_Container& __x, typename _Container::iterator __i) - { return insert_iterator<_Container>(__x, __i); } -#endif - - /// @} group iterators - -_GLIBCXX_END_NAMESPACE_VERSION -} // namespace - -namespace __gnu_cxx _GLIBCXX_VISIBILITY(default) -{ -_GLIBCXX_BEGIN_NAMESPACE_VERSION - - // This iterator adapter is @a normal in the sense that it does not - // change the semantics of any of the operators of its iterator - // parameter. Its primary purpose is to convert an iterator that is - // not a class, e.g. a pointer, into an iterator that is a class. - // The _Container parameter exists solely so that different containers - // using this template can instantiate different types, even if the - // _Iterator parameter is the same. - template - class __normal_iterator - { - protected: - _Iterator _M_current; - - typedef std::iterator_traits<_Iterator> __traits_type; - -#if __cplusplus >= 201103L - template - using __convertible_from - = std::__enable_if_t::value>; -#endif - - public: - typedef _Iterator iterator_type; - typedef typename __traits_type::iterator_category iterator_category; - typedef typename __traits_type::value_type value_type; - typedef typename __traits_type::difference_type difference_type; - typedef typename __traits_type::reference reference; - typedef typename __traits_type::pointer pointer; - -#if __cplusplus > 201703L && __cpp_lib_concepts - using iterator_concept = std::__detail::__iter_concept<_Iterator>; -#endif - - _GLIBCXX_CONSTEXPR __normal_iterator() _GLIBCXX_NOEXCEPT - : _M_current(_Iterator()) { } - - explicit _GLIBCXX20_CONSTEXPR - __normal_iterator(const _Iterator& __i) _GLIBCXX_NOEXCEPT - : _M_current(__i) { } - - // Allow iterator to const_iterator conversion -#if __cplusplus >= 201103L - template> - _GLIBCXX20_CONSTEXPR - __normal_iterator(const __normal_iterator<_Iter, _Container>& __i) - noexcept -#else - // N.B. _Container::pointer is not actually in container requirements, - // but is present in std::vector and std::basic_string. - template - __normal_iterator(const __normal_iterator<_Iter, - typename __enable_if< - (std::__are_same<_Iter, typename _Container::pointer>::__value), - _Container>::__type>& __i) -#endif - : _M_current(__i.base()) { } - - // Forward iterator requirements - _GLIBCXX20_CONSTEXPR - reference - operator*() const _GLIBCXX_NOEXCEPT - { return *_M_current; } - - _GLIBCXX20_CONSTEXPR - pointer - operator->() const _GLIBCXX_NOEXCEPT - { return _M_current; } - - _GLIBCXX20_CONSTEXPR - __normal_iterator& - operator++() _GLIBCXX_NOEXCEPT - { - ++_M_current; - return *this; - } - - _GLIBCXX20_CONSTEXPR - __normal_iterator - operator++(int) _GLIBCXX_NOEXCEPT - { return __normal_iterator(_M_current++); } - - // Bidirectional iterator requirements - _GLIBCXX20_CONSTEXPR - __normal_iterator& - operator--() _GLIBCXX_NOEXCEPT - { - --_M_current; - return *this; - } - - _GLIBCXX20_CONSTEXPR - __normal_iterator - operator--(int) _GLIBCXX_NOEXCEPT - { return __normal_iterator(_M_current--); } - - // Random access iterator requirements - _GLIBCXX20_CONSTEXPR - reference - operator[](difference_type __n) const _GLIBCXX_NOEXCEPT - { return _M_current[__n]; } - - _GLIBCXX20_CONSTEXPR - __normal_iterator& - operator+=(difference_type __n) _GLIBCXX_NOEXCEPT - { _M_current += __n; return *this; } - - _GLIBCXX20_CONSTEXPR - __normal_iterator - operator+(difference_type __n) const _GLIBCXX_NOEXCEPT - { return __normal_iterator(_M_current + __n); } - - _GLIBCXX20_CONSTEXPR - __normal_iterator& - operator-=(difference_type __n) _GLIBCXX_NOEXCEPT - { _M_current -= __n; return *this; } - - _GLIBCXX20_CONSTEXPR - __normal_iterator - operator-(difference_type __n) const _GLIBCXX_NOEXCEPT - { return __normal_iterator(_M_current - __n); } - - _GLIBCXX20_CONSTEXPR - const _Iterator& - base() const _GLIBCXX_NOEXCEPT - { return _M_current; } - }; - - // Note: In what follows, the left- and right-hand-side iterators are - // allowed to vary in types (conceptually in cv-qualification) so that - // comparison between cv-qualified and non-cv-qualified iterators be - // valid. However, the greedy and unfriendly operators in std::rel_ops - // will make overload resolution ambiguous (when in scope) if we don't - // provide overloads whose operands are of the same type. Can someone - // remind me what generic programming is about? -- Gaby - -#if __cpp_lib_three_way_comparison - template - [[nodiscard]] - constexpr bool - operator==(const __normal_iterator<_IteratorL, _Container>& __lhs, - const __normal_iterator<_IteratorR, _Container>& __rhs) - noexcept(noexcept(__lhs.base() == __rhs.base())) - requires requires { - { __lhs.base() == __rhs.base() } -> std::convertible_to; - } - { return __lhs.base() == __rhs.base(); } - - template - [[nodiscard]] - constexpr std::__detail::__synth3way_t<_IteratorR, _IteratorL> - operator<=>(const __normal_iterator<_IteratorL, _Container>& __lhs, - const __normal_iterator<_IteratorR, _Container>& __rhs) - noexcept(noexcept(std::__detail::__synth3way(__lhs.base(), __rhs.base()))) - { return std::__detail::__synth3way(__lhs.base(), __rhs.base()); } - - template - [[nodiscard]] - constexpr bool - operator==(const __normal_iterator<_Iterator, _Container>& __lhs, - const __normal_iterator<_Iterator, _Container>& __rhs) - noexcept(noexcept(__lhs.base() == __rhs.base())) - requires requires { - { __lhs.base() == __rhs.base() } -> std::convertible_to; - } - { return __lhs.base() == __rhs.base(); } - - template - [[nodiscard]] - constexpr std::__detail::__synth3way_t<_Iterator> - operator<=>(const __normal_iterator<_Iterator, _Container>& __lhs, - const __normal_iterator<_Iterator, _Container>& __rhs) - noexcept(noexcept(std::__detail::__synth3way(__lhs.base(), __rhs.base()))) - { return std::__detail::__synth3way(__lhs.base(), __rhs.base()); } -#else - // Forward iterator requirements - template - _GLIBCXX_NODISCARD _GLIBCXX20_CONSTEXPR - inline bool - operator==(const __normal_iterator<_IteratorL, _Container>& __lhs, - const __normal_iterator<_IteratorR, _Container>& __rhs) - _GLIBCXX_NOEXCEPT - { return __lhs.base() == __rhs.base(); } - - template - _GLIBCXX_NODISCARD _GLIBCXX20_CONSTEXPR - inline bool - operator==(const __normal_iterator<_Iterator, _Container>& __lhs, - const __normal_iterator<_Iterator, _Container>& __rhs) - _GLIBCXX_NOEXCEPT - { return __lhs.base() == __rhs.base(); } - - template - _GLIBCXX_NODISCARD _GLIBCXX20_CONSTEXPR - inline bool - operator!=(const __normal_iterator<_IteratorL, _Container>& __lhs, - const __normal_iterator<_IteratorR, _Container>& __rhs) - _GLIBCXX_NOEXCEPT - { return __lhs.base() != __rhs.base(); } - - template - _GLIBCXX_NODISCARD _GLIBCXX20_CONSTEXPR - inline bool - operator!=(const __normal_iterator<_Iterator, _Container>& __lhs, - const __normal_iterator<_Iterator, _Container>& __rhs) - _GLIBCXX_NOEXCEPT - { return __lhs.base() != __rhs.base(); } - - // Random access iterator requirements - template - _GLIBCXX_NODISCARD - inline bool - operator<(const __normal_iterator<_IteratorL, _Container>& __lhs, - const __normal_iterator<_IteratorR, _Container>& __rhs) - _GLIBCXX_NOEXCEPT - { return __lhs.base() < __rhs.base(); } - - template - _GLIBCXX_NODISCARD _GLIBCXX20_CONSTEXPR - inline bool - operator<(const __normal_iterator<_Iterator, _Container>& __lhs, - const __normal_iterator<_Iterator, _Container>& __rhs) - _GLIBCXX_NOEXCEPT - { return __lhs.base() < __rhs.base(); } - - template - _GLIBCXX_NODISCARD - inline bool - operator>(const __normal_iterator<_IteratorL, _Container>& __lhs, - const __normal_iterator<_IteratorR, _Container>& __rhs) - _GLIBCXX_NOEXCEPT - { return __lhs.base() > __rhs.base(); } - - template - _GLIBCXX_NODISCARD _GLIBCXX20_CONSTEXPR - inline bool - operator>(const __normal_iterator<_Iterator, _Container>& __lhs, - const __normal_iterator<_Iterator, _Container>& __rhs) - _GLIBCXX_NOEXCEPT - { return __lhs.base() > __rhs.base(); } - - template - _GLIBCXX_NODISCARD - inline bool - operator<=(const __normal_iterator<_IteratorL, _Container>& __lhs, - const __normal_iterator<_IteratorR, _Container>& __rhs) - _GLIBCXX_NOEXCEPT - { return __lhs.base() <= __rhs.base(); } - - template - _GLIBCXX_NODISCARD _GLIBCXX20_CONSTEXPR - inline bool - operator<=(const __normal_iterator<_Iterator, _Container>& __lhs, - const __normal_iterator<_Iterator, _Container>& __rhs) - _GLIBCXX_NOEXCEPT - { return __lhs.base() <= __rhs.base(); } - - template - _GLIBCXX_NODISCARD - inline bool - operator>=(const __normal_iterator<_IteratorL, _Container>& __lhs, - const __normal_iterator<_IteratorR, _Container>& __rhs) - _GLIBCXX_NOEXCEPT - { return __lhs.base() >= __rhs.base(); } - - template - _GLIBCXX_NODISCARD _GLIBCXX20_CONSTEXPR - inline bool - operator>=(const __normal_iterator<_Iterator, _Container>& __lhs, - const __normal_iterator<_Iterator, _Container>& __rhs) - _GLIBCXX_NOEXCEPT - { return __lhs.base() >= __rhs.base(); } -#endif // three-way comparison - - // _GLIBCXX_RESOLVE_LIB_DEFECTS - // According to the resolution of DR179 not only the various comparison - // operators but also operator- must accept mixed iterator/const_iterator - // parameters. - template -#if __cplusplus >= 201103L - // DR 685. - [[__nodiscard__]] _GLIBCXX20_CONSTEXPR - inline auto - operator-(const __normal_iterator<_IteratorL, _Container>& __lhs, - const __normal_iterator<_IteratorR, _Container>& __rhs) noexcept - -> decltype(__lhs.base() - __rhs.base()) -#else - inline typename __normal_iterator<_IteratorL, _Container>::difference_type - operator-(const __normal_iterator<_IteratorL, _Container>& __lhs, - const __normal_iterator<_IteratorR, _Container>& __rhs) -#endif - { return __lhs.base() - __rhs.base(); } - - template - _GLIBCXX_NODISCARD _GLIBCXX20_CONSTEXPR - inline typename __normal_iterator<_Iterator, _Container>::difference_type - operator-(const __normal_iterator<_Iterator, _Container>& __lhs, - const __normal_iterator<_Iterator, _Container>& __rhs) - _GLIBCXX_NOEXCEPT - { return __lhs.base() - __rhs.base(); } - - template - _GLIBCXX_NODISCARD _GLIBCXX20_CONSTEXPR - inline __normal_iterator<_Iterator, _Container> - operator+(typename __normal_iterator<_Iterator, _Container>::difference_type - __n, const __normal_iterator<_Iterator, _Container>& __i) - _GLIBCXX_NOEXCEPT - { return __normal_iterator<_Iterator, _Container>(__i.base() + __n); } - -_GLIBCXX_END_NAMESPACE_VERSION -} // namespace - -namespace std _GLIBCXX_VISIBILITY(default) -{ -_GLIBCXX_BEGIN_NAMESPACE_VERSION - - template - _GLIBCXX20_CONSTEXPR - _Iterator - __niter_base(__gnu_cxx::__normal_iterator<_Iterator, _Container> __it) - _GLIBCXX_NOEXCEPT_IF(std::is_nothrow_copy_constructible<_Iterator>::value) - { return __it.base(); } - -#if __cplusplus >= 201103L - -#if __cplusplus <= 201703L - // Need to overload __to_address because the pointer_traits primary template - // will deduce element_type of __normal_iterator as T* rather than T. - template - constexpr auto - __to_address(const __gnu_cxx::__normal_iterator<_Iterator, - _Container>& __it) noexcept - -> decltype(std::__to_address(__it.base())) - { return std::__to_address(__it.base()); } -#endif - - /** - * @addtogroup iterators - * @{ - */ - -#if __cplusplus > 201703L && __cpp_lib_concepts - template - class move_sentinel - { - public: - constexpr - move_sentinel() - noexcept(is_nothrow_default_constructible_v<_Sent>) - : _M_last() { } - - constexpr explicit - move_sentinel(_Sent __s) - noexcept(is_nothrow_move_constructible_v<_Sent>) - : _M_last(std::move(__s)) { } - - template requires convertible_to - constexpr - move_sentinel(const move_sentinel<_S2>& __s) - noexcept(is_nothrow_constructible_v<_Sent, const _S2&>) - : _M_last(__s.base()) - { } - - template requires assignable_from<_Sent&, const _S2&> - constexpr move_sentinel& - operator=(const move_sentinel<_S2>& __s) - noexcept(is_nothrow_assignable_v<_Sent, const _S2&>) - { - _M_last = __s.base(); - return *this; - } - - [[nodiscard]] - constexpr _Sent - base() const - noexcept(is_nothrow_copy_constructible_v<_Sent>) - { return _M_last; } - - private: - _Sent _M_last; - }; -#endif // C++20 - - namespace __detail - { -#if __cplusplus > 201703L && __cpp_lib_concepts - template - struct __move_iter_cat - { }; - - template - requires requires { typename iterator_traits<_Iterator>::iterator_category; } - struct __move_iter_cat<_Iterator> - { - using iterator_category - = __clamp_iter_cat::iterator_category, - random_access_iterator_tag>; - }; -#endif - } - - // 24.4.3 Move iterators - /** - * Class template move_iterator is an iterator adapter with the same - * behavior as the underlying iterator except that its dereference - * operator implicitly converts the value returned by the underlying - * iterator's dereference operator to an rvalue reference. Some - * generic algorithms can be called with move iterators to replace - * copying with moving. - */ - template - class move_iterator -#if __cplusplus > 201703L && __cpp_lib_concepts - : public __detail::__move_iter_cat<_Iterator> -#endif - { - _Iterator _M_current; - - using __traits_type = iterator_traits<_Iterator>; -#if ! (__cplusplus > 201703L && __cpp_lib_concepts) - using __base_ref = typename __traits_type::reference; -#endif - - template - friend class move_iterator; - -#if __cpp_lib_concepts - // _GLIBCXX_RESOLVE_LIB_DEFECTS - // 3435. three_way_comparable_with, [...]> - template - static constexpr bool __convertible = !is_same_v<_Iter2, _Iterator> - && convertible_to; -#endif - -#if __cplusplus > 201703L && __cpp_lib_concepts - static auto - _S_iter_concept() - { - if constexpr (random_access_iterator<_Iterator>) - return random_access_iterator_tag{}; - else if constexpr (bidirectional_iterator<_Iterator>) - return bidirectional_iterator_tag{}; - else if constexpr (forward_iterator<_Iterator>) - return forward_iterator_tag{}; - else - return input_iterator_tag{}; - } -#endif - - public: - using iterator_type = _Iterator; - -#if __cplusplus > 201703L && __cpp_lib_concepts - // This is P2520R0, a C++23 change, but we treat it as a DR against C++20. -# define __cpp_lib_move_iterator_concept 202207L - using iterator_concept = decltype(_S_iter_concept()); - - // iterator_category defined in __move_iter_cat - using value_type = iter_value_t<_Iterator>; - using difference_type = iter_difference_t<_Iterator>; - using pointer = _Iterator; - using reference = iter_rvalue_reference_t<_Iterator>; -#else - typedef typename __traits_type::iterator_category iterator_category; - typedef typename __traits_type::value_type value_type; - typedef typename __traits_type::difference_type difference_type; - // NB: DR 680. - typedef _Iterator pointer; - // _GLIBCXX_RESOLVE_LIB_DEFECTS - // 2106. move_iterator wrapping iterators returning prvalues - using reference - = __conditional_t::value, - typename remove_reference<__base_ref>::type&&, - __base_ref>; -#endif - - _GLIBCXX17_CONSTEXPR - move_iterator() - : _M_current() { } - - explicit _GLIBCXX17_CONSTEXPR - move_iterator(iterator_type __i) - : _M_current(std::move(__i)) { } - - template -#if __cpp_lib_concepts - requires __convertible<_Iter> -#endif - _GLIBCXX17_CONSTEXPR - move_iterator(const move_iterator<_Iter>& __i) - : _M_current(__i._M_current) { } - - template -#if __cpp_lib_concepts - requires __convertible<_Iter> - && assignable_from<_Iterator&, const _Iter&> -#endif - _GLIBCXX17_CONSTEXPR - move_iterator& operator=(const move_iterator<_Iter>& __i) - { - _M_current = __i._M_current; - return *this; - } - -#if __cplusplus <= 201703L - [[__nodiscard__]] - _GLIBCXX17_CONSTEXPR iterator_type - base() const - { return _M_current; } -#else - [[nodiscard]] - constexpr const iterator_type& - base() const & noexcept - { return _M_current; } - - [[nodiscard]] - constexpr iterator_type - base() && - { return std::move(_M_current); } -#endif - - [[__nodiscard__]] - _GLIBCXX17_CONSTEXPR reference - operator*() const -#if __cplusplus > 201703L && __cpp_lib_concepts - { return ranges::iter_move(_M_current); } -#else - { return static_cast(*_M_current); } -#endif - - [[__nodiscard__]] - _GLIBCXX17_CONSTEXPR pointer - operator->() const - { return _M_current; } - - _GLIBCXX17_CONSTEXPR move_iterator& - operator++() - { - ++_M_current; - return *this; - } - - _GLIBCXX17_CONSTEXPR move_iterator - operator++(int) - { - move_iterator __tmp = *this; - ++_M_current; - return __tmp; - } - -#if __cpp_lib_concepts - constexpr void - operator++(int) requires (!forward_iterator<_Iterator>) - { ++_M_current; } -#endif - - _GLIBCXX17_CONSTEXPR move_iterator& - operator--() - { - --_M_current; - return *this; - } - - _GLIBCXX17_CONSTEXPR move_iterator - operator--(int) - { - move_iterator __tmp = *this; - --_M_current; - return __tmp; - } - - [[__nodiscard__]] - _GLIBCXX17_CONSTEXPR move_iterator - operator+(difference_type __n) const - { return move_iterator(_M_current + __n); } - - _GLIBCXX17_CONSTEXPR move_iterator& - operator+=(difference_type __n) - { - _M_current += __n; - return *this; - } - - [[__nodiscard__]] - _GLIBCXX17_CONSTEXPR move_iterator - operator-(difference_type __n) const - { return move_iterator(_M_current - __n); } - - _GLIBCXX17_CONSTEXPR move_iterator& - operator-=(difference_type __n) - { - _M_current -= __n; - return *this; - } - - [[__nodiscard__]] - _GLIBCXX17_CONSTEXPR reference - operator[](difference_type __n) const -#if __cplusplus > 201703L && __cpp_lib_concepts - { return ranges::iter_move(_M_current + __n); } -#else - { return std::move(_M_current[__n]); } -#endif - -#if __cplusplus > 201703L && __cpp_lib_concepts - template _Sent> - [[nodiscard]] - friend constexpr bool - operator==(const move_iterator& __x, const move_sentinel<_Sent>& __y) - { return __x.base() == __y.base(); } - - template _Sent> - [[nodiscard]] - friend constexpr iter_difference_t<_Iterator> - operator-(const move_sentinel<_Sent>& __x, const move_iterator& __y) - { return __x.base() - __y.base(); } - - template _Sent> - [[nodiscard]] - friend constexpr iter_difference_t<_Iterator> - operator-(const move_iterator& __x, const move_sentinel<_Sent>& __y) - { return __x.base() - __y.base(); } - - [[nodiscard]] - friend constexpr iter_rvalue_reference_t<_Iterator> - iter_move(const move_iterator& __i) - noexcept(noexcept(ranges::iter_move(__i._M_current))) - { return ranges::iter_move(__i._M_current); } - - template _Iter2> - friend constexpr void - iter_swap(const move_iterator& __x, const move_iterator<_Iter2>& __y) - noexcept(noexcept(ranges::iter_swap(__x._M_current, __y._M_current))) - { return ranges::iter_swap(__x._M_current, __y._M_current); } -#endif // C++20 - }; - - template - [[__nodiscard__]] - inline _GLIBCXX17_CONSTEXPR bool - operator==(const move_iterator<_IteratorL>& __x, - const move_iterator<_IteratorR>& __y) -#if __cplusplus > 201703L && __cpp_lib_concepts - requires requires { { __x.base() == __y.base() } -> convertible_to; } -#endif - { return __x.base() == __y.base(); } - -#if __cpp_lib_three_way_comparison - template _IteratorR> - [[__nodiscard__]] - constexpr compare_three_way_result_t<_IteratorL, _IteratorR> - operator<=>(const move_iterator<_IteratorL>& __x, - const move_iterator<_IteratorR>& __y) - { return __x.base() <=> __y.base(); } -#else - template - [[__nodiscard__]] - inline _GLIBCXX17_CONSTEXPR bool - operator!=(const move_iterator<_IteratorL>& __x, - const move_iterator<_IteratorR>& __y) - { return !(__x == __y); } -#endif - - template - [[__nodiscard__]] - inline _GLIBCXX17_CONSTEXPR bool - operator<(const move_iterator<_IteratorL>& __x, - const move_iterator<_IteratorR>& __y) -#if __cplusplus > 201703L && __cpp_lib_concepts - requires requires { { __x.base() < __y.base() } -> convertible_to; } -#endif - { return __x.base() < __y.base(); } - - template - [[__nodiscard__]] - inline _GLIBCXX17_CONSTEXPR bool - operator<=(const move_iterator<_IteratorL>& __x, - const move_iterator<_IteratorR>& __y) -#if __cplusplus > 201703L && __cpp_lib_concepts - requires requires { { __y.base() < __x.base() } -> convertible_to; } -#endif - { return !(__y < __x); } - - template - [[__nodiscard__]] - inline _GLIBCXX17_CONSTEXPR bool - operator>(const move_iterator<_IteratorL>& __x, - const move_iterator<_IteratorR>& __y) -#if __cplusplus > 201703L && __cpp_lib_concepts - requires requires { { __y.base() < __x.base() } -> convertible_to; } -#endif - { return __y < __x; } - - template - [[__nodiscard__]] - inline _GLIBCXX17_CONSTEXPR bool - operator>=(const move_iterator<_IteratorL>& __x, - const move_iterator<_IteratorR>& __y) -#if __cplusplus > 201703L && __cpp_lib_concepts - requires requires { { __x.base() < __y.base() } -> convertible_to; } -#endif - { return !(__x < __y); } - - // Note: See __normal_iterator operators note from Gaby to understand - // why we have these extra overloads for some move_iterator operators. - - template - [[__nodiscard__]] - inline _GLIBCXX17_CONSTEXPR bool - operator==(const move_iterator<_Iterator>& __x, - const move_iterator<_Iterator>& __y) - { return __x.base() == __y.base(); } - -#if __cpp_lib_three_way_comparison - template - [[__nodiscard__]] - constexpr compare_three_way_result_t<_Iterator> - operator<=>(const move_iterator<_Iterator>& __x, - const move_iterator<_Iterator>& __y) - { return __x.base() <=> __y.base(); } -#else - template - [[__nodiscard__]] - inline _GLIBCXX17_CONSTEXPR bool - operator!=(const move_iterator<_Iterator>& __x, - const move_iterator<_Iterator>& __y) - { return !(__x == __y); } - - template - [[__nodiscard__]] - inline _GLIBCXX17_CONSTEXPR bool - operator<(const move_iterator<_Iterator>& __x, - const move_iterator<_Iterator>& __y) - { return __x.base() < __y.base(); } - - template - [[__nodiscard__]] - inline _GLIBCXX17_CONSTEXPR bool - operator<=(const move_iterator<_Iterator>& __x, - const move_iterator<_Iterator>& __y) - { return !(__y < __x); } - - template - [[__nodiscard__]] - inline _GLIBCXX17_CONSTEXPR bool - operator>(const move_iterator<_Iterator>& __x, - const move_iterator<_Iterator>& __y) - { return __y < __x; } - - template - [[__nodiscard__]] - inline _GLIBCXX17_CONSTEXPR bool - operator>=(const move_iterator<_Iterator>& __x, - const move_iterator<_Iterator>& __y) - { return !(__x < __y); } -#endif // ! C++20 - - // DR 685. - template - [[__nodiscard__]] - inline _GLIBCXX17_CONSTEXPR auto - operator-(const move_iterator<_IteratorL>& __x, - const move_iterator<_IteratorR>& __y) - -> decltype(__x.base() - __y.base()) - { return __x.base() - __y.base(); } - - template - [[__nodiscard__]] - inline _GLIBCXX17_CONSTEXPR move_iterator<_Iterator> - operator+(typename move_iterator<_Iterator>::difference_type __n, - const move_iterator<_Iterator>& __x) - { return __x + __n; } - - template - [[__nodiscard__]] - inline _GLIBCXX17_CONSTEXPR move_iterator<_Iterator> - make_move_iterator(_Iterator __i) - { return move_iterator<_Iterator>(std::move(__i)); } - - template::value_type>::value, - _Iterator, move_iterator<_Iterator>>> - inline _GLIBCXX17_CONSTEXPR _ReturnType - __make_move_if_noexcept_iterator(_Iterator __i) - { return _ReturnType(__i); } - - // Overload for pointers that matches std::move_if_noexcept more closely, - // returning a constant iterator when we don't want to move. - template::value, - const _Tp*, move_iterator<_Tp*>>> - inline _GLIBCXX17_CONSTEXPR _ReturnType - __make_move_if_noexcept_iterator(_Tp* __i) - { return _ReturnType(__i); } - -#if __cplusplus > 201703L && __cpp_lib_concepts - // [iterators.common] Common iterators - - namespace __detail - { - template - concept __common_iter_has_arrow = indirectly_readable - && (requires(const _It& __it) { __it.operator->(); } - || is_reference_v> - || constructible_from, iter_reference_t<_It>>); - - template - concept __common_iter_use_postfix_proxy - = (!requires (_It& __i) { { *__i++ } -> __can_reference; }) - && constructible_from, iter_reference_t<_It>> - && move_constructible>; - } // namespace __detail - - /// An iterator/sentinel adaptor for representing a non-common range. - template _Sent> - requires (!same_as<_It, _Sent>) && copyable<_It> - class common_iterator - { - template - static constexpr bool - _S_noexcept1() - { - if constexpr (is_trivially_default_constructible_v<_Tp>) - return is_nothrow_assignable_v<_Tp&, _Up>; - else - return is_nothrow_constructible_v<_Tp, _Up>; - } - - template - static constexpr bool - _S_noexcept() - { return _S_noexcept1<_It, _It2>() && _S_noexcept1<_Sent, _Sent2>(); } - - class __arrow_proxy - { - iter_value_t<_It> _M_keep; - - constexpr - __arrow_proxy(iter_reference_t<_It>&& __x) - : _M_keep(std::move(__x)) { } - - friend class common_iterator; - - public: - constexpr const iter_value_t<_It>* - operator->() const noexcept - { return std::__addressof(_M_keep); } - }; - - class __postfix_proxy - { - iter_value_t<_It> _M_keep; - - constexpr - __postfix_proxy(iter_reference_t<_It>&& __x) - : _M_keep(std::forward>(__x)) { } - - friend class common_iterator; - - public: - constexpr const iter_value_t<_It>& - operator*() const noexcept - { return _M_keep; } - }; - - public: - constexpr - common_iterator() - noexcept(is_nothrow_default_constructible_v<_It>) - requires default_initializable<_It> - : _M_it(), _M_index(0) - { } - - constexpr - common_iterator(_It __i) - noexcept(is_nothrow_move_constructible_v<_It>) - : _M_it(std::move(__i)), _M_index(0) - { } - - constexpr - common_iterator(_Sent __s) - noexcept(is_nothrow_move_constructible_v<_Sent>) - : _M_sent(std::move(__s)), _M_index(1) - { } - - template - requires convertible_to - && convertible_to - constexpr - common_iterator(const common_iterator<_It2, _Sent2>& __x) - noexcept(_S_noexcept()) - : _M_valueless(), _M_index(__x._M_index) - { - __glibcxx_assert(__x._M_has_value()); - if (_M_index == 0) - { - if constexpr (is_trivially_default_constructible_v<_It>) - _M_it = std::move(__x._M_it); - else - std::construct_at(std::__addressof(_M_it), __x._M_it); - } - else if (_M_index == 1) - { - if constexpr (is_trivially_default_constructible_v<_Sent>) - _M_sent = std::move(__x._M_sent); - else - std::construct_at(std::__addressof(_M_sent), __x._M_sent); - } - } - - common_iterator(const common_iterator&) = default; - - constexpr - common_iterator(const common_iterator& __x) - noexcept(_S_noexcept()) - requires (!is_trivially_copyable_v<_It> || !is_trivially_copyable_v<_Sent>) - : _M_valueless(), _M_index(__x._M_index) - { - if (_M_index == 0) - { - if constexpr (is_trivially_default_constructible_v<_It>) - _M_it = __x._M_it; - else - std::construct_at(std::__addressof(_M_it), __x._M_it); - } - else if (_M_index == 1) - { - if constexpr (is_trivially_default_constructible_v<_Sent>) - _M_sent = __x._M_sent; - else - std::construct_at(std::__addressof(_M_sent), __x._M_sent); - } - } - - common_iterator(common_iterator&&) = default; - - constexpr - common_iterator(common_iterator&& __x) - noexcept(_S_noexcept<_It, _Sent>()) - requires (!is_trivially_copyable_v<_It> || !is_trivially_copyable_v<_Sent>) - : _M_valueless(), _M_index(__x._M_index) - { - if (_M_index == 0) - { - if constexpr (is_trivially_default_constructible_v<_It>) - _M_it = std::move(__x._M_it); - else - std::construct_at(std::__addressof(_M_it), std::move(__x._M_it)); - } - else if (_M_index == 1) - { - if constexpr (is_trivially_default_constructible_v<_Sent>) - _M_sent = std::move(__x._M_sent); - else - std::construct_at(std::__addressof(_M_sent), - std::move(__x._M_sent)); - } - } - - constexpr common_iterator& - operator=(const common_iterator&) = default; - - constexpr common_iterator& - operator=(const common_iterator& __x) - noexcept(is_nothrow_copy_assignable_v<_It> - && is_nothrow_copy_assignable_v<_Sent> - && is_nothrow_copy_constructible_v<_It> - && is_nothrow_copy_constructible_v<_Sent>) - requires (!is_trivially_copy_assignable_v<_It> - || !is_trivially_copy_assignable_v<_Sent>) - { - _M_assign(__x); - return *this; - } - - constexpr common_iterator& - operator=(common_iterator&&) = default; - - constexpr common_iterator& - operator=(common_iterator&& __x) - noexcept(is_nothrow_move_assignable_v<_It> - && is_nothrow_move_assignable_v<_Sent> - && is_nothrow_move_constructible_v<_It> - && is_nothrow_move_constructible_v<_Sent>) - requires (!is_trivially_move_assignable_v<_It> - || !is_trivially_move_assignable_v<_Sent>) - { - _M_assign(std::move(__x)); - return *this; - } - - template - requires convertible_to - && convertible_to - && assignable_from<_It&, const _It2&> - && assignable_from<_Sent&, const _Sent2&> - constexpr common_iterator& - operator=(const common_iterator<_It2, _Sent2>& __x) - noexcept(is_nothrow_constructible_v<_It, const _It2&> - && is_nothrow_constructible_v<_Sent, const _Sent2&> - && is_nothrow_assignable_v<_It&, const _It2&> - && is_nothrow_assignable_v<_Sent&, const _Sent2&>) - { - __glibcxx_assert(__x._M_has_value()); - _M_assign(__x); - return *this; - } - -#if __cpp_concepts >= 202002L // Constrained special member functions - ~common_iterator() = default; - - constexpr - ~common_iterator() - requires (!is_trivially_destructible_v<_It> - || !is_trivially_destructible_v<_Sent>) -#else - constexpr - ~common_iterator() -#endif - { - if (_M_index == 0) - _M_it.~_It(); - else if (_M_index == 1) - _M_sent.~_Sent(); - } - - [[nodiscard]] - constexpr decltype(auto) - operator*() - { - __glibcxx_assert(_M_index == 0); - return *_M_it; - } - - [[nodiscard]] - constexpr decltype(auto) - operator*() const requires __detail::__dereferenceable - { - __glibcxx_assert(_M_index == 0); - return *_M_it; - } - - [[nodiscard]] - constexpr auto - operator->() const requires __detail::__common_iter_has_arrow<_It> - { - __glibcxx_assert(_M_index == 0); - if constexpr (is_pointer_v<_It> || requires { _M_it.operator->(); }) - return _M_it; - else if constexpr (is_reference_v>) - { - auto&& __tmp = *_M_it; - return std::__addressof(__tmp); - } - else - return __arrow_proxy{*_M_it}; - } - - constexpr common_iterator& - operator++() - { - __glibcxx_assert(_M_index == 0); - ++_M_it; - return *this; - } - - constexpr decltype(auto) - operator++(int) - { - __glibcxx_assert(_M_index == 0); - if constexpr (forward_iterator<_It>) - { - common_iterator __tmp = *this; - ++*this; - return __tmp; - } - else if constexpr (!__detail::__common_iter_use_postfix_proxy<_It>) - return _M_it++; - else - { - __postfix_proxy __p(**this); - ++*this; - return __p; - } - } - - template _Sent2> - requires sentinel_for<_Sent, _It2> - friend constexpr bool - operator== [[nodiscard]] (const common_iterator& __x, - const common_iterator<_It2, _Sent2>& __y) - { - switch(__x._M_index << 2 | __y._M_index) - { - case 0b0000: - case 0b0101: - return true; - case 0b0001: - return __x._M_it == __y._M_sent; - case 0b0100: - return __x._M_sent == __y._M_it; - default: - __glibcxx_assert(__x._M_has_value()); - __glibcxx_assert(__y._M_has_value()); - __builtin_unreachable(); - } - } - - template _Sent2> - requires sentinel_for<_Sent, _It2> && equality_comparable_with<_It, _It2> - friend constexpr bool - operator== [[nodiscard]] (const common_iterator& __x, - const common_iterator<_It2, _Sent2>& __y) - { - switch(__x._M_index << 2 | __y._M_index) - { - case 0b0101: - return true; - case 0b0000: - return __x._M_it == __y._M_it; - case 0b0001: - return __x._M_it == __y._M_sent; - case 0b0100: - return __x._M_sent == __y._M_it; - default: - __glibcxx_assert(__x._M_has_value()); - __glibcxx_assert(__y._M_has_value()); - __builtin_unreachable(); - } - } - - template _It2, sized_sentinel_for<_It> _Sent2> - requires sized_sentinel_for<_Sent, _It2> - friend constexpr iter_difference_t<_It2> - operator- [[nodiscard]] (const common_iterator& __x, - const common_iterator<_It2, _Sent2>& __y) - { - switch(__x._M_index << 2 | __y._M_index) - { - case 0b0101: - return 0; - case 0b0000: - return __x._M_it - __y._M_it; - case 0b0001: - return __x._M_it - __y._M_sent; - case 0b0100: - return __x._M_sent - __y._M_it; - default: - __glibcxx_assert(__x._M_has_value()); - __glibcxx_assert(__y._M_has_value()); - __builtin_unreachable(); - } - } - - [[nodiscard]] - friend constexpr iter_rvalue_reference_t<_It> - iter_move(const common_iterator& __i) - noexcept(noexcept(ranges::iter_move(std::declval()))) - requires input_iterator<_It> - { - __glibcxx_assert(__i._M_index == 0); - return ranges::iter_move(__i._M_it); - } - - template _It2, typename _Sent2> - friend constexpr void - iter_swap(const common_iterator& __x, - const common_iterator<_It2, _Sent2>& __y) - noexcept(noexcept(ranges::iter_swap(std::declval(), - std::declval()))) - { - __glibcxx_assert(__x._M_index == 0); - __glibcxx_assert(__y._M_index == 0); - return ranges::iter_swap(__x._M_it, __y._M_it); - } - - private: - template _Sent2> - requires (!same_as<_It2, _Sent2>) && copyable<_It2> - friend class common_iterator; - - constexpr bool - _M_has_value() const noexcept { return _M_index != _S_valueless; } - - template - constexpr void - _M_assign(_CIt&& __x) - { - if (_M_index == __x._M_index) - { - if (_M_index == 0) - _M_it = std::forward<_CIt>(__x)._M_it; - else if (_M_index == 1) - _M_sent = std::forward<_CIt>(__x)._M_sent; - } - else - { - if (_M_index == 0) - _M_it.~_It(); - else if (_M_index == 1) - _M_sent.~_Sent(); - _M_index = _S_valueless; - - if (__x._M_index == 0) - std::construct_at(std::__addressof(_M_it), - std::forward<_CIt>(__x)._M_it); - else if (__x._M_index == 1) - std::construct_at(std::__addressof(_M_sent), - std::forward<_CIt>(__x)._M_sent); - _M_index = __x._M_index; - } - } - - union - { - _It _M_it; - _Sent _M_sent; - unsigned char _M_valueless; - }; - unsigned char _M_index; // 0 == _M_it, 1 == _M_sent, 2 == valueless - - static constexpr unsigned char _S_valueless{2}; - }; - - template - struct incrementable_traits> - { - using difference_type = iter_difference_t<_It>; - }; - - template - struct iterator_traits> - { - private: - template - struct __ptr - { - using type = void; - }; - - template - requires __detail::__common_iter_has_arrow<_Iter> - struct __ptr<_Iter> - { - using _CIter = common_iterator<_Iter, _Sent>; - using type = decltype(std::declval().operator->()); - }; - - static auto - _S_iter_cat() - { - using _Traits = iterator_traits<_It>; - if constexpr (requires { requires derived_from; }) - return forward_iterator_tag{}; - else - return input_iterator_tag{}; - } - - public: - using iterator_concept = __conditional_t, - forward_iterator_tag, - input_iterator_tag>; - using iterator_category = decltype(_S_iter_cat()); - using value_type = iter_value_t<_It>; - using difference_type = iter_difference_t<_It>; - using pointer = typename __ptr<_It>::type; - using reference = iter_reference_t<_It>; - }; - - // [iterators.counted] Counted iterators - - namespace __detail - { - template - struct __counted_iter_value_type - { }; - - template - struct __counted_iter_value_type<_It> - { using value_type = iter_value_t<_It>; }; - - template - struct __counted_iter_concept - { }; - - template - requires requires { typename _It::iterator_concept; } - struct __counted_iter_concept<_It> - { using iterator_concept = typename _It::iterator_concept; }; - - template - struct __counted_iter_cat - { }; - - template - requires requires { typename _It::iterator_category; } - struct __counted_iter_cat<_It> - { using iterator_category = typename _It::iterator_category; }; - } - - /// An iterator adaptor that keeps track of the distance to the end. - template - class counted_iterator - : public __detail::__counted_iter_value_type<_It>, - public __detail::__counted_iter_concept<_It>, - public __detail::__counted_iter_cat<_It> - { - public: - using iterator_type = _It; - // value_type defined in __counted_iter_value_type - using difference_type = iter_difference_t<_It>; - // iterator_concept defined in __counted_iter_concept - // iterator_category defined in __counted_iter_cat - - constexpr counted_iterator() requires default_initializable<_It> = default; - - constexpr - counted_iterator(_It __i, iter_difference_t<_It> __n) - : _M_current(std::move(__i)), _M_length(__n) - { __glibcxx_assert(__n >= 0); } - - template - requires convertible_to - constexpr - counted_iterator(const counted_iterator<_It2>& __x) - : _M_current(__x._M_current), _M_length(__x._M_length) - { } - - template - requires assignable_from<_It&, const _It2&> - constexpr counted_iterator& - operator=(const counted_iterator<_It2>& __x) - { - _M_current = __x._M_current; - _M_length = __x._M_length; - return *this; - } - - [[nodiscard]] - constexpr const _It& - base() const & noexcept - { return _M_current; } - - [[nodiscard]] - constexpr _It - base() && - noexcept(is_nothrow_move_constructible_v<_It>) - { return std::move(_M_current); } - - [[nodiscard]] - constexpr iter_difference_t<_It> - count() const noexcept { return _M_length; } - - [[nodiscard]] - constexpr decltype(auto) - operator*() - noexcept(noexcept(*_M_current)) - { - __glibcxx_assert( _M_length > 0 ); - return *_M_current; - } - - [[nodiscard]] - constexpr decltype(auto) - operator*() const - noexcept(noexcept(*_M_current)) - requires __detail::__dereferenceable - { - __glibcxx_assert( _M_length > 0 ); - return *_M_current; - } - - [[nodiscard]] - constexpr auto - operator->() const noexcept - requires contiguous_iterator<_It> - { return std::to_address(_M_current); } - - constexpr counted_iterator& - operator++() - { - __glibcxx_assert(_M_length > 0); - ++_M_current; - --_M_length; - return *this; - } - - constexpr decltype(auto) - operator++(int) - { - __glibcxx_assert(_M_length > 0); - --_M_length; - __try - { - return _M_current++; - } __catch(...) { - ++_M_length; - __throw_exception_again; - } - } - - constexpr counted_iterator - operator++(int) requires forward_iterator<_It> - { - auto __tmp = *this; - ++*this; - return __tmp; - } - - constexpr counted_iterator& - operator--() requires bidirectional_iterator<_It> - { - --_M_current; - ++_M_length; - return *this; - } - - constexpr counted_iterator - operator--(int) requires bidirectional_iterator<_It> - { - auto __tmp = *this; - --*this; - return __tmp; - } - - [[nodiscard]] - constexpr counted_iterator - operator+(iter_difference_t<_It> __n) const - requires random_access_iterator<_It> - { return counted_iterator(_M_current + __n, _M_length - __n); } - - [[nodiscard]] - friend constexpr counted_iterator - operator+(iter_difference_t<_It> __n, const counted_iterator& __x) - requires random_access_iterator<_It> - { return __x + __n; } - - constexpr counted_iterator& - operator+=(iter_difference_t<_It> __n) - requires random_access_iterator<_It> - { - __glibcxx_assert(__n <= _M_length); - _M_current += __n; - _M_length -= __n; - return *this; - } - - [[nodiscard]] - constexpr counted_iterator - operator-(iter_difference_t<_It> __n) const - requires random_access_iterator<_It> - { return counted_iterator(_M_current - __n, _M_length + __n); } - - template _It2> - [[nodiscard]] - friend constexpr iter_difference_t<_It2> - operator-(const counted_iterator& __x, - const counted_iterator<_It2>& __y) - { return __y._M_length - __x._M_length; } - - [[nodiscard]] - friend constexpr iter_difference_t<_It> - operator-(const counted_iterator& __x, default_sentinel_t) - { return -__x._M_length; } - - [[nodiscard]] - friend constexpr iter_difference_t<_It> - operator-(default_sentinel_t, const counted_iterator& __y) - { return __y._M_length; } - - constexpr counted_iterator& - operator-=(iter_difference_t<_It> __n) - requires random_access_iterator<_It> - { - __glibcxx_assert(-__n <= _M_length); - _M_current -= __n; - _M_length += __n; - return *this; - } - - [[nodiscard]] - constexpr decltype(auto) - operator[](iter_difference_t<_It> __n) const - noexcept(noexcept(_M_current[__n])) - requires random_access_iterator<_It> - { - __glibcxx_assert(__n < _M_length); - return _M_current[__n]; - } - - template _It2> - [[nodiscard]] - friend constexpr bool - operator==(const counted_iterator& __x, - const counted_iterator<_It2>& __y) - { return __x._M_length == __y._M_length; } - - [[nodiscard]] - friend constexpr bool - operator==(const counted_iterator& __x, default_sentinel_t) - { return __x._M_length == 0; } - - template _It2> - [[nodiscard]] - friend constexpr strong_ordering - operator<=>(const counted_iterator& __x, - const counted_iterator<_It2>& __y) - { return __y._M_length <=> __x._M_length; } - - [[nodiscard]] - friend constexpr iter_rvalue_reference_t<_It> - iter_move(const counted_iterator& __i) - noexcept(noexcept(ranges::iter_move(__i._M_current))) - requires input_iterator<_It> - { - __glibcxx_assert( __i._M_length > 0 ); - return ranges::iter_move(__i._M_current); - } - - template _It2> - friend constexpr void - iter_swap(const counted_iterator& __x, - const counted_iterator<_It2>& __y) - noexcept(noexcept(ranges::iter_swap(__x._M_current, __y._M_current))) - { - __glibcxx_assert( __x._M_length > 0 && __y._M_length > 0 ); - ranges::iter_swap(__x._M_current, __y._M_current); - } - - private: - template friend class counted_iterator; - - _It _M_current = _It(); - iter_difference_t<_It> _M_length = 0; - }; - - template - requires same_as<__detail::__iter_traits<_It>, iterator_traits<_It>> - struct iterator_traits> : iterator_traits<_It> - { - using pointer = __conditional_t, - add_pointer_t>, - void>; - }; - -#if __cplusplus > 202020L - template - using iter_const_reference_t - = common_reference_t&&, iter_reference_t<_It>>; - - template class basic_const_iterator; - - namespace __detail - { - template - concept __constant_iterator = input_iterator<_It> - && same_as, iter_reference_t<_It>>; - - template - inline constexpr bool __is_const_iterator = false; - - template - inline constexpr bool __is_const_iterator> = true; - - template - concept __not_a_const_iterator = !__is_const_iterator<_Tp>; - - template - using __iter_const_rvalue_reference_t - = common_reference_t&&, iter_rvalue_reference_t<_It>>; - - template - struct __basic_const_iterator_iter_cat - { }; - - template - struct __basic_const_iterator_iter_cat<_It> - { using iterator_category = iterator_traits<_It>::iterator_category; }; - } // namespace detail - - template - using const_iterator - = __conditional_t<__detail::__constant_iterator<_It>, _It, basic_const_iterator<_It>>; - - namespace __detail - { - template - struct __const_sentinel - { using type = _Sent; }; - - template - struct __const_sentinel<_Sent> - { using type = const_iterator<_Sent>; }; - } // namespace __detail - - template - using const_sentinel = typename __detail::__const_sentinel<_Sent>::type; - - template - class basic_const_iterator - : public __detail::__basic_const_iterator_iter_cat<_It> - { - _It _M_current = _It(); - using __reference = iter_const_reference_t<_It>; - using __rvalue_reference = __detail::__iter_const_rvalue_reference_t<_It>; - - static auto - _S_iter_concept() - { - if constexpr (contiguous_iterator<_It>) - return contiguous_iterator_tag{}; - else if constexpr (random_access_iterator<_It>) - return random_access_iterator_tag{}; - else if constexpr (bidirectional_iterator<_It>) - return bidirectional_iterator_tag{}; - else if constexpr (forward_iterator<_It>) - return forward_iterator_tag{}; - else - return input_iterator_tag{}; - } - - template friend class basic_const_iterator; - - public: - using iterator_concept = decltype(_S_iter_concept()); - using value_type = iter_value_t<_It>; - using difference_type = iter_difference_t<_It>; - - basic_const_iterator() requires default_initializable<_It> = default; - - constexpr - basic_const_iterator(_It __current) - noexcept(is_nothrow_move_constructible_v<_It>) - : _M_current(std::move(__current)) - { } - - template _It2> - constexpr - basic_const_iterator(basic_const_iterator<_It2> __current) - noexcept(is_nothrow_constructible_v<_It, _It2>) - : _M_current(std::move(__current._M_current)) - { } - - template<__detail::__different_from _Tp> - requires convertible_to<_Tp, _It> - constexpr - basic_const_iterator(_Tp&& __current) - noexcept(is_nothrow_constructible_v<_It, _Tp>) - : _M_current(std::forward<_Tp>(__current)) - { } - - constexpr const _It& - base() const & noexcept - { return _M_current; } - - constexpr _It - base() && - noexcept(is_nothrow_move_constructible_v<_It>) - { return std::move(_M_current); } - - constexpr __reference - operator*() const - noexcept(noexcept(static_cast<__reference>(*_M_current))) - { return static_cast<__reference>(*_M_current); } - - constexpr const auto* - operator->() const - noexcept(contiguous_iterator<_It> || noexcept(*_M_current)) - requires is_lvalue_reference_v> - && same_as>, value_type> - { - if constexpr (contiguous_iterator<_It>) - return std::to_address(_M_current); - else - return std::__addressof(*_M_current); - } - - constexpr basic_const_iterator& - operator++() - noexcept(noexcept(++_M_current)) - { - ++_M_current; - return *this; - } - - constexpr void - operator++(int) - noexcept(noexcept(++_M_current)) - { ++_M_current; } - - constexpr basic_const_iterator - operator++(int) - noexcept(noexcept(++*this) && is_nothrow_copy_constructible_v) - requires forward_iterator<_It> - { - auto __tmp = *this; - ++*this; - return __tmp; - } - - constexpr basic_const_iterator& - operator--() - noexcept(noexcept(--_M_current)) - requires bidirectional_iterator<_It> - { - --_M_current; - return *this; - } - - constexpr basic_const_iterator - operator--(int) - noexcept(noexcept(--*this) && is_nothrow_copy_constructible_v) - requires bidirectional_iterator<_It> - { - auto __tmp = *this; - --*this; - return __tmp; - } - - constexpr basic_const_iterator& - operator+=(difference_type __n) - noexcept(noexcept(_M_current += __n)) - requires random_access_iterator<_It> - { - _M_current += __n; - return *this; - } - - constexpr basic_const_iterator& - operator-=(difference_type __n) - noexcept(noexcept(_M_current -= __n)) - requires random_access_iterator<_It> - { - _M_current -= __n; - return *this; - } - - constexpr __reference - operator[](difference_type __n) const - noexcept(noexcept(static_cast<__reference>(_M_current[__n]))) - requires random_access_iterator<_It> - { return static_cast<__reference>(_M_current[__n]); } - - template _Sent> - constexpr bool - operator==(const _Sent& __s) const - noexcept(noexcept(_M_current == __s)) - { return _M_current == __s; } - - constexpr bool - operator<(const basic_const_iterator& __y) const - noexcept(noexcept(_M_current < __y._M_current)) - requires random_access_iterator<_It> - { return _M_current < __y._M_current; } - - constexpr bool - operator>(const basic_const_iterator& __y) const - noexcept(noexcept(_M_current > __y._M_current)) - requires random_access_iterator<_It> - { return _M_current > __y._M_current; } - - constexpr bool - operator<=(const basic_const_iterator& __y) const - noexcept(noexcept(_M_current <= __y._M_current)) - requires random_access_iterator<_It> - { return _M_current <= __y._M_current; } - - constexpr bool - operator>=(const basic_const_iterator& __y) const - noexcept(noexcept(_M_current >= __y._M_current)) - requires random_access_iterator<_It> - { return _M_current >= __y._M_current; } - - constexpr auto - operator<=>(const basic_const_iterator& __y) const - noexcept(noexcept(_M_current <=> __y._M_current)) - requires random_access_iterator<_It> && three_way_comparable<_It> - { return _M_current <=> __y._M_current; } - - template<__detail::__different_from _It2> - constexpr bool - operator<(const _It2& __y) const - noexcept(noexcept(_M_current < __y)) - requires random_access_iterator<_It> && totally_ordered_with<_It, _It2> - { return _M_current < __y; } - - template<__detail::__different_from _It2> - constexpr bool - operator>(const _It2& __y) const - noexcept(noexcept(_M_current > __y)) - requires random_access_iterator<_It> && totally_ordered_with<_It, _It2> - { return _M_current > __y; } - - template<__detail::__different_from _It2> - constexpr bool - operator<=(const _It2& __y) const - noexcept(noexcept(_M_current <= __y)) - requires random_access_iterator<_It> && totally_ordered_with<_It, _It2> - { return _M_current <= __y; } - - template<__detail::__different_from _It2> - constexpr bool - operator>=(const _It2& __y) const - noexcept(noexcept(_M_current >= __y)) - requires random_access_iterator<_It> && totally_ordered_with<_It, _It2> - { return _M_current >= __y; } - - template<__detail::__different_from _It2> - constexpr auto - operator<=>(const _It2& __y) const - noexcept(noexcept(_M_current <=> __y)) - requires random_access_iterator<_It> && totally_ordered_with<_It, _It2> - && three_way_comparable_with<_It, _It2> - { return _M_current <=> __y; } - - template<__detail::__not_a_const_iterator _It2> - friend constexpr bool - operator<(const _It2& __x, const basic_const_iterator& __y) - noexcept(noexcept(__x < __y._M_current)) - requires random_access_iterator<_It> && totally_ordered_with<_It, _It2> - { return __x < __y._M_current; } - - template<__detail::__not_a_const_iterator _It2> - friend constexpr bool - operator>(const _It2& __x, const basic_const_iterator& __y) - noexcept(noexcept(__x > __y._M_current)) - requires random_access_iterator<_It> && totally_ordered_with<_It, _It2> - { return __x > __y._M_current; } - - template<__detail::__not_a_const_iterator _It2> - friend constexpr bool - operator<=(const _It2& __x, const basic_const_iterator& __y) - noexcept(noexcept(__x <= __y._M_current)) - requires random_access_iterator<_It> && totally_ordered_with<_It, _It2> - { return __x <= __y._M_current; } - - template<__detail::__not_a_const_iterator _It2> - friend constexpr bool - operator>=(const _It2& __x, const basic_const_iterator& __y) - noexcept(noexcept(__x >= __y._M_current)) - requires random_access_iterator<_It> && totally_ordered_with<_It, _It2> - { return __x >= __y._M_current; } - - friend constexpr basic_const_iterator - operator+(const basic_const_iterator& __i, difference_type __n) - noexcept(noexcept(basic_const_iterator(__i._M_current + __n))) - requires random_access_iterator<_It> - { return basic_const_iterator(__i._M_current + __n); } - - friend constexpr basic_const_iterator - operator+(difference_type __n, const basic_const_iterator& __i) - noexcept(noexcept(basic_const_iterator(__i._M_current + __n))) - requires random_access_iterator<_It> - { return basic_const_iterator(__i._M_current + __n); } - - friend constexpr basic_const_iterator - operator-(const basic_const_iterator& __i, difference_type __n) - noexcept(noexcept(basic_const_iterator(__i._M_current - __n))) - requires random_access_iterator<_It> - { return basic_const_iterator(__i._M_current - __n); } - - template _Sent> - constexpr difference_type - operator-(const _Sent& __y) const - noexcept(noexcept(_M_current - __y)) - { return _M_current - __y; } - - template<__detail::__not_a_const_iterator _Sent> - requires sized_sentinel_for<_Sent, _It> - friend constexpr difference_type - operator-(const _Sent& __x, const basic_const_iterator& __y) - noexcept(noexcept(__x - __y._M_current)) - { return __x - __y._M_current; } - - friend constexpr __rvalue_reference - iter_move(const basic_const_iterator& __i) - noexcept(noexcept(static_cast<__rvalue_reference>(ranges::iter_move(__i._M_current)))) - { return static_cast<__rvalue_reference>(ranges::iter_move(__i._M_current)); } - }; - - template _Up> - requires input_iterator> - struct common_type, _Up> - { using type = basic_const_iterator>; }; - - template _Up> - requires input_iterator> - struct common_type<_Up, basic_const_iterator<_Tp>> - { using type = basic_const_iterator>; }; - - template _Up> - requires input_iterator> - struct common_type, basic_const_iterator<_Up>> - { using type = basic_const_iterator>; }; - - template - constexpr const_iterator<_It> - make_const_iterator(_It __it) - noexcept(is_nothrow_convertible_v<_It, const_iterator<_It>>) - { return __it; } - - template - constexpr const_sentinel<_Sent> - make_const_sentinel(_Sent __s) - noexcept(is_nothrow_convertible_v<_Sent, const_sentinel<_Sent>>) - { return __s; } -#endif // C++23 -#endif // C++20 - - /// @} group iterators - - template - _GLIBCXX20_CONSTEXPR - auto - __niter_base(move_iterator<_Iterator> __it) - -> decltype(make_move_iterator(__niter_base(__it.base()))) - { return make_move_iterator(__niter_base(__it.base())); } - - template - struct __is_move_iterator > - { - enum { __value = 1 }; - typedef __true_type __type; - }; - - template - _GLIBCXX20_CONSTEXPR - auto - __miter_base(move_iterator<_Iterator> __it) - -> decltype(__miter_base(__it.base())) - { return __miter_base(__it.base()); } - -#define _GLIBCXX_MAKE_MOVE_ITERATOR(_Iter) std::make_move_iterator(_Iter) -#define _GLIBCXX_MAKE_MOVE_IF_NOEXCEPT_ITERATOR(_Iter) \ - std::__make_move_if_noexcept_iterator(_Iter) -#else -#define _GLIBCXX_MAKE_MOVE_ITERATOR(_Iter) (_Iter) -#define _GLIBCXX_MAKE_MOVE_IF_NOEXCEPT_ITERATOR(_Iter) (_Iter) -#endif // C++11 - -#if __cpp_deduction_guides >= 201606 - // These helper traits are used for deduction guides - // of associative containers. - template - using __iter_key_t = remove_const_t< - typename iterator_traits<_InputIterator>::value_type::first_type>; - - template - using __iter_val_t - = typename iterator_traits<_InputIterator>::value_type::second_type; - - template - struct pair; - - template - using __iter_to_alloc_t - = pair, __iter_val_t<_InputIterator>>; -#endif // __cpp_deduction_guides - -_GLIBCXX_END_NAMESPACE_VERSION -} // namespace - -#ifdef _GLIBCXX_DEBUG -# include -#endif - -#endif diff --git a/.ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@c++@13.1.1@bits@stl_iterator.h.blob b/.ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@c++@13.1.1@bits@stl_iterator.h.blob deleted file mode 100644 index 3df49e5d6d2fe1d0faf6bda4877195f0f961aa65..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 84045 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 z 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. - -/* - * - * Copyright (c) 1994 - * Hewlett-Packard Company - * - * Permission to use, copy, modify, distribute and sell this software - * and its documentation for any purpose is hereby granted without fee, - * provided that the above copyright notice appear in all copies and - * that both that copyright notice and this permission notice appear - * in supporting documentation. Hewlett-Packard Company makes no - * representations about the suitability of this software for any - * purpose. It is provided "as is" without express or implied warranty. - * - * - * Copyright (c) 1996-1998 - * Silicon Graphics Computer Systems, Inc. - * - * Permission to use, copy, modify, distribute and sell this software - * and its documentation for any purpose is hereby granted without fee, - * provided that the above copyright notice appear in all copies and - * that both that copyright notice and this permission notice appear - * in supporting documentation. Silicon Graphics makes no - * representations about the suitability of this software for any - * purpose. It is provided "as is" without express or implied warranty. - */ - -/** @file bits/stl_iterator_base_funcs.h - * This is an internal header file, included by other library headers. - * Do not attempt to use it directly. @headername{iterator} - * - * This file contains all of the general iterator-related utility - * functions, such as distance() and advance(). - */ - -#ifndef _STL_ITERATOR_BASE_FUNCS_H -#define _STL_ITERATOR_BASE_FUNCS_H 1 - -#pragma GCC system_header - -#include -#include -#include - -namespace std _GLIBCXX_VISIBILITY(default) -{ -_GLIBCXX_BEGIN_NAMESPACE_VERSION - -_GLIBCXX_BEGIN_NAMESPACE_CONTAINER - // Forward declaration for the overloads of __distance. - template struct _List_iterator; - template struct _List_const_iterator; -_GLIBCXX_END_NAMESPACE_CONTAINER - - template - inline _GLIBCXX14_CONSTEXPR - typename iterator_traits<_InputIterator>::difference_type - __distance(_InputIterator __first, _InputIterator __last, - input_iterator_tag) - { - // concept requirements - __glibcxx_function_requires(_InputIteratorConcept<_InputIterator>) - - typename iterator_traits<_InputIterator>::difference_type __n = 0; - while (__first != __last) - { - ++__first; - ++__n; - } - return __n; - } - - template - __attribute__((__always_inline__)) - inline _GLIBCXX14_CONSTEXPR - typename iterator_traits<_RandomAccessIterator>::difference_type - __distance(_RandomAccessIterator __first, _RandomAccessIterator __last, - random_access_iterator_tag) - { - // concept requirements - __glibcxx_function_requires(_RandomAccessIteratorConcept< - _RandomAccessIterator>) - return __last - __first; - } - -#if _GLIBCXX_USE_CXX11_ABI - // Forward declaration because of the qualified call in distance. - template - ptrdiff_t - __distance(_GLIBCXX_STD_C::_List_iterator<_Tp>, - _GLIBCXX_STD_C::_List_iterator<_Tp>, - input_iterator_tag); - - template - ptrdiff_t - __distance(_GLIBCXX_STD_C::_List_const_iterator<_Tp>, - _GLIBCXX_STD_C::_List_const_iterator<_Tp>, - input_iterator_tag); -#endif - -#if __cplusplus >= 201103L - // Give better error if std::distance called with a non-Cpp17InputIterator. - template - void - __distance(_OutputIterator, _OutputIterator, output_iterator_tag) = delete; -#endif - - /** - * @brief A generalization of pointer arithmetic. - * @param __first An input iterator. - * @param __last An input iterator. - * @return The distance between them. - * - * Returns @c n such that __first + n == __last. This requires - * that @p __last must be reachable from @p __first. Note that @c - * n may be negative. - * - * For random access iterators, this uses their @c + and @c - operations - * and are constant time. For other %iterator classes they are linear time. - */ - template - _GLIBCXX_NODISCARD __attribute__((__always_inline__)) - inline _GLIBCXX17_CONSTEXPR - typename iterator_traits<_InputIterator>::difference_type - distance(_InputIterator __first, _InputIterator __last) - { - // concept requirements -- taken care of in __distance - return std::__distance(__first, __last, - std::__iterator_category(__first)); - } - - template - inline _GLIBCXX14_CONSTEXPR void - __advance(_InputIterator& __i, _Distance __n, input_iterator_tag) - { - // concept requirements - __glibcxx_function_requires(_InputIteratorConcept<_InputIterator>) - __glibcxx_assert(__n >= 0); - while (__n--) - ++__i; - } - - template - inline _GLIBCXX14_CONSTEXPR void - __advance(_BidirectionalIterator& __i, _Distance __n, - bidirectional_iterator_tag) - { - // concept requirements - __glibcxx_function_requires(_BidirectionalIteratorConcept< - _BidirectionalIterator>) - if (__n > 0) - while (__n--) - ++__i; - else - while (__n++) - --__i; - } - - template - inline _GLIBCXX14_CONSTEXPR void - __advance(_RandomAccessIterator& __i, _Distance __n, - random_access_iterator_tag) - { - // concept requirements - __glibcxx_function_requires(_RandomAccessIteratorConcept< - _RandomAccessIterator>) - if (__builtin_constant_p(__n) && __n == 1) - ++__i; - else if (__builtin_constant_p(__n) && __n == -1) - --__i; - else - __i += __n; - } - -#if __cplusplus >= 201103L - // Give better error if std::advance called with a non-Cpp17InputIterator. - template - void - __advance(_OutputIterator&, _Distance, output_iterator_tag) = delete; -#endif - - /** - * @brief A generalization of pointer arithmetic. - * @param __i An input iterator. - * @param __n The @a delta by which to change @p __i. - * @return Nothing. - * - * This increments @p i by @p n. For bidirectional and random access - * iterators, @p __n may be negative, in which case @p __i is decremented. - * - * For random access iterators, this uses their @c + and @c - operations - * and are constant time. For other %iterator classes they are linear time. - */ - template - __attribute__((__always_inline__)) - inline _GLIBCXX17_CONSTEXPR void - advance(_InputIterator& __i, _Distance __n) - { - // concept requirements -- taken care of in __advance - typename iterator_traits<_InputIterator>::difference_type __d = __n; - std::__advance(__i, __d, std::__iterator_category(__i)); - } - -#if __cplusplus >= 201103L - - template - _GLIBCXX_NODISCARD [[__gnu__::__always_inline__]] - inline _GLIBCXX17_CONSTEXPR _InputIterator - next(_InputIterator __x, typename - iterator_traits<_InputIterator>::difference_type __n = 1) - { - // concept requirements - __glibcxx_function_requires(_InputIteratorConcept<_InputIterator>) - std::advance(__x, __n); - return __x; - } - - template - _GLIBCXX_NODISCARD [[__gnu__::__always_inline__]] - inline _GLIBCXX17_CONSTEXPR _BidirectionalIterator - prev(_BidirectionalIterator __x, typename - iterator_traits<_BidirectionalIterator>::difference_type __n = 1) - { - // concept requirements - __glibcxx_function_requires(_BidirectionalIteratorConcept< - _BidirectionalIterator>) - std::advance(__x, -__n); - return __x; - } - -#endif // C++11 - -_GLIBCXX_END_NAMESPACE_VERSION -} // namespace - -#endif /* _STL_ITERATOR_BASE_FUNCS_H */ diff --git a/.ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@c++@13.1.1@bits@stl_iterator_base_funcs.h.blob b/.ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@c++@13.1.1@bits@stl_iterator_base_funcs.h.blob deleted file mode 100644 index 72639f2ff6b34396303e5d778dadd652f22e98cb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 20777 zcmd5^dwdktz2Dg^xQ!{zrQ8+MG)`^cvp_Z*Fb0f}yC#4n@`w<_L+mg+JIM}gc9z-M zBq$N9h*q&;VnJzCL=ju94=Ti#ivlVywN_dyB{o>)Wd$E#1q3?xcg~rao!y<;U26Zh zd_GKY<~)Ay-}m=BCl0s$Yk5caE<0tndt*__D}=dFEWmrY5hJ`KuP7Z^I@0SG%@;b$(SdS~e^dq)GqUMWHrnE8=D`jG&Wpu`Ms4_Hb)r!5f)P0=@oa#B<+ue*ixBn% z7KPasfiqngPiYE?tQ_`mVoQq{wjS1o<>6`Lf-Dw)ic$$fLJJ=iZZ=mt9^qdk^U*do zV!D&T>o~lViBt_^_;!wu$buM7Kg`k^nn7BK4io_r43zMKm4hrUWThFyIEI;6J9$DT zt^_eEgMwPD_5|YwWif3+fM+-{7KVspx};%a4k%n;VL1j_Mdbhym(|w97J25JjCn_1Sz1;)T93IvVt{W#{5C9Do2U@OhQPWd3qZ7~ zxDuyFy)9xZ9+;wd!$3>MkkxpAP&O9A{+ezPKe%BVD+M6%hXWu`L|w{wgEDa_u~4RA zn5rd9i!%)6L~((@GlGZ{7IK!T#rg)`1H3=h?8Q%0iVZ{YRwz3{N+V>M&M;8KFijEB ziUaU znL!m)ECEX(nJgJpilKxQppZ22M!AW1=XSG7(l{Te8{# zDmliGm`ry`<`JT4R&@)ePInf)W;NXd3X3!ag@FPNqzACgM6HHFKwRdM;63KNylQ90(1dMsiPkpM5xZ!s@2^aV_pH!y@^31I&$n9_r*DMN-ORqX^A z)}PVokt1ia5^X(Djt3WVnRv3q3|i#@erL)A-YJeMQZiFYk?KKR610?grD~0X4C1n` zmJEY1Wq>I4G?FpaB|sXp;HZfe;<^XLc2lY1K_nysIK=8qk&1y#q)vhk5L9l3VgO-r zQ&}5k8N|*&(FE8s;}lC3;|iV;!qATT_p2YEO>bVMW)(~>iSlY}lrx4zsPxf{^loO! z6seeS@xg}ECULdbf{Krd@+<*@#4n6N&n(IW!M+G)%xGPDFkm9Gd3zyQzqn3LmwgQr zAj$%|{5OTgMPg~;pJ5-YNv^$}^$TD!g3Rb_nVKw7JcibuD71+9fJgVo6t6I`57!*2;!VV}Ljt1VI>ZOrxelRp&=1tRZEA_hQ&0)VhMGk!9cA=ipahi~X-iJv zuRW8ZRG}dVVO0+%(<+2p#RcZE8Ly^ye^WG+yb^H+J!P2J?YJuDLvSQu$_w5STQ#UB zV;IMyArV5D%n&O`ytm$xbfitcC$ou^tD%21Aw{`_hg2TZH6d9Eoy?>*A@N#m&`N3w zvCZa=oJ?O#7D8%CXii!}u4EX%tPIq+jLc#ZQq-)IfX)kI+0j7I4(i632?+Gdc}O*y zrNq@b+`>Od&o`^3P_4$`^8i!I@Tpmv`h=*K^s8H9a%P7_vKGQkW-;2JH-ys&7`9TJ zVXzu2ObpL32os9VO%U!gWfd2YrZUUkB5xW zJtp}iTeB0}WlG^chW~At zyd+{%|JapB@>hKJo$;p@D0`Ro4SM~h;|1y$W$J6|9=U}3-RJS4eScoD_|uR6s3=80 z>g4t;eV|Son)A2QZFkjH4~`FATJWnKZ~tN{r9AVVc<z=JHzV}-6g3MNYk9I$Ge&@FD#TRq^x+AjU{VVTPw!QrMyv~{% z=BS?(_lVz1Pj8>Hmy|p-E)w|mh(x!FLVyNys;p!fHqgpKOTx`m3*>klHM7@MbAcke^1J$^bndTYaxn4ATj0vcyRU$?Ux)Avi~ z6NJ9?_3zAo|E{h7qntZY8?Igcke^zUx5lR^C*PiU_iwsxLOMty_=myc_r7<-dycp+ zMlr#!rxkt7D);??|NFN2vo~e0*!tstrvKD<-?I2(S3fmu)Q!Xc#3;{B==EbsUvTIBXgeC zuX~U#>R2X0;8m5C0imghmw2!W+|46a5l{`qoj4rqrb&>ZGMG}rGVmU%dU=@b_T~9h zm$PdyvX~X659QiupI;LACi)s0pZz18%%UbIEjG~+5xNq*M6(iH7HQ#SIN#5ueYgQh zYdg{OHDMa-UgsoX5ZcyajKsseg)mJw1bJHHhxYSw8_$PnImow^=H}AV@t`Q}JZ9Q0F zswng7JT4bjZ($dqDPg`DD|X9ft=@__`f=RZ8r`FJAZ{G+@`L6>Ieo`MWlM zu>aG~tMwPRZvNSi=ltd3FnW;^F0rfH6m5(#p>HW4ji#fy@P2C~nWtLQ|r1&`=bG_yFAo=1a45SPXk= zB9W1!6I`Pdc{d3-NFF3YUOuYk72k*&)mQzZ7$PeZ^@-BBac&&uX&rcsWg13S(L+m! zHWS{Dg7?Ex0N zCPN(1B?dG^s?@Z>Sbo9Is?Q;bq{t04fmx$V1R!v*He#h9UycQ1M$rIFk6svq0MR6X zOp$28?{&u|VuUmkaYhQyQw~aWN)i;jtkapwoAq}~4w1k?>Qt+<71J1V zwi{{GQcy}_j2i%?=_t8_01nIW(6EWYjjDj#px=@TEDO97=ock7q}TIf>@N5_-e*(F zjvTo5f7ZS82_gsmu`92;D_!E8{2P_YOE10ij^S(G&pxl%3hy0Nwe8^tEp7Ej|1n#o zW)7cOifwdHQDw!__7&Qu86eMe94oKE$Fo@=2@+b><6PYU;)tim*@F?qCg*DeQ9SRy z{8Vn@6FSj+=xQ6LdMF*6&zm2D)n30ImAsdmH&C^f|Bvgyf2z{vnO6OHi zJ~xQsoE#R^Jm-AkRn@<`WN-KXMs_QEzyI3bhre~%h~zA(`In_f=vgww>MzhEQj_G9 zwzn^Ra>ozuBBqK$=>A#P-NIZ{|AzAUv~y1sm)`Y|`bild7`nM-#+`eN&_u7s5`hTH z-+B$E$}JNr8A$DR?#A(Gmvi^6X;6u}=Y@h2y=;4D-4$(rD|jbQ6?dE+otXq&V^&h4 zNHc)yb@sXtiu$Yb!*7NE1q)oS7YHi0_pu1W$t>+(M7IS61mQ&*@HgDqA<$bu6@yj{ z0R9f5J79pbF_?!Yj>NaXofoJ9BD8=OfuCVO>IjA>RL2-m6FXOdd9D$eW0;=;=t~fa zA!KoIl&n%j1BeG4M0SRD%KuB$pQCh@zx8s(hgZC%{Pf|IUoMI+-=nOviCvt#=d*su zZuC+g#V-6p>s9D4v`ntQ(A)*TfS{ky9KrF=e#~{O80CU9t~2F%Yj)4j!tCO=Hv~72 zxc!d!P}fUc7wwxo+^*z4eDTKNO@|L=Ey>H2%O@Q__2Axvx$uh*kq|(bu~h(I(4BFD zV{{awHcbe)Ld|b_colt1hpo6&r@0@Z$nG!jk8x0)1)cCzMm@g0_$Tg9ABK8KBNzQF zuu)-mxRj#8t}tMDdt`3J@1Pb=UDyC~D(;cL-23dbpPOqnX_+tFUo=qE7p^ZFY?Pvj zJLiP&M94v%9C)(IL48&HRXwa)a&B35>8;&&A}@fOdW5^AqA!_QG}eQIEY!u4r_56Z zOsDjTY^BRI5hypUb?%b>)%eLdM5f(8-+woVVs7WnK){UAqqlE(;ZL_2rE3ip=t?>Q zC$j=a2u+B-2}m93V8GyVO)Qt-jRQr2=??1U!j}=}r)FPz>h{;l|7Z$bw0Yuj&)E*Q|&A2gEvPVM=uAHaeM_&<#G4;JFndPgGZB^C`lsgaCc0k zs18@hL|}7C(Gpl?iEqhIVE(p09Jz9D$F_)3Y7IzOuG>q_eU zNOD!JO(40lwpp;`sE^CGbUk2SZCug>HxZ*y%L^Of+`h!W1gvp)!MIPtpog+*8I=)D+j0 z@nA|RwSZ$<<+MfzRbNzJ3D2qZ^Fb$7jdNh}o_~Dj&5Dwt`!2*$NmR<#T{|_CNawDP zw(lP>>C2YkMoFiZK19&P8td4^9M>0JU+tize5u?)wdc3PvpdiYqF0`sc9NPjdeEqC=7E>dXJ4w(N+^9>|7sJ4%WCpA< z!B&!0j>@X07<6}uB}C~c&sXLKWjRvm^)_={DJ)VdO3hvo!`y(#MZLN&c@bEP%5Z_J zeGwced3CwNwGg=_1QF@Giq=8W&tVm<<*jI4V*NZp(T>gZQbs>+RkYGYukdvQs~04S z2FdMul+*JcG=pqZ&7hhBimI`lw^4SWEm9PLz<>U2sto>C_-qUF7nV4v)}mH;+m_!3 z|6WjVW_}mgkkFn>$-+?~cfxH6)9n^uU1LGakvAkpO?=yL4;HlKE{`&hh zcjb;q8{k&ES3`hX?OKfjoOVb`br*I6Fwj$imVVGJIfB7-uxKkN9;iip0`x?uSm2;y z&KNwEre6(V=fAt{uvKc^7~FU>MQv={cr$FTHBzabh8{@s%7%dW!>e{2`-9cwopX1F zDQaik&Mcl&k&%u_ms?RaeV!{HrinZDnBKQMj2>wc7uQ_iq*Ix9ON9d{LURlu{Z z3z72i*-PFi?kuax3Wu+AuLB&u&b1EVaP456T3@&xkfO3;$mtbNf8oBtim7$;*DZ$0 zv(_z!$=YE$wZ3tE5GJ2|^z@0rzAbRYGhUUXfy0To8PX;?X)%CA7Sc*8Vy2!R@HFIX za)+T4$W37ab==RIVq1?RlN$8Q`+s6v};&0pjGH`1`zM4du$s#7%|!v?2_^B zbzL%HedXkpvw(H&@gM_%RQ)yyg(QV`)XHv zQlvF-U>4HS?gJTS<4p$+Ov|ix^~f-da7s3{6t8x%BvD8P@mjK}by-MjLsdy$URu#; zmt(X!gv7kOEaakfcg&_*a;J5X^lCY!_Pv0Xm2K(L{{NAM;O4+cFrcqmzgmn8=w#hj zONjxU8FdC_RIMvxo=2dFX}6V@_J*)@dWrPb%aLmBTmfq5{#UAs}LPlHhG= zvRVtz6wd&=Bx046B&QF(X{aY(;Qg`AUw9+A8;&MWd7bS#A5i(oi^pT{7H-^V{N{MT z^+1)6+V9#A&%>_6@I2u<0Z;wpFm9uo3uj}alL!3t=Ty&&sKu`Txu_wpq1s0^=QYFg zvAoCN`Apt3@Z6lY8J?f!eG1Q0d8gp1tQ+ysjjg+Tp3*17Kd1?|35bv7_Z+Htedd~F z3E$vm3DT*COm#$sjSDq9Y}ESs>m$f50JKJQyo-dF^P54xDR5BF6+Ks6NWEC}B0QD7 z`K$gp;hPhC5;mzRtU<(SXXM|;asDGgrp(lBY*gcIjo=uKd5u5Ej$xmZJ14)8np-dz zx&80U8*hnh>v_S*S-+{Ssi1V$#lrKKu3y6QDc4i*+~nE>Po-l}`JYej|42LEz*DJf zZP$*6Z+G4B!ZVW|ZG6tS9(7)^+2HS3_^urtr8Oi=@6gWMt-J#pV@XMJz)W%ufJwl) zc26}uKKKz&zxJFw-ouPH=J+4^CRa+@YFl8W+vD@r+XeUL1@y> z)BC&F1lN?Vfw}-aefGx-9;d+swL2Lpao!MB>O=MIXhCStw(C7#91v!f&4f0$Uc8!7 z(-Z6oqsdU$hV_ydP42g)Y73O@Tc&P-LgUp*uTF*MtXH95zCC|Cl=^yYnnD?gRjC+V zuYb|%7^_3ufM9j)ie}1M1}=>{NmzRhtCy0Pn!e?Iogfvh;5GLhObkJFJ#{_x*boYP>h<~>t(5ah z|5t#ot^K#cbGv=J6IRtuGUKw2mxiRs$slL#R~3@;B&jzn(SJ_c4Qrg2{;r*w(J+~* zZJ03qnucl9nd)n1OkgJ7Ftug|GYLGi{Kw>f@j+XU!bte){Hw>?DR@q@DHP1pPd}2B zuccpN()DBO>yVt_NTe>o+w3z7X1X2J?A+OdL1|jCpR|_2kb1}TR$. - -/* - * - * Copyright (c) 1994 - * Hewlett-Packard Company - * - * Permission to use, copy, modify, distribute and sell this software - * and its documentation for any purpose is hereby granted without fee, - * provided that the above copyright notice appear in all copies and - * that both that copyright notice and this permission notice appear - * in supporting documentation. Hewlett-Packard Company makes no - * representations about the suitability of this software for any - * purpose. It is provided "as is" without express or implied warranty. - * - * - * Copyright (c) 1996-1998 - * Silicon Graphics Computer Systems, Inc. - * - * Permission to use, copy, modify, distribute and sell this software - * and its documentation for any purpose is hereby granted without fee, - * provided that the above copyright notice appear in all copies and - * that both that copyright notice and this permission notice appear - * in supporting documentation. Silicon Graphics makes no - * representations about the suitability of this software for any - * purpose. It is provided "as is" without express or implied warranty. - */ - -/** @file bits/stl_iterator_base_types.h - * This is an internal header file, included by other library headers. - * Do not attempt to use it directly. @headername{iterator} - * - * This file contains all of the general iterator-related utility types, - * such as iterator_traits and struct iterator. - */ - -#ifndef _STL_ITERATOR_BASE_TYPES_H -#define _STL_ITERATOR_BASE_TYPES_H 1 - -#pragma GCC system_header - -#include - -#if __cplusplus >= 201103L -# include // For __void_t, is_convertible -#endif - -#if __cplusplus > 201703L && __cpp_concepts >= 201907L -# include -#endif - -namespace std _GLIBCXX_VISIBILITY(default) -{ -_GLIBCXX_BEGIN_NAMESPACE_VERSION - - /** - * @defgroup iterators Iterators - * Abstractions for uniform iterating through various underlying types. - */ - ///@{ - - /** - * @defgroup iterator_tags Iterator Tags - * These are empty types, used to distinguish different iterators. The - * distinction is not made by what they contain, but simply by what they - * are. Different underlying algorithms can then be used based on the - * different operations supported by different iterator types. - */ - ///@{ - /// Marking input iterators. - struct input_iterator_tag { }; - - /// Marking output iterators. - struct output_iterator_tag { }; - - /// Forward iterators support a superset of input iterator operations. - struct forward_iterator_tag : public input_iterator_tag { }; - - /// Bidirectional iterators support a superset of forward iterator - /// operations. - struct bidirectional_iterator_tag : public forward_iterator_tag { }; - - /// Random-access iterators support a superset of bidirectional - /// iterator operations. - struct random_access_iterator_tag : public bidirectional_iterator_tag { }; - -#if __cplusplus > 201703L - /// Contiguous iterators point to objects stored contiguously in memory. - struct contiguous_iterator_tag : public random_access_iterator_tag { }; -#endif - ///@} - - /** - * @brief Common %iterator class. - * - * This class does nothing but define nested typedefs. %Iterator classes - * can inherit from this class to save some work. The typedefs are then - * used in specializations and overloading. - * - * In particular, there are no default implementations of requirements - * such as @c operator++ and the like. (How could there be?) - */ - template - struct _GLIBCXX17_DEPRECATED iterator - { - /// One of the @link iterator_tags tag types@endlink. - typedef _Category iterator_category; - /// The type "pointed to" by the iterator. - typedef _Tp value_type; - /// Distance between iterators is represented as this type. - typedef _Distance difference_type; - /// This type represents a pointer-to-value_type. - typedef _Pointer pointer; - /// This type represents a reference-to-value_type. - typedef _Reference reference; - }; - - /** - * @brief Traits class for iterators. - * - * This class does nothing but define nested typedefs. The general - * version simply @a forwards the nested typedefs from the Iterator - * argument. Specialized versions for pointers and pointers-to-const - * provide tighter, more correct semantics. - */ - template - struct iterator_traits; - -#if __cplusplus >= 201103L - // _GLIBCXX_RESOLVE_LIB_DEFECTS - // 2408. SFINAE-friendly common_type/iterator_traits is missing in C++14 - template> - struct __iterator_traits { }; - -#if ! __cpp_lib_concepts - - template - struct __iterator_traits<_Iterator, - __void_t> - { - typedef typename _Iterator::iterator_category iterator_category; - typedef typename _Iterator::value_type value_type; - typedef typename _Iterator::difference_type difference_type; - typedef typename _Iterator::pointer pointer; - typedef typename _Iterator::reference reference; - }; -#endif // ! concepts - - template - struct iterator_traits - : public __iterator_traits<_Iterator> { }; - -#else // ! C++11 - template - struct iterator_traits - { - typedef typename _Iterator::iterator_category iterator_category; - typedef typename _Iterator::value_type value_type; - typedef typename _Iterator::difference_type difference_type; - typedef typename _Iterator::pointer pointer; - typedef typename _Iterator::reference reference; - }; -#endif // C++11 - -#if __cplusplus > 201703L - /// Partial specialization for object pointer types. - template -#if __cpp_concepts >= 201907L - requires is_object_v<_Tp> -#endif - struct iterator_traits<_Tp*> - { - using iterator_concept = contiguous_iterator_tag; - using iterator_category = random_access_iterator_tag; - using value_type = remove_cv_t<_Tp>; - using difference_type = ptrdiff_t; - using pointer = _Tp*; - using reference = _Tp&; - }; -#else - /// Partial specialization for pointer types. - template - struct iterator_traits<_Tp*> - { - typedef random_access_iterator_tag iterator_category; - typedef _Tp value_type; - typedef ptrdiff_t difference_type; - typedef _Tp* pointer; - typedef _Tp& reference; - }; - - /// Partial specialization for const pointer types. - template - struct iterator_traits - { - typedef random_access_iterator_tag iterator_category; - typedef _Tp value_type; - typedef ptrdiff_t difference_type; - typedef const _Tp* pointer; - typedef const _Tp& reference; - }; -#endif - - /** - * This function is not a part of the C++ standard but is syntactic - * sugar for internal library use only. - */ - template - __attribute__((__always_inline__)) - inline _GLIBCXX_CONSTEXPR - typename iterator_traits<_Iter>::iterator_category - __iterator_category(const _Iter&) - { return typename iterator_traits<_Iter>::iterator_category(); } - - ///@} - -#if __cplusplus >= 201103L - template - using __iterator_category_t - = typename iterator_traits<_Iter>::iterator_category; - - template - using _RequireInputIter = - __enable_if_t, - input_iterator_tag>::value>; - - template> - struct __is_random_access_iter - : is_base_of - { - typedef is_base_of _Base; - enum { __value = _Base::value }; - }; -#else - template, - typename _Cat = typename _Traits::iterator_category> - struct __is_random_access_iter - { enum { __value = __is_base_of(random_access_iterator_tag, _Cat) }; }; -#endif - -_GLIBCXX_END_NAMESPACE_VERSION -} // namespace - -#endif /* _STL_ITERATOR_BASE_TYPES_H */ diff --git a/.ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@c++@13.1.1@bits@stl_iterator_base_types.h.blob b/.ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@c++@13.1.1@bits@stl_iterator_base_types.h.blob deleted file mode 100644 index 9b959fed40984f2bf9ae00e3e450604340e5bf79..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 17489 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. - -/* - * - * Copyright (c) 1994 - * Hewlett-Packard Company - * - * Permission to use, copy, modify, distribute and sell this software - * and its documentation for any purpose is hereby granted without fee, - * provided that the above copyright notice appear in all copies and - * that both that copyright notice and this permission notice appear - * in supporting documentation. Hewlett-Packard Company makes no - * representations about the suitability of this software for any - * purpose. It is provided "as is" without express or implied warranty. - * - * - * Copyright (c) 1996,1997 - * Silicon Graphics Computer Systems, Inc. - * - * Permission to use, copy, modify, distribute and sell this software - * and its documentation for any purpose is hereby granted without fee, - * provided that the above copyright notice appear in all copies and - * that both that copyright notice and this permission notice appear - * in supporting documentation. Silicon Graphics makes no - * representations about the suitability of this software for any - * purpose. It is provided "as is" without express or implied warranty. - */ - -/** @file bits/stl_pair.h - * This is an internal header file, included by other library headers. - * Do not attempt to use it directly. @headername{utility} - */ - -#ifndef _STL_PAIR_H -#define _STL_PAIR_H 1 - -#if __cplusplus >= 201103L -# include // for std::__decay_and_strip -# include // for std::move / std::forward, and std::swap -# include // for std::tuple_element, std::tuple_size -#endif -#if __cplusplus >= 202002L -# include -# define __cpp_lib_constexpr_utility 201811L -#endif - -namespace std _GLIBCXX_VISIBILITY(default) -{ -_GLIBCXX_BEGIN_NAMESPACE_VERSION - - /** - * @addtogroup utilities - * @{ - */ - -#if __cplusplus >= 201103L - /// Tag type for piecewise construction of std::pair objects. - struct piecewise_construct_t { explicit piecewise_construct_t() = default; }; - - /// Tag for piecewise construction of std::pair objects. - _GLIBCXX17_INLINE constexpr piecewise_construct_t piecewise_construct = - piecewise_construct_t(); - - /// @cond undocumented - - // Forward declarations. - template - class tuple; - - template - struct _Index_tuple; - -#if ! __cpp_lib_concepts - // Concept utility functions, reused in conditionally-explicit - // constructors. - // See PR 70437, don't look at is_constructible or - // is_convertible if the types are the same to - // avoid querying those properties for incomplete types. - template - struct _PCC - { - template - static constexpr bool _ConstructiblePair() - { - return __and_, - is_constructible<_T2, const _U2&>>::value; - } - - template - static constexpr bool _ImplicitlyConvertiblePair() - { - return __and_, - is_convertible>::value; - } - - template - static constexpr bool _MoveConstructiblePair() - { - return __and_, - is_constructible<_T2, _U2&&>>::value; - } - - template - static constexpr bool _ImplicitlyMoveConvertiblePair() - { - return __and_, - is_convertible<_U2&&, _T2>>::value; - } - }; - - template - struct _PCC - { - template - static constexpr bool _ConstructiblePair() - { - return false; - } - - template - static constexpr bool _ImplicitlyConvertiblePair() - { - return false; - } - - template - static constexpr bool _MoveConstructiblePair() - { - return false; - } - - template - static constexpr bool _ImplicitlyMoveConvertiblePair() - { - return false; - } - }; -#endif // lib concepts -#endif // C++11 - - template class __pair_base - { -#if __cplusplus >= 201103L && ! __cpp_lib_concepts - template friend struct pair; - __pair_base() = default; - ~__pair_base() = default; - __pair_base(const __pair_base&) = default; - __pair_base& operator=(const __pair_base&) = delete; -#endif // C++11 - }; - - /// @endcond - - /** - * @brief Struct holding two objects of arbitrary type. - * - * @tparam _T1 Type of first object. - * @tparam _T2 Type of second object. - * - * - * - * @headerfile utility - */ - template - struct pair - : public __pair_base<_T1, _T2> - { - typedef _T1 first_type; ///< The type of the `first` member - typedef _T2 second_type; ///< The type of the `second` member - - _T1 first; ///< The first member - _T2 second; ///< The second member - -#if __cplusplus >= 201103L - constexpr pair(const pair&) = default; ///< Copy constructor - constexpr pair(pair&&) = default; ///< Move constructor - - template - _GLIBCXX20_CONSTEXPR - pair(piecewise_construct_t, tuple<_Args1...>, tuple<_Args2...>); - - /// Swap the first members and then the second members. - _GLIBCXX20_CONSTEXPR void - swap(pair& __p) - noexcept(__and_<__is_nothrow_swappable<_T1>, - __is_nothrow_swappable<_T2>>::value) - { - using std::swap; - swap(first, __p.first); - swap(second, __p.second); - } - -#if __cplusplus > 202002L - // As an extension, we constrain the const swap member function in order - // to continue accepting explicit instantiation of pairs whose elements - // are not all const swappable. Without this constraint, such an - // explicit instantiation would also instantiate the ill-formed body of - // this function and yield a hard error. This constraint shouldn't - // affect the behavior of valid programs. - constexpr void - swap(const pair& __p) const - noexcept(__and_v<__is_nothrow_swappable, - __is_nothrow_swappable>) - requires is_swappable_v && is_swappable_v - { - using std::swap; - swap(first, __p.first); - swap(second, __p.second); - } -#endif // C++23 - - private: - template - _GLIBCXX20_CONSTEXPR - pair(tuple<_Args1...>&, tuple<_Args2...>&, - _Index_tuple<_Indexes1...>, _Index_tuple<_Indexes2...>); - public: - -#if __cpp_lib_concepts - // C++20 implementation using concepts, explicit(bool), fully constexpr. - - /// Default constructor - constexpr - explicit(__not_<__and_<__is_implicitly_default_constructible<_T1>, - __is_implicitly_default_constructible<_T2>>>()) - pair() - requires is_default_constructible_v<_T1> - && is_default_constructible_v<_T2> - : first(), second() - { } - - private: - - /// @cond undocumented - template - static constexpr bool - _S_constructible() - { - if constexpr (is_constructible_v<_T1, _U1>) - return is_constructible_v<_T2, _U2>; - return false; - } - - template - static constexpr bool - _S_nothrow_constructible() - { - if constexpr (is_nothrow_constructible_v<_T1, _U1>) - return is_nothrow_constructible_v<_T2, _U2>; - return false; - } - - template - static constexpr bool - _S_convertible() - { - if constexpr (is_convertible_v<_U1, _T1>) - return is_convertible_v<_U2, _T2>; - return false; - } - - // True if construction from _U1 and _U2 would create a dangling ref. - template - static constexpr bool - _S_dangles() - { -#if __has_builtin(__reference_constructs_from_temporary) - if constexpr (__reference_constructs_from_temporary(_T1, _U1&&)) - return true; - else - return __reference_constructs_from_temporary(_T2, _U2&&); -#else - return false; -#endif - } - /// @endcond - - public: - - /// Constructor accepting lvalues of `first_type` and `second_type` - constexpr explicit(!_S_convertible()) - pair(const _T1& __x, const _T2& __y) - noexcept(_S_nothrow_constructible()) - requires (_S_constructible()) - : first(__x), second(__y) - { } - - /// Constructor accepting two values of arbitrary types - template - requires (_S_constructible<_U1, _U2>()) && (!_S_dangles<_U1, _U2>()) - constexpr explicit(!_S_convertible<_U1, _U2>()) - pair(_U1&& __x, _U2&& __y) - noexcept(_S_nothrow_constructible<_U1, _U2>()) - : first(std::forward<_U1>(__x)), second(std::forward<_U2>(__y)) - { } - - template - requires (_S_constructible<_U1, _U2>()) && (_S_dangles<_U1, _U2>()) - constexpr explicit(!_S_convertible<_U1, _U2>()) - pair(_U1&&, _U2&&) = delete; - - /// Converting constructor from a const `pair` lvalue - template - requires (_S_constructible()) - && (!_S_dangles<_U1, _U2>()) - constexpr explicit(!_S_convertible()) - pair(const pair<_U1, _U2>& __p) - noexcept(_S_nothrow_constructible()) - : first(__p.first), second(__p.second) - { } - - template - requires (_S_constructible()) - && (_S_dangles()) - constexpr explicit(!_S_convertible()) - pair(const pair<_U1, _U2>&) = delete; - - /// Converting constructor from a non-const `pair` rvalue - template - requires (_S_constructible<_U1, _U2>()) && (!_S_dangles<_U1, _U2>()) - constexpr explicit(!_S_convertible<_U1, _U2>()) - pair(pair<_U1, _U2>&& __p) - noexcept(_S_nothrow_constructible<_U1, _U2>()) - : first(std::forward<_U1>(__p.first)), - second(std::forward<_U2>(__p.second)) - { } - - template - requires (_S_constructible<_U1, _U2>()) && (_S_dangles<_U1, _U2>()) - constexpr explicit(!_S_convertible<_U1, _U2>()) - pair(pair<_U1, _U2>&&) = delete; - -#if __cplusplus > 202002L - /// Converting constructor from a non-const `pair` lvalue - template - requires (_S_constructible<_U1&, _U2&>()) && (!_S_dangles<_U1&, _U2&>()) - constexpr explicit(!_S_convertible<_U1&, _U2&>()) - pair(pair<_U1, _U2>& __p) - noexcept(_S_nothrow_constructible<_U1&, _U2&>()) - : first(__p.first), second(__p.second) - { } - - template - requires (_S_constructible<_U1&, _U2&>()) && (_S_dangles<_U1&, _U2&>()) - constexpr explicit(!_S_convertible<_U1&, _U2&>()) - pair(pair<_U1, _U2>&) = delete; - - /// Converting constructor from a const `pair` rvalue - template - requires (_S_constructible()) - && (!_S_dangles()) - constexpr explicit(!_S_convertible()) - pair(const pair<_U1, _U2>&& __p) - noexcept(_S_nothrow_constructible()) - : first(std::forward(__p.first)), - second(std::forward(__p.second)) - { } - - template - requires (_S_constructible()) - && (_S_dangles()) - constexpr explicit(!_S_convertible()) - pair(const pair<_U1, _U2>&&) = delete; -#endif // C++23 - - private: - /// @cond undocumented - template - static constexpr bool - _S_assignable() - { - if constexpr (is_assignable_v<_T1&, _U1>) - return is_assignable_v<_T2&, _U2>; - return false; - } - - template - static constexpr bool - _S_nothrow_assignable() - { - if constexpr (is_nothrow_assignable_v<_T1&, _U1>) - return is_nothrow_assignable_v<_T2&, _U2>; - return false; - } - /// @endcond - - public: - - pair& operator=(const pair&) = delete; - - /// Copy assignment operator - constexpr pair& - operator=(const pair& __p) - noexcept(_S_nothrow_assignable()) - requires (_S_assignable()) - { - first = __p.first; - second = __p.second; - return *this; - } - - /// Move assignment operator - constexpr pair& - operator=(pair&& __p) - noexcept(_S_nothrow_assignable<_T1, _T2>()) - requires (_S_assignable<_T1, _T2>()) - { - first = std::forward(__p.first); - second = std::forward(__p.second); - return *this; - } - - /// Converting assignment from a const `pair` lvalue - template - constexpr pair& - operator=(const pair<_U1, _U2>& __p) - noexcept(_S_nothrow_assignable()) - requires (_S_assignable()) - { - first = __p.first; - second = __p.second; - return *this; - } - - /// Converting assignment from a non-const `pair` rvalue - template - constexpr pair& - operator=(pair<_U1, _U2>&& __p) - noexcept(_S_nothrow_assignable<_U1, _U2>()) - requires (_S_assignable<_U1, _U2>()) - { - first = std::forward<_U1>(__p.first); - second = std::forward<_U2>(__p.second); - return *this; - } - -#if __cplusplus > 202002L - /// Copy assignment operator (const) - constexpr const pair& - operator=(const pair& __p) const - requires is_copy_assignable_v - && is_copy_assignable_v - { - first = __p.first; - second = __p.second; - return *this; - } - - /// Move assignment operator (const) - constexpr const pair& - operator=(pair&& __p) const - requires is_assignable_v - && is_assignable_v - { - first = std::forward(__p.first); - second = std::forward(__p.second); - return *this; - } - - /// Converting assignment from a const `pair` lvalue - template - constexpr const pair& - operator=(const pair<_U1, _U2>& __p) const - requires is_assignable_v - && is_assignable_v - { - first = __p.first; - second = __p.second; - return *this; - } - - /// Converting assignment from a non-const `pair` rvalue - template - constexpr const pair& - operator=(pair<_U1, _U2>&& __p) const - requires is_assignable_v - && is_assignable_v - { - first = std::forward<_U1>(__p.first); - second = std::forward<_U2>(__p.second); - return *this; - } -#endif // C++23 -#else // !__cpp_lib_concepts - // C++11/14/17 implementation using enable_if, partially constexpr. - - /// @cond undocumented - // Error if construction from _U1 and _U2 would create a dangling ref. -#if __has_builtin(__reference_constructs_from_temporary) \ - && defined _GLIBCXX_DEBUG -# define __glibcxx_no_dangling_refs(_U1, _U2) \ - static_assert(!__reference_constructs_from_temporary(_T1, _U1) \ - && !__reference_constructs_from_temporary(_T2, _U2), \ - "std::pair constructor creates a dangling reference") -#else -# define __glibcxx_no_dangling_refs(_U1, _U2) -#endif - /// @endcond - - /** The default constructor creates @c first and @c second using their - * respective default constructors. */ - template , - __is_implicitly_default_constructible<_U2>> - ::value, bool>::type = true> - constexpr pair() - : first(), second() { } - - template , - is_default_constructible<_U2>, - __not_< - __and_<__is_implicitly_default_constructible<_U1>, - __is_implicitly_default_constructible<_U2>>>> - ::value, bool>::type = false> - explicit constexpr pair() - : first(), second() { } - - // Shortcut for constraining the templates that don't take pairs. - /// @cond undocumented - using _PCCP = _PCC; - /// @endcond - - /// Construct from two const lvalues, allowing implicit conversions. - template() - && _PCCP::template - _ImplicitlyConvertiblePair<_U1, _U2>(), - bool>::type=true> - constexpr pair(const _T1& __a, const _T2& __b) - : first(__a), second(__b) { } - - /// Construct from two const lvalues, disallowing implicit conversions. - template() - && !_PCCP::template - _ImplicitlyConvertiblePair<_U1, _U2>(), - bool>::type=false> - explicit constexpr pair(const _T1& __a, const _T2& __b) - : first(__a), second(__b) { } - - // Shortcut for constraining the templates that take pairs. - /// @cond undocumented - template - using _PCCFP = _PCC::value - || !is_same<_T2, _U2>::value, - _T1, _T2>; - /// @endcond - - template::template - _ConstructiblePair<_U1, _U2>() - && _PCCFP<_U1, _U2>::template - _ImplicitlyConvertiblePair<_U1, _U2>(), - bool>::type=true> - constexpr pair(const pair<_U1, _U2>& __p) - : first(__p.first), second(__p.second) - { __glibcxx_no_dangling_refs(const _U1&, const _U2&); } - - template::template - _ConstructiblePair<_U1, _U2>() - && !_PCCFP<_U1, _U2>::template - _ImplicitlyConvertiblePair<_U1, _U2>(), - bool>::type=false> - explicit constexpr pair(const pair<_U1, _U2>& __p) - : first(__p.first), second(__p.second) - { __glibcxx_no_dangling_refs(const _U1&, const _U2&); } - -#if _GLIBCXX_USE_DEPRECATED -#if defined(__DEPRECATED) -# define _GLIBCXX_DEPRECATED_PAIR_CTOR \ - __attribute__ ((__deprecated__ ("use 'nullptr' instead of '0' to " \ - "initialize std::pair of move-only " \ - "type and pointer"))) -#else -# define _GLIBCXX_DEPRECATED_PAIR_CTOR -#endif - - private: - /// @cond undocumented - - // A type which can be constructed from literal zero, but not nullptr - struct __zero_as_null_pointer_constant - { - __zero_as_null_pointer_constant(int __zero_as_null_pointer_constant::*) - { } - template::value>> - __zero_as_null_pointer_constant(_Tp) = delete; - }; - /// @endcond - public: - - // Deprecated extensions to DR 811. - // These allow construction from an rvalue and a literal zero, - // in cases where the standard says the zero should be deduced as int - template>, - is_pointer<_T2>, - is_constructible<_T1, _U1>, - __not_>, - is_convertible<_U1, _T1>>::value, - bool> = true> - _GLIBCXX_DEPRECATED_PAIR_CTOR - constexpr - pair(_U1&& __x, __zero_as_null_pointer_constant, ...) - : first(std::forward<_U1>(__x)), second(nullptr) - { __glibcxx_no_dangling_refs(_U1&&, std::nullptr_t); } - - template>, - is_pointer<_T2>, - is_constructible<_T1, _U1>, - __not_>, - __not_>>::value, - bool> = false> - _GLIBCXX_DEPRECATED_PAIR_CTOR - explicit constexpr - pair(_U1&& __x, __zero_as_null_pointer_constant, ...) - : first(std::forward<_U1>(__x)), second(nullptr) - { __glibcxx_no_dangling_refs(_U1&&, std::nullptr_t); } - - template, - __not_>, - is_constructible<_T2, _U2>, - __not_>, - is_convertible<_U2, _T2>>::value, - bool> = true> - _GLIBCXX_DEPRECATED_PAIR_CTOR - constexpr - pair(__zero_as_null_pointer_constant, _U2&& __y, ...) - : first(nullptr), second(std::forward<_U2>(__y)) - { __glibcxx_no_dangling_refs(std::nullptr_t, _U2&&); } - - template, - __not_>, - is_constructible<_T2, _U2>, - __not_>, - __not_>>::value, - bool> = false> - _GLIBCXX_DEPRECATED_PAIR_CTOR - explicit constexpr - pair(__zero_as_null_pointer_constant, _U2&& __y, ...) - : first(nullptr), second(std::forward<_U2>(__y)) - { __glibcxx_no_dangling_refs(std::nullptr_t, _U2&&); } -#undef _GLIBCXX_DEPRECATED_PAIR_CTOR -#endif - - template() - && _PCCP::template - _ImplicitlyMoveConvertiblePair<_U1, _U2>(), - bool>::type=true> - constexpr pair(_U1&& __x, _U2&& __y) - : first(std::forward<_U1>(__x)), second(std::forward<_U2>(__y)) - { __glibcxx_no_dangling_refs(_U1&&, _U2&&); } - - template() - && !_PCCP::template - _ImplicitlyMoveConvertiblePair<_U1, _U2>(), - bool>::type=false> - explicit constexpr pair(_U1&& __x, _U2&& __y) - : first(std::forward<_U1>(__x)), second(std::forward<_U2>(__y)) - { __glibcxx_no_dangling_refs(_U1&&, _U2&&); } - - - template::template - _MoveConstructiblePair<_U1, _U2>() - && _PCCFP<_U1, _U2>::template - _ImplicitlyMoveConvertiblePair<_U1, _U2>(), - bool>::type=true> - constexpr pair(pair<_U1, _U2>&& __p) - : first(std::forward<_U1>(__p.first)), - second(std::forward<_U2>(__p.second)) - { __glibcxx_no_dangling_refs(_U1&&, _U2&&); } - - template::template - _MoveConstructiblePair<_U1, _U2>() - && !_PCCFP<_U1, _U2>::template - _ImplicitlyMoveConvertiblePair<_U1, _U2>(), - bool>::type=false> - explicit constexpr pair(pair<_U1, _U2>&& __p) - : first(std::forward<_U1>(__p.first)), - second(std::forward<_U2>(__p.second)) - { __glibcxx_no_dangling_refs(_U1&&, _U2&&); } - -#undef __glibcxx_no_dangling_refs - - pair& - operator=(__conditional_t<__and_, - is_copy_assignable<_T2>>::value, - const pair&, const __nonesuch&> __p) - { - first = __p.first; - second = __p.second; - return *this; - } - - pair& - operator=(__conditional_t<__and_, - is_move_assignable<_T2>>::value, - pair&&, __nonesuch&&> __p) - noexcept(__and_, - is_nothrow_move_assignable<_T2>>::value) - { - first = std::forward(__p.first); - second = std::forward(__p.second); - return *this; - } - - template - typename enable_if<__and_, - is_assignable<_T2&, const _U2&>>::value, - pair&>::type - operator=(const pair<_U1, _U2>& __p) - { - first = __p.first; - second = __p.second; - return *this; - } - - template - typename enable_if<__and_, - is_assignable<_T2&, _U2&&>>::value, - pair&>::type - operator=(pair<_U1, _U2>&& __p) - { - first = std::forward<_U1>(__p.first); - second = std::forward<_U2>(__p.second); - return *this; - } -#endif // lib concepts -#else - // C++03 implementation - - // _GLIBCXX_RESOLVE_LIB_DEFECTS - // 265. std::pair::pair() effects overly restrictive - /** The default constructor creates @c first and @c second using their - * respective default constructors. */ - pair() : first(), second() { } - - /// Two objects may be passed to a `pair` constructor to be copied. - pair(const _T1& __a, const _T2& __b) - : first(__a), second(__b) { } - - /// Templated constructor to convert from other pairs. - template - pair(const pair<_U1, _U2>& __p) - : first(__p.first), second(__p.second) - { -#if __has_builtin(__reference_constructs_from_temporary) -#pragma GCC diagnostic push -#pragma GCC diagnostic ignored "-Wunused-local-typedefs" - typedef int _DanglingCheck1[ - __reference_constructs_from_temporary(_T1, const _U1&) ? -1 : 1 - ]; - typedef int _DanglingCheck2[ - __reference_constructs_from_temporary(_T2, const _U2&) ? -1 : 1 - ]; -#pragma GCC diagnostic pop -#endif - } -#endif // C++11 - }; - - /// @relates pair @{ - -#if __cpp_deduction_guides >= 201606 - template pair(_T1, _T2) -> pair<_T1, _T2>; -#endif - - /// Two pairs of the same type are equal iff their members are equal. - template - inline _GLIBCXX_CONSTEXPR bool - operator==(const pair<_T1, _T2>& __x, const pair<_T1, _T2>& __y) - { return __x.first == __y.first && __x.second == __y.second; } - -#if __cpp_lib_three_way_comparison && __cpp_lib_concepts - template - constexpr common_comparison_category_t<__detail::__synth3way_t<_T1>, - __detail::__synth3way_t<_T2>> - operator<=>(const pair<_T1, _T2>& __x, const pair<_T1, _T2>& __y) - { - if (auto __c = __detail::__synth3way(__x.first, __y.first); __c != 0) - return __c; - return __detail::__synth3way(__x.second, __y.second); - } -#else - /** Defines a lexicographical order for pairs. - * - * For two pairs of the same type, `P` is ordered before `Q` if - * `P.first` is less than `Q.first`, or if `P.first` and `Q.first` - * are equivalent (neither is less than the other) and `P.second` is less - * than `Q.second`. - */ - template - inline _GLIBCXX_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); } - - /// Uses @c operator== to find the result. - template - inline _GLIBCXX_CONSTEXPR bool - operator!=(const pair<_T1, _T2>& __x, const pair<_T1, _T2>& __y) - { return !(__x == __y); } - - /// Uses @c operator< to find the result. - template - inline _GLIBCXX_CONSTEXPR bool - operator>(const pair<_T1, _T2>& __x, const pair<_T1, _T2>& __y) - { return __y < __x; } - - /// Uses @c operator< to find the result. - template - inline _GLIBCXX_CONSTEXPR bool - operator<=(const pair<_T1, _T2>& __x, const pair<_T1, _T2>& __y) - { return !(__y < __x); } - - /// Uses @c operator< to find the result. - template - inline _GLIBCXX_CONSTEXPR bool - operator>=(const pair<_T1, _T2>& __x, const pair<_T1, _T2>& __y) - { return !(__x < __y); } -#endif // !(three_way_comparison && concepts) - -#if __cplusplus >= 201103L - /** Swap overload for pairs. Calls std::pair::swap(). - * - * @note This std::swap overload is not declared in C++03 mode, - * which has performance implications, e.g. see https://gcc.gnu.org/PR38466 - */ - template - _GLIBCXX20_CONSTEXPR inline -#if __cplusplus > 201402L || !defined(__STRICT_ANSI__) // c++1z or gnu++11 - // Constrained free swap overload, see p0185r1 - typename enable_if<__and_<__is_swappable<_T1>, - __is_swappable<_T2>>::value>::type -#else - void -#endif - swap(pair<_T1, _T2>& __x, pair<_T1, _T2>& __y) - noexcept(noexcept(__x.swap(__y))) - { __x.swap(__y); } - -#if __cplusplus > 202002L - template - requires is_swappable_v && is_swappable_v - constexpr void - swap(const pair<_T1, _T2>& __x, const pair<_T1, _T2>& __y) - noexcept(noexcept(__x.swap(__y))) - { __x.swap(__y); } -#endif // C++23 - -#if __cplusplus > 201402L || !defined(__STRICT_ANSI__) // c++1z or gnu++11 - template - typename enable_if, - __is_swappable<_T2>>::value>::type - swap(pair<_T1, _T2>&, pair<_T1, _T2>&) = delete; -#endif -#endif // __cplusplus >= 201103L - - /// @} relates pair - - /** - * @brief A convenience wrapper for creating a pair from two objects. - * @param __x The first object. - * @param __y The second object. - * @return A newly-constructed pair<> object of the appropriate type. - * - * The C++98 standard says the objects are passed by reference-to-const, - * but C++03 says they are passed by value (this was LWG issue #181). - * - * Since C++11 they have been passed by forwarding reference and then - * forwarded to the new members of the pair. To create a pair with a - * member of reference type, pass a `reference_wrapper` to this function. - */ - // _GLIBCXX_RESOLVE_LIB_DEFECTS - // 181. make_pair() unintended behavior -#if __cplusplus >= 201103L - // NB: DR 706. - template - constexpr pair::__type, - typename __decay_and_strip<_T2>::__type> - make_pair(_T1&& __x, _T2&& __y) - { - typedef typename __decay_and_strip<_T1>::__type __ds_type1; - typedef typename __decay_and_strip<_T2>::__type __ds_type2; - typedef pair<__ds_type1, __ds_type2> __pair_type; - return __pair_type(std::forward<_T1>(__x), std::forward<_T2>(__y)); - } -#else - template - inline pair<_T1, _T2> - make_pair(_T1 __x, _T2 __y) - { return pair<_T1, _T2>(__x, __y); } -#endif - - /// @} - -#if __cplusplus >= 201103L - // Various functions which give std::pair a tuple-like interface. - - /// @cond undocumented - template - struct __is_tuple_like_impl> : true_type - { }; - /// @endcond - - /// Partial specialization for std::pair - template - struct tuple_size> - : public integral_constant { }; - - /// Partial specialization for std::pair - template - struct tuple_element<0, pair<_Tp1, _Tp2>> - { typedef _Tp1 type; }; - - /// Partial specialization for std::pair - template - struct tuple_element<1, pair<_Tp1, _Tp2>> - { typedef _Tp2 type; }; - -#if __cplusplus >= 201703L - template - inline constexpr size_t tuple_size_v> = 2; - - template - inline constexpr size_t tuple_size_v> = 2; - - template - inline constexpr bool __is_pair = false; - - template - inline constexpr bool __is_pair> = true; -#endif - - /// @cond undocumented - template - struct __pair_get; - - template<> - struct __pair_get<0> - { - template - static constexpr _Tp1& - __get(pair<_Tp1, _Tp2>& __pair) noexcept - { return __pair.first; } - - template - static constexpr _Tp1&& - __move_get(pair<_Tp1, _Tp2>&& __pair) noexcept - { return std::forward<_Tp1>(__pair.first); } - - template - static constexpr const _Tp1& - __const_get(const pair<_Tp1, _Tp2>& __pair) noexcept - { return __pair.first; } - - template - static constexpr const _Tp1&& - __const_move_get(const pair<_Tp1, _Tp2>&& __pair) noexcept - { return std::forward(__pair.first); } - }; - - template<> - struct __pair_get<1> - { - template - static constexpr _Tp2& - __get(pair<_Tp1, _Tp2>& __pair) noexcept - { return __pair.second; } - - template - static constexpr _Tp2&& - __move_get(pair<_Tp1, _Tp2>&& __pair) noexcept - { return std::forward<_Tp2>(__pair.second); } - - template - static constexpr const _Tp2& - __const_get(const pair<_Tp1, _Tp2>& __pair) noexcept - { return __pair.second; } - - template - static constexpr const _Tp2&& - __const_move_get(const pair<_Tp1, _Tp2>&& __pair) noexcept - { return std::forward(__pair.second); } - }; - /// @endcond - - /** @{ - * std::get overloads for accessing members of std::pair - */ - - template - constexpr typename tuple_element<_Int, pair<_Tp1, _Tp2>>::type& - get(pair<_Tp1, _Tp2>& __in) noexcept - { return __pair_get<_Int>::__get(__in); } - - template - constexpr typename tuple_element<_Int, pair<_Tp1, _Tp2>>::type&& - get(pair<_Tp1, _Tp2>&& __in) noexcept - { return __pair_get<_Int>::__move_get(std::move(__in)); } - - template - constexpr const typename tuple_element<_Int, pair<_Tp1, _Tp2>>::type& - get(const pair<_Tp1, _Tp2>& __in) noexcept - { return __pair_get<_Int>::__const_get(__in); } - - template - constexpr const typename tuple_element<_Int, pair<_Tp1, _Tp2>>::type&& - get(const pair<_Tp1, _Tp2>&& __in) noexcept - { return __pair_get<_Int>::__const_move_get(std::move(__in)); } - -#if __cplusplus >= 201402L - -#define __cpp_lib_tuples_by_type 201304L - - template - constexpr _Tp& - get(pair<_Tp, _Up>& __p) noexcept - { return __p.first; } - - template - constexpr const _Tp& - get(const pair<_Tp, _Up>& __p) noexcept - { return __p.first; } - - template - constexpr _Tp&& - get(pair<_Tp, _Up>&& __p) noexcept - { return std::move(__p.first); } - - template - constexpr const _Tp&& - get(const pair<_Tp, _Up>&& __p) noexcept - { return std::move(__p.first); } - - template - constexpr _Tp& - get(pair<_Up, _Tp>& __p) noexcept - { return __p.second; } - - template - constexpr const _Tp& - get(const pair<_Up, _Tp>& __p) noexcept - { return __p.second; } - - template - constexpr _Tp&& - get(pair<_Up, _Tp>&& __p) noexcept - { return std::move(__p.second); } - - template - constexpr const _Tp&& - get(const pair<_Up, _Tp>&& __p) noexcept - { return std::move(__p.second); } - -#if __cplusplus > 202002L - template class _TQual, template class _UQual> - requires requires { typename pair, _UQual<_U1>>, - common_reference_t<_TQual<_T2>, _UQual<_U2>>>; } - struct basic_common_reference, pair<_U1, _U2>, _TQual, _UQual> - { - using type = pair, _UQual<_U1>>, - common_reference_t<_TQual<_T2>, _UQual<_U2>>>; - }; - - template - requires requires { typename pair, common_type_t<_T2, _U2>>; } - struct common_type, pair<_U1, _U2>> - { using type = pair, common_type_t<_T2, _U2>>; }; -#endif // C++23 - -#endif // C++14 - /// @} -#endif // C++11 - -_GLIBCXX_END_NAMESPACE_VERSION -} // namespace std - -#endif /* _STL_PAIR_H */ diff --git a/.ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@c++@13.1.1@bits@stl_pair.h.blob b/.ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@c++@13.1.1@bits@stl_pair.h.blob deleted file mode 100644 index c5462e24475bf2af20defd1a505cc0015da9dabb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 50293 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 E1DcF?Hvj+t diff --git a/.ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@c++@13.1.1@bits@streambuf.tcc b/.ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@c++@13.1.1@bits@streambuf.tcc deleted file mode 100644 index 52bac9f..0000000 --- a/.ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@c++@13.1.1@bits@streambuf.tcc +++ /dev/null @@ -1,169 +0,0 @@ -// Stream buffer classes -*- C++ -*- - -// Copyright (C) 1997-2023 Free Software Foundation, Inc. -// -// This file is part of the GNU ISO C++ Library. This library is free -// software; you can redistribute it and/or modify it under the -// terms of the GNU General Public License as published by the -// Free Software Foundation; either version 3, or (at your option) -// any later version. - -// This library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. - -// Under Section 7 of GPL version 3, you are granted additional -// permissions described in the GCC Runtime Library Exception, version -// 3.1, as published by the Free Software Foundation. - -// You should have received a copy of the GNU General Public License and -// a copy of the GCC Runtime Library Exception along with this program; -// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see -// . - -/** @file bits/streambuf.tcc - * This is an internal header file, included by other library headers. - * Do not attempt to use it directly. @headername{streambuf} - */ - -// -// ISO C++ 14882: 27.5 Stream buffers -// - -#ifndef _STREAMBUF_TCC -#define _STREAMBUF_TCC 1 - -#pragma GCC system_header - -namespace std _GLIBCXX_VISIBILITY(default) -{ -_GLIBCXX_BEGIN_NAMESPACE_VERSION - - template - streamsize - basic_streambuf<_CharT, _Traits>:: - xsgetn(char_type* __s, streamsize __n) - { - streamsize __ret = 0; - while (__ret < __n) - { - const streamsize __buf_len = this->egptr() - this->gptr(); - if (__buf_len) - { - const streamsize __remaining = __n - __ret; - const streamsize __len = std::min(__buf_len, __remaining); - traits_type::copy(__s, this->gptr(), __len); - __ret += __len; - __s += __len; - this->__safe_gbump(__len); - } - - if (__ret < __n) - { - const int_type __c = this->uflow(); - if (!traits_type::eq_int_type(__c, traits_type::eof())) - { - traits_type::assign(*__s++, traits_type::to_char_type(__c)); - ++__ret; - } - else - break; - } - } - return __ret; - } - - template - streamsize - basic_streambuf<_CharT, _Traits>:: - xsputn(const char_type* __s, streamsize __n) - { - streamsize __ret = 0; - while (__ret < __n) - { - const streamsize __buf_len = this->epptr() - this->pptr(); - if (__buf_len) - { - const streamsize __remaining = __n - __ret; - const streamsize __len = std::min(__buf_len, __remaining); - traits_type::copy(this->pptr(), __s, __len); - __ret += __len; - __s += __len; - this->__safe_pbump(__len); - } - - if (__ret < __n) - { - int_type __c = this->overflow(traits_type::to_int_type(*__s)); - if (!traits_type::eq_int_type(__c, traits_type::eof())) - { - ++__ret; - ++__s; - } - else - break; - } - } - return __ret; - } - - // Conceivably, this could be used to implement buffer-to-buffer - // copies, if this was ever desired in an un-ambiguous way by the - // standard. - template - streamsize - __copy_streambufs_eof(basic_streambuf<_CharT, _Traits>* __sbin, - basic_streambuf<_CharT, _Traits>* __sbout, - bool& __ineof) - { - streamsize __ret = 0; - __ineof = true; - typename _Traits::int_type __c = __sbin->sgetc(); - while (!_Traits::eq_int_type(__c, _Traits::eof())) - { - __c = __sbout->sputc(_Traits::to_char_type(__c)); - if (_Traits::eq_int_type(__c, _Traits::eof())) - { - __ineof = false; - break; - } - ++__ret; - __c = __sbin->snextc(); - } - return __ret; - } - - template - inline streamsize - __copy_streambufs(basic_streambuf<_CharT, _Traits>* __sbin, - basic_streambuf<_CharT, _Traits>* __sbout) - { - bool __ineof; - return __copy_streambufs_eof(__sbin, __sbout, __ineof); - } - - // Inhibit implicit instantiations for required instantiations, - // which are defined via explicit instantiations elsewhere. -#if _GLIBCXX_EXTERN_TEMPLATE - extern template class basic_streambuf; - - extern template - streamsize - __copy_streambufs(basic_streambuf*, - basic_streambuf*); - -#ifdef _GLIBCXX_USE_WCHAR_T - extern template class basic_streambuf; - - extern template - streamsize - __copy_streambufs(basic_streambuf*, - basic_streambuf*); -#endif -#endif - -_GLIBCXX_END_NAMESPACE_VERSION -} // namespace std - -#endif diff --git a/.ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@c++@13.1.1@bits@streambuf.tcc.blob b/.ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@c++@13.1.1@bits@streambuf.tcc.blob deleted file mode 100644 index 3759ab37ccbb5803b84e530eb0a817fcf3c27ef9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 15017 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 yF6&f}W{e#Tvi}FxFA^I7 diff --git a/.ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@c++@13.1.1@bits@streambuf_iterator.h b/.ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@c++@13.1.1@bits@streambuf_iterator.h deleted file mode 100644 index 32285a6..0000000 --- a/.ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@c++@13.1.1@bits@streambuf_iterator.h +++ /dev/null @@ -1,520 +0,0 @@ -// Streambuf iterators - -// Copyright (C) 1997-2023 Free Software Foundation, Inc. -// -// This file is part of the GNU ISO C++ Library. This library is free -// software; you can redistribute it and/or modify it under the -// terms of the GNU General Public License as published by the -// Free Software Foundation; either version 3, or (at your option) -// any later version. - -// This library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. - -// Under Section 7 of GPL version 3, you are granted additional -// permissions described in the GCC Runtime Library Exception, version -// 3.1, as published by the Free Software Foundation. - -// You should have received a copy of the GNU General Public License and -// a copy of the GCC Runtime Library Exception along with this program; -// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see -// . - -/** @file bits/streambuf_iterator.h - * This is an internal header file, included by other library headers. - * Do not attempt to use it directly. @headername{iterator} - */ - -#ifndef _STREAMBUF_ITERATOR_H -#define _STREAMBUF_ITERATOR_H 1 - -#pragma GCC system_header - -#include -#include -#include - -namespace std _GLIBCXX_VISIBILITY(default) -{ -_GLIBCXX_BEGIN_NAMESPACE_VERSION - - /** - * @addtogroup iterators - * @{ - */ - -// Ignore warnings about std::iterator. -#pragma GCC diagnostic push -#pragma GCC diagnostic ignored "-Wdeprecated-declarations" - // 24.5.3 Template class istreambuf_iterator - /// Provides input iterator semantics for streambufs. - template - class istreambuf_iterator - : public iterator - { - public: - // Types: - ///@{ - /// Public typedefs -#if __cplusplus < 201103L - typedef _CharT& reference; // Changed to _CharT by LWG 445 -#elif __cplusplus > 201703L - // _GLIBCXX_RESOLVE_LIB_DEFECTS - // 3188. istreambuf_iterator::pointer should not be unspecified - using pointer = void; -#endif - - typedef _CharT char_type; - typedef _Traits traits_type; - typedef typename _Traits::int_type int_type; - typedef basic_streambuf<_CharT, _Traits> streambuf_type; - typedef basic_istream<_CharT, _Traits> istream_type; - ///@} - - template - friend typename __gnu_cxx::__enable_if<__is_char<_CharT2>::__value, - ostreambuf_iterator<_CharT2> >::__type - copy(istreambuf_iterator<_CharT2>, istreambuf_iterator<_CharT2>, - ostreambuf_iterator<_CharT2>); - - template - friend typename __gnu_cxx::__enable_if<__is_char<_CharT2>::__value, - _CharT2*>::__type - __copy_move_a2(istreambuf_iterator<_CharT2>, - istreambuf_iterator<_CharT2>, _CharT2*); - - template - friend typename __gnu_cxx::__enable_if<__is_char<_CharT2>::__value, - _CharT2*>::__type - __copy_n_a(istreambuf_iterator<_CharT2>, _Size, _CharT2*, bool); - - template - friend typename __gnu_cxx::__enable_if<__is_char<_CharT2>::__value, - istreambuf_iterator<_CharT2> >::__type - find(istreambuf_iterator<_CharT2>, istreambuf_iterator<_CharT2>, - const _CharT2&); - - template - friend typename __gnu_cxx::__enable_if<__is_char<_CharT2>::__value, - void>::__type - advance(istreambuf_iterator<_CharT2>&, _Distance); - - private: - // 24.5.3 istreambuf_iterator - // p 1 - // If the end of stream is reached (streambuf_type::sgetc() - // returns traits_type::eof()), the iterator becomes equal to - // the "end of stream" iterator value. - // NB: This implementation assumes the "end of stream" value - // is EOF, or -1. - mutable streambuf_type* _M_sbuf; - int_type _M_c; - - public: - /// Construct end of input stream iterator. - _GLIBCXX_CONSTEXPR istreambuf_iterator() _GLIBCXX_USE_NOEXCEPT - : _M_sbuf(0), _M_c(traits_type::eof()) { } - -#if __cplusplus > 201703L && __cpp_lib_concepts - constexpr istreambuf_iterator(default_sentinel_t) noexcept - : istreambuf_iterator() { } -#endif - -#if __cplusplus >= 201103L - istreambuf_iterator(const istreambuf_iterator&) noexcept = default; - - ~istreambuf_iterator() = default; -#endif - - /// Construct start of input stream iterator. - istreambuf_iterator(istream_type& __s) _GLIBCXX_USE_NOEXCEPT - : _M_sbuf(__s.rdbuf()), _M_c(traits_type::eof()) { } - - /// Construct start of streambuf iterator. - istreambuf_iterator(streambuf_type* __s) _GLIBCXX_USE_NOEXCEPT - : _M_sbuf(__s), _M_c(traits_type::eof()) { } - -#if __cplusplus >= 201103L - istreambuf_iterator& - operator=(const istreambuf_iterator&) noexcept = default; -#endif - - /// Return the current character pointed to by iterator. This returns - /// streambuf.sgetc(). It cannot be assigned. NB: The result of - /// operator*() on an end of stream is undefined. - _GLIBCXX_NODISCARD - char_type - operator*() const - { - int_type __c = _M_get(); - -#ifdef _GLIBCXX_DEBUG_PEDANTIC - // Dereferencing a past-the-end istreambuf_iterator is a - // libstdc++ extension - __glibcxx_requires_cond(!_S_is_eof(__c), - _M_message(__gnu_debug::__msg_deref_istreambuf) - ._M_iterator(*this)); -#endif - return traits_type::to_char_type(__c); - } - - /// Advance the iterator. Calls streambuf.sbumpc(). - istreambuf_iterator& - operator++() - { - __glibcxx_requires_cond(_M_sbuf && - (!_S_is_eof(_M_c) || !_S_is_eof(_M_sbuf->sgetc())), - _M_message(__gnu_debug::__msg_inc_istreambuf) - ._M_iterator(*this)); - - _M_sbuf->sbumpc(); - _M_c = traits_type::eof(); - return *this; - } - - /// Advance the iterator. Calls streambuf.sbumpc(). - istreambuf_iterator - operator++(int) - { - __glibcxx_requires_cond(_M_sbuf && - (!_S_is_eof(_M_c) || !_S_is_eof(_M_sbuf->sgetc())), - _M_message(__gnu_debug::__msg_inc_istreambuf) - ._M_iterator(*this)); - - istreambuf_iterator __old = *this; - __old._M_c = _M_sbuf->sbumpc(); - _M_c = traits_type::eof(); - return __old; - } - - // _GLIBCXX_RESOLVE_LIB_DEFECTS - // 110 istreambuf_iterator::equal not const - // NB: there is also number 111 (NAD) relevant to this function. - /// Return true both iterators are end or both are not end. - _GLIBCXX_NODISCARD - bool - equal(const istreambuf_iterator& __b) const - { return _M_at_eof() == __b._M_at_eof(); } - - private: - int_type - _M_get() const - { - int_type __ret = _M_c; - if (_M_sbuf && _S_is_eof(__ret) && _S_is_eof(__ret = _M_sbuf->sgetc())) - _M_sbuf = 0; - return __ret; - } - - bool - _M_at_eof() const - { return _S_is_eof(_M_get()); } - - static bool - _S_is_eof(int_type __c) - { - const int_type __eof = traits_type::eof(); - return traits_type::eq_int_type(__c, __eof); - } - -#if __cplusplus > 201703L && __cpp_lib_concepts - [[nodiscard]] - friend bool - operator==(const istreambuf_iterator& __i, default_sentinel_t __s) - { return __i._M_at_eof(); } -#endif - }; - - template - _GLIBCXX_NODISCARD - inline bool - operator==(const istreambuf_iterator<_CharT, _Traits>& __a, - const istreambuf_iterator<_CharT, _Traits>& __b) - { return __a.equal(__b); } - -#if __cpp_impl_three_way_comparison < 201907L - template - _GLIBCXX_NODISCARD - inline bool - operator!=(const istreambuf_iterator<_CharT, _Traits>& __a, - const istreambuf_iterator<_CharT, _Traits>& __b) - { return !__a.equal(__b); } -#endif - - /// Provides output iterator semantics for streambufs. - template - class ostreambuf_iterator - : public iterator - { - public: - // Types: - ///@{ - /// Public typedefs -#if __cplusplus > 201703L - using difference_type = ptrdiff_t; -#endif - typedef _CharT char_type; - typedef _Traits traits_type; - typedef basic_streambuf<_CharT, _Traits> streambuf_type; - typedef basic_ostream<_CharT, _Traits> ostream_type; - ///@} - - template - friend typename __gnu_cxx::__enable_if<__is_char<_CharT2>::__value, - ostreambuf_iterator<_CharT2> >::__type - copy(istreambuf_iterator<_CharT2>, istreambuf_iterator<_CharT2>, - ostreambuf_iterator<_CharT2>); - - private: - streambuf_type* _M_sbuf; - bool _M_failed; - - public: - -#if __cplusplus > 201703L - constexpr - ostreambuf_iterator() noexcept - : _M_sbuf(nullptr), _M_failed(true) { } -#endif - - /// Construct output iterator from ostream. - ostreambuf_iterator(ostream_type& __s) _GLIBCXX_USE_NOEXCEPT - : _M_sbuf(__s.rdbuf()), _M_failed(!_M_sbuf) { } - - /// Construct output iterator from streambuf. - ostreambuf_iterator(streambuf_type* __s) _GLIBCXX_USE_NOEXCEPT - : _M_sbuf(__s), _M_failed(!_M_sbuf) { } - - /// Write character to streambuf. Calls streambuf.sputc(). - ostreambuf_iterator& - operator=(_CharT __c) - { - if (!_M_failed && - _Traits::eq_int_type(_M_sbuf->sputc(__c), _Traits::eof())) - _M_failed = true; - return *this; - } - - /// Return *this. - _GLIBCXX_NODISCARD - ostreambuf_iterator& - operator*() - { return *this; } - - /// Return *this. - ostreambuf_iterator& - operator++(int) - { return *this; } - - /// Return *this. - ostreambuf_iterator& - operator++() - { return *this; } - - /// Return true if previous operator=() failed. - _GLIBCXX_NODISCARD - bool - failed() const _GLIBCXX_USE_NOEXCEPT - { return _M_failed; } - - ostreambuf_iterator& - _M_put(const _CharT* __ws, streamsize __len) - { - if (__builtin_expect(!_M_failed, true) - && __builtin_expect(this->_M_sbuf->sputn(__ws, __len) != __len, - false)) - _M_failed = true; - return *this; - } - }; -#pragma GCC diagnostic pop - - // Overloads for streambuf iterators. - template - typename __gnu_cxx::__enable_if<__is_char<_CharT>::__value, - ostreambuf_iterator<_CharT> >::__type - copy(istreambuf_iterator<_CharT> __first, - istreambuf_iterator<_CharT> __last, - ostreambuf_iterator<_CharT> __result) - { - if (__first._M_sbuf && !__last._M_sbuf && !__result._M_failed) - { - bool __ineof; - __copy_streambufs_eof(__first._M_sbuf, __result._M_sbuf, __ineof); - if (!__ineof) - __result._M_failed = true; - } - return __result; - } - - template - typename __gnu_cxx::__enable_if<__is_char<_CharT>::__value, - ostreambuf_iterator<_CharT> >::__type - __copy_move_a2(_CharT* __first, _CharT* __last, - ostreambuf_iterator<_CharT> __result) - { - const streamsize __num = __last - __first; - if (__num > 0) - __result._M_put(__first, __num); - return __result; - } - - template - typename __gnu_cxx::__enable_if<__is_char<_CharT>::__value, - ostreambuf_iterator<_CharT> >::__type - __copy_move_a2(const _CharT* __first, const _CharT* __last, - ostreambuf_iterator<_CharT> __result) - { - const streamsize __num = __last - __first; - if (__num > 0) - __result._M_put(__first, __num); - return __result; - } - - template - typename __gnu_cxx::__enable_if<__is_char<_CharT>::__value, - _CharT*>::__type - __copy_move_a2(istreambuf_iterator<_CharT> __first, - istreambuf_iterator<_CharT> __last, _CharT* __result) - { - typedef istreambuf_iterator<_CharT> __is_iterator_type; - typedef typename __is_iterator_type::traits_type traits_type; - typedef typename __is_iterator_type::streambuf_type streambuf_type; - typedef typename traits_type::int_type int_type; - - if (__first._M_sbuf && !__last._M_sbuf) - { - streambuf_type* __sb = __first._M_sbuf; - int_type __c = __sb->sgetc(); - while (!traits_type::eq_int_type(__c, traits_type::eof())) - { - const streamsize __n = __sb->egptr() - __sb->gptr(); - if (__n > 1) - { - traits_type::copy(__result, __sb->gptr(), __n); - __sb->__safe_gbump(__n); - __result += __n; - __c = __sb->underflow(); - } - else - { - *__result++ = traits_type::to_char_type(__c); - __c = __sb->snextc(); - } - } - } - return __result; - } - - template - typename __gnu_cxx::__enable_if<__is_char<_CharT>::__value, - _CharT*>::__type - __copy_n_a(istreambuf_iterator<_CharT> __it, _Size __n, _CharT* __result, - bool __strict __attribute__((__unused__))) - { - if (__n == 0) - return __result; - - __glibcxx_requires_cond(__it._M_sbuf, - _M_message(__gnu_debug::__msg_inc_istreambuf) - ._M_iterator(__it)); - _CharT* __beg = __result; - __result += __it._M_sbuf->sgetn(__beg, __n); - __glibcxx_requires_cond(!__strict || __result - __beg == __n, - _M_message(__gnu_debug::__msg_inc_istreambuf) - ._M_iterator(__it)); - return __result; - } - - template - typename __gnu_cxx::__enable_if<__is_char<_CharT>::__value, - istreambuf_iterator<_CharT> >::__type - find(istreambuf_iterator<_CharT> __first, - istreambuf_iterator<_CharT> __last, const _CharT& __val) - { - typedef istreambuf_iterator<_CharT> __is_iterator_type; - typedef typename __is_iterator_type::traits_type traits_type; - typedef typename __is_iterator_type::streambuf_type streambuf_type; - typedef typename traits_type::int_type int_type; - const int_type __eof = traits_type::eof(); - - if (__first._M_sbuf && !__last._M_sbuf) - { - const int_type __ival = traits_type::to_int_type(__val); - streambuf_type* __sb = __first._M_sbuf; - int_type __c = __sb->sgetc(); - while (!traits_type::eq_int_type(__c, __eof) - && !traits_type::eq_int_type(__c, __ival)) - { - streamsize __n = __sb->egptr() - __sb->gptr(); - if (__n > 1) - { - const _CharT* __p = traits_type::find(__sb->gptr(), - __n, __val); - if (__p) - __n = __p - __sb->gptr(); - __sb->__safe_gbump(__n); - __c = __sb->sgetc(); - } - else - __c = __sb->snextc(); - } - - __first._M_c = __eof; - } - - return __first; - } - - template - typename __gnu_cxx::__enable_if<__is_char<_CharT>::__value, - void>::__type - advance(istreambuf_iterator<_CharT>& __i, _Distance __n) - { - if (__n == 0) - return; - - __glibcxx_assert(__n > 0); - __glibcxx_requires_cond(!__i._M_at_eof(), - _M_message(__gnu_debug::__msg_inc_istreambuf) - ._M_iterator(__i)); - - typedef istreambuf_iterator<_CharT> __is_iterator_type; - typedef typename __is_iterator_type::traits_type traits_type; - typedef typename __is_iterator_type::streambuf_type streambuf_type; - typedef typename traits_type::int_type int_type; - const int_type __eof = traits_type::eof(); - - streambuf_type* __sb = __i._M_sbuf; - while (__n > 0) - { - streamsize __size = __sb->egptr() - __sb->gptr(); - if (__size > __n) - { - __sb->__safe_gbump(__n); - break; - } - - __sb->__safe_gbump(__size); - __n -= __size; - if (traits_type::eq_int_type(__sb->underflow(), __eof)) - { - __glibcxx_requires_cond(__n == 0, - _M_message(__gnu_debug::__msg_inc_istreambuf) - ._M_iterator(__i)); - break; - } - } - - __i._M_c = __eof; - } - -/// @} group iterators - -_GLIBCXX_END_NAMESPACE_VERSION -} // namespace - -#endif diff --git a/.ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@c++@13.1.1@bits@streambuf_iterator.h.blob b/.ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@c++@13.1.1@bits@streambuf_iterator.h.blob deleted file mode 100644 index 3cafeeb042d3a5281937a9645990fd05e656cacb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 40406 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
  2. ::pointer_to if element type is void. - template - struct __ptr_traits_ptr_to<_Ptr, _Elt, true> - { }; - - // Partial specialization defining pointer_traits::pointer_to(T&). - template - struct __ptr_traits_ptr_to<_Tp*, _Tp, false> - { - using pointer = _Tp*; - using element_type = _Tp; - - /** - * @brief Obtain a pointer to an object - * @param __r A reference to an object of type `element_type` - * @return `addressof(__r)` - */ - static _GLIBCXX20_CONSTEXPR pointer - pointer_to(element_type& __r) noexcept - { return std::addressof(__r); } - }; - - template - struct __ptr_traits_impl : __ptr_traits_ptr_to<_Ptr, _Elt> - { - private: - template - using __diff_t = typename _Tp::difference_type; - - template - using __rebind = __type_identity>; - - public: - /// The pointer type. - using pointer = _Ptr; - - /// The type pointed to. - using element_type = _Elt; - - /// The type used to represent the difference between two pointers. - using difference_type = __detected_or_t; - - /// A pointer to a different type. - template - using rebind = typename __detected_or_t<__replace_first_arg<_Ptr, _Up>, - __rebind, _Ptr, _Up>::type; - }; - - // _GLIBCXX_RESOLVE_LIB_DEFECTS - // 3545. std::pointer_traits should be SFINAE-friendly - template - struct __ptr_traits_impl<_Ptr, __undefined> - { }; - - /** - * @brief Uniform interface to all pointer-like types - * @headerfile memory - * @ingroup pointer_abstractions - * @since C++11 - */ - template - struct pointer_traits : __ptr_traits_impl<_Ptr, __ptr_traits_elem_t<_Ptr>> - { }; - - /** - * @brief Partial specialization for built-in pointers. - * @headerfile memory - * @ingroup pointer_abstractions - * @since C++11 - */ - template - struct pointer_traits<_Tp*> : __ptr_traits_ptr_to<_Tp*, _Tp> - { - /// The pointer type - typedef _Tp* pointer; - /// The type pointed to - typedef _Tp element_type; - /// Type used to represent the difference between two pointers - typedef ptrdiff_t difference_type; - /// A pointer to a different type. - template using rebind = _Up*; - }; - - /// Convenience alias for rebinding pointers. - template - using __ptr_rebind = typename pointer_traits<_Ptr>::template rebind<_Tp>; - - template - constexpr _Tp* - __to_address(_Tp* __ptr) noexcept - { - static_assert(!std::is_function<_Tp>::value, "not a function pointer"); - return __ptr; - } - -#if __cplusplus <= 201703L - template - constexpr typename std::pointer_traits<_Ptr>::element_type* - __to_address(const _Ptr& __ptr) - { return std::__to_address(__ptr.operator->()); } -#else - template - constexpr auto - __to_address(const _Ptr& __ptr) noexcept - -> decltype(std::pointer_traits<_Ptr>::to_address(__ptr)) - { return std::pointer_traits<_Ptr>::to_address(__ptr); } - - template - constexpr auto - __to_address(const _Ptr& __ptr, _None...) noexcept - { - if constexpr (is_base_of_v<__gnu_debug::_Safe_iterator_base, _Ptr>) - return std::__to_address(__ptr.base().operator->()); - else - return std::__to_address(__ptr.operator->()); - } - -#define __cpp_lib_to_address 201711L - - /** - * @brief Obtain address referenced by a pointer to an object - * @param __ptr A pointer to an object - * @return @c __ptr - * @ingroup pointer_abstractions - */ - template - constexpr _Tp* - to_address(_Tp* __ptr) noexcept - { return std::__to_address(__ptr); } - - /** - * @brief Obtain address referenced by a pointer to an object - * @param __ptr A pointer to an object - * @return @c pointer_traits<_Ptr>::to_address(__ptr) if that expression is - well-formed, otherwise @c to_address(__ptr.operator->()) - * @ingroup pointer_abstractions - */ - template - constexpr auto - to_address(const _Ptr& __ptr) noexcept - { return std::__to_address(__ptr); } -#endif // C++2a - -_GLIBCXX_END_NAMESPACE_VERSION -} // namespace std - -#endif - -#endif diff --git a/.ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@c++@13.1.1@bits@ptr_traits.h.blob b/.ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@c++@13.1.1@bits@ptr_traits.h.blob deleted file mode 100644 index f3445de8a254d7537e965971b03e24ecd587be72..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 20961 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 diff --git a/.ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@c++@13.1.1@bits@range_access.h b/.ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@c++@13.1.1@bits@range_access.h deleted file mode 100644 index b7169c6..0000000 --- a/.ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@c++@13.1.1@bits@range_access.h +++ /dev/null @@ -1,374 +0,0 @@ -// Range access functions for containers -*- C++ -*- - -// Copyright (C) 2010-2023 Free Software Foundation, Inc. -// -// This file is part of the GNU ISO C++ Library. This library is free -// software; you can redistribute it and/or modify it under the -// terms of the GNU General Public License as published by the -// Free Software Foundation; either version 3, or (at your option) -// any later version. - -// This library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. - -// Under Section 7 of GPL version 3, you are granted additional -// permissions described in the GCC Runtime Library Exception, version -// 3.1, as published by the Free Software Foundation. - -// You should have received a copy of the GNU General Public License and -// a copy of the GCC Runtime Library Exception along with this program; -// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see -// . - -/** @file bits/range_access.h - * This is an internal header file, included by other library headers. - * Do not attempt to use it directly. @headername{iterator} - */ - -#ifndef _GLIBCXX_RANGE_ACCESS_H -#define _GLIBCXX_RANGE_ACCESS_H 1 - -#pragma GCC system_header - -#if __cplusplus >= 201103L -#include -#include // common_type_t, make_signed_t -#include // reverse_iterator - -namespace std _GLIBCXX_VISIBILITY(default) -{ -_GLIBCXX_BEGIN_NAMESPACE_VERSION - - /** - * @brief Return an iterator pointing to the first element of - * the container. - * @param __cont Container. - */ - template - [[__nodiscard__, __gnu__::__always_inline__]] - inline _GLIBCXX17_CONSTEXPR auto - begin(_Container& __cont) -> decltype(__cont.begin()) - { return __cont.begin(); } - - /** - * @brief Return an iterator pointing to the first element of - * the const container. - * @param __cont Container. - */ - template - [[__nodiscard__, __gnu__::__always_inline__]] - inline _GLIBCXX17_CONSTEXPR auto - begin(const _Container& __cont) -> decltype(__cont.begin()) - { return __cont.begin(); } - - /** - * @brief Return an iterator pointing to one past the last element of - * the container. - * @param __cont Container. - */ - template - [[__nodiscard__, __gnu__::__always_inline__]] - inline _GLIBCXX17_CONSTEXPR auto - end(_Container& __cont) -> decltype(__cont.end()) - { return __cont.end(); } - - /** - * @brief Return an iterator pointing to one past the last element of - * the const container. - * @param __cont Container. - */ - template - [[__nodiscard__, __gnu__::__always_inline__]] - inline _GLIBCXX17_CONSTEXPR auto - end(const _Container& __cont) -> decltype(__cont.end()) - { return __cont.end(); } - - /** - * @brief Return an iterator pointing to the first element of the array. - * @param __arr Array. - */ - template - [[__nodiscard__, __gnu__::__always_inline__]] - inline _GLIBCXX14_CONSTEXPR _Tp* - begin(_Tp (&__arr)[_Nm]) noexcept - { return __arr; } - - /** - * @brief Return an iterator pointing to one past the last element - * of the array. - * @param __arr Array. - */ - template - [[__nodiscard__, __gnu__::__always_inline__]] - inline _GLIBCXX14_CONSTEXPR _Tp* - end(_Tp (&__arr)[_Nm]) noexcept - { return __arr + _Nm; } - -#if __cplusplus >= 201402L - - template class valarray; - // These overloads must be declared for cbegin and cend to use them. - template _Tp* begin(valarray<_Tp>&) noexcept; - template const _Tp* begin(const valarray<_Tp>&) noexcept; - template _Tp* end(valarray<_Tp>&) noexcept; - template const _Tp* end(const valarray<_Tp>&) noexcept; - - /** - * @brief Return an iterator pointing to the first element of - * the const container. - * @param __cont Container. - */ - template - [[__nodiscard__, __gnu__::__always_inline__]] - constexpr auto - cbegin(const _Container& __cont) noexcept(noexcept(std::begin(__cont))) - -> decltype(std::begin(__cont)) - { return std::begin(__cont); } - - /** - * @brief Return an iterator pointing to one past the last element of - * the const container. - * @param __cont Container. - */ - template - [[__nodiscard__, __gnu__::__always_inline__]] - constexpr auto - cend(const _Container& __cont) noexcept(noexcept(std::end(__cont))) - -> decltype(std::end(__cont)) - { return std::end(__cont); } - - /** - * @brief Return a reverse iterator pointing to the last element of - * the container. - * @param __cont Container. - */ - template - [[__nodiscard__, __gnu__::__always_inline__]] - inline _GLIBCXX17_CONSTEXPR auto - rbegin(_Container& __cont) -> decltype(__cont.rbegin()) - { return __cont.rbegin(); } - - /** - * @brief Return a reverse iterator pointing to the last element of - * the const container. - * @param __cont Container. - */ - template - [[__nodiscard__, __gnu__::__always_inline__]] - inline _GLIBCXX17_CONSTEXPR auto - rbegin(const _Container& __cont) -> decltype(__cont.rbegin()) - { return __cont.rbegin(); } - - /** - * @brief Return a reverse iterator pointing one past the first element of - * the container. - * @param __cont Container. - */ - template - [[__nodiscard__, __gnu__::__always_inline__]] - inline _GLIBCXX17_CONSTEXPR auto - rend(_Container& __cont) -> decltype(__cont.rend()) - { return __cont.rend(); } - - /** - * @brief Return a reverse iterator pointing one past the first element of - * the const container. - * @param __cont Container. - */ - template - [[__nodiscard__, __gnu__::__always_inline__]] - inline _GLIBCXX17_CONSTEXPR auto - rend(const _Container& __cont) -> decltype(__cont.rend()) - { return __cont.rend(); } - - /** - * @brief Return a reverse iterator pointing to the last element of - * the array. - * @param __arr Array. - */ - template - [[__nodiscard__]] - inline _GLIBCXX17_CONSTEXPR reverse_iterator<_Tp*> - rbegin(_Tp (&__arr)[_Nm]) noexcept - { return reverse_iterator<_Tp*>(__arr + _Nm); } - - /** - * @brief Return a reverse iterator pointing one past the first element of - * the array. - * @param __arr Array. - */ - template - [[__nodiscard__]] - inline _GLIBCXX17_CONSTEXPR reverse_iterator<_Tp*> - rend(_Tp (&__arr)[_Nm]) noexcept - { return reverse_iterator<_Tp*>(__arr); } - - /** - * @brief Return a reverse iterator pointing to the last element of - * the initializer_list. - * @param __il initializer_list. - */ - template - [[__nodiscard__]] - inline _GLIBCXX17_CONSTEXPR reverse_iterator - rbegin(initializer_list<_Tp> __il) noexcept - { return reverse_iterator(__il.end()); } - - /** - * @brief Return a reverse iterator pointing one past the first element of - * the initializer_list. - * @param __il initializer_list. - */ - template - [[__nodiscard__]] - inline _GLIBCXX17_CONSTEXPR reverse_iterator - rend(initializer_list<_Tp> __il) noexcept - { return reverse_iterator(__il.begin()); } - - /** - * @brief Return a reverse iterator pointing to the last element of - * the const container. - * @param __cont Container. - */ - template - [[__nodiscard__, __gnu__::__always_inline__]] - inline _GLIBCXX17_CONSTEXPR auto - crbegin(const _Container& __cont) -> decltype(std::rbegin(__cont)) - { return std::rbegin(__cont); } - - /** - * @brief Return a reverse iterator pointing one past the first element of - * the const container. - * @param __cont Container. - */ - template - [[__nodiscard__, __gnu__::__always_inline__]] - inline _GLIBCXX17_CONSTEXPR auto - crend(const _Container& __cont) -> decltype(std::rend(__cont)) - { return std::rend(__cont); } - -#endif // C++14 - -#if __cplusplus >= 201703L -#define __cpp_lib_nonmember_container_access 201411L - - /** - * @brief Return the size of a container. - * @param __cont Container. - */ - template - [[nodiscard, __gnu__::__always_inline__]] - constexpr auto - size(const _Container& __cont) noexcept(noexcept(__cont.size())) - -> decltype(__cont.size()) - { return __cont.size(); } - - /** - * @brief Return the size of an array. - */ - template - [[nodiscard, __gnu__::__always_inline__]] - constexpr size_t - size(const _Tp (&)[_Nm]) noexcept - { return _Nm; } - - /** - * @brief Return whether a container is empty. - * @param __cont Container. - */ - template - [[nodiscard, __gnu__::__always_inline__]] - constexpr auto - empty(const _Container& __cont) noexcept(noexcept(__cont.empty())) - -> decltype(__cont.empty()) - { return __cont.empty(); } - - /** - * @brief Return whether an array is empty (always false). - */ - template - [[nodiscard, __gnu__::__always_inline__]] - constexpr bool - empty(const _Tp (&)[_Nm]) noexcept - { return false; } - - /** - * @brief Return whether an initializer_list is empty. - * @param __il Initializer list. - */ - template - [[nodiscard, __gnu__::__always_inline__]] - constexpr bool - empty(initializer_list<_Tp> __il) noexcept - { return __il.size() == 0;} - - /** - * @brief Return the data pointer of a container. - * @param __cont Container. - */ - template - [[nodiscard, __gnu__::__always_inline__]] - constexpr auto - data(_Container& __cont) noexcept(noexcept(__cont.data())) - -> decltype(__cont.data()) - { return __cont.data(); } - - /** - * @brief Return the data pointer of a const container. - * @param __cont Container. - */ - template - [[nodiscard, __gnu__::__always_inline__]] - constexpr auto - data(const _Container& __cont) noexcept(noexcept(__cont.data())) - -> decltype(__cont.data()) - { return __cont.data(); } - - /** - * @brief Return the data pointer of an array. - * @param __array Array. - */ - template - [[nodiscard, __gnu__::__always_inline__]] - constexpr _Tp* - data(_Tp (&__array)[_Nm]) noexcept - { return __array; } - - /** - * @brief Return the data pointer of an initializer list. - * @param __il Initializer list. - */ - template - [[nodiscard, __gnu__::__always_inline__]] - constexpr const _Tp* - data(initializer_list<_Tp> __il) noexcept - { return __il.begin(); } - -#if __cplusplus > 201703L -#define __cpp_lib_ssize 201902L - template - [[nodiscard, __gnu__::__always_inline__]] - constexpr auto - ssize(const _Container& __cont) - noexcept(noexcept(__cont.size())) - -> common_type_t> - { - using type = make_signed_t; - return static_cast>(__cont.size()); - } - - template - [[nodiscard, __gnu__::__always_inline__]] - constexpr ptrdiff_t - ssize(const _Tp (&)[_Num]) noexcept - { return _Num; } -#endif // C++20 - -#endif // C++17 -_GLIBCXX_END_NAMESPACE_VERSION -} // namespace - -#endif // C++11 -#endif // _GLIBCXX_RANGE_ACCESS_H diff --git a/.ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@c++@13.1.1@bits@range_access.h.blob b/.ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@c++@13.1.1@bits@range_access.h.blob deleted file mode 100644 index 6c8e19a6f5bc5f74064f94d4c5edc4307de4a724..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 19429 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. - -/** @file include/bits/refwrap.h - * This is an internal header file, included by other library headers. - * Do not attempt to use it directly. @headername{functional} - */ - -#ifndef _GLIBCXX_REFWRAP_H -#define _GLIBCXX_REFWRAP_H 1 - -#pragma GCC system_header - -#if __cplusplus >= 201103L - -#include -#include -#include // for unary_function and binary_function - -namespace std _GLIBCXX_VISIBILITY(default) -{ -_GLIBCXX_BEGIN_NAMESPACE_VERSION - - /// @cond undocumented - - /** - * Derives from @c unary_function or @c binary_function, or perhaps - * nothing, depending on the number of arguments provided. The - * primary template is the basis case, which derives nothing. - */ - template - struct _Maybe_unary_or_binary_function { }; - -// Ignore warnings about unary_function and binary_function. -#pragma GCC diagnostic push -#pragma GCC diagnostic ignored "-Wdeprecated-declarations" - - /// Derives from @c unary_function, as appropriate. - template - struct _Maybe_unary_or_binary_function<_Res, _T1> - : std::unary_function<_T1, _Res> { }; - - /// Derives from @c binary_function, as appropriate. - template - struct _Maybe_unary_or_binary_function<_Res, _T1, _T2> - : std::binary_function<_T1, _T2, _Res> { }; - -#pragma GCC diagnostic pop - - template - struct _Mem_fn_traits; - - template - struct _Mem_fn_traits_base - { - using __result_type = _Res; - using __maybe_type - = _Maybe_unary_or_binary_function<_Res, _Class*, _ArgTypes...>; - using __arity = integral_constant; - }; - -#define _GLIBCXX_MEM_FN_TRAITS2(_CV, _REF, _LVAL, _RVAL) \ - template \ - struct _Mem_fn_traits<_Res (_Class::*)(_ArgTypes...) _CV _REF> \ - : _Mem_fn_traits_base<_Res, _CV _Class, _ArgTypes...> \ - { \ - using __vararg = false_type; \ - }; \ - template \ - struct _Mem_fn_traits<_Res (_Class::*)(_ArgTypes... ...) _CV _REF> \ - : _Mem_fn_traits_base<_Res, _CV _Class, _ArgTypes...> \ - { \ - using __vararg = true_type; \ - }; - -#define _GLIBCXX_MEM_FN_TRAITS(_REF, _LVAL, _RVAL) \ - _GLIBCXX_MEM_FN_TRAITS2( , _REF, _LVAL, _RVAL) \ - _GLIBCXX_MEM_FN_TRAITS2(const , _REF, _LVAL, _RVAL) \ - _GLIBCXX_MEM_FN_TRAITS2(volatile , _REF, _LVAL, _RVAL) \ - _GLIBCXX_MEM_FN_TRAITS2(const volatile, _REF, _LVAL, _RVAL) - -_GLIBCXX_MEM_FN_TRAITS( , true_type, true_type) -_GLIBCXX_MEM_FN_TRAITS(&, true_type, false_type) -_GLIBCXX_MEM_FN_TRAITS(&&, false_type, true_type) - -#if __cplusplus > 201402L -_GLIBCXX_MEM_FN_TRAITS(noexcept, true_type, true_type) -_GLIBCXX_MEM_FN_TRAITS(& noexcept, true_type, false_type) -_GLIBCXX_MEM_FN_TRAITS(&& noexcept, false_type, true_type) -#endif - -#undef _GLIBCXX_MEM_FN_TRAITS -#undef _GLIBCXX_MEM_FN_TRAITS2 - - /// If we have found a result_type, extract it. - template> - struct _Maybe_get_result_type - { }; - - template - struct _Maybe_get_result_type<_Functor, - __void_t> - { typedef typename _Functor::result_type result_type; }; - - /** - * Base class for any function object that has a weak result type, as - * defined in 20.8.2 [func.require] of C++11. - */ - template - struct _Weak_result_type_impl - : _Maybe_get_result_type<_Functor> - { }; - - /// Retrieve the result type for a function type. - template - struct _Weak_result_type_impl<_Res(_ArgTypes...) _GLIBCXX_NOEXCEPT_QUAL> - { typedef _Res result_type; }; - - /// Retrieve the result type for a varargs function type. - template - struct _Weak_result_type_impl<_Res(_ArgTypes......) _GLIBCXX_NOEXCEPT_QUAL> - { typedef _Res result_type; }; - - /// Retrieve the result type for a function pointer. - template - struct _Weak_result_type_impl<_Res(*)(_ArgTypes...) _GLIBCXX_NOEXCEPT_QUAL> - { typedef _Res result_type; }; - - /// Retrieve the result type for a varargs function pointer. - template - struct - _Weak_result_type_impl<_Res(*)(_ArgTypes......) _GLIBCXX_NOEXCEPT_QUAL> - { typedef _Res result_type; }; - - // Let _Weak_result_type_impl perform the real work. - template::value> - struct _Weak_result_type_memfun - : _Weak_result_type_impl<_Functor> - { }; - - // A pointer to member function has a weak result type. - template - struct _Weak_result_type_memfun<_MemFunPtr, true> - { - using result_type = typename _Mem_fn_traits<_MemFunPtr>::__result_type; - }; - - // A pointer to data member doesn't have a weak result type. - template - struct _Weak_result_type_memfun<_Func _Class::*, false> - { }; - - /** - * Strip top-level cv-qualifiers from the function object and let - * _Weak_result_type_memfun perform the real work. - */ - template - struct _Weak_result_type - : _Weak_result_type_memfun::type> - { }; - -#if __cplusplus <= 201703L - // Detect nested argument_type. - template> - struct _Refwrap_base_arg1 - { }; - - // Nested argument_type. - template - struct _Refwrap_base_arg1<_Tp, - __void_t> - { - typedef typename _Tp::argument_type argument_type; - }; - - // Detect nested first_argument_type and second_argument_type. - template> - struct _Refwrap_base_arg2 - { }; - - // Nested first_argument_type and second_argument_type. - template - struct _Refwrap_base_arg2<_Tp, - __void_t> - { - typedef typename _Tp::first_argument_type first_argument_type; - typedef typename _Tp::second_argument_type second_argument_type; - }; - - /** - * Derives from unary_function or binary_function when it - * can. Specializations handle all of the easy cases. The primary - * template determines what to do with a class type, which may - * derive from both unary_function and binary_function. - */ - template - struct _Reference_wrapper_base - : _Weak_result_type<_Tp>, _Refwrap_base_arg1<_Tp>, _Refwrap_base_arg2<_Tp> - { }; - -// Ignore warnings about unary_function and binary_function. -#pragma GCC diagnostic push -#pragma GCC diagnostic ignored "-Wdeprecated-declarations" - - // - a function type (unary) - template - struct _Reference_wrapper_base<_Res(_T1) _GLIBCXX_NOEXCEPT_QUAL> - : unary_function<_T1, _Res> - { }; - - template - struct _Reference_wrapper_base<_Res(_T1) const> - : unary_function<_T1, _Res> - { }; - - template - struct _Reference_wrapper_base<_Res(_T1) volatile> - : unary_function<_T1, _Res> - { }; - - template - struct _Reference_wrapper_base<_Res(_T1) const volatile> - : unary_function<_T1, _Res> - { }; - - // - a function type (binary) - template - struct _Reference_wrapper_base<_Res(_T1, _T2) _GLIBCXX_NOEXCEPT_QUAL> - : binary_function<_T1, _T2, _Res> - { }; - - template - struct _Reference_wrapper_base<_Res(_T1, _T2) const> - : binary_function<_T1, _T2, _Res> - { }; - - template - struct _Reference_wrapper_base<_Res(_T1, _T2) volatile> - : binary_function<_T1, _T2, _Res> - { }; - - template - struct _Reference_wrapper_base<_Res(_T1, _T2) const volatile> - : binary_function<_T1, _T2, _Res> - { }; - - // - a function pointer type (unary) - template - struct _Reference_wrapper_base<_Res(*)(_T1) _GLIBCXX_NOEXCEPT_QUAL> - : unary_function<_T1, _Res> - { }; - - // - a function pointer type (binary) - template - struct _Reference_wrapper_base<_Res(*)(_T1, _T2) _GLIBCXX_NOEXCEPT_QUAL> - : binary_function<_T1, _T2, _Res> - { }; - - template::value> - struct _Reference_wrapper_base_memfun - : _Reference_wrapper_base<_Tp> - { }; - - template - struct _Reference_wrapper_base_memfun<_MemFunPtr, true> - : _Mem_fn_traits<_MemFunPtr>::__maybe_type - { - using result_type = typename _Mem_fn_traits<_MemFunPtr>::__result_type; - }; -#pragma GCC diagnostic pop -#endif // ! C++20 - - /// @endcond - - /** - * @brief Primary class template for reference_wrapper. - * @ingroup functors - */ - template - class reference_wrapper -#if __cplusplus <= 201703L - // In C++20 std::reference_wrapper allows T to be incomplete, - // so checking for nested types could result in ODR violations. - : public _Reference_wrapper_base_memfun::type> -#endif - { - _Tp* _M_data; - - _GLIBCXX20_CONSTEXPR - static _Tp* _S_fun(_Tp& __r) noexcept { return std::__addressof(__r); } - - static void _S_fun(_Tp&&) = delete; - - template> - using __not_same - = typename enable_if::value>::type; - - public: - typedef _Tp type; - - // _GLIBCXX_RESOLVE_LIB_DEFECTS - // 2993. reference_wrapper conversion from T&& - // 3041. Unnecessary decay in reference_wrapper - template, typename - = decltype(reference_wrapper::_S_fun(std::declval<_Up>()))> - _GLIBCXX20_CONSTEXPR - reference_wrapper(_Up&& __uref) - noexcept(noexcept(reference_wrapper::_S_fun(std::declval<_Up>()))) - : _M_data(reference_wrapper::_S_fun(std::forward<_Up>(__uref))) - { } - - reference_wrapper(const reference_wrapper&) = default; - - reference_wrapper& - operator=(const reference_wrapper&) = default; - - _GLIBCXX20_CONSTEXPR - operator _Tp&() const noexcept - { return this->get(); } - - _GLIBCXX20_CONSTEXPR - _Tp& - get() const noexcept - { return *_M_data; } - - template - _GLIBCXX20_CONSTEXPR - typename __invoke_result<_Tp&, _Args...>::type - operator()(_Args&&... __args) const - noexcept(__is_nothrow_invocable<_Tp&, _Args...>::value) - { -#if __cplusplus > 201703L - if constexpr (is_object_v) - static_assert(sizeof(type), "type must be complete"); -#endif - return std::__invoke(get(), std::forward<_Args>(__args)...); - } - }; - -#if __cpp_deduction_guides - template - reference_wrapper(_Tp&) -> reference_wrapper<_Tp>; -#endif - - /// @relates reference_wrapper @{ - - /// Denotes a reference should be taken to a variable. - template - _GLIBCXX20_CONSTEXPR - inline reference_wrapper<_Tp> - ref(_Tp& __t) noexcept - { return reference_wrapper<_Tp>(__t); } - - /// Denotes a const reference should be taken to a variable. - template - _GLIBCXX20_CONSTEXPR - inline reference_wrapper - cref(const _Tp& __t) noexcept - { return reference_wrapper(__t); } - - template - void ref(const _Tp&&) = delete; - - template - void cref(const _Tp&&) = delete; - - /// std::ref overload to prevent wrapping a reference_wrapper - template - _GLIBCXX20_CONSTEXPR - inline reference_wrapper<_Tp> - ref(reference_wrapper<_Tp> __t) noexcept - { return __t; } - - /// std::cref overload to prevent wrapping a reference_wrapper - template - _GLIBCXX20_CONSTEXPR - inline reference_wrapper - cref(reference_wrapper<_Tp> __t) noexcept - { return { __t.get() }; } - - /// @} - -_GLIBCXX_END_NAMESPACE_VERSION -} // namespace std - -#endif // C++11 - -#endif // _GLIBCXX_REFWRAP_H diff --git a/.ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@c++@13.1.1@bits@refwrap.h.blob b/.ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@c++@13.1.1@bits@refwrap.h.blob deleted file mode 100644 index f2837831ccf67086a4f40dbc103aaf179e49ea18..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 29687 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. - -/** @file bits/requires_hosted.h - * This is an internal header file, included by other library headers. - * Do not attempt to use it directly. @headername{version} - */ - -#ifndef _REQUIRES_FREESTANDING_H -#define _REQUIRES_FREESTANDING_H 1 - -#include - -#if !_GLIBCXX_HOSTED -# error "This header is not available in freestanding mode." -#endif - -#endif diff --git a/.ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@c++@13.1.1@bits@requires_hosted.h.blob b/.ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@c++@13.1.1@bits@requires_hosted.h.blob deleted file mode 100644 index 4d2826140ef499df2c28f65b99064d3e81f845a5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7880 zcmbVR&5j&35S|G)#32um!wQ6ihg5Usbu^pZxQ~w=Z8!rjvA47BaOj zQc-3yT`KGTu9|uJ6}K|Elwzf2ofhz)nW(DC8zSd=`Cm^Zo3dUjy-YGyOJU3U`qSg? zo&1tErcRX>c?0mo-Mi`O2eZ@JX*yTdq=hU%*J6{+R^FgPX?tBs_sehJzkGH0%Z(l( z>spu8=^GimOUn)8d0q+*`04v@PHaCuV`ul1N+h|`%{E!;#v>LE6Pt5`z+4QXz)*A; zn7KAq77R=%YeI4%xov7`NFSh44vk3}E9S;Rh?yltxhayRggj6pMRz%=U;q5^5IZWY z?5dVLW1vo~S)p{2U29$_K`O>0i@fAkC!#EhQpd$M=#OM0Rvg{m3#vCr71F2|bl6d1 zer=`M@QS=CNHBpn5nc^s5m%Zo9q zRB0>(sEFMO$qm6`8A zqCbG0$$7I(@m~^gAc|KRn?t&44~skzAYyD$l`#-Nsi^?xj*=!O=(r`w_qOKHu86D& z?1+XNpaLGHJ&z9s+k1^0BWv_C>4-4`#hTtIZO3hkLI$%uZIK9k#KcNs+wSpr;1iUD zW(kZ0p@jirW`!7bV{inxE+Q{=ra0Yey0^D{8Br8u)o=@SX=T6w$K=={k2KyTwgM79 zX6W#KML)$xq5!W^OCw`JcFFBx*9%UdfU!XpT}SSF9Sjy+NK51M zs^iYW-y0}(oj||WR@v(@OYlflOV3CdD=Yfyu3Kxl*wlXL8e%ZHwW)5P^FzgZ(sY1^ zPIy4J9uh~H<7ytJeBwS-u$z^~2Qt`pvgi=n^~|m-@|>->S&{a_V4}*SLWA0Tsgarj zOWGc891*jM*St9D2G{~w(A3CVx;6q6AGPx!x_z+>6CW%k1ItK&K!EpP{;RvJl#7r6# zsBEK?F+LwHdRNF}S+dgy!AWol9J47pZ|t@fs5{aKyy<2l>2y+)jEGg*+v~V2R=Ec_o19!s#b4H)dbKBH`wE z($~SM!0ikcE|^P4k3>W4A5N5p_muy?IRQ3+zfemOIl}cU-*TfJr9^loa3_Y#ENYbB zws3Lbda#M(RPGm-v-{%%Li9#aHG}h4H+p+=V3nnxD!M0d=N{_D!2w`hm{f z{urx-*8&Hjo@-GwFWpOW+066N9mQ=5Uk&dFJfrP9Wv4_+hito zkGRc(=gV@}T1J^3khryBaP6o#w`Y*k0Jhs`OR4rg;{%?O%a=5$bC4#jvM; zdVk05Smy9)fV2g##H@z!j8Za6LsPRb)(&%p=kEBG{$-l{y=$fm?rxHI2YSKvHuP;A zdW_^XHmcrZBNRPKWb)-K0+wW1T+}_3Ty8wv{Kj94Q8a}lC-MVP(ctJW}E4`pN zI*6N_x%^-o3tS-Fas`oife-?9-%s2ON1BSuAnCK?E584NvTwk>)a!z4*`j^ZpveNQ z2-^jTx2u`{6tMfS=vTx8MbW~9cQ5=-zzV(vLRU-eJ4~-k0|*#P_wjJ34+ipWO69PZ zD|+lg3176)SNN{Nc8Xe*weZi6E*{fQVqYNRLu4>UPfsRqzcrcMdi~eWe}8xW$LjVZ z_%l6u^W?n;)7R&ZR;%CNefkBvymelj)t?cOKkw|DI1?PvO+RJEgkM diff --git a/.ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@c++@13.1.1@bits@std_abs.h b/.ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@c++@13.1.1@bits@std_abs.h deleted file mode 100644 index 1bb7ffb..0000000 --- a/.ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@c++@13.1.1@bits@std_abs.h +++ /dev/null @@ -1,145 +0,0 @@ -// -*- C++ -*- C library enhancements header. - -// Copyright (C) 2016-2023 Free Software Foundation, Inc. -// -// This file is part of the GNU ISO C++ Library. This library is free -// software; you can redistribute it and/or modify it under the -// terms of the GNU General Public License as published by the -// Free Software Foundation; either version 3, or (at your option) -// any later version. - -// This library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. - -// Under Section 7 of GPL version 3, you are granted additional -// permissions described in the GCC Runtime Library Exception, version -// 3.1, as published by the Free Software Foundation. - -// You should have received a copy of the GNU General Public License and -// a copy of the GCC Runtime Library Exception along with this program; -// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see -// . - -/** @file include/bits/std_abs.h - * This is an internal header file, included by other library headers. - * Do not attempt to use it directly. @headername{cmath, cstdlib} - */ - -#ifndef _GLIBCXX_BITS_STD_ABS_H -#define _GLIBCXX_BITS_STD_ABS_H - -#pragma GCC system_header - -#include - -#define _GLIBCXX_INCLUDE_NEXT_C_HEADERS -#include_next -#ifdef __CORRECT_ISO_CPP_MATH_H_PROTO -# include_next -#endif -#undef _GLIBCXX_INCLUDE_NEXT_C_HEADERS - -#undef abs - -extern "C++" -{ -namespace std _GLIBCXX_VISIBILITY(default) -{ -_GLIBCXX_BEGIN_NAMESPACE_VERSION - - using ::abs; - -#ifndef __CORRECT_ISO_CPP_STDLIB_H_PROTO - inline long - abs(long __i) { return __builtin_labs(__i); } -#endif - -#ifdef _GLIBCXX_USE_LONG_LONG - inline long long - abs(long long __x) { return __builtin_llabs (__x); } -#endif - -// _GLIBCXX_RESOLVE_LIB_DEFECTS -// 2192. Validity and return type of std::abs(0u) is unclear -// 2294. should declare abs(double) -// 2735. std::abs(short), std::abs(signed char) and others should return int - -#ifndef __CORRECT_ISO_CPP_MATH_H_PROTO - inline _GLIBCXX_CONSTEXPR double - abs(double __x) - { return __builtin_fabs(__x); } - - inline _GLIBCXX_CONSTEXPR float - abs(float __x) - { return __builtin_fabsf(__x); } - - inline _GLIBCXX_CONSTEXPR long double - abs(long double __x) - { return __builtin_fabsl(__x); } -#endif - -#if defined(__GLIBCXX_TYPE_INT_N_0) - __extension__ inline _GLIBCXX_CONSTEXPR __GLIBCXX_TYPE_INT_N_0 - abs(__GLIBCXX_TYPE_INT_N_0 __x) { return __x >= 0 ? __x : -__x; } -#endif -#if defined(__GLIBCXX_TYPE_INT_N_1) - __extension__ inline _GLIBCXX_CONSTEXPR __GLIBCXX_TYPE_INT_N_1 - abs(__GLIBCXX_TYPE_INT_N_1 __x) { return __x >= 0 ? __x : -__x; } -#endif -#if defined(__GLIBCXX_TYPE_INT_N_2) - __extension__ inline _GLIBCXX_CONSTEXPR __GLIBCXX_TYPE_INT_N_2 - abs(__GLIBCXX_TYPE_INT_N_2 __x) { return __x >= 0 ? __x : -__x; } -#endif -#if defined(__GLIBCXX_TYPE_INT_N_3) - __extension__ inline _GLIBCXX_CONSTEXPR __GLIBCXX_TYPE_INT_N_3 - abs(__GLIBCXX_TYPE_INT_N_3 __x) { return __x >= 0 ? __x : -__x; } -#endif - -#if defined(__STDCPP_FLOAT16_T__) && defined(_GLIBCXX_FLOAT_IS_IEEE_BINARY32) - constexpr _Float16 - abs(_Float16 __x) - { return _Float16(__builtin_fabsf(__x)); } -#endif - -#if defined(__STDCPP_FLOAT32_T__) && defined(_GLIBCXX_FLOAT_IS_IEEE_BINARY32) - constexpr _Float32 - abs(_Float32 __x) - { return __builtin_fabsf(__x); } -#endif - -#if defined(__STDCPP_FLOAT64_T__) && defined(_GLIBCXX_DOUBLE_IS_IEEE_BINARY64) - constexpr _Float64 - abs(_Float64 __x) - { return __builtin_fabs(__x); } -#endif - -#if defined(__STDCPP_FLOAT128_T__) && defined(_GLIBCXX_LDOUBLE_IS_IEEE_BINARY128) - constexpr _Float128 - abs(_Float128 __x) - { return __builtin_fabsl(__x); } -#elif defined(__STDCPP_FLOAT128_T__) && defined(_GLIBCXX_HAVE_FLOAT128_MATH) - constexpr _Float128 - abs(_Float128 __x) - { return __builtin_fabsf128(__x); } -#endif - -#if defined(__STDCPP_BFLOAT16_T__) && defined(_GLIBCXX_FLOAT_IS_IEEE_BINARY32) - constexpr __gnu_cxx::__bfloat16_t - abs(__gnu_cxx::__bfloat16_t __x) - { return __gnu_cxx::__bfloat16_t(__builtin_fabsf(__x)); } -#endif - -#if !defined(__STRICT_ANSI__) && defined(_GLIBCXX_USE_FLOAT128) - __extension__ inline _GLIBCXX_CONSTEXPR - __float128 - abs(__float128 __x) - { return __x < 0 ? -__x : __x; } -#endif - -_GLIBCXX_END_NAMESPACE_VERSION -} // namespace -} // extern "C"++" - -#endif // _GLIBCXX_BITS_STD_ABS_H diff --git a/.ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@c++@13.1.1@bits@std_abs.h.blob b/.ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@c++@13.1.1@bits@std_abs.h.blob deleted file mode 100644 index 70c4a1a23b3eb99fdefa8cbdcc456c088e21e9be..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 10482 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 diff --git a/.ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@c++@13.1.1@bits@stl_algobase.h b/.ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@c++@13.1.1@bits@stl_algobase.h deleted file mode 100644 index 4a6f819..0000000 --- a/.ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@c++@13.1.1@bits@stl_algobase.h +++ /dev/null @@ -1,2233 +0,0 @@ -// Core algorithmic facilities -*- C++ -*- - -// Copyright (C) 2001-2023 Free Software Foundation, Inc. -// -// This file is part of the GNU ISO C++ Library. This library is free -// software; you can redistribute it and/or modify it under the -// terms of the GNU General Public License as published by the -// Free Software Foundation; either version 3, or (at your option) -// any later version. - -// This library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. - -// Under Section 7 of GPL version 3, you are granted additional -// permissions described in the GCC Runtime Library Exception, version -// 3.1, as published by the Free Software Foundation. - -// You should have received a copy of the GNU General Public License and -// a copy of the GCC Runtime Library Exception along with this program; -// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see -// . - -/* - * - * Copyright (c) 1994 - * Hewlett-Packard Company - * - * Permission to use, copy, modify, distribute and sell this software - * and its documentation for any purpose is hereby granted without fee, - * provided that the above copyright notice appear in all copies and - * that both that copyright notice and this permission notice appear - * in supporting documentation. Hewlett-Packard Company makes no - * representations about the suitability of this software for any - * purpose. It is provided "as is" without express or implied warranty. - * - * - * Copyright (c) 1996-1998 - * Silicon Graphics Computer Systems, Inc. - * - * Permission to use, copy, modify, distribute and sell this software - * and its documentation for any purpose is hereby granted without fee, - * provided that the above copyright notice appear in all copies and - * that both that copyright notice and this permission notice appear - * in supporting documentation. Silicon Graphics makes no - * representations about the suitability of this software for any - * purpose. It is provided "as is" without express or implied warranty. - */ - -/** @file bits/stl_algobase.h - * This is an internal header file, included by other library headers. - * Do not attempt to use it directly. @headername{algorithm} - */ - -#ifndef _STL_ALGOBASE_H -#define _STL_ALGOBASE_H 1 - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include // For std::swap -#include -#if __cplusplus >= 201103L -# include -#endif -#if __cplusplus >= 201402L -# include // std::__bit_width -#endif -#if __cplusplus >= 202002L -# include -#endif - -namespace std _GLIBCXX_VISIBILITY(default) -{ -_GLIBCXX_BEGIN_NAMESPACE_VERSION - - /* - * A constexpr wrapper for __builtin_memcmp. - * @param __num The number of elements of type _Tp (not bytes). - */ - template - _GLIBCXX14_CONSTEXPR - inline int - __memcmp(const _Tp* __first1, const _Up* __first2, size_t __num) - { -#if __cplusplus >= 201103L - static_assert(sizeof(_Tp) == sizeof(_Up), "can be compared with memcmp"); -#endif -#ifdef __cpp_lib_is_constant_evaluated - if (std::is_constant_evaluated()) - { - for(; __num > 0; ++__first1, ++__first2, --__num) - if (*__first1 != *__first2) - return *__first1 < *__first2 ? -1 : 1; - return 0; - } - else -#endif - return __builtin_memcmp(__first1, __first2, sizeof(_Tp) * __num); - } - -#if __cplusplus < 201103L - // See http://gcc.gnu.org/ml/libstdc++/2004-08/msg00167.html: in a - // nutshell, we are partially implementing the resolution of DR 187, - // when it's safe, i.e., the value_types are equal. - template - struct __iter_swap - { - template - static void - iter_swap(_ForwardIterator1 __a, _ForwardIterator2 __b) - { - typedef typename iterator_traits<_ForwardIterator1>::value_type - _ValueType1; - _ValueType1 __tmp = *__a; - *__a = *__b; - *__b = __tmp; - } - }; - - template<> - struct __iter_swap - { - template - static void - iter_swap(_ForwardIterator1 __a, _ForwardIterator2 __b) - { - swap(*__a, *__b); - } - }; -#endif // C++03 - - /** - * @brief Swaps the contents of two iterators. - * @ingroup mutating_algorithms - * @param __a An iterator. - * @param __b Another iterator. - * @return Nothing. - * - * This function swaps the values pointed to by two iterators, not the - * iterators themselves. - */ - template - _GLIBCXX20_CONSTEXPR - inline void - iter_swap(_ForwardIterator1 __a, _ForwardIterator2 __b) - { - // concept requirements - __glibcxx_function_requires(_Mutable_ForwardIteratorConcept< - _ForwardIterator1>) - __glibcxx_function_requires(_Mutable_ForwardIteratorConcept< - _ForwardIterator2>) - -#if __cplusplus < 201103L - typedef typename iterator_traits<_ForwardIterator1>::value_type - _ValueType1; - typedef typename iterator_traits<_ForwardIterator2>::value_type - _ValueType2; - - __glibcxx_function_requires(_ConvertibleConcept<_ValueType1, - _ValueType2>) - __glibcxx_function_requires(_ConvertibleConcept<_ValueType2, - _ValueType1>) - - typedef typename iterator_traits<_ForwardIterator1>::reference - _ReferenceType1; - typedef typename iterator_traits<_ForwardIterator2>::reference - _ReferenceType2; - std::__iter_swap<__are_same<_ValueType1, _ValueType2>::__value - && __are_same<_ValueType1&, _ReferenceType1>::__value - && __are_same<_ValueType2&, _ReferenceType2>::__value>:: - iter_swap(__a, __b); -#else - // _GLIBCXX_RESOLVE_LIB_DEFECTS - // 187. iter_swap underspecified - swap(*__a, *__b); -#endif - } - - /** - * @brief Swap the elements of two sequences. - * @ingroup mutating_algorithms - * @param __first1 A forward iterator. - * @param __last1 A forward iterator. - * @param __first2 A forward iterator. - * @return An iterator equal to @p first2+(last1-first1). - * - * Swaps each element in the range @p [first1,last1) with the - * corresponding element in the range @p [first2,(last1-first1)). - * The ranges must not overlap. - */ - template - _GLIBCXX20_CONSTEXPR - _ForwardIterator2 - swap_ranges(_ForwardIterator1 __first1, _ForwardIterator1 __last1, - _ForwardIterator2 __first2) - { - // concept requirements - __glibcxx_function_requires(_Mutable_ForwardIteratorConcept< - _ForwardIterator1>) - __glibcxx_function_requires(_Mutable_ForwardIteratorConcept< - _ForwardIterator2>) - __glibcxx_requires_valid_range(__first1, __last1); - - for (; __first1 != __last1; ++__first1, (void)++__first2) - std::iter_swap(__first1, __first2); - return __first2; - } - - /** - * @brief This does what you think it does. - * @ingroup sorting_algorithms - * @param __a A thing of arbitrary type. - * @param __b Another thing of arbitrary type. - * @return The lesser of the parameters. - * - * This is the simple classic generic implementation. It will work on - * temporary expressions, since they are only evaluated once, unlike a - * preprocessor macro. - */ - template - _GLIBCXX14_CONSTEXPR - inline const _Tp& - min(const _Tp& __a, const _Tp& __b) - { - // concept requirements - __glibcxx_function_requires(_LessThanComparableConcept<_Tp>) - //return __b < __a ? __b : __a; - if (__b < __a) - return __b; - return __a; - } - - /** - * @brief This does what you think it does. - * @ingroup sorting_algorithms - * @param __a A thing of arbitrary type. - * @param __b Another thing of arbitrary type. - * @return The greater of the parameters. - * - * This is the simple classic generic implementation. It will work on - * temporary expressions, since they are only evaluated once, unlike a - * preprocessor macro. - */ - template - _GLIBCXX14_CONSTEXPR - inline const _Tp& - max(const _Tp& __a, const _Tp& __b) - { - // concept requirements - __glibcxx_function_requires(_LessThanComparableConcept<_Tp>) - //return __a < __b ? __b : __a; - if (__a < __b) - return __b; - return __a; - } - - /** - * @brief This does what you think it does. - * @ingroup sorting_algorithms - * @param __a A thing of arbitrary type. - * @param __b Another thing of arbitrary type. - * @param __comp A @link comparison_functors comparison functor@endlink. - * @return The lesser of the parameters. - * - * This will work on temporary expressions, since they are only evaluated - * once, unlike a preprocessor macro. - */ - template - _GLIBCXX14_CONSTEXPR - inline const _Tp& - min(const _Tp& __a, const _Tp& __b, _Compare __comp) - { - //return __comp(__b, __a) ? __b : __a; - if (__comp(__b, __a)) - return __b; - return __a; - } - - /** - * @brief This does what you think it does. - * @ingroup sorting_algorithms - * @param __a A thing of arbitrary type. - * @param __b Another thing of arbitrary type. - * @param __comp A @link comparison_functors comparison functor@endlink. - * @return The greater of the parameters. - * - * This will work on temporary expressions, since they are only evaluated - * once, unlike a preprocessor macro. - */ - template - _GLIBCXX14_CONSTEXPR - inline const _Tp& - max(const _Tp& __a, const _Tp& __b, _Compare __comp) - { - //return __comp(__a, __b) ? __b : __a; - if (__comp(__a, __b)) - return __b; - return __a; - } - - // Fallback implementation of the function in bits/stl_iterator.h used to - // remove the __normal_iterator wrapper. See copy, fill, ... - template - _GLIBCXX20_CONSTEXPR - inline _Iterator - __niter_base(_Iterator __it) - _GLIBCXX_NOEXCEPT_IF(std::is_nothrow_copy_constructible<_Iterator>::value) - { return __it; } - - template - _Ite - __niter_base(const ::__gnu_debug::_Safe_iterator<_Ite, _Seq, - std::random_access_iterator_tag>&); - - // Reverse the __niter_base transformation to get a - // __normal_iterator back again (this assumes that __normal_iterator - // is only used to wrap random access iterators, like pointers). - template - _GLIBCXX20_CONSTEXPR - inline _From - __niter_wrap(_From __from, _To __res) - { return __from + (__res - std::__niter_base(__from)); } - - // No need to wrap, iterator already has the right type. - template - _GLIBCXX20_CONSTEXPR - inline _Iterator - __niter_wrap(const _Iterator&, _Iterator __res) - { return __res; } - - // All of these auxiliary structs serve two purposes. (1) Replace - // calls to copy with memmove whenever possible. (Memmove, not memcpy, - // because the input and output ranges are permitted to overlap.) - // (2) If we're using random access iterators, then write the loop as - // a for loop with an explicit count. - - template - struct __copy_move - { - template - _GLIBCXX20_CONSTEXPR - static _OI - __copy_m(_II __first, _II __last, _OI __result) - { - for (; __first != __last; ++__result, (void)++__first) - *__result = *__first; - return __result; - } - }; - -#if __cplusplus >= 201103L - template - struct __copy_move - { - template - _GLIBCXX20_CONSTEXPR - static _OI - __copy_m(_II __first, _II __last, _OI __result) - { - for (; __first != __last; ++__result, (void)++__first) - *__result = std::move(*__first); - return __result; - } - }; -#endif - - template<> - struct __copy_move - { - template - _GLIBCXX20_CONSTEXPR - static _OI - __copy_m(_II __first, _II __last, _OI __result) - { - typedef typename iterator_traits<_II>::difference_type _Distance; - for(_Distance __n = __last - __first; __n > 0; --__n) - { - *__result = *__first; - ++__first; - ++__result; - } - return __result; - } - - template - static void - __assign_one(_Tp* __to, _Up* __from) - { *__to = *__from; } - }; - -#if __cplusplus >= 201103L - template<> - struct __copy_move - { - template - _GLIBCXX20_CONSTEXPR - static _OI - __copy_m(_II __first, _II __last, _OI __result) - { - typedef typename iterator_traits<_II>::difference_type _Distance; - for(_Distance __n = __last - __first; __n > 0; --__n) - { - *__result = std::move(*__first); - ++__first; - ++__result; - } - return __result; - } - - template - static void - __assign_one(_Tp* __to, _Up* __from) - { *__to = std::move(*__from); } - }; -#endif - - template - struct __copy_move<_IsMove, true, random_access_iterator_tag> - { - template - _GLIBCXX20_CONSTEXPR - static _Up* - __copy_m(_Tp* __first, _Tp* __last, _Up* __result) - { - const ptrdiff_t _Num = __last - __first; - if (__builtin_expect(_Num > 1, true)) - __builtin_memmove(__result, __first, sizeof(_Tp) * _Num); - else if (_Num == 1) - std::__copy_move<_IsMove, false, random_access_iterator_tag>:: - __assign_one(__result, __first); - return __result + _Num; - } - }; - -_GLIBCXX_BEGIN_NAMESPACE_CONTAINER - - template - struct _Deque_iterator; - - struct _Bit_iterator; - -_GLIBCXX_END_NAMESPACE_CONTAINER - -#if _GLIBCXX_HOSTED - // Helpers for streambuf iterators (either istream or ostream). - // NB: avoid including , relatively large. - template - struct char_traits; - - template - class istreambuf_iterator; - - template - class ostreambuf_iterator; - - template - typename __gnu_cxx::__enable_if<__is_char<_CharT>::__value, - ostreambuf_iterator<_CharT, char_traits<_CharT> > >::__type - __copy_move_a2(_CharT*, _CharT*, - ostreambuf_iterator<_CharT, char_traits<_CharT> >); - - template - typename __gnu_cxx::__enable_if<__is_char<_CharT>::__value, - ostreambuf_iterator<_CharT, char_traits<_CharT> > >::__type - __copy_move_a2(const _CharT*, const _CharT*, - ostreambuf_iterator<_CharT, char_traits<_CharT> >); - - template - typename __gnu_cxx::__enable_if<__is_char<_CharT>::__value, - _CharT*>::__type - __copy_move_a2(istreambuf_iterator<_CharT, char_traits<_CharT> >, - istreambuf_iterator<_CharT, char_traits<_CharT> >, _CharT*); - - template - typename __gnu_cxx::__enable_if< - __is_char<_CharT>::__value, - _GLIBCXX_STD_C::_Deque_iterator<_CharT, _CharT&, _CharT*> >::__type - __copy_move_a2( - istreambuf_iterator<_CharT, char_traits<_CharT> >, - istreambuf_iterator<_CharT, char_traits<_CharT> >, - _GLIBCXX_STD_C::_Deque_iterator<_CharT, _CharT&, _CharT*>); -#endif // HOSTED - - template - _GLIBCXX20_CONSTEXPR - inline _OI - __copy_move_a2(_II __first, _II __last, _OI __result) - { - typedef typename iterator_traits<_II>::iterator_category _Category; -#ifdef __cpp_lib_is_constant_evaluated - if (std::is_constant_evaluated()) - return std::__copy_move<_IsMove, false, _Category>:: - __copy_m(__first, __last, __result); -#endif - return std::__copy_move<_IsMove, __memcpyable<_OI, _II>::__value, - _Category>::__copy_m(__first, __last, __result); - } - - template - _OI - __copy_move_a1(_GLIBCXX_STD_C::_Deque_iterator<_Tp, _Ref, _Ptr>, - _GLIBCXX_STD_C::_Deque_iterator<_Tp, _Ref, _Ptr>, - _OI); - - template - _GLIBCXX_STD_C::_Deque_iterator<_OTp, _OTp&, _OTp*> - __copy_move_a1(_GLIBCXX_STD_C::_Deque_iterator<_ITp, _IRef, _IPtr>, - _GLIBCXX_STD_C::_Deque_iterator<_ITp, _IRef, _IPtr>, - _GLIBCXX_STD_C::_Deque_iterator<_OTp, _OTp&, _OTp*>); - - template - typename __gnu_cxx::__enable_if< - __is_random_access_iter<_II>::__value, - _GLIBCXX_STD_C::_Deque_iterator<_Tp, _Tp&, _Tp*> >::__type - __copy_move_a1(_II, _II, _GLIBCXX_STD_C::_Deque_iterator<_Tp, _Tp&, _Tp*>); - - template - _GLIBCXX20_CONSTEXPR - inline _OI - __copy_move_a1(_II __first, _II __last, _OI __result) - { return std::__copy_move_a2<_IsMove>(__first, __last, __result); } - - template - _GLIBCXX20_CONSTEXPR - inline _OI - __copy_move_a(_II __first, _II __last, _OI __result) - { - return std::__niter_wrap(__result, - std::__copy_move_a1<_IsMove>(std::__niter_base(__first), - std::__niter_base(__last), - std::__niter_base(__result))); - } - - template - _OI - __copy_move_a(const ::__gnu_debug::_Safe_iterator<_Ite, _Seq, _Cat>&, - const ::__gnu_debug::_Safe_iterator<_Ite, _Seq, _Cat>&, - _OI); - - template - __gnu_debug::_Safe_iterator<_Ite, _Seq, _Cat> - __copy_move_a(_II, _II, - const ::__gnu_debug::_Safe_iterator<_Ite, _Seq, _Cat>&); - - template - ::__gnu_debug::_Safe_iterator<_OIte, _OSeq, _OCat> - __copy_move_a(const ::__gnu_debug::_Safe_iterator<_IIte, _ISeq, _ICat>&, - const ::__gnu_debug::_Safe_iterator<_IIte, _ISeq, _ICat>&, - const ::__gnu_debug::_Safe_iterator<_OIte, _OSeq, _OCat>&); - - template - _GLIBCXX20_CONSTEXPR - _OutputIterator - __copy_n_a(_InputIterator __first, _Size __n, _OutputIterator __result, - bool) - { - if (__n > 0) - { - while (true) - { - *__result = *__first; - ++__result; - if (--__n > 0) - ++__first; - else - break; - } - } - return __result; - } - -#if _GLIBCXX_HOSTED - template - typename __gnu_cxx::__enable_if< - __is_char<_CharT>::__value, _CharT*>::__type - __copy_n_a(istreambuf_iterator<_CharT, char_traits<_CharT> >, - _Size, _CharT*, bool); - - template - typename __gnu_cxx::__enable_if< - __is_char<_CharT>::__value, - _GLIBCXX_STD_C::_Deque_iterator<_CharT, _CharT&, _CharT*> >::__type - __copy_n_a(istreambuf_iterator<_CharT, char_traits<_CharT> >, _Size, - _GLIBCXX_STD_C::_Deque_iterator<_CharT, _CharT&, _CharT*>, - bool); -#endif - - /** - * @brief Copies the range [first,last) into result. - * @ingroup mutating_algorithms - * @param __first An input iterator. - * @param __last An input iterator. - * @param __result An output iterator. - * @return result + (last - first) - * - * This inline function will boil down to a call to @c memmove whenever - * possible. Failing that, if random access iterators are passed, then the - * loop count will be known (and therefore a candidate for compiler - * optimizations such as unrolling). Result may not be contained within - * [first,last); the copy_backward function should be used instead. - * - * Note that the end of the output range is permitted to be contained - * within [first,last). - */ - template - _GLIBCXX20_CONSTEXPR - inline _OI - copy(_II __first, _II __last, _OI __result) - { - // concept requirements - __glibcxx_function_requires(_InputIteratorConcept<_II>) - __glibcxx_function_requires(_OutputIteratorConcept<_OI, - typename iterator_traits<_II>::reference>) - __glibcxx_requires_can_increment_range(__first, __last, __result); - - return std::__copy_move_a<__is_move_iterator<_II>::__value> - (std::__miter_base(__first), std::__miter_base(__last), __result); - } - -#if __cplusplus >= 201103L - /** - * @brief Moves the range [first,last) into result. - * @ingroup mutating_algorithms - * @param __first An input iterator. - * @param __last An input iterator. - * @param __result An output iterator. - * @return result + (last - first) - * - * This inline function will boil down to a call to @c memmove whenever - * possible. Failing that, if random access iterators are passed, then the - * loop count will be known (and therefore a candidate for compiler - * optimizations such as unrolling). Result may not be contained within - * [first,last); the move_backward function should be used instead. - * - * Note that the end of the output range is permitted to be contained - * within [first,last). - */ - template - _GLIBCXX20_CONSTEXPR - inline _OI - move(_II __first, _II __last, _OI __result) - { - // concept requirements - __glibcxx_function_requires(_InputIteratorConcept<_II>) - __glibcxx_function_requires(_OutputIteratorConcept<_OI, - typename iterator_traits<_II>::value_type&&>) - __glibcxx_requires_can_increment_range(__first, __last, __result); - - return std::__copy_move_a(std::__miter_base(__first), - std::__miter_base(__last), __result); - } - -#define _GLIBCXX_MOVE3(_Tp, _Up, _Vp) std::move(_Tp, _Up, _Vp) -#else -#define _GLIBCXX_MOVE3(_Tp, _Up, _Vp) std::copy(_Tp, _Up, _Vp) -#endif - - template - struct __copy_move_backward - { - template - _GLIBCXX20_CONSTEXPR - static _BI2 - __copy_move_b(_BI1 __first, _BI1 __last, _BI2 __result) - { - while (__first != __last) - *--__result = *--__last; - return __result; - } - }; - -#if __cplusplus >= 201103L - template - struct __copy_move_backward - { - template - _GLIBCXX20_CONSTEXPR - static _BI2 - __copy_move_b(_BI1 __first, _BI1 __last, _BI2 __result) - { - while (__first != __last) - *--__result = std::move(*--__last); - return __result; - } - }; -#endif - - template<> - struct __copy_move_backward - { - template - _GLIBCXX20_CONSTEXPR - static _BI2 - __copy_move_b(_BI1 __first, _BI1 __last, _BI2 __result) - { - typename iterator_traits<_BI1>::difference_type - __n = __last - __first; - for (; __n > 0; --__n) - *--__result = *--__last; - return __result; - } - }; - -#if __cplusplus >= 201103L - template<> - struct __copy_move_backward - { - template - _GLIBCXX20_CONSTEXPR - static _BI2 - __copy_move_b(_BI1 __first, _BI1 __last, _BI2 __result) - { - typename iterator_traits<_BI1>::difference_type - __n = __last - __first; - for (; __n > 0; --__n) - *--__result = std::move(*--__last); - return __result; - } - }; -#endif - - template - struct __copy_move_backward<_IsMove, true, random_access_iterator_tag> - { - template - _GLIBCXX20_CONSTEXPR - static _Up* - __copy_move_b(_Tp* __first, _Tp* __last, _Up* __result) - { - const ptrdiff_t _Num = __last - __first; - if (__builtin_expect(_Num > 1, true)) - __builtin_memmove(__result - _Num, __first, sizeof(_Tp) * _Num); - else if (_Num == 1) - std::__copy_move<_IsMove, false, random_access_iterator_tag>:: - __assign_one(__result - 1, __first); - return __result - _Num; - } - }; - - template - _GLIBCXX20_CONSTEXPR - inline _BI2 - __copy_move_backward_a2(_BI1 __first, _BI1 __last, _BI2 __result) - { - typedef typename iterator_traits<_BI1>::iterator_category _Category; -#ifdef __cpp_lib_is_constant_evaluated - if (std::is_constant_evaluated()) - return std::__copy_move_backward<_IsMove, false, _Category>:: - __copy_move_b(__first, __last, __result); -#endif - return std::__copy_move_backward<_IsMove, - __memcpyable<_BI2, _BI1>::__value, - _Category>::__copy_move_b(__first, - __last, - __result); - } - - template - _GLIBCXX20_CONSTEXPR - inline _BI2 - __copy_move_backward_a1(_BI1 __first, _BI1 __last, _BI2 __result) - { return std::__copy_move_backward_a2<_IsMove>(__first, __last, __result); } - - template - _OI - __copy_move_backward_a1(_GLIBCXX_STD_C::_Deque_iterator<_Tp, _Ref, _Ptr>, - _GLIBCXX_STD_C::_Deque_iterator<_Tp, _Ref, _Ptr>, - _OI); - - template - _GLIBCXX_STD_C::_Deque_iterator<_OTp, _OTp&, _OTp*> - __copy_move_backward_a1( - _GLIBCXX_STD_C::_Deque_iterator<_ITp, _IRef, _IPtr>, - _GLIBCXX_STD_C::_Deque_iterator<_ITp, _IRef, _IPtr>, - _GLIBCXX_STD_C::_Deque_iterator<_OTp, _OTp&, _OTp*>); - - template - typename __gnu_cxx::__enable_if< - __is_random_access_iter<_II>::__value, - _GLIBCXX_STD_C::_Deque_iterator<_Tp, _Tp&, _Tp*> >::__type - __copy_move_backward_a1(_II, _II, - _GLIBCXX_STD_C::_Deque_iterator<_Tp, _Tp&, _Tp*>); - - template - _GLIBCXX20_CONSTEXPR - inline _OI - __copy_move_backward_a(_II __first, _II __last, _OI __result) - { - return std::__niter_wrap(__result, - std::__copy_move_backward_a1<_IsMove> - (std::__niter_base(__first), std::__niter_base(__last), - std::__niter_base(__result))); - } - - template - _OI - __copy_move_backward_a( - const ::__gnu_debug::_Safe_iterator<_Ite, _Seq, _Cat>&, - const ::__gnu_debug::_Safe_iterator<_Ite, _Seq, _Cat>&, - _OI); - - template - __gnu_debug::_Safe_iterator<_Ite, _Seq, _Cat> - __copy_move_backward_a(_II, _II, - const ::__gnu_debug::_Safe_iterator<_Ite, _Seq, _Cat>&); - - template - ::__gnu_debug::_Safe_iterator<_OIte, _OSeq, _OCat> - __copy_move_backward_a( - const ::__gnu_debug::_Safe_iterator<_IIte, _ISeq, _ICat>&, - const ::__gnu_debug::_Safe_iterator<_IIte, _ISeq, _ICat>&, - const ::__gnu_debug::_Safe_iterator<_OIte, _OSeq, _OCat>&); - - /** - * @brief Copies the range [first,last) into result. - * @ingroup mutating_algorithms - * @param __first A bidirectional iterator. - * @param __last A bidirectional iterator. - * @param __result A bidirectional iterator. - * @return result - (last - first) - * - * The function has the same effect as copy, but starts at the end of the - * range and works its way to the start, returning the start of the result. - * This inline function will boil down to a call to @c memmove whenever - * possible. Failing that, if random access iterators are passed, then the - * loop count will be known (and therefore a candidate for compiler - * optimizations such as unrolling). - * - * Result may not be in the range (first,last]. Use copy instead. Note - * that the start of the output range may overlap [first,last). - */ - template - _GLIBCXX20_CONSTEXPR - inline _BI2 - copy_backward(_BI1 __first, _BI1 __last, _BI2 __result) - { - // concept requirements - __glibcxx_function_requires(_BidirectionalIteratorConcept<_BI1>) - __glibcxx_function_requires(_Mutable_BidirectionalIteratorConcept<_BI2>) - __glibcxx_function_requires(_OutputIteratorConcept<_BI2, - typename iterator_traits<_BI1>::reference>) - __glibcxx_requires_can_decrement_range(__first, __last, __result); - - return std::__copy_move_backward_a<__is_move_iterator<_BI1>::__value> - (std::__miter_base(__first), std::__miter_base(__last), __result); - } - -#if __cplusplus >= 201103L - /** - * @brief Moves the range [first,last) into result. - * @ingroup mutating_algorithms - * @param __first A bidirectional iterator. - * @param __last A bidirectional iterator. - * @param __result A bidirectional iterator. - * @return result - (last - first) - * - * The function has the same effect as move, but starts at the end of the - * range and works its way to the start, returning the start of the result. - * This inline function will boil down to a call to @c memmove whenever - * possible. Failing that, if random access iterators are passed, then the - * loop count will be known (and therefore a candidate for compiler - * optimizations such as unrolling). - * - * Result may not be in the range (first,last]. Use move instead. Note - * that the start of the output range may overlap [first,last). - */ - template - _GLIBCXX20_CONSTEXPR - inline _BI2 - move_backward(_BI1 __first, _BI1 __last, _BI2 __result) - { - // concept requirements - __glibcxx_function_requires(_BidirectionalIteratorConcept<_BI1>) - __glibcxx_function_requires(_Mutable_BidirectionalIteratorConcept<_BI2>) - __glibcxx_function_requires(_OutputIteratorConcept<_BI2, - typename iterator_traits<_BI1>::value_type&&>) - __glibcxx_requires_can_decrement_range(__first, __last, __result); - - return std::__copy_move_backward_a(std::__miter_base(__first), - std::__miter_base(__last), - __result); - } - -#define _GLIBCXX_MOVE_BACKWARD3(_Tp, _Up, _Vp) std::move_backward(_Tp, _Up, _Vp) -#else -#define _GLIBCXX_MOVE_BACKWARD3(_Tp, _Up, _Vp) std::copy_backward(_Tp, _Up, _Vp) -#endif - - template - _GLIBCXX20_CONSTEXPR - inline typename - __gnu_cxx::__enable_if::__value, void>::__type - __fill_a1(_ForwardIterator __first, _ForwardIterator __last, - const _Tp& __value) - { - for (; __first != __last; ++__first) - *__first = __value; - } - - template - _GLIBCXX20_CONSTEXPR - inline typename - __gnu_cxx::__enable_if<__is_scalar<_Tp>::__value, void>::__type - __fill_a1(_ForwardIterator __first, _ForwardIterator __last, - const _Tp& __value) - { - const _Tp __tmp = __value; - for (; __first != __last; ++__first) - *__first = __tmp; - } - - // Specialization: for char types we can use memset. - template - _GLIBCXX20_CONSTEXPR - inline typename - __gnu_cxx::__enable_if<__is_byte<_Tp>::__value, void>::__type - __fill_a1(_Tp* __first, _Tp* __last, const _Tp& __c) - { - const _Tp __tmp = __c; -#if __cpp_lib_is_constant_evaluated - if (std::is_constant_evaluated()) - { - for (; __first != __last; ++__first) - *__first = __tmp; - return; - } -#endif - if (const size_t __len = __last - __first) - __builtin_memset(__first, static_cast(__tmp), __len); - } - - template - _GLIBCXX20_CONSTEXPR - inline void - __fill_a1(::__gnu_cxx::__normal_iterator<_Ite, _Cont> __first, - ::__gnu_cxx::__normal_iterator<_Ite, _Cont> __last, - const _Tp& __value) - { std::__fill_a1(__first.base(), __last.base(), __value); } - - template - void - __fill_a1(const _GLIBCXX_STD_C::_Deque_iterator<_Tp, _Tp&, _Tp*>&, - const _GLIBCXX_STD_C::_Deque_iterator<_Tp, _Tp&, _Tp*>&, - const _VTp&); - - _GLIBCXX20_CONSTEXPR - void - __fill_a1(_GLIBCXX_STD_C::_Bit_iterator, _GLIBCXX_STD_C::_Bit_iterator, - const bool&); - - template - _GLIBCXX20_CONSTEXPR - inline void - __fill_a(_FIte __first, _FIte __last, const _Tp& __value) - { std::__fill_a1(__first, __last, __value); } - - template - void - __fill_a(const ::__gnu_debug::_Safe_iterator<_Ite, _Seq, _Cat>&, - const ::__gnu_debug::_Safe_iterator<_Ite, _Seq, _Cat>&, - const _Tp&); - - /** - * @brief Fills the range [first,last) with copies of value. - * @ingroup mutating_algorithms - * @param __first A forward iterator. - * @param __last A forward iterator. - * @param __value A reference-to-const of arbitrary type. - * @return Nothing. - * - * This function fills a range with copies of the same value. For char - * types filling contiguous areas of memory, this becomes an inline call - * to @c memset or @c wmemset. - */ - template - _GLIBCXX20_CONSTEXPR - inline void - fill(_ForwardIterator __first, _ForwardIterator __last, const _Tp& __value) - { - // concept requirements - __glibcxx_function_requires(_Mutable_ForwardIteratorConcept< - _ForwardIterator>) - __glibcxx_requires_valid_range(__first, __last); - - std::__fill_a(__first, __last, __value); - } - - // Used by fill_n, generate_n, etc. to convert _Size to an integral type: - inline _GLIBCXX_CONSTEXPR int - __size_to_integer(int __n) { return __n; } - inline _GLIBCXX_CONSTEXPR unsigned - __size_to_integer(unsigned __n) { return __n; } - inline _GLIBCXX_CONSTEXPR long - __size_to_integer(long __n) { return __n; } - inline _GLIBCXX_CONSTEXPR unsigned long - __size_to_integer(unsigned long __n) { return __n; } - inline _GLIBCXX_CONSTEXPR long long - __size_to_integer(long long __n) { return __n; } - inline _GLIBCXX_CONSTEXPR unsigned long long - __size_to_integer(unsigned long long __n) { return __n; } - -#if defined(__GLIBCXX_TYPE_INT_N_0) - __extension__ inline _GLIBCXX_CONSTEXPR __GLIBCXX_TYPE_INT_N_0 - __size_to_integer(__GLIBCXX_TYPE_INT_N_0 __n) { return __n; } - __extension__ inline _GLIBCXX_CONSTEXPR unsigned __GLIBCXX_TYPE_INT_N_0 - __size_to_integer(unsigned __GLIBCXX_TYPE_INT_N_0 __n) { return __n; } -#endif -#if defined(__GLIBCXX_TYPE_INT_N_1) - __extension__ inline _GLIBCXX_CONSTEXPR __GLIBCXX_TYPE_INT_N_1 - __size_to_integer(__GLIBCXX_TYPE_INT_N_1 __n) { return __n; } - __extension__ inline _GLIBCXX_CONSTEXPR unsigned __GLIBCXX_TYPE_INT_N_1 - __size_to_integer(unsigned __GLIBCXX_TYPE_INT_N_1 __n) { return __n; } -#endif -#if defined(__GLIBCXX_TYPE_INT_N_2) - __extension__ inline _GLIBCXX_CONSTEXPR __GLIBCXX_TYPE_INT_N_2 - __size_to_integer(__GLIBCXX_TYPE_INT_N_2 __n) { return __n; } - __extension__ inline _GLIBCXX_CONSTEXPR unsigned __GLIBCXX_TYPE_INT_N_2 - __size_to_integer(unsigned __GLIBCXX_TYPE_INT_N_2 __n) { return __n; } -#endif -#if defined(__GLIBCXX_TYPE_INT_N_3) - __extension__ inline _GLIBCXX_CONSTEXPR unsigned __GLIBCXX_TYPE_INT_N_3 - __size_to_integer(__GLIBCXX_TYPE_INT_N_3 __n) { return __n; } - __extension__ inline _GLIBCXX_CONSTEXPR __GLIBCXX_TYPE_INT_N_3 - __size_to_integer(unsigned __GLIBCXX_TYPE_INT_N_3 __n) { return __n; } -#endif - - inline _GLIBCXX_CONSTEXPR long long - __size_to_integer(float __n) { return (long long)__n; } - inline _GLIBCXX_CONSTEXPR long long - __size_to_integer(double __n) { return (long long)__n; } - inline _GLIBCXX_CONSTEXPR long long - __size_to_integer(long double __n) { return (long long)__n; } -#if !defined(__STRICT_ANSI__) && defined(_GLIBCXX_USE_FLOAT128) - __extension__ inline _GLIBCXX_CONSTEXPR long long - __size_to_integer(__float128 __n) { return (long long)__n; } -#endif - - template - _GLIBCXX20_CONSTEXPR - inline typename - __gnu_cxx::__enable_if::__value, _OutputIterator>::__type - __fill_n_a1(_OutputIterator __first, _Size __n, const _Tp& __value) - { - for (; __n > 0; --__n, (void) ++__first) - *__first = __value; - return __first; - } - - template - _GLIBCXX20_CONSTEXPR - inline typename - __gnu_cxx::__enable_if<__is_scalar<_Tp>::__value, _OutputIterator>::__type - __fill_n_a1(_OutputIterator __first, _Size __n, const _Tp& __value) - { - const _Tp __tmp = __value; - for (; __n > 0; --__n, (void) ++__first) - *__first = __tmp; - return __first; - } - - template - ::__gnu_debug::_Safe_iterator<_Ite, _Seq, _Cat> - __fill_n_a(const ::__gnu_debug::_Safe_iterator<_Ite, _Seq, _Cat>& __first, - _Size __n, const _Tp& __value, - std::input_iterator_tag); - - template - _GLIBCXX20_CONSTEXPR - inline _OutputIterator - __fill_n_a(_OutputIterator __first, _Size __n, const _Tp& __value, - std::output_iterator_tag) - { -#if __cplusplus >= 201103L - static_assert(is_integral<_Size>{}, "fill_n must pass integral size"); -#endif - return __fill_n_a1(__first, __n, __value); - } - - template - _GLIBCXX20_CONSTEXPR - inline _OutputIterator - __fill_n_a(_OutputIterator __first, _Size __n, const _Tp& __value, - std::input_iterator_tag) - { -#if __cplusplus >= 201103L - static_assert(is_integral<_Size>{}, "fill_n must pass integral size"); -#endif - return __fill_n_a1(__first, __n, __value); - } - - template - _GLIBCXX20_CONSTEXPR - inline _OutputIterator - __fill_n_a(_OutputIterator __first, _Size __n, const _Tp& __value, - std::random_access_iterator_tag) - { -#if __cplusplus >= 201103L - static_assert(is_integral<_Size>{}, "fill_n must pass integral size"); -#endif - if (__n <= 0) - return __first; - - __glibcxx_requires_can_increment(__first, __n); - - std::__fill_a(__first, __first + __n, __value); - return __first + __n; - } - - /** - * @brief Fills the range [first,first+n) with copies of value. - * @ingroup mutating_algorithms - * @param __first An output iterator. - * @param __n The count of copies to perform. - * @param __value A reference-to-const of arbitrary type. - * @return The iterator at first+n. - * - * This function fills a range with copies of the same value. For char - * types filling contiguous areas of memory, this becomes an inline call - * to @c memset or @c wmemset. - * - * If @p __n is negative, the function does nothing. - */ - // _GLIBCXX_RESOLVE_LIB_DEFECTS - // DR 865. More algorithms that throw away information - // DR 426. search_n(), fill_n(), and generate_n() with negative n - template - _GLIBCXX20_CONSTEXPR - inline _OI - fill_n(_OI __first, _Size __n, const _Tp& __value) - { - // concept requirements - __glibcxx_function_requires(_OutputIteratorConcept<_OI, const _Tp&>) - - return std::__fill_n_a(__first, std::__size_to_integer(__n), __value, - std::__iterator_category(__first)); - } - - template - struct __equal - { - template - _GLIBCXX20_CONSTEXPR - static bool - equal(_II1 __first1, _II1 __last1, _II2 __first2) - { - for (; __first1 != __last1; ++__first1, (void) ++__first2) - if (!(*__first1 == *__first2)) - return false; - return true; - } - }; - - template<> - struct __equal - { - template - _GLIBCXX20_CONSTEXPR - static bool - equal(const _Tp* __first1, const _Tp* __last1, const _Tp* __first2) - { - if (const size_t __len = (__last1 - __first1)) - return !std::__memcmp(__first1, __first2, __len); - return true; - } - }; - - template - typename __gnu_cxx::__enable_if< - __is_random_access_iter<_II>::__value, bool>::__type - __equal_aux1(_GLIBCXX_STD_C::_Deque_iterator<_Tp, _Ref, _Ptr>, - _GLIBCXX_STD_C::_Deque_iterator<_Tp, _Ref, _Ptr>, - _II); - - template - bool - __equal_aux1(_GLIBCXX_STD_C::_Deque_iterator<_Tp1, _Ref1, _Ptr1>, - _GLIBCXX_STD_C::_Deque_iterator<_Tp1, _Ref1, _Ptr1>, - _GLIBCXX_STD_C::_Deque_iterator<_Tp2, _Ref2, _Ptr2>); - - template - typename __gnu_cxx::__enable_if< - __is_random_access_iter<_II>::__value, bool>::__type - __equal_aux1(_II, _II, - _GLIBCXX_STD_C::_Deque_iterator<_Tp, _Ref, _Ptr>); - - template - _GLIBCXX20_CONSTEXPR - inline bool - __equal_aux1(_II1 __first1, _II1 __last1, _II2 __first2) - { - typedef typename iterator_traits<_II1>::value_type _ValueType1; - const bool __simple = ((__is_integer<_ValueType1>::__value - || __is_pointer<_ValueType1>::__value) - && __memcmpable<_II1, _II2>::__value); - return std::__equal<__simple>::equal(__first1, __last1, __first2); - } - - template - _GLIBCXX20_CONSTEXPR - inline bool - __equal_aux(_II1 __first1, _II1 __last1, _II2 __first2) - { - return std::__equal_aux1(std::__niter_base(__first1), - std::__niter_base(__last1), - std::__niter_base(__first2)); - } - - template - bool - __equal_aux(const ::__gnu_debug::_Safe_iterator<_II1, _Seq1, _Cat1>&, - const ::__gnu_debug::_Safe_iterator<_II1, _Seq1, _Cat1>&, - _II2); - - template - bool - __equal_aux(_II1, _II1, - const ::__gnu_debug::_Safe_iterator<_II2, _Seq2, _Cat2>&); - - template - bool - __equal_aux(const ::__gnu_debug::_Safe_iterator<_II1, _Seq1, _Cat1>&, - const ::__gnu_debug::_Safe_iterator<_II1, _Seq1, _Cat1>&, - const ::__gnu_debug::_Safe_iterator<_II2, _Seq2, _Cat2>&); - - template - struct __lc_rai - { - template - _GLIBCXX20_CONSTEXPR - static _II1 - __newlast1(_II1, _II1 __last1, _II2, _II2) - { return __last1; } - - template - _GLIBCXX20_CONSTEXPR - static bool - __cnd2(_II __first, _II __last) - { return __first != __last; } - }; - - template<> - struct __lc_rai - { - template - _GLIBCXX20_CONSTEXPR - static _RAI1 - __newlast1(_RAI1 __first1, _RAI1 __last1, - _RAI2 __first2, _RAI2 __last2) - { - const typename iterator_traits<_RAI1>::difference_type - __diff1 = __last1 - __first1; - const typename iterator_traits<_RAI2>::difference_type - __diff2 = __last2 - __first2; - return __diff2 < __diff1 ? __first1 + __diff2 : __last1; - } - - template - static _GLIBCXX20_CONSTEXPR bool - __cnd2(_RAI, _RAI) - { return true; } - }; - - template - _GLIBCXX20_CONSTEXPR - bool - __lexicographical_compare_impl(_II1 __first1, _II1 __last1, - _II2 __first2, _II2 __last2, - _Compare __comp) - { - typedef typename iterator_traits<_II1>::iterator_category _Category1; - typedef typename iterator_traits<_II2>::iterator_category _Category2; - typedef std::__lc_rai<_Category1, _Category2> __rai_type; - - __last1 = __rai_type::__newlast1(__first1, __last1, __first2, __last2); - for (; __first1 != __last1 && __rai_type::__cnd2(__first2, __last2); - ++__first1, (void)++__first2) - { - if (__comp(__first1, __first2)) - return true; - if (__comp(__first2, __first1)) - return false; - } - return __first1 == __last1 && __first2 != __last2; - } - - template - struct __lexicographical_compare - { - template - _GLIBCXX20_CONSTEXPR - static bool - __lc(_II1 __first1, _II1 __last1, _II2 __first2, _II2 __last2) - { - using __gnu_cxx::__ops::__iter_less_iter; - return std::__lexicographical_compare_impl(__first1, __last1, - __first2, __last2, - __iter_less_iter()); - } - - template - _GLIBCXX20_CONSTEXPR - static int - __3way(_II1 __first1, _II1 __last1, _II2 __first2, _II2 __last2) - { - while (__first1 != __last1) - { - if (__first2 == __last2) - return +1; - if (*__first1 < *__first2) - return -1; - if (*__first2 < *__first1) - return +1; - ++__first1; - ++__first2; - } - return int(__first2 == __last2) - 1; - } - }; - - template<> - struct __lexicographical_compare - { - template - _GLIBCXX20_CONSTEXPR - static bool - __lc(const _Tp* __first1, const _Tp* __last1, - const _Up* __first2, const _Up* __last2) - { return __3way(__first1, __last1, __first2, __last2) < 0; } - - template - _GLIBCXX20_CONSTEXPR - static ptrdiff_t - __3way(const _Tp* __first1, const _Tp* __last1, - const _Up* __first2, const _Up* __last2) - { - const size_t __len1 = __last1 - __first1; - const size_t __len2 = __last2 - __first2; - if (const size_t __len = std::min(__len1, __len2)) - if (int __result = std::__memcmp(__first1, __first2, __len)) - return __result; - return ptrdiff_t(__len1 - __len2); - } - }; - - template - _GLIBCXX20_CONSTEXPR - inline bool - __lexicographical_compare_aux1(_II1 __first1, _II1 __last1, - _II2 __first2, _II2 __last2) - { - typedef typename iterator_traits<_II1>::value_type _ValueType1; - typedef typename iterator_traits<_II2>::value_type _ValueType2; - const bool __simple = - (__is_memcmp_ordered_with<_ValueType1, _ValueType2>::__value - && __is_pointer<_II1>::__value - && __is_pointer<_II2>::__value -#if __cplusplus > 201703L && __cpp_lib_concepts - // For C++20 iterator_traits::value_type is non-volatile - // so __is_byte could be true, but we can't use memcmp with - // volatile data. - && !is_volatile_v>> - && !is_volatile_v>> -#endif - ); - - return std::__lexicographical_compare<__simple>::__lc(__first1, __last1, - __first2, __last2); - } - - template - bool - __lexicographical_compare_aux1( - _GLIBCXX_STD_C::_Deque_iterator<_Tp1, _Ref1, _Ptr1>, - _GLIBCXX_STD_C::_Deque_iterator<_Tp1, _Ref1, _Ptr1>, - _Tp2*, _Tp2*); - - template - bool - __lexicographical_compare_aux1(_Tp1*, _Tp1*, - _GLIBCXX_STD_C::_Deque_iterator<_Tp2, _Ref2, _Ptr2>, - _GLIBCXX_STD_C::_Deque_iterator<_Tp2, _Ref2, _Ptr2>); - - template - bool - __lexicographical_compare_aux1( - _GLIBCXX_STD_C::_Deque_iterator<_Tp1, _Ref1, _Ptr1>, - _GLIBCXX_STD_C::_Deque_iterator<_Tp1, _Ref1, _Ptr1>, - _GLIBCXX_STD_C::_Deque_iterator<_Tp2, _Ref2, _Ptr2>, - _GLIBCXX_STD_C::_Deque_iterator<_Tp2, _Ref2, _Ptr2>); - - template - _GLIBCXX20_CONSTEXPR - inline bool - __lexicographical_compare_aux(_II1 __first1, _II1 __last1, - _II2 __first2, _II2 __last2) - { - return std::__lexicographical_compare_aux1(std::__niter_base(__first1), - std::__niter_base(__last1), - std::__niter_base(__first2), - std::__niter_base(__last2)); - } - - template - bool - __lexicographical_compare_aux( - const ::__gnu_debug::_Safe_iterator<_Iter1, _Seq1, _Cat1>&, - const ::__gnu_debug::_Safe_iterator<_Iter1, _Seq1, _Cat1>&, - _II2, _II2); - - template - bool - __lexicographical_compare_aux( - _II1, _II1, - const ::__gnu_debug::_Safe_iterator<_Iter2, _Seq2, _Cat2>&, - const ::__gnu_debug::_Safe_iterator<_Iter2, _Seq2, _Cat2>&); - - template - bool - __lexicographical_compare_aux( - const ::__gnu_debug::_Safe_iterator<_Iter1, _Seq1, _Cat1>&, - const ::__gnu_debug::_Safe_iterator<_Iter1, _Seq1, _Cat1>&, - const ::__gnu_debug::_Safe_iterator<_Iter2, _Seq2, _Cat2>&, - const ::__gnu_debug::_Safe_iterator<_Iter2, _Seq2, _Cat2>&); - - template - _GLIBCXX20_CONSTEXPR - _ForwardIterator - __lower_bound(_ForwardIterator __first, _ForwardIterator __last, - const _Tp& __val, _Compare __comp) - { - typedef typename iterator_traits<_ForwardIterator>::difference_type - _DistanceType; - - _DistanceType __len = std::distance(__first, __last); - - while (__len > 0) - { - _DistanceType __half = __len >> 1; - _ForwardIterator __middle = __first; - std::advance(__middle, __half); - if (__comp(__middle, __val)) - { - __first = __middle; - ++__first; - __len = __len - __half - 1; - } - else - __len = __half; - } - return __first; - } - - /** - * @brief Finds the first position in which @a val could be inserted - * without changing the ordering. - * @param __first An iterator. - * @param __last Another iterator. - * @param __val The search term. - * @return An iterator pointing to the first element not less - * than @a val, or end() if every element is less than - * @a val. - * @ingroup binary_search_algorithms - */ - template - _GLIBCXX20_CONSTEXPR - inline _ForwardIterator - lower_bound(_ForwardIterator __first, _ForwardIterator __last, - const _Tp& __val) - { - // concept requirements - __glibcxx_function_requires(_ForwardIteratorConcept<_ForwardIterator>) - __glibcxx_function_requires(_LessThanOpConcept< - typename iterator_traits<_ForwardIterator>::value_type, _Tp>) - __glibcxx_requires_partitioned_lower(__first, __last, __val); - - return std::__lower_bound(__first, __last, __val, - __gnu_cxx::__ops::__iter_less_val()); - } - - /// This is a helper function for the sort routines and for random.tcc. - // Precondition: __n > 0. - template - inline _GLIBCXX_CONSTEXPR _Tp - __lg(_Tp __n) - { -#if __cplusplus >= 201402L - return std::__bit_width(make_unsigned_t<_Tp>(__n)) - 1; -#else - // Use +__n so it promotes to at least int. - const int __sz = sizeof(+__n); - int __w = __sz * __CHAR_BIT__ - 1; - if (__sz == sizeof(long long)) - __w -= __builtin_clzll(+__n); - else if (__sz == sizeof(long)) - __w -= __builtin_clzl(+__n); - else if (__sz == sizeof(int)) - __w -= __builtin_clz(+__n); - return __w; -#endif - } - -_GLIBCXX_BEGIN_NAMESPACE_ALGO - - /** - * @brief Tests a range for element-wise equality. - * @ingroup non_mutating_algorithms - * @param __first1 An input iterator. - * @param __last1 An input iterator. - * @param __first2 An input iterator. - * @return A boolean true or false. - * - * This compares the elements of two ranges using @c == and returns true or - * false depending on whether all of the corresponding elements of the - * ranges are equal. - */ - template - _GLIBCXX20_CONSTEXPR - inline bool - equal(_II1 __first1, _II1 __last1, _II2 __first2) - { - // concept requirements - __glibcxx_function_requires(_InputIteratorConcept<_II1>) - __glibcxx_function_requires(_InputIteratorConcept<_II2>) - __glibcxx_function_requires(_EqualOpConcept< - typename iterator_traits<_II1>::value_type, - typename iterator_traits<_II2>::value_type>) - __glibcxx_requires_can_increment_range(__first1, __last1, __first2); - - return std::__equal_aux(__first1, __last1, __first2); - } - - /** - * @brief Tests a range for element-wise equality. - * @ingroup non_mutating_algorithms - * @param __first1 An input iterator. - * @param __last1 An input iterator. - * @param __first2 An input iterator. - * @param __binary_pred A binary predicate @link functors - * functor@endlink. - * @return A boolean true or false. - * - * This compares the elements of two ranges using the binary_pred - * parameter, and returns true or - * false depending on whether all of the corresponding elements of the - * ranges are equal. - */ - template - _GLIBCXX20_CONSTEXPR - inline bool - equal(_IIter1 __first1, _IIter1 __last1, - _IIter2 __first2, _BinaryPredicate __binary_pred) - { - // concept requirements - __glibcxx_function_requires(_InputIteratorConcept<_IIter1>) - __glibcxx_function_requires(_InputIteratorConcept<_IIter2>) - __glibcxx_requires_valid_range(__first1, __last1); - - for (; __first1 != __last1; ++__first1, (void)++__first2) - if (!bool(__binary_pred(*__first1, *__first2))) - return false; - return true; - } - -#if __cplusplus >= 201103L - // 4-iterator version of std::equal for use in C++11. - template - _GLIBCXX20_CONSTEXPR - inline bool - __equal4(_II1 __first1, _II1 __last1, _II2 __first2, _II2 __last2) - { - using _RATag = random_access_iterator_tag; - using _Cat1 = typename iterator_traits<_II1>::iterator_category; - using _Cat2 = typename iterator_traits<_II2>::iterator_category; - using _RAIters = __and_, is_same<_Cat2, _RATag>>; - if (_RAIters()) - { - auto __d1 = std::distance(__first1, __last1); - auto __d2 = std::distance(__first2, __last2); - if (__d1 != __d2) - return false; - return _GLIBCXX_STD_A::equal(__first1, __last1, __first2); - } - - for (; __first1 != __last1 && __first2 != __last2; - ++__first1, (void)++__first2) - if (!(*__first1 == *__first2)) - return false; - return __first1 == __last1 && __first2 == __last2; - } - - // 4-iterator version of std::equal for use in C++11. - template - _GLIBCXX20_CONSTEXPR - inline bool - __equal4(_II1 __first1, _II1 __last1, _II2 __first2, _II2 __last2, - _BinaryPredicate __binary_pred) - { - using _RATag = random_access_iterator_tag; - using _Cat1 = typename iterator_traits<_II1>::iterator_category; - using _Cat2 = typename iterator_traits<_II2>::iterator_category; - using _RAIters = __and_, is_same<_Cat2, _RATag>>; - if (_RAIters()) - { - auto __d1 = std::distance(__first1, __last1); - auto __d2 = std::distance(__first2, __last2); - if (__d1 != __d2) - return false; - return _GLIBCXX_STD_A::equal(__first1, __last1, __first2, - __binary_pred); - } - - for (; __first1 != __last1 && __first2 != __last2; - ++__first1, (void)++__first2) - if (!bool(__binary_pred(*__first1, *__first2))) - return false; - return __first1 == __last1 && __first2 == __last2; - } -#endif // C++11 - -#if __cplusplus > 201103L - -#define __cpp_lib_robust_nonmodifying_seq_ops 201304L - - /** - * @brief Tests a range for element-wise equality. - * @ingroup non_mutating_algorithms - * @param __first1 An input iterator. - * @param __last1 An input iterator. - * @param __first2 An input iterator. - * @param __last2 An input iterator. - * @return A boolean true or false. - * - * This compares the elements of two ranges using @c == and returns true or - * false depending on whether all of the corresponding elements of the - * ranges are equal. - */ - template - _GLIBCXX20_CONSTEXPR - inline bool - equal(_II1 __first1, _II1 __last1, _II2 __first2, _II2 __last2) - { - // concept requirements - __glibcxx_function_requires(_InputIteratorConcept<_II1>) - __glibcxx_function_requires(_InputIteratorConcept<_II2>) - __glibcxx_function_requires(_EqualOpConcept< - typename iterator_traits<_II1>::value_type, - typename iterator_traits<_II2>::value_type>) - __glibcxx_requires_valid_range(__first1, __last1); - __glibcxx_requires_valid_range(__first2, __last2); - - return _GLIBCXX_STD_A::__equal4(__first1, __last1, __first2, __last2); - } - - /** - * @brief Tests a range for element-wise equality. - * @ingroup non_mutating_algorithms - * @param __first1 An input iterator. - * @param __last1 An input iterator. - * @param __first2 An input iterator. - * @param __last2 An input iterator. - * @param __binary_pred A binary predicate @link functors - * functor@endlink. - * @return A boolean true or false. - * - * This compares the elements of two ranges using the binary_pred - * parameter, and returns true or - * false depending on whether all of the corresponding elements of the - * ranges are equal. - */ - template - _GLIBCXX20_CONSTEXPR - inline bool - equal(_IIter1 __first1, _IIter1 __last1, - _IIter2 __first2, _IIter2 __last2, _BinaryPredicate __binary_pred) - { - // concept requirements - __glibcxx_function_requires(_InputIteratorConcept<_IIter1>) - __glibcxx_function_requires(_InputIteratorConcept<_IIter2>) - __glibcxx_requires_valid_range(__first1, __last1); - __glibcxx_requires_valid_range(__first2, __last2); - - return _GLIBCXX_STD_A::__equal4(__first1, __last1, __first2, __last2, - __binary_pred); - } -#endif // C++14 - - /** - * @brief Performs @b dictionary comparison on ranges. - * @ingroup sorting_algorithms - * @param __first1 An input iterator. - * @param __last1 An input iterator. - * @param __first2 An input iterator. - * @param __last2 An input iterator. - * @return A boolean true or false. - * - * Returns true if the sequence of elements defined by the range - * [first1,last1) is lexicographically less than the sequence of elements - * defined by the range [first2,last2). Returns false otherwise. - * (Quoted from [25.3.8]/1.) If the iterators are all character pointers, - * then this is an inline call to @c memcmp. - */ - template - _GLIBCXX20_CONSTEXPR - inline bool - lexicographical_compare(_II1 __first1, _II1 __last1, - _II2 __first2, _II2 __last2) - { -#ifdef _GLIBCXX_CONCEPT_CHECKS - // concept requirements - typedef typename iterator_traits<_II1>::value_type _ValueType1; - typedef typename iterator_traits<_II2>::value_type _ValueType2; -#endif - __glibcxx_function_requires(_InputIteratorConcept<_II1>) - __glibcxx_function_requires(_InputIteratorConcept<_II2>) - __glibcxx_function_requires(_LessThanOpConcept<_ValueType1, _ValueType2>) - __glibcxx_function_requires(_LessThanOpConcept<_ValueType2, _ValueType1>) - __glibcxx_requires_valid_range(__first1, __last1); - __glibcxx_requires_valid_range(__first2, __last2); - - return std::__lexicographical_compare_aux(__first1, __last1, - __first2, __last2); - } - - /** - * @brief Performs @b dictionary comparison on ranges. - * @ingroup sorting_algorithms - * @param __first1 An input iterator. - * @param __last1 An input iterator. - * @param __first2 An input iterator. - * @param __last2 An input iterator. - * @param __comp A @link comparison_functors comparison functor@endlink. - * @return A boolean true or false. - * - * The same as the four-parameter @c lexicographical_compare, but uses the - * comp parameter instead of @c <. - */ - template - _GLIBCXX20_CONSTEXPR - inline bool - lexicographical_compare(_II1 __first1, _II1 __last1, - _II2 __first2, _II2 __last2, _Compare __comp) - { - // concept requirements - __glibcxx_function_requires(_InputIteratorConcept<_II1>) - __glibcxx_function_requires(_InputIteratorConcept<_II2>) - __glibcxx_requires_valid_range(__first1, __last1); - __glibcxx_requires_valid_range(__first2, __last2); - - return std::__lexicographical_compare_impl - (__first1, __last1, __first2, __last2, - __gnu_cxx::__ops::__iter_comp_iter(__comp)); - } - -#if __cpp_lib_three_way_comparison - // Iter points to a contiguous range of unsigned narrow character type - // or std::byte, suitable for comparison by memcmp. - template - concept __is_byte_iter = contiguous_iterator<_Iter> - && __is_memcmp_ordered>::__value; - - // Return a struct with two members, initialized to the smaller of x and y - // (or x if they compare equal) and the result of the comparison x <=> y. - template - constexpr auto - __min_cmp(_Tp __x, _Tp __y) - { - struct _Res { - _Tp _M_min; - decltype(__x <=> __y) _M_cmp; - }; - auto __c = __x <=> __y; - if (__c > 0) - return _Res{__y, __c}; - return _Res{__x, __c}; - } - - /** - * @brief Performs dictionary comparison on ranges. - * @ingroup sorting_algorithms - * @param __first1 An input iterator. - * @param __last1 An input iterator. - * @param __first2 An input iterator. - * @param __last2 An input iterator. - * @param __comp A @link comparison_functors comparison functor@endlink. - * @return The comparison category that `__comp(*__first1, *__first2)` - * returns. - */ - template - constexpr auto - lexicographical_compare_three_way(_InputIter1 __first1, - _InputIter1 __last1, - _InputIter2 __first2, - _InputIter2 __last2, - _Comp __comp) - -> decltype(__comp(*__first1, *__first2)) - { - // concept requirements - __glibcxx_function_requires(_InputIteratorConcept<_InputIter1>) - __glibcxx_function_requires(_InputIteratorConcept<_InputIter2>) - __glibcxx_requires_valid_range(__first1, __last1); - __glibcxx_requires_valid_range(__first2, __last2); - - using _Cat = decltype(__comp(*__first1, *__first2)); - static_assert(same_as, _Cat>); - - if (!std::__is_constant_evaluated()) - if constexpr (same_as<_Comp, __detail::_Synth3way> - || same_as<_Comp, compare_three_way>) - if constexpr (__is_byte_iter<_InputIter1>) - if constexpr (__is_byte_iter<_InputIter2>) - { - const auto [__len, __lencmp] = _GLIBCXX_STD_A:: - __min_cmp(__last1 - __first1, __last2 - __first2); - if (__len) - { - const auto __c - = __builtin_memcmp(&*__first1, &*__first2, __len) <=> 0; - if (__c != 0) - return __c; - } - return __lencmp; - } - - while (__first1 != __last1) - { - if (__first2 == __last2) - return strong_ordering::greater; - if (auto __cmp = __comp(*__first1, *__first2); __cmp != 0) - return __cmp; - ++__first1; - ++__first2; - } - return (__first2 == __last2) <=> true; // See PR 94006 - } - - template - constexpr auto - lexicographical_compare_three_way(_InputIter1 __first1, - _InputIter1 __last1, - _InputIter2 __first2, - _InputIter2 __last2) - { - return _GLIBCXX_STD_A:: - lexicographical_compare_three_way(__first1, __last1, __first2, __last2, - compare_three_way{}); - } -#endif // three_way_comparison - - template - _GLIBCXX20_CONSTEXPR - pair<_InputIterator1, _InputIterator2> - __mismatch(_InputIterator1 __first1, _InputIterator1 __last1, - _InputIterator2 __first2, _BinaryPredicate __binary_pred) - { - while (__first1 != __last1 && __binary_pred(__first1, __first2)) - { - ++__first1; - ++__first2; - } - return pair<_InputIterator1, _InputIterator2>(__first1, __first2); - } - - /** - * @brief Finds the places in ranges which don't match. - * @ingroup non_mutating_algorithms - * @param __first1 An input iterator. - * @param __last1 An input iterator. - * @param __first2 An input iterator. - * @return A pair of iterators pointing to the first mismatch. - * - * This compares the elements of two ranges using @c == and returns a pair - * of iterators. The first iterator points into the first range, the - * second iterator points into the second range, and the elements pointed - * to by the iterators are not equal. - */ - template - _GLIBCXX20_CONSTEXPR - inline pair<_InputIterator1, _InputIterator2> - mismatch(_InputIterator1 __first1, _InputIterator1 __last1, - _InputIterator2 __first2) - { - // concept requirements - __glibcxx_function_requires(_InputIteratorConcept<_InputIterator1>) - __glibcxx_function_requires(_InputIteratorConcept<_InputIterator2>) - __glibcxx_function_requires(_EqualOpConcept< - typename iterator_traits<_InputIterator1>::value_type, - typename iterator_traits<_InputIterator2>::value_type>) - __glibcxx_requires_valid_range(__first1, __last1); - - return _GLIBCXX_STD_A::__mismatch(__first1, __last1, __first2, - __gnu_cxx::__ops::__iter_equal_to_iter()); - } - - /** - * @brief Finds the places in ranges which don't match. - * @ingroup non_mutating_algorithms - * @param __first1 An input iterator. - * @param __last1 An input iterator. - * @param __first2 An input iterator. - * @param __binary_pred A binary predicate @link functors - * functor@endlink. - * @return A pair of iterators pointing to the first mismatch. - * - * This compares the elements of two ranges using the binary_pred - * parameter, and returns a pair - * of iterators. The first iterator points into the first range, the - * second iterator points into the second range, and the elements pointed - * to by the iterators are not equal. - */ - template - _GLIBCXX20_CONSTEXPR - inline pair<_InputIterator1, _InputIterator2> - mismatch(_InputIterator1 __first1, _InputIterator1 __last1, - _InputIterator2 __first2, _BinaryPredicate __binary_pred) - { - // concept requirements - __glibcxx_function_requires(_InputIteratorConcept<_InputIterator1>) - __glibcxx_function_requires(_InputIteratorConcept<_InputIterator2>) - __glibcxx_requires_valid_range(__first1, __last1); - - return _GLIBCXX_STD_A::__mismatch(__first1, __last1, __first2, - __gnu_cxx::__ops::__iter_comp_iter(__binary_pred)); - } - -#if __cplusplus > 201103L - - template - _GLIBCXX20_CONSTEXPR - pair<_InputIterator1, _InputIterator2> - __mismatch(_InputIterator1 __first1, _InputIterator1 __last1, - _InputIterator2 __first2, _InputIterator2 __last2, - _BinaryPredicate __binary_pred) - { - while (__first1 != __last1 && __first2 != __last2 - && __binary_pred(__first1, __first2)) - { - ++__first1; - ++__first2; - } - return pair<_InputIterator1, _InputIterator2>(__first1, __first2); - } - - /** - * @brief Finds the places in ranges which don't match. - * @ingroup non_mutating_algorithms - * @param __first1 An input iterator. - * @param __last1 An input iterator. - * @param __first2 An input iterator. - * @param __last2 An input iterator. - * @return A pair of iterators pointing to the first mismatch. - * - * This compares the elements of two ranges using @c == and returns a pair - * of iterators. The first iterator points into the first range, the - * second iterator points into the second range, and the elements pointed - * to by the iterators are not equal. - */ - template - _GLIBCXX20_CONSTEXPR - inline pair<_InputIterator1, _InputIterator2> - mismatch(_InputIterator1 __first1, _InputIterator1 __last1, - _InputIterator2 __first2, _InputIterator2 __last2) - { - // concept requirements - __glibcxx_function_requires(_InputIteratorConcept<_InputIterator1>) - __glibcxx_function_requires(_InputIteratorConcept<_InputIterator2>) - __glibcxx_function_requires(_EqualOpConcept< - typename iterator_traits<_InputIterator1>::value_type, - typename iterator_traits<_InputIterator2>::value_type>) - __glibcxx_requires_valid_range(__first1, __last1); - __glibcxx_requires_valid_range(__first2, __last2); - - return _GLIBCXX_STD_A::__mismatch(__first1, __last1, __first2, __last2, - __gnu_cxx::__ops::__iter_equal_to_iter()); - } - - /** - * @brief Finds the places in ranges which don't match. - * @ingroup non_mutating_algorithms - * @param __first1 An input iterator. - * @param __last1 An input iterator. - * @param __first2 An input iterator. - * @param __last2 An input iterator. - * @param __binary_pred A binary predicate @link functors - * functor@endlink. - * @return A pair of iterators pointing to the first mismatch. - * - * This compares the elements of two ranges using the binary_pred - * parameter, and returns a pair - * of iterators. The first iterator points into the first range, the - * second iterator points into the second range, and the elements pointed - * to by the iterators are not equal. - */ - template - _GLIBCXX20_CONSTEXPR - inline pair<_InputIterator1, _InputIterator2> - mismatch(_InputIterator1 __first1, _InputIterator1 __last1, - _InputIterator2 __first2, _InputIterator2 __last2, - _BinaryPredicate __binary_pred) - { - // concept requirements - __glibcxx_function_requires(_InputIteratorConcept<_InputIterator1>) - __glibcxx_function_requires(_InputIteratorConcept<_InputIterator2>) - __glibcxx_requires_valid_range(__first1, __last1); - __glibcxx_requires_valid_range(__first2, __last2); - - return _GLIBCXX_STD_A::__mismatch(__first1, __last1, __first2, __last2, - __gnu_cxx::__ops::__iter_comp_iter(__binary_pred)); - } -#endif - -_GLIBCXX_END_NAMESPACE_ALGO - - /// This is an overload used by find algos for the Input Iterator case. - template - _GLIBCXX20_CONSTEXPR - inline _InputIterator - __find_if(_InputIterator __first, _InputIterator __last, - _Predicate __pred, input_iterator_tag) - { - while (__first != __last && !__pred(__first)) - ++__first; - return __first; - } - - /// This is an overload used by find algos for the RAI case. - template - _GLIBCXX20_CONSTEXPR - _RandomAccessIterator - __find_if(_RandomAccessIterator __first, _RandomAccessIterator __last, - _Predicate __pred, random_access_iterator_tag) - { - typename iterator_traits<_RandomAccessIterator>::difference_type - __trip_count = (__last - __first) >> 2; - - for (; __trip_count > 0; --__trip_count) - { - if (__pred(__first)) - return __first; - ++__first; - - if (__pred(__first)) - return __first; - ++__first; - - if (__pred(__first)) - return __first; - ++__first; - - if (__pred(__first)) - return __first; - ++__first; - } - - switch (__last - __first) - { - case 3: - if (__pred(__first)) - return __first; - ++__first; - // FALLTHRU - case 2: - if (__pred(__first)) - return __first; - ++__first; - // FALLTHRU - case 1: - if (__pred(__first)) - return __first; - ++__first; - // FALLTHRU - case 0: - default: - return __last; - } - } - - template - _GLIBCXX20_CONSTEXPR - inline _Iterator - __find_if(_Iterator __first, _Iterator __last, _Predicate __pred) - { - return __find_if(__first, __last, __pred, - std::__iterator_category(__first)); - } - - template - _GLIBCXX20_CONSTEXPR - typename iterator_traits<_InputIterator>::difference_type - __count_if(_InputIterator __first, _InputIterator __last, _Predicate __pred) - { - typename iterator_traits<_InputIterator>::difference_type __n = 0; - for (; __first != __last; ++__first) - if (__pred(__first)) - ++__n; - return __n; - } - - template - _GLIBCXX20_CONSTEXPR - _ForwardIterator - __remove_if(_ForwardIterator __first, _ForwardIterator __last, - _Predicate __pred) - { - __first = std::__find_if(__first, __last, __pred); - if (__first == __last) - return __first; - _ForwardIterator __result = __first; - ++__first; - for (; __first != __last; ++__first) - if (!__pred(__first)) - { - *__result = _GLIBCXX_MOVE(*__first); - ++__result; - } - return __result; - } - -#if __cplusplus >= 201103L - template - _GLIBCXX20_CONSTEXPR - bool - __is_permutation(_ForwardIterator1 __first1, _ForwardIterator1 __last1, - _ForwardIterator2 __first2, _BinaryPredicate __pred) - { - // Efficiently compare identical prefixes: O(N) if sequences - // have the same elements in the same order. - for (; __first1 != __last1; ++__first1, (void)++__first2) - if (!__pred(__first1, __first2)) - break; - - if (__first1 == __last1) - return true; - - // Establish __last2 assuming equal ranges by iterating over the - // rest of the list. - _ForwardIterator2 __last2 = __first2; - std::advance(__last2, std::distance(__first1, __last1)); - for (_ForwardIterator1 __scan = __first1; __scan != __last1; ++__scan) - { - if (__scan != std::__find_if(__first1, __scan, - __gnu_cxx::__ops::__iter_comp_iter(__pred, __scan))) - continue; // We've seen this one before. - - auto __matches - = std::__count_if(__first2, __last2, - __gnu_cxx::__ops::__iter_comp_iter(__pred, __scan)); - if (0 == __matches || - std::__count_if(__scan, __last1, - __gnu_cxx::__ops::__iter_comp_iter(__pred, __scan)) - != __matches) - return false; - } - return true; - } - - /** - * @brief Checks whether a permutation of the second sequence is equal - * to the first sequence. - * @ingroup non_mutating_algorithms - * @param __first1 Start of first range. - * @param __last1 End of first range. - * @param __first2 Start of second range. - * @return true if there exists a permutation of the elements in the range - * [__first2, __first2 + (__last1 - __first1)), beginning with - * ForwardIterator2 begin, such that equal(__first1, __last1, begin) - * returns true; otherwise, returns false. - */ - template - _GLIBCXX20_CONSTEXPR - inline bool - is_permutation(_ForwardIterator1 __first1, _ForwardIterator1 __last1, - _ForwardIterator2 __first2) - { - // concept requirements - __glibcxx_function_requires(_ForwardIteratorConcept<_ForwardIterator1>) - __glibcxx_function_requires(_ForwardIteratorConcept<_ForwardIterator2>) - __glibcxx_function_requires(_EqualOpConcept< - typename iterator_traits<_ForwardIterator1>::value_type, - typename iterator_traits<_ForwardIterator2>::value_type>) - __glibcxx_requires_valid_range(__first1, __last1); - - return std::__is_permutation(__first1, __last1, __first2, - __gnu_cxx::__ops::__iter_equal_to_iter()); - } -#endif // C++11 - -_GLIBCXX_END_NAMESPACE_VERSION -} // namespace std - -// NB: This file is included within many other C++ includes, as a way -// of getting the base algorithms. So, make sure that parallel bits -// come in too if requested. -#ifdef _GLIBCXX_PARALLEL -# include -#endif - -#endif diff --git a/.ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@c++@13.1.1@bits@stl_algobase.h.blob b/.ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@c++@13.1.1@bits@stl_algobase.h.blob deleted file mode 100644 index 9f482b0fd272798afab298649ef77ab9e213832e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 151806 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 d6j5cPCI7Qj8#L{|`UJlTH8t diff --git a/.ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@c++@13.1.1@bits@stl_construct.h b/.ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@c++@13.1.1@bits@stl_construct.h deleted file mode 100644 index 574f4fa..0000000 --- a/.ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@c++@13.1.1@bits@stl_construct.h +++ /dev/null @@ -1,267 +0,0 @@ -// nonstandard construct and destroy functions -*- C++ -*- - -// Copyright (C) 2001-2023 Free Software Foundation, Inc. -// -// This file is part of the GNU ISO C++ Library. This library is free -// software; you can redistribute it and/or modify it under the -// terms of the GNU General Public License as published by the -// Free Software Foundation; either version 3, or (at your option) -// any later version. - -// This library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. - -// Under Section 7 of GPL version 3, you are granted additional -// permissions described in the GCC Runtime Library Exception, version -// 3.1, as published by the Free Software Foundation. - -// You should have received a copy of the GNU General Public License and -// a copy of the GCC Runtime Library Exception along with this program; -// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see -// . - -/* - * - * Copyright (c) 1994 - * Hewlett-Packard Company - * - * Permission to use, copy, modify, distribute and sell this software - * and its documentation for any purpose is hereby granted without fee, - * provided that the above copyright notice appear in all copies and - * that both that copyright notice and this permission notice appear - * in supporting documentation. Hewlett-Packard Company makes no - * representations about the suitability of this software for any - * purpose. It is provided "as is" without express or implied warranty. - * - * - * Copyright (c) 1996,1997 - * Silicon Graphics Computer Systems, Inc. - * - * Permission to use, copy, modify, distribute and sell this software - * and its documentation for any purpose is hereby granted without fee, - * provided that the above copyright notice appear in all copies and - * that both that copyright notice and this permission notice appear - * in supporting documentation. Silicon Graphics makes no - * representations about the suitability of this software for any - * purpose. It is provided "as is" without express or implied warranty. - */ - -/** @file bits/stl_construct.h - * This is an internal header file, included by other library headers. - * Do not attempt to use it directly. @headername{memory} - */ - -#ifndef _STL_CONSTRUCT_H -#define _STL_CONSTRUCT_H 1 - -#include -#include -#include // for iterator_traits -#include // for advance - -/* This file provides the C++17 functions std::destroy_at, std::destroy, and - * std::destroy_n, and the C++20 function std::construct_at. - * It also provides std::_Construct, std::_Destroy,and std::_Destroy_n functions - * which are defined in all standard modes and so can be used in C++98-14 code. - * The _Destroy functions will dispatch to destroy_at during constant - * evaluation, because calls to that function are intercepted by the compiler - * to allow use in constant expressions. - */ - -namespace std _GLIBCXX_VISIBILITY(default) -{ -_GLIBCXX_BEGIN_NAMESPACE_VERSION - -#if __cplusplus >= 201703L - template - _GLIBCXX20_CONSTEXPR inline void - destroy_at(_Tp* __location) - { - if constexpr (__cplusplus > 201703L && is_array_v<_Tp>) - { - for (auto& __x : *__location) - std::destroy_at(std::__addressof(__x)); - } - else - __location->~_Tp(); - } - -#if __cplusplus >= 202002L - template - constexpr auto - construct_at(_Tp* __location, _Args&&... __args) - noexcept(noexcept(::new((void*)0) _Tp(std::declval<_Args>()...))) - -> decltype(::new((void*)0) _Tp(std::declval<_Args>()...)) - { return ::new((void*)__location) _Tp(std::forward<_Args>(__args)...); } -#endif // C++20 -#endif// C++17 - - /** - * Constructs an object in existing memory by invoking an allocated - * object's constructor with an initializer. - */ -#if __cplusplus >= 201103L - template - _GLIBCXX20_CONSTEXPR - inline void - _Construct(_Tp* __p, _Args&&... __args) - { -#if __cplusplus >= 202002L - if (std::__is_constant_evaluated()) - { - // Allow std::_Construct to be used in constant expressions. - std::construct_at(__p, std::forward<_Args>(__args)...); - return; - } -#endif - ::new((void*)__p) _Tp(std::forward<_Args>(__args)...); - } -#else - template - inline void - _Construct(_T1* __p, const _T2& __value) - { - // _GLIBCXX_RESOLVE_LIB_DEFECTS - // 402. wrong new expression in [some_]allocator::construct - ::new(static_cast(__p)) _T1(__value); - } -#endif - - template - inline void - _Construct_novalue(_T1* __p) - { ::new((void*)__p) _T1; } - - template - _GLIBCXX20_CONSTEXPR void - _Destroy(_ForwardIterator __first, _ForwardIterator __last); - - /** - * Destroy the object pointed to by a pointer type. - */ - template - _GLIBCXX14_CONSTEXPR inline void - _Destroy(_Tp* __pointer) - { -#if __cplusplus > 201703L - std::destroy_at(__pointer); -#else - __pointer->~_Tp(); -#endif - } - - template - struct _Destroy_aux - { - template - static _GLIBCXX20_CONSTEXPR void - __destroy(_ForwardIterator __first, _ForwardIterator __last) - { - for (; __first != __last; ++__first) - std::_Destroy(std::__addressof(*__first)); - } - }; - - template<> - struct _Destroy_aux - { - template - static void - __destroy(_ForwardIterator, _ForwardIterator) { } - }; - - /** - * Destroy a range of objects. If the value_type of the object has - * a trivial destructor, the compiler should optimize all of this - * away, otherwise the objects' destructors must be invoked. - */ - template - _GLIBCXX20_CONSTEXPR inline void - _Destroy(_ForwardIterator __first, _ForwardIterator __last) - { - typedef typename iterator_traits<_ForwardIterator>::value_type - _Value_type; -#if __cplusplus >= 201103L - // A deleted destructor is trivial, this ensures we reject such types: - static_assert(is_destructible<_Value_type>::value, - "value type is destructible"); -#endif -#if __cplusplus >= 202002L - if (std::__is_constant_evaluated()) - return _Destroy_aux::__destroy(__first, __last); -#endif - std::_Destroy_aux<__has_trivial_destructor(_Value_type)>:: - __destroy(__first, __last); - } - - template - struct _Destroy_n_aux - { - template - static _GLIBCXX20_CONSTEXPR _ForwardIterator - __destroy_n(_ForwardIterator __first, _Size __count) - { - for (; __count > 0; (void)++__first, --__count) - std::_Destroy(std::__addressof(*__first)); - return __first; - } - }; - - template<> - struct _Destroy_n_aux - { - template - static _ForwardIterator - __destroy_n(_ForwardIterator __first, _Size __count) - { - std::advance(__first, __count); - return __first; - } - }; - - /** - * Destroy a range of objects. If the value_type of the object has - * a trivial destructor, the compiler should optimize all of this - * away, otherwise the objects' destructors must be invoked. - */ - template - _GLIBCXX20_CONSTEXPR inline _ForwardIterator - _Destroy_n(_ForwardIterator __first, _Size __count) - { - typedef typename iterator_traits<_ForwardIterator>::value_type - _Value_type; -#if __cplusplus >= 201103L - // A deleted destructor is trivial, this ensures we reject such types: - static_assert(is_destructible<_Value_type>::value, - "value type is destructible"); -#endif -#if __cplusplus >= 202002L - if (std::__is_constant_evaluated()) - return _Destroy_n_aux::__destroy_n(__first, __count); -#endif - return std::_Destroy_n_aux<__has_trivial_destructor(_Value_type)>:: - __destroy_n(__first, __count); - } - -#if __cplusplus >= 201703L - template - _GLIBCXX20_CONSTEXPR inline void - destroy(_ForwardIterator __first, _ForwardIterator __last) - { - std::_Destroy(__first, __last); - } - - template - _GLIBCXX20_CONSTEXPR inline _ForwardIterator - destroy_n(_ForwardIterator __first, _Size __count) - { - return std::_Destroy_n(__first, __count); - } -#endif // C++17 - -_GLIBCXX_END_NAMESPACE_VERSION -} // namespace std - -#endif /* _STL_CONSTRUCT_H */ diff --git a/.ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@c++@13.1.1@bits@stl_construct.h.blob b/.ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@c++@13.1.1@bits@stl_construct.h.blob deleted file mode 100644 index 33000595477b2217fa6e61061fce3623aced58c1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 16283 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 ZdRxu5M#L9@nnoK5VgBwdy|=oU{$HR6TD<@O diff --git a/.ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@c++@13.1.1@bits@stl_function.h b/.ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@c++@13.1.1@bits@stl_function.h deleted file mode 100644 index fa03f32..0000000 --- a/.ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@c++@13.1.1@bits@stl_function.h +++ /dev/null @@ -1,1441 +0,0 @@ -// Functor implementations -*- C++ -*- - -// Copyright (C) 2001-2023 Free Software Foundation, Inc. -// -// This file is part of the GNU ISO C++ Library. This library is free -// software; you can redistribute it and/or modify it under the -// terms of the GNU General Public License as published by the -// Free Software Foundation; either version 3, or (at your option) -// any later version. - -// This library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. - -// Under Section 7 of GPL version 3, you are granted additional -// permissions described in the GCC Runtime Library Exception, version -// 3.1, as published by the Free Software Foundation. - -// You should have received a copy of the GNU General Public License and -// a copy of the GCC Runtime Library Exception along with this program; -// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see -// . - -/* - * - * Copyright (c) 1994 - * Hewlett-Packard Company - * - * Permission to use, copy, modify, distribute and sell this software - * and its documentation for any purpose is hereby granted without fee, - * provided that the above copyright notice appear in all copies and - * that both that copyright notice and this permission notice appear - * in supporting documentation. Hewlett-Packard Company makes no - * representations about the suitability of this software for any - * purpose. It is provided "as is" without express or implied warranty. - * - * - * Copyright (c) 1996-1998 - * Silicon Graphics Computer Systems, Inc. - * - * Permission to use, copy, modify, distribute and sell this software - * and its documentation for any purpose is hereby granted without fee, - * provided that the above copyright notice appear in all copies and - * that both that copyright notice and this permission notice appear - * in supporting documentation. Silicon Graphics makes no - * representations about the suitability of this software for any - * purpose. It is provided "as is" without express or implied warranty. - */ - -/** @file bits/stl_function.h - * This is an internal header file, included by other library headers. - * Do not attempt to use it directly. @headername{functional} - */ - -#ifndef _STL_FUNCTION_H -#define _STL_FUNCTION_H 1 - -#if __cplusplus > 201103L -#include -#endif - -namespace std _GLIBCXX_VISIBILITY(default) -{ -_GLIBCXX_BEGIN_NAMESPACE_VERSION - - // 20.3.1 base classes - /** @defgroup functors Function Objects - * @ingroup utilities - * - * Function objects, or _functors_, are objects with an `operator()` - * defined and accessible. They can be passed as arguments to algorithm - * templates and used in place of a function pointer. Not only is the - * resulting expressiveness of the library increased, but the generated - * code can be more efficient than what you might write by hand. When we - * refer to _functors_, then, generally we include function pointers in - * the description as well. - * - * Often, functors are only created as temporaries passed to algorithm - * calls, rather than being created as named variables. - * - * Two examples taken from the standard itself follow. To perform a - * by-element addition of two vectors `a` and `b` containing `double`, - * and put the result in `a`, use - * \code - * transform (a.begin(), a.end(), b.begin(), a.begin(), plus()); - * \endcode - * To negate every element in `a`, use - * \code - * transform(a.begin(), a.end(), a.begin(), negate()); - * \endcode - * The addition and negation functions will usually be inlined directly. - * - * An _adaptable function object_ is one which provides nested typedefs - * `result_type` and either `argument_type` (for a unary function) or - * `first_argument_type` and `second_argument_type` (for a binary function). - * Those typedefs are used by function object adaptors such as `bind2nd`. - * The standard library provides two class templates, `unary_function` and - * `binary_function`, which define those typedefs and so can be used as - * base classes of adaptable function objects. - * - * Since C++11 the use of function object adaptors has been superseded by - * more powerful tools such as lambda expressions, `function<>`, and more - * powerful type deduction (using `auto` and `decltype`). The helpers for - * defining adaptable function objects are deprecated since C++11, and no - * longer part of the standard library since C++17. However, they are still - * defined and used by libstdc++ after C++17, as a conforming extension. - * - * @{ - */ - - /** - * Helper for defining adaptable unary function objects. - * @deprecated Deprecated in C++11, no longer in the standard since C++17. - */ - template - struct unary_function - { - /// @c argument_type is the type of the argument - typedef _Arg argument_type; - - /// @c result_type is the return type - typedef _Result result_type; - } _GLIBCXX11_DEPRECATED; - - /** - * Helper for defining adaptable binary function objects. - * @deprecated Deprecated in C++11, no longer in the standard since C++17. - */ - template - struct binary_function - { - /// @c first_argument_type is the type of the first argument - typedef _Arg1 first_argument_type; - - /// @c second_argument_type is the type of the second argument - typedef _Arg2 second_argument_type; - - /// @c result_type is the return type - typedef _Result result_type; - } _GLIBCXX11_DEPRECATED; - /** @} */ - - // 20.3.2 arithmetic - - /** @defgroup arithmetic_functors Arithmetic Function Object Classes - * @ingroup functors - * - * The library provides function objects for basic arithmetic operations. - * See the documentation for @link functors function objects @endlink - * for examples of their use. - * - * @{ - */ - -#if __cplusplus > 201103L - struct __is_transparent; // undefined - - template - struct plus; - - template - struct minus; - - template - struct multiplies; - - template - struct divides; - - template - struct modulus; - - template - struct negate; -#endif - -// Ignore warnings about unary_function and binary_function. -#pragma GCC diagnostic push -#pragma GCC diagnostic ignored "-Wdeprecated-declarations" - - /// One of the @link arithmetic_functors math functors@endlink. - template - struct plus : public binary_function<_Tp, _Tp, _Tp> - { - /// Returns the sum - _GLIBCXX14_CONSTEXPR - _Tp - operator()(const _Tp& __x, const _Tp& __y) const - { return __x + __y; } - }; - - /// One of the @link arithmetic_functors math functors@endlink. - template - struct minus : public binary_function<_Tp, _Tp, _Tp> - { - _GLIBCXX14_CONSTEXPR - _Tp - operator()(const _Tp& __x, const _Tp& __y) const - { return __x - __y; } - }; - - /// One of the @link arithmetic_functors math functors@endlink. - template - struct multiplies : public binary_function<_Tp, _Tp, _Tp> - { - _GLIBCXX14_CONSTEXPR - _Tp - operator()(const _Tp& __x, const _Tp& __y) const - { return __x * __y; } - }; - - /// One of the @link arithmetic_functors math functors@endlink. - template - struct divides : public binary_function<_Tp, _Tp, _Tp> - { - _GLIBCXX14_CONSTEXPR - _Tp - operator()(const _Tp& __x, const _Tp& __y) const - { return __x / __y; } - }; - - /// One of the @link arithmetic_functors math functors@endlink. - template - struct modulus : public binary_function<_Tp, _Tp, _Tp> - { - _GLIBCXX14_CONSTEXPR - _Tp - operator()(const _Tp& __x, const _Tp& __y) const - { return __x % __y; } - }; - - /// One of the @link arithmetic_functors math functors@endlink. - template - struct negate : public unary_function<_Tp, _Tp> - { - _GLIBCXX14_CONSTEXPR - _Tp - operator()(const _Tp& __x) const - { return -__x; } - }; -#pragma GCC diagnostic pop - -#if __cplusplus > 201103L - -#define __cpp_lib_transparent_operators 201510L - - template<> - struct plus - { - template - _GLIBCXX14_CONSTEXPR - auto - operator()(_Tp&& __t, _Up&& __u) const - noexcept(noexcept(std::forward<_Tp>(__t) + std::forward<_Up>(__u))) - -> decltype(std::forward<_Tp>(__t) + std::forward<_Up>(__u)) - { return std::forward<_Tp>(__t) + std::forward<_Up>(__u); } - - typedef __is_transparent is_transparent; - }; - - /// One of the @link arithmetic_functors math functors@endlink. - template<> - struct minus - { - template - _GLIBCXX14_CONSTEXPR - auto - operator()(_Tp&& __t, _Up&& __u) const - noexcept(noexcept(std::forward<_Tp>(__t) - std::forward<_Up>(__u))) - -> decltype(std::forward<_Tp>(__t) - std::forward<_Up>(__u)) - { return std::forward<_Tp>(__t) - std::forward<_Up>(__u); } - - typedef __is_transparent is_transparent; - }; - - /// One of the @link arithmetic_functors math functors@endlink. - template<> - struct multiplies - { - template - _GLIBCXX14_CONSTEXPR - auto - operator()(_Tp&& __t, _Up&& __u) const - noexcept(noexcept(std::forward<_Tp>(__t) * std::forward<_Up>(__u))) - -> decltype(std::forward<_Tp>(__t) * std::forward<_Up>(__u)) - { return std::forward<_Tp>(__t) * std::forward<_Up>(__u); } - - typedef __is_transparent is_transparent; - }; - - /// One of the @link arithmetic_functors math functors@endlink. - template<> - struct divides - { - template - _GLIBCXX14_CONSTEXPR - auto - operator()(_Tp&& __t, _Up&& __u) const - noexcept(noexcept(std::forward<_Tp>(__t) / std::forward<_Up>(__u))) - -> decltype(std::forward<_Tp>(__t) / std::forward<_Up>(__u)) - { return std::forward<_Tp>(__t) / std::forward<_Up>(__u); } - - typedef __is_transparent is_transparent; - }; - - /// One of the @link arithmetic_functors math functors@endlink. - template<> - struct modulus - { - template - _GLIBCXX14_CONSTEXPR - auto - operator()(_Tp&& __t, _Up&& __u) const - noexcept(noexcept(std::forward<_Tp>(__t) % std::forward<_Up>(__u))) - -> decltype(std::forward<_Tp>(__t) % std::forward<_Up>(__u)) - { return std::forward<_Tp>(__t) % std::forward<_Up>(__u); } - - typedef __is_transparent is_transparent; - }; - - /// One of the @link arithmetic_functors math functors@endlink. - template<> - struct negate - { - template - _GLIBCXX14_CONSTEXPR - auto - operator()(_Tp&& __t) const - noexcept(noexcept(-std::forward<_Tp>(__t))) - -> decltype(-std::forward<_Tp>(__t)) - { return -std::forward<_Tp>(__t); } - - typedef __is_transparent is_transparent; - }; -#endif - /** @} */ - - // 20.3.3 comparisons - /** @defgroup comparison_functors Comparison Classes - * @ingroup functors - * - * The library provides six wrapper functors for all the basic comparisons - * in C++, like @c <. - * - * @{ - */ -#if __cplusplus > 201103L - template - struct equal_to; - - template - struct not_equal_to; - - template - struct greater; - - template - struct less; - - template - struct greater_equal; - - template - struct less_equal; -#endif - -#pragma GCC diagnostic push -#pragma GCC diagnostic ignored "-Wdeprecated-declarations" - - /// One of the @link comparison_functors comparison functors@endlink. - template - struct equal_to : public binary_function<_Tp, _Tp, bool> - { - _GLIBCXX14_CONSTEXPR - bool - operator()(const _Tp& __x, const _Tp& __y) const - { return __x == __y; } - }; - - /// One of the @link comparison_functors comparison functors@endlink. - template - struct not_equal_to : public binary_function<_Tp, _Tp, bool> - { - _GLIBCXX14_CONSTEXPR - bool - operator()(const _Tp& __x, const _Tp& __y) const - { return __x != __y; } - }; - - /// One of the @link comparison_functors comparison functors@endlink. - template - struct greater : public binary_function<_Tp, _Tp, bool> - { - _GLIBCXX14_CONSTEXPR - bool - operator()(const _Tp& __x, const _Tp& __y) const - { return __x > __y; } - }; - - /// One of the @link comparison_functors comparison functors@endlink. - template - struct less : public binary_function<_Tp, _Tp, bool> - { - _GLIBCXX14_CONSTEXPR - bool - operator()(const _Tp& __x, const _Tp& __y) const - { return __x < __y; } - }; - - /// One of the @link comparison_functors comparison functors@endlink. - template - struct greater_equal : public binary_function<_Tp, _Tp, bool> - { - _GLIBCXX14_CONSTEXPR - bool - operator()(const _Tp& __x, const _Tp& __y) const - { return __x >= __y; } - }; - - /// One of the @link comparison_functors comparison functors@endlink. - template - struct less_equal : public binary_function<_Tp, _Tp, bool> - { - _GLIBCXX14_CONSTEXPR - bool - operator()(const _Tp& __x, const _Tp& __y) const - { return __x <= __y; } - }; - - // Partial specialization of std::greater for pointers. - template - struct greater<_Tp*> : public binary_function<_Tp*, _Tp*, bool> - { - _GLIBCXX14_CONSTEXPR bool - operator()(_Tp* __x, _Tp* __y) const _GLIBCXX_NOTHROW - { -#if __cplusplus >= 201402L - if (std::__is_constant_evaluated()) - return __x > __y; -#endif - return (__UINTPTR_TYPE__)__x > (__UINTPTR_TYPE__)__y; - } - }; - - // Partial specialization of std::less for pointers. - template - struct less<_Tp*> : public binary_function<_Tp*, _Tp*, bool> - { - _GLIBCXX14_CONSTEXPR bool - operator()(_Tp* __x, _Tp* __y) const _GLIBCXX_NOTHROW - { -#if __cplusplus >= 201402L - if (std::__is_constant_evaluated()) - return __x < __y; -#endif - return (__UINTPTR_TYPE__)__x < (__UINTPTR_TYPE__)__y; - } - }; - - // Partial specialization of std::greater_equal for pointers. - template - struct greater_equal<_Tp*> : public binary_function<_Tp*, _Tp*, bool> - { - _GLIBCXX14_CONSTEXPR bool - operator()(_Tp* __x, _Tp* __y) const _GLIBCXX_NOTHROW - { -#if __cplusplus >= 201402L - if (std::__is_constant_evaluated()) - return __x >= __y; -#endif - return (__UINTPTR_TYPE__)__x >= (__UINTPTR_TYPE__)__y; - } - }; - - // Partial specialization of std::less_equal for pointers. - template - struct less_equal<_Tp*> : public binary_function<_Tp*, _Tp*, bool> - { - _GLIBCXX14_CONSTEXPR bool - operator()(_Tp* __x, _Tp* __y) const _GLIBCXX_NOTHROW - { -#if __cplusplus >= 201402L - if (std::__is_constant_evaluated()) - return __x <= __y; -#endif - return (__UINTPTR_TYPE__)__x <= (__UINTPTR_TYPE__)__y; - } - }; -#pragma GCC diagnostic pop - -#if __cplusplus >= 201402L - /// One of the @link comparison_functors comparison functors@endlink. - template<> - struct equal_to - { - template - constexpr auto - operator()(_Tp&& __t, _Up&& __u) const - noexcept(noexcept(std::forward<_Tp>(__t) == std::forward<_Up>(__u))) - -> decltype(std::forward<_Tp>(__t) == std::forward<_Up>(__u)) - { return std::forward<_Tp>(__t) == std::forward<_Up>(__u); } - - typedef __is_transparent is_transparent; - }; - - /// One of the @link comparison_functors comparison functors@endlink. - template<> - struct not_equal_to - { - template - constexpr auto - operator()(_Tp&& __t, _Up&& __u) const - noexcept(noexcept(std::forward<_Tp>(__t) != std::forward<_Up>(__u))) - -> decltype(std::forward<_Tp>(__t) != std::forward<_Up>(__u)) - { return std::forward<_Tp>(__t) != std::forward<_Up>(__u); } - - typedef __is_transparent is_transparent; - }; - - /// One of the @link comparison_functors comparison functors@endlink. - template<> - struct greater - { - template - constexpr auto - operator()(_Tp&& __t, _Up&& __u) const - noexcept(noexcept(std::forward<_Tp>(__t) > std::forward<_Up>(__u))) - -> decltype(std::forward<_Tp>(__t) > std::forward<_Up>(__u)) - { - return _S_cmp(std::forward<_Tp>(__t), std::forward<_Up>(__u), - __ptr_cmp<_Tp, _Up>{}); - } - - template - constexpr bool - operator()(_Tp* __t, _Up* __u) const noexcept - { return greater>{}(__t, __u); } - - typedef __is_transparent is_transparent; - - private: - template - static constexpr decltype(auto) - _S_cmp(_Tp&& __t, _Up&& __u, false_type) - { return std::forward<_Tp>(__t) > std::forward<_Up>(__u); } - - template - static constexpr bool - _S_cmp(_Tp&& __t, _Up&& __u, true_type) noexcept - { - return greater{}( - static_cast(std::forward<_Tp>(__t)), - static_cast(std::forward<_Up>(__u))); - } - - // True if there is no viable operator> member function. - template - struct __not_overloaded2 : true_type { }; - - // False if we can call T.operator>(U) - template - struct __not_overloaded2<_Tp, _Up, __void_t< - decltype(std::declval<_Tp>().operator>(std::declval<_Up>()))>> - : false_type { }; - - // True if there is no overloaded operator> for these operands. - template - struct __not_overloaded : __not_overloaded2<_Tp, _Up> { }; - - // False if we can call operator>(T,U) - template - struct __not_overloaded<_Tp, _Up, __void_t< - decltype(operator>(std::declval<_Tp>(), std::declval<_Up>()))>> - : false_type { }; - - template - using __ptr_cmp = __and_<__not_overloaded<_Tp, _Up>, - is_convertible<_Tp, const volatile void*>, - is_convertible<_Up, const volatile void*>>; - }; - - /// One of the @link comparison_functors comparison functors@endlink. - template<> - struct less - { - template - constexpr auto - operator()(_Tp&& __t, _Up&& __u) const - noexcept(noexcept(std::forward<_Tp>(__t) < std::forward<_Up>(__u))) - -> decltype(std::forward<_Tp>(__t) < std::forward<_Up>(__u)) - { - return _S_cmp(std::forward<_Tp>(__t), std::forward<_Up>(__u), - __ptr_cmp<_Tp, _Up>{}); - } - - template - constexpr bool - operator()(_Tp* __t, _Up* __u) const noexcept - { return less>{}(__t, __u); } - - typedef __is_transparent is_transparent; - - private: - template - static constexpr decltype(auto) - _S_cmp(_Tp&& __t, _Up&& __u, false_type) - { return std::forward<_Tp>(__t) < std::forward<_Up>(__u); } - - template - static constexpr bool - _S_cmp(_Tp&& __t, _Up&& __u, true_type) noexcept - { - return less{}( - static_cast(std::forward<_Tp>(__t)), - static_cast(std::forward<_Up>(__u))); - } - - // True if there is no viable operator< member function. - template - struct __not_overloaded2 : true_type { }; - - // False if we can call T.operator<(U) - template - struct __not_overloaded2<_Tp, _Up, __void_t< - decltype(std::declval<_Tp>().operator<(std::declval<_Up>()))>> - : false_type { }; - - // True if there is no overloaded operator< for these operands. - template - struct __not_overloaded : __not_overloaded2<_Tp, _Up> { }; - - // False if we can call operator<(T,U) - template - struct __not_overloaded<_Tp, _Up, __void_t< - decltype(operator<(std::declval<_Tp>(), std::declval<_Up>()))>> - : false_type { }; - - template - using __ptr_cmp = __and_<__not_overloaded<_Tp, _Up>, - is_convertible<_Tp, const volatile void*>, - is_convertible<_Up, const volatile void*>>; - }; - - /// One of the @link comparison_functors comparison functors@endlink. - template<> - struct greater_equal - { - template - constexpr auto - operator()(_Tp&& __t, _Up&& __u) const - noexcept(noexcept(std::forward<_Tp>(__t) >= std::forward<_Up>(__u))) - -> decltype(std::forward<_Tp>(__t) >= std::forward<_Up>(__u)) - { - return _S_cmp(std::forward<_Tp>(__t), std::forward<_Up>(__u), - __ptr_cmp<_Tp, _Up>{}); - } - - template - constexpr bool - operator()(_Tp* __t, _Up* __u) const noexcept - { return greater_equal>{}(__t, __u); } - - typedef __is_transparent is_transparent; - - private: - template - static constexpr decltype(auto) - _S_cmp(_Tp&& __t, _Up&& __u, false_type) - { return std::forward<_Tp>(__t) >= std::forward<_Up>(__u); } - - template - static constexpr bool - _S_cmp(_Tp&& __t, _Up&& __u, true_type) noexcept - { - return greater_equal{}( - static_cast(std::forward<_Tp>(__t)), - static_cast(std::forward<_Up>(__u))); - } - - // True if there is no viable operator>= member function. - template - struct __not_overloaded2 : true_type { }; - - // False if we can call T.operator>=(U) - template - struct __not_overloaded2<_Tp, _Up, __void_t< - decltype(std::declval<_Tp>().operator>=(std::declval<_Up>()))>> - : false_type { }; - - // True if there is no overloaded operator>= for these operands. - template - struct __not_overloaded : __not_overloaded2<_Tp, _Up> { }; - - // False if we can call operator>=(T,U) - template - struct __not_overloaded<_Tp, _Up, __void_t< - decltype(operator>=(std::declval<_Tp>(), std::declval<_Up>()))>> - : false_type { }; - - template - using __ptr_cmp = __and_<__not_overloaded<_Tp, _Up>, - is_convertible<_Tp, const volatile void*>, - is_convertible<_Up, const volatile void*>>; - }; - - /// One of the @link comparison_functors comparison functors@endlink. - template<> - struct less_equal - { - template - constexpr auto - operator()(_Tp&& __t, _Up&& __u) const - noexcept(noexcept(std::forward<_Tp>(__t) <= std::forward<_Up>(__u))) - -> decltype(std::forward<_Tp>(__t) <= std::forward<_Up>(__u)) - { - return _S_cmp(std::forward<_Tp>(__t), std::forward<_Up>(__u), - __ptr_cmp<_Tp, _Up>{}); - } - - template - constexpr bool - operator()(_Tp* __t, _Up* __u) const noexcept - { return less_equal>{}(__t, __u); } - - typedef __is_transparent is_transparent; - - private: - template - static constexpr decltype(auto) - _S_cmp(_Tp&& __t, _Up&& __u, false_type) - { return std::forward<_Tp>(__t) <= std::forward<_Up>(__u); } - - template - static constexpr bool - _S_cmp(_Tp&& __t, _Up&& __u, true_type) noexcept - { - return less_equal{}( - static_cast(std::forward<_Tp>(__t)), - static_cast(std::forward<_Up>(__u))); - } - - // True if there is no viable operator<= member function. - template - struct __not_overloaded2 : true_type { }; - - // False if we can call T.operator<=(U) - template - struct __not_overloaded2<_Tp, _Up, __void_t< - decltype(std::declval<_Tp>().operator<=(std::declval<_Up>()))>> - : false_type { }; - - // True if there is no overloaded operator<= for these operands. - template - struct __not_overloaded : __not_overloaded2<_Tp, _Up> { }; - - // False if we can call operator<=(T,U) - template - struct __not_overloaded<_Tp, _Up, __void_t< - decltype(operator<=(std::declval<_Tp>(), std::declval<_Up>()))>> - : false_type { }; - - template - using __ptr_cmp = __and_<__not_overloaded<_Tp, _Up>, - is_convertible<_Tp, const volatile void*>, - is_convertible<_Up, const volatile void*>>; - }; -#endif // C++14 - /** @} */ - - // 20.3.4 logical operations - /** @defgroup logical_functors Boolean Operations Classes - * @ingroup functors - * - * The library provides function objects for the logical operations: - * `&&`, `||`, and `!`. - * - * @{ - */ -#if __cplusplus > 201103L - template - struct logical_and; - - template - struct logical_or; - - template - struct logical_not; -#endif - -#pragma GCC diagnostic push -#pragma GCC diagnostic ignored "-Wdeprecated-declarations" - - /// One of the @link logical_functors Boolean operations functors@endlink. - template - struct logical_and : public binary_function<_Tp, _Tp, bool> - { - _GLIBCXX14_CONSTEXPR - bool - operator()(const _Tp& __x, const _Tp& __y) const - { return __x && __y; } - }; - - /// One of the @link logical_functors Boolean operations functors@endlink. - template - struct logical_or : public binary_function<_Tp, _Tp, bool> - { - _GLIBCXX14_CONSTEXPR - bool - operator()(const _Tp& __x, const _Tp& __y) const - { return __x || __y; } - }; - - /// One of the @link logical_functors Boolean operations functors@endlink. - template - struct logical_not : public unary_function<_Tp, bool> - { - _GLIBCXX14_CONSTEXPR - bool - operator()(const _Tp& __x) const - { return !__x; } - }; -#pragma GCC diagnostic pop - -#if __cplusplus > 201103L - /// One of the @link logical_functors Boolean operations functors@endlink. - template<> - struct logical_and - { - template - _GLIBCXX14_CONSTEXPR - auto - operator()(_Tp&& __t, _Up&& __u) const - noexcept(noexcept(std::forward<_Tp>(__t) && std::forward<_Up>(__u))) - -> decltype(std::forward<_Tp>(__t) && std::forward<_Up>(__u)) - { return std::forward<_Tp>(__t) && std::forward<_Up>(__u); } - - typedef __is_transparent is_transparent; - }; - - /// One of the @link logical_functors Boolean operations functors@endlink. - template<> - struct logical_or - { - template - _GLIBCXX14_CONSTEXPR - auto - operator()(_Tp&& __t, _Up&& __u) const - noexcept(noexcept(std::forward<_Tp>(__t) || std::forward<_Up>(__u))) - -> decltype(std::forward<_Tp>(__t) || std::forward<_Up>(__u)) - { return std::forward<_Tp>(__t) || std::forward<_Up>(__u); } - - typedef __is_transparent is_transparent; - }; - - /// One of the @link logical_functors Boolean operations functors@endlink. - template<> - struct logical_not - { - template - _GLIBCXX14_CONSTEXPR - auto - operator()(_Tp&& __t) const - noexcept(noexcept(!std::forward<_Tp>(__t))) - -> decltype(!std::forward<_Tp>(__t)) - { return !std::forward<_Tp>(__t); } - - typedef __is_transparent is_transparent; - }; -#endif - /** @} */ - -#if __cplusplus > 201103L - template - struct bit_and; - - template - struct bit_or; - - template - struct bit_xor; - - template - struct bit_not; -#endif - -#pragma GCC diagnostic push -#pragma GCC diagnostic ignored "-Wdeprecated-declarations" - - // _GLIBCXX_RESOLVE_LIB_DEFECTS - // DR 660. Missing Bitwise Operations. - template - struct bit_and : public binary_function<_Tp, _Tp, _Tp> - { - _GLIBCXX14_CONSTEXPR - _Tp - operator()(const _Tp& __x, const _Tp& __y) const - { return __x & __y; } - }; - - template - struct bit_or : public binary_function<_Tp, _Tp, _Tp> - { - _GLIBCXX14_CONSTEXPR - _Tp - operator()(const _Tp& __x, const _Tp& __y) const - { return __x | __y; } - }; - - template - struct bit_xor : public binary_function<_Tp, _Tp, _Tp> - { - _GLIBCXX14_CONSTEXPR - _Tp - operator()(const _Tp& __x, const _Tp& __y) const - { return __x ^ __y; } - }; - - template - struct bit_not : public unary_function<_Tp, _Tp> - { - _GLIBCXX14_CONSTEXPR - _Tp - operator()(const _Tp& __x) const - { return ~__x; } - }; -#pragma GCC diagnostic pop - -#if __cplusplus > 201103L - template <> - struct bit_and - { - template - _GLIBCXX14_CONSTEXPR - auto - operator()(_Tp&& __t, _Up&& __u) const - noexcept(noexcept(std::forward<_Tp>(__t) & std::forward<_Up>(__u))) - -> decltype(std::forward<_Tp>(__t) & std::forward<_Up>(__u)) - { return std::forward<_Tp>(__t) & std::forward<_Up>(__u); } - - typedef __is_transparent is_transparent; - }; - - template <> - struct bit_or - { - template - _GLIBCXX14_CONSTEXPR - auto - operator()(_Tp&& __t, _Up&& __u) const - noexcept(noexcept(std::forward<_Tp>(__t) | std::forward<_Up>(__u))) - -> decltype(std::forward<_Tp>(__t) | std::forward<_Up>(__u)) - { return std::forward<_Tp>(__t) | std::forward<_Up>(__u); } - - typedef __is_transparent is_transparent; - }; - - template <> - struct bit_xor - { - template - _GLIBCXX14_CONSTEXPR - auto - operator()(_Tp&& __t, _Up&& __u) const - noexcept(noexcept(std::forward<_Tp>(__t) ^ std::forward<_Up>(__u))) - -> decltype(std::forward<_Tp>(__t) ^ std::forward<_Up>(__u)) - { return std::forward<_Tp>(__t) ^ std::forward<_Up>(__u); } - - typedef __is_transparent is_transparent; - }; - - template <> - struct bit_not - { - template - _GLIBCXX14_CONSTEXPR - auto - operator()(_Tp&& __t) const - noexcept(noexcept(~std::forward<_Tp>(__t))) - -> decltype(~std::forward<_Tp>(__t)) - { return ~std::forward<_Tp>(__t); } - - typedef __is_transparent is_transparent; - }; -#endif // C++14 - -#pragma GCC diagnostic push -#pragma GCC diagnostic ignored "-Wdeprecated-declarations" - - // 20.3.5 negators - /** @defgroup negators Negators - * @ingroup functors - * - * The function templates `not1` and `not2` are function object adaptors, - * which each take a predicate functor and wrap it in an instance of - * `unary_negate` or `binary_negate`, respectively. Those classes are - * functors whose `operator()` evaluates the wrapped predicate function - * and then returns the negation of the result. - * - * For example, given a vector of integers and a trivial predicate, - * \code - * struct IntGreaterThanThree - * : public std::unary_function - * { - * bool operator() (int x) const { return x > 3; } - * }; - * - * std::find_if (v.begin(), v.end(), not1(IntGreaterThanThree())); - * \endcode - * The call to `find_if` will locate the first index (i) of `v` for which - * `!(v[i] > 3)` is true. - * - * The not1/unary_negate combination works on predicates taking a single - * argument. The not2/binary_negate combination works on predicates taking - * two arguments. - * - * @deprecated Deprecated in C++17, no longer in the standard since C++20. - * Use `not_fn` instead. - * - * @{ - */ - /// One of the @link negators negation functors@endlink. - template - class _GLIBCXX17_DEPRECATED unary_negate - : public unary_function - { - protected: - _Predicate _M_pred; - - public: - _GLIBCXX14_CONSTEXPR - explicit - unary_negate(const _Predicate& __x) : _M_pred(__x) { } - - _GLIBCXX14_CONSTEXPR - bool - operator()(const typename _Predicate::argument_type& __x) const - { return !_M_pred(__x); } - }; - - /// One of the @link negators negation functors@endlink. - template - _GLIBCXX17_DEPRECATED_SUGGEST("std::not_fn") - _GLIBCXX14_CONSTEXPR - inline unary_negate<_Predicate> - not1(const _Predicate& __pred) - { return unary_negate<_Predicate>(__pred); } - - /// One of the @link negators negation functors@endlink. - template - class _GLIBCXX17_DEPRECATED binary_negate - : public binary_function - { - protected: - _Predicate _M_pred; - - public: - _GLIBCXX14_CONSTEXPR - explicit - binary_negate(const _Predicate& __x) : _M_pred(__x) { } - - _GLIBCXX14_CONSTEXPR - bool - operator()(const typename _Predicate::first_argument_type& __x, - const typename _Predicate::second_argument_type& __y) const - { return !_M_pred(__x, __y); } - }; - - /// One of the @link negators negation functors@endlink. - template - _GLIBCXX17_DEPRECATED_SUGGEST("std::not_fn") - _GLIBCXX14_CONSTEXPR - inline binary_negate<_Predicate> - not2(const _Predicate& __pred) - { return binary_negate<_Predicate>(__pred); } - /** @} */ - - // 20.3.7 adaptors pointers functions - /** @defgroup pointer_adaptors Adaptors for pointers to functions - * @ingroup functors - * - * The advantage of function objects over pointers to functions is that - * the objects in the standard library declare nested typedefs describing - * their argument and result types with uniform names (e.g., `result_type` - * from the base classes `unary_function` and `binary_function`). - * Sometimes those typedefs are required, not just optional. - * - * Adaptors are provided to turn pointers to unary (single-argument) and - * binary (double-argument) functions into function objects. The - * long-winded functor `pointer_to_unary_function` is constructed with a - * function pointer `f`, and its `operator()` called with argument `x` - * returns `f(x)`. The functor `pointer_to_binary_function` does the same - * thing, but with a double-argument `f` and `operator()`. - * - * The function `ptr_fun` takes a pointer-to-function `f` and constructs - * an instance of the appropriate functor. - * - * @deprecated Deprecated in C++11, no longer in the standard since C++17. - * - * @{ - */ - /// One of the @link pointer_adaptors adaptors for function pointers@endlink. - template - class pointer_to_unary_function : public unary_function<_Arg, _Result> - { - protected: - _Result (*_M_ptr)(_Arg); - - public: - pointer_to_unary_function() { } - - explicit - pointer_to_unary_function(_Result (*__x)(_Arg)) - : _M_ptr(__x) { } - - _Result - operator()(_Arg __x) const - { return _M_ptr(__x); } - } _GLIBCXX11_DEPRECATED; - - /// One of the @link pointer_adaptors adaptors for function pointers@endlink. - template - _GLIBCXX11_DEPRECATED_SUGGEST("std::function") - inline pointer_to_unary_function<_Arg, _Result> - ptr_fun(_Result (*__x)(_Arg)) - { return pointer_to_unary_function<_Arg, _Result>(__x); } - - /// One of the @link pointer_adaptors adaptors for function pointers@endlink. - template - class pointer_to_binary_function - : public binary_function<_Arg1, _Arg2, _Result> - { - protected: - _Result (*_M_ptr)(_Arg1, _Arg2); - - public: - pointer_to_binary_function() { } - - explicit - pointer_to_binary_function(_Result (*__x)(_Arg1, _Arg2)) - : _M_ptr(__x) { } - - _Result - operator()(_Arg1 __x, _Arg2 __y) const - { return _M_ptr(__x, __y); } - } _GLIBCXX11_DEPRECATED; - - /// One of the @link pointer_adaptors adaptors for function pointers@endlink. - template - _GLIBCXX11_DEPRECATED_SUGGEST("std::function") - inline pointer_to_binary_function<_Arg1, _Arg2, _Result> - ptr_fun(_Result (*__x)(_Arg1, _Arg2)) - { return pointer_to_binary_function<_Arg1, _Arg2, _Result>(__x); } - /** @} */ - - template - struct _Identity - : public unary_function<_Tp, _Tp> - { - _Tp& - operator()(_Tp& __x) const - { return __x; } - - const _Tp& - operator()(const _Tp& __x) const - { return __x; } - }; - - // Partial specialization, avoids confusing errors in e.g. std::set. - template struct _Identity : _Identity<_Tp> { }; - - template - struct _Select1st - : public unary_function<_Pair, typename _Pair::first_type> - { - typename _Pair::first_type& - operator()(_Pair& __x) const - { return __x.first; } - - const typename _Pair::first_type& - operator()(const _Pair& __x) const - { return __x.first; } - -#if __cplusplus >= 201103L - template - typename _Pair2::first_type& - operator()(_Pair2& __x) const - { return __x.first; } - - template - const typename _Pair2::first_type& - operator()(const _Pair2& __x) const - { return __x.first; } -#endif - }; - - template - struct _Select2nd - : public unary_function<_Pair, typename _Pair::second_type> - { - typename _Pair::second_type& - operator()(_Pair& __x) const - { return __x.second; } - - const typename _Pair::second_type& - operator()(const _Pair& __x) const - { return __x.second; } - }; - - // 20.3.8 adaptors pointers members - /** @defgroup ptrmem_adaptors Adaptors for pointers to members - * @ingroup functors - * - * There are a total of 8 = 2^3 function objects in this family. - * (1) Member functions taking no arguments vs member functions taking - * one argument. - * (2) Call through pointer vs call through reference. - * (3) Const vs non-const member function. - * - * All of this complexity is in the function objects themselves. You can - * ignore it by using the helper function `mem_fun` and `mem_fun_ref`, - * which create whichever type of adaptor is appropriate. - * - * @deprecated Deprecated in C++11, no longer in the standard since C++17. - * Use `mem_fn` instead. - * - * @{ - */ - /// One of the @link ptrmem_adaptors adaptors for member pointers@endlink. - template - class mem_fun_t : public unary_function<_Tp*, _Ret> - { - public: - explicit - mem_fun_t(_Ret (_Tp::*__pf)()) - : _M_f(__pf) { } - - _Ret - operator()(_Tp* __p) const - { return (__p->*_M_f)(); } - - private: - _Ret (_Tp::*_M_f)(); - } _GLIBCXX11_DEPRECATED; - - /// One of the @link ptrmem_adaptors adaptors for member pointers@endlink. - template - class const_mem_fun_t : public unary_function - { - public: - explicit - const_mem_fun_t(_Ret (_Tp::*__pf)() const) - : _M_f(__pf) { } - - _Ret - operator()(const _Tp* __p) const - { return (__p->*_M_f)(); } - - private: - _Ret (_Tp::*_M_f)() const; - } _GLIBCXX11_DEPRECATED; - - /// One of the @link ptrmem_adaptors adaptors for member pointers@endlink. - template - class mem_fun_ref_t : public unary_function<_Tp, _Ret> - { - public: - explicit - mem_fun_ref_t(_Ret (_Tp::*__pf)()) - : _M_f(__pf) { } - - _Ret - operator()(_Tp& __r) const - { return (__r.*_M_f)(); } - - private: - _Ret (_Tp::*_M_f)(); - } _GLIBCXX11_DEPRECATED; - - /// One of the @link ptrmem_adaptors adaptors for member pointers@endlink. - template - class const_mem_fun_ref_t : public unary_function<_Tp, _Ret> - { - public: - explicit - const_mem_fun_ref_t(_Ret (_Tp::*__pf)() const) - : _M_f(__pf) { } - - _Ret - operator()(const _Tp& __r) const - { return (__r.*_M_f)(); } - - private: - _Ret (_Tp::*_M_f)() const; - } _GLIBCXX11_DEPRECATED; - - /// One of the @link ptrmem_adaptors adaptors for member pointers@endlink. - template - class mem_fun1_t : public binary_function<_Tp*, _Arg, _Ret> - { - public: - explicit - mem_fun1_t(_Ret (_Tp::*__pf)(_Arg)) - : _M_f(__pf) { } - - _Ret - operator()(_Tp* __p, _Arg __x) const - { return (__p->*_M_f)(__x); } - - private: - _Ret (_Tp::*_M_f)(_Arg); - } _GLIBCXX11_DEPRECATED; - - /// One of the @link ptrmem_adaptors adaptors for member pointers@endlink. - template - class const_mem_fun1_t : public binary_function - { - public: - explicit - const_mem_fun1_t(_Ret (_Tp::*__pf)(_Arg) const) - : _M_f(__pf) { } - - _Ret - operator()(const _Tp* __p, _Arg __x) const - { return (__p->*_M_f)(__x); } - - private: - _Ret (_Tp::*_M_f)(_Arg) const; - } _GLIBCXX11_DEPRECATED; - - /// One of the @link ptrmem_adaptors adaptors for member pointers@endlink. - template - class mem_fun1_ref_t : public binary_function<_Tp, _Arg, _Ret> - { - public: - explicit - mem_fun1_ref_t(_Ret (_Tp::*__pf)(_Arg)) - : _M_f(__pf) { } - - _Ret - operator()(_Tp& __r, _Arg __x) const - { return (__r.*_M_f)(__x); } - - private: - _Ret (_Tp::*_M_f)(_Arg); - } _GLIBCXX11_DEPRECATED; - - /// One of the @link ptrmem_adaptors adaptors for member pointers@endlink. - template - class const_mem_fun1_ref_t : public binary_function<_Tp, _Arg, _Ret> - { - public: - explicit - const_mem_fun1_ref_t(_Ret (_Tp::*__pf)(_Arg) const) - : _M_f(__pf) { } - - _Ret - operator()(const _Tp& __r, _Arg __x) const - { return (__r.*_M_f)(__x); } - - private: - _Ret (_Tp::*_M_f)(_Arg) const; - } _GLIBCXX11_DEPRECATED; - - // Mem_fun adaptor helper functions. There are only two: - // mem_fun and mem_fun_ref. - template - _GLIBCXX11_DEPRECATED_SUGGEST("std::mem_fn") - inline mem_fun_t<_Ret, _Tp> - mem_fun(_Ret (_Tp::*__f)()) - { return mem_fun_t<_Ret, _Tp>(__f); } - - template - _GLIBCXX11_DEPRECATED_SUGGEST("std::mem_fn") - inline const_mem_fun_t<_Ret, _Tp> - mem_fun(_Ret (_Tp::*__f)() const) - { return const_mem_fun_t<_Ret, _Tp>(__f); } - - template - _GLIBCXX11_DEPRECATED_SUGGEST("std::mem_fn") - inline mem_fun_ref_t<_Ret, _Tp> - mem_fun_ref(_Ret (_Tp::*__f)()) - { return mem_fun_ref_t<_Ret, _Tp>(__f); } - - template - _GLIBCXX11_DEPRECATED_SUGGEST("std::mem_fn") - inline const_mem_fun_ref_t<_Ret, _Tp> - mem_fun_ref(_Ret (_Tp::*__f)() const) - { return const_mem_fun_ref_t<_Ret, _Tp>(__f); } - - template - _GLIBCXX11_DEPRECATED_SUGGEST("std::mem_fn") - inline mem_fun1_t<_Ret, _Tp, _Arg> - mem_fun(_Ret (_Tp::*__f)(_Arg)) - { return mem_fun1_t<_Ret, _Tp, _Arg>(__f); } - - template - _GLIBCXX11_DEPRECATED_SUGGEST("std::mem_fn") - inline const_mem_fun1_t<_Ret, _Tp, _Arg> - mem_fun(_Ret (_Tp::*__f)(_Arg) const) - { return const_mem_fun1_t<_Ret, _Tp, _Arg>(__f); } - - template - _GLIBCXX11_DEPRECATED_SUGGEST("std::mem_fn") - inline mem_fun1_ref_t<_Ret, _Tp, _Arg> - mem_fun_ref(_Ret (_Tp::*__f)(_Arg)) - { return mem_fun1_ref_t<_Ret, _Tp, _Arg>(__f); } - - template - _GLIBCXX11_DEPRECATED_SUGGEST("std::mem_fn") - inline const_mem_fun1_ref_t<_Ret, _Tp, _Arg> - mem_fun_ref(_Ret (_Tp::*__f)(_Arg) const) - { return const_mem_fun1_ref_t<_Ret, _Tp, _Arg>(__f); } -#pragma GCC diagnostic pop - - /** @} */ - -#if __cplusplus >= 201402L - template> - struct __has_is_transparent - { }; - - template - struct __has_is_transparent<_Func, _SfinaeType, - __void_t> - { typedef void type; }; - - template - using __has_is_transparent_t - = typename __has_is_transparent<_Func, _SfinaeType>::type; -#endif - -_GLIBCXX_END_NAMESPACE_VERSION -} // namespace - -#if (__cplusplus < 201103L) || _GLIBCXX_USE_DEPRECATED -# include -#endif - -#endif /* _STL_FUNCTION_H */ diff --git a/.ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@c++@13.1.1@bits@stl_function.h.blob b/.ccls-cache/@@home@tz@code@git@github@Mate-Rechner/@usr@include@c++@13.1.1@bits@stl_function.h.blob deleted file mode 100644 index edfee4590296cdb2023e4b202417c26741b5365f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 99658 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