--- /srv/reproducible-results/rbuild-debian/r-b-build.6vY3tY8G/b1/gcc-15_15-20250319-1_i386.changes +++ /srv/reproducible-results/rbuild-debian/r-b-build.6vY3tY8G/b2/gcc-15_15-20250319-1_i386.changes ├── Files │ @@ -3,28 +3,28 @@ │ 7acb72fe249d10fc3970073e2deca933 1136 interpreters optional cpp-15-for-host_15-20250319-1_i386.deb │ 48004943942d296b4e82c9d438d1874a 5539820 debug optional cpp-15-i686-linux-gnu-dbgsym_15-20250319-1_i386.deb │ 39c61f896a9061e5ebd29a957601bcbe 96445060 interpreters optional cpp-15-i686-linux-gnu_15-20250319-1_i386.deb │ 4e2ca15ba830a61d7180f2cb1903e5c8 1276 interpreters optional cpp-15_15-20250319-1_i386.deb │ 650755ff821d5c143823920983bd9752 1004 devel optional g++-15-for-build_15-20250319-1_all.deb │ b932ed882b944a8ad562e7622c232b85 1048 devel optional g++-15-for-host_15-20250319-1_i386.deb │ 242f5d5d6a476f26b9439e23bd4f96f4 6354296 debug optional g++-15-i686-linux-gnu-dbgsym_15-20250319-1_i386.deb │ - a360c28ed24c3da374d3b42bd7619c54 104773536 devel optional g++-15-i686-linux-gnu_15-20250319-1_i386.deb │ + 757b8f8587018611b9f9d102114e7db5 104774756 devel optional g++-15-i686-linux-gnu_15-20250319-1_i386.deb │ cc148d3538130300aa9d97a8592f77ab 1036 devel optional g++-15-multilib_15-20250319-1_i386.deb │ 55130d70942e9964975a67dbdb36f1cb 15692 devel optional g++-15_15-20250319-1_i386.deb │ f2670faf34cf3116a11cdd41e682e119 93944 doc optional ga68-15-doc_15-20250319-1_all.deb │ 849f8f7a51bdb35c517d6f83c962b581 1036 devel optional ga68-15-for-build_15-20250319-1_all.deb │ 6f402a1d830685c49063a82f96e9a332 1084 devel optional ga68-15-for-host_15-20250319-1_i386.deb │ 3b808797526fb3cd87c84ac7b8da3be5 96936860 devel optional ga68-15-i686-linux-gnu_15-20250319-1_i386.deb │ 40a784677dd4e66d3411f37861d6c135 1080 devel optional ga68-15_15-20250319-1_i386.deb │ f6dc62beb478e3e2728a3cc1bb6e6262 49000 libs optional gcc-15-base_15-20250319-1_i386.deb │ ec8da9f91acbe27521b1df58961152b3 4174896 devel optional gcc-15-diagnostics_15-20250319-1_i386.deb │ b2f9ee6a433ebbff3d8177800be0e980 960 devel optional gcc-15-for-build_15-20250319-1_all.deb │ 64717a66e112a7663d2359a677bfebc5 1020 devel optional gcc-15-for-host_15-20250319-1_i386.deb │ a3e7d48f26c2a2ce7eabfbc97fe46380 276394396 debug optional gcc-15-hppa64-linux-gnu-dbgsym_15-20250319-1_i386.deb │ - 0412a2aa757a33f51ee224e48d5ea9e0 25392488 devel optional gcc-15-hppa64-linux-gnu_15-20250319-1_i386.deb │ + d6d1757fbe59c0aefe8be727e89446c2 25392636 devel optional gcc-15-hppa64-linux-gnu_15-20250319-1_i386.deb │ 400b77fe0eb596c70822df51818610b4 179351880 debug optional gcc-15-i686-linux-gnu-dbgsym_15-20250319-1_i386.deb │ 994431f11b475c59097605438bda76df 107928004 devel optional gcc-15-i686-linux-gnu_15-20250319-1_i386.deb │ 9a9b7503bf2c8fcbbf6d55237c3a4f47 2267988 devel optional gcc-15-locales_15-20250319-1_all.deb │ 2233c7648034db7e21b68b010c39c430 1024 devel optional gcc-15-multilib_15-20250319-1_i386.deb │ 096663cd3c23c90440f6c181dee96169 231760 debug optional gcc-15-plugin-dev-dbgsym_15-20250319-1_i386.deb │ e00b9e30359bf7e76f5846db30fadcfd 1590200 devel optional gcc-15-plugin-dev_15-20250319-1_i386.deb │ 93d89e1ec6c402b761a9167ac11e6f5d 90539604 devel optional gcc-15-source_15-20250319-1_all.deb │ @@ -61,15 +61,15 @@ │ 6fcb8d0ba334514474eb417c7857d7d3 1104 devel optional gnat-15-for-build_15-20250319-1_all.deb │ 4c3b93c9fa5efb4d78085c0a93ce01f7 1152 devel optional gnat-15-for-host_15-20250319-1_i386.deb │ 1763fd72fff756d592e5d1babbd36590 209266376 debug optional gnat-15-i686-linux-gnu-dbgsym_15-20250319-1_i386.deb │ 6dc094345d3ac210fa0db1eb9d26b18d 24638484 devel optional gnat-15-i686-linux-gnu_15-20250319-1_i386.deb │ 84903094e32a7e4c30308089f0b4260c 17640 devel optional gnat-15_15-20250319-1_i386.deb │ fadbb2cf3db8f33d220f1ace25ba2fbc 1044 devel optional gobjc++-15-for-build_15-20250319-1_all.deb │ 0454a31936e4fa04cc7dd1b8d48d3fbc 1092 devel optional gobjc++-15-for-host_15-20250319-1_i386.deb │ - 6ee9d68a13c4e0322a3ef3e2f3fef81f 104565556 devel optional gobjc++-15-i686-linux-gnu_15-20250319-1_i386.deb │ + c7bdb88de05528783d5991bec822ff39 104563072 devel optional gobjc++-15-i686-linux-gnu_15-20250319-1_i386.deb │ 09c8c9089922f4a809622d1f0e149df1 1024 devel optional gobjc++-15-multilib_15-20250319-1_i386.deb │ 6e69cfcb3fbafe999a641941298e90e3 6956 devel optional gobjc++-15_15-20250319-1_i386.deb │ be430fb8117a0cc5d3064f9781f76ba4 1032 devel optional gobjc-15-for-build_15-20250319-1_all.deb │ 1bee910be52c62995f18c31af5b6abc7 1080 devel optional gobjc-15-for-host_15-20250319-1_i386.deb │ 2b7a786c3745ee3c8c24e2a5ca440f9a 96296952 devel optional gobjc-15-i686-linux-gnu_15-20250319-1_i386.deb │ 43530e38af85394a42804d3c6fd898d9 1028 devel optional gobjc-15-multilib_15-20250319-1_i386.deb │ 4c9f89dbe7eaca2ba953d6c55ee50a61 38260 devel optional gobjc-15_15-20250319-1_i386.deb │ @@ -138,15 +138,15 @@ │ f98c7400034e83156109a767f41e2277 28064 libs optional libitm1_15-20250319-1_i386.deb │ cd01606d55fe8fa4e4f9dd8cfbeb7e7a 167860 libdevel optional libobjc-15-dev_15-20250319-1_i386.deb │ c4e039c47e500d350579e658396d9f5b 188896 debug optional libobjc4-dbgsym_15-20250319-1_i386.deb │ f3a0e365c4f09e609f5c6ccf1f4358a7 46608 libs optional libobjc4_15-20250319-1_i386.deb │ 34bb21c5f2d57731adae306b63126fcb 298420 debug optional libquadmath0-dbgsym_15-20250319-1_i386.deb │ e1ddbd8f3e15102c9178becc6babe797 229604 libs optional libquadmath0_15-20250319-1_i386.deb │ 4ec34fbda4b1264438be939517a9eda2 2460776 libdevel optional libstdc++-15-dev_15-20250319-1_i386.deb │ - 7a882b080c3375ddc6fd136f5484aacf 10475868 doc optional libstdc++-15-doc_15-20250319-1_all.deb │ + 51f9606c9428d3910e60e9466abced01 10477432 doc optional libstdc++-15-doc_15-20250319-1_all.deb │ 2dd9e762898ebb7e428a495192a4c204 896656 libdevel optional libstdc++-15-pic_15-20250319-1_i386.deb │ dd82dc75f5244fab11e21978978fc8ae 11404424 debug optional libstdc++6-15-dbg_15-20250319-1_i386.deb │ 57054b31a1928709cbd33cc4a3aeb814 6342076 debug optional libstdc++6-dbgsym_15-20250319-1_i386.deb │ 61b67935c049635215f520ab56757e30 779292 libs optional libstdc++6_15-20250319-1_i386.deb │ 94425cf2a46346f3611d97e9bef6bf10 1081900 libs optional libubsan1_15-20250319-1_i386.deb │ 7c1f27d42a9c4af24cad3748dcbeba88 2621816 libs optional libx32asan8_15-20250319-1_i386.deb │ 98c64c683d7f45172338da0a06a80cb5 31084 debug optional libx32atomic1-dbgsym_15-20250319-1_i386.deb ├── g++-15-i686-linux-gnu_15-20250319-1_i386.deb │ ├── file list │ │ @@ -1,3 +1,3 @@ │ │ -rw-r--r-- 0 0 0 4 2025-03-19 11:38:10.000000 debian-binary │ │ -rw-r--r-- 0 0 0 828 2025-03-19 11:38:10.000000 control.tar.xz │ │ --rw-r--r-- 0 0 0 104772516 2025-03-19 11:38:10.000000 data.tar.xz │ │ +-rw-r--r-- 0 0 0 104773736 2025-03-19 11:38:10.000000 data.tar.xz │ ├── control.tar.xz │ │ ├── control.tar │ │ │ ├── ./md5sums │ │ │ │ ├── ./md5sums │ │ │ │ │┄ Files differ │ ├── data.tar.xz │ │ ├── data.tar │ │ │ ├── ./usr/libexec/gcc/i686-linux-gnu/15/cc1plus │ │ │ │┄ File has been modified after NT_GNU_BUILD_ID has been applied. │ │ │ │ ├── readelf --wide --notes {} │ │ │ │ │ @@ -1,11 +1,11 @@ │ │ │ │ │ │ │ │ │ │ Displaying notes found in: .note.gnu.build-id │ │ │ │ │ Owner Data size Description │ │ │ │ │ - GNU 0x00000014 NT_GNU_BUILD_ID (unique build ID bitstring) Build ID: 4980378d881a6e86c0991298f6f877ff81e8963e │ │ │ │ │ + GNU 0x00000014 NT_GNU_BUILD_ID (unique build ID bitstring) Build ID: d368f37e0ff2ca5244737b28a32bb4f00802d222 │ │ │ │ │ │ │ │ │ │ Displaying notes found in: .note.ABI-tag │ │ │ │ │ Owner Data size Description │ │ │ │ │ GNU 0x00000010 NT_GNU_ABI_TAG (ABI version tag) OS: Linux, ABI: 3.2.0 │ │ │ │ │ │ │ │ │ │ Displaying notes found in: .note.package │ │ │ │ │ Owner Data size Description │ │ │ │ ├── readelf --wide --debug-dump=info {} │ │ │ │ │ @@ -3929359,15 +3929359,15 @@ │ │ │ │ │ <896087> DW_AT_call_origin : (ref4) <0x8f27e0> │ │ │ │ │ <89608b> DW_AT_sibling : (ref4) <0x8960a0> │ │ │ │ │ <3><89608f>: Abbrev Number: 8 (DW_TAG_call_site_parameter) │ │ │ │ │ <896090> DW_AT_location : (exprloc) 1 byte block: 50 (DW_OP_reg0 (eax)) │ │ │ │ │ <896092> DW_AT_call_value : (exprloc) 2 byte block: 91 50 (DW_OP_fbreg: -48) │ │ │ │ │ <3><896095>: Abbrev Number: 8 (DW_TAG_call_site_parameter) │ │ │ │ │ <896096> DW_AT_location : (exprloc) 1 byte block: 52 (DW_OP_reg2 (edx)) │ │ │ │ │ - <896098> DW_AT_call_value : (exprloc) 6 byte block: 11 95 b7 ca a9 79 (DW_OP_consts: -1791845483) │ │ │ │ │ + <896098> DW_AT_call_value : (exprloc) 6 byte block: 11 ed 86 cb a9 79 (DW_OP_consts: -1791835283) │ │ │ │ │ <3><89609f>: Abbrev Number: 0 │ │ │ │ │ <2><8960a0>: Abbrev Number: 16 (DW_TAG_call_site) │ │ │ │ │ <8960a1> DW_AT_call_return_pc: (addr) 0x879abe0 │ │ │ │ │ <8960a5> DW_AT_call_origin : (ref4) <0x8f27e0> │ │ │ │ │ <8960a9> DW_AT_sibling : (ref4) <0x8960bb> │ │ │ │ │ <3><8960ad>: Abbrev Number: 8 (DW_TAG_call_site_parameter) │ │ │ │ │ <8960ae> DW_AT_location : (exprloc) 1 byte block: 50 (DW_OP_reg0 (eax)) │ │ │ │ │ @@ -4194297,8 +4194297,8 @@ │ │ │ │ │ <937a2b> DW_AT_call_file : (data1) 13 │ │ │ │ │ <937a2c> DW_AT_call_line : (data2) 1042 │ │ │ │ │ <937a2e> DW_AT_call_column : (data1) 30 │ │ │ │ │ <937a2f> DW_AT_sibling : (ref4) <0x937a85> │ │ │ │ │ <3><937a33>: Abbrev Number: 1 (DW_TAG_formal_parameter) │ │ │ │ │ <937a34> DW_AT_abstract_origin: (ref4) <0x936294> │ │ │ │ │ <937a38> DW_AT_location : (sec_offset) 0x423e13 (location list) │ │ │ │ │ -[ Too much input for diff (SHA256: a64898540f584713819770bfd00952d9e79b8562fa34d7d136fa8f9379b380ef) ] │ │ │ │ │ +[ Too much input for diff (SHA256: 8c3d6255e3ff4e6394522991688638b6b53d34450f43ee08a6a1bee6fdc05901) ] │ │ │ │ ├── readelf --wide --debug-dump=loc {} │ │ │ │ │ @@ -1287814,33 +1287814,33 @@ │ │ │ │ │ 0039bd6e v0000000 v0000000 views at 0039bd53 for: │ │ │ │ │ 083b9421 083b9455 (DW_OP_reg3 (ebx)) │ │ │ │ │ 0039bd76 │ │ │ │ │ │ │ │ │ │ 0039bd77 v0000003 v0000000 location view pair │ │ │ │ │ │ │ │ │ │ 0039bd79 v0000003 v0000000 views at 0039bd77 for: │ │ │ │ │ - 087a6e65 087a6e82 (DW_OP_implicit_value 4 byte block: 95 9b 32 95 ) │ │ │ │ │ + 087a6e65 087a6e82 (DW_OP_implicit_value 4 byte block: 6d c3 32 95 ) │ │ │ │ │ 0039bd86 │ │ │ │ │ │ │ │ │ │ 0039bd87 v0000003 v0000000 location view pair │ │ │ │ │ │ │ │ │ │ 0039bd89 v0000003 v0000000 views at 0039bd87 for: │ │ │ │ │ 087a6e65 087a6e82 (DW_OP_reg6 (esi)) │ │ │ │ │ 0039bd91 │ │ │ │ │ │ │ │ │ │ 0039bd92 v0000005 v0000000 location view pair │ │ │ │ │ │ │ │ │ │ 0039bd94 v0000005 v0000000 views at 0039bd92 for: │ │ │ │ │ - 087a6e65 087a6e82 (DW_OP_const4u: 250312; DW_OP_stack_value) │ │ │ │ │ + 087a6e65 087a6e82 (DW_OP_const4u: 250313; DW_OP_stack_value) │ │ │ │ │ 0039bda1 │ │ │ │ │ │ │ │ │ │ 0039bda2 v0000006 v0000000 location view pair │ │ │ │ │ │ │ │ │ │ 0039bda4 v0000006 v0000000 views at 0039bda2 for: │ │ │ │ │ - 087a6e65 087a6e82 (DW_OP_const2u: 1813; DW_OP_stack_value) │ │ │ │ │ + 087a6e65 087a6e82 (DW_OP_const2u: 2013; DW_OP_stack_value) │ │ │ │ │ 0039bdaf │ │ │ │ │ │ │ │ │ │ 0039bdb0 v0000002 v0000000 location view pair │ │ │ │ │ 0039bdb2 v0000000 v0000000 location view pair │ │ │ │ │ 0039bdb4 v0000000 v0000000 location view pair │ │ │ │ │ 0039bdb6 v0000000 v0000000 location view pair │ │ │ │ │ 0039bdb8 v0000000 v0000000 location view pair │ │ │ │ │ @@ -1307822,15 +1307822,15 @@ │ │ │ │ │ 003a92ce v0000000 v0000000 views at 003a929a for: │ │ │ │ │ 083b76c8 083b76cd (DW_OP_fbreg: 4) │ │ │ │ │ 003a92d7 │ │ │ │ │ │ │ │ │ │ 003a92d8 v0000001 v0000000 location view pair │ │ │ │ │ │ │ │ │ │ 003a92da v0000001 v0000000 views at 003a92d8 for: │ │ │ │ │ - 0879af47 0879b6c5 (DW_OP_implicit_value 4 byte block: 95 9b 32 95 ) │ │ │ │ │ + 0879af47 0879b6c5 (DW_OP_implicit_value 4 byte block: 6d c3 32 95 ) │ │ │ │ │ 003a92e8 │ │ │ │ │ │ │ │ │ │ 003a92e9 v0000004 v0000000 location view pair │ │ │ │ │ 003a92eb v0000000 v0000000 location view pair │ │ │ │ │ 003a92ed v0000000 v0000000 location view pair │ │ │ │ │ 003a92ef v0000000 v0000000 location view pair │ │ │ │ │ 003a92f1 v0000000 v0000000 location view pair │ │ │ │ │ @@ -1307862,17 +1307862,17 @@ │ │ │ │ │ 003a9421 │ │ │ │ │ │ │ │ │ │ 003a9422 v0000002 v0000000 location view pair │ │ │ │ │ 003a9424 v0000003 v0000000 location view pair │ │ │ │ │ │ │ │ │ │ 003a9426 0879afb2 (base address) │ │ │ │ │ 003a942b v0000002 v0000000 views at 003a9422 for: │ │ │ │ │ - 0879afb2 0879afd7 (DW_OP_implicit_value 4 byte block: 95 9b 32 95 ) │ │ │ │ │ + 0879afb2 0879afd7 (DW_OP_implicit_value 4 byte block: 6d c3 32 95 ) │ │ │ │ │ 003a9435 v0000003 v0000000 views at 003a9424 for: │ │ │ │ │ - 0879b2e4 0879b30d (DW_OP_implicit_value 4 byte block: 95 9b 32 95 ) │ │ │ │ │ + 0879b2e4 0879b30d (DW_OP_implicit_value 4 byte block: 6d c3 32 95 ) │ │ │ │ │ 003a9441 │ │ │ │ │ │ │ │ │ │ 003a9442 v0000002 v0000000 location view pair │ │ │ │ │ 003a9444 v0000000 v0000000 location view pair │ │ │ │ │ 003a9446 v0000000 v0000000 location view pair │ │ │ │ │ 003a9448 v0000003 v0000000 location view pair │ │ │ │ │ 003a944a v0000000 v0000000 location view pair │ │ │ │ │ @@ -1307894,27 +1307894,27 @@ │ │ │ │ │ 003a9481 │ │ │ │ │ │ │ │ │ │ 003a9482 v0000004 v0000000 location view pair │ │ │ │ │ 003a9484 v0000005 v0000000 location view pair │ │ │ │ │ │ │ │ │ │ 003a9486 0879afb2 (base address) │ │ │ │ │ 003a948b v0000004 v0000000 views at 003a9482 for: │ │ │ │ │ - 0879afb2 0879afd7 (DW_OP_const4u: 250312; DW_OP_stack_value) │ │ │ │ │ + 0879afb2 0879afd7 (DW_OP_const4u: 250313; DW_OP_stack_value) │ │ │ │ │ 003a9495 v0000005 v0000000 views at 003a9484 for: │ │ │ │ │ - 0879b2e4 0879b30d (DW_OP_const4u: 250312; DW_OP_stack_value) │ │ │ │ │ + 0879b2e4 0879b30d (DW_OP_const4u: 250313; DW_OP_stack_value) │ │ │ │ │ 003a94a1 │ │ │ │ │ │ │ │ │ │ 003a94a2 v0000005 v0000000 location view pair │ │ │ │ │ 003a94a4 v0000006 v0000000 location view pair │ │ │ │ │ │ │ │ │ │ 003a94a6 0879afb2 (base address) │ │ │ │ │ 003a94ab v0000005 v0000000 views at 003a94a2 for: │ │ │ │ │ - 0879afb2 0879afd7 (DW_OP_const2u: 1813; DW_OP_stack_value) │ │ │ │ │ + 0879afb2 0879afd7 (DW_OP_const2u: 2013; DW_OP_stack_value) │ │ │ │ │ 003a94b3 v0000006 v0000000 views at 003a94a4 for: │ │ │ │ │ - 0879b2e4 0879b30d (DW_OP_const2u: 1813; DW_OP_stack_value) │ │ │ │ │ + 0879b2e4 0879b30d (DW_OP_const2u: 2013; DW_OP_stack_value) │ │ │ │ │ 003a94bd │ │ │ │ │ │ │ │ │ │ 003a94be v0000000 v0000001 location view pair │ │ │ │ │ │ │ │ │ │ 003a94c0 v0000000 v0000001 views at 003a94be for: │ │ │ │ │ 0879b024 0879b024 (DW_OP_lit0; DW_OP_stack_value) │ │ │ │ │ 003a94c9 │ │ │ │ │ @@ -1339952,15 +1339952,15 @@ │ │ │ │ │ 003befd1 v0000000 v0000002 views at 003befcf for: │ │ │ │ │ 08793fd2 08793fd2 (DW_OP_reg3 (ebx)) │ │ │ │ │ 003befd9 │ │ │ │ │ │ │ │ │ │ 003befda v0000002 v0000000 location view pair │ │ │ │ │ │ │ │ │ │ 003befdc v0000002 v0000000 views at 003befda for: │ │ │ │ │ - 0879400a 0879402b (DW_OP_implicit_value 4 byte block: 95 9b 32 95 ) │ │ │ │ │ + 0879400a 0879402b (DW_OP_implicit_value 4 byte block: 6d c3 32 95 ) │ │ │ │ │ 003befe9 │ │ │ │ │ │ │ │ │ │ 003befea v0000002 v0000000 location view pair │ │ │ │ │ 003befec v0000000 v0000000 location view pair │ │ │ │ │ │ │ │ │ │ 003befee 0879400a (base address) │ │ │ │ │ 003beff3 v0000002 v0000000 views at 003befea for: │ │ │ │ │ @@ -1339968,21 +1339968,21 @@ │ │ │ │ │ 003beffa v0000000 v0000000 views at 003befec for: │ │ │ │ │ 08794025 0879402b (DW_OP_reg7 (edi)) │ │ │ │ │ 003befff │ │ │ │ │ │ │ │ │ │ 003bf000 v0000004 v0000000 location view pair │ │ │ │ │ │ │ │ │ │ 003bf002 v0000004 v0000000 views at 003bf000 for: │ │ │ │ │ - 0879400a 0879402b (DW_OP_const4u: 250312; DW_OP_stack_value) │ │ │ │ │ + 0879400a 0879402b (DW_OP_const4u: 250313; DW_OP_stack_value) │ │ │ │ │ 003bf00f │ │ │ │ │ │ │ │ │ │ 003bf010 v0000005 v0000000 location view pair │ │ │ │ │ │ │ │ │ │ 003bf012 v0000005 v0000000 views at 003bf010 for: │ │ │ │ │ - 0879400a 0879402b (DW_OP_const2u: 1813; DW_OP_stack_value) │ │ │ │ │ + 0879400a 0879402b (DW_OP_const2u: 2013; DW_OP_stack_value) │ │ │ │ │ 003bf01d │ │ │ │ │ │ │ │ │ │ 003bf01e v0000001 v0000003 location view pair │ │ │ │ │ │ │ │ │ │ 003bf020 v0000001 v0000003 views at 003bf01e for: │ │ │ │ │ 0879403a 0879403a (DW_OP_reg3 (ebx)) │ │ │ │ │ 003bf028 │ │ │ │ │ @@ -4194297,8 +4194297,8 @@ │ │ │ │ │ 00b92b08 v0000000 v0000001 views at 00b92afd for: │ │ │ │ │ 08b06da1 08b06dae (DW_OP_addr: a635ce6; DW_OP_stack_value) │ │ │ │ │ 00b92b12 v0000000 v0000000 views at 00b92aff for: │ │ │ │ │ 08b06e52 08b06e52 (DW_OP_addr: a635ce6; DW_OP_stack_value) (start == end) │ │ │ │ │ 00b92b1e v0000000 v0000000 views at 00b92b01 for: │ │ │ │ │ 0845ebcf 0845ebe9 (DW_OP_addr: a635ce6; DW_OP_stack_value) │ │ │ │ │ 00b92b2b │ │ │ │ │ -[ Too much input for diff (SHA256: 52a255bcad10c8cc27b293e4e2450de8fb051a120c4c35eaa2c1536c76582019) ] │ │ │ │ │ +[ Too much input for diff (SHA256: 6e5cdca488700592e07dc6c4498e1833175bdf79741a1e7c4a47192faee18be8) ] │ │ │ │ ├── strings --all --bytes=8 {} │ │ │ │ │ @@ -1,8 +1,8 @@ │ │ │ │ │ ->/lib/ld-linux.so.2 │ │ │ │ │ +"/lib/ld-linux.so.2 │ │ │ │ │ j$! >+@vH │ │ │ │ │ 'pf`"J A │ │ │ │ │ h,@- @PI │ │ │ │ │ %%+#^dGP(I │ │ │ │ │ $ I(`Y@D │ │ │ │ │ $Is%`&Y` │ │ │ │ │ [:.H1<(sR │ │ │ │ ├── objdump --line-numbers --disassemble --demangle --reloc --no-show-raw-insn --section=.text {} │ │ │ │ │ @@ -1685552,16 +1685552,16 @@ │ │ │ │ │ push %esi │ │ │ │ │ call 8789f30 <(anonymous namespace)::bytes_out::printf(char const*, ...)> │ │ │ │ │ /build/reproducible-path/gcc-15-15-20250319/build/gcc/../../src/gcc/cp/module.cc:314 │ │ │ │ │ push $0xa6dbb00 │ │ │ │ │ version2string(): │ │ │ │ │ /build/reproducible-path/gcc-15-15-20250319/build/gcc/../../src/gcc/cp/module.cc:314 │ │ │ │ │ push $0xd │ │ │ │ │ - push $0x12 │ │ │ │ │ - push $0xc │ │ │ │ │ + push $0x14 │ │ │ │ │ + push $0xd │ │ │ │ │ push $0x3 │ │ │ │ │ push $0x7e9 │ │ │ │ │ push $0xa608d41 │ │ │ │ │ lea 0x4c(%esp),%edi │ │ │ │ │ push %edi │ │ │ │ │ call 8352dd0 │ │ │ │ │ module_state::write_readme(elf_out*, cpp_reader*, char const*): │ │ │ │ │ @@ -1698655,24 +1698655,24 @@ │ │ │ │ │ mov (%eax),%eax │ │ │ │ │ test %eax,%eax │ │ │ │ │ je 879abb5 │ │ │ │ │ mov %edx,0x8(%esp) │ │ │ │ │ module_state::write_config(elf_out*, module_state_config&, unsigned int): │ │ │ │ │ /build/reproducible-path/gcc-15-15-20250319/build/gcc/../../src/gcc/cp/module.cc:19177 (discriminator 2) │ │ │ │ │ push 0x4c(%esp) │ │ │ │ │ - push $0x95329b95 │ │ │ │ │ + push $0x9532c36d │ │ │ │ │ push $0xa6f97b0 │ │ │ │ │ push $0xb9cbfcc │ │ │ │ │ call 8796fc0 │ │ │ │ │ mov 0x18(%esp),%edx │ │ │ │ │ add $0x10,%esp │ │ │ │ │ /build/reproducible-path/gcc-15-15-20250319/build/gcc/../../src/gcc/cp/module.cc:19179 │ │ │ │ │ mov %edx,0x14(%esp) │ │ │ │ │ lea 0x10(%esp),%eax │ │ │ │ │ - mov $0x95329b95,%edx │ │ │ │ │ + mov $0x9532c36d,%edx │ │ │ │ │ mov %edi,0x10(%esp) │ │ │ │ │ mov %ebp,0x18(%esp) │ │ │ │ │ mov %esi,0x1c(%esp) │ │ │ │ │ call 878a1e0 <(anonymous namespace)::bytes_out::u32(unsigned int)> │ │ │ │ │ /build/reproducible-path/gcc-15-15-20250319/build/gcc/../../src/gcc/cp/module.cc:19180 │ │ │ │ │ mov 0x4c(%esp),%edx │ │ │ │ │ lea 0x10(%esp),%eax │ │ │ │ │ @@ -1699105,30 +1699105,30 @@ │ │ │ │ │ je 879b418 │ │ │ │ │ /build/reproducible-path/gcc-15-15-20250319/build/gcc/../../src/gcc/cp/module.cc:4315 (discriminator 1) │ │ │ │ │ mov (%edx),%eax │ │ │ │ │ test %eax,%eax │ │ │ │ │ je 879b418 │ │ │ │ │ module_state::read_config(module_state_config&): │ │ │ │ │ /build/reproducible-path/gcc-15-15-20250319/build/gcc/../../src/gcc/cp/module.cc:19246 (discriminator 2) │ │ │ │ │ - cmp $0x95329b95,%ebp │ │ │ │ │ + cmp $0x9532c36d,%ebp │ │ │ │ │ je 879b0c8 │ │ │ │ │ /build/reproducible-path/gcc-15-15-20250319/build/gcc/../../src/gcc/cp/module.cc:19246 (discriminator 7) │ │ │ │ │ push %ebp │ │ │ │ │ - push $0x95329b95 │ │ │ │ │ + push $0x9532c36d │ │ │ │ │ push $0xa609857 │ │ │ │ │ push $0xb9cbfcc │ │ │ │ │ call 8796fc0 │ │ │ │ │ add $0x10,%esp │ │ │ │ │ /build/reproducible-path/gcc-15-15-20250319/build/gcc/../../src/gcc/cp/module.cc:314 │ │ │ │ │ push $0xa6dbb00 │ │ │ │ │ version2string(): │ │ │ │ │ /build/reproducible-path/gcc-15-15-20250319/build/gcc/../../src/gcc/cp/module.cc:314 │ │ │ │ │ push $0xd │ │ │ │ │ - push $0x12 │ │ │ │ │ - push $0xc │ │ │ │ │ + push $0x14 │ │ │ │ │ + push $0xd │ │ │ │ │ push $0x3 │ │ │ │ │ push $0x7e9 │ │ │ │ │ push $0xa608d41 │ │ │ │ │ lea 0x4c(%esp),%eax │ │ │ │ │ mov %eax,0x24(%esp) │ │ │ │ │ push %eax │ │ │ │ │ call 8352dd0 │ │ │ │ │ @@ -1699147,15 +1699147,15 @@ │ │ │ │ │ call a4f50d0 │ │ │ │ │ /build/reproducible-path/gcc-15-15-20250319/build/gcc/../../src/gcc/cp/module.cc:19263 │ │ │ │ │ add $0x10,%esp │ │ │ │ │ cmp $0xfffff,%ebp │ │ │ │ │ mov 0xc(%esp),%edx │ │ │ │ │ jbe 879b33b │ │ │ │ │ /build/reproducible-path/gcc-15-15-20250319/build/gcc/../../src/gcc/cp/module.cc:19261 │ │ │ │ │ - lea 0x6acd6b80(%ebp),%ecx │ │ │ │ │ + lea 0x6acd4470(%ebp),%ecx │ │ │ │ │ /build/reproducible-path/gcc-15-15-20250319/build/gcc/../../src/gcc/cp/module.cc:19268 (discriminator 1) │ │ │ │ │ mov $0xa60980e,%eax │ │ │ │ │ /build/reproducible-path/gcc-15-15-20250319/build/gcc/../../src/gcc/cp/module.cc:19261 │ │ │ │ │ cmp $0x270f,%ecx │ │ │ │ │ ja 879b340 │ │ │ │ │ /build/reproducible-path/gcc-15-15-20250319/build/gcc/../../src/gcc/cp/module.cc:19273 (discriminator 5) │ │ │ │ │ sub $0x8,%esp │ │ │ │ │ @@ -1699218,16 +1699218,16 @@ │ │ │ │ │ sub $0xc,%esp │ │ │ │ │ push 0x10(%esp) │ │ │ │ │ call a4f50e0 │ │ │ │ │ add $0x10,%esp │ │ │ │ │ jmp 879b0e4 │ │ │ │ │ lea 0x0(%esi,%eiz,1),%esi │ │ │ │ │ /build/reproducible-path/gcc-15-15-20250319/build/gcc/../../src/gcc/cp/module.cc:19246 (discriminator 7) │ │ │ │ │ - push $0x95329b95 │ │ │ │ │ - push $0x95329b95 │ │ │ │ │ + push $0x9532c36d │ │ │ │ │ + push $0x9532c36d │ │ │ │ │ push $0xa60986d │ │ │ │ │ push $0xb9cbfcc │ │ │ │ │ call 8796fc0 │ │ │ │ │ add $0x10,%esp │ │ │ │ │ /build/reproducible-path/gcc-15-15-20250319/build/gcc/../../src/gcc/cp/module.cc:395 │ │ │ │ │ lea 0x4(%edi),%eax │ │ │ │ │ use(): │ │ │ │ │ @@ -1699462,16 +1699462,16 @@ │ │ │ │ │ /build/reproducible-path/gcc-15-15-20250319/build/gcc/../../src/gcc/cp/module.cc:19381 │ │ │ │ │ jmp 879b47e │ │ │ │ │ lea 0x0(%esi,%eiz,1),%esi │ │ │ │ │ version2string(): │ │ │ │ │ /build/reproducible-path/gcc-15-15-20250319/build/gcc/../../src/gcc/cp/module.cc:314 │ │ │ │ │ push $0xa6dbb00 │ │ │ │ │ push $0xd │ │ │ │ │ - push $0x12 │ │ │ │ │ - push $0xc │ │ │ │ │ + push $0x14 │ │ │ │ │ + push $0xd │ │ │ │ │ push $0x3 │ │ │ │ │ push $0x7e9 │ │ │ │ │ push $0xa608d41 │ │ │ │ │ lea 0x4c(%esp),%eax │ │ │ │ │ mov %eax,0x24(%esp) │ │ │ │ │ push %eax │ │ │ │ │ call 8352dd0 │ │ │ │ │ @@ -1699585,15 +1699585,15 @@ │ │ │ │ │ mov %esi,%eax │ │ │ │ │ pop %esi │ │ │ │ │ pop %edi │ │ │ │ │ pop %ebp │ │ │ │ │ ret │ │ │ │ │ lea %cs:0x0(%esi,%eiz,1),%esi │ │ │ │ │ /build/reproducible-path/gcc-15-15-20250319/build/gcc/../../src/gcc/cp/module.cc:19248 │ │ │ │ │ - cmp $0x95329b95,%ebp │ │ │ │ │ + cmp $0x9532c36d,%ebp │ │ │ │ │ jne 879afb2 │ │ │ │ │ jmp 879b0e4 │ │ │ │ │ lea 0x0(%esi,%eiz,1),%esi │ │ │ │ │ /build/reproducible-path/gcc-15-15-20250319/build/gcc/../../src/gcc/cp/module.cc:543 │ │ │ │ │ movb $0x1,0x2c(%esp) │ │ │ │ │ dumper::operator()(int): │ │ │ │ │ /build/reproducible-path/gcc-15-15-20250319/build/gcc/../../src/gcc/cp/module.cc:4315 │ │ │ │ │ @@ -1721686,16 +1721686,16 @@ │ │ │ │ │ je 87a6f67 │ │ │ │ │ init_modules(cpp_reader*): │ │ │ │ │ /build/reproducible-path/gcc-15-15-20250319/build/gcc/../../src/gcc/cp/module.cc:314 │ │ │ │ │ push $0xa6dbb00 │ │ │ │ │ version2string(): │ │ │ │ │ /build/reproducible-path/gcc-15-15-20250319/build/gcc/../../src/gcc/cp/module.cc:314 │ │ │ │ │ push $0xd │ │ │ │ │ - push $0x12 │ │ │ │ │ - push $0xc │ │ │ │ │ + push $0x14 │ │ │ │ │ + push $0xd │ │ │ │ │ push $0x3 │ │ │ │ │ push $0x7e9 │ │ │ │ │ push $0xa608d41 │ │ │ │ │ push %esi │ │ │ │ │ call 8352dd0 │ │ │ │ │ init_modules(cpp_reader*): │ │ │ │ │ /build/reproducible-path/gcc-15-15-20250319/build/gcc/../../src/gcc/cp/module.cc:21826 │ │ │ │ │ @@ -4194296,8 +4194296,8 @@ │ │ │ │ │ mov %edx,0x4(%esi) │ │ │ │ │ vec::address(): │ │ │ │ │ /build/reproducible-path/gcc-15-15-20250319/build/gcc/../../src/gcc/vec.h:605 │ │ │ │ │ lea 0x8(%esi),%ecx │ │ │ │ │ vec::embedded_init(unsigned int, unsigned int, unsigned int): │ │ │ │ │ /build/reproducible-path/gcc-15-15-20250319/build/gcc/../../src/gcc/vec.h:1404 │ │ │ │ │ and $0x7fffffff,%eax │ │ │ │ │ -[ Too much input for diff (SHA256: a223c81dcaf5e6efcf1e949928433282cfba87af38100f6c6591bde9cc539966) ] │ │ │ │ │ +[ Too much input for diff (SHA256: bf856860be1d4196b602765ed034c6622a76c4f631718622312d5d88efdd8536) ] │ │ │ │ ├── readelf --wide --decompress --hex-dump=.rodata {} │ │ │ │ │ @@ -169485,16 +169485,16 @@ │ │ │ │ │ 0x0a8950a0 405c9d08 205c9d08 104a9d08 005c9d08 @\.. \...J...\.. │ │ │ │ │ 0x0a8950b0 e05b9d08 c05b9d08 a85b9d08 505b9d08 .[...[...[..P[.. │ │ │ │ │ 0x0a8950c0 105b9d08 f05a9d08 d05a9d08 b05a9d08 .[...Z...Z...Z.. │ │ │ │ │ 0x0a8950d0 905a9d08 705a9d08 505a9d08 305a9d08 .Z..pZ..PZ..0Z.. │ │ │ │ │ 0x0a8950e0 105a9d08 f0599d08 d0599d08 b0599d08 .Z...Y...Y...Y.. │ │ │ │ │ 0x0a8950f0 90599d08 70599d08 50599d08 f0589d08 .Y..pY..PY...X.. │ │ │ │ │ 0x0a895100 30599d08 284a9d08 10599d08 f0589d08 0Y..(J...Y...X.. │ │ │ │ │ - 0x0a895110 284a9d08 10599d08 94396e6f 7a00871f (J...Y...9noz... │ │ │ │ │ - 0x0a895120 ed57ffbf c2232b49 00000000 00000000 .W...#+I........ │ │ │ │ │ + 0x0a895110 284a9d08 10599d08 c1c82465 05ce1878 (J...Y....$e...x │ │ │ │ │ + 0x0a895120 15749d9e a70604a0 00000000 00000000 .t.............. │ │ │ │ │ 0x0a895130 f07d9d08 007e9d08 907d9d08 00000000 .}...~...}...... │ │ │ │ │ 0x0a895140 00000000 207e9d08 407f9d08 b07d9d08 .... ~..@....}.. │ │ │ │ │ 0x0a895150 70709d08 d07d9d08 50709d08 90709d08 pp...}..Pp...p.. │ │ │ │ │ 0x0a895160 00000000 00000000 00709d08 10709d08 .........p...p.. │ │ │ │ │ 0x0a895170 207d9d08 307d9d08 30709d08 407d9d08 }..0}..0p..@}.. │ │ │ │ │ 0x0a895180 507d9d08 707d9d08 807d9d08 107d9d08 P}..p}...}...}.. │ │ │ │ │ 0x0a895190 00000000 00000000 00000000 00000000 ................ ├── gcc-15-hppa64-linux-gnu_15-20250319-1_i386.deb │ ├── file list │ │ @@ -1,3 +1,3 @@ │ │ -rw-r--r-- 0 0 0 4 2025-03-19 11:38:10.000000 debian-binary │ │ --rw-r--r-- 0 0 0 1732 2025-03-19 11:38:10.000000 control.tar.xz │ │ --rw-r--r-- 0 0 0 25390564 2025-03-19 11:38:10.000000 data.tar.xz │ │ +-rw-r--r-- 0 0 0 1728 2025-03-19 11:38:10.000000 control.tar.xz │ │ +-rw-r--r-- 0 0 0 25390716 2025-03-19 11:38:10.000000 data.tar.xz │ ├── control.tar.xz │ │ ├── control.tar │ │ │ ├── ./md5sums │ │ │ │ ├── ./md5sums │ │ │ │ │┄ Files differ │ ├── data.tar.xz │ │ ├── data.tar │ │ │ ├── file list │ │ │ │ @@ -41,15 +41,15 @@ │ │ │ │ drwxr-xr-x 0 root (0) root (0) 0 2025-03-19 11:38:10.000000 ./usr/libexec/gcc/hppa64-linux-gnu/15/ │ │ │ │ -rwxr-xr-x 0 root (0) root (0) 40151504 2025-03-19 11:38:10.000000 ./usr/libexec/gcc/hppa64-linux-gnu/15/cc1 │ │ │ │ -rwxr-xr-x 0 root (0) root (0) 2025996 2025-03-19 11:38:10.000000 ./usr/libexec/gcc/hppa64-linux-gnu/15/collect2 │ │ │ │ -rwxr-xr-x 0 root (0) root (0) 264428 2025-03-19 11:38:10.000000 ./usr/libexec/gcc/hppa64-linux-gnu/15/g++-mapper-server │ │ │ │ drwxr-xr-x 0 root (0) root (0) 0 2025-03-19 11:38:10.000000 ./usr/libexec/gcc/hppa64-linux-gnu/15/install-tools/ │ │ │ │ -rwxr-xr-x 0 root (0) root (0) 13935 2025-03-19 11:38:10.000000 ./usr/libexec/gcc/hppa64-linux-gnu/15/install-tools/fixinc.sh │ │ │ │ -rwxr-xr-x 0 root (0) root (0) 172100 2025-03-19 11:38:10.000000 ./usr/libexec/gcc/hppa64-linux-gnu/15/install-tools/fixincl │ │ │ │ --rwxr-xr-x 0 root (0) root (0) 3712 2025-03-19 11:38:10.000000 ./usr/libexec/gcc/hppa64-linux-gnu/15/install-tools/mkheaders │ │ │ │ +-rwxr-xr-x 0 root (0) root (0) 3710 2025-03-19 11:38:10.000000 ./usr/libexec/gcc/hppa64-linux-gnu/15/install-tools/mkheaders │ │ │ │ -rwxr-xr-x 0 root (0) root (0) 3538 2025-03-19 11:38:10.000000 ./usr/libexec/gcc/hppa64-linux-gnu/15/install-tools/mkinstalldirs │ │ │ │ -rwxr-xr-x 0 root (0) root (0) 100020 2025-03-19 11:38:10.000000 ./usr/libexec/gcc/hppa64-linux-gnu/15/liblto_plugin.so │ │ │ │ -rwxr-xr-x 0 root (0) root (0) 2693760 2025-03-19 11:38:10.000000 ./usr/libexec/gcc/hppa64-linux-gnu/15/lto-wrapper │ │ │ │ -rwxr-xr-x 0 root (0) root (0) 37906220 2025-03-19 11:38:10.000000 ./usr/libexec/gcc/hppa64-linux-gnu/15/lto1 │ │ │ │ drwxr-xr-x 0 root (0) root (0) 0 2025-03-19 11:38:10.000000 ./usr/libexec/gcc/hppa64-linux-gnu/15/plugin/ │ │ │ │ -rwxr-xr-x 0 root (0) root (0) 207248 2025-03-19 11:38:10.000000 ./usr/libexec/gcc/hppa64-linux-gnu/15/plugin/gengtype │ │ │ │ drwxr-xr-x 0 root (0) root (0) 0 2025-03-19 11:38:10.000000 ./usr/share/ │ │ │ ├── ./usr/libexec/gcc/hppa64-linux-gnu/15/install-tools/mkheaders │ │ │ │ @@ -78,15 +78,15 @@ │ │ │ │ itoolsdatadir=${libsubdir}/install-tools │ │ │ │ incdir=${libsubdir}/include-fixed │ │ │ │ mkinstalldirs="${itoolsdir}/mkinstalldirs" │ │ │ │ │ │ │ │ cd ${itoolsdir} │ │ │ │ rm -rf ${incdir}/* │ │ │ │ │ │ │ │ -for shell in $CONFIG_SHELL $SHELL /bin/bash /bin/sh ""; do │ │ │ │ +for shell in $CONFIG_SHELL $SHELL /bin/sh /bin/sh ""; do │ │ │ │ if { test -x $shell || test -x $shell.exe; } \ │ │ │ │ && $shell $mkinstalldirs > /dev/null 2>&1; then │ │ │ │ mkinstalldirs="$shell $mkinstalldirs" │ │ │ │ break │ │ │ │ elif test x$shell = x; then │ │ │ │ if $mkinstalldirs > /dev/null 2>&1; then │ │ │ │ break ├── gobjc++-15-i686-linux-gnu_15-20250319-1_i386.deb │ ├── file list │ │ @@ -1,3 +1,3 @@ │ │ -rw-r--r-- 0 0 0 4 2025-03-19 11:38:10.000000 debian-binary │ │ -rw-r--r-- 0 0 0 808 2025-03-19 11:38:10.000000 control.tar.xz │ │ --rw-r--r-- 0 0 0 104564556 2025-03-19 11:38:10.000000 data.tar.xz │ │ +-rw-r--r-- 0 0 0 104562072 2025-03-19 11:38:10.000000 data.tar.xz │ ├── control.tar.xz │ │ ├── control.tar │ │ │ ├── ./md5sums │ │ │ │ ├── ./md5sums │ │ │ │ │┄ Files differ │ ├── data.tar.xz │ │ ├── data.tar │ │ │ ├── ./usr/libexec/gcc/i686-linux-gnu/15/cc1objplus │ │ │ │ ├── readelf --wide --notes {} │ │ │ │ │ @@ -1,11 +1,11 @@ │ │ │ │ │ │ │ │ │ │ Displaying notes found in: .note.gnu.build-id │ │ │ │ │ Owner Data size Description │ │ │ │ │ - GNU 0x00000014 NT_GNU_BUILD_ID (unique build ID bitstring) Build ID: 2a0a924946160f596cf77f5d2b565cc60a5f01fb │ │ │ │ │ + GNU 0x00000014 NT_GNU_BUILD_ID (unique build ID bitstring) Build ID: 4b9f3368469d9168c9cce45ebfacf4d2d6597be1 │ │ │ │ │ │ │ │ │ │ Displaying notes found in: .note.ABI-tag │ │ │ │ │ Owner Data size Description │ │ │ │ │ GNU 0x00000010 NT_GNU_ABI_TAG (ABI version tag) OS: Linux, ABI: 3.2.0 │ │ │ │ │ │ │ │ │ │ Displaying notes found in: .note.package │ │ │ │ │ Owner Data size Description │ │ │ │ ├── readelf --wide --debug-dump=info {} │ │ │ │ │ @@ -4194297,8 +4194297,8 @@ │ │ │ │ │ <92aadb> DW_AT_abstract_origin: (ref4) <0x9493e1> │ │ │ │ │ <92aadf> DW_AT_location : (sec_offset) 0x3d96bb (location list) │ │ │ │ │ <92aae3> DW_AT_GNU_locviews: (sec_offset) 0x3d96b7 │ │ │ │ │ <3><92aae7>: Abbrev Number: 7 (DW_TAG_call_site) │ │ │ │ │ <92aae8> DW_AT_call_return_pc: (addr) 0x83c2b95 │ │ │ │ │ <92aaec> DW_AT_call_origin : (ref4) <0x928172> │ │ │ │ │ <3><92aaf0>: Abbrev Number: 0 │ │ │ │ │ -[ Too much input for diff (SHA256: d52e5b4b32cbbdf77562d61c281c274db813d4db34bf9d1a7336b5dda1698b00) ] │ │ │ │ │ +[ Too much input for diff (SHA256: b430a2e606217dfb575271b5d1aea328d000a2e492fdfe942964ee2cbd229f40) ] │ │ │ │ ├── readelf --wide --debug-dump=loc {} │ │ │ │ │ @@ -1520233,33 +1520233,33 @@ │ │ │ │ │ 0043e108 v0000000 v0000000 views at 0043e0ed for: │ │ │ │ │ 083cc4f7 083cc52b (DW_OP_reg3 (ebx)) │ │ │ │ │ 0043e110 │ │ │ │ │ │ │ │ │ │ 0043e111 v0000003 v0000000 location view pair │ │ │ │ │ │ │ │ │ │ 0043e113 v0000003 v0000000 views at 0043e111 for: │ │ │ │ │ - 087e9f25 087e9f42 (DW_OP_implicit_value 4 byte block: 95 9b 32 95 ) │ │ │ │ │ + 087e9f25 087e9f42 (DW_OP_implicit_value 4 byte block: 6d c3 32 95 ) │ │ │ │ │ 0043e120 │ │ │ │ │ │ │ │ │ │ 0043e121 v0000003 v0000000 location view pair │ │ │ │ │ │ │ │ │ │ 0043e123 v0000003 v0000000 views at 0043e121 for: │ │ │ │ │ 087e9f25 087e9f42 (DW_OP_reg6 (esi)) │ │ │ │ │ 0043e12b │ │ │ │ │ │ │ │ │ │ 0043e12c v0000005 v0000000 location view pair │ │ │ │ │ │ │ │ │ │ 0043e12e v0000005 v0000000 views at 0043e12c for: │ │ │ │ │ - 087e9f25 087e9f42 (DW_OP_const4u: 250312; DW_OP_stack_value) │ │ │ │ │ + 087e9f25 087e9f42 (DW_OP_const4u: 250313; DW_OP_stack_value) │ │ │ │ │ 0043e13b │ │ │ │ │ │ │ │ │ │ 0043e13c v0000006 v0000000 location view pair │ │ │ │ │ │ │ │ │ │ 0043e13e v0000006 v0000000 views at 0043e13c for: │ │ │ │ │ - 087e9f25 087e9f42 (DW_OP_const2u: 1813; DW_OP_stack_value) │ │ │ │ │ + 087e9f25 087e9f42 (DW_OP_const2u: 2013; DW_OP_stack_value) │ │ │ │ │ 0043e149 │ │ │ │ │ │ │ │ │ │ 0043e14a v0000002 v0000000 location view pair │ │ │ │ │ 0043e14c v0000000 v0000000 location view pair │ │ │ │ │ 0043e14e v0000000 v0000000 location view pair │ │ │ │ │ 0043e150 v0000000 v0000000 location view pair │ │ │ │ │ 0043e152 v0000000 v0000000 location view pair │ │ │ │ │ @@ -1540241,15 +1540241,15 @@ │ │ │ │ │ 0044b668 v0000000 v0000000 views at 0044b634 for: │ │ │ │ │ 083ca79e 083ca7a3 (DW_OP_fbreg: 4) │ │ │ │ │ 0044b671 │ │ │ │ │ │ │ │ │ │ 0044b672 v0000001 v0000000 location view pair │ │ │ │ │ │ │ │ │ │ 0044b674 v0000001 v0000000 views at 0044b672 for: │ │ │ │ │ - 087de007 087de785 (DW_OP_implicit_value 4 byte block: 95 9b 32 95 ) │ │ │ │ │ + 087de007 087de785 (DW_OP_implicit_value 4 byte block: 6d c3 32 95 ) │ │ │ │ │ 0044b682 │ │ │ │ │ │ │ │ │ │ 0044b683 v0000004 v0000000 location view pair │ │ │ │ │ 0044b685 v0000000 v0000000 location view pair │ │ │ │ │ 0044b687 v0000000 v0000000 location view pair │ │ │ │ │ 0044b689 v0000000 v0000000 location view pair │ │ │ │ │ 0044b68b v0000000 v0000000 location view pair │ │ │ │ │ @@ -1540281,17 +1540281,17 @@ │ │ │ │ │ 0044b7bb │ │ │ │ │ │ │ │ │ │ 0044b7bc v0000002 v0000000 location view pair │ │ │ │ │ 0044b7be v0000003 v0000000 location view pair │ │ │ │ │ │ │ │ │ │ 0044b7c0 087de072 (base address) │ │ │ │ │ 0044b7c5 v0000002 v0000000 views at 0044b7bc for: │ │ │ │ │ - 087de072 087de097 (DW_OP_implicit_value 4 byte block: 95 9b 32 95 ) │ │ │ │ │ + 087de072 087de097 (DW_OP_implicit_value 4 byte block: 6d c3 32 95 ) │ │ │ │ │ 0044b7cf v0000003 v0000000 views at 0044b7be for: │ │ │ │ │ - 087de3a4 087de3cd (DW_OP_implicit_value 4 byte block: 95 9b 32 95 ) │ │ │ │ │ + 087de3a4 087de3cd (DW_OP_implicit_value 4 byte block: 6d c3 32 95 ) │ │ │ │ │ 0044b7db │ │ │ │ │ │ │ │ │ │ 0044b7dc v0000002 v0000000 location view pair │ │ │ │ │ 0044b7de v0000000 v0000000 location view pair │ │ │ │ │ 0044b7e0 v0000000 v0000000 location view pair │ │ │ │ │ 0044b7e2 v0000003 v0000000 location view pair │ │ │ │ │ 0044b7e4 v0000000 v0000000 location view pair │ │ │ │ │ @@ -1540313,27 +1540313,27 @@ │ │ │ │ │ 0044b81b │ │ │ │ │ │ │ │ │ │ 0044b81c v0000004 v0000000 location view pair │ │ │ │ │ 0044b81e v0000005 v0000000 location view pair │ │ │ │ │ │ │ │ │ │ 0044b820 087de072 (base address) │ │ │ │ │ 0044b825 v0000004 v0000000 views at 0044b81c for: │ │ │ │ │ - 087de072 087de097 (DW_OP_const4u: 250312; DW_OP_stack_value) │ │ │ │ │ + 087de072 087de097 (DW_OP_const4u: 250313; DW_OP_stack_value) │ │ │ │ │ 0044b82f v0000005 v0000000 views at 0044b81e for: │ │ │ │ │ - 087de3a4 087de3cd (DW_OP_const4u: 250312; DW_OP_stack_value) │ │ │ │ │ + 087de3a4 087de3cd (DW_OP_const4u: 250313; DW_OP_stack_value) │ │ │ │ │ 0044b83b │ │ │ │ │ │ │ │ │ │ 0044b83c v0000005 v0000000 location view pair │ │ │ │ │ 0044b83e v0000006 v0000000 location view pair │ │ │ │ │ │ │ │ │ │ 0044b840 087de072 (base address) │ │ │ │ │ 0044b845 v0000005 v0000000 views at 0044b83c for: │ │ │ │ │ - 087de072 087de097 (DW_OP_const2u: 1813; DW_OP_stack_value) │ │ │ │ │ + 087de072 087de097 (DW_OP_const2u: 2013; DW_OP_stack_value) │ │ │ │ │ 0044b84d v0000006 v0000000 views at 0044b83e for: │ │ │ │ │ - 087de3a4 087de3cd (DW_OP_const2u: 1813; DW_OP_stack_value) │ │ │ │ │ + 087de3a4 087de3cd (DW_OP_const2u: 2013; DW_OP_stack_value) │ │ │ │ │ 0044b857 │ │ │ │ │ │ │ │ │ │ 0044b858 v0000000 v0000001 location view pair │ │ │ │ │ │ │ │ │ │ 0044b85a v0000000 v0000001 views at 0044b858 for: │ │ │ │ │ 087de0e4 087de0e4 (DW_OP_lit0; DW_OP_stack_value) │ │ │ │ │ 0044b863 │ │ │ │ │ @@ -1572371,15 +1572371,15 @@ │ │ │ │ │ 0046136b v0000000 v0000002 views at 00461369 for: │ │ │ │ │ 087d7092 087d7092 (DW_OP_reg3 (ebx)) │ │ │ │ │ 00461373 │ │ │ │ │ │ │ │ │ │ 00461374 v0000002 v0000000 location view pair │ │ │ │ │ │ │ │ │ │ 00461376 v0000002 v0000000 views at 00461374 for: │ │ │ │ │ - 087d70ca 087d70eb (DW_OP_implicit_value 4 byte block: 95 9b 32 95 ) │ │ │ │ │ + 087d70ca 087d70eb (DW_OP_implicit_value 4 byte block: 6d c3 32 95 ) │ │ │ │ │ 00461383 │ │ │ │ │ │ │ │ │ │ 00461384 v0000002 v0000000 location view pair │ │ │ │ │ 00461386 v0000000 v0000000 location view pair │ │ │ │ │ │ │ │ │ │ 00461388 087d70ca (base address) │ │ │ │ │ 0046138d v0000002 v0000000 views at 00461384 for: │ │ │ │ │ @@ -1572387,21 +1572387,21 @@ │ │ │ │ │ 00461394 v0000000 v0000000 views at 00461386 for: │ │ │ │ │ 087d70e5 087d70eb (DW_OP_reg7 (edi)) │ │ │ │ │ 00461399 │ │ │ │ │ │ │ │ │ │ 0046139a v0000004 v0000000 location view pair │ │ │ │ │ │ │ │ │ │ 0046139c v0000004 v0000000 views at 0046139a for: │ │ │ │ │ - 087d70ca 087d70eb (DW_OP_const4u: 250312; DW_OP_stack_value) │ │ │ │ │ + 087d70ca 087d70eb (DW_OP_const4u: 250313; DW_OP_stack_value) │ │ │ │ │ 004613a9 │ │ │ │ │ │ │ │ │ │ 004613aa v0000005 v0000000 location view pair │ │ │ │ │ │ │ │ │ │ 004613ac v0000005 v0000000 views at 004613aa for: │ │ │ │ │ - 087d70ca 087d70eb (DW_OP_const2u: 1813; DW_OP_stack_value) │ │ │ │ │ + 087d70ca 087d70eb (DW_OP_const2u: 2013; DW_OP_stack_value) │ │ │ │ │ 004613b7 │ │ │ │ │ │ │ │ │ │ 004613b8 v0000001 v0000003 location view pair │ │ │ │ │ │ │ │ │ │ 004613ba v0000001 v0000003 views at 004613b8 for: │ │ │ │ │ 087d70fa 087d70fa (DW_OP_reg3 (ebx)) │ │ │ │ │ 004613c2 │ │ │ │ │ @@ -4194297,8 +4194297,8 @@ │ │ │ │ │ │ │ │ │ │ 00b979a9 08af617e (base address) │ │ │ │ │ 00b979ae v0000000 v0000000 views at 00b979a5 for: │ │ │ │ │ 08af617e 08af6184 (DW_OP_reg0 (eax)) │ │ │ │ │ 00b979b3 v0000000 v0000000 views at 00b979a7 for: │ │ │ │ │ 08af6184 08af6188 (DW_OP_fbreg: 0; DW_OP_deref; DW_OP_lit2; DW_OP_shl; DW_OP_breg2 (edx): 0; DW_OP_plus; DW_OP_plus_uconst: 12; DW_OP_deref; DW_OP_plus_uconst: 16) │ │ │ │ │ 00b979c4 │ │ │ │ │ -[ Too much input for diff (SHA256: 5c75e76a4cd270930e9e5cde8b02d586b2c39105c6fc15c12ea66013e63d6d9a) ] │ │ │ │ │ +[ Too much input for diff (SHA256: 1f8c19010eef3a9ae00298e1eaa721ee4220d4be993cd1a4f6aba959f007fd7f) ] │ │ │ │ ├── objdump --line-numbers --disassemble --demangle --reloc --no-show-raw-insn --section=.text {} │ │ │ │ │ @@ -1796572,16 +1796572,16 @@ │ │ │ │ │ push %esi │ │ │ │ │ call 87ccff0 <(anonymous namespace)::bytes_out::printf(char const*, ...)> │ │ │ │ │ /build/reproducible-path/gcc-15-15-20250319/build/gcc/../../src/gcc/cp/module.cc:314 │ │ │ │ │ push $0xa8af361 │ │ │ │ │ version2string(): │ │ │ │ │ /build/reproducible-path/gcc-15-15-20250319/build/gcc/../../src/gcc/cp/module.cc:314 │ │ │ │ │ push $0xd │ │ │ │ │ - push $0x12 │ │ │ │ │ - push $0xc │ │ │ │ │ + push $0x14 │ │ │ │ │ + push $0xd │ │ │ │ │ push $0x3 │ │ │ │ │ push $0x7e9 │ │ │ │ │ push $0xa7dc6e3 │ │ │ │ │ lea 0x4c(%esp),%edi │ │ │ │ │ push %edi │ │ │ │ │ call 8355de0 │ │ │ │ │ module_state::write_readme(elf_out*, cpp_reader*, char const*): │ │ │ │ │ @@ -1809675,24 +1809675,24 @@ │ │ │ │ │ mov (%eax),%eax │ │ │ │ │ test %eax,%eax │ │ │ │ │ je 87ddc75 │ │ │ │ │ mov %edx,0x8(%esp) │ │ │ │ │ module_state::write_config(elf_out*, module_state_config&, unsigned int): │ │ │ │ │ /build/reproducible-path/gcc-15-15-20250319/build/gcc/../../src/gcc/cp/module.cc:19177 (discriminator 2) │ │ │ │ │ push 0x4c(%esp) │ │ │ │ │ - push $0x95329b95 │ │ │ │ │ + push $0x9532c36d │ │ │ │ │ push $0xa65a6a4 │ │ │ │ │ push $0xba33eac │ │ │ │ │ call 87da080 │ │ │ │ │ mov 0x18(%esp),%edx │ │ │ │ │ add $0x10,%esp │ │ │ │ │ /build/reproducible-path/gcc-15-15-20250319/build/gcc/../../src/gcc/cp/module.cc:19179 │ │ │ │ │ mov %edx,0x14(%esp) │ │ │ │ │ lea 0x10(%esp),%eax │ │ │ │ │ - mov $0x95329b95,%edx │ │ │ │ │ + mov $0x9532c36d,%edx │ │ │ │ │ mov %edi,0x10(%esp) │ │ │ │ │ mov %ebp,0x18(%esp) │ │ │ │ │ mov %esi,0x1c(%esp) │ │ │ │ │ call 87cd2a0 <(anonymous namespace)::bytes_out::u32(unsigned int)> │ │ │ │ │ /build/reproducible-path/gcc-15-15-20250319/build/gcc/../../src/gcc/cp/module.cc:19180 │ │ │ │ │ mov 0x4c(%esp),%edx │ │ │ │ │ lea 0x10(%esp),%eax │ │ │ │ │ @@ -1810125,30 +1810125,30 @@ │ │ │ │ │ je 87de4d8 │ │ │ │ │ /build/reproducible-path/gcc-15-15-20250319/build/gcc/../../src/gcc/cp/module.cc:4315 (discriminator 1) │ │ │ │ │ mov (%edx),%eax │ │ │ │ │ test %eax,%eax │ │ │ │ │ je 87de4d8 │ │ │ │ │ module_state::read_config(module_state_config&): │ │ │ │ │ /build/reproducible-path/gcc-15-15-20250319/build/gcc/../../src/gcc/cp/module.cc:19246 (discriminator 2) │ │ │ │ │ - cmp $0x95329b95,%ebp │ │ │ │ │ + cmp $0x9532c36d,%ebp │ │ │ │ │ je 87de188 │ │ │ │ │ /build/reproducible-path/gcc-15-15-20250319/build/gcc/../../src/gcc/cp/module.cc:19246 (discriminator 7) │ │ │ │ │ push %ebp │ │ │ │ │ - push $0x95329b95 │ │ │ │ │ + push $0x9532c36d │ │ │ │ │ push $0xa7dd1f9 │ │ │ │ │ push $0xba33eac │ │ │ │ │ call 87da080 │ │ │ │ │ add $0x10,%esp │ │ │ │ │ /build/reproducible-path/gcc-15-15-20250319/build/gcc/../../src/gcc/cp/module.cc:314 │ │ │ │ │ push $0xa8af361 │ │ │ │ │ version2string(): │ │ │ │ │ /build/reproducible-path/gcc-15-15-20250319/build/gcc/../../src/gcc/cp/module.cc:314 │ │ │ │ │ push $0xd │ │ │ │ │ - push $0x12 │ │ │ │ │ - push $0xc │ │ │ │ │ + push $0x14 │ │ │ │ │ + push $0xd │ │ │ │ │ push $0x3 │ │ │ │ │ push $0x7e9 │ │ │ │ │ push $0xa7dc6e3 │ │ │ │ │ lea 0x4c(%esp),%eax │ │ │ │ │ mov %eax,0x24(%esp) │ │ │ │ │ push %eax │ │ │ │ │ call 8355de0 │ │ │ │ │ @@ -1810167,15 +1810167,15 @@ │ │ │ │ │ call a537c10 │ │ │ │ │ /build/reproducible-path/gcc-15-15-20250319/build/gcc/../../src/gcc/cp/module.cc:19263 │ │ │ │ │ add $0x10,%esp │ │ │ │ │ cmp $0xfffff,%ebp │ │ │ │ │ mov 0xc(%esp),%edx │ │ │ │ │ jbe 87de3fb │ │ │ │ │ /build/reproducible-path/gcc-15-15-20250319/build/gcc/../../src/gcc/cp/module.cc:19261 │ │ │ │ │ - lea 0x6acd6b80(%ebp),%ecx │ │ │ │ │ + lea 0x6acd4470(%ebp),%ecx │ │ │ │ │ /build/reproducible-path/gcc-15-15-20250319/build/gcc/../../src/gcc/cp/module.cc:19268 (discriminator 1) │ │ │ │ │ mov $0xa7dd1b0,%eax │ │ │ │ │ /build/reproducible-path/gcc-15-15-20250319/build/gcc/../../src/gcc/cp/module.cc:19261 │ │ │ │ │ cmp $0x270f,%ecx │ │ │ │ │ ja 87de400 │ │ │ │ │ /build/reproducible-path/gcc-15-15-20250319/build/gcc/../../src/gcc/cp/module.cc:19273 (discriminator 5) │ │ │ │ │ sub $0x8,%esp │ │ │ │ │ @@ -1810238,16 +1810238,16 @@ │ │ │ │ │ sub $0xc,%esp │ │ │ │ │ push 0x10(%esp) │ │ │ │ │ call a537c20 │ │ │ │ │ add $0x10,%esp │ │ │ │ │ jmp 87de1a4 │ │ │ │ │ lea 0x0(%esi,%eiz,1),%esi │ │ │ │ │ /build/reproducible-path/gcc-15-15-20250319/build/gcc/../../src/gcc/cp/module.cc:19246 (discriminator 7) │ │ │ │ │ - push $0x95329b95 │ │ │ │ │ - push $0x95329b95 │ │ │ │ │ + push $0x9532c36d │ │ │ │ │ + push $0x9532c36d │ │ │ │ │ push $0xa7dd20f │ │ │ │ │ push $0xba33eac │ │ │ │ │ call 87da080 │ │ │ │ │ add $0x10,%esp │ │ │ │ │ /build/reproducible-path/gcc-15-15-20250319/build/gcc/../../src/gcc/cp/module.cc:395 │ │ │ │ │ lea 0x4(%edi),%eax │ │ │ │ │ use(): │ │ │ │ │ @@ -1810482,16 +1810482,16 @@ │ │ │ │ │ /build/reproducible-path/gcc-15-15-20250319/build/gcc/../../src/gcc/cp/module.cc:19381 │ │ │ │ │ jmp 87de53e │ │ │ │ │ lea 0x0(%esi,%eiz,1),%esi │ │ │ │ │ version2string(): │ │ │ │ │ /build/reproducible-path/gcc-15-15-20250319/build/gcc/../../src/gcc/cp/module.cc:314 │ │ │ │ │ push $0xa8af361 │ │ │ │ │ push $0xd │ │ │ │ │ - push $0x12 │ │ │ │ │ - push $0xc │ │ │ │ │ + push $0x14 │ │ │ │ │ + push $0xd │ │ │ │ │ push $0x3 │ │ │ │ │ push $0x7e9 │ │ │ │ │ push $0xa7dc6e3 │ │ │ │ │ lea 0x4c(%esp),%eax │ │ │ │ │ mov %eax,0x24(%esp) │ │ │ │ │ push %eax │ │ │ │ │ call 8355de0 │ │ │ │ │ @@ -1810605,15 +1810605,15 @@ │ │ │ │ │ mov %esi,%eax │ │ │ │ │ pop %esi │ │ │ │ │ pop %edi │ │ │ │ │ pop %ebp │ │ │ │ │ ret │ │ │ │ │ lea %cs:0x0(%esi,%eiz,1),%esi │ │ │ │ │ /build/reproducible-path/gcc-15-15-20250319/build/gcc/../../src/gcc/cp/module.cc:19248 │ │ │ │ │ - cmp $0x95329b95,%ebp │ │ │ │ │ + cmp $0x9532c36d,%ebp │ │ │ │ │ jne 87de072 │ │ │ │ │ jmp 87de1a4 │ │ │ │ │ lea 0x0(%esi,%eiz,1),%esi │ │ │ │ │ /build/reproducible-path/gcc-15-15-20250319/build/gcc/../../src/gcc/cp/module.cc:543 │ │ │ │ │ movb $0x1,0x2c(%esp) │ │ │ │ │ dumper::operator()(int): │ │ │ │ │ /build/reproducible-path/gcc-15-15-20250319/build/gcc/../../src/gcc/cp/module.cc:4315 │ │ │ │ │ @@ -1832706,16 +1832706,16 @@ │ │ │ │ │ je 87ea027 │ │ │ │ │ init_modules(cpp_reader*): │ │ │ │ │ /build/reproducible-path/gcc-15-15-20250319/build/gcc/../../src/gcc/cp/module.cc:314 │ │ │ │ │ push $0xa8af361 │ │ │ │ │ version2string(): │ │ │ │ │ /build/reproducible-path/gcc-15-15-20250319/build/gcc/../../src/gcc/cp/module.cc:314 │ │ │ │ │ push $0xd │ │ │ │ │ - push $0x12 │ │ │ │ │ - push $0xc │ │ │ │ │ + push $0x14 │ │ │ │ │ + push $0xd │ │ │ │ │ push $0x3 │ │ │ │ │ push $0x7e9 │ │ │ │ │ push $0xa7dc6e3 │ │ │ │ │ push %esi │ │ │ │ │ call 8355de0 │ │ │ │ │ init_modules(cpp_reader*): │ │ │ │ │ /build/reproducible-path/gcc-15-15-20250319/build/gcc/../../src/gcc/cp/module.cc:21826 │ │ │ │ │ @@ -4194296,8 +4194296,8 @@ │ │ │ │ │ jne 84b3edc │ │ │ │ │ fast_function_summary::get(cgraph_node*): │ │ │ │ │ /build/reproducible-path/gcc-15-15-20250319/build/gcc/../../src/gcc/symbol-summary.h:406 │ │ │ │ │ mov 0x98(%eax),%ecx │ │ │ │ │ /build/reproducible-path/gcc-15-15-20250319/build/gcc/../../src/gcc/symbol-summary.h:408 (discriminator 3) │ │ │ │ │ xor %edx,%edx │ │ │ │ │ fast_function_summary::exists(cgraph_node*): │ │ │ │ │ -[ Too much input for diff (SHA256: 90e337a9a3985bf4f511e6d6bcb988cc4e765857463dda7676c5b49d05fd8cbd) ] │ │ │ │ │ +[ Too much input for diff (SHA256: 8761df6be66d971fc49fc66781407f892355419d153a256c645b7a10c5f76c1a) ] │ │ │ │ ├── readelf --wide --decompress --hex-dump=.rodata {} │ │ │ │ │ @@ -170871,16 +170871,16 @@ │ │ │ │ │ 0x0a8dc740 008da108 e08ca108 d07aa108 c08ca108 .........z...... │ │ │ │ │ 0x0a8dc750 a08ca108 808ca108 688ca108 108ca108 ........h....... │ │ │ │ │ 0x0a8dc760 d08ba108 b08ba108 908ba108 708ba108 ............p... │ │ │ │ │ 0x0a8dc770 508ba108 308ba108 108ba108 f08aa108 P...0........... │ │ │ │ │ 0x0a8dc780 d08aa108 b08aa108 908aa108 708aa108 ............p... │ │ │ │ │ 0x0a8dc790 508aa108 308aa108 108aa108 b089a108 P...0........... │ │ │ │ │ 0x0a8dc7a0 f089a108 e87aa108 d089a108 b089a108 .....z.......... │ │ │ │ │ - 0x0a8dc7b0 e87aa108 d089a108 21f849d7 d2df4003 .z......!.I...@. │ │ │ │ │ - 0x0a8dc7c0 b76c38f0 7a1afdb6 00000000 00000000 .l8.z........... │ │ │ │ │ + 0x0a8dc7b0 e87aa108 d089a108 6e326161 07000ddc .z......n2aa.... │ │ │ │ │ + 0x0a8dc7c0 9b85137f 0db1f586 00000000 00000000 ................ │ │ │ │ │ 0x0a8dc7d0 b0aea108 c0aea108 50aea108 00000000 ........P....... │ │ │ │ │ 0x0a8dc7e0 00000000 e0aea108 00b0a108 70aea108 ............p... │ │ │ │ │ 0x0a8dc7f0 30a1a108 90aea108 10a1a108 50a1a108 0...........P... │ │ │ │ │ 0x0a8dc800 00000000 00000000 c0a0a108 d0a0a108 ................ │ │ │ │ │ 0x0a8dc810 e0ada108 f0ada108 f0a0a108 00aea108 ................ │ │ │ │ │ 0x0a8dc820 10aea108 30aea108 40aea108 d0ada108 ....0...@....... │ │ │ │ │ 0x0a8dc830 00000000 00000000 00000000 00000000 ................ ├── libstdc++-15-doc_15-20250319-1_all.deb │ ├── file list │ │ @@ -1,3 +1,3 @@ │ │ -rw-r--r-- 0 0 0 4 2025-03-19 11:38:10.000000 debian-binary │ │ --rw-r--r-- 0 0 0 178464 2025-03-19 11:38:10.000000 control.tar.xz │ │ --rw-r--r-- 0 0 0 10297212 2025-03-19 11:38:10.000000 data.tar.xz │ │ +-rw-r--r-- 0 0 0 178576 2025-03-19 11:38:10.000000 control.tar.xz │ │ +-rw-r--r-- 0 0 0 10298664 2025-03-19 11:38:10.000000 data.tar.xz │ ├── control.tar.xz │ │ ├── control.tar │ │ │ ├── ./control │ │ │ │ @@ -1,13 +1,13 @@ │ │ │ │ Package: libstdc++-15-doc │ │ │ │ Source: gcc-15 │ │ │ │ Version: 15-20250319-1 │ │ │ │ Architecture: all │ │ │ │ Maintainer: Debian GCC Maintainers │ │ │ │ -Installed-Size: 146410 │ │ │ │ +Installed-Size: 146411 │ │ │ │ Depends: gcc-15-base (>= 15) │ │ │ │ Conflicts: libstdc++-10-doc, libstdc++-11-doc, libstdc++-12-doc, libstdc++-13-doc, libstdc++-14-doc, libstdc++-4.8-doc, libstdc++-4.9-doc, libstdc++-5-doc, libstdc++-6-doc, libstdc++-7-doc, libstdc++-8-doc, libstdc++-9-doc, libstdc++5-3.3-doc, libstdc++5-doc, libstdc++6-4.0-doc, libstdc++6-4.1-doc, libstdc++6-4.2-doc, libstdc++6-4.3-doc, libstdc++6-4.4-doc, libstdc++6-4.5-doc, libstdc++6-4.6-doc, libstdc++6-4.7-doc, libstdc++6-doc │ │ │ │ Section: doc │ │ │ │ Priority: optional │ │ │ │ Homepage: http://gcc.gnu.org/ │ │ │ │ Description: GNU Standard C++ Library v3 (documentation files) │ │ │ │ This package contains documentation files for the GNU stdc++ library. │ │ │ ├── ./md5sums │ │ │ │ ├── ./md5sums │ │ │ │ │┄ Files differ │ │ │ │ ├── line order │ │ │ │ │ @@ -438,390 +438,390 @@ │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a00329.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a00329_source.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a00332.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a00332_source.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a00335.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a00335_source.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a00338.html │ │ │ │ │ -usr/share/doc/gcc-15-base/libstdc++/user/a00338.js │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a00338_source.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a00341.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a00341_source.html │ │ │ │ │ +usr/share/doc/gcc-15-base/libstdc++/user/a00344.html │ │ │ │ │ +usr/share/doc/gcc-15-base/libstdc++/user/a00344.js │ │ │ │ │ +usr/share/doc/gcc-15-base/libstdc++/user/a00344_source.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a00347.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a00347.js │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a00347_source.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a00350.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a00350_source.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a00353.html │ │ │ │ │ -usr/share/doc/gcc-15-base/libstdc++/user/a00353.js │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a00353_source.html │ │ │ │ │ -usr/share/doc/gcc-15-base/libstdc++/user/a00359.html │ │ │ │ │ -usr/share/doc/gcc-15-base/libstdc++/user/a00359.js │ │ │ │ │ -usr/share/doc/gcc-15-base/libstdc++/user/a00359_source.html │ │ │ │ │ +usr/share/doc/gcc-15-base/libstdc++/user/a00356.html │ │ │ │ │ +usr/share/doc/gcc-15-base/libstdc++/user/a00356_source.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a00362.html │ │ │ │ │ +usr/share/doc/gcc-15-base/libstdc++/user/a00362.js │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a00362_source.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a00365.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a00365_source.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a00368.html │ │ │ │ │ -usr/share/doc/gcc-15-base/libstdc++/user/a00368.js │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a00368_source.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a00371.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a00371_source.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a00374.html │ │ │ │ │ -usr/share/doc/gcc-15-base/libstdc++/user/a00374.js │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a00374_source.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a00377.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a00377.js │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a00377_source.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a00380.html │ │ │ │ │ -usr/share/doc/gcc-15-base/libstdc++/user/a00380.js │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a00380_source.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a00383.html │ │ │ │ │ -usr/share/doc/gcc-15-base/libstdc++/user/a00383.js │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a00383_source.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a00386.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a00386_source.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a00389.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a00389_source.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a00392.html │ │ │ │ │ -usr/share/doc/gcc-15-base/libstdc++/user/a00392.js │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a00392_source.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a00395.html │ │ │ │ │ -usr/share/doc/gcc-15-base/libstdc++/user/a00395.js │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a00395_source.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a00398.html │ │ │ │ │ +usr/share/doc/gcc-15-base/libstdc++/user/a00398.js │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a00398_source.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a00401.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a00401_source.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a00404.html │ │ │ │ │ +usr/share/doc/gcc-15-base/libstdc++/user/a00404.js │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a00404_source.html │ │ │ │ │ -usr/share/doc/gcc-15-base/libstdc++/user/a00407.html │ │ │ │ │ -usr/share/doc/gcc-15-base/libstdc++/user/a00407_source.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a00410.html │ │ │ │ │ -usr/share/doc/gcc-15-base/libstdc++/user/a00410.js │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a00410_source.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a00413.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a00413.js │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a00413_source.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a00416.html │ │ │ │ │ -usr/share/doc/gcc-15-base/libstdc++/user/a00416.js │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a00416_source.html │ │ │ │ │ +usr/share/doc/gcc-15-base/libstdc++/user/a00419.html │ │ │ │ │ +usr/share/doc/gcc-15-base/libstdc++/user/a00419_source.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a00422.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a00422_source.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a00425.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a00425_source.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a00428.html │ │ │ │ │ +usr/share/doc/gcc-15-base/libstdc++/user/a00428.js │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a00428_source.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a00431.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a00431_source.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a00434.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a00434.js │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a00434_source.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a00437.html │ │ │ │ │ +usr/share/doc/gcc-15-base/libstdc++/user/a00437.js │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a00437_source.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a00440.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a00440.js │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a00440_source.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a00443.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a00443_source.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a00446.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a00446.js │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a00446_source.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a00449.html │ │ │ │ │ -usr/share/doc/gcc-15-base/libstdc++/user/a00449.js │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a00449_source.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a00452.html │ │ │ │ │ +usr/share/doc/gcc-15-base/libstdc++/user/a00452.js │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a00452_source.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a00455.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a00455.js │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a00455_source.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a00458.html │ │ │ │ │ -usr/share/doc/gcc-15-base/libstdc++/user/a00458.js │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a00458_source.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a00461.html │ │ │ │ │ -usr/share/doc/gcc-15-base/libstdc++/user/a00461.js │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a00461_source.html │ │ │ │ │ +usr/share/doc/gcc-15-base/libstdc++/user/a00464.html │ │ │ │ │ +usr/share/doc/gcc-15-base/libstdc++/user/a00464.js │ │ │ │ │ +usr/share/doc/gcc-15-base/libstdc++/user/a00464_source.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a00467.html │ │ │ │ │ -usr/share/doc/gcc-15-base/libstdc++/user/a00467.js │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a00467_source.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a00470.html │ │ │ │ │ +usr/share/doc/gcc-15-base/libstdc++/user/a00470.js │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a00470_source.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a00473.html │ │ │ │ │ -usr/share/doc/gcc-15-base/libstdc++/user/a00473.js │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a00473_source.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a00476.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a00476.js │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a00476_source.html │ │ │ │ │ +usr/share/doc/gcc-15-base/libstdc++/user/a00479.html │ │ │ │ │ +usr/share/doc/gcc-15-base/libstdc++/user/a00479_source.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a00482.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a00482.js │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a00482_source.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a00485.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a00485.js │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a00485_source.html │ │ │ │ │ +usr/share/doc/gcc-15-base/libstdc++/user/a00488.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a00488_source.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a00491.html │ │ │ │ │ -usr/share/doc/gcc-15-base/libstdc++/user/a00491.js │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a00491_source.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a00494.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a00494_source.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a00497.html │ │ │ │ │ -usr/share/doc/gcc-15-base/libstdc++/user/a00497.js │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a00497_source.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a00500.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a00500_source.html │ │ │ │ │ +usr/share/doc/gcc-15-base/libstdc++/user/a00503.html │ │ │ │ │ +usr/share/doc/gcc-15-base/libstdc++/user/a00503.js │ │ │ │ │ +usr/share/doc/gcc-15-base/libstdc++/user/a00503_source.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a00506.html │ │ │ │ │ -usr/share/doc/gcc-15-base/libstdc++/user/a00506.js │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a00506_source.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a00509.html │ │ │ │ │ -usr/share/doc/gcc-15-base/libstdc++/user/a00509.js │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a00509_source.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a00512.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a00512.js │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a00512_source.html │ │ │ │ │ -usr/share/doc/gcc-15-base/libstdc++/user/a00515.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a00515_source.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a00518.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a00518_source.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a00521.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a00521.js │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a00521_source.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a00524.html │ │ │ │ │ +usr/share/doc/gcc-15-base/libstdc++/user/a00524.js │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a00524_source.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a00527.html │ │ │ │ │ +usr/share/doc/gcc-15-base/libstdc++/user/a00527.js │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a00527_source.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a00530.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a00530_source.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a00533.html │ │ │ │ │ +usr/share/doc/gcc-15-base/libstdc++/user/a00533.js │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a00533_source.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a00536.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a00536_source.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a00539.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a00539_source.html │ │ │ │ │ -usr/share/doc/gcc-15-base/libstdc++/user/a00542.html │ │ │ │ │ -usr/share/doc/gcc-15-base/libstdc++/user/a00542.js │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a00542_source.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a00545.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a00545.js │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a00545_source.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a00548.html │ │ │ │ │ +usr/share/doc/gcc-15-base/libstdc++/user/a00548.js │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a00548_source.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a00551.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a00551.js │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a00551_source.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a00554.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a00554.js │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a00554_source.html │ │ │ │ │ +usr/share/doc/gcc-15-base/libstdc++/user/a00557.html │ │ │ │ │ +usr/share/doc/gcc-15-base/libstdc++/user/a00557.js │ │ │ │ │ +usr/share/doc/gcc-15-base/libstdc++/user/a00557_source.html │ │ │ │ │ +usr/share/doc/gcc-15-base/libstdc++/user/a00560.html │ │ │ │ │ +usr/share/doc/gcc-15-base/libstdc++/user/a00560.js │ │ │ │ │ +usr/share/doc/gcc-15-base/libstdc++/user/a00560_source.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a00563.html │ │ │ │ │ -usr/share/doc/gcc-15-base/libstdc++/user/a00563.js │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a00563_source.html │ │ │ │ │ -usr/share/doc/gcc-15-base/libstdc++/user/a00566.html │ │ │ │ │ -usr/share/doc/gcc-15-base/libstdc++/user/a00566.js │ │ │ │ │ -usr/share/doc/gcc-15-base/libstdc++/user/a00566_source.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a00569.html │ │ │ │ │ +usr/share/doc/gcc-15-base/libstdc++/user/a00569.js │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a00569_source.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a00572.html │ │ │ │ │ +usr/share/doc/gcc-15-base/libstdc++/user/a00572.js │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a00572_source.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a00575.html │ │ │ │ │ -usr/share/doc/gcc-15-base/libstdc++/user/a00575.js │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a00575_source.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a00578.html │ │ │ │ │ +usr/share/doc/gcc-15-base/libstdc++/user/a00578.js │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a00578_source.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a00581.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a00581_source.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a00584.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a00584.js │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a00584_source.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a00587.html │ │ │ │ │ +usr/share/doc/gcc-15-base/libstdc++/user/a00587.js │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a00587_source.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a00590.html │ │ │ │ │ +usr/share/doc/gcc-15-base/libstdc++/user/a00590.js │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a00590_source.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a00593.html │ │ │ │ │ +usr/share/doc/gcc-15-base/libstdc++/user/a00593.js │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a00593_source.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a00596.html │ │ │ │ │ +usr/share/doc/gcc-15-base/libstdc++/user/a00596.js │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a00596_source.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a00599.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a00599.js │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a00599_source.html │ │ │ │ │ -usr/share/doc/gcc-15-base/libstdc++/user/a00605.html │ │ │ │ │ -usr/share/doc/gcc-15-base/libstdc++/user/a00605_source.html │ │ │ │ │ +usr/share/doc/gcc-15-base/libstdc++/user/a00602.html │ │ │ │ │ +usr/share/doc/gcc-15-base/libstdc++/user/a00602.js │ │ │ │ │ +usr/share/doc/gcc-15-base/libstdc++/user/a00602_source.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a00608.html │ │ │ │ │ +usr/share/doc/gcc-15-base/libstdc++/user/a00608.js │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a00608_source.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a00611.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a00611.js │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a00611_source.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a00614.html │ │ │ │ │ +usr/share/doc/gcc-15-base/libstdc++/user/a00614.js │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a00614_source.html │ │ │ │ │ -usr/share/doc/gcc-15-base/libstdc++/user/a00617.html │ │ │ │ │ -usr/share/doc/gcc-15-base/libstdc++/user/a00617_source.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a00620.html │ │ │ │ │ +usr/share/doc/gcc-15-base/libstdc++/user/a00620.js │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a00620_source.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a00623.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a00623.js │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a00623_source.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a00626.html │ │ │ │ │ +usr/share/doc/gcc-15-base/libstdc++/user/a00626.js │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a00626_source.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a00629.html │ │ │ │ │ -usr/share/doc/gcc-15-base/libstdc++/user/a00629.js │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a00629_source.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a00632.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a00632_source.html │ │ │ │ │ -usr/share/doc/gcc-15-base/libstdc++/user/a00635.html │ │ │ │ │ -usr/share/doc/gcc-15-base/libstdc++/user/a00635.js │ │ │ │ │ -usr/share/doc/gcc-15-base/libstdc++/user/a00635_source.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a00638.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a00638_source.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a00641.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a00641.js │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a00641_source.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a00644.html │ │ │ │ │ -usr/share/doc/gcc-15-base/libstdc++/user/a00644.js │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a00644_source.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a00647.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a00647_source.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a00650.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a00650_source.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a00653.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a00653_source.html │ │ │ │ │ +usr/share/doc/gcc-15-base/libstdc++/user/a00656.html │ │ │ │ │ +usr/share/doc/gcc-15-base/libstdc++/user/a00656.js │ │ │ │ │ +usr/share/doc/gcc-15-base/libstdc++/user/a00656_source.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a00659.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a00659_source.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a00662.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a00662.js │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a00662_source.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a00665.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a00665.js │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a00665_source.html │ │ │ │ │ -usr/share/doc/gcc-15-base/libstdc++/user/a00668.html │ │ │ │ │ -usr/share/doc/gcc-15-base/libstdc++/user/a00668_source.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a00671.html │ │ │ │ │ -usr/share/doc/gcc-15-base/libstdc++/user/a00671.js │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a00671_source.html │ │ │ │ │ +usr/share/doc/gcc-15-base/libstdc++/user/a00674.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a00674_source.html │ │ │ │ │ +usr/share/doc/gcc-15-base/libstdc++/user/a00677.html │ │ │ │ │ +usr/share/doc/gcc-15-base/libstdc++/user/a00677.js │ │ │ │ │ +usr/share/doc/gcc-15-base/libstdc++/user/a00677_source.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a00680.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a00680_source.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a00683.html │ │ │ │ │ +usr/share/doc/gcc-15-base/libstdc++/user/a00683.js │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a00683_source.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a00686.html │ │ │ │ │ +usr/share/doc/gcc-15-base/libstdc++/user/a00686.js │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a00686_source.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a00689.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a00689.js │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a00689_source.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a00692.html │ │ │ │ │ +usr/share/doc/gcc-15-base/libstdc++/user/a00692.js │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a00692_source.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a00695.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a00695_source.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a00698.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a00698.js │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a00698_source.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a00701.html │ │ │ │ │ -usr/share/doc/gcc-15-base/libstdc++/user/a00701.js │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a00701_source.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a00704.html │ │ │ │ │ -usr/share/doc/gcc-15-base/libstdc++/user/a00704.js │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a00704_source.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a00707.html │ │ │ │ │ +usr/share/doc/gcc-15-base/libstdc++/user/a00707.js │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a00707_source.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a00710.html │ │ │ │ │ -usr/share/doc/gcc-15-base/libstdc++/user/a00710.js │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a00710_source.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a00713.html │ │ │ │ │ -usr/share/doc/gcc-15-base/libstdc++/user/a00713.js │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a00713_source.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a00716.html │ │ │ │ │ +usr/share/doc/gcc-15-base/libstdc++/user/a00716.js │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a00716_source.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a00719.html │ │ │ │ │ -usr/share/doc/gcc-15-base/libstdc++/user/a00719.js │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a00719_source.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a00722.html │ │ │ │ │ -usr/share/doc/gcc-15-base/libstdc++/user/a00722.js │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a00722_source.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a00725.html │ │ │ │ │ -usr/share/doc/gcc-15-base/libstdc++/user/a00725.js │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a00725_source.html │ │ │ │ │ -usr/share/doc/gcc-15-base/libstdc++/user/a00728.html │ │ │ │ │ -usr/share/doc/gcc-15-base/libstdc++/user/a00728.js │ │ │ │ │ -usr/share/doc/gcc-15-base/libstdc++/user/a00728_source.html │ │ │ │ │ -usr/share/doc/gcc-15-base/libstdc++/user/a00731.html │ │ │ │ │ -usr/share/doc/gcc-15-base/libstdc++/user/a00731_source.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a00734.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a00734.js │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a00734_source.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a00737.html │ │ │ │ │ -usr/share/doc/gcc-15-base/libstdc++/user/a00737.js │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a00737_source.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a00740.html │ │ │ │ │ -usr/share/doc/gcc-15-base/libstdc++/user/a00740.js │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a00740_source.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a00743.html │ │ │ │ │ -usr/share/doc/gcc-15-base/libstdc++/user/a00743.js │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a00743_source.html │ │ │ │ │ -usr/share/doc/gcc-15-base/libstdc++/user/a00746.html │ │ │ │ │ -usr/share/doc/gcc-15-base/libstdc++/user/a00746.js │ │ │ │ │ -usr/share/doc/gcc-15-base/libstdc++/user/a00746_source.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a00749.html │ │ │ │ │ +usr/share/doc/gcc-15-base/libstdc++/user/a00749.js │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a00749_source.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a00752.html │ │ │ │ │ +usr/share/doc/gcc-15-base/libstdc++/user/a00752.js │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a00752_source.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a00755.html │ │ │ │ │ +usr/share/doc/gcc-15-base/libstdc++/user/a00755.js │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a00755_source.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a00758.html │ │ │ │ │ +usr/share/doc/gcc-15-base/libstdc++/user/a00758.js │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a00758_source.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a00761.html │ │ │ │ │ -usr/share/doc/gcc-15-base/libstdc++/user/a00761.js │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a00761_source.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a00764.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a00764_source.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a00767.html │ │ │ │ │ +usr/share/doc/gcc-15-base/libstdc++/user/a00767.js │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a00767_source.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a00770.html │ │ │ │ │ +usr/share/doc/gcc-15-base/libstdc++/user/a00770.js │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a00770_source.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a00773.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a00773_source.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a00776.html │ │ │ │ │ -usr/share/doc/gcc-15-base/libstdc++/user/a00776.js │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a00776_source.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a00779.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a00779_source.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a00782.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a00782_source.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a00785.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a00785.js │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a00785_source.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a00788.html │ │ │ │ │ +usr/share/doc/gcc-15-base/libstdc++/user/a00788.js │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a00788_source.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a00791.html │ │ │ │ │ +usr/share/doc/gcc-15-base/libstdc++/user/a00791.js │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a00791_source.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a00794.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a00794_source.html │ │ │ │ │ -usr/share/doc/gcc-15-base/libstdc++/user/a00797.html │ │ │ │ │ -usr/share/doc/gcc-15-base/libstdc++/user/a00797.js │ │ │ │ │ -usr/share/doc/gcc-15-base/libstdc++/user/a00797_source.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a00800.html │ │ │ │ │ -usr/share/doc/gcc-15-base/libstdc++/user/a00800.js │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a00800_source.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a00803.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a00803.js │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a00803_source.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a00806.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a00806.js │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a00806_source.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a00809.html │ │ │ │ │ +usr/share/doc/gcc-15-base/libstdc++/user/a00809.js │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a00809_source.html │ │ │ │ │ +usr/share/doc/gcc-15-base/libstdc++/user/a00812.html │ │ │ │ │ +usr/share/doc/gcc-15-base/libstdc++/user/a00812_source.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a00815.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a00815_source.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a00818.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a00818_source.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a00821.html │ │ │ │ │ +usr/share/doc/gcc-15-base/libstdc++/user/a00821.js │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a00821_source.html │ │ │ │ │ -usr/share/doc/gcc-15-base/libstdc++/user/a00824.html │ │ │ │ │ -usr/share/doc/gcc-15-base/libstdc++/user/a00824_source.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a00827.html │ │ │ │ │ -usr/share/doc/gcc-15-base/libstdc++/user/a00827.js │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a00827_source.html │ │ │ │ │ -usr/share/doc/gcc-15-base/libstdc++/user/a00830_source.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a00833.html │ │ │ │ │ +usr/share/doc/gcc-15-base/libstdc++/user/a00833.js │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a00833_source.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a00836.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a00836_source.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a00839.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a00839_source.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a00842.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a00842_source.html │ │ │ │ │ @@ -834,37 +834,37 @@ │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a00854.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a00854_source.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a00857.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a00857_source.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a00860.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a00860_source.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a00863_source.html │ │ │ │ │ -usr/share/doc/gcc-15-base/libstdc++/user/a00866.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a00866_source.html │ │ │ │ │ +usr/share/doc/gcc-15-base/libstdc++/user/a00869.html │ │ │ │ │ +usr/share/doc/gcc-15-base/libstdc++/user/a00869.js │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a00869_source.html │ │ │ │ │ -usr/share/doc/gcc-15-base/libstdc++/user/a00872.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a00872_source.html │ │ │ │ │ -usr/share/doc/gcc-15-base/libstdc++/user/a00875.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a00875_source.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a00878.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a00878_source.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a00881.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a00881_source.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a00884.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a00884_source.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a00887.html │ │ │ │ │ -usr/share/doc/gcc-15-base/libstdc++/user/a00887.js │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a00887_source.html │ │ │ │ │ +usr/share/doc/gcc-15-base/libstdc++/user/a00890.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a00890_source.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a00893.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a00893_source.html │ │ │ │ │ +usr/share/doc/gcc-15-base/libstdc++/user/a00896.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a00896_source.html │ │ │ │ │ -usr/share/doc/gcc-15-base/libstdc++/user/a00899.html │ │ │ │ │ -usr/share/doc/gcc-15-base/libstdc++/user/a00899.js │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a00899_source.html │ │ │ │ │ +usr/share/doc/gcc-15-base/libstdc++/user/a00902.html │ │ │ │ │ +usr/share/doc/gcc-15-base/libstdc++/user/a00902_source.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a00905.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a00905.js │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a00905_source.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a00908.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a00908.js │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a00908_source.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a00911.html │ │ │ │ │ @@ -874,91 +874,91 @@ │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a00917.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a00917_source.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a00920.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a00920_source.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a00923.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a00923_source.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a00926.html │ │ │ │ │ +usr/share/doc/gcc-15-base/libstdc++/user/a00926.js │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a00926_source.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a00929.html │ │ │ │ │ +usr/share/doc/gcc-15-base/libstdc++/user/a00929.js │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a00929_source.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a00932.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a00932.js │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a00932_source.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a00935.html │ │ │ │ │ -usr/share/doc/gcc-15-base/libstdc++/user/a00935.js │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a00935_source.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a00938.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a00938.js │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a00938_source.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a00941.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a00941_source.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a00944.html │ │ │ │ │ +usr/share/doc/gcc-15-base/libstdc++/user/a00944.js │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a00944_source.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a00947.html │ │ │ │ │ -usr/share/doc/gcc-15-base/libstdc++/user/a00947.js │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a00947_source.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a00950.html │ │ │ │ │ +usr/share/doc/gcc-15-base/libstdc++/user/a00950.js │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a00950_source.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a00953.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a00953.js │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a00953_source.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a00956.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a00956.js │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a00956_source.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a00959.html │ │ │ │ │ -usr/share/doc/gcc-15-base/libstdc++/user/a00959.js │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a00959_source.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a00962.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a00962.js │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a00962_source.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a00965.html │ │ │ │ │ +usr/share/doc/gcc-15-base/libstdc++/user/a00965.js │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a00965_source.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a00968.html │ │ │ │ │ +usr/share/doc/gcc-15-base/libstdc++/user/a00968.js │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a00968_source.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a00971.html │ │ │ │ │ -usr/share/doc/gcc-15-base/libstdc++/user/a00971.js │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a00971_source.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a00974.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a00974.js │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a00974_source.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a00977.html │ │ │ │ │ -usr/share/doc/gcc-15-base/libstdc++/user/a00977.js │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a00977_source.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a00980.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a00980.js │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a00980_source.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a00983.html │ │ │ │ │ -usr/share/doc/gcc-15-base/libstdc++/user/a00983.js │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a00983_source.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a00986.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a00986.js │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a00986_source.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a00989.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a00989_source.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a00992.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a00992_source.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a00995.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a00995_source.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a00998.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a00998.js │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a00998_source.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a01001.html │ │ │ │ │ +usr/share/doc/gcc-15-base/libstdc++/user/a01001.js │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a01001_source.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a01004.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a01004.js │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a01004_source.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a01007.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a01007.js │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a01007_source.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a01010.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a01010.js │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a01010_source.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a01013.html │ │ │ │ │ -usr/share/doc/gcc-15-base/libstdc++/user/a01013.js │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a01013_source.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a01016.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a01016.js │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a01016_source.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a01019.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a01019.js │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a01019_source.html │ │ │ │ │ @@ -971,57 +971,58 @@ │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a01028.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a01028.js │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a01028_source.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a01031.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a01031.js │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a01031_source.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a01034.html │ │ │ │ │ +usr/share/doc/gcc-15-base/libstdc++/user/a01034.js │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a01034_source.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a01037.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a01037.js │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a01037_source.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a01040.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a01040.js │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a01040_source.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a01043.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a01043.js │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a01043_source.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a01046.html │ │ │ │ │ +usr/share/doc/gcc-15-base/libstdc++/user/a01046.js │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a01046_source.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a01049.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a01049.js │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a01049_source.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a01052.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a01052.js │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a01052_source.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a01055.html │ │ │ │ │ -usr/share/doc/gcc-15-base/libstdc++/user/a01055.js │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a01055_source.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a01058.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a01058.js │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a01058_source.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a01061.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a01061.js │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a01061_source.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a01064.html │ │ │ │ │ +usr/share/doc/gcc-15-base/libstdc++/user/a01064.js │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a01064_source.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a01067.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a01067.js │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a01067_source.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a01070.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a01070.js │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a01070_source.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a01073.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a01073.js │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a01073_source.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a01076.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a01076.js │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a01076_source.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a01079.html │ │ │ │ │ -usr/share/doc/gcc-15-base/libstdc++/user/a01079.js │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a01079_source.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a01082.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a01082.js │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a01082_source.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a01085.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a01085.js │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a01085_source.html │ │ │ │ │ @@ -1039,15 +1040,14 @@ │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a01100.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a01100.js │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a01100_source.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a01103.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a01103.js │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a01103_source.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a01106.html │ │ │ │ │ -usr/share/doc/gcc-15-base/libstdc++/user/a01106.js │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a01106_source.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a01109.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a01109.js │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a01109_source.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a01112.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a01112.js │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a01112_source.html │ │ │ │ │ @@ -1067,34 +1067,31 @@ │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a01127_source.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a01130_source.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a01133_source.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a01136_source.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a01139_source.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a01142_source.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a01145_source.html │ │ │ │ │ -usr/share/doc/gcc-15-base/libstdc++/user/a01148_source.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a01151_source.html │ │ │ │ │ -usr/share/doc/gcc-15-base/libstdc++/user/a01154.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a01154_source.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a01157_source.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a01160_source.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a01163_source.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a01166_source.html │ │ │ │ │ +usr/share/doc/gcc-15-base/libstdc++/user/a01169.html │ │ │ │ │ +usr/share/doc/gcc-15-base/libstdc++/user/a01169_source.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a01172.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a01172_source.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a01175.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a01175_source.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a01178.html │ │ │ │ │ -usr/share/doc/gcc-15-base/libstdc++/user/a01178.js │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a01178_source.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a01181.html │ │ │ │ │ -usr/share/doc/gcc-15-base/libstdc++/user/a01181.js │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a01181_source.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a01184.html │ │ │ │ │ -usr/share/doc/gcc-15-base/libstdc++/user/a01184.js │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a01184_source.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a01187.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a01187.js │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a01187_source.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a01190.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a01190.js │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a01190_source.html │ │ │ │ │ @@ -1105,67 +1102,70 @@ │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a01196_source.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a01199.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a01199_source.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a01202.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a01202.js │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a01202_source.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a01205.html │ │ │ │ │ -usr/share/doc/gcc-15-base/libstdc++/user/a01205.js │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a01205_source.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a01208.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a01208.js │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a01208_source.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a01211.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a01211.js │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a01211_source.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a01214.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a01214.js │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a01214_source.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a01217.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a01217_source.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a01220.html │ │ │ │ │ -usr/share/doc/gcc-15-base/libstdc++/user/a01220.js │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a01220_source.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a01223.html │ │ │ │ │ +usr/share/doc/gcc-15-base/libstdc++/user/a01223.js │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a01223_source.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a01226.html │ │ │ │ │ -usr/share/doc/gcc-15-base/libstdc++/user/a01226.js │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a01226_source.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a01229.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a01229_source.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a01232.html │ │ │ │ │ +usr/share/doc/gcc-15-base/libstdc++/user/a01232.js │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a01232_source.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a01235.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a01235.js │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a01235_source.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a01238.html │ │ │ │ │ +usr/share/doc/gcc-15-base/libstdc++/user/a01238.js │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a01238_source.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a01241.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a01241_source.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a01244.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a01244_source.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a01247.html │ │ │ │ │ +usr/share/doc/gcc-15-base/libstdc++/user/a01247.js │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a01247_source.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a01250.html │ │ │ │ │ +usr/share/doc/gcc-15-base/libstdc++/user/a01250.js │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a01250_source.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a01253.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a01253_source.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a01256.html │ │ │ │ │ +usr/share/doc/gcc-15-base/libstdc++/user/a01256.js │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a01256_source.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a01259.html │ │ │ │ │ -usr/share/doc/gcc-15-base/libstdc++/user/a01259.js │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a01259_source.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a01262.html │ │ │ │ │ -usr/share/doc/gcc-15-base/libstdc++/user/a01262.js │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a01262_source.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a01265.html │ │ │ │ │ +usr/share/doc/gcc-15-base/libstdc++/user/a01265.js │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a01265_source.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a01268.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a01268_source.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a01271.html │ │ │ │ │ +usr/share/doc/gcc-15-base/libstdc++/user/a01271.js │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a01271_source.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a01274.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a01274.js │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a01274_source.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a01277.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a01277.js │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a01277_source.html │ │ │ │ │ @@ -1188,106 +1188,106 @@ │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a01298.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a01298_source.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a01301.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a01301_source.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a01304.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a01304.js │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a01304_source.html │ │ │ │ │ -usr/share/doc/gcc-15-base/libstdc++/user/a01325.html │ │ │ │ │ -usr/share/doc/gcc-15-base/libstdc++/user/a01325.js │ │ │ │ │ -usr/share/doc/gcc-15-base/libstdc++/user/a01325_source.html │ │ │ │ │ -usr/share/doc/gcc-15-base/libstdc++/user/a01343.html │ │ │ │ │ -usr/share/doc/gcc-15-base/libstdc++/user/a01343.js │ │ │ │ │ -usr/share/doc/gcc-15-base/libstdc++/user/a01343_source.html │ │ │ │ │ +usr/share/doc/gcc-15-base/libstdc++/user/a01307.html │ │ │ │ │ +usr/share/doc/gcc-15-base/libstdc++/user/a01307.js │ │ │ │ │ +usr/share/doc/gcc-15-base/libstdc++/user/a01307_source.html │ │ │ │ │ +usr/share/doc/gcc-15-base/libstdc++/user/a01319.html │ │ │ │ │ +usr/share/doc/gcc-15-base/libstdc++/user/a01319.js │ │ │ │ │ +usr/share/doc/gcc-15-base/libstdc++/user/a01319_source.html │ │ │ │ │ +usr/share/doc/gcc-15-base/libstdc++/user/a01334.html │ │ │ │ │ +usr/share/doc/gcc-15-base/libstdc++/user/a01334_source.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a01349.html │ │ │ │ │ +usr/share/doc/gcc-15-base/libstdc++/user/a01349.js │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a01349_source.html │ │ │ │ │ -usr/share/doc/gcc-15-base/libstdc++/user/a01352.html │ │ │ │ │ -usr/share/doc/gcc-15-base/libstdc++/user/a01352.js │ │ │ │ │ -usr/share/doc/gcc-15-base/libstdc++/user/a01352_source.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a01355.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a01355_source.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a01358.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a01358.js │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a01358_source.html │ │ │ │ │ -usr/share/doc/gcc-15-base/libstdc++/user/a01364.html │ │ │ │ │ -usr/share/doc/gcc-15-base/libstdc++/user/a01364.js │ │ │ │ │ -usr/share/doc/gcc-15-base/libstdc++/user/a01364_source.html │ │ │ │ │ -usr/share/doc/gcc-15-base/libstdc++/user/a01376.html │ │ │ │ │ -usr/share/doc/gcc-15-base/libstdc++/user/a01376_source.html │ │ │ │ │ +usr/share/doc/gcc-15-base/libstdc++/user/a01367.html │ │ │ │ │ +usr/share/doc/gcc-15-base/libstdc++/user/a01367.js │ │ │ │ │ +usr/share/doc/gcc-15-base/libstdc++/user/a01367_source.html │ │ │ │ │ +usr/share/doc/gcc-15-base/libstdc++/user/a01373.html │ │ │ │ │ +usr/share/doc/gcc-15-base/libstdc++/user/a01373_source.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a01379.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a01379.js │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a01379_source.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a01382.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a01382.js │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a01382_source.html │ │ │ │ │ +usr/share/doc/gcc-15-base/libstdc++/user/a01385.html │ │ │ │ │ +usr/share/doc/gcc-15-base/libstdc++/user/a01385_source.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a01391.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a01391_source.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a01400.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a01400_source.html │ │ │ │ │ -usr/share/doc/gcc-15-base/libstdc++/user/a01418.html │ │ │ │ │ -usr/share/doc/gcc-15-base/libstdc++/user/a01418_source.html │ │ │ │ │ -usr/share/doc/gcc-15-base/libstdc++/user/a01427.html │ │ │ │ │ -usr/share/doc/gcc-15-base/libstdc++/user/a01427.js │ │ │ │ │ -usr/share/doc/gcc-15-base/libstdc++/user/a01427_source.html │ │ │ │ │ -usr/share/doc/gcc-15-base/libstdc++/user/a01433.html │ │ │ │ │ -usr/share/doc/gcc-15-base/libstdc++/user/a01433_source.html │ │ │ │ │ +usr/share/doc/gcc-15-base/libstdc++/user/a01403.html │ │ │ │ │ +usr/share/doc/gcc-15-base/libstdc++/user/a01403_source.html │ │ │ │ │ +usr/share/doc/gcc-15-base/libstdc++/user/a01436.html │ │ │ │ │ +usr/share/doc/gcc-15-base/libstdc++/user/a01436.js │ │ │ │ │ +usr/share/doc/gcc-15-base/libstdc++/user/a01436_source.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a01439.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a01439.js │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a01439_source.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a01442.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a01442.js │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a01442_source.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a01445.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a01445_source.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a01448.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a01448_source.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a01451.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a01451_source.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a01454.html │ │ │ │ │ -usr/share/doc/gcc-15-base/libstdc++/user/a01454.js │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a01454_source.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a01457.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a01457.js │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a01457_source.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a01460.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a01460.js │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a01460_source.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a01463.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a01463_source.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a01466.html │ │ │ │ │ +usr/share/doc/gcc-15-base/libstdc++/user/a01466.js │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a01466_source.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a01469.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a01469_source.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a01472.html │ │ │ │ │ +usr/share/doc/gcc-15-base/libstdc++/user/a01472.js │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a01472_source.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a01475.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a01475.js │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a01475_source.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a01478.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a01478.js │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a01478_source.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a01481.html │ │ │ │ │ -usr/share/doc/gcc-15-base/libstdc++/user/a01481.js │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a01481_source.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a01484.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a01484.js │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a01484_source.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a01487.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a01487.js │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a01487_source.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a01490.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a01490.js │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a01490_source.html │ │ │ │ │ -usr/share/doc/gcc-15-base/libstdc++/user/a01496.html │ │ │ │ │ -usr/share/doc/gcc-15-base/libstdc++/user/a01496.js │ │ │ │ │ -usr/share/doc/gcc-15-base/libstdc++/user/a01496_source.html │ │ │ │ │ +usr/share/doc/gcc-15-base/libstdc++/user/a01493.html │ │ │ │ │ +usr/share/doc/gcc-15-base/libstdc++/user/a01493.js │ │ │ │ │ +usr/share/doc/gcc-15-base/libstdc++/user/a01493_source.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a01499.html │ │ │ │ │ -usr/share/doc/gcc-15-base/libstdc++/user/a01499.js │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a01499_source.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a01502.html │ │ │ │ │ +usr/share/doc/gcc-15-base/libstdc++/user/a01502.js │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a01502_source.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a01505.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a01505.js │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a01505_source.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a01508.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a01508.js │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a01508_source.html │ │ │ │ │ @@ -1298,45 +1298,45 @@ │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a01514_source.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a01517.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a01517.js │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a01517_source.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a01520.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a01520_source.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a01523.html │ │ │ │ │ +usr/share/doc/gcc-15-base/libstdc++/user/a01523.js │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a01523_source.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a01526.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a01526_source.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a01529.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a01529_source.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a01532.html │ │ │ │ │ -usr/share/doc/gcc-15-base/libstdc++/user/a01532.js │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a01532_source.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a01535.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a01535_source.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a01538.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a01538.js │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a01538_source.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a01541.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a01541_source.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a01544.html │ │ │ │ │ +usr/share/doc/gcc-15-base/libstdc++/user/a01544.js │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a01544_source.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a01547.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a01547_source.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a01550.html │ │ │ │ │ +usr/share/doc/gcc-15-base/libstdc++/user/a01550.js │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a01550_source.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a01553.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a01553.js │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a01553_source.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a01556.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a01556_source.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a01559.html │ │ │ │ │ -usr/share/doc/gcc-15-base/libstdc++/user/a01559.js │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a01559_source.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a01562.html │ │ │ │ │ -usr/share/doc/gcc-15-base/libstdc++/user/a01562.js │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a01562_source.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a01565.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a01565.js │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a01565_source.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a01568.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a01568_source.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a01571.html │ │ │ │ │ @@ -1345,22 +1345,22 @@ │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a01574_source.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a01577.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a01577_source.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a01583.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a01583.js │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a01583_source.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a01589.html │ │ │ │ │ -usr/share/doc/gcc-15-base/libstdc++/user/a01589.js │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a01589_source.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a01592.html │ │ │ │ │ +usr/share/doc/gcc-15-base/libstdc++/user/a01592.js │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a01592_source.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a01595.html │ │ │ │ │ +usr/share/doc/gcc-15-base/libstdc++/user/a01595.js │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a01595_source.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a01598.html │ │ │ │ │ -usr/share/doc/gcc-15-base/libstdc++/user/a01598.js │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a01598_source.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a01601.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a01601.js │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a01601_source.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a01604.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a01604_source.html │ │ │ │ │ usr/share/doc/gcc-15-base/libstdc++/user/a01607.html │ ├── data.tar.xz │ │ ├── data.tar │ │ │ ├── file list │ │ │ │ @@ -188,28 +188,28 @@ │ │ │ │ -rw-r--r-- 0 root (0) root (0) 11874 2024-10-14 09:27:24.000000 ./usr/share/doc/gcc-15-base/libstdc++/manual/using_macros.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 6686 2024-07-15 09:23:25.000000 ./usr/share/doc/gcc-15-base/libstdc++/manual/using_namespaces.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 5620 2020-10-20 13:26:29.000000 ./usr/share/doc/gcc-15-base/libstdc++/manual/utilities.html │ │ │ │ drwxr-xr-x 0 root (0) root (0) 0 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/ │ │ │ │ -rw-r--r-- 0 root (0) root (0) 2185 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/_formulas.tex.gz │ │ │ │ -rw-r--r-- 0 root (0) root (0) 2861 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/_formulas_dark.log │ │ │ │ -rw-r--r-- 0 root (0) root (0) 2200 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/_formulas_dark.tex.gz │ │ │ │ --rw-r--r-- 0 root (0) root (0) 2811 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00002.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 20427 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00002_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 2803 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00005.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 10289 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00005_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 2799 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00008.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 95334 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00008_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 2791 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00002.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 14894 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00002_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 2791 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00005.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 64326 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00005_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 2811 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00008.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 20427 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00008_source.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 2799 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00011.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 16000 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00011_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 2791 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00014.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 64326 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00014_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 2791 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00017.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 14894 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00017_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 2799 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00020.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 9354 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00020_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 9354 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00011_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 2799 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00014.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 95334 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00014_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 2799 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00017.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 16000 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00017_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 2803 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00020.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 10289 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00020_source.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 3569 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00023.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 42517 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00023_source.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 31307 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00026_source.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 19700 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00029.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 183 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00029.js │ │ │ │ -rw-r--r-- 0 root (0) root (0) 207539 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00029_source.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 26080 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00032.html │ │ │ │ @@ -445,938 +445,938 @@ │ │ │ │ -rw-r--r-- 0 root (0) root (0) 14832 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00326_source.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 6109 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00329.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 45883 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00329_source.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 3158 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00332.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 18540 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00332_source.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 3679 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00335.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 18273 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00335_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 13798 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00338.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 1207 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00338.js │ │ │ │ --rw-r--r-- 0 root (0) root (0) 44744 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00338_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 3044 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00341.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 36541 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00341_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 5437 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00347.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 170 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00347.js │ │ │ │ --rw-r--r-- 0 root (0) root (0) 23852 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00347_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 5940 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00350.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 115316 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00350_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 14018 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00353.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 847 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00353.js │ │ │ │ --rw-r--r-- 0 root (0) root (0) 317694 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00353_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 21820 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00359.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 1715 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00359.js │ │ │ │ --rw-r--r-- 0 root (0) root (0) 156914 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00359_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 133655 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00362.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 668562 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00362_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 4371 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00365.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 54905 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00365_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 8504 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00368.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 85 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00368.js │ │ │ │ --rw-r--r-- 0 root (0) root (0) 293671 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00368_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 4028 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00371.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 44330 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00371_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 7331 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00374.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 162 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00374.js │ │ │ │ --rw-r--r-- 0 root (0) root (0) 228720 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00374_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 5968 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00377.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 209 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00377.js │ │ │ │ --rw-r--r-- 0 root (0) root (0) 66552 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00377_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 50070 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00380.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 335 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00380.js │ │ │ │ --rw-r--r-- 0 root (0) root (0) 746160 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00380_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 11882 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00383.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 612 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00383.js │ │ │ │ --rw-r--r-- 0 root (0) root (0) 483192 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00383_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 4803 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00386.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 59372 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00386_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 6525 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00389.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 9558 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00389_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 9643 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00392.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 320 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00392.js │ │ │ │ --rw-r--r-- 0 root (0) root (0) 54935 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00392_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 10790 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00395.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 934 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00395.js │ │ │ │ --rw-r--r-- 0 root (0) root (0) 230364 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00395_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 3005 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00398.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 28655 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00398_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 5271 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00401.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 22364 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00401_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 12341 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00404.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 37863 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00404_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 13570 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00407.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 73431 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00407_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 30736 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00410.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 2024 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00410.js │ │ │ │ --rw-r--r-- 0 root (0) root (0) 139872 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00410_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 45440 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00413.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 1629 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00413.js │ │ │ │ --rw-r--r-- 0 root (0) root (0) 828672 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00413_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 11804 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00416.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 476 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00416.js │ │ │ │ --rw-r--r-- 0 root (0) root (0) 88461 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00416_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 7081 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00422.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 246562 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00422_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 4299 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00425.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 52064 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00425_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 3031 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00428.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 109977 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00428_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 5002 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00431.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 70205 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00431_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 10835 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00434.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 242 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00434.js │ │ │ │ --rw-r--r-- 0 root (0) root (0) 337009 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00434_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 3022 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00437.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 144404 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00437_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 14569 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00440.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 622 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00440.js │ │ │ │ --rw-r--r-- 0 root (0) root (0) 48540 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00440_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 7673 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00443.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 15050 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00443_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 25357 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00446.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 310 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00446.js │ │ │ │ --rw-r--r-- 0 root (0) root (0) 259404 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00446_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 56824 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00449.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 3594 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00449.js │ │ │ │ --rw-r--r-- 0 root (0) root (0) 291723 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00449_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 3838 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00452.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 120857 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00452_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 12317 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00455.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 2872 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00455.js │ │ │ │ --rw-r--r-- 0 root (0) root (0) 40405 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00455_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 14092 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00458.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 307 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00458.js │ │ │ │ --rw-r--r-- 0 root (0) root (0) 412769 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00458_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 4379 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00461.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 102 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00461.js │ │ │ │ --rw-r--r-- 0 root (0) root (0) 82355 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00461_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 14263 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00467.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 485 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00467.js │ │ │ │ --rw-r--r-- 0 root (0) root (0) 363063 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00467_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 11336 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00470.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 16681 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00470_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 7273 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00473.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 328 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00473.js │ │ │ │ --rw-r--r-- 0 root (0) root (0) 38648 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00473_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 26105 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00476.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 2238 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00476.js │ │ │ │ --rw-r--r-- 0 root (0) root (0) 82545 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00476_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 9547 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00482.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 92 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00482.js │ │ │ │ --rw-r--r-- 0 root (0) root (0) 30862 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00482_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 6136 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00485.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 556 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00485.js │ │ │ │ --rw-r--r-- 0 root (0) root (0) 140969 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00485_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 36955 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00488_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 7834 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00491.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 167 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00491.js │ │ │ │ --rw-r--r-- 0 root (0) root (0) 178490 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00491_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 9173 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00494.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 110917 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00494_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 32974 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00497.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 1993 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00497.js │ │ │ │ --rw-r--r-- 0 root (0) root (0) 235493 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00497_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 105224 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00500.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 103897 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00500_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 11789 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00506.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 165 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00506.js │ │ │ │ --rw-r--r-- 0 root (0) root (0) 44277 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00506_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 6910 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00509.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 251 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00509.js │ │ │ │ --rw-r--r-- 0 root (0) root (0) 52045 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00509_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 13722 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00512.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 547 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00512.js │ │ │ │ --rw-r--r-- 0 root (0) root (0) 244755 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00512_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 4379 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00515.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 55826 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00515_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 11272 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00518.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 103848 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00518_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 15888 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00521.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 476 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00521.js │ │ │ │ --rw-r--r-- 0 root (0) root (0) 178473 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00521_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 3536 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00524.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 27689 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00524_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 13007 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00527.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 73023 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00527_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 7454 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00530.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 49507 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00530_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 138446 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00533.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 365576 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00533_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 4944 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00536.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 118900 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00536_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 4803 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00539.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 191864 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00539_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 39388 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00542.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 2434 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00542.js │ │ │ │ --rw-r--r-- 0 root (0) root (0) 631238 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00542_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 13857 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00545.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 547 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00545.js │ │ │ │ --rw-r--r-- 0 root (0) root (0) 228860 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00545_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 9471 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00548.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 47224 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00548_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 9583 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00551.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 284 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00551.js │ │ │ │ --rw-r--r-- 0 root (0) root (0) 144394 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00551_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 126403 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00554.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 10313 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00554.js │ │ │ │ --rw-r--r-- 0 root (0) root (0) 953027 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00554_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 11832 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00563.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 77 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00563.js │ │ │ │ --rw-r--r-- 0 root (0) root (0) 54011 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00563_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 10456 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00566.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 277 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00566.js │ │ │ │ --rw-r--r-- 0 root (0) root (0) 61116 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00566_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 3839 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00569.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 93778 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00569_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 6877 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00572.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 47403 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00572_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 7426 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00575.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 170 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00575.js │ │ │ │ --rw-r--r-- 0 root (0) root (0) 78875 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00575_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 4335 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00578.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 48078 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00578_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 121108 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00581.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 96510 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00581_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 18685 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00584.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 942 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00584.js │ │ │ │ --rw-r--r-- 0 root (0) root (0) 92547 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00584_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 4766 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00587.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 186534 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00587_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 3843 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00590.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 45758 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00590_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 18989 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00593.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 136851 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00593_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 4033 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00596.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 51009 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00596_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 6596 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00599.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 323 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00599.js │ │ │ │ --rw-r--r-- 0 root (0) root (0) 26574 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00599_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 4023 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00605.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 50748 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00605_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 4293 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00608.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 65450 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00608_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 11722 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00611.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 103 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00611.js │ │ │ │ --rw-r--r-- 0 root (0) root (0) 56949 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00611_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 3539 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00614.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 48796 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00614_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 20300 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00617.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 224349 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00617_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 4898 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00620.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 84180 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00620_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 17871 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00623.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 1165 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00623.js │ │ │ │ --rw-r--r-- 0 root (0) root (0) 265174 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00623_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 3048 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00626.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 100872 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00626_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 6563 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00629.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 272 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00629.js │ │ │ │ --rw-r--r-- 0 root (0) root (0) 50181 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00629_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 10898 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00632.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 117593 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00632_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 4732 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00635.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 155 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00635.js │ │ │ │ --rw-r--r-- 0 root (0) root (0) 177343 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00635_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 4199 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00638.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 43306 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00638_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 7533 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00641.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 105 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00641.js │ │ │ │ --rw-r--r-- 0 root (0) root (0) 13263 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00641_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 18725 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00644.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 1102 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00644.js │ │ │ │ --rw-r--r-- 0 root (0) root (0) 236224 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00644_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 6706 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00647.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 34092 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00647_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 4898 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00650.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 336915 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00650_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 9085 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00653.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 482252 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00653_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 4830 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00659.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 109901 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00659_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 4199 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00338.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 43306 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00338_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 4898 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00341.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 84180 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00341_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 7273 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00344.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 328 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00344.js │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 38648 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00344_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 50070 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00347.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 335 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00347.js │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 746160 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00347_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 3029 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00350.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 8478 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00350_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 4705 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00353.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 13568 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00353_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 5940 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00356.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 115316 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00356_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 6596 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00362.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 323 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00362.js │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 26574 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00362_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 4653 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00365.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 17990 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00365_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 3838 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00368.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 120857 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00368_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 4898 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00371.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 336915 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00371_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 6877 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00374.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 47403 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00374_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 10528 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00377.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 476 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00377.js │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 436594 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00377_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 105224 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00380.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 103897 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00380_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 4379 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00383.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 55826 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00383_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 138446 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00386.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 365576 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00386_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 3520 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00389.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 16387 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00389_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 133655 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00392.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 668562 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00392_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 9173 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00395.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 110917 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00395_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 45440 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00398.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 1629 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00398.js │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 828672 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00398_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 6706 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00401.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 34092 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00401_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 14569 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00404.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 622 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00404.js │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 48540 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00404_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 12341 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00410.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 37863 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00410_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 9583 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00413.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 284 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00413.js │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 144394 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00413_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 13570 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00416.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 73431 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00416_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 3499 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00419.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 62113 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00419_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 11272 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00422.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 103848 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00422_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 18989 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00425.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 136851 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00425_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 10835 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00428.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 242 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00428.js │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 337009 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00428_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 4431 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00431.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 152509 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00431_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 25689 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00434.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 177 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00434.js │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 464493 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00434_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 9547 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00437.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 92 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00437.js │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 30862 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00437_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 6719 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00440.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 251 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00440.js │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 45554 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00440_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 3990 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00443.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 37305 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00443_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 5661 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00446.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 319 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00446.js │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 20642 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00446_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 3580 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00449.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 255888 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00449_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 11882 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00452.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 612 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00452.js │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 483192 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00452_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 13857 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00455.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 547 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00455.js │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 228860 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00455_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 4766 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00458.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 186534 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00458_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 7454 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00461.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 49507 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00461_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 7533 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00464.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 105 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00464.js │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 13263 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00464_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 3544 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00467.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 12222 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00467_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 14018 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00470.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 847 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00470.js │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 317694 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00470_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 10898 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00473.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 117593 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00473_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 30181 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00476.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 177 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00476.js │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 534798 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00476_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 6581 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00479.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 105181 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00479_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 30736 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00482.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 2024 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00482.js │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 139872 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00482_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 14092 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00485.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 307 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00485.js │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 412769 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00485_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 11336 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00488.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 16681 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00488_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 3022 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00491.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 144404 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00491_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 3005 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00494.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 28655 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00494_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 4830 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00497.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 109901 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00497_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 3536 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00500.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 27689 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00500_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 7910 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00503.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 263 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00503.js │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 163867 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00503_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 13007 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00506.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 73023 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00506_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 3031 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00509.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 109977 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00509_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 11804 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00512.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 476 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00512.js │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 88461 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00512_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 36955 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00515_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 3843 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00518.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 45758 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00518_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 11832 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00521.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 77 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00521.js │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 54011 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00521_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 13798 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00524.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 1207 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00524.js │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 44744 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00524_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 5796 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00527.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 93 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00527.js │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 94639 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00527_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 4028 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00530.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 44330 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00530_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 8504 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00533.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 85 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00533.js │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 293671 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00533_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 3044 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00536.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 36541 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00536_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 4975 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00539.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 725449 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00539_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 14312 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00542_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 18725 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00545.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 1102 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00545.js │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 236224 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00545_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 5968 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00548.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 209 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00548.js │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 66552 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00548_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 11722 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00551.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 103 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00551.js │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 56949 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00551_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 4379 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00554.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 102 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00554.js │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 82355 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00554_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 10790 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00557.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 934 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00557.js │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 230364 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00557_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 126403 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00560.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 10313 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00560.js │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 953027 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00560_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 29277 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00563.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 174923 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00563_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 39388 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00569.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 2434 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00569.js │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 631238 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00569_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 7331 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00572.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 162 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00572.js │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 228720 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00572_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 3020 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00575.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 8434 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00575_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 14263 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00578.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 485 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00578.js │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 363063 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00578_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 7081 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00581.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 246562 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00581_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 11789 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00584.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 165 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00584.js │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 44277 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00584_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 8718 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00587.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 1714 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00587.js │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 63092 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00587_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 25357 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00590.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 310 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00590.js │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 259404 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00590_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 9643 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00593.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 320 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00593.js │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 54935 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00593_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 11414 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00596.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 565 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00596.js │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 377092 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00596_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 12317 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00599.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 2872 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00599.js │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 40405 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00599_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 21820 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00602.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 1715 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00602.js │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 156914 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00602_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 10456 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00608.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 277 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00608.js │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 61116 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00608_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 6980 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00611.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 93 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00611.js │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 86537 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00611_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 8604 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00614.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 614 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00614.js │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 49099 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00614_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 5679 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00620.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 392 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00620.js │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 34645 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00620_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 11655 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00623.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 738 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00623.js │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 69468 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00623_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 14062 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00626.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 547 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00626.js │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 262988 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00626_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 121108 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00629.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 96510 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00629_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 4033 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00632.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 51009 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00632_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 9471 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00638.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 47224 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00638_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 15888 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00641.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 476 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00641.js │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 178473 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00641_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 2996 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00644.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 76961 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00644_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 5564 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00647.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 98568 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00647_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 5271 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00650.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 22364 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00650_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 4803 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00653.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 59372 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00653_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 7834 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00656.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 167 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00656.js │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 178490 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00656_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 3539 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00659.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 48796 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00659_source.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 5425 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00662.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 186 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00662.js │ │ │ │ -rw-r--r-- 0 root (0) root (0) 47943 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00662_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 5136 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00665.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 141 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00665.js │ │ │ │ --rw-r--r-- 0 root (0) root (0) 167079 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00665_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 4714 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00668.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 12293 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00668_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 11414 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00671.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 565 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00671.js │ │ │ │ --rw-r--r-- 0 root (0) root (0) 377092 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00671_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 14312 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00674_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 4431 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00680.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 152509 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00680_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 3029 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00683.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 8478 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00683_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 4705 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00686.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 13568 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00686_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 5661 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00689.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 319 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00689.js │ │ │ │ --rw-r--r-- 0 root (0) root (0) 20642 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00689_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 6581 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00692.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 105181 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00692_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 4815 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00695.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 39705 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00695_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 5796 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00698.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 93 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00698.js │ │ │ │ --rw-r--r-- 0 root (0) root (0) 94639 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00698_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 7532 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00701.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 312 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00701.js │ │ │ │ --rw-r--r-- 0 root (0) root (0) 397855 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00701_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 27327 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00704.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 163 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00704.js │ │ │ │ --rw-r--r-- 0 root (0) root (0) 148861 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00704_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 2996 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00707.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 76961 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00707_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 6980 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00710.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 93 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00710.js │ │ │ │ --rw-r--r-- 0 root (0) root (0) 86537 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00710_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 25689 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00713.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 177 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00713.js │ │ │ │ --rw-r--r-- 0 root (0) root (0) 464493 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00713_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 12914 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00716.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 24001 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00716_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 85113 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00719.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 2093 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00719.js │ │ │ │ --rw-r--r-- 0 root (0) root (0) 377539 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00719_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 8604 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00722.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 614 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00722.js │ │ │ │ --rw-r--r-- 0 root (0) root (0) 49099 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00722_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 4088 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00725.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 102 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00725.js │ │ │ │ --rw-r--r-- 0 root (0) root (0) 24547 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00725_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 25107 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00728.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 1319 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00728.js │ │ │ │ --rw-r--r-- 0 root (0) root (0) 560542 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00728_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 6609 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00731.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 28703 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00731_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 4813 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00734.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 171 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00734.js │ │ │ │ --rw-r--r-- 0 root (0) root (0) 21497 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00734_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 5679 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00737.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 392 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00737.js │ │ │ │ --rw-r--r-- 0 root (0) root (0) 34645 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00737_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 11655 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00740.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 738 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00740.js │ │ │ │ --rw-r--r-- 0 root (0) root (0) 69468 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00740_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 10528 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00743.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 476 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00743.js │ │ │ │ --rw-r--r-- 0 root (0) root (0) 436594 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00743_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 39361 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00746.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 3355 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00746.js │ │ │ │ --rw-r--r-- 0 root (0) root (0) 1238043 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00746_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 3544 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00749.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 12222 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00749_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 3580 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00752.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 255888 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00752_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 3520 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00755.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 16387 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00755_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 3970 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00758.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 16838 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00758_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 8718 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00761.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 1714 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00761.js │ │ │ │ --rw-r--r-- 0 root (0) root (0) 63092 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00761_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 3541 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00764.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 26387 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00764_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 3499 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00767.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 62113 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00767_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 36133 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00770.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 58532 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00770_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 4975 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00773.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 725449 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00773_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 6719 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00776.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 251 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00776.js │ │ │ │ --rw-r--r-- 0 root (0) root (0) 45554 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00776_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 29277 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00779.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 174923 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00779_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 3835 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00782.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 89382 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00782_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 16681 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00785.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 496 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00785.js │ │ │ │ --rw-r--r-- 0 root (0) root (0) 59099 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00785_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 3990 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00788.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 37305 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00788_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 4043 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00791.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 49672 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00791_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 4794 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00794.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 206460 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00794_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 7910 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00797.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 263 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00797.js │ │ │ │ --rw-r--r-- 0 root (0) root (0) 163867 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00797_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 29466 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00800.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 6073 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00800.js │ │ │ │ --rw-r--r-- 0 root (0) root (0) 96980 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00800_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 43816 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00803.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 5907 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00803.js │ │ │ │ --rw-r--r-- 0 root (0) root (0) 270142 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00803_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 30181 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00806.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 177 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00806.js │ │ │ │ --rw-r--r-- 0 root (0) root (0) 534798 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00806_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 4653 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00809.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 17990 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00809_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 13827 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00815.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 83654 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00815_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 4666 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00818.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 97644 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00818_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 3020 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00821.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 8434 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00821_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 5564 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00824.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 98568 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00824_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 14062 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00827.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 547 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00827.js │ │ │ │ --rw-r--r-- 0 root (0) root (0) 262988 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00827_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 139714 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00830_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 7331 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00833.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 21055 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00833_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 3019 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00836.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 53645 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00836_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 357842 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00839.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 286574 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00839_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 3638 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00842.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 17354 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00842_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 6733 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00845.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 8867 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00845_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 6353 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00848.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 27934 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00848_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 56824 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00665.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 3594 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00665.js │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 291723 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00665_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 4293 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00671.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 65450 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00671_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 3839 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00674.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 93778 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00674_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 32974 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00677.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 1993 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00677.js │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 235493 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00677_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 3970 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00680.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 16838 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00680_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 5136 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00683.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 141 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00683.js │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 167079 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00683_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 6136 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00686.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 556 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00686.js │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 140969 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00686_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 26105 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00689.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 2238 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00689.js │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 82545 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00689_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 16681 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00692.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 496 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00692.js │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 59099 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00692_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 4023 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00695.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 50748 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00695_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 18685 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00698.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 942 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00698.js │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 92547 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00698_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 4043 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00701.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 49672 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00701_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 4371 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00704.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 54905 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00704_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 39361 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00707.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 3355 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00707.js │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 1238043 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00707_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 3048 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00710.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 100872 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00710_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 4794 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00713.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 206460 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00713_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 17871 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00716.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 1165 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00716.js │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 265174 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00716_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 4299 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00719.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 52064 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00719_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 3835 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00722.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 89382 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00722_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 4815 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00725.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 39705 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00725_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 43816 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00734.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 5907 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00734.js │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 270142 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00734_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 6609 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00737.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 28703 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00737_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 5002 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00740.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 70205 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00740_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 4714 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00743.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 12293 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00743_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 7532 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00749.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 312 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00749.js │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 397855 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00749_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 85113 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00752.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 2093 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00752.js │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 377539 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00752_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 6563 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00755.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 272 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00755.js │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 50181 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00755_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 6910 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00758.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 251 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00758.js │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 52045 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00758_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 6525 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00761.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 9558 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00761_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 13827 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00764.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 83654 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00764_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 7426 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00767.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 170 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00767.js │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 78875 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00767_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 4732 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00770.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 155 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00770.js │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 177343 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00770_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 4944 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00773.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 118900 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00773_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 4335 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00776.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 48078 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00776_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 9085 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00779.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 482252 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00779_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 36133 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00782.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 58532 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00782_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 4088 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00785.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 102 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00785.js │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 24547 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00785_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 27327 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00788.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 163 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00788.js │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 148861 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00788_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 29466 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00791.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 6073 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00791.js │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 96980 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00791_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 20300 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00794.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 224349 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00794_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 4803 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00800.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 191864 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00800_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 25107 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00803.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 1319 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00803.js │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 560542 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00803_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 5437 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00806.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 170 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00806.js │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 23852 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00806_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 4813 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00809.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 171 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00809.js │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 21497 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00809_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 4666 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00812.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 97644 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00812_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 3541 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00815.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 26387 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00815_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 12914 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00818.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 24001 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00818_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 13722 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00821.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 547 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00821.js │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 244755 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00821_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 7673 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00827.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 15050 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00827_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 4490 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00833.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 100 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00833.js │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 13173 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00833_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 3118 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00836.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 7889 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00836_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 6733 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00839.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 8867 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00839_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 6613 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00842.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 18045 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00842_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 3031 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00845.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 13294 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00845_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 13871 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00848.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 11747 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00848_source.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 4669 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00851.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 11476 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00851_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 3630 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00854.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 35368 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00854_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 3118 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00857.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 7889 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00857_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 13871 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00860.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 11747 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00860_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 28163 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00863_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 3627 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00866.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 26081 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00866_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 139708 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00869_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 6613 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00872.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 18045 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00872_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 3019 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00875.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 22001 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00875_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 3654 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00878.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 28370 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00878_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 3638 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00881.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 15797 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00881_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 3031 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00884.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 13294 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00884_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 4490 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00887.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 100 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00887.js │ │ │ │ --rw-r--r-- 0 root (0) root (0) 13173 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00887_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 45515 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00890_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 4322 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00893.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 21528 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00893_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 3010 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00896_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 4115 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00899.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 64 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00899.js │ │ │ │ --rw-r--r-- 0 root (0) root (0) 13761 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00899_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 5900 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00905.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 166 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00905.js │ │ │ │ --rw-r--r-- 0 root (0) root (0) 35033 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00905_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 4302 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00908.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 74 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00908.js │ │ │ │ --rw-r--r-- 0 root (0) root (0) 66286 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00908_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 3638 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00854.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 17354 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00854_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 3019 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00857.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 22001 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00857_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 3638 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00860.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 15797 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00860_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 45515 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00863_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 139714 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00866_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 4115 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00869.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 64 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00869.js │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 13761 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00869_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 3010 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00872_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 28163 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00875_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 4322 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00878.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 21528 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00878_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 3630 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00881.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 35368 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00881_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 3654 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00884.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 28370 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00884_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 7331 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00887.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 21055 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00887_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 6353 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00890.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 27934 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00890_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 357842 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00893.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 286574 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00893_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 3019 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00896.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 53645 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00896_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 139708 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00899_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 3627 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00902.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 26081 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00902_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 4302 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00905.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 74 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00905.js │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 66286 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00905_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 5900 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00908.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 166 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00908.js │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 35033 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00908_source.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 4162 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00911.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 27338 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00911_source.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 3036 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00914.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 13064 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00914_source.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 9829 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00917.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 100482 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00917_source.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 9789 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00920.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 97477 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00920_source.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 5115 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00923.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 50356 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00923_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 10640 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00926.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 13564 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00926_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 4877 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00929.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 20394 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00929_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 10983 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00932.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 96 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00932.js │ │ │ │ --rw-r--r-- 0 root (0) root (0) 120985 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00932_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 5184 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00935.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 381 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00935.js │ │ │ │ --rw-r--r-- 0 root (0) root (0) 31340 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00935_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 4041 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00938.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 138 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00938.js │ │ │ │ --rw-r--r-- 0 root (0) root (0) 28728 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00938_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 8699 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00941.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 97223 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00941_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 37586 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00944.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 27379 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00944_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 11249 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00947.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 106 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00947.js │ │ │ │ --rw-r--r-- 0 root (0) root (0) 126757 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00947_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 4917 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00950.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 19934 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00950_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 25461 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00953.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 196 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00953.js │ │ │ │ --rw-r--r-- 0 root (0) root (0) 81790 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00953_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 11154 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00956.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 101 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00956.js │ │ │ │ --rw-r--r-- 0 root (0) root (0) 144776 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00956_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 21830 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00959.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 1318 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00959.js │ │ │ │ --rw-r--r-- 0 root (0) root (0) 63266 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00959_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 8327 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00962.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 190 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00962.js │ │ │ │ --rw-r--r-- 0 root (0) root (0) 100324 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00962_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 4829 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00965.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 33841 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00965_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 19103 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00968.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 97847 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00968_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 4954 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00971.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 241 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00971.js │ │ │ │ --rw-r--r-- 0 root (0) root (0) 67070 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00971_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 11078 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00974.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 101 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00974.js │ │ │ │ --rw-r--r-- 0 root (0) root (0) 119532 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00974_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 4044 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00977.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 105 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00977.js │ │ │ │ --rw-r--r-- 0 root (0) root (0) 34608 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00977_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 18397 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00980.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 347 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00980.js │ │ │ │ --rw-r--r-- 0 root (0) root (0) 220608 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00980_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 4302 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00983.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 171 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00983.js │ │ │ │ --rw-r--r-- 0 root (0) root (0) 41308 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00983_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 68087 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00986.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 1361 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00986.js │ │ │ │ --rw-r--r-- 0 root (0) root (0) 88865 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00986_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 11078 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00926.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 101 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00926.js │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 119532 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00926_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 68087 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00929.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 1361 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00929.js │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 88865 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00929_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 25461 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00932.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 196 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00932.js │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 81790 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00932_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 10640 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00935.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 13564 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00935_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 4954 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00938.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 241 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00938.js │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 67070 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00938_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 4917 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00941.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 19934 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00941_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 4302 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00944.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 171 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00944.js │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 41308 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00944_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 19103 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00947.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 97847 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00947_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 21830 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00950.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 1318 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00950.js │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 63266 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00950_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 4041 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00953.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 138 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00953.js │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 28728 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00953_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 18397 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00956.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 347 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00956.js │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 220608 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00956_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 4877 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00959.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 20394 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00959_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 11154 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00962.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 101 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00962.js │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 144776 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00962_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 11249 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00965.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 106 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00965.js │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 126757 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00965_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 5184 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00968.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 381 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00968.js │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 31340 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00968_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 4829 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00971.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 33841 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00971_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 4044 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00974.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 105 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00974.js │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 34608 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00974_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 37586 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00977.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 27379 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00977_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 8327 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00980.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 190 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00980.js │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 100324 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00980_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 8699 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00983.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 97223 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00983_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 10983 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00986.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 96 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00986.js │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 120985 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00986_source.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 4032 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00989.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 18550 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00989_source.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 49462 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00992.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 454938 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00992_source.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 13016 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00995.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 164301 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00995_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 9518 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00998.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 836 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00998.js │ │ │ │ --rw-r--r-- 0 root (0) root (0) 114241 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00998_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 27283 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01001.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 41100 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01001_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 5271 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01004.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 186 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01004.js │ │ │ │ --rw-r--r-- 0 root (0) root (0) 18657 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01004_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 4696 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01007.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 132 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01007.js │ │ │ │ --rw-r--r-- 0 root (0) root (0) 22705 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01007_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 4035 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01010.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 82 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01010.js │ │ │ │ --rw-r--r-- 0 root (0) root (0) 26886 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01010_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 8442 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01013.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 172 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01013.js │ │ │ │ --rw-r--r-- 0 root (0) root (0) 92426 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01013_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 4638 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01016.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 125 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01016.js │ │ │ │ --rw-r--r-- 0 root (0) root (0) 22831 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01016_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 5135 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01019.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 194 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01019.js │ │ │ │ --rw-r--r-- 0 root (0) root (0) 34520 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01019_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 5283 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01022.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 399 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01022.js │ │ │ │ --rw-r--r-- 0 root (0) root (0) 43199 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01022_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 13968 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01025.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 1422 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01025.js │ │ │ │ --rw-r--r-- 0 root (0) root (0) 86850 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01025_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 8183 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01028.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 1311 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01028.js │ │ │ │ --rw-r--r-- 0 root (0) root (0) 175132 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01028_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 7974 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01031.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 436 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01031.js │ │ │ │ --rw-r--r-- 0 root (0) root (0) 95925 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01031_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 29162 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01034.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 94857 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01034_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 7825 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01037.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 371 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01037.js │ │ │ │ --rw-r--r-- 0 root (0) root (0) 110997 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01037_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 7300 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01040.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 366 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01040.js │ │ │ │ --rw-r--r-- 0 root (0) root (0) 79299 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01040_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 10552 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01043.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 3298 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01043.js │ │ │ │ --rw-r--r-- 0 root (0) root (0) 34812 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01043_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 8298 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01046.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 80722 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01046_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 4899 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01049.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 116 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01049.js │ │ │ │ --rw-r--r-- 0 root (0) root (0) 24197 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01049_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 4629 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01052.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 119 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01052.js │ │ │ │ --rw-r--r-- 0 root (0) root (0) 26661 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01052_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 5109 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01055.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 181 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01055.js │ │ │ │ --rw-r--r-- 0 root (0) root (0) 31976 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01055_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 131350 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01058.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 165 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01058.js │ │ │ │ --rw-r--r-- 0 root (0) root (0) 384465 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01058_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 4899 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00998.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 116 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00998.js │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 24197 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a00998_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 5960 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01001.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 258 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01001.js │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 34281 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01001_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 14310 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01004.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 849 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01004.js │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 19523 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01004_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 7974 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01007.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 436 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01007.js │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 95925 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01007_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 7951 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01010.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 455 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01010.js │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 48724 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01010_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 29162 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01013.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 94857 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01013_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 4370 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01016.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 94 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01016.js │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 14471 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01016_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 13968 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01019.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 1422 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01019.js │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 86850 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01019_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 4638 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01022.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 125 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01022.js │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 22831 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01022_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 131350 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01025.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 165 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01025.js │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 384465 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01025_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 5379 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01028.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 193 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01028.js │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 35924 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01028_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 5109 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01031.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 181 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01031.js │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 31976 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01031_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 4629 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01034.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 119 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01034.js │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 26661 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01034_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 4696 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01037.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 132 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01037.js │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 22705 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01037_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 8442 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01040.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 172 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01040.js │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 92426 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01040_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 7300 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01043.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 366 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01043.js │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 79299 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01043_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 9675 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01046.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 1564 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01046.js │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 79303 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01046_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 4420 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01049.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 248 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01049.js │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 36837 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01049_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 7090 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01052.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 344 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01052.js │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 72357 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01052_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 27283 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01055.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 41100 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01055_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 5271 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01058.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 186 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01058.js │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 18657 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01058_source.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 7825 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01061.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 790 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01061.js │ │ │ │ --rw-r--r-- 0 root (0) root (0) 98601 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01061_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 3005 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01064.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 10443 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01064_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 9694 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01067.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 590 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01067.js │ │ │ │ --rw-r--r-- 0 root (0) root (0) 49014 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01067_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 371 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01061.js │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 110997 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01061_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 6163 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01064.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 299 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01064.js │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 43763 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01064_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 4035 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01067.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 82 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01067.js │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 26886 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01067_source.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 37409 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01070.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 2542 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01070.js │ │ │ │ -rw-r--r-- 0 root (0) root (0) 356999 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01070_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 14310 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01073.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 849 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01073.js │ │ │ │ --rw-r--r-- 0 root (0) root (0) 19523 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01073_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 4370 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01076.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 94 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01076.js │ │ │ │ --rw-r--r-- 0 root (0) root (0) 14471 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01076_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 6308 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01079.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 286 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01079.js │ │ │ │ --rw-r--r-- 0 root (0) root (0) 36610 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01079_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 7951 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01082.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 455 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01082.js │ │ │ │ --rw-r--r-- 0 root (0) root (0) 48724 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01082_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 4420 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01085.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 248 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01085.js │ │ │ │ --rw-r--r-- 0 root (0) root (0) 36837 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01085_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 9518 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01073.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 836 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01073.js │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 114241 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01073_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 9694 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01076.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 590 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01076.js │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 49014 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01076_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 8298 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01079.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 80722 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01079_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 5283 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01082.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 399 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01082.js │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 43199 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01082_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 7825 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01085.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 790 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01085.js │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 98601 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01085_source.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 3048 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01088.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 9659 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01088_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 10842 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01091.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 575 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01091.js │ │ │ │ --rw-r--r-- 0 root (0) root (0) 15208 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01091_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 5960 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01094.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 258 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01094.js │ │ │ │ --rw-r--r-- 0 root (0) root (0) 34281 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01094_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 9675 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01097.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 1564 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01097.js │ │ │ │ --rw-r--r-- 0 root (0) root (0) 79303 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01097_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 6663 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01100.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 203 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01100.js │ │ │ │ --rw-r--r-- 0 root (0) root (0) 57986 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01100_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 5379 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01103.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 193 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01103.js │ │ │ │ --rw-r--r-- 0 root (0) root (0) 35924 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01103_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 7090 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01106.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 344 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01106.js │ │ │ │ --rw-r--r-- 0 root (0) root (0) 72357 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01106_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 8894 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01109.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 1255 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01109.js │ │ │ │ --rw-r--r-- 0 root (0) root (0) 44167 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01109_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 6163 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01112.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 299 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01112.js │ │ │ │ --rw-r--r-- 0 root (0) root (0) 43763 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01112_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 6308 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01091.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 286 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01091.js │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 36610 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01091_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 5135 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01094.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 194 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01094.js │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 34520 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01094_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 6663 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01097.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 203 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01097.js │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 57986 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01097_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 8183 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01100.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 1311 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01100.js │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 175132 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01100_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 10842 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01103.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 575 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01103.js │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 15208 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01103_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 3005 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01106.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 10443 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01106_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 10552 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01109.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 3298 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01109.js │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 34812 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01109_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 8894 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01112.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 1255 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01112.js │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 44167 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01112_source.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 6292 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01115.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 94 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01115.js │ │ │ │ -rw-r--r-- 0 root (0) root (0) 53449 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01115_source.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 5030 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01118.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 44439 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01118_source.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 17195 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01121.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 71 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01121.js │ │ │ │ -rw-r--r-- 0 root (0) root (0) 58280 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01121_source.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 12548 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01124.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 799 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01124.js │ │ │ │ -rw-r--r-- 0 root (0) root (0) 243369 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01124_source.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 252653 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01127.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 286 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01127.js │ │ │ │ -rw-r--r-- 0 root (0) root (0) 95298 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01127_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 335845 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01130_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 27318 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01133_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 486455 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01136_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 68554 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01139_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 57739 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01142_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 87636 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01145_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 940438 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01148_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 936457 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01151_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 3083 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01154.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 13153 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01154_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 141285 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01157_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 364537 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01160_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 257217 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01163_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 297907 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01166_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 940438 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01130_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 335845 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01133_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 297907 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01136_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 141285 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01139_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 87636 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01142_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 68554 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01145_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 27318 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01151_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 936457 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01154_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 57739 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01157_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 486455 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01160_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 364537 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01163_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 257217 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01166_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 3083 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01169.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 13153 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01169_source.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 23678 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01172.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 104907 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01172_source.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 3556 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01175.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 17145 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01175_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 35922 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01178.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 2420 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01178.js │ │ │ │ --rw-r--r-- 0 root (0) root (0) 581932 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01178_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 65951 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01181.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 98 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01181.js │ │ │ │ --rw-r--r-- 0 root (0) root (0) 85609 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01181_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 8661 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01184.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 429 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01184.js │ │ │ │ --rw-r--r-- 0 root (0) root (0) 126311 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01184_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 11653 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01187.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 547 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01187.js │ │ │ │ --rw-r--r-- 0 root (0) root (0) 136146 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01187_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 9215 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01190.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 254 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01190.js │ │ │ │ --rw-r--r-- 0 root (0) root (0) 23602 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01190_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 3556 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01193.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 85033 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01193_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 4028 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01178.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 37849 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01178_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 4006 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01181.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 60278 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01181_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 3981 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01184.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 34284 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01184_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 28724 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01187.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 517 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01187.js │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 107150 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01187_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 6361 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01190.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 184 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01190.js │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 36634 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01190_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 5147 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01193.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 36524 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01193_source.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 4081 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01196.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 103 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01196.js │ │ │ │ -rw-r--r-- 0 root (0) root (0) 115457 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01196_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 3981 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01199.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 34284 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01199_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 3962 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01202.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 85 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01202.js │ │ │ │ --rw-r--r-- 0 root (0) root (0) 14598 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01202_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 28724 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01205.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 517 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01205.js │ │ │ │ --rw-r--r-- 0 root (0) root (0) 107150 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01205_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 5179 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01208.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 77 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01208.js │ │ │ │ --rw-r--r-- 0 root (0) root (0) 51297 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01208_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 6307 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01211.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 73 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01211.js │ │ │ │ --rw-r--r-- 0 root (0) root (0) 48583 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01211_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 16493 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01214.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 1207 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01214.js │ │ │ │ --rw-r--r-- 0 root (0) root (0) 176038 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01214_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 3544 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01217.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 32433 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01217_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 6361 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01220.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 184 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01220.js │ │ │ │ --rw-r--r-- 0 root (0) root (0) 36634 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01220_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 5147 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01223.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 36524 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01223_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 11741 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01226.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 783 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01226.js │ │ │ │ --rw-r--r-- 0 root (0) root (0) 185291 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01226_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 7965 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01229.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 254936 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01229_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 5295 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01232.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 43925 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01232_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 5812 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01235.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 235 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01235.js │ │ │ │ --rw-r--r-- 0 root (0) root (0) 88914 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01235_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 3467 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01238.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 22822 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01238_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 5179 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01241.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 24251 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01241_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 4006 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01244.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 60278 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01244_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 4028 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01247.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 37849 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01247_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 9307 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01250.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 21543 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01250_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 3982 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01253.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 33711 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01253_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 10187 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01256.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 17598 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01256_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 4408 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01259.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 185 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01259.js │ │ │ │ --rw-r--r-- 0 root (0) root (0) 32559 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01259_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 7474 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01262.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 137 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01262.js │ │ │ │ --rw-r--r-- 0 root (0) root (0) 31698 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01262_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 6803 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01265.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 19647 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01265_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 10190 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01268.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 172348 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01268_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 4070 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01271.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 32162 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01271_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 27114 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01274.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 887 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01274.js │ │ │ │ --rw-r--r-- 0 root (0) root (0) 126168 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01274_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 16200 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01277.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 116 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01277.js │ │ │ │ --rw-r--r-- 0 root (0) root (0) 91951 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01277_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 11430 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01280.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 382 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01280.js │ │ │ │ --rw-r--r-- 0 root (0) root (0) 76331 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01280_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 9726 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01283.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 660 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01283.js │ │ │ │ --rw-r--r-- 0 root (0) root (0) 40285 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01283_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 23221 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01286.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 1823 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01286.js │ │ │ │ --rw-r--r-- 0 root (0) root (0) 80437 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01286_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 5179 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01199.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 24251 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01199_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 5179 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01202.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 77 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01202.js │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 51297 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01202_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 9307 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01205.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 21543 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01205_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 9215 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01208.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 254 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01208.js │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 23602 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01208_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 65951 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01211.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 98 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01211.js │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 85609 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01211_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 3962 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01214.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 85 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01214.js │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 14598 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01214_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 5295 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01217.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 43925 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01217_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 7965 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01220.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 254936 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01220_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 11653 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01223.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 547 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01223.js │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 136146 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01223_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 3467 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01226.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 22822 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01226_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 10187 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01229.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 17598 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01229_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 5812 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01232.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 235 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01232.js │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 88914 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01232_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 11741 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01235.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 783 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01235.js │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 185291 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01235_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 8661 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01238.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 429 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01238.js │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 126311 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01238_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 3556 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01241.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 85033 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01241_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 3982 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01244.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 33711 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01244_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 6307 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01247.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 73 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01247.js │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 48583 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01247_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 35922 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01250.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 2420 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01250.js │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 581932 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01250_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 3544 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01253.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 32433 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01253_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 16493 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01256.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 1207 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01256.js │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 176038 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01256_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 10190 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01259.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 172348 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01259_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 4070 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01262.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 32162 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01262_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 11430 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01265.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 382 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01265.js │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 76331 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01265_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 6803 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01268.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 19647 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01268_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 16200 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01271.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 116 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01271.js │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 91951 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01271_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 4408 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01274.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 185 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01274.js │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 32559 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01274_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 7474 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01277.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 137 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01277.js │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 31698 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01277_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 27114 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01280.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 887 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01280.js │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 126168 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01280_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 23221 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01283.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 1823 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01283.js │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 80437 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01283_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 9726 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01286.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 660 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01286.js │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 40285 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01286_source.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 8375 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01289.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 549 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01289.js │ │ │ │ -rw-r--r-- 0 root (0) root (0) 31274 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01289_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 7664 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01292.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 41572 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01292_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 3126 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01295.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 31157 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01295_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 7937 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01298.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 28283 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01298_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 3131 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01301.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 55817 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01301_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 3126 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01292.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 31157 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01292_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 7664 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01295.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 41572 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01295_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 3131 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01298.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 55817 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01298_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 7937 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01301.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 28283 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01301_source.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 4165 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01304.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 98 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01304.js │ │ │ │ -rw-r--r-- 0 root (0) root (0) 17088 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01304_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 4608 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01325.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 199 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01325.js │ │ │ │ --rw-r--r-- 0 root (0) root (0) 17422 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01325_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 4280 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01343.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 89 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01343.js │ │ │ │ --rw-r--r-- 0 root (0) root (0) 39194 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01343_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 11063 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01349.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 57118 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01349_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 4934 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01352.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 308 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01352.js │ │ │ │ --rw-r--r-- 0 root (0) root (0) 18206 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01352_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 4608 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01307.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 199 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01307.js │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 17422 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01307_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 4934 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01319.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 308 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01319.js │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 18206 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01319_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 11063 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01334.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 57118 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01334_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 4280 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01349.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 89 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01349.js │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 39194 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01349_source.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 6647 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01355.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 22730 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01355_source.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 10689 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01358.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 117 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01358.js │ │ │ │ -rw-r--r-- 0 root (0) root (0) 38162 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01358_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 9312 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01364.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 384 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01364.js │ │ │ │ --rw-r--r-- 0 root (0) root (0) 57514 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01364_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 10651 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01376.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 74083 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01376_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 9312 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01367.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 384 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01367.js │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 57514 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01367_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 10651 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01373.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 74083 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01373_source.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 4624 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01379.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 211 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01379.js │ │ │ │ -rw-r--r-- 0 root (0) root (0) 23996 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01379_source.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 4329 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01382.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 112 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01382.js │ │ │ │ -rw-r--r-- 0 root (0) root (0) 14416 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01382_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 3274 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01391.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 12902 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01391_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 3274 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01385.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 12902 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01385_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 11866 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01391.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 115320 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01391_source.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 3276 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01400.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 16367 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01400_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 11866 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01418.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 115320 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01418_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 4367 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01427.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 98 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01427.js │ │ │ │ --rw-r--r-- 0 root (0) root (0) 16489 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01427_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 3287 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01433.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 16040 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01433_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 4249 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01439.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 94 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01439.js │ │ │ │ --rw-r--r-- 0 root (0) root (0) 14863 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01439_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 4632 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01442.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 199 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01442.js │ │ │ │ --rw-r--r-- 0 root (0) root (0) 21568 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01442_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 11890 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01445.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 116439 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01445_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 3293 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01448.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 15071 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01448_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 3348 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01451.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 10402 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01451_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 4273 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01454.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 86 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01454.js │ │ │ │ --rw-r--r-- 0 root (0) root (0) 17613 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01454_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 3287 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01403.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 16040 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01403_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 4367 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01436.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 98 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01436.js │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 16489 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01436_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 4632 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01439.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 199 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01439.js │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 21568 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01439_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 4249 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01442.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 94 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01442.js │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 14863 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01442_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 3293 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01445.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 15071 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01445_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 3348 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01448.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 10402 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01448_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 11890 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01451.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 116439 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01451_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 3292 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01454.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 11908 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01454_source.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 4256 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01457.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 92 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01457.js │ │ │ │ -rw-r--r-- 0 root (0) root (0) 12813 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01457_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 4270 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01460.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 85 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01460.js │ │ │ │ --rw-r--r-- 0 root (0) root (0) 18425 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01460_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 4322 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01460.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 106 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01460.js │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 18876 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01460_source.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 3296 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01463.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 11921 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01463_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 3260 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01466.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 11260 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01466_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 3292 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01469.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 11908 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01469_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 3248 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01472.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 11244 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01472_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 4279 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01475.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 83 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01475.js │ │ │ │ --rw-r--r-- 0 root (0) root (0) 15315 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01475_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 4317 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01478.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 105 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01478.js │ │ │ │ --rw-r--r-- 0 root (0) root (0) 14615 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01478_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 9652 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01481.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 390 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01481.js │ │ │ │ --rw-r--r-- 0 root (0) root (0) 52590 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01481_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 4322 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01484.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 106 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01484.js │ │ │ │ --rw-r--r-- 0 root (0) root (0) 18876 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01484_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 4279 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01466.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 83 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01466.js │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 15315 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01466_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 3248 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01469.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 11244 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01469_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 4317 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01472.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 105 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01472.js │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 14615 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01472_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 4270 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01475.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 85 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01475.js │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 18425 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01475_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 4244 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01478.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 80 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01478.js │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 16044 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01478_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 3260 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01481.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 11260 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01481_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 9652 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01484.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 390 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01484.js │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 52590 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01484_source.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 14217 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01487.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 466 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01487.js │ │ │ │ -rw-r--r-- 0 root (0) root (0) 56381 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01487_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 4244 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01490.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 80 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01490.js │ │ │ │ --rw-r--r-- 0 root (0) root (0) 16044 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01490_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 6779 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01496.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 142 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01496.js │ │ │ │ --rw-r--r-- 0 root (0) root (0) 50525 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01496_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 9650 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01499.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 120 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01499.js │ │ │ │ --rw-r--r-- 0 root (0) root (0) 59761 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01499_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 3791 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01502.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 12231 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01502_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 4273 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01490.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 86 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01490.js │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 17613 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01490_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 6779 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01493.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 142 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01493.js │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 50525 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01493_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 3791 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01499.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 12231 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01499_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 9650 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01502.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 120 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01502.js │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 59761 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01502_source.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 4302 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01505.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 85 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01505.js │ │ │ │ -rw-r--r-- 0 root (0) root (0) 18684 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01505_source.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 4645 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01508.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 189 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01508.js │ │ │ │ -rw-r--r-- 0 root (0) root (0) 17654 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01508_source.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 10173 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01511.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 155 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01511.js │ │ │ │ -rw-r--r-- 0 root (0) root (0) 91156 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01511_source.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 9133 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01514.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 33175 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01514_source.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 16993 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01517.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 1411 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01517.js │ │ │ │ -rw-r--r-- 0 root (0) root (0) 220926 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01517_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 3234 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01520.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 37521 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01520_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 3239 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01523.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 11592 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01523_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 3258 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01526.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 68892 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01526_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 3258 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01520.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 68892 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01520_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 6775 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01523.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 118 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01523.js │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 35373 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01523_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 3234 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01526.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 37521 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01526_source.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 11089 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01529.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 97484 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01529_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 6775 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01532.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 118 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01532.js │ │ │ │ --rw-r--r-- 0 root (0) root (0) 35373 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01532_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 3239 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01532.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 11592 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01532_source.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 10927 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01535.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 42880 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01535_source.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 4227 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01538.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 88 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01538.js │ │ │ │ -rw-r--r-- 0 root (0) root (0) 39397 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01538_source.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 7707 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01541.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 32285 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01541_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 3313 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01544.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 15861 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01544_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 3289 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01547.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 30151 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01547_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 3365 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01550.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 32940 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01550_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 4292 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01553.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 85 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01553.js │ │ │ │ --rw-r--r-- 0 root (0) root (0) 32564 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01553_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 3317 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01556.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 46480 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01556_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 4271 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01559.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 83 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01559.js │ │ │ │ --rw-r--r-- 0 root (0) root (0) 18309 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01559_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 4295 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01562.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 86 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01562.js │ │ │ │ --rw-r--r-- 0 root (0) root (0) 35066 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01562_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 4432 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01565.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 128 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01565.js │ │ │ │ --rw-r--r-- 0 root (0) root (0) 17868 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01565_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 3304 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01568.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 35221 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01568_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 10969 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01571.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 47737 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01571_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 3239 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01574.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 39985 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01574_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 4292 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01544.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 85 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01544.js │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 32564 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01544_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 3365 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01547.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 32940 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01547_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 4432 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01550.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 128 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01550.js │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 17868 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01550_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 4295 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01553.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 86 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01553.js │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 35066 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01553_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 3304 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01556.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 35221 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01556_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 3317 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01559.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 46480 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01559_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 3313 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01562.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 15861 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01562_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 4271 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01565.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 83 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01565.js │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 18309 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01565_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 3289 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01568.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 30151 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01568_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 3239 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01571.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 39985 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01571_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 10969 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01574.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 47737 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01574_source.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 13096 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01577.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 54064 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01577_source.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 4346 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01583.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 130 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01583.js │ │ │ │ -rw-r--r-- 0 root (0) root (0) 13526 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01583_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 6666 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01589.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 126 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01589.js │ │ │ │ --rw-r--r-- 0 root (0) root (0) 34632 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01589_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 3310 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01592.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 26266 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01592_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 3353 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01595.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 17083 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01595_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 4341 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01598.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 129 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01598.js │ │ │ │ --rw-r--r-- 0 root (0) root (0) 14778 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01598_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 4299 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01601.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 90 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01601.js │ │ │ │ --rw-r--r-- 0 root (0) root (0) 17921 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01601_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 3414 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01604.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 23563 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01604_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 3391 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01607.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 24065 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01607_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 3310 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01589.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 26266 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01589_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 4299 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01592.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 90 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01592.js │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 17921 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01592_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 6666 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01595.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 126 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01595.js │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 34632 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01595_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 3353 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01598.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 17083 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01598_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 4341 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01601.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 129 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01601.js │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 14778 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01601_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 3391 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01604.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 24065 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01604_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 3414 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01607.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 23563 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01607_source.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 6517 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01610.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 8735 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01612.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 5217 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01613.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 10124 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01613.js │ │ │ │ -rw-r--r-- 0 root (0) root (0) 413 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01613.map │ │ │ │ -rw-r--r-- 0 root (0) root (0) 3680 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01613.svg │ │ │ │ -rw-r--r-- 0 root (0) root (0) 2895 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/a01613_org.svg │ │ │ │ @@ -7997,60 +7997,60 @@ │ │ │ │ -rw-r--r-- 0 root (0) root (0) 153 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/nav_f.png │ │ │ │ -rw-r--r-- 0 root (0) root (0) 169 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/nav_fd.png │ │ │ │ -rw-r--r-- 0 root (0) root (0) 95 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/nav_g.png │ │ │ │ -rw-r--r-- 0 root (0) root (0) 98 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/nav_h.png │ │ │ │ -rw-r--r-- 0 root (0) root (0) 114 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/nav_hd.png │ │ │ │ -rw-r--r-- 0 root (0) root (0) 2167 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/navtree.css │ │ │ │ -rw-r--r-- 0 root (0) root (0) 15935 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/navtree.js │ │ │ │ --rw-r--r-- 0 root (0) root (0) 5062 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/navtreedata.js │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 5048 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/navtreedata.js │ │ │ │ -rw-r--r-- 0 root (0) root (0) 9651 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/navtreeindex0.js │ │ │ │ --rw-r--r-- 0 root (0) root (0) 11725 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/navtreeindex1.js │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 9677 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/navtreeindex1.js │ │ │ │ -rw-r--r-- 0 root (0) root (0) 15648 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/navtreeindex10.js │ │ │ │ -rw-r--r-- 0 root (0) root (0) 16539 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/navtreeindex11.js │ │ │ │ -rw-r--r-- 0 root (0) root (0) 13573 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/navtreeindex12.js │ │ │ │ -rw-r--r-- 0 root (0) root (0) 15162 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/navtreeindex13.js │ │ │ │ -rw-r--r-- 0 root (0) root (0) 14204 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/navtreeindex14.js │ │ │ │ -rw-r--r-- 0 root (0) root (0) 15058 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/navtreeindex15.js │ │ │ │ -rw-r--r-- 0 root (0) root (0) 15179 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/navtreeindex16.js │ │ │ │ -rw-r--r-- 0 root (0) root (0) 15172 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/navtreeindex17.js │ │ │ │ -rw-r--r-- 0 root (0) root (0) 15129 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/navtreeindex18.js │ │ │ │ -rw-r--r-- 0 root (0) root (0) 12610 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/navtreeindex19.js │ │ │ │ --rw-r--r-- 0 root (0) root (0) 11710 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/navtreeindex2.js │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 13420 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/navtreeindex2.js │ │ │ │ -rw-r--r-- 0 root (0) root (0) 11769 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/navtreeindex20.js │ │ │ │ -rw-r--r-- 0 root (0) root (0) 13714 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/navtreeindex21.js │ │ │ │ -rw-r--r-- 0 root (0) root (0) 15290 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/navtreeindex22.js │ │ │ │ -rw-r--r-- 0 root (0) root (0) 13804 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/navtreeindex23.js │ │ │ │ -rw-r--r-- 0 root (0) root (0) 15003 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/navtreeindex24.js │ │ │ │ -rw-r--r-- 0 root (0) root (0) 14953 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/navtreeindex25.js │ │ │ │ -rw-r--r-- 0 root (0) root (0) 14662 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/navtreeindex26.js │ │ │ │ -rw-r--r-- 0 root (0) root (0) 15215 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/navtreeindex27.js │ │ │ │ -rw-r--r-- 0 root (0) root (0) 13229 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/navtreeindex28.js │ │ │ │ -rw-r--r-- 0 root (0) root (0) 13694 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/navtreeindex29.js │ │ │ │ --rw-r--r-- 0 root (0) root (0) 12058 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/navtreeindex3.js │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 12396 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/navtreeindex3.js │ │ │ │ -rw-r--r-- 0 root (0) root (0) 14564 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/navtreeindex30.js │ │ │ │ -rw-r--r-- 0 root (0) root (0) 14890 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/navtreeindex31.js │ │ │ │ -rw-r--r-- 0 root (0) root (0) 15240 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/navtreeindex32.js │ │ │ │ -rw-r--r-- 0 root (0) root (0) 14782 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/navtreeindex33.js │ │ │ │ -rw-r--r-- 0 root (0) root (0) 14335 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/navtreeindex34.js │ │ │ │ -rw-r--r-- 0 root (0) root (0) 14709 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/navtreeindex35.js │ │ │ │ -rw-r--r-- 0 root (0) root (0) 12547 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/navtreeindex36.js │ │ │ │ -rw-r--r-- 0 root (0) root (0) 12506 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/navtreeindex37.js │ │ │ │ -rw-r--r-- 0 root (0) root (0) 13807 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/navtreeindex38.js │ │ │ │ -rw-r--r-- 0 root (0) root (0) 13714 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/navtreeindex39.js │ │ │ │ --rw-r--r-- 0 root (0) root (0) 12644 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/navtreeindex4.js │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 11456 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/navtreeindex4.js │ │ │ │ -rw-r--r-- 0 root (0) root (0) 12575 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/navtreeindex40.js │ │ │ │ -rw-r--r-- 0 root (0) root (0) 14079 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/navtreeindex41.js │ │ │ │ -rw-r--r-- 0 root (0) root (0) 11880 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/navtreeindex42.js │ │ │ │ -rw-r--r-- 0 root (0) root (0) 13574 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/navtreeindex43.js │ │ │ │ -rw-r--r-- 0 root (0) root (0) 10003 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/navtreeindex44.js │ │ │ │ -rw-r--r-- 0 root (0) root (0) 8822 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/navtreeindex45.js │ │ │ │ -rw-r--r-- 0 root (0) root (0) 9422 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/navtreeindex46.js │ │ │ │ -rw-r--r-- 0 root (0) root (0) 853 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/navtreeindex47.js │ │ │ │ --rw-r--r-- 0 root (0) root (0) 10011 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/navtreeindex5.js │ │ │ │ --rw-r--r-- 0 root (0) root (0) 12341 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/navtreeindex6.js │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 11196 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/navtreeindex5.js │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 12344 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/navtreeindex6.js │ │ │ │ -rw-r--r-- 0 root (0) root (0) 15025 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/navtreeindex7.js │ │ │ │ -rw-r--r-- 0 root (0) root (0) 14613 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/navtreeindex8.js │ │ │ │ -rw-r--r-- 0 root (0) root (0) 13800 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/navtreeindex9.js │ │ │ │ -rw-r--r-- 0 root (0) root (0) 123 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/open.png │ │ │ │ -rw-r--r-- 0 root (0) root (0) 2935 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/pages.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 696 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/plus.svg │ │ │ │ -rw-r--r-- 0 root (0) root (0) 696 2025-03-19 11:38:10.000000 ./usr/share/doc/gcc-15-base/libstdc++/user/plusd.svg │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/_formulas_dark.log │ │ │ │ @@ -1,8 +1,8 @@ │ │ │ │ -This is pdfTeX, Version 3.141592653-2.6-1.40.26 (TeX Live 2025/dev/Debian) (preloaded format=latex 2025.3.20) 21 MAR 2025 04:46 │ │ │ │ +This is pdfTeX, Version 3.141592653-2.6-1.40.26 (TeX Live 2025/dev/Debian) (preloaded format=latex 2026.4.24) 25 APR 2026 03:21 │ │ │ │ entering extended mode │ │ │ │ restricted \write18 enabled. │ │ │ │ %&-line parsing enabled. │ │ │ │ **_formulas_dark │ │ │ │ (./_formulas_dark.tex │ │ │ │ LaTeX2e <2024-11-01> patch level 2 │ │ │ │ L3 programming layer <2025-01-18> │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a00002.html │ │ │ │ @@ -1,15 +1,15 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ -libstdc++: stdckdint.h File Reference │ │ │ │ +libstdc++: fenv.h File Reference │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ @@ -45,27 +45,27 @@ │ │ │ │ │ │ │ │
│ │ │ │
│ │ │ │ -
stdckdint.h File Reference
│ │ │ │ +
fenv.h File Reference
│ │ │ │
│ │ │ │
│ │ │ │ │ │ │ │

Go to the source code of this file.

│ │ │ │

Detailed Description

│ │ │ │

This is a Standard C++ Library header.

│ │ │ │ │ │ │ │ -

Definition in file stdckdint.h.

│ │ │ │ +

Definition in file fenv.h.

│ │ │ │
│ │ │ │
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├── html2text {} │ │ │ │ │ @@ -1,8 +1,8 @@ │ │ │ │ │ libstdc++ │ │ │ │ │ -stdckdint.h File Reference │ │ │ │ │ +fenv.h File Reference │ │ │ │ │ _G_o_ _t_o_ _t_h_e_ _s_o_u_r_c_e_ _c_o_d_e_ _o_f_ _t_h_i_s_ _f_i_l_e_. │ │ │ │ │ ********** DDeettaaiilleedd DDeessccrriippttiioonn ********** │ │ │ │ │ This is a Standard C++ Library header. │ │ │ │ │ -Definition in file _s_t_d_c_k_d_i_n_t_._h. │ │ │ │ │ - * _s_t_d_c_k_d_i_n_t_._h │ │ │ │ │ +Definition in file _f_e_n_v_._h. │ │ │ │ │ + * _f_e_n_v_._h │ │ │ │ │ * Generated by _[_d_o_x_y_g_e_n_]1.9.8 │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a00002_source.html │ │ │ │ @@ -1,15 +1,15 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ -libstdc++: stdckdint.h Source File │ │ │ │ +libstdc++: fenv.h Source File │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ @@ -45,20 +45,20 @@ │ │ │ │ │ │ │ │
│ │ │ │
│ │ │ │ -
stdckdint.h
│ │ │ │ +
fenv.h
│ │ │ │
│ │ │ │
│ │ │ │ -Go to the documentation of this file.
1// C compatibility header <stdckdint.h> -*- C++ -*-
│ │ │ │ +Go to the documentation of this file.
1// -*- C++ -*- compatibility header.
│ │ │ │
2
│ │ │ │ -
3// Copyright The GNU Toolchain Authors.
│ │ │ │ +
3// Copyright (C) 2007-2025 Free Software Foundation, Inc.
│ │ │ │
4//
│ │ │ │
5// This file is part of the GNU ISO C++ Library. This library is free
│ │ │ │
6// software; you can redistribute it and/or modify it under the
│ │ │ │
7// terms of the GNU General Public License as published by the
│ │ │ │
8// Free Software Foundation; either version 3, or (at your option)
│ │ │ │
9// any later version.
│ │ │ │
10
│ │ │ │ @@ -72,109 +72,84 @@ │ │ │ │
18// 3.1, as published by the Free Software Foundation.
│ │ │ │
19
│ │ │ │
20// You should have received a copy of the GNU General Public License and
│ │ │ │
21// a copy of the GCC Runtime Library Exception along with this program;
│ │ │ │
22// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
│ │ │ │
23// <http://www.gnu.org/licenses/>.
│ │ │ │
24
│ │ │ │ -
25/** @file include/stdckdint.h
│ │ │ │ +
25/** @file fenv.h
│ │ │ │
26 * This is a Standard C++ Library header.
│ │ │ │
27 */
│ │ │ │
28
│ │ │ │ -
29#ifndef _GLIBCXX_STDCKDINT_H
│ │ │ │ -
30#define _GLIBCXX_STDCKDINT_H
│ │ │ │ +
29#ifndef _GLIBCXX_FENV_H
│ │ │ │ +
30#define _GLIBCXX_FENV_H 1
│ │ │ │
31
│ │ │ │ -
32#if __cplusplus > 202302L
│ │ │ │ -
33#include <type_traits>
│ │ │ │ -
34#include <concepts>
│ │ │ │ +
32#ifdef _GLIBCXX_SYSHDR
│ │ │ │ +
33#pragma GCC system_header
│ │ │ │ +
34#endif
│ │ │ │
35
│ │ │ │ -
36#define __STDC_VERSION_STDCKDINT_H__ 202311L
│ │ │ │ -
37
│ │ │ │ -
38#ifndef _GLIBCXX_DOXYGEN
│ │ │ │ -
39// We define these in our own namespace, but let Doxygen think otherwise.
│ │ │ │ -
40namespace __gnu_cxx _GLIBCXX_VISIBILITY(default)
│ │ │ │ -
41{
│ │ │ │ -
42#endif
│ │ │ │ -
43/// @cond undocumented
│ │ │ │ -
44namespace __detail
│ │ │ │ -
45{
│ │ │ │ -
46 template<typename _Tp>
│ │ │ │ -
47 concept __cv_unqual_signed_or_unsigned_integer_type
│ │ │ │ -
48 = std::same_as<_Tp, std::remove_cv_t<_Tp>>
│ │ │ │ -
49 && std::__is_standard_integer<_Tp>::value;
│ │ │ │ -
50}
│ │ │ │ -
51/// @endcond
│ │ │ │ -
52
│ │ │ │ -
53/** Checked integer arithmetic
│ │ │ │ -
54 *
│ │ │ │ -
55 * Performs arithmetic on `__a` and `__b` and stores the result in `*__result`,
│ │ │ │ -
56 * with overflow detection.
│ │ │ │ -
57 * The arithmetic is performed in infinite signed precision, without overflow,
│ │ │ │ -
58 * then converted to the result type, `_Tp1`. If the converted result is not
│ │ │ │ -
59 * equal to the infinite precision result, the stored result is wrapped to the
│ │ │ │ -
60 * width of `_Tp1` and `true` is returned. Otherwise, the stored result is
│ │ │ │ -
61 * correct and `false` is returned.
│ │ │ │ -
62 *
│ │ │ │ -
63 * @param __result A pointer to a signed or unsigned integer type.
│ │ │ │ -
64 * @param __a A signed or unsigned integer type.
│ │ │ │ -
65 * @param __b A signed or unsigned integer type.
│ │ │ │ -
66 * @return True if overflow occurred, false otherwise.
│ │ │ │ -
67 * @since C++26
│ │ │ │ -
68 * @{
│ │ │ │ -
69 */
│ │ │ │ -
70template<typename _Tp1, typename _Tp2, typename _Tp3>
│ │ │ │ -
71 inline bool
│ │ │ │ -
72 ckd_add(_Tp1* __result, _Tp2 __a, _Tp3 __b)
│ │ │ │ -
73 {
│ │ │ │ -
74 using __gnu_cxx::__detail::__cv_unqual_signed_or_unsigned_integer_type;
│ │ │ │ -
75 static_assert(__cv_unqual_signed_or_unsigned_integer_type<_Tp1>);
│ │ │ │ -
76 static_assert(__cv_unqual_signed_or_unsigned_integer_type<_Tp2>);
│ │ │ │ -
77 static_assert(__cv_unqual_signed_or_unsigned_integer_type<_Tp3>);
│ │ │ │ -
78 return __builtin_add_overflow(__a, __b, __result);
│ │ │ │ -
79 }
│ │ │ │ -
80
│ │ │ │ -
81template<typename _Tp1, typename _Tp2, typename _Tp3>
│ │ │ │ -
82 inline bool
│ │ │ │ -
83 ckd_sub(_Tp1* __result, _Tp2 __a, _Tp3 __b)
│ │ │ │ -
84 {
│ │ │ │ -
85 using __gnu_cxx::__detail::__cv_unqual_signed_or_unsigned_integer_type;
│ │ │ │ -
86 static_assert(__cv_unqual_signed_or_unsigned_integer_type<_Tp1>);
│ │ │ │ -
87 static_assert(__cv_unqual_signed_or_unsigned_integer_type<_Tp2>);
│ │ │ │ -
88 static_assert(__cv_unqual_signed_or_unsigned_integer_type<_Tp3>);
│ │ │ │ -
89 return __builtin_sub_overflow(__a, __b, __result);
│ │ │ │ -
90 }
│ │ │ │ -
91
│ │ │ │ -
92template<typename _Tp1, typename _Tp2, typename _Tp3>
│ │ │ │ -
93 inline bool
│ │ │ │ -
94 ckd_mul(_Tp1* __result, _Tp2 __a, _Tp3 __b)
│ │ │ │ -
95 {
│ │ │ │ -
96 using __gnu_cxx::__detail::__cv_unqual_signed_or_unsigned_integer_type;
│ │ │ │ -
97 static_assert(__cv_unqual_signed_or_unsigned_integer_type<_Tp1>);
│ │ │ │ -
98 static_assert(__cv_unqual_signed_or_unsigned_integer_type<_Tp2>);
│ │ │ │ -
99 static_assert(__cv_unqual_signed_or_unsigned_integer_type<_Tp3>);
│ │ │ │ -
100 return __builtin_mul_overflow(__a, __b, __result);
│ │ │ │ -
101 }
│ │ │ │ -
102/// @}
│ │ │ │ -
103#ifndef _GLIBCXX_DOXYGEN
│ │ │ │ -
104}
│ │ │ │ -
105
│ │ │ │ -
106using __gnu_cxx::ckd_add;
│ │ │ │ -
107using __gnu_cxx::ckd_sub;
│ │ │ │ -
108using __gnu_cxx::ckd_mul;
│ │ │ │ -
109#endif
│ │ │ │ -
110
│ │ │ │ -
111#endif // C++26
│ │ │ │ -
112
│ │ │ │ -
113#endif // _GLIBCXX_STDCKDINT_H
│ │ │ │ - │ │ │ │ -
GNU extensions for public use.
│ │ │ │ +
36#pragma GCC diagnostic push
│ │ │ │ +
37#pragma GCC diagnostic ignored "-Wpedantic" // include_next
│ │ │ │ +
38
│ │ │ │ +
39#include <bits/c++config.h>
│ │ │ │ +
40#if _GLIBCXX_HAVE_FENV_H
│ │ │ │ +
41# include_next <fenv.h>
│ │ │ │ +
42#endif
│ │ │ │ +
43
│ │ │ │ +
44#pragma GCC diagnostic pop
│ │ │ │ +
45
│ │ │ │ +
46#if __cplusplus >= 201103L
│ │ │ │ +
47
│ │ │ │ +
48#if _GLIBCXX_USE_C99_FENV
│ │ │ │ +
49
│ │ │ │ +
50#undef feclearexcept
│ │ │ │ +
51#undef fegetexceptflag
│ │ │ │ +
52#undef feraiseexcept
│ │ │ │ +
53#undef fesetexceptflag
│ │ │ │ +
54#undef fetestexcept
│ │ │ │ +
55#undef fegetround
│ │ │ │ +
56#undef fesetround
│ │ │ │ +
57#undef fegetenv
│ │ │ │ +
58#undef feholdexcept
│ │ │ │ +
59#undef fesetenv
│ │ │ │ +
60#undef feupdateenv
│ │ │ │ +
61
│ │ │ │ +
62namespace std
│ │ │ │ +
63{
│ │ │ │ +
64 // types
│ │ │ │ +
65 using ::fenv_t;
│ │ │ │ +
66 using ::fexcept_t;
│ │ │ │ +
67
│ │ │ │ +
68 // functions
│ │ │ │ +
69 using ::feclearexcept;
│ │ │ │ +
70 using ::fegetexceptflag;
│ │ │ │ +
71 using ::feraiseexcept;
│ │ │ │ +
72 using ::fesetexceptflag;
│ │ │ │ +
73 using ::fetestexcept;
│ │ │ │ +
74
│ │ │ │ +
75 using ::fegetround;
│ │ │ │ +
76 using ::fesetround;
│ │ │ │ +
77
│ │ │ │ +
78 using ::fegetenv;
│ │ │ │ +
79 using ::feholdexcept;
│ │ │ │ +
80 using ::fesetenv;
│ │ │ │ +
81 using ::feupdateenv;
│ │ │ │ +
82} // namespace
│ │ │ │ +
83
│ │ │ │ +
84#endif // _GLIBCXX_USE_C99_FENV
│ │ │ │ +
85
│ │ │ │ +
86#endif // C++11
│ │ │ │ +
87
│ │ │ │ +
88#endif // _GLIBCXX_FENV_H
│ │ │ │ + │ │ │ │ +
ISO C++ entities toplevel namespace is std.
│ │ │ │
│ │ │ │
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├── html2text {} │ │ │ │ │ @@ -1,13 +1,13 @@ │ │ │ │ │ libstdc++ │ │ │ │ │ -stdckdint.h │ │ │ │ │ +fenv.h │ │ │ │ │ _G_o_ _t_o_ _t_h_e_ _d_o_c_u_m_e_n_t_a_t_i_o_n_ _o_f_ _t_h_i_s_ _f_i_l_e_. │ │ │ │ │ -1// C compatibility header -*- C++ -*- │ │ │ │ │ +1// -*- C++ -*- compatibility header. │ │ │ │ │ 2 │ │ │ │ │ -3// Copyright The GNU Toolchain Authors. │ │ │ │ │ +3// Copyright (C) 2007-2025 Free Software Foundation, Inc. │ │ │ │ │ 4// │ │ │ │ │ 5// This file is part of the GNU ISO C++ Library. This library is free │ │ │ │ │ 6// software; you can redistribute it and/or modify it under the │ │ │ │ │ 7// terms of the GNU General Public License as published by the │ │ │ │ │ 8// Free Software Foundation; either version 3, or (at your option) │ │ │ │ │ 9// any later version. │ │ │ │ │ 10 │ │ │ │ │ @@ -21,104 +21,76 @@ │ │ │ │ │ 18// 3.1, as published by the Free Software Foundation. │ │ │ │ │ 19 │ │ │ │ │ 20// You should have received a copy of the GNU General Public License and │ │ │ │ │ 21// a copy of the GCC Runtime Library Exception along with this program; │ │ │ │ │ 22// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see │ │ │ │ │ 23// . │ │ │ │ │ 24 │ │ │ │ │ -25/** @file include/stdckdint.h │ │ │ │ │ +25/** @file fenv.h │ │ │ │ │ 26 * This is a Standard C++ Library header. │ │ │ │ │ 27 */ │ │ │ │ │ 28 │ │ │ │ │ -29#ifndef _GLIBCXX_STDCKDINT_H │ │ │ │ │ -30#define _GLIBCXX_STDCKDINT_H │ │ │ │ │ +29#ifndef _GLIBCXX_FENV_H │ │ │ │ │ +30#define _GLIBCXX_FENV_H 1 │ │ │ │ │ 31 │ │ │ │ │ -32#if __cplusplus > 202302L │ │ │ │ │ -33#include │ │ │ │ │ -34#include <_c_o_n_c_e_p_t_s> │ │ │ │ │ +32#ifdef _GLIBCXX_SYSHDR │ │ │ │ │ +33#pragma GCC system_header │ │ │ │ │ +34#endif │ │ │ │ │ 35 │ │ │ │ │ -36#define __STDC_VERSION_STDCKDINT_H__ 202311L │ │ │ │ │ -37 │ │ │ │ │ -38#ifndef _GLIBCXX_DOXYGEN │ │ │ │ │ -39// We define these in our own namespace, but let Doxygen think otherwise. │ │ │ │ │ -40namespace _____g_n_u___c_x_x _GLIBCXX_VISIBILITY(default) │ │ │ │ │ -41{ │ │ │ │ │ +36#pragma GCC diagnostic push │ │ │ │ │ +37#pragma GCC diagnostic ignored "-Wpedantic" // include_next │ │ │ │ │ +38 │ │ │ │ │ +39#include <_b_i_t_s_/_c_+_+_c_o_n_f_i_g_._h> │ │ │ │ │ +40#if _GLIBCXX_HAVE_FENV_H │ │ │ │ │ +41# include_next │ │ │ │ │ 42#endif │ │ │ │ │ -43/// @cond undocumented │ │ │ │ │ -44namespace __detail │ │ │ │ │ -45{ │ │ │ │ │ -46 template │ │ │ │ │ -47 concept __cv_unqual_signed_or_unsigned_integer_type │ │ │ │ │ -48 = std::same_as<_Tp, std::remove_cv_t<_Tp>> │ │ │ │ │ -49 && std::__is_standard_integer<_Tp>::value; │ │ │ │ │ -50} │ │ │ │ │ -51/// @endcond │ │ │ │ │ -52 │ │ │ │ │ -53/** Checked integer arithmetic │ │ │ │ │ -54 * │ │ │ │ │ -55 * Performs arithmetic on `__a` and `__b` and stores the result in │ │ │ │ │ -`*__result`, │ │ │ │ │ -56 * with overflow detection. │ │ │ │ │ -57 * The arithmetic is performed in infinite signed precision, without │ │ │ │ │ -overflow, │ │ │ │ │ -58 * then converted to the result type, `_Tp1`. If the converted result is not │ │ │ │ │ -59 * equal to the infinite precision result, the stored result is wrapped to │ │ │ │ │ -the │ │ │ │ │ -60 * width of `_Tp1` and `true` is returned. Otherwise, the stored result is │ │ │ │ │ -61 * correct and `false` is returned. │ │ │ │ │ -62 * │ │ │ │ │ -63 * @param __result A pointer to a signed or unsigned integer type. │ │ │ │ │ -64 * @param __a A signed or unsigned integer type. │ │ │ │ │ -65 * @param __b A signed or unsigned integer type. │ │ │ │ │ -66 * @return True if overflow occurred, false otherwise. │ │ │ │ │ -67 * @since C++26 │ │ │ │ │ -68 * @{ │ │ │ │ │ -69 */ │ │ │ │ │ -70template │ │ │ │ │ -71 inline bool │ │ │ │ │ -72 ckd_add(_Tp1* __result, _Tp2 __a, _Tp3 __b) │ │ │ │ │ -73 { │ │ │ │ │ -74 using __gnu_cxx::__detail::__cv_unqual_signed_or_unsigned_integer_type; │ │ │ │ │ -75 static_assert(__cv_unqual_signed_or_unsigned_integer_type<_Tp1>); │ │ │ │ │ -76 static_assert(__cv_unqual_signed_or_unsigned_integer_type<_Tp2>); │ │ │ │ │ -77 static_assert(__cv_unqual_signed_or_unsigned_integer_type<_Tp3>); │ │ │ │ │ -78 return __builtin_add_overflow(__a, __b, __result); │ │ │ │ │ -79 } │ │ │ │ │ -80 │ │ │ │ │ -81template │ │ │ │ │ -82 inline bool │ │ │ │ │ -83 ckd_sub(_Tp1* __result, _Tp2 __a, _Tp3 __b) │ │ │ │ │ -84 { │ │ │ │ │ -85 using __gnu_cxx::__detail::__cv_unqual_signed_or_unsigned_integer_type; │ │ │ │ │ -86 static_assert(__cv_unqual_signed_or_unsigned_integer_type<_Tp1>); │ │ │ │ │ -87 static_assert(__cv_unqual_signed_or_unsigned_integer_type<_Tp2>); │ │ │ │ │ -88 static_assert(__cv_unqual_signed_or_unsigned_integer_type<_Tp3>); │ │ │ │ │ -89 return __builtin_sub_overflow(__a, __b, __result); │ │ │ │ │ -90 } │ │ │ │ │ -91 │ │ │ │ │ -92template │ │ │ │ │ -93 inline bool │ │ │ │ │ -94 ckd_mul(_Tp1* __result, _Tp2 __a, _Tp3 __b) │ │ │ │ │ -95 { │ │ │ │ │ -96 using __gnu_cxx::__detail::__cv_unqual_signed_or_unsigned_integer_type; │ │ │ │ │ -97 static_assert(__cv_unqual_signed_or_unsigned_integer_type<_Tp1>); │ │ │ │ │ -98 static_assert(__cv_unqual_signed_or_unsigned_integer_type<_Tp2>); │ │ │ │ │ -99 static_assert(__cv_unqual_signed_or_unsigned_integer_type<_Tp3>); │ │ │ │ │ -100 return __builtin_mul_overflow(__a, __b, __result); │ │ │ │ │ -101 } │ │ │ │ │ -102/// @} │ │ │ │ │ -103#ifndef _GLIBCXX_DOXYGEN │ │ │ │ │ -104} │ │ │ │ │ -105 │ │ │ │ │ -106using __gnu_cxx::ckd_add; │ │ │ │ │ -107using __gnu_cxx::ckd_sub; │ │ │ │ │ -108using __gnu_cxx::ckd_mul; │ │ │ │ │ -109#endif │ │ │ │ │ -110 │ │ │ │ │ -111#endif // C++26 │ │ │ │ │ -112 │ │ │ │ │ -113#endif // _GLIBCXX_STDCKDINT_H │ │ │ │ │ -_c_o_n_c_e_p_t_s │ │ │ │ │ -_____g_n_u___c_x_x │ │ │ │ │ -GNU extensions for public use. │ │ │ │ │ - * _s_t_d_c_k_d_i_n_t_._h │ │ │ │ │ +43 │ │ │ │ │ +44#pragma GCC diagnostic pop │ │ │ │ │ +45 │ │ │ │ │ +46#if __cplusplus >= 201103L │ │ │ │ │ +47 │ │ │ │ │ +48#if _GLIBCXX_USE_C99_FENV │ │ │ │ │ +49 │ │ │ │ │ +50#undef feclearexcept │ │ │ │ │ +51#undef fegetexceptflag │ │ │ │ │ +52#undef feraiseexcept │ │ │ │ │ +53#undef fesetexceptflag │ │ │ │ │ +54#undef fetestexcept │ │ │ │ │ +55#undef fegetround │ │ │ │ │ +56#undef fesetround │ │ │ │ │ +57#undef fegetenv │ │ │ │ │ +58#undef feholdexcept │ │ │ │ │ +59#undef fesetenv │ │ │ │ │ +60#undef feupdateenv │ │ │ │ │ +61 │ │ │ │ │ +62namespace _s_t_d │ │ │ │ │ +63{ │ │ │ │ │ +64 // types │ │ │ │ │ +65 using ::fenv_t; │ │ │ │ │ +66 using ::fexcept_t; │ │ │ │ │ +67 │ │ │ │ │ +68 // functions │ │ │ │ │ +69 using ::feclearexcept; │ │ │ │ │ +70 using ::fegetexceptflag; │ │ │ │ │ +71 using ::feraiseexcept; │ │ │ │ │ +72 using ::fesetexceptflag; │ │ │ │ │ +73 using ::fetestexcept; │ │ │ │ │ +74 │ │ │ │ │ +75 using ::fegetround; │ │ │ │ │ +76 using ::fesetround; │ │ │ │ │ +77 │ │ │ │ │ +78 using ::fegetenv; │ │ │ │ │ +79 using ::feholdexcept; │ │ │ │ │ +80 using ::fesetenv; │ │ │ │ │ +81 using ::feupdateenv; │ │ │ │ │ +82} // namespace │ │ │ │ │ +83 │ │ │ │ │ +84#endif // _GLIBCXX_USE_C99_FENV │ │ │ │ │ +85 │ │ │ │ │ +86#endif // C++11 │ │ │ │ │ +87 │ │ │ │ │ +88#endif // _GLIBCXX_FENV_H │ │ │ │ │ +_c_+_+_c_o_n_f_i_g_._h │ │ │ │ │ +_s_t_d │ │ │ │ │ +ISO C++ entities toplevel namespace is std. │ │ │ │ │ + * _f_e_n_v_._h │ │ │ │ │ * Generated by _[_d_o_x_y_g_e_n_]1.9.8 │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a00005.html │ │ │ │ @@ -1,15 +1,15 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ -libstdc++: complex.h File Reference │ │ │ │ +libstdc++: math.h File Reference │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ @@ -45,27 +45,27 @@ │ │ │ │ │ │ │ │
│ │ │ │
│ │ │ │ -
complex.h File Reference
│ │ │ │ +
math.h File Reference
│ │ │ │
│ │ │ │
│ │ │ │ │ │ │ │

Go to the source code of this file.

│ │ │ │

Detailed Description

│ │ │ │

This is a Standard C++ Library header.

│ │ │ │ │ │ │ │ -

Definition in file complex.h.

│ │ │ │ +

Definition in file math.h.

│ │ │ │
│ │ │ │
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├── html2text {} │ │ │ │ │ @@ -1,8 +1,8 @@ │ │ │ │ │ libstdc++ │ │ │ │ │ -complex.h File Reference │ │ │ │ │ +math.h File Reference │ │ │ │ │ _G_o_ _t_o_ _t_h_e_ _s_o_u_r_c_e_ _c_o_d_e_ _o_f_ _t_h_i_s_ _f_i_l_e_. │ │ │ │ │ ********** DDeettaaiilleedd DDeessccrriippttiioonn ********** │ │ │ │ │ This is a Standard C++ Library header. │ │ │ │ │ -Definition in file _c_o_m_p_l_e_x_._h. │ │ │ │ │ - * _c_o_m_p_l_e_x_._h │ │ │ │ │ +Definition in file _m_a_t_h_._h. │ │ │ │ │ + * _m_a_t_h_._h │ │ │ │ │ * Generated by _[_d_o_x_y_g_e_n_]1.9.8 │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a00005_source.html │ │ │ │ @@ -1,15 +1,15 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ -libstdc++: complex.h Source File │ │ │ │ +libstdc++: math.h Source File │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ @@ -45,20 +45,20 @@ │ │ │ │ │ │ │ │
│ │ │ │
│ │ │ │ -
complex.h
│ │ │ │ +
math.h
│ │ │ │
│ │ │ │
│ │ │ │ Go to the documentation of this file.
1// -*- C++ -*- compatibility header.
│ │ │ │
2
│ │ │ │ -
3// Copyright (C) 2007-2025 Free Software Foundation, Inc.
│ │ │ │ +
3// Copyright (C) 2002-2025 Free Software Foundation, Inc.
│ │ │ │
4//
│ │ │ │
5// This file is part of the GNU ISO C++ Library. This library is free
│ │ │ │
6// software; you can redistribute it and/or modify it under the
│ │ │ │
7// terms of the GNU General Public License as published by the
│ │ │ │
8// Free Software Foundation; either version 3, or (at your option)
│ │ │ │
9// any later version.
│ │ │ │
10
│ │ │ │ @@ -72,46 +72,257 @@ │ │ │ │
18// 3.1, as published by the Free Software Foundation.
│ │ │ │
19
│ │ │ │
20// You should have received a copy of the GNU General Public License and
│ │ │ │
21// a copy of the GCC Runtime Library Exception along with this program;
│ │ │ │
22// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
│ │ │ │
23// <http://www.gnu.org/licenses/>.
│ │ │ │
24
│ │ │ │ -
25/** @file complex.h
│ │ │ │ +
25/** @file math.h
│ │ │ │
26 * This is a Standard C++ Library header.
│ │ │ │
27 */
│ │ │ │
28
│ │ │ │ -
29#ifndef _GLIBCXX_COMPLEX_H
│ │ │ │ -
30#define _GLIBCXX_COMPLEX_H 1
│ │ │ │ -
31
│ │ │ │ -
32#include <bits/c++config.h>
│ │ │ │ -
33
│ │ │ │ -
34#if __cplusplus >= 201103L
│ │ │ │ -
35extern "C++" {
│ │ │ │ -
36#include <complex>
│ │ │ │ -
37}
│ │ │ │ -
38#endif
│ │ │ │ -
39
│ │ │ │ -
40#if __cplusplus >= 201103L && defined(__STRICT_ANSI__)
│ │ │ │ -
41// For strict modes do not include the C library's <complex.h>, see PR 82417.
│ │ │ │ -
42#elif _GLIBCXX_HAVE_COMPLEX_H
│ │ │ │ -
43# include_next <complex.h>
│ │ │ │ -
44# ifdef _GLIBCXX_COMPLEX
│ │ │ │ -
45// See PR56111, keep the macro in C++03 if possible.
│ │ │ │ -
46# undef complex
│ │ │ │ -
47# endif
│ │ │ │ -
48#endif
│ │ │ │ -
49
│ │ │ │ -
50#endif
│ │ │ │ - │ │ │ │ - │ │ │ │ +
29#if !defined __cplusplus || defined _GLIBCXX_INCLUDE_NEXT_C_HEADERS
│ │ │ │ +
30# include_next <math.h>
│ │ │ │ +
31#else
│ │ │ │ +
32
│ │ │ │ +
33#ifndef _GLIBCXX_MATH_H
│ │ │ │ +
34#define _GLIBCXX_MATH_H 1
│ │ │ │ +
35
│ │ │ │ +
36# include <cmath>
│ │ │ │ +
37
│ │ │ │ +
38using std::abs;
│ │ │ │ +
39using std::acos;
│ │ │ │ +
40using std::asin;
│ │ │ │ +
41using std::atan;
│ │ │ │ +
42using std::atan2;
│ │ │ │ +
43using std::cos;
│ │ │ │ +
44using std::sin;
│ │ │ │ +
45using std::tan;
│ │ │ │ +
46using std::cosh;
│ │ │ │ +
47using std::sinh;
│ │ │ │ +
48using std::tanh;
│ │ │ │ +
49using std::exp;
│ │ │ │ +
50using std::frexp;
│ │ │ │ +
51using std::ldexp;
│ │ │ │ +
52using std::log;
│ │ │ │ +
53using std::log10;
│ │ │ │ +
54using std::modf;
│ │ │ │ +
55using std::pow;
│ │ │ │ +
56using std::sqrt;
│ │ │ │ +
57using std::ceil;
│ │ │ │ +
58using std::fabs;
│ │ │ │ +
59using std::floor;
│ │ │ │ +
60using std::fmod;
│ │ │ │ +
61
│ │ │ │ +
62#if _GLIBCXX_USE_C99_MATH
│ │ │ │ +
63using std::fpclassify;
│ │ │ │ +
64using std::isfinite;
│ │ │ │ +
65using std::isinf;
│ │ │ │ +
66using std::isnan;
│ │ │ │ +
67using std::isnormal;
│ │ │ │ +
68using std::signbit;
│ │ │ │ +
69using std::isgreater;
│ │ │ │ +
70using std::isgreaterequal;
│ │ │ │ +
71using std::isless;
│ │ │ │ +
72using std::islessequal;
│ │ │ │ +
73using std::islessgreater;
│ │ │ │ +
74using std::isunordered;
│ │ │ │ +
75#endif
│ │ │ │ +
76
│ │ │ │ +
77#if __cplusplus >= 201103L && defined(_GLIBCXX_USE_C99_MATH_FUNCS)
│ │ │ │ +
78using std::acosh;
│ │ │ │ +
79using std::asinh;
│ │ │ │ +
80using std::atanh;
│ │ │ │ +
81using std::cbrt;
│ │ │ │ +
82using std::copysign;
│ │ │ │ +
83using std::erf;
│ │ │ │ +
84using std::erfc;
│ │ │ │ +
85using std::exp2;
│ │ │ │ +
86using std::expm1;
│ │ │ │ +
87using std::fdim;
│ │ │ │ +
88using std::fma;
│ │ │ │ +
89using std::fmax;
│ │ │ │ +
90using std::fmin;
│ │ │ │ +
91using std::hypot;
│ │ │ │ +
92using std::ilogb;
│ │ │ │ +
93using std::lgamma;
│ │ │ │ +
94using std::llrint;
│ │ │ │ +
95using std::llround;
│ │ │ │ +
96using std::log1p;
│ │ │ │ +
97using std::log2;
│ │ │ │ +
98using std::logb;
│ │ │ │ +
99using std::lrint;
│ │ │ │ +
100using std::lround;
│ │ │ │ +
101using std::nearbyint;
│ │ │ │ +
102using std::nextafter;
│ │ │ │ +
103using std::nexttoward;
│ │ │ │ +
104using std::remainder;
│ │ │ │ +
105using std::remquo;
│ │ │ │ +
106using std::rint;
│ │ │ │ +
107using std::round;
│ │ │ │ +
108using std::scalbln;
│ │ │ │ +
109using std::scalbn;
│ │ │ │ +
110using std::tgamma;
│ │ │ │ +
111using std::trunc;
│ │ │ │ +
112#endif // C++11 && _GLIBCXX_USE_C99_MATH_FUNCS
│ │ │ │ +
113
│ │ │ │ +
114// The mathematical special functions are only added to the global namespace
│ │ │ │ +
115// by IS 29124, but not by C++17.
│ │ │ │ +
116#if __cplusplus >= 201103L && __STDCPP_WANT_MATH_SPEC_FUNCS__ != 0
│ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ +
123using std::betaf;
│ │ │ │ +
124using std::betal;
│ │ │ │ +
125using std::beta;
│ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ +
146using std::cyl_neumann;
│ │ │ │ +
147using std::ellint_1f;
│ │ │ │ +
148using std::ellint_1l;
│ │ │ │ +
149using std::ellint_1;
│ │ │ │ +
150using std::ellint_2f;
│ │ │ │ +
151using std::ellint_2l;
│ │ │ │ +
152using std::ellint_2;
│ │ │ │ +
153using std::ellint_3f;
│ │ │ │ +
154using std::ellint_3l;
│ │ │ │ +
155using std::ellint_3;
│ │ │ │ +
156using std::expintf;
│ │ │ │ +
157using std::expintl;
│ │ │ │ +
158using std::expint;
│ │ │ │ +
159using std::hermitef;
│ │ │ │ +
160using std::hermitel;
│ │ │ │ +
161using std::hermite;
│ │ │ │ +
162using std::laguerref;
│ │ │ │ +
163using std::laguerrel;
│ │ │ │ +
164using std::laguerre;
│ │ │ │ +
165using std::legendref;
│ │ │ │ +
166using std::legendrel;
│ │ │ │ +
167using std::legendre;
│ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ +
171using std::sph_besself;
│ │ │ │ +
172using std::sph_bessell;
│ │ │ │ +
173using std::sph_bessel;
│ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ +
179using std::sph_neumann;
│ │ │ │ +
180#endif // _GLIBCXX_USE_STD_SPEC_FUNCS
│ │ │ │ +
181
│ │ │ │ +
182#if __cplusplus > 201703L
│ │ │ │ +
183using std::lerp;
│ │ │ │ +
184#endif // C++20
│ │ │ │ +
185
│ │ │ │ +
186#endif // _GLIBCXX_MATH_H
│ │ │ │ +
187#endif // __cplusplus
│ │ │ │ +
complex< _Tp > log10(const complex< _Tp > &)
Return complex base 10 logarithm of z.
Definition complex:1167
│ │ │ │ +
complex< _Tp > sin(const complex< _Tp > &)
Return complex sine of z.
Definition complex:1197
│ │ │ │ +
complex< _Tp > log(const complex< _Tp > &)
Return complex natural logarithm of z.
Definition complex:1162
│ │ │ │ +
complex< _Tp > tan(const complex< _Tp > &)
Return complex tangent of z.
Definition complex:1298
│ │ │ │ +
_Tp abs(const complex< _Tp > &)
Return magnitude of z.
Definition complex:968
│ │ │ │ +
complex< _Tp > exp(const complex< _Tp > &)
Return complex base e exponential of z.
Definition complex:1135
│ │ │ │ +
complex< _Tp > cosh(const complex< _Tp > &)
Return complex hyperbolic cosine of z.
Definition complex:1109
│ │ │ │ +
complex< _Tp > tanh(const complex< _Tp > &)
Return complex hyperbolic tangent of z.
Definition complex:1326
│ │ │ │ +
complex< _Tp > pow(const complex< _Tp > &, int)
Return x to the y'th power.
Definition complex:1357
│ │ │ │ +
complex< _Tp > sinh(const complex< _Tp > &)
Return complex hyperbolic sine of z.
Definition complex:1227
│ │ │ │ +
complex< _Tp > cos(const complex< _Tp > &)
Return complex cosine of z.
Definition complex:1079
│ │ │ │ +
complex< _Tp > sqrt(const complex< _Tp > &)
Return complex square root of z.
Definition complex:1271
│ │ │ │ +
__gnu_cxx::__promote< _Tp >::__type sph_bessel(unsigned int __n, _Tp __x)
Definition specfun.h:1100
│ │ │ │ +
long double sph_bessell(unsigned int __n, long double __x)
Definition specfun.h:1081
│ │ │ │ +
float betaf(float __a, float __b)
Definition specfun.h:310
│ │ │ │ +
long double expintl(long double __x)
Definition specfun.h:852
│ │ │ │ +
float cyl_bessel_jf(float __nu, float __x)
Definition specfun.h:548
│ │ │ │ +
__gnu_cxx::__promote_2< _Tpnu, _Tp >::__type cyl_bessel_k(_Tpnu __nu, _Tp __x)
Definition specfun.h:631
│ │ │ │ +
float ellint_3f(float __k, float __nu, float __phi)
Return the incomplete elliptic integral of the third kind for float argument.
Definition specfun.h:790
│ │ │ │ +
long double legendrel(unsigned int __l, long double __x)
Definition specfun.h:985
│ │ │ │ +
long double comp_ellint_3l(long double __k, long double __nu)
Return the complete elliptic integral of the third kind for long double modulus k.
Definition specfun.h:461
│ │ │ │ +
long double riemann_zetal(long double __s)
Definition specfun.h:1030
│ │ │ │ +
float cyl_bessel_kf(float __nu, float __x)
Definition specfun.h:594
│ │ │ │ +
float comp_ellint_2f(float __k)
Definition specfun.h:404
│ │ │ │ +
long double hermitel(unsigned int __n, long double __x)
Definition specfun.h:893
│ │ │ │ +
__gnu_cxx::__promote_2< _Tp, _Tpp >::__type ellint_1(_Tp __k, _Tpp __phi)
Definition specfun.h:727
│ │ │ │ +
long double sph_legendrel(unsigned int __l, unsigned int __m, long double __theta)
Definition specfun.h:1126
│ │ │ │ +
float ellint_1f(float __k, float __phi)
Definition specfun.h:694
│ │ │ │ +
__gnu_cxx::__promote_2< _Tpnu, _Tp >::__type cyl_neumann(_Tpnu __nu, _Tp __x)
Definition specfun.h:679
│ │ │ │ +
float assoc_legendref(unsigned int __l, unsigned int __m, float __x)
Definition specfun.h:265
│ │ │ │ +
long double sph_neumannl(unsigned int __n, long double __x)
Definition specfun.h:1172
│ │ │ │ +
long double comp_ellint_2l(long double __k)
Definition specfun.h:414
│ │ │ │ +
__gnu_cxx::__promote< _Tp >::__type comp_ellint_2(_Tp __k)
Definition specfun.h:436
│ │ │ │ +
float sph_besself(unsigned int __n, float __x)
Definition specfun.h:1071
│ │ │ │ +
long double assoc_legendrel(unsigned int __l, unsigned int __m, long double __x)
Definition specfun.h:274
│ │ │ │ +
__gnu_cxx::__promote< _Tp >::__type legendre(unsigned int __l, _Tp __x)
Definition specfun.h:1005
│ │ │ │ +
float expintf(float __x)
Definition specfun.h:842
│ │ │ │ +
float ellint_2f(float __k, float __phi)
Return the incomplete elliptic integral of the second kind for float argument.
Definition specfun.h:742
│ │ │ │ +
__gnu_cxx::__promote_3< _Tp, _Tpn, _Tpp >::__type ellint_3(_Tp __k, _Tpn __nu, _Tpp __phi)
Return the incomplete elliptic integral of the third kind .
Definition specfun.h:828
│ │ │ │ +
long double ellint_2l(long double __k, long double __phi)
Return the incomplete elliptic integral of the second kind .
Definition specfun.h:752
│ │ │ │ +
float cyl_neumannf(float __nu, float __x)
Definition specfun.h:646
│ │ │ │ +
__gnu_cxx::__promote_2< _Tpa, _Tpb >::__type beta(_Tpa __a, _Tpb __b)
Definition specfun.h:341
│ │ │ │ +
long double comp_ellint_1l(long double __k)
Definition specfun.h:366
│ │ │ │ +
float comp_ellint_3f(float __k, float __nu)
Return the complete elliptic integral of the third kind for float modulus k.
Definition specfun.h:451
│ │ │ │ +
float sph_neumannf(unsigned int __n, float __x)
Definition specfun.h:1162
│ │ │ │ +
__gnu_cxx::__promote< _Tp >::__type expint(_Tp __x)
Definition specfun.h:868
│ │ │ │ +
long double ellint_1l(long double __k, long double __phi)
Definition specfun.h:704
│ │ │ │ +
float comp_ellint_1f(float __k)
Definition specfun.h:356
│ │ │ │ +
long double betal(long double __a, long double __b)
Definition specfun.h:320
│ │ │ │ +
float hermitef(unsigned int __n, float __x)
Definition specfun.h:883
│ │ │ │ +
__gnu_cxx::__promote< _Tp >::__type riemann_zeta(_Tp __s)
Definition specfun.h:1056
│ │ │ │ +
long double ellint_3l(long double __k, long double __nu, long double __phi)
Return the incomplete elliptic integral of the third kind .
Definition specfun.h:800
│ │ │ │ +
float sph_legendref(unsigned int __l, unsigned int __m, float __theta)
Definition specfun.h:1115
│ │ │ │ +
__gnu_cxx::__promote< _Tp >::__type sph_neumann(unsigned int __n, _Tp __x)
Definition specfun.h:1191
│ │ │ │ +
float cyl_bessel_if(float __nu, float __x)
Definition specfun.h:502
│ │ │ │ +
long double laguerrel(unsigned int __n, long double __x)
Definition specfun.h:941
│ │ │ │ +
long double cyl_bessel_il(long double __nu, long double __x)
Definition specfun.h:512
│ │ │ │ +
__gnu_cxx::__promote< _Tp >::__type assoc_laguerre(unsigned int __n, unsigned int __m, _Tp __x)
Definition specfun.h:250
│ │ │ │ +
__gnu_cxx::__promote_2< _Tp, _Tpn >::__type comp_ellint_3(_Tp __k, _Tpn __nu)
Definition specfun.h:487
│ │ │ │ +
__gnu_cxx::__promote< _Tp >::__type sph_legendre(unsigned int __l, unsigned int __m, _Tp __theta)
Definition specfun.h:1147
│ │ │ │ +
long double cyl_bessel_kl(long double __nu, long double __x)
Definition specfun.h:604
│ │ │ │ +
long double assoc_laguerrel(unsigned int __n, unsigned int __m, long double __x)
Definition specfun.h:214
│ │ │ │ +
__gnu_cxx::__promote< _Tp >::__type hermite(unsigned int __n, _Tp __x)
Definition specfun.h:916
│ │ │ │ +
__gnu_cxx::__promote_2< _Tpnu, _Tp >::__type cyl_bessel_j(_Tpnu __nu, _Tp __x)
Definition specfun.h:579
│ │ │ │ +
float laguerref(unsigned int __n, float __x)
Definition specfun.h:931
│ │ │ │ +
long double cyl_bessel_jl(long double __nu, long double __x)
Definition specfun.h:558
│ │ │ │ +
__gnu_cxx::__promote< _Tp >::__type comp_ellint_1(_Tp __k)
Definition specfun.h:389
│ │ │ │ +
__gnu_cxx::__promote_2< _Tp, _Tpp >::__type ellint_2(_Tp __k, _Tpp __phi)
Definition specfun.h:775
│ │ │ │ +
__gnu_cxx::__promote< _Tp >::__type laguerre(unsigned int __n, _Tp __x)
Definition specfun.h:960
│ │ │ │ +
float legendref(unsigned int __l, float __x)
Definition specfun.h:975
│ │ │ │ +
__gnu_cxx::__promote_2< _Tpnu, _Tp >::__type cyl_bessel_i(_Tpnu __nu, _Tp __x)
Definition specfun.h:533
│ │ │ │ +
__gnu_cxx::__promote< _Tp >::__type assoc_legendre(unsigned int __l, unsigned int __m, _Tp __x)
Definition specfun.h:296
│ │ │ │ +
float assoc_laguerref(unsigned int __n, unsigned int __m, float __x)
Definition specfun.h:204
│ │ │ │ +
long double cyl_neumannl(long double __nu, long double __x)
Definition specfun.h:656
│ │ │ │ +
float riemann_zetaf(float __s)
Definition specfun.h:1020
│ │ │ │ + │ │ │ │
│ │ │ │
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├── html2text {} │ │ │ │ │ @@ -1,13 +1,13 @@ │ │ │ │ │ libstdc++ │ │ │ │ │ -complex.h │ │ │ │ │ +math.h │ │ │ │ │ _G_o_ _t_o_ _t_h_e_ _d_o_c_u_m_e_n_t_a_t_i_o_n_ _o_f_ _t_h_i_s_ _f_i_l_e_. │ │ │ │ │ 1// -*- C++ -*- compatibility header. │ │ │ │ │ 2 │ │ │ │ │ -3// Copyright (C) 2007-2025 Free Software Foundation, Inc. │ │ │ │ │ +3// Copyright (C) 2002-2025 Free Software Foundation, Inc. │ │ │ │ │ 4// │ │ │ │ │ 5// This file is part of the GNU ISO C++ Library. This library is free │ │ │ │ │ 6// software; you can redistribute it and/or modify it under the │ │ │ │ │ 7// terms of the GNU General Public License as published by the │ │ │ │ │ 8// Free Software Foundation; either version 3, or (at your option) │ │ │ │ │ 9// any later version. │ │ │ │ │ 10 │ │ │ │ │ @@ -21,37 +21,425 @@ │ │ │ │ │ 18// 3.1, as published by the Free Software Foundation. │ │ │ │ │ 19 │ │ │ │ │ 20// You should have received a copy of the GNU General Public License and │ │ │ │ │ 21// a copy of the GCC Runtime Library Exception along with this program; │ │ │ │ │ 22// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see │ │ │ │ │ 23// . │ │ │ │ │ 24 │ │ │ │ │ -25/** @file complex.h │ │ │ │ │ +25/** @file math.h │ │ │ │ │ 26 * This is a Standard C++ Library header. │ │ │ │ │ 27 */ │ │ │ │ │ 28 │ │ │ │ │ -29#ifndef _GLIBCXX_COMPLEX_H │ │ │ │ │ -30#define _GLIBCXX_COMPLEX_H 1 │ │ │ │ │ -31 │ │ │ │ │ -32#include <_b_i_t_s_/_c_+_+_c_o_n_f_i_g_._h> │ │ │ │ │ -33 │ │ │ │ │ -34#if __cplusplus >= 201103L │ │ │ │ │ -35extern "C++" { │ │ │ │ │ -36#include <_c_o_m_p_l_e_x> │ │ │ │ │ -37} │ │ │ │ │ -38#endif │ │ │ │ │ -39 │ │ │ │ │ -40#if __cplusplus >= 201103L && defined(__STRICT_ANSI__) │ │ │ │ │ -41// For strict modes do not include the C library's , see PR 82417. │ │ │ │ │ -42#elif _GLIBCXX_HAVE_COMPLEX_H │ │ │ │ │ -43# include_next │ │ │ │ │ -44# ifdef _GLIBCXX_COMPLEX │ │ │ │ │ -45// See PR56111, keep the macro in C++03 if possible. │ │ │ │ │ -46# undef complex │ │ │ │ │ -47# endif │ │ │ │ │ -48#endif │ │ │ │ │ -49 │ │ │ │ │ -50#endif │ │ │ │ │ -_c_+_+_c_o_n_f_i_g_._h │ │ │ │ │ -_c_o_m_p_l_e_x │ │ │ │ │ - * _c_o_m_p_l_e_x_._h │ │ │ │ │ +29#if !defined __cplusplus || defined _GLIBCXX_INCLUDE_NEXT_C_HEADERS │ │ │ │ │ +30# include_next │ │ │ │ │ +31#else │ │ │ │ │ +32 │ │ │ │ │ +33#ifndef _GLIBCXX_MATH_H │ │ │ │ │ +34#define _GLIBCXX_MATH_H 1 │ │ │ │ │ +35 │ │ │ │ │ +36# include <_c_m_a_t_h> │ │ │ │ │ +37 │ │ │ │ │ +38using _s_t_d_:_:_a_b_s; │ │ │ │ │ +39using std::acos; │ │ │ │ │ +40using std::asin; │ │ │ │ │ +41using std::atan; │ │ │ │ │ +42using std::atan2; │ │ │ │ │ +43using _s_t_d_:_:_c_o_s; │ │ │ │ │ +44using _s_t_d_:_:_s_i_n; │ │ │ │ │ +45using _s_t_d_:_:_t_a_n; │ │ │ │ │ +46using _s_t_d_:_:_c_o_s_h; │ │ │ │ │ +47using _s_t_d_:_:_s_i_n_h; │ │ │ │ │ +48using _s_t_d_:_:_t_a_n_h; │ │ │ │ │ +49using _s_t_d_:_:_e_x_p; │ │ │ │ │ +50using std::frexp; │ │ │ │ │ +51using std::ldexp; │ │ │ │ │ +52using _s_t_d_:_:_l_o_g; │ │ │ │ │ +53using _s_t_d_:_:_l_o_g_1_0; │ │ │ │ │ +54using std::modf; │ │ │ │ │ +55using _s_t_d_:_:_p_o_w; │ │ │ │ │ +56using _s_t_d_:_:_s_q_r_t; │ │ │ │ │ +57using std::ceil; │ │ │ │ │ +58using std::fabs; │ │ │ │ │ +59using std::floor; │ │ │ │ │ +60using std::fmod; │ │ │ │ │ +61 │ │ │ │ │ +62#if _GLIBCXX_USE_C99_MATH │ │ │ │ │ +63using std::fpclassify; │ │ │ │ │ +64using std::isfinite; │ │ │ │ │ +65using std::isinf; │ │ │ │ │ +66using std::isnan; │ │ │ │ │ +67using std::isnormal; │ │ │ │ │ +68using std::signbit; │ │ │ │ │ +69using std::isgreater; │ │ │ │ │ +70using std::isgreaterequal; │ │ │ │ │ +71using std::isless; │ │ │ │ │ +72using std::islessequal; │ │ │ │ │ +73using std::islessgreater; │ │ │ │ │ +74using std::isunordered; │ │ │ │ │ +75#endif │ │ │ │ │ +76 │ │ │ │ │ +77#if __cplusplus >= 201103L && defined(_GLIBCXX_USE_C99_MATH_FUNCS) │ │ │ │ │ +78using std::acosh; │ │ │ │ │ +79using std::asinh; │ │ │ │ │ +80using std::atanh; │ │ │ │ │ +81using std::cbrt; │ │ │ │ │ +82using std::copysign; │ │ │ │ │ +83using std::erf; │ │ │ │ │ +84using std::erfc; │ │ │ │ │ +85using std::exp2; │ │ │ │ │ +86using std::expm1; │ │ │ │ │ +87using std::fdim; │ │ │ │ │ +88using std::fma; │ │ │ │ │ +89using std::fmax; │ │ │ │ │ +90using std::fmin; │ │ │ │ │ +91using std::hypot; │ │ │ │ │ +92using std::ilogb; │ │ │ │ │ +93using std::lgamma; │ │ │ │ │ +94using std::llrint; │ │ │ │ │ +95using std::llround; │ │ │ │ │ +96using std::log1p; │ │ │ │ │ +97using std::log2; │ │ │ │ │ +98using std::logb; │ │ │ │ │ +99using std::lrint; │ │ │ │ │ +100using std::lround; │ │ │ │ │ +101using std::nearbyint; │ │ │ │ │ +102using std::nextafter; │ │ │ │ │ +103using std::nexttoward; │ │ │ │ │ +104using std::remainder; │ │ │ │ │ +105using std::remquo; │ │ │ │ │ +106using std::rint; │ │ │ │ │ +107using std::round; │ │ │ │ │ +108using std::scalbln; │ │ │ │ │ +109using std::scalbn; │ │ │ │ │ +110using std::tgamma; │ │ │ │ │ +111using std::trunc; │ │ │ │ │ +112#endif // C++11 && _GLIBCXX_USE_C99_MATH_FUNCS │ │ │ │ │ +113 │ │ │ │ │ +114// The mathematical special functions are only added to the global namespace │ │ │ │ │ +115// by IS 29124, but not by C++17. │ │ │ │ │ +116#if __cplusplus >= 201103L && __STDCPP_WANT_MATH_SPEC_FUNCS__ != 0 │ │ │ │ │ +117using _s_t_d_:_:_a_s_s_o_c___l_a_g_u_e_r_r_e_f; │ │ │ │ │ +118using _s_t_d_:_:_a_s_s_o_c___l_a_g_u_e_r_r_e_l; │ │ │ │ │ +119using _s_t_d_:_:_a_s_s_o_c___l_a_g_u_e_r_r_e; │ │ │ │ │ +120using _s_t_d_:_:_a_s_s_o_c___l_e_g_e_n_d_r_e_f; │ │ │ │ │ +121using _s_t_d_:_:_a_s_s_o_c___l_e_g_e_n_d_r_e_l; │ │ │ │ │ +122using _s_t_d_:_:_a_s_s_o_c___l_e_g_e_n_d_r_e; │ │ │ │ │ +123using _s_t_d_:_:_b_e_t_a_f; │ │ │ │ │ +124using _s_t_d_:_:_b_e_t_a_l; │ │ │ │ │ +125using _s_t_d_:_:_b_e_t_a; │ │ │ │ │ +126using _s_t_d_:_:_c_o_m_p___e_l_l_i_n_t___1_f; │ │ │ │ │ +127using _s_t_d_:_:_c_o_m_p___e_l_l_i_n_t___1_l; │ │ │ │ │ +128using _s_t_d_:_:_c_o_m_p___e_l_l_i_n_t___1; │ │ │ │ │ +129using _s_t_d_:_:_c_o_m_p___e_l_l_i_n_t___2_f; │ │ │ │ │ +130using _s_t_d_:_:_c_o_m_p___e_l_l_i_n_t___2_l; │ │ │ │ │ +131using _s_t_d_:_:_c_o_m_p___e_l_l_i_n_t___2; │ │ │ │ │ +132using _s_t_d_:_:_c_o_m_p___e_l_l_i_n_t___3_f; │ │ │ │ │ +133using _s_t_d_:_:_c_o_m_p___e_l_l_i_n_t___3_l; │ │ │ │ │ +134using _s_t_d_:_:_c_o_m_p___e_l_l_i_n_t___3; │ │ │ │ │ +135using _s_t_d_:_:_c_y_l___b_e_s_s_e_l___i_f; │ │ │ │ │ +136using _s_t_d_:_:_c_y_l___b_e_s_s_e_l___i_l; │ │ │ │ │ +137using _s_t_d_:_:_c_y_l___b_e_s_s_e_l___i; │ │ │ │ │ +138using _s_t_d_:_:_c_y_l___b_e_s_s_e_l___j_f; │ │ │ │ │ +139using _s_t_d_:_:_c_y_l___b_e_s_s_e_l___j_l; │ │ │ │ │ +140using _s_t_d_:_:_c_y_l___b_e_s_s_e_l___j; │ │ │ │ │ +141using _s_t_d_:_:_c_y_l___b_e_s_s_e_l___k_f; │ │ │ │ │ +142using _s_t_d_:_:_c_y_l___b_e_s_s_e_l___k_l; │ │ │ │ │ +143using _s_t_d_:_:_c_y_l___b_e_s_s_e_l___k; │ │ │ │ │ +144using _s_t_d_:_:_c_y_l___n_e_u_m_a_n_n_f; │ │ │ │ │ +145using _s_t_d_:_:_c_y_l___n_e_u_m_a_n_n_l; │ │ │ │ │ +146using _s_t_d_:_:_c_y_l___n_e_u_m_a_n_n; │ │ │ │ │ +147using _s_t_d_:_:_e_l_l_i_n_t___1_f; │ │ │ │ │ +148using _s_t_d_:_:_e_l_l_i_n_t___1_l; │ │ │ │ │ +149using _s_t_d_:_:_e_l_l_i_n_t___1; │ │ │ │ │ +150using _s_t_d_:_:_e_l_l_i_n_t___2_f; │ │ │ │ │ +151using _s_t_d_:_:_e_l_l_i_n_t___2_l; │ │ │ │ │ +152using _s_t_d_:_:_e_l_l_i_n_t___2; │ │ │ │ │ +153using _s_t_d_:_:_e_l_l_i_n_t___3_f; │ │ │ │ │ +154using _s_t_d_:_:_e_l_l_i_n_t___3_l; │ │ │ │ │ +155using _s_t_d_:_:_e_l_l_i_n_t___3; │ │ │ │ │ +156using _s_t_d_:_:_e_x_p_i_n_t_f; │ │ │ │ │ +157using _s_t_d_:_:_e_x_p_i_n_t_l; │ │ │ │ │ +158using _s_t_d_:_:_e_x_p_i_n_t; │ │ │ │ │ +159using _s_t_d_:_:_h_e_r_m_i_t_e_f; │ │ │ │ │ +160using _s_t_d_:_:_h_e_r_m_i_t_e_l; │ │ │ │ │ +161using _s_t_d_:_:_h_e_r_m_i_t_e; │ │ │ │ │ +162using _s_t_d_:_:_l_a_g_u_e_r_r_e_f; │ │ │ │ │ +163using _s_t_d_:_:_l_a_g_u_e_r_r_e_l; │ │ │ │ │ +164using _s_t_d_:_:_l_a_g_u_e_r_r_e; │ │ │ │ │ +165using _s_t_d_:_:_l_e_g_e_n_d_r_e_f; │ │ │ │ │ +166using _s_t_d_:_:_l_e_g_e_n_d_r_e_l; │ │ │ │ │ +167using _s_t_d_:_:_l_e_g_e_n_d_r_e; │ │ │ │ │ +168using _s_t_d_:_:_r_i_e_m_a_n_n___z_e_t_a_f; │ │ │ │ │ +169using _s_t_d_:_:_r_i_e_m_a_n_n___z_e_t_a_l; │ │ │ │ │ +170using _s_t_d_:_:_r_i_e_m_a_n_n___z_e_t_a; │ │ │ │ │ +171using _s_t_d_:_:_s_p_h___b_e_s_s_e_l_f; │ │ │ │ │ +172using _s_t_d_:_:_s_p_h___b_e_s_s_e_l_l; │ │ │ │ │ +173using _s_t_d_:_:_s_p_h___b_e_s_s_e_l; │ │ │ │ │ +174using _s_t_d_:_:_s_p_h___l_e_g_e_n_d_r_e_f; │ │ │ │ │ +175using _s_t_d_:_:_s_p_h___l_e_g_e_n_d_r_e_l; │ │ │ │ │ +176using _s_t_d_:_:_s_p_h___l_e_g_e_n_d_r_e; │ │ │ │ │ +177using _s_t_d_:_:_s_p_h___n_e_u_m_a_n_n_f; │ │ │ │ │ +178using _s_t_d_:_:_s_p_h___n_e_u_m_a_n_n_l; │ │ │ │ │ +179using _s_t_d_:_:_s_p_h___n_e_u_m_a_n_n; │ │ │ │ │ +180#endif // _GLIBCXX_USE_STD_SPEC_FUNCS │ │ │ │ │ +181 │ │ │ │ │ +182#if __cplusplus > 201703L │ │ │ │ │ +183using std::lerp; │ │ │ │ │ +184#endif // C++20 │ │ │ │ │ +185 │ │ │ │ │ +186#endif // _GLIBCXX_MATH_H │ │ │ │ │ +187#endif // __cplusplus │ │ │ │ │ +_s_t_d_:_:_l_o_g_1_0 │ │ │ │ │ +complex< _Tp > log10(const complex< _Tp > &) │ │ │ │ │ +Return complex base 10 logarithm of z. │ │ │ │ │ +DDeeffiinniittiioonn _c_o_m_p_l_e_x_:_1_1_6_7 │ │ │ │ │ +_s_t_d_:_:_s_i_n │ │ │ │ │ +complex< _Tp > sin(const complex< _Tp > &) │ │ │ │ │ +Return complex sine of z. │ │ │ │ │ +DDeeffiinniittiioonn _c_o_m_p_l_e_x_:_1_1_9_7 │ │ │ │ │ +_s_t_d_:_:_l_o_g │ │ │ │ │ +complex< _Tp > log(const complex< _Tp > &) │ │ │ │ │ +Return complex natural logarithm of z. │ │ │ │ │ +DDeeffiinniittiioonn _c_o_m_p_l_e_x_:_1_1_6_2 │ │ │ │ │ +_s_t_d_:_:_t_a_n │ │ │ │ │ +complex< _Tp > tan(const complex< _Tp > &) │ │ │ │ │ +Return complex tangent of z. │ │ │ │ │ +DDeeffiinniittiioonn _c_o_m_p_l_e_x_:_1_2_9_8 │ │ │ │ │ +_s_t_d_:_:_a_b_s │ │ │ │ │ +_Tp abs(const complex< _Tp > &) │ │ │ │ │ +Return magnitude of z. │ │ │ │ │ +DDeeffiinniittiioonn _c_o_m_p_l_e_x_:_9_6_8 │ │ │ │ │ +_s_t_d_:_:_e_x_p │ │ │ │ │ +complex< _Tp > exp(const complex< _Tp > &) │ │ │ │ │ +Return complex base e exponential of z. │ │ │ │ │ +DDeeffiinniittiioonn _c_o_m_p_l_e_x_:_1_1_3_5 │ │ │ │ │ +_s_t_d_:_:_c_o_s_h │ │ │ │ │ +complex< _Tp > cosh(const complex< _Tp > &) │ │ │ │ │ +Return complex hyperbolic cosine of z. │ │ │ │ │ +DDeeffiinniittiioonn _c_o_m_p_l_e_x_:_1_1_0_9 │ │ │ │ │ +_s_t_d_:_:_t_a_n_h │ │ │ │ │ +complex< _Tp > tanh(const complex< _Tp > &) │ │ │ │ │ +Return complex hyperbolic tangent of z. │ │ │ │ │ +DDeeffiinniittiioonn _c_o_m_p_l_e_x_:_1_3_2_6 │ │ │ │ │ +_s_t_d_:_:_p_o_w │ │ │ │ │ +complex< _Tp > pow(const complex< _Tp > &, int) │ │ │ │ │ +Return x to the y'th power. │ │ │ │ │ +DDeeffiinniittiioonn _c_o_m_p_l_e_x_:_1_3_5_7 │ │ │ │ │ +_s_t_d_:_:_s_i_n_h │ │ │ │ │ +complex< _Tp > sinh(const complex< _Tp > &) │ │ │ │ │ +Return complex hyperbolic sine of z. │ │ │ │ │ +DDeeffiinniittiioonn _c_o_m_p_l_e_x_:_1_2_2_7 │ │ │ │ │ +_s_t_d_:_:_c_o_s │ │ │ │ │ +complex< _Tp > cos(const complex< _Tp > &) │ │ │ │ │ +Return complex cosine of z. │ │ │ │ │ +DDeeffiinniittiioonn _c_o_m_p_l_e_x_:_1_0_7_9 │ │ │ │ │ +_s_t_d_:_:_s_q_r_t │ │ │ │ │ +complex< _Tp > sqrt(const complex< _Tp > &) │ │ │ │ │ +Return complex square root of z. │ │ │ │ │ +DDeeffiinniittiioonn _c_o_m_p_l_e_x_:_1_2_7_1 │ │ │ │ │ +_s_t_d_:_:_s_p_h___b_e_s_s_e_l │ │ │ │ │ +__gnu_cxx::__promote< _Tp >::__type sph_bessel(unsigned int __n, _Tp __x) │ │ │ │ │ +DDeeffiinniittiioonn _s_p_e_c_f_u_n_._h_:_1_1_0_0 │ │ │ │ │ +_s_t_d_:_:_s_p_h___b_e_s_s_e_l_l │ │ │ │ │ +long double sph_bessell(unsigned int __n, long double __x) │ │ │ │ │ +DDeeffiinniittiioonn _s_p_e_c_f_u_n_._h_:_1_0_8_1 │ │ │ │ │ +_s_t_d_:_:_b_e_t_a_f │ │ │ │ │ +float betaf(float __a, float __b) │ │ │ │ │ +DDeeffiinniittiioonn _s_p_e_c_f_u_n_._h_:_3_1_0 │ │ │ │ │ +_s_t_d_:_:_e_x_p_i_n_t_l │ │ │ │ │ +long double expintl(long double __x) │ │ │ │ │ +DDeeffiinniittiioonn _s_p_e_c_f_u_n_._h_:_8_5_2 │ │ │ │ │ +_s_t_d_:_:_c_y_l___b_e_s_s_e_l___j_f │ │ │ │ │ +float cyl_bessel_jf(float __nu, float __x) │ │ │ │ │ +DDeeffiinniittiioonn _s_p_e_c_f_u_n_._h_:_5_4_8 │ │ │ │ │ +_s_t_d_:_:_c_y_l___b_e_s_s_e_l___k │ │ │ │ │ +__gnu_cxx::__promote_2< _Tpnu, _Tp >::__type cyl_bessel_k(_Tpnu __nu, _Tp __x) │ │ │ │ │ +DDeeffiinniittiioonn _s_p_e_c_f_u_n_._h_:_6_3_1 │ │ │ │ │ +_s_t_d_:_:_e_l_l_i_n_t___3_f │ │ │ │ │ +float ellint_3f(float __k, float __nu, float __phi) │ │ │ │ │ +Return the incomplete elliptic integral of the third kind for float argument. │ │ │ │ │ +DDeeffiinniittiioonn _s_p_e_c_f_u_n_._h_:_7_9_0 │ │ │ │ │ +_s_t_d_:_:_l_e_g_e_n_d_r_e_l │ │ │ │ │ +long double legendrel(unsigned int __l, long double __x) │ │ │ │ │ +DDeeffiinniittiioonn _s_p_e_c_f_u_n_._h_:_9_8_5 │ │ │ │ │ +_s_t_d_:_:_c_o_m_p___e_l_l_i_n_t___3_l │ │ │ │ │ +long double comp_ellint_3l(long double __k, long double __nu) │ │ │ │ │ +Return the complete elliptic integral of the third kind for long double modulus │ │ │ │ │ +k. │ │ │ │ │ +DDeeffiinniittiioonn _s_p_e_c_f_u_n_._h_:_4_6_1 │ │ │ │ │ +_s_t_d_:_:_r_i_e_m_a_n_n___z_e_t_a_l │ │ │ │ │ +long double riemann_zetal(long double __s) │ │ │ │ │ +DDeeffiinniittiioonn _s_p_e_c_f_u_n_._h_:_1_0_3_0 │ │ │ │ │ +_s_t_d_:_:_c_y_l___b_e_s_s_e_l___k_f │ │ │ │ │ +float cyl_bessel_kf(float __nu, float __x) │ │ │ │ │ +DDeeffiinniittiioonn _s_p_e_c_f_u_n_._h_:_5_9_4 │ │ │ │ │ +_s_t_d_:_:_c_o_m_p___e_l_l_i_n_t___2_f │ │ │ │ │ +float comp_ellint_2f(float __k) │ │ │ │ │ +DDeeffiinniittiioonn _s_p_e_c_f_u_n_._h_:_4_0_4 │ │ │ │ │ +_s_t_d_:_:_h_e_r_m_i_t_e_l │ │ │ │ │ +long double hermitel(unsigned int __n, long double __x) │ │ │ │ │ +DDeeffiinniittiioonn _s_p_e_c_f_u_n_._h_:_8_9_3 │ │ │ │ │ +_s_t_d_:_:_e_l_l_i_n_t___1 │ │ │ │ │ +__gnu_cxx::__promote_2< _Tp, _Tpp >::__type ellint_1(_Tp __k, _Tpp __phi) │ │ │ │ │ +DDeeffiinniittiioonn _s_p_e_c_f_u_n_._h_:_7_2_7 │ │ │ │ │ +_s_t_d_:_:_s_p_h___l_e_g_e_n_d_r_e_l │ │ │ │ │ +long double sph_legendrel(unsigned int __l, unsigned int __m, long double │ │ │ │ │ +__theta) │ │ │ │ │ +DDeeffiinniittiioonn _s_p_e_c_f_u_n_._h_:_1_1_2_6 │ │ │ │ │ +_s_t_d_:_:_e_l_l_i_n_t___1_f │ │ │ │ │ +float ellint_1f(float __k, float __phi) │ │ │ │ │ +DDeeffiinniittiioonn _s_p_e_c_f_u_n_._h_:_6_9_4 │ │ │ │ │ +_s_t_d_:_:_c_y_l___n_e_u_m_a_n_n │ │ │ │ │ +__gnu_cxx::__promote_2< _Tpnu, _Tp >::__type cyl_neumann(_Tpnu __nu, _Tp __x) │ │ │ │ │ +DDeeffiinniittiioonn _s_p_e_c_f_u_n_._h_:_6_7_9 │ │ │ │ │ +_s_t_d_:_:_a_s_s_o_c___l_e_g_e_n_d_r_e_f │ │ │ │ │ +float assoc_legendref(unsigned int __l, unsigned int __m, float __x) │ │ │ │ │ +DDeeffiinniittiioonn _s_p_e_c_f_u_n_._h_:_2_6_5 │ │ │ │ │ +_s_t_d_:_:_s_p_h___n_e_u_m_a_n_n_l │ │ │ │ │ +long double sph_neumannl(unsigned int __n, long double __x) │ │ │ │ │ +DDeeffiinniittiioonn _s_p_e_c_f_u_n_._h_:_1_1_7_2 │ │ │ │ │ +_s_t_d_:_:_c_o_m_p___e_l_l_i_n_t___2_l │ │ │ │ │ +long double comp_ellint_2l(long double __k) │ │ │ │ │ +DDeeffiinniittiioonn _s_p_e_c_f_u_n_._h_:_4_1_4 │ │ │ │ │ +_s_t_d_:_:_c_o_m_p___e_l_l_i_n_t___2 │ │ │ │ │ +__gnu_cxx::__promote< _Tp >::__type comp_ellint_2(_Tp __k) │ │ │ │ │ +DDeeffiinniittiioonn _s_p_e_c_f_u_n_._h_:_4_3_6 │ │ │ │ │ +_s_t_d_:_:_s_p_h___b_e_s_s_e_l_f │ │ │ │ │ +float sph_besself(unsigned int __n, float __x) │ │ │ │ │ +DDeeffiinniittiioonn _s_p_e_c_f_u_n_._h_:_1_0_7_1 │ │ │ │ │ +_s_t_d_:_:_a_s_s_o_c___l_e_g_e_n_d_r_e_l │ │ │ │ │ +long double assoc_legendrel(unsigned int __l, unsigned int __m, long double │ │ │ │ │ +__x) │ │ │ │ │ +DDeeffiinniittiioonn _s_p_e_c_f_u_n_._h_:_2_7_4 │ │ │ │ │ +_s_t_d_:_:_l_e_g_e_n_d_r_e │ │ │ │ │ +__gnu_cxx::__promote< _Tp >::__type legendre(unsigned int __l, _Tp __x) │ │ │ │ │ +DDeeffiinniittiioonn _s_p_e_c_f_u_n_._h_:_1_0_0_5 │ │ │ │ │ +_s_t_d_:_:_e_x_p_i_n_t_f │ │ │ │ │ +float expintf(float __x) │ │ │ │ │ +DDeeffiinniittiioonn _s_p_e_c_f_u_n_._h_:_8_4_2 │ │ │ │ │ +_s_t_d_:_:_e_l_l_i_n_t___2_f │ │ │ │ │ +float ellint_2f(float __k, float __phi) │ │ │ │ │ +Return the incomplete elliptic integral of the second kind for float argument. │ │ │ │ │ +DDeeffiinniittiioonn _s_p_e_c_f_u_n_._h_:_7_4_2 │ │ │ │ │ +_s_t_d_:_:_e_l_l_i_n_t___3 │ │ │ │ │ +__gnu_cxx::__promote_3< _Tp, _Tpn, _Tpp >::__type ellint_3(_Tp __k, _Tpn __nu, │ │ │ │ │ +_Tpp __phi) │ │ │ │ │ +Return the incomplete elliptic integral of the third kind . │ │ │ │ │ +DDeeffiinniittiioonn _s_p_e_c_f_u_n_._h_:_8_2_8 │ │ │ │ │ +_s_t_d_:_:_e_l_l_i_n_t___2_l │ │ │ │ │ +long double ellint_2l(long double __k, long double __phi) │ │ │ │ │ +Return the incomplete elliptic integral of the second kind . │ │ │ │ │ +DDeeffiinniittiioonn _s_p_e_c_f_u_n_._h_:_7_5_2 │ │ │ │ │ +_s_t_d_:_:_c_y_l___n_e_u_m_a_n_n_f │ │ │ │ │ +float cyl_neumannf(float __nu, float __x) │ │ │ │ │ +DDeeffiinniittiioonn _s_p_e_c_f_u_n_._h_:_6_4_6 │ │ │ │ │ +_s_t_d_:_:_b_e_t_a │ │ │ │ │ +__gnu_cxx::__promote_2< _Tpa, _Tpb >::__type beta(_Tpa __a, _Tpb __b) │ │ │ │ │ +DDeeffiinniittiioonn _s_p_e_c_f_u_n_._h_:_3_4_1 │ │ │ │ │ +_s_t_d_:_:_c_o_m_p___e_l_l_i_n_t___1_l │ │ │ │ │ +long double comp_ellint_1l(long double __k) │ │ │ │ │ +DDeeffiinniittiioonn _s_p_e_c_f_u_n_._h_:_3_6_6 │ │ │ │ │ +_s_t_d_:_:_c_o_m_p___e_l_l_i_n_t___3_f │ │ │ │ │ +float comp_ellint_3f(float __k, float __nu) │ │ │ │ │ +Return the complete elliptic integral of the third kind for float modulus k. │ │ │ │ │ +DDeeffiinniittiioonn _s_p_e_c_f_u_n_._h_:_4_5_1 │ │ │ │ │ +_s_t_d_:_:_s_p_h___n_e_u_m_a_n_n_f │ │ │ │ │ +float sph_neumannf(unsigned int __n, float __x) │ │ │ │ │ +DDeeffiinniittiioonn _s_p_e_c_f_u_n_._h_:_1_1_6_2 │ │ │ │ │ +_s_t_d_:_:_e_x_p_i_n_t │ │ │ │ │ +__gnu_cxx::__promote< _Tp >::__type expint(_Tp __x) │ │ │ │ │ +DDeeffiinniittiioonn _s_p_e_c_f_u_n_._h_:_8_6_8 │ │ │ │ │ +_s_t_d_:_:_e_l_l_i_n_t___1_l │ │ │ │ │ +long double ellint_1l(long double __k, long double __phi) │ │ │ │ │ +DDeeffiinniittiioonn _s_p_e_c_f_u_n_._h_:_7_0_4 │ │ │ │ │ +_s_t_d_:_:_c_o_m_p___e_l_l_i_n_t___1_f │ │ │ │ │ +float comp_ellint_1f(float __k) │ │ │ │ │ +DDeeffiinniittiioonn _s_p_e_c_f_u_n_._h_:_3_5_6 │ │ │ │ │ +_s_t_d_:_:_b_e_t_a_l │ │ │ │ │ +long double betal(long double __a, long double __b) │ │ │ │ │ +DDeeffiinniittiioonn _s_p_e_c_f_u_n_._h_:_3_2_0 │ │ │ │ │ +_s_t_d_:_:_h_e_r_m_i_t_e_f │ │ │ │ │ +float hermitef(unsigned int __n, float __x) │ │ │ │ │ +DDeeffiinniittiioonn _s_p_e_c_f_u_n_._h_:_8_8_3 │ │ │ │ │ +_s_t_d_:_:_r_i_e_m_a_n_n___z_e_t_a │ │ │ │ │ +__gnu_cxx::__promote< _Tp >::__type riemann_zeta(_Tp __s) │ │ │ │ │ +DDeeffiinniittiioonn _s_p_e_c_f_u_n_._h_:_1_0_5_6 │ │ │ │ │ +_s_t_d_:_:_e_l_l_i_n_t___3_l │ │ │ │ │ +long double ellint_3l(long double __k, long double __nu, long double __phi) │ │ │ │ │ +Return the incomplete elliptic integral of the third kind . │ │ │ │ │ +DDeeffiinniittiioonn _s_p_e_c_f_u_n_._h_:_8_0_0 │ │ │ │ │ +_s_t_d_:_:_s_p_h___l_e_g_e_n_d_r_e_f │ │ │ │ │ +float sph_legendref(unsigned int __l, unsigned int __m, float __theta) │ │ │ │ │ +DDeeffiinniittiioonn _s_p_e_c_f_u_n_._h_:_1_1_1_5 │ │ │ │ │ +_s_t_d_:_:_s_p_h___n_e_u_m_a_n_n │ │ │ │ │ +__gnu_cxx::__promote< _Tp >::__type sph_neumann(unsigned int __n, _Tp __x) │ │ │ │ │ +DDeeffiinniittiioonn _s_p_e_c_f_u_n_._h_:_1_1_9_1 │ │ │ │ │ +_s_t_d_:_:_c_y_l___b_e_s_s_e_l___i_f │ │ │ │ │ +float cyl_bessel_if(float __nu, float __x) │ │ │ │ │ +DDeeffiinniittiioonn _s_p_e_c_f_u_n_._h_:_5_0_2 │ │ │ │ │ +_s_t_d_:_:_l_a_g_u_e_r_r_e_l │ │ │ │ │ +long double laguerrel(unsigned int __n, long double __x) │ │ │ │ │ +DDeeffiinniittiioonn _s_p_e_c_f_u_n_._h_:_9_4_1 │ │ │ │ │ +_s_t_d_:_:_c_y_l___b_e_s_s_e_l___i_l │ │ │ │ │ +long double cyl_bessel_il(long double __nu, long double __x) │ │ │ │ │ +DDeeffiinniittiioonn _s_p_e_c_f_u_n_._h_:_5_1_2 │ │ │ │ │ +_s_t_d_:_:_a_s_s_o_c___l_a_g_u_e_r_r_e │ │ │ │ │ +__gnu_cxx::__promote< _Tp >::__type assoc_laguerre(unsigned int __n, unsigned │ │ │ │ │ +int __m, _Tp __x) │ │ │ │ │ +DDeeffiinniittiioonn _s_p_e_c_f_u_n_._h_:_2_5_0 │ │ │ │ │ +_s_t_d_:_:_c_o_m_p___e_l_l_i_n_t___3 │ │ │ │ │ +__gnu_cxx::__promote_2< _Tp, _Tpn >::__type comp_ellint_3(_Tp __k, _Tpn __nu) │ │ │ │ │ +DDeeffiinniittiioonn _s_p_e_c_f_u_n_._h_:_4_8_7 │ │ │ │ │ +_s_t_d_:_:_s_p_h___l_e_g_e_n_d_r_e │ │ │ │ │ +__gnu_cxx::__promote< _Tp >::__type sph_legendre(unsigned int __l, unsigned int │ │ │ │ │ +__m, _Tp __theta) │ │ │ │ │ +DDeeffiinniittiioonn _s_p_e_c_f_u_n_._h_:_1_1_4_7 │ │ │ │ │ +_s_t_d_:_:_c_y_l___b_e_s_s_e_l___k_l │ │ │ │ │ +long double cyl_bessel_kl(long double __nu, long double __x) │ │ │ │ │ +DDeeffiinniittiioonn _s_p_e_c_f_u_n_._h_:_6_0_4 │ │ │ │ │ +_s_t_d_:_:_a_s_s_o_c___l_a_g_u_e_r_r_e_l │ │ │ │ │ +long double assoc_laguerrel(unsigned int __n, unsigned int __m, long double │ │ │ │ │ +__x) │ │ │ │ │ +DDeeffiinniittiioonn _s_p_e_c_f_u_n_._h_:_2_1_4 │ │ │ │ │ +_s_t_d_:_:_h_e_r_m_i_t_e │ │ │ │ │ +__gnu_cxx::__promote< _Tp >::__type hermite(unsigned int __n, _Tp __x) │ │ │ │ │ +DDeeffiinniittiioonn _s_p_e_c_f_u_n_._h_:_9_1_6 │ │ │ │ │ +_s_t_d_:_:_c_y_l___b_e_s_s_e_l___j │ │ │ │ │ +__gnu_cxx::__promote_2< _Tpnu, _Tp >::__type cyl_bessel_j(_Tpnu __nu, _Tp __x) │ │ │ │ │ +DDeeffiinniittiioonn _s_p_e_c_f_u_n_._h_:_5_7_9 │ │ │ │ │ +_s_t_d_:_:_l_a_g_u_e_r_r_e_f │ │ │ │ │ +float laguerref(unsigned int __n, float __x) │ │ │ │ │ +DDeeffiinniittiioonn _s_p_e_c_f_u_n_._h_:_9_3_1 │ │ │ │ │ +_s_t_d_:_:_c_y_l___b_e_s_s_e_l___j_l │ │ │ │ │ +long double cyl_bessel_jl(long double __nu, long double __x) │ │ │ │ │ +DDeeffiinniittiioonn _s_p_e_c_f_u_n_._h_:_5_5_8 │ │ │ │ │ +_s_t_d_:_:_c_o_m_p___e_l_l_i_n_t___1 │ │ │ │ │ +__gnu_cxx::__promote< _Tp >::__type comp_ellint_1(_Tp __k) │ │ │ │ │ +DDeeffiinniittiioonn _s_p_e_c_f_u_n_._h_:_3_8_9 │ │ │ │ │ +_s_t_d_:_:_e_l_l_i_n_t___2 │ │ │ │ │ +__gnu_cxx::__promote_2< _Tp, _Tpp >::__type ellint_2(_Tp __k, _Tpp __phi) │ │ │ │ │ +DDeeffiinniittiioonn _s_p_e_c_f_u_n_._h_:_7_7_5 │ │ │ │ │ +_s_t_d_:_:_l_a_g_u_e_r_r_e │ │ │ │ │ +__gnu_cxx::__promote< _Tp >::__type laguerre(unsigned int __n, _Tp __x) │ │ │ │ │ +DDeeffiinniittiioonn _s_p_e_c_f_u_n_._h_:_9_6_0 │ │ │ │ │ +_s_t_d_:_:_l_e_g_e_n_d_r_e_f │ │ │ │ │ +float legendref(unsigned int __l, float __x) │ │ │ │ │ +DDeeffiinniittiioonn _s_p_e_c_f_u_n_._h_:_9_7_5 │ │ │ │ │ +_s_t_d_:_:_c_y_l___b_e_s_s_e_l___i │ │ │ │ │ +__gnu_cxx::__promote_2< _Tpnu, _Tp >::__type cyl_bessel_i(_Tpnu __nu, _Tp __x) │ │ │ │ │ +DDeeffiinniittiioonn _s_p_e_c_f_u_n_._h_:_5_3_3 │ │ │ │ │ +_s_t_d_:_:_a_s_s_o_c___l_e_g_e_n_d_r_e │ │ │ │ │ +__gnu_cxx::__promote< _Tp >::__type assoc_legendre(unsigned int __l, unsigned │ │ │ │ │ +int __m, _Tp __x) │ │ │ │ │ +DDeeffiinniittiioonn _s_p_e_c_f_u_n_._h_:_2_9_6 │ │ │ │ │ +_s_t_d_:_:_a_s_s_o_c___l_a_g_u_e_r_r_e_f │ │ │ │ │ +float assoc_laguerref(unsigned int __n, unsigned int __m, float __x) │ │ │ │ │ +DDeeffiinniittiioonn _s_p_e_c_f_u_n_._h_:_2_0_4 │ │ │ │ │ +_s_t_d_:_:_c_y_l___n_e_u_m_a_n_n_l │ │ │ │ │ +long double cyl_neumannl(long double __nu, long double __x) │ │ │ │ │ +DDeeffiinniittiioonn _s_p_e_c_f_u_n_._h_:_6_5_6 │ │ │ │ │ +_s_t_d_:_:_r_i_e_m_a_n_n___z_e_t_a_f │ │ │ │ │ +float riemann_zetaf(float __s) │ │ │ │ │ +DDeeffiinniittiioonn _s_p_e_c_f_u_n_._h_:_1_0_2_0 │ │ │ │ │ +_c_m_a_t_h │ │ │ │ │ + * _m_a_t_h_._h │ │ │ │ │ * Generated by _[_d_o_x_y_g_e_n_]1.9.8 │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a00008.html │ │ │ │ @@ -1,15 +1,15 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ -libstdc++: stdbit.h File Reference │ │ │ │ +libstdc++: stdckdint.h File Reference │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ @@ -45,27 +45,27 @@ │ │ │ │ │ │ │ │
│ │ │ │
│ │ │ │ -
stdbit.h File Reference
│ │ │ │ +
stdckdint.h File Reference
│ │ │ │
│ │ │ │
│ │ │ │ │ │ │ │

Go to the source code of this file.

│ │ │ │

Detailed Description

│ │ │ │

This is a Standard C++ Library header.

│ │ │ │ │ │ │ │ -

Definition in file stdbit.h.

│ │ │ │ +

Definition in file stdckdint.h.

│ │ │ │
│ │ │ │
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├── html2text {} │ │ │ │ │ @@ -1,8 +1,8 @@ │ │ │ │ │ libstdc++ │ │ │ │ │ -stdbit.h File Reference │ │ │ │ │ +stdckdint.h File Reference │ │ │ │ │ _G_o_ _t_o_ _t_h_e_ _s_o_u_r_c_e_ _c_o_d_e_ _o_f_ _t_h_i_s_ _f_i_l_e_. │ │ │ │ │ ********** DDeettaaiilleedd DDeessccrriippttiioonn ********** │ │ │ │ │ This is a Standard C++ Library header. │ │ │ │ │ -Definition in file _s_t_d_b_i_t_._h. │ │ │ │ │ - * _s_t_d_b_i_t_._h │ │ │ │ │ +Definition in file _s_t_d_c_k_d_i_n_t_._h. │ │ │ │ │ + * _s_t_d_c_k_d_i_n_t_._h │ │ │ │ │ * Generated by _[_d_o_x_y_g_e_n_]1.9.8 │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a00008_source.html │ │ │ │ @@ -1,15 +1,15 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ -libstdc++: stdbit.h Source File │ │ │ │ +libstdc++: stdckdint.h Source File │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ @@ -45,18 +45,18 @@ │ │ │ │ │ │ │ │
│ │ │ │
│ │ │ │ -
stdbit.h
│ │ │ │ +
stdckdint.h
│ │ │ │
│ │ │ │
│ │ │ │ -Go to the documentation of this file.
1// C compatibility header <stdbit.h> -*- C++ -*-
│ │ │ │ +Go to the documentation of this file.
1// C compatibility header <stdckdint.h> -*- C++ -*-
│ │ │ │
2
│ │ │ │
3// Copyright The GNU Toolchain Authors.
│ │ │ │
4//
│ │ │ │
5// This file is part of the GNU ISO C++ Library. This library is free
│ │ │ │
6// software; you can redistribute it and/or modify it under the
│ │ │ │
7// terms of the GNU General Public License as published by the
│ │ │ │
8// Free Software Foundation; either version 3, or (at your option)
│ │ │ │ @@ -72,579 +72,109 @@ │ │ │ │
18// 3.1, as published by the Free Software Foundation.
│ │ │ │
19
│ │ │ │
20// You should have received a copy of the GNU General Public License and
│ │ │ │
21// a copy of the GCC Runtime Library Exception along with this program;
│ │ │ │
22// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
│ │ │ │
23// <http://www.gnu.org/licenses/>.
│ │ │ │
24
│ │ │ │ -
25/** @file include/stdbit.h
│ │ │ │ +
25/** @file include/stdckdint.h
│ │ │ │
26 * This is a Standard C++ Library header.
│ │ │ │
27 */
│ │ │ │
28
│ │ │ │ -
29#ifndef _GLIBCXX_STDBIT_H
│ │ │ │ -
30#define _GLIBCXX_STDBIT_H
│ │ │ │ +
29#ifndef _GLIBCXX_STDCKDINT_H
│ │ │ │ +
30#define _GLIBCXX_STDCKDINT_H
│ │ │ │
31
│ │ │ │
32#if __cplusplus > 202302L
│ │ │ │ -
33#include <bit>
│ │ │ │ -
34
│ │ │ │ -
35#define __STDC_VERSION_STDBIT_H__ 202311L
│ │ │ │ -
36
│ │ │ │ -
37#define __STDC_ENDIAN_BIG__ __ORDER_BIG_ENDIAN__
│ │ │ │ -
38#define __STDC_ENDIAN_LITTLE__ __ORDER_LITTLE_ENDIAN__
│ │ │ │ -
39#define __STDC_ENDIAN_NATIVE__ __BYTE_ORDER__
│ │ │ │ -
40
│ │ │ │ -
41#ifndef _GLIBCXX_DOXYGEN
│ │ │ │ -
42// We define these in our own namespace, but let Doxygen think otherwise.
│ │ │ │ -
43namespace __gnu_cxx _GLIBCXX_VISIBILITY(default)
│ │ │ │ -
44{
│ │ │ │ -
45#endif
│ │ │ │ -
46
│ │ │ │ -
47/** Count the number of leading zero bits
│ │ │ │ -
48 *
│ │ │ │ -
49 * @param __value An unsigned integer.
│ │ │ │ -
50 * @since C++26
│ │ │ │ -
51 * @{
│ │ │ │ -
52 */
│ │ │ │ -
53template<typename _Tp>
│ │ │ │ -
54inline unsigned int
│ │ │ │ -
55stdc_leading_zeros(_Tp __value)
│ │ │ │ -
56{
│ │ │ │ -
57 static_assert(std::__unsigned_integer<_Tp>);
│ │ │ │ -
58 return std::countl_zero(__value);
│ │ │ │ -
59}
│ │ │ │ -
60
│ │ │ │ -
61inline unsigned int
│ │ │ │ -
62stdc_leading_zeros_uc(unsigned char __value)
│ │ │ │ -
63{ return stdc_leading_zeros(__value); }
│ │ │ │ -
64
│ │ │ │ -
65inline unsigned int
│ │ │ │ -
66stdc_leading_zeros_us(unsigned short __value)
│ │ │ │ -
67{ return stdc_leading_zeros(__value); }
│ │ │ │ -
68
│ │ │ │ -
69inline unsigned int
│ │ │ │ -
70stdc_leading_zeros_ui(unsigned int __value)
│ │ │ │ -
71{ return stdc_leading_zeros(__value); }
│ │ │ │ -
72
│ │ │ │ -
73inline unsigned int
│ │ │ │ -
74stdc_leading_zeros_ul(unsigned long int __value)
│ │ │ │ -
75{ return stdc_leading_zeros(__value); }
│ │ │ │ -
76
│ │ │ │ -
77inline unsigned int
│ │ │ │ -
78stdc_leading_zeros_ull(unsigned long long int __value)
│ │ │ │ -
79{ return stdc_leading_zeros(__value); }
│ │ │ │ -
80/// @}
│ │ │ │ -
81
│ │ │ │ -
82/** Count the number of leading one bits
│ │ │ │ -
83 *
│ │ │ │ -
84 * @param __value An unsigned integer.
│ │ │ │ -
85 * @since C++26
│ │ │ │ -
86 * @{
│ │ │ │ -
87 */
│ │ │ │ -
88template<typename _Tp>
│ │ │ │ -
89inline unsigned int
│ │ │ │ -
90stdc_leading_ones(_Tp __value)
│ │ │ │ -
91{
│ │ │ │ -
92 static_assert(std::__unsigned_integer<_Tp>);
│ │ │ │ -
93 return std::countl_one(__value);
│ │ │ │ -
94}
│ │ │ │ -
95
│ │ │ │ -
96inline unsigned int
│ │ │ │ -
97stdc_leading_ones_uc(unsigned char __value)
│ │ │ │ -
98{ return stdc_leading_ones(__value); }
│ │ │ │ -
99
│ │ │ │ -
100inline unsigned int
│ │ │ │ -
101stdc_leading_ones_us(unsigned short __value)
│ │ │ │ -
102{ return stdc_leading_ones(__value); }
│ │ │ │ -
103
│ │ │ │ -
104inline unsigned int
│ │ │ │ -
105stdc_leading_ones_ui(unsigned int __value)
│ │ │ │ -
106{ return stdc_leading_ones(__value); }
│ │ │ │ -
107
│ │ │ │ -
108inline unsigned int
│ │ │ │ -
109stdc_leading_ones_ul(unsigned long int __value)
│ │ │ │ -
110{ return stdc_leading_ones(__value); }
│ │ │ │ -
111
│ │ │ │ -
112inline unsigned int
│ │ │ │ -
113stdc_leading_ones_ull(unsigned long long int __value)
│ │ │ │ -
114{ return stdc_leading_ones(__value); }
│ │ │ │ -
115/// @}
│ │ │ │ -
116
│ │ │ │ -
117/** Count the number of trailing zero bits
│ │ │ │ -
118 *
│ │ │ │ -
119 * @param __value An unsigned integer.
│ │ │ │ -
120 * @since C++26
│ │ │ │ -
121 * @{
│ │ │ │ -
122 */
│ │ │ │ -
123template<typename _Tp>
│ │ │ │ -
124inline unsigned int
│ │ │ │ -
125stdc_trailing_zeros(_Tp __value)
│ │ │ │ -
126{
│ │ │ │ -
127 static_assert(std::__unsigned_integer<_Tp>);
│ │ │ │ -
128 return std::countr_zero(__value);
│ │ │ │ -
129}
│ │ │ │ -
130
│ │ │ │ -
131inline unsigned int
│ │ │ │ -
132stdc_trailing_zeros_uc(unsigned char __value)
│ │ │ │ -
133{ return stdc_trailing_zeros(__value); }
│ │ │ │ -
134
│ │ │ │ -
135inline unsigned int
│ │ │ │ -
136stdc_trailing_zeros_us(unsigned short __value)
│ │ │ │ -
137{ return stdc_trailing_zeros(__value); }
│ │ │ │ -
138
│ │ │ │ -
139inline unsigned int
│ │ │ │ -
140stdc_trailing_zeros_ui(unsigned int __value)
│ │ │ │ -
141{ return stdc_trailing_zeros(__value); }
│ │ │ │ -
142
│ │ │ │ -
143inline unsigned int
│ │ │ │ -
144stdc_trailing_zeros_ul(unsigned long int __value)
│ │ │ │ -
145{ return stdc_trailing_zeros(__value); }
│ │ │ │ -
146
│ │ │ │ -
147inline unsigned int
│ │ │ │ -
148stdc_trailing_zeros_ull(unsigned long long int __value)
│ │ │ │ -
149{ return stdc_trailing_zeros(__value); }
│ │ │ │ -
150/// @}
│ │ │ │ -
151
│ │ │ │ -
152/** Count the number of trailing one bits
│ │ │ │ -
153 *
│ │ │ │ -
154 * @param __value An unsigned integer.
│ │ │ │ -
155 * @since C++26
│ │ │ │ -
156 * @{
│ │ │ │ -
157 */
│ │ │ │ -
158template<typename _Tp>
│ │ │ │ -
159inline unsigned int
│ │ │ │ -
160stdc_trailing_ones(_Tp __value)
│ │ │ │ -
161{
│ │ │ │ -
162 static_assert(std::__unsigned_integer<_Tp>);
│ │ │ │ -
163 return std::countr_one(__value);
│ │ │ │ -
164}
│ │ │ │ -
165
│ │ │ │ -
166inline unsigned int
│ │ │ │ -
167stdc_trailing_ones_uc(unsigned char __value)
│ │ │ │ -
168{ return stdc_trailing_ones(__value); }
│ │ │ │ -
169
│ │ │ │ -
170inline unsigned int
│ │ │ │ -
171stdc_trailing_ones_us(unsigned short __value)
│ │ │ │ -
172{ return stdc_trailing_ones(__value); }
│ │ │ │ -
173
│ │ │ │ -
174inline unsigned int
│ │ │ │ -
175stdc_trailing_ones_ui(unsigned int __value)
│ │ │ │ -
176{ return stdc_trailing_ones(__value); }
│ │ │ │ -
177
│ │ │ │ -
178inline unsigned int
│ │ │ │ -
179stdc_trailing_ones_ul(unsigned long int __value)
│ │ │ │ -
180{ return stdc_trailing_ones(__value); }
│ │ │ │ -
181
│ │ │ │ -
182inline unsigned int
│ │ │ │ -
183stdc_trailing_ones_ull(unsigned long long int __value)
│ │ │ │ -
184{ return stdc_trailing_ones(__value); }
│ │ │ │ -
185/// @}
│ │ │ │ -
186
│ │ │ │ -
187/** Find the leftmost (i.e. most significant) zero bit
│ │ │ │ -
188 *
│ │ │ │ -
189 * @param __value An unsigned integer.
│ │ │ │ -
190 * @return The one-based index of the first zero bit counting from the left,
│ │ │ │ -
191 * or zero if there are no zero bits.
│ │ │ │ -
192 * @since C++26
│ │ │ │ -
193 * @{
│ │ │ │ -
194 */
│ │ │ │ -
195template<typename _Tp>
│ │ │ │ -
196inline unsigned int
│ │ │ │ -
197stdc_first_leading_zero(_Tp __value)
│ │ │ │ -
198{
│ │ │ │ -
199 static_assert(std::__unsigned_integer<_Tp>);
│ │ │ │ -
200 return __value == _Tp(-1) ? 0 : 1 + std::countl_one(__value);
│ │ │ │ -
201}
│ │ │ │ -
202
│ │ │ │ -
203inline unsigned int
│ │ │ │ -
204stdc_first_leading_zero_uc(unsigned char __value)
│ │ │ │ -
205{ return stdc_first_leading_zero(__value); }
│ │ │ │ -
206
│ │ │ │ -
207inline unsigned int
│ │ │ │ -
208stdc_first_leading_zero_us(unsigned short __value)
│ │ │ │ -
209{ return stdc_first_leading_zero(__value); }
│ │ │ │ -
210
│ │ │ │ -
211inline unsigned int
│ │ │ │ -
212stdc_first_leading_zero_ui(unsigned int __value)
│ │ │ │ -
213{ return stdc_first_leading_zero(__value); }
│ │ │ │ -
214
│ │ │ │ -
215inline unsigned int
│ │ │ │ -
216stdc_first_leading_zero_ul(unsigned long int __value)
│ │ │ │ -
217{ return stdc_first_leading_zero(__value); }
│ │ │ │ -
218
│ │ │ │ -
219inline unsigned int
│ │ │ │ -
220stdc_first_leading_zero_ull(unsigned long long int __value)
│ │ │ │ -
221{ return stdc_first_leading_zero(__value); }
│ │ │ │ -
222/// @}
│ │ │ │ -
223
│ │ │ │ -
224/** Find the leftmost (i.e. most significant) one bit
│ │ │ │ -
225 *
│ │ │ │ -
226 * @param __value An unsigned integer.
│ │ │ │ -
227 * @return The one-based index of the first one bit counting from the left,
│ │ │ │ -
228 * or zero if there are no one bits.
│ │ │ │ -
229 * @since C++26
│ │ │ │ -
230 * @{
│ │ │ │ -
231 */
│ │ │ │ -
232template<typename _Tp>
│ │ │ │ -
233inline unsigned int
│ │ │ │ -
234stdc_first_leading_one(_Tp __value)
│ │ │ │ -
235{
│ │ │ │ -
236 static_assert(std::__unsigned_integer<_Tp>);
│ │ │ │ -
237 return __value == 0 ? 0 : 1 + std::countl_zero(__value);
│ │ │ │ -
238}
│ │ │ │ -
239
│ │ │ │ -
240inline unsigned int
│ │ │ │ -
241stdc_first_leading_one_uc(unsigned char __value)
│ │ │ │ -
242{ return stdc_first_leading_one(__value); }
│ │ │ │ -
243
│ │ │ │ -
244inline unsigned int
│ │ │ │ -
245stdc_first_leading_one_us(unsigned short __value)
│ │ │ │ -
246{ return stdc_first_leading_one(__value); }
│ │ │ │ -
247
│ │ │ │ -
248inline unsigned int
│ │ │ │ -
249stdc_first_leading_one_ui(unsigned int __value)
│ │ │ │ -
250{ return stdc_first_leading_one(__value); }
│ │ │ │ -
251
│ │ │ │ -
252inline unsigned int
│ │ │ │ -
253stdc_first_leading_one_ul(unsigned long int __value)
│ │ │ │ -
254{ return stdc_first_leading_one(__value); }
│ │ │ │ -
255
│ │ │ │ -
256inline unsigned int
│ │ │ │ -
257stdc_first_leading_one_ull(unsigned long long int __value)
│ │ │ │ -
258{ return stdc_first_leading_one(__value); }
│ │ │ │ -
259/// @}
│ │ │ │ -
260
│ │ │ │ -
261/** Find the rightmost (i.e. least significant) zero bit
│ │ │ │ -
262 *
│ │ │ │ -
263 * @param __value An unsigned integer.
│ │ │ │ -
264 * @return The one-based index of the first zero bit counting from the right,
│ │ │ │ -
265 * or zero if there are no zero bits.
│ │ │ │ -
266 * @since C++26
│ │ │ │ -
267 * @{
│ │ │ │ -
268 */
│ │ │ │ -
269template<typename _Tp>
│ │ │ │ -
270inline unsigned int
│ │ │ │ -
271stdc_first_trailing_zero(_Tp __value)
│ │ │ │ -
272{
│ │ │ │ -
273 static_assert(std::__unsigned_integer<_Tp>);
│ │ │ │ -
274 return __value == _Tp(-1) ? 0 : 1 + std::countr_one(__value);
│ │ │ │ -
275}
│ │ │ │ -
276
│ │ │ │ -
277inline unsigned int
│ │ │ │ -
278stdc_first_trailing_zero_uc(unsigned char __value)
│ │ │ │ -
279{ return stdc_first_trailing_zero(__value); }
│ │ │ │ -
280
│ │ │ │ -
281inline unsigned int
│ │ │ │ -
282stdc_first_trailing_zero_us(unsigned short __value)
│ │ │ │ -
283{ return stdc_first_trailing_zero(__value); }
│ │ │ │ -
284
│ │ │ │ -
285inline unsigned int
│ │ │ │ -
286stdc_first_trailing_zero_ui(unsigned int __value)
│ │ │ │ -
287{ return stdc_first_trailing_zero(__value); }
│ │ │ │ -
288
│ │ │ │ -
289inline unsigned int
│ │ │ │ -
290stdc_first_trailing_zero_ul(unsigned long int __value)
│ │ │ │ -
291{ return stdc_first_trailing_zero(__value); }
│ │ │ │ -
292
│ │ │ │ -
293inline unsigned int
│ │ │ │ -
294stdc_first_trailing_zero_ull(unsigned long long int __value)
│ │ │ │ -
295{ return stdc_first_trailing_zero(__value); }
│ │ │ │ -
296/// @}
│ │ │ │ -
297
│ │ │ │ -
298/** Find the rightmost (i.e. least significant) one bit
│ │ │ │ -
299 *
│ │ │ │ -
300 * @param __value An unsigned integer.
│ │ │ │ -
301 * @return The one-based index of the first one bit counting from the right,
│ │ │ │ -
302 * or zero if there are no one bits.
│ │ │ │ -
303 * @since C++26
│ │ │ │ -
304 * @{
│ │ │ │ -
305 */
│ │ │ │ -
306template<typename _Tp>
│ │ │ │ -
307inline unsigned int
│ │ │ │ -
308stdc_first_trailing_one(_Tp __value)
│ │ │ │ -
309{
│ │ │ │ -
310 static_assert(std::__unsigned_integer<_Tp>);
│ │ │ │ -
311 return __value == 0 ? 0 : 1 + std::countr_zero(__value);
│ │ │ │ -
312}
│ │ │ │ -
313
│ │ │ │ -
314inline unsigned int
│ │ │ │ -
315stdc_first_trailing_one_uc(unsigned char __value)
│ │ │ │ -
316{ return stdc_first_trailing_one(__value); }
│ │ │ │ -
317
│ │ │ │ -
318inline unsigned int
│ │ │ │ -
319stdc_first_trailing_one_us(unsigned short __value)
│ │ │ │ -
320{ return stdc_first_trailing_one(__value); }
│ │ │ │ -
321
│ │ │ │ -
322inline unsigned int
│ │ │ │ -
323stdc_first_trailing_one_ui(unsigned int __value)
│ │ │ │ -
324{ return stdc_first_trailing_one(__value); }
│ │ │ │ -
325
│ │ │ │ -
326inline unsigned int
│ │ │ │ -
327stdc_first_trailing_one_ul(unsigned long int __value)
│ │ │ │ -
328{ return stdc_first_trailing_one(__value); }
│ │ │ │ -
329
│ │ │ │ -
330inline unsigned int
│ │ │ │ -
331stdc_first_trailing_one_ull(unsigned long long int __value)
│ │ │ │ -
332{ return stdc_first_trailing_one(__value); }
│ │ │ │ -
333/// @}
│ │ │ │ -
334
│ │ │ │ -
335/** Count zeros
│ │ │ │ -
336 *
│ │ │ │ -
337 * @param __value An unsigned integer.
│ │ │ │ -
338 * @return The total number of zero bits in `__value`.
│ │ │ │ -
339 * @since C++26
│ │ │ │ -
340 * @{
│ │ │ │ -
341 */
│ │ │ │ -
342template<typename _Tp>
│ │ │ │ -
343inline unsigned int
│ │ │ │ -
344stdc_count_zeros(_Tp __value)
│ │ │ │ -
345{
│ │ │ │ -
346 static_assert(std::__unsigned_integer<_Tp>);
│ │ │ │ -
347 return std::popcount(_Tp(~__value));
│ │ │ │ -
348}
│ │ │ │ -
349
│ │ │ │ -
350inline unsigned int
│ │ │ │ -
351stdc_count_zeros_uc(unsigned char __value)
│ │ │ │ -
352{ return stdc_count_zeros(__value); }
│ │ │ │ -
353
│ │ │ │ -
354inline unsigned int
│ │ │ │ -
355stdc_count_zeros_us(unsigned short __value)
│ │ │ │ -
356{ return stdc_count_zeros(__value); }
│ │ │ │ -
357
│ │ │ │ -
358inline unsigned int
│ │ │ │ -
359stdc_count_zeros_ui(unsigned int __value)
│ │ │ │ -
360{ return stdc_count_zeros(__value); }
│ │ │ │ -
361
│ │ │ │ -
362inline unsigned int
│ │ │ │ -
363stdc_count_zeros_ul(unsigned long int __value)
│ │ │ │ -
364{ return stdc_count_zeros(__value); }
│ │ │ │ -
365
│ │ │ │ -
366inline unsigned int
│ │ │ │ -
367stdc_count_zeros_ull(unsigned long long int __value)
│ │ │ │ -
368{ return stdc_count_zeros(__value); }
│ │ │ │ -
369/// @}
│ │ │ │ -
370
│ │ │ │ -
371/** Count ones
│ │ │ │ -
372 *
│ │ │ │ -
373 * @param __value An unsigned integer.
│ │ │ │ -
374 * @return The total number of one bits in `__value`.
│ │ │ │ -
375 * @since C++26
│ │ │ │ -
376 * @{
│ │ │ │ -
377 */
│ │ │ │ -
378template<typename _Tp>
│ │ │ │ -
379inline unsigned int
│ │ │ │ -
380stdc_count_ones(_Tp __value)
│ │ │ │ -
381{
│ │ │ │ -
382 static_assert(std::__unsigned_integer<_Tp>);
│ │ │ │ -
383 return std::popcount(__value);
│ │ │ │ -
384}
│ │ │ │ -
385
│ │ │ │ -
386inline unsigned int
│ │ │ │ -
387stdc_count_ones_uc(unsigned char __value)
│ │ │ │ -
388{ return stdc_count_ones(__value); }
│ │ │ │ -
389
│ │ │ │ -
390inline unsigned int
│ │ │ │ -
391stdc_count_ones_us(unsigned short __value)
│ │ │ │ -
392{ return stdc_count_ones(__value); }
│ │ │ │ -
393
│ │ │ │ -
394inline unsigned int
│ │ │ │ -
395stdc_count_ones_ui(unsigned int __value)
│ │ │ │ -
396{ return stdc_count_ones(__value); }
│ │ │ │ -
397
│ │ │ │ -
398inline unsigned int
│ │ │ │ -
399stdc_count_ones_ul(unsigned long int __value)
│ │ │ │ -
400{ return stdc_count_ones(__value); }
│ │ │ │ -
401
│ │ │ │ -
402inline unsigned int
│ │ │ │ -
403stdc_count_ones_ull(unsigned long long int __value)
│ │ │ │ -
404{ return stdc_count_ones(__value); }
│ │ │ │ -
405/// @}
│ │ │ │ -
406
│ │ │ │ -
407/** Power of two check
│ │ │ │ -
408 *
│ │ │ │ -
409 * @param __value An unsigned integer.
│ │ │ │ -
410 * @return True if the value has a single bit set, false otherwise.
│ │ │ │ -
411 * @since C++26
│ │ │ │ -
412 * @{
│ │ │ │ -
413 */
│ │ │ │ -
414template<typename _Tp>
│ │ │ │ -
415inline bool
│ │ │ │ -
416stdc_has_single_bit(_Tp __value)
│ │ │ │ -
417{
│ │ │ │ -
418 static_assert(std::__unsigned_integer<_Tp>);
│ │ │ │ -
419 return std::has_single_bit(__value);
│ │ │ │ -
420}
│ │ │ │ -
421
│ │ │ │ -
422inline bool
│ │ │ │ -
423stdc_has_single_bit_uc(unsigned char __value)
│ │ │ │ -
424{ return stdc_has_single_bit(__value); }
│ │ │ │ -
425
│ │ │ │ -
426inline bool
│ │ │ │ -
427stdc_has_single_bit_us(unsigned short __value)
│ │ │ │ -
428{ return stdc_has_single_bit(__value); }
│ │ │ │ -
429
│ │ │ │ -
430inline bool
│ │ │ │ -
431stdc_has_single_bit_ui(unsigned int __value)
│ │ │ │ -
432{ return stdc_has_single_bit(__value); }
│ │ │ │ -
433
│ │ │ │ -
434inline bool
│ │ │ │ -
435stdc_has_single_bit_ul(unsigned long int __value)
│ │ │ │ -
436{ return stdc_has_single_bit(__value); }
│ │ │ │ -
437
│ │ │ │ -
438inline bool
│ │ │ │ -
439stdc_has_single_bit_ull(unsigned long long int __value)
│ │ │ │ -
440{ return stdc_has_single_bit(__value); }
│ │ │ │ -
441/// @}
│ │ │ │ -
442
│ │ │ │ -
443/** Bit width
│ │ │ │ -
444 *
│ │ │ │ -
445 * @param __value An unsigned integer.
│ │ │ │ -
446 * @return The minimum number of bits needed to represent `__value`.
│ │ │ │ -
447 * @since C++26
│ │ │ │ -
448 * @{
│ │ │ │ -
449 */
│ │ │ │ -
450template<typename _Tp>
│ │ │ │ -
451inline unsigned int
│ │ │ │ -
452stdc_bit_width(_Tp __value)
│ │ │ │ -
453{
│ │ │ │ -
454 static_assert(std::__unsigned_integer<_Tp>);
│ │ │ │ -
455 return std::bit_width(__value);
│ │ │ │ -
456}
│ │ │ │ -
457
│ │ │ │ -
458inline unsigned int
│ │ │ │ -
459stdc_bit_width_uc(unsigned char __value)
│ │ │ │ -
460{ return stdc_bit_width(__value); }
│ │ │ │ -
461
│ │ │ │ -
462inline unsigned int
│ │ │ │ -
463stdc_bit_width_us(unsigned short __value)
│ │ │ │ -
464{ return stdc_bit_width(__value); }
│ │ │ │ -
465
│ │ │ │ -
466inline unsigned int
│ │ │ │ -
467stdc_bit_width_ui(unsigned int __value)
│ │ │ │ -
468{ return stdc_bit_width(__value); }
│ │ │ │ -
469
│ │ │ │ -
470inline unsigned int
│ │ │ │ -
471stdc_bit_width_ul(unsigned long int __value)
│ │ │ │ -
472{ return stdc_bit_width(__value); }
│ │ │ │ -
473
│ │ │ │ -
474inline unsigned int
│ │ │ │ -
475stdc_bit_width_ull(unsigned long long int __value)
│ │ │ │ -
476{ return stdc_bit_width(__value); }
│ │ │ │ -
477/// @}
│ │ │ │ -
478
│ │ │ │ -
479/** Bit floor
│ │ │ │ -
480 *
│ │ │ │ -
481 * @param __value An unsigned integer.
│ │ │ │ -
482 * @return The largest power of two that is not greater than `__value`.
│ │ │ │ -
483 * @since C++26
│ │ │ │ -
484 * @{
│ │ │ │ -
485 */
│ │ │ │ -
486template<typename _Tp>
│ │ │ │ -
487inline _Tp
│ │ │ │ -
488stdc_bit_floor(_Tp __value)
│ │ │ │ -
489{
│ │ │ │ -
490 static_assert(std::__unsigned_integer<_Tp>);
│ │ │ │ -
491 return std::bit_floor(__value);
│ │ │ │ -
492}
│ │ │ │ -
493
│ │ │ │ -
494inline unsigned char
│ │ │ │ -
495stdc_bit_floor_uc(unsigned char __value)
│ │ │ │ -
496{ return stdc_bit_floor(__value); }
│ │ │ │ -
497
│ │ │ │ -
498inline unsigned short
│ │ │ │ -
499stdc_bit_floor_us(unsigned short __value)
│ │ │ │ -
500{ return stdc_bit_floor(__value); }
│ │ │ │ -
501
│ │ │ │ -
502inline unsigned int
│ │ │ │ -
503stdc_bit_floor_ui(unsigned int __value)
│ │ │ │ -
504{ return stdc_bit_floor(__value); }
│ │ │ │ -
505
│ │ │ │ -
506inline unsigned long int
│ │ │ │ -
507stdc_bit_floor_ul(unsigned long int __value)
│ │ │ │ -
508{ return stdc_bit_floor(__value); }
│ │ │ │ -
509
│ │ │ │ -
510inline unsigned long long int
│ │ │ │ -
511stdc_bit_floor_ull(unsigned long long int __value)
│ │ │ │ -
512{ return stdc_bit_floor(__value); }
│ │ │ │ -
513/// @}
│ │ │ │ -
514
│ │ │ │ -
515/** Bit ceiling
│ │ │ │ -
516 *
│ │ │ │ -
517 * Unlike `std::bit_ceil`, this is defined to return zero for values which
│ │ │ │ -
518 * are not representable in the return type.
│ │ │ │ -
519 *
│ │ │ │ -
520 * @param __value An unsigned integer.
│ │ │ │ -
521 * @return The smallest power of two that is not less than `__value`.
│ │ │ │ -
522 * @since C++26
│ │ │ │ -
523 * @{
│ │ │ │ -
524 */
│ │ │ │ -
525template<typename _Tp>
│ │ │ │ -
526inline _Tp
│ │ │ │ -
527stdc_bit_ceil(_Tp __value)
│ │ │ │ -
528{
│ │ │ │ -
529 static_assert(std::__unsigned_integer<_Tp>);
│ │ │ │ -
530 constexpr _Tp __msb = _Tp(1) << (__gnu_cxx::__int_traits<_Tp>::__digits - 1);
│ │ │ │ -
531 return (__value & __msb) ? 0 : std::bit_ceil(__value);
│ │ │ │ -
532}
│ │ │ │ -
533
│ │ │ │ -
534inline unsigned char
│ │ │ │ -
535stdc_bit_ceil_uc(unsigned char __value)
│ │ │ │ -
536{ return stdc_bit_ceil(__value); }
│ │ │ │ -
537
│ │ │ │ -
538inline unsigned short
│ │ │ │ -
539stdc_bit_ceil_us(unsigned short __value)
│ │ │ │ -
540{ return stdc_bit_ceil(__value); }
│ │ │ │ -
541
│ │ │ │ -
542inline unsigned int
│ │ │ │ -
543stdc_bit_ceil_ui(unsigned int __value)
│ │ │ │ -
544{ return stdc_bit_ceil(__value); }
│ │ │ │ -
545
│ │ │ │ -
546inline unsigned long int
│ │ │ │ -
547stdc_bit_ceil_ul(unsigned long int __value)
│ │ │ │ -
548{ return stdc_bit_ceil(__value); }
│ │ │ │ -
549
│ │ │ │ -
550inline unsigned long long int
│ │ │ │ -
551stdc_bit_ceil_ull(unsigned long long int __value)
│ │ │ │ -
552{ return stdc_bit_ceil(__value); }
│ │ │ │ -
553/// @}
│ │ │ │ -
554
│ │ │ │ -
555#ifndef _GLIBCXX_DOXYGEN
│ │ │ │ -
556} // namespace __gnu_cxx
│ │ │ │ -
557#define _GLIBCXX_STDBIT_FUNC(F) \
│ │ │ │ -
558 using __gnu_cxx::F ## _uc; \
│ │ │ │ -
559 using __gnu_cxx::F ## _us; \
│ │ │ │ -
560 using __gnu_cxx::F ## _ui; \
│ │ │ │ -
561 using __gnu_cxx::F ## _ul; \
│ │ │ │ -
562 using __gnu_cxx::F ## _ull; \
│ │ │ │ -
563 using __gnu_cxx::F
│ │ │ │ -
564_GLIBCXX_STDBIT_FUNC(stdc_leading_zeros);
│ │ │ │ -
565_GLIBCXX_STDBIT_FUNC(stdc_leading_ones);
│ │ │ │ -
566_GLIBCXX_STDBIT_FUNC(stdc_trailing_zeros);
│ │ │ │ -
567_GLIBCXX_STDBIT_FUNC(stdc_trailing_ones);
│ │ │ │ -
568_GLIBCXX_STDBIT_FUNC(stdc_first_leading_zero);
│ │ │ │ -
569_GLIBCXX_STDBIT_FUNC(stdc_first_leading_one);
│ │ │ │ -
570_GLIBCXX_STDBIT_FUNC(stdc_first_trailing_zero);
│ │ │ │ -
571_GLIBCXX_STDBIT_FUNC(stdc_first_trailing_one);
│ │ │ │ -
572_GLIBCXX_STDBIT_FUNC(stdc_count_zeros);
│ │ │ │ -
573_GLIBCXX_STDBIT_FUNC(stdc_count_ones);
│ │ │ │ -
574_GLIBCXX_STDBIT_FUNC(stdc_has_single_bit);
│ │ │ │ -
575_GLIBCXX_STDBIT_FUNC(stdc_bit_width);
│ │ │ │ -
576_GLIBCXX_STDBIT_FUNC(stdc_bit_floor);
│ │ │ │ -
577_GLIBCXX_STDBIT_FUNC(stdc_bit_ceil);
│ │ │ │ -
578#undef _GLIBCXX_STDBIT_FUNC
│ │ │ │ -
579#endif // !DOXYGEN
│ │ │ │ -
580#endif // C++26
│ │ │ │ -
581
│ │ │ │ -
582#endif // _GLIBCXX_STDBIT_H
│ │ │ │ - │ │ │ │ +
33#include <type_traits>
│ │ │ │ +
34#include <concepts>
│ │ │ │ +
35
│ │ │ │ +
36#define __STDC_VERSION_STDCKDINT_H__ 202311L
│ │ │ │ +
37
│ │ │ │ +
38#ifndef _GLIBCXX_DOXYGEN
│ │ │ │ +
39// We define these in our own namespace, but let Doxygen think otherwise.
│ │ │ │ +
40namespace __gnu_cxx _GLIBCXX_VISIBILITY(default)
│ │ │ │ +
41{
│ │ │ │ +
42#endif
│ │ │ │ +
43/// @cond undocumented
│ │ │ │ +
44namespace __detail
│ │ │ │ +
45{
│ │ │ │ +
46 template<typename _Tp>
│ │ │ │ +
47 concept __cv_unqual_signed_or_unsigned_integer_type
│ │ │ │ +
48 = std::same_as<_Tp, std::remove_cv_t<_Tp>>
│ │ │ │ +
49 && std::__is_standard_integer<_Tp>::value;
│ │ │ │ +
50}
│ │ │ │ +
51/// @endcond
│ │ │ │ +
52
│ │ │ │ +
53/** Checked integer arithmetic
│ │ │ │ +
54 *
│ │ │ │ +
55 * Performs arithmetic on `__a` and `__b` and stores the result in `*__result`,
│ │ │ │ +
56 * with overflow detection.
│ │ │ │ +
57 * The arithmetic is performed in infinite signed precision, without overflow,
│ │ │ │ +
58 * then converted to the result type, `_Tp1`. If the converted result is not
│ │ │ │ +
59 * equal to the infinite precision result, the stored result is wrapped to the
│ │ │ │ +
60 * width of `_Tp1` and `true` is returned. Otherwise, the stored result is
│ │ │ │ +
61 * correct and `false` is returned.
│ │ │ │ +
62 *
│ │ │ │ +
63 * @param __result A pointer to a signed or unsigned integer type.
│ │ │ │ +
64 * @param __a A signed or unsigned integer type.
│ │ │ │ +
65 * @param __b A signed or unsigned integer type.
│ │ │ │ +
66 * @return True if overflow occurred, false otherwise.
│ │ │ │ +
67 * @since C++26
│ │ │ │ +
68 * @{
│ │ │ │ +
69 */
│ │ │ │ +
70template<typename _Tp1, typename _Tp2, typename _Tp3>
│ │ │ │ +
71 inline bool
│ │ │ │ +
72 ckd_add(_Tp1* __result, _Tp2 __a, _Tp3 __b)
│ │ │ │ +
73 {
│ │ │ │ +
74 using __gnu_cxx::__detail::__cv_unqual_signed_or_unsigned_integer_type;
│ │ │ │ +
75 static_assert(__cv_unqual_signed_or_unsigned_integer_type<_Tp1>);
│ │ │ │ +
76 static_assert(__cv_unqual_signed_or_unsigned_integer_type<_Tp2>);
│ │ │ │ +
77 static_assert(__cv_unqual_signed_or_unsigned_integer_type<_Tp3>);
│ │ │ │ +
78 return __builtin_add_overflow(__a, __b, __result);
│ │ │ │ +
79 }
│ │ │ │ +
80
│ │ │ │ +
81template<typename _Tp1, typename _Tp2, typename _Tp3>
│ │ │ │ +
82 inline bool
│ │ │ │ +
83 ckd_sub(_Tp1* __result, _Tp2 __a, _Tp3 __b)
│ │ │ │ +
84 {
│ │ │ │ +
85 using __gnu_cxx::__detail::__cv_unqual_signed_or_unsigned_integer_type;
│ │ │ │ +
86 static_assert(__cv_unqual_signed_or_unsigned_integer_type<_Tp1>);
│ │ │ │ +
87 static_assert(__cv_unqual_signed_or_unsigned_integer_type<_Tp2>);
│ │ │ │ +
88 static_assert(__cv_unqual_signed_or_unsigned_integer_type<_Tp3>);
│ │ │ │ +
89 return __builtin_sub_overflow(__a, __b, __result);
│ │ │ │ +
90 }
│ │ │ │ +
91
│ │ │ │ +
92template<typename _Tp1, typename _Tp2, typename _Tp3>
│ │ │ │ +
93 inline bool
│ │ │ │ +
94 ckd_mul(_Tp1* __result, _Tp2 __a, _Tp3 __b)
│ │ │ │ +
95 {
│ │ │ │ +
96 using __gnu_cxx::__detail::__cv_unqual_signed_or_unsigned_integer_type;
│ │ │ │ +
97 static_assert(__cv_unqual_signed_or_unsigned_integer_type<_Tp1>);
│ │ │ │ +
98 static_assert(__cv_unqual_signed_or_unsigned_integer_type<_Tp2>);
│ │ │ │ +
99 static_assert(__cv_unqual_signed_or_unsigned_integer_type<_Tp3>);
│ │ │ │ +
100 return __builtin_mul_overflow(__a, __b, __result);
│ │ │ │ +
101 }
│ │ │ │ +
102/// @}
│ │ │ │ +
103#ifndef _GLIBCXX_DOXYGEN
│ │ │ │ +
104}
│ │ │ │ +
105
│ │ │ │ +
106using __gnu_cxx::ckd_add;
│ │ │ │ +
107using __gnu_cxx::ckd_sub;
│ │ │ │ +
108using __gnu_cxx::ckd_mul;
│ │ │ │ +
109#endif
│ │ │ │ +
110
│ │ │ │ +
111#endif // C++26
│ │ │ │ +
112
│ │ │ │ +
113#endif // _GLIBCXX_STDCKDINT_H
│ │ │ │ + │ │ │ │
GNU extensions for public use.
│ │ │ │ -
__numeric_traits_integer< _Tp > __int_traits
Convenience alias for __numeric_traits<integer-type>.
│ │ │ │
│ │ │ │
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├── html2text {} │ │ │ │ │ @@ -1,11 +1,11 @@ │ │ │ │ │ libstdc++ │ │ │ │ │ -stdbit.h │ │ │ │ │ +stdckdint.h │ │ │ │ │ _G_o_ _t_o_ _t_h_e_ _d_o_c_u_m_e_n_t_a_t_i_o_n_ _o_f_ _t_h_i_s_ _f_i_l_e_. │ │ │ │ │ -1// C compatibility header -*- C++ -*- │ │ │ │ │ +1// C compatibility header -*- C++ -*- │ │ │ │ │ 2 │ │ │ │ │ 3// Copyright The GNU Toolchain Authors. │ │ │ │ │ 4// │ │ │ │ │ 5// This file is part of the GNU ISO C++ Library. This library is free │ │ │ │ │ 6// software; you can redistribute it and/or modify it under the │ │ │ │ │ 7// terms of the GNU General Public License as published by the │ │ │ │ │ 8// Free Software Foundation; either version 3, or (at your option) │ │ │ │ │ @@ -21,576 +21,104 @@ │ │ │ │ │ 18// 3.1, as published by the Free Software Foundation. │ │ │ │ │ 19 │ │ │ │ │ 20// You should have received a copy of the GNU General Public License and │ │ │ │ │ 21// a copy of the GCC Runtime Library Exception along with this program; │ │ │ │ │ 22// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see │ │ │ │ │ 23// . │ │ │ │ │ 24 │ │ │ │ │ -25/** @file include/stdbit.h │ │ │ │ │ +25/** @file include/stdckdint.h │ │ │ │ │ 26 * This is a Standard C++ Library header. │ │ │ │ │ 27 */ │ │ │ │ │ 28 │ │ │ │ │ -29#ifndef _GLIBCXX_STDBIT_H │ │ │ │ │ -30#define _GLIBCXX_STDBIT_H │ │ │ │ │ +29#ifndef _GLIBCXX_STDCKDINT_H │ │ │ │ │ +30#define _GLIBCXX_STDCKDINT_H │ │ │ │ │ 31 │ │ │ │ │ 32#if __cplusplus > 202302L │ │ │ │ │ -33#include <_b_i_t> │ │ │ │ │ -34 │ │ │ │ │ -35#define __STDC_VERSION_STDBIT_H__ 202311L │ │ │ │ │ -36 │ │ │ │ │ -37#define __STDC_ENDIAN_BIG__ __ORDER_BIG_ENDIAN__ │ │ │ │ │ -38#define __STDC_ENDIAN_LITTLE__ __ORDER_LITTLE_ENDIAN__ │ │ │ │ │ -39#define __STDC_ENDIAN_NATIVE__ __BYTE_ORDER__ │ │ │ │ │ -40 │ │ │ │ │ -41#ifndef _GLIBCXX_DOXYGEN │ │ │ │ │ -42// We define these in our own namespace, but let Doxygen think otherwise. │ │ │ │ │ -43namespace _____g_n_u___c_x_x _GLIBCXX_VISIBILITY(default) │ │ │ │ │ -44{ │ │ │ │ │ -45#endif │ │ │ │ │ -46 │ │ │ │ │ -47/** Count the number of leading zero bits │ │ │ │ │ -48 * │ │ │ │ │ -49 * @param __value An unsigned integer. │ │ │ │ │ -50 * @since C++26 │ │ │ │ │ -51 * @{ │ │ │ │ │ -52 */ │ │ │ │ │ -53template │ │ │ │ │ -54inline unsigned int │ │ │ │ │ -55stdc_leading_zeros(_Tp __value) │ │ │ │ │ -56{ │ │ │ │ │ -57 static_assert(std::__unsigned_integer<_Tp>); │ │ │ │ │ -58 return std::countl_zero(__value); │ │ │ │ │ -59} │ │ │ │ │ -60 │ │ │ │ │ -61inline unsigned int │ │ │ │ │ -62stdc_leading_zeros_uc(unsigned char __value) │ │ │ │ │ -63{ return stdc_leading_zeros(__value); } │ │ │ │ │ -64 │ │ │ │ │ -65inline unsigned int │ │ │ │ │ -66stdc_leading_zeros_us(unsigned short __value) │ │ │ │ │ -67{ return stdc_leading_zeros(__value); } │ │ │ │ │ -68 │ │ │ │ │ -69inline unsigned int │ │ │ │ │ -70stdc_leading_zeros_ui(unsigned int __value) │ │ │ │ │ -71{ return stdc_leading_zeros(__value); } │ │ │ │ │ -72 │ │ │ │ │ -73inline unsigned int │ │ │ │ │ -74stdc_leading_zeros_ul(unsigned long int __value) │ │ │ │ │ -75{ return stdc_leading_zeros(__value); } │ │ │ │ │ -76 │ │ │ │ │ -77inline unsigned int │ │ │ │ │ -78stdc_leading_zeros_ull(unsigned long long int __value) │ │ │ │ │ -79{ return stdc_leading_zeros(__value); } │ │ │ │ │ -80/// @} │ │ │ │ │ -81 │ │ │ │ │ -82/** Count the number of leading one bits │ │ │ │ │ -83 * │ │ │ │ │ -84 * @param __value An unsigned integer. │ │ │ │ │ -85 * @since C++26 │ │ │ │ │ -86 * @{ │ │ │ │ │ -87 */ │ │ │ │ │ -88template │ │ │ │ │ -89inline unsigned int │ │ │ │ │ -90stdc_leading_ones(_Tp __value) │ │ │ │ │ -91{ │ │ │ │ │ -92 static_assert(std::__unsigned_integer<_Tp>); │ │ │ │ │ -93 return std::countl_one(__value); │ │ │ │ │ -94} │ │ │ │ │ -95 │ │ │ │ │ -96inline unsigned int │ │ │ │ │ -97stdc_leading_ones_uc(unsigned char __value) │ │ │ │ │ -98{ return stdc_leading_ones(__value); } │ │ │ │ │ -99 │ │ │ │ │ -100inline unsigned int │ │ │ │ │ -101stdc_leading_ones_us(unsigned short __value) │ │ │ │ │ -102{ return stdc_leading_ones(__value); } │ │ │ │ │ -103 │ │ │ │ │ -104inline unsigned int │ │ │ │ │ -105stdc_leading_ones_ui(unsigned int __value) │ │ │ │ │ -106{ return stdc_leading_ones(__value); } │ │ │ │ │ -107 │ │ │ │ │ -108inline unsigned int │ │ │ │ │ -109stdc_leading_ones_ul(unsigned long int __value) │ │ │ │ │ -110{ return stdc_leading_ones(__value); } │ │ │ │ │ -111 │ │ │ │ │ -112inline unsigned int │ │ │ │ │ -113stdc_leading_ones_ull(unsigned long long int __value) │ │ │ │ │ -114{ return stdc_leading_ones(__value); } │ │ │ │ │ -115/// @} │ │ │ │ │ -116 │ │ │ │ │ -117/** Count the number of trailing zero bits │ │ │ │ │ -118 * │ │ │ │ │ -119 * @param __value An unsigned integer. │ │ │ │ │ -120 * @since C++26 │ │ │ │ │ -121 * @{ │ │ │ │ │ -122 */ │ │ │ │ │ -123template │ │ │ │ │ -124inline unsigned int │ │ │ │ │ -125stdc_trailing_zeros(_Tp __value) │ │ │ │ │ -126{ │ │ │ │ │ -127 static_assert(std::__unsigned_integer<_Tp>); │ │ │ │ │ -128 return std::countr_zero(__value); │ │ │ │ │ -129} │ │ │ │ │ -130 │ │ │ │ │ -131inline unsigned int │ │ │ │ │ -132stdc_trailing_zeros_uc(unsigned char __value) │ │ │ │ │ -133{ return stdc_trailing_zeros(__value); } │ │ │ │ │ -134 │ │ │ │ │ -135inline unsigned int │ │ │ │ │ -136stdc_trailing_zeros_us(unsigned short __value) │ │ │ │ │ -137{ return stdc_trailing_zeros(__value); } │ │ │ │ │ -138 │ │ │ │ │ -139inline unsigned int │ │ │ │ │ -140stdc_trailing_zeros_ui(unsigned int __value) │ │ │ │ │ -141{ return stdc_trailing_zeros(__value); } │ │ │ │ │ -142 │ │ │ │ │ -143inline unsigned int │ │ │ │ │ -144stdc_trailing_zeros_ul(unsigned long int __value) │ │ │ │ │ -145{ return stdc_trailing_zeros(__value); } │ │ │ │ │ -146 │ │ │ │ │ -147inline unsigned int │ │ │ │ │ -148stdc_trailing_zeros_ull(unsigned long long int __value) │ │ │ │ │ -149{ return stdc_trailing_zeros(__value); } │ │ │ │ │ -150/// @} │ │ │ │ │ -151 │ │ │ │ │ -152/** Count the number of trailing one bits │ │ │ │ │ -153 * │ │ │ │ │ -154 * @param __value An unsigned integer. │ │ │ │ │ -155 * @since C++26 │ │ │ │ │ -156 * @{ │ │ │ │ │ -157 */ │ │ │ │ │ -158template │ │ │ │ │ -159inline unsigned int │ │ │ │ │ -160stdc_trailing_ones(_Tp __value) │ │ │ │ │ -161{ │ │ │ │ │ -162 static_assert(std::__unsigned_integer<_Tp>); │ │ │ │ │ -163 return std::countr_one(__value); │ │ │ │ │ -164} │ │ │ │ │ -165 │ │ │ │ │ -166inline unsigned int │ │ │ │ │ -167stdc_trailing_ones_uc(unsigned char __value) │ │ │ │ │ -168{ return stdc_trailing_ones(__value); } │ │ │ │ │ -169 │ │ │ │ │ -170inline unsigned int │ │ │ │ │ -171stdc_trailing_ones_us(unsigned short __value) │ │ │ │ │ -172{ return stdc_trailing_ones(__value); } │ │ │ │ │ -173 │ │ │ │ │ -174inline unsigned int │ │ │ │ │ -175stdc_trailing_ones_ui(unsigned int __value) │ │ │ │ │ -176{ return stdc_trailing_ones(__value); } │ │ │ │ │ -177 │ │ │ │ │ -178inline unsigned int │ │ │ │ │ -179stdc_trailing_ones_ul(unsigned long int __value) │ │ │ │ │ -180{ return stdc_trailing_ones(__value); } │ │ │ │ │ -181 │ │ │ │ │ -182inline unsigned int │ │ │ │ │ -183stdc_trailing_ones_ull(unsigned long long int __value) │ │ │ │ │ -184{ return stdc_trailing_ones(__value); } │ │ │ │ │ -185/// @} │ │ │ │ │ -186 │ │ │ │ │ -187/** Find the leftmost (i.e. most significant) zero bit │ │ │ │ │ -188 * │ │ │ │ │ -189 * @param __value An unsigned integer. │ │ │ │ │ -190 * @return The one-based index of the first zero bit counting from the left, │ │ │ │ │ -191 * or zero if there are no zero bits. │ │ │ │ │ -192 * @since C++26 │ │ │ │ │ -193 * @{ │ │ │ │ │ -194 */ │ │ │ │ │ -195template │ │ │ │ │ -196inline unsigned int │ │ │ │ │ -197stdc_first_leading_zero(_Tp __value) │ │ │ │ │ -198{ │ │ │ │ │ -199 static_assert(std::__unsigned_integer<_Tp>); │ │ │ │ │ -200 return __value == _Tp(-1) ? 0 : 1 + std::countl_one(__value); │ │ │ │ │ -201} │ │ │ │ │ -202 │ │ │ │ │ -203inline unsigned int │ │ │ │ │ -204stdc_first_leading_zero_uc(unsigned char __value) │ │ │ │ │ -205{ return stdc_first_leading_zero(__value); } │ │ │ │ │ -206 │ │ │ │ │ -207inline unsigned int │ │ │ │ │ -208stdc_first_leading_zero_us(unsigned short __value) │ │ │ │ │ -209{ return stdc_first_leading_zero(__value); } │ │ │ │ │ -210 │ │ │ │ │ -211inline unsigned int │ │ │ │ │ -212stdc_first_leading_zero_ui(unsigned int __value) │ │ │ │ │ -213{ return stdc_first_leading_zero(__value); } │ │ │ │ │ -214 │ │ │ │ │ -215inline unsigned int │ │ │ │ │ -216stdc_first_leading_zero_ul(unsigned long int __value) │ │ │ │ │ -217{ return stdc_first_leading_zero(__value); } │ │ │ │ │ -218 │ │ │ │ │ -219inline unsigned int │ │ │ │ │ -220stdc_first_leading_zero_ull(unsigned long long int __value) │ │ │ │ │ -221{ return stdc_first_leading_zero(__value); } │ │ │ │ │ -222/// @} │ │ │ │ │ -223 │ │ │ │ │ -224/** Find the leftmost (i.e. most significant) one bit │ │ │ │ │ -225 * │ │ │ │ │ -226 * @param __value An unsigned integer. │ │ │ │ │ -227 * @return The one-based index of the first one bit counting from the left, │ │ │ │ │ -228 * or zero if there are no one bits. │ │ │ │ │ -229 * @since C++26 │ │ │ │ │ -230 * @{ │ │ │ │ │ -231 */ │ │ │ │ │ -232template │ │ │ │ │ -233inline unsigned int │ │ │ │ │ -234stdc_first_leading_one(_Tp __value) │ │ │ │ │ -235{ │ │ │ │ │ -236 static_assert(std::__unsigned_integer<_Tp>); │ │ │ │ │ -237 return __value == 0 ? 0 : 1 + std::countl_zero(__value); │ │ │ │ │ -238} │ │ │ │ │ -239 │ │ │ │ │ -240inline unsigned int │ │ │ │ │ -241stdc_first_leading_one_uc(unsigned char __value) │ │ │ │ │ -242{ return stdc_first_leading_one(__value); } │ │ │ │ │ -243 │ │ │ │ │ -244inline unsigned int │ │ │ │ │ -245stdc_first_leading_one_us(unsigned short __value) │ │ │ │ │ -246{ return stdc_first_leading_one(__value); } │ │ │ │ │ -247 │ │ │ │ │ -248inline unsigned int │ │ │ │ │ -249stdc_first_leading_one_ui(unsigned int __value) │ │ │ │ │ -250{ return stdc_first_leading_one(__value); } │ │ │ │ │ -251 │ │ │ │ │ -252inline unsigned int │ │ │ │ │ -253stdc_first_leading_one_ul(unsigned long int __value) │ │ │ │ │ -254{ return stdc_first_leading_one(__value); } │ │ │ │ │ -255 │ │ │ │ │ -256inline unsigned int │ │ │ │ │ -257stdc_first_leading_one_ull(unsigned long long int __value) │ │ │ │ │ -258{ return stdc_first_leading_one(__value); } │ │ │ │ │ -259/// @} │ │ │ │ │ -260 │ │ │ │ │ -261/** Find the rightmost (i.e. least significant) zero bit │ │ │ │ │ -262 * │ │ │ │ │ -263 * @param __value An unsigned integer. │ │ │ │ │ -264 * @return The one-based index of the first zero bit counting from the │ │ │ │ │ -right, │ │ │ │ │ -265 * or zero if there are no zero bits. │ │ │ │ │ -266 * @since C++26 │ │ │ │ │ -267 * @{ │ │ │ │ │ -268 */ │ │ │ │ │ -269template │ │ │ │ │ -270inline unsigned int │ │ │ │ │ -271stdc_first_trailing_zero(_Tp __value) │ │ │ │ │ -272{ │ │ │ │ │ -273 static_assert(std::__unsigned_integer<_Tp>); │ │ │ │ │ -274 return __value == _Tp(-1) ? 0 : 1 + std::countr_one(__value); │ │ │ │ │ -275} │ │ │ │ │ -276 │ │ │ │ │ -277inline unsigned int │ │ │ │ │ -278stdc_first_trailing_zero_uc(unsigned char __value) │ │ │ │ │ -279{ return stdc_first_trailing_zero(__value); } │ │ │ │ │ -280 │ │ │ │ │ -281inline unsigned int │ │ │ │ │ -282stdc_first_trailing_zero_us(unsigned short __value) │ │ │ │ │ -283{ return stdc_first_trailing_zero(__value); } │ │ │ │ │ -284 │ │ │ │ │ -285inline unsigned int │ │ │ │ │ -286stdc_first_trailing_zero_ui(unsigned int __value) │ │ │ │ │ -287{ return stdc_first_trailing_zero(__value); } │ │ │ │ │ -288 │ │ │ │ │ -289inline unsigned int │ │ │ │ │ -290stdc_first_trailing_zero_ul(unsigned long int __value) │ │ │ │ │ -291{ return stdc_first_trailing_zero(__value); } │ │ │ │ │ -292 │ │ │ │ │ -293inline unsigned int │ │ │ │ │ -294stdc_first_trailing_zero_ull(unsigned long long int __value) │ │ │ │ │ -295{ return stdc_first_trailing_zero(__value); } │ │ │ │ │ -296/// @} │ │ │ │ │ -297 │ │ │ │ │ -298/** Find the rightmost (i.e. least significant) one bit │ │ │ │ │ -299 * │ │ │ │ │ -300 * @param __value An unsigned integer. │ │ │ │ │ -301 * @return The one-based index of the first one bit counting from the right, │ │ │ │ │ -302 * or zero if there are no one bits. │ │ │ │ │ -303 * @since C++26 │ │ │ │ │ -304 * @{ │ │ │ │ │ -305 */ │ │ │ │ │ -306template │ │ │ │ │ -307inline unsigned int │ │ │ │ │ -308stdc_first_trailing_one(_Tp __value) │ │ │ │ │ -309{ │ │ │ │ │ -310 static_assert(std::__unsigned_integer<_Tp>); │ │ │ │ │ -311 return __value == 0 ? 0 : 1 + std::countr_zero(__value); │ │ │ │ │ -312} │ │ │ │ │ -313 │ │ │ │ │ -314inline unsigned int │ │ │ │ │ -315stdc_first_trailing_one_uc(unsigned char __value) │ │ │ │ │ -316{ return stdc_first_trailing_one(__value); } │ │ │ │ │ -317 │ │ │ │ │ -318inline unsigned int │ │ │ │ │ -319stdc_first_trailing_one_us(unsigned short __value) │ │ │ │ │ -320{ return stdc_first_trailing_one(__value); } │ │ │ │ │ -321 │ │ │ │ │ -322inline unsigned int │ │ │ │ │ -323stdc_first_trailing_one_ui(unsigned int __value) │ │ │ │ │ -324{ return stdc_first_trailing_one(__value); } │ │ │ │ │ -325 │ │ │ │ │ -326inline unsigned int │ │ │ │ │ -327stdc_first_trailing_one_ul(unsigned long int __value) │ │ │ │ │ -328{ return stdc_first_trailing_one(__value); } │ │ │ │ │ -329 │ │ │ │ │ -330inline unsigned int │ │ │ │ │ -331stdc_first_trailing_one_ull(unsigned long long int __value) │ │ │ │ │ -332{ return stdc_first_trailing_one(__value); } │ │ │ │ │ -333/// @} │ │ │ │ │ -334 │ │ │ │ │ -335/** Count zeros │ │ │ │ │ -336 * │ │ │ │ │ -337 * @param __value An unsigned integer. │ │ │ │ │ -338 * @return The total number of zero bits in `__value`. │ │ │ │ │ -339 * @since C++26 │ │ │ │ │ -340 * @{ │ │ │ │ │ -341 */ │ │ │ │ │ -342template │ │ │ │ │ -343inline unsigned int │ │ │ │ │ -344stdc_count_zeros(_Tp __value) │ │ │ │ │ -345{ │ │ │ │ │ -346 static_assert(std::__unsigned_integer<_Tp>); │ │ │ │ │ -347 return std::popcount(_Tp(~__value)); │ │ │ │ │ -348} │ │ │ │ │ -349 │ │ │ │ │ -350inline unsigned int │ │ │ │ │ -351stdc_count_zeros_uc(unsigned char __value) │ │ │ │ │ -352{ return stdc_count_zeros(__value); } │ │ │ │ │ -353 │ │ │ │ │ -354inline unsigned int │ │ │ │ │ -355stdc_count_zeros_us(unsigned short __value) │ │ │ │ │ -356{ return stdc_count_zeros(__value); } │ │ │ │ │ -357 │ │ │ │ │ -358inline unsigned int │ │ │ │ │ -359stdc_count_zeros_ui(unsigned int __value) │ │ │ │ │ -360{ return stdc_count_zeros(__value); } │ │ │ │ │ -361 │ │ │ │ │ -362inline unsigned int │ │ │ │ │ -363stdc_count_zeros_ul(unsigned long int __value) │ │ │ │ │ -364{ return stdc_count_zeros(__value); } │ │ │ │ │ -365 │ │ │ │ │ -366inline unsigned int │ │ │ │ │ -367stdc_count_zeros_ull(unsigned long long int __value) │ │ │ │ │ -368{ return stdc_count_zeros(__value); } │ │ │ │ │ -369/// @} │ │ │ │ │ -370 │ │ │ │ │ -371/** Count ones │ │ │ │ │ -372 * │ │ │ │ │ -373 * @param __value An unsigned integer. │ │ │ │ │ -374 * @return The total number of one bits in `__value`. │ │ │ │ │ -375 * @since C++26 │ │ │ │ │ -376 * @{ │ │ │ │ │ -377 */ │ │ │ │ │ -378template │ │ │ │ │ -379inline unsigned int │ │ │ │ │ -380stdc_count_ones(_Tp __value) │ │ │ │ │ -381{ │ │ │ │ │ -382 static_assert(std::__unsigned_integer<_Tp>); │ │ │ │ │ -383 return std::popcount(__value); │ │ │ │ │ -384} │ │ │ │ │ -385 │ │ │ │ │ -386inline unsigned int │ │ │ │ │ -387stdc_count_ones_uc(unsigned char __value) │ │ │ │ │ -388{ return stdc_count_ones(__value); } │ │ │ │ │ -389 │ │ │ │ │ -390inline unsigned int │ │ │ │ │ -391stdc_count_ones_us(unsigned short __value) │ │ │ │ │ -392{ return stdc_count_ones(__value); } │ │ │ │ │ -393 │ │ │ │ │ -394inline unsigned int │ │ │ │ │ -395stdc_count_ones_ui(unsigned int __value) │ │ │ │ │ -396{ return stdc_count_ones(__value); } │ │ │ │ │ -397 │ │ │ │ │ -398inline unsigned int │ │ │ │ │ -399stdc_count_ones_ul(unsigned long int __value) │ │ │ │ │ -400{ return stdc_count_ones(__value); } │ │ │ │ │ -401 │ │ │ │ │ -402inline unsigned int │ │ │ │ │ -403stdc_count_ones_ull(unsigned long long int __value) │ │ │ │ │ -404{ return stdc_count_ones(__value); } │ │ │ │ │ -405/// @} │ │ │ │ │ -406 │ │ │ │ │ -407/** Power of two check │ │ │ │ │ -408 * │ │ │ │ │ -409 * @param __value An unsigned integer. │ │ │ │ │ -410 * @return True if the value has a single bit set, false otherwise. │ │ │ │ │ -411 * @since C++26 │ │ │ │ │ -412 * @{ │ │ │ │ │ -413 */ │ │ │ │ │ -414template │ │ │ │ │ -415inline bool │ │ │ │ │ -416stdc_has_single_bit(_Tp __value) │ │ │ │ │ -417{ │ │ │ │ │ -418 static_assert(std::__unsigned_integer<_Tp>); │ │ │ │ │ -419 return std::has_single_bit(__value); │ │ │ │ │ -420} │ │ │ │ │ -421 │ │ │ │ │ -422inline bool │ │ │ │ │ -423stdc_has_single_bit_uc(unsigned char __value) │ │ │ │ │ -424{ return stdc_has_single_bit(__value); } │ │ │ │ │ -425 │ │ │ │ │ -426inline bool │ │ │ │ │ -427stdc_has_single_bit_us(unsigned short __value) │ │ │ │ │ -428{ return stdc_has_single_bit(__value); } │ │ │ │ │ -429 │ │ │ │ │ -430inline bool │ │ │ │ │ -431stdc_has_single_bit_ui(unsigned int __value) │ │ │ │ │ -432{ return stdc_has_single_bit(__value); } │ │ │ │ │ -433 │ │ │ │ │ -434inline bool │ │ │ │ │ -435stdc_has_single_bit_ul(unsigned long int __value) │ │ │ │ │ -436{ return stdc_has_single_bit(__value); } │ │ │ │ │ -437 │ │ │ │ │ -438inline bool │ │ │ │ │ -439stdc_has_single_bit_ull(unsigned long long int __value) │ │ │ │ │ -440{ return stdc_has_single_bit(__value); } │ │ │ │ │ -441/// @} │ │ │ │ │ -442 │ │ │ │ │ -443/** Bit width │ │ │ │ │ -444 * │ │ │ │ │ -445 * @param __value An unsigned integer. │ │ │ │ │ -446 * @return The minimum number of bits needed to represent `__value`. │ │ │ │ │ -447 * @since C++26 │ │ │ │ │ -448 * @{ │ │ │ │ │ -449 */ │ │ │ │ │ -450template │ │ │ │ │ -451inline unsigned int │ │ │ │ │ -452stdc_bit_width(_Tp __value) │ │ │ │ │ -453{ │ │ │ │ │ -454 static_assert(std::__unsigned_integer<_Tp>); │ │ │ │ │ -455 return std::bit_width(__value); │ │ │ │ │ -456} │ │ │ │ │ -457 │ │ │ │ │ -458inline unsigned int │ │ │ │ │ -459stdc_bit_width_uc(unsigned char __value) │ │ │ │ │ -460{ return stdc_bit_width(__value); } │ │ │ │ │ -461 │ │ │ │ │ -462inline unsigned int │ │ │ │ │ -463stdc_bit_width_us(unsigned short __value) │ │ │ │ │ -464{ return stdc_bit_width(__value); } │ │ │ │ │ -465 │ │ │ │ │ -466inline unsigned int │ │ │ │ │ -467stdc_bit_width_ui(unsigned int __value) │ │ │ │ │ -468{ return stdc_bit_width(__value); } │ │ │ │ │ -469 │ │ │ │ │ -470inline unsigned int │ │ │ │ │ -471stdc_bit_width_ul(unsigned long int __value) │ │ │ │ │ -472{ return stdc_bit_width(__value); } │ │ │ │ │ -473 │ │ │ │ │ -474inline unsigned int │ │ │ │ │ -475stdc_bit_width_ull(unsigned long long int __value) │ │ │ │ │ -476{ return stdc_bit_width(__value); } │ │ │ │ │ -477/// @} │ │ │ │ │ -478 │ │ │ │ │ -479/** Bit floor │ │ │ │ │ -480 * │ │ │ │ │ -481 * @param __value An unsigned integer. │ │ │ │ │ -482 * @return The largest power of two that is not greater than `__value`. │ │ │ │ │ -483 * @since C++26 │ │ │ │ │ -484 * @{ │ │ │ │ │ -485 */ │ │ │ │ │ -486template │ │ │ │ │ -487inline _Tp │ │ │ │ │ -488stdc_bit_floor(_Tp __value) │ │ │ │ │ -489{ │ │ │ │ │ -490 static_assert(std::__unsigned_integer<_Tp>); │ │ │ │ │ -491 return std::bit_floor(__value); │ │ │ │ │ -492} │ │ │ │ │ -493 │ │ │ │ │ -494inline unsigned char │ │ │ │ │ -495stdc_bit_floor_uc(unsigned char __value) │ │ │ │ │ -496{ return stdc_bit_floor(__value); } │ │ │ │ │ -497 │ │ │ │ │ -498inline unsigned short │ │ │ │ │ -499stdc_bit_floor_us(unsigned short __value) │ │ │ │ │ -500{ return stdc_bit_floor(__value); } │ │ │ │ │ -501 │ │ │ │ │ -502inline unsigned int │ │ │ │ │ -503stdc_bit_floor_ui(unsigned int __value) │ │ │ │ │ -504{ return stdc_bit_floor(__value); } │ │ │ │ │ -505 │ │ │ │ │ -506inline unsigned long int │ │ │ │ │ -507stdc_bit_floor_ul(unsigned long int __value) │ │ │ │ │ -508{ return stdc_bit_floor(__value); } │ │ │ │ │ -509 │ │ │ │ │ -510inline unsigned long long int │ │ │ │ │ -511stdc_bit_floor_ull(unsigned long long int __value) │ │ │ │ │ -512{ return stdc_bit_floor(__value); } │ │ │ │ │ -513/// @} │ │ │ │ │ -514 │ │ │ │ │ -515/** Bit ceiling │ │ │ │ │ -516 * │ │ │ │ │ -517 * Unlike `std::bit_ceil`, this is defined to return zero for values which │ │ │ │ │ -518 * are not representable in the return type. │ │ │ │ │ -519 * │ │ │ │ │ -520 * @param __value An unsigned integer. │ │ │ │ │ -521 * @return The smallest power of two that is not less than `__value`. │ │ │ │ │ -522 * @since C++26 │ │ │ │ │ -523 * @{ │ │ │ │ │ -524 */ │ │ │ │ │ -525template │ │ │ │ │ -526inline _Tp │ │ │ │ │ -527stdc_bit_ceil(_Tp __value) │ │ │ │ │ -528{ │ │ │ │ │ -529 static_assert(std::__unsigned_integer<_Tp>); │ │ │ │ │ -530 constexpr _Tp __msb = _Tp(1) << (_____g_n_u___c_x_x_:_:_____i_n_t___t_r_a_i_t_s_<___T_p_>_:_:_____d_i_g_i_t_s - │ │ │ │ │ -1); │ │ │ │ │ -531 return (__value & __msb) ? 0 : std::bit_ceil(__value); │ │ │ │ │ -532} │ │ │ │ │ -533 │ │ │ │ │ -534inline unsigned char │ │ │ │ │ -535stdc_bit_ceil_uc(unsigned char __value) │ │ │ │ │ -536{ return stdc_bit_ceil(__value); } │ │ │ │ │ -537 │ │ │ │ │ -538inline unsigned short │ │ │ │ │ -539stdc_bit_ceil_us(unsigned short __value) │ │ │ │ │ -540{ return stdc_bit_ceil(__value); } │ │ │ │ │ -541 │ │ │ │ │ -542inline unsigned int │ │ │ │ │ -543stdc_bit_ceil_ui(unsigned int __value) │ │ │ │ │ -544{ return stdc_bit_ceil(__value); } │ │ │ │ │ -545 │ │ │ │ │ -546inline unsigned long int │ │ │ │ │ -547stdc_bit_ceil_ul(unsigned long int __value) │ │ │ │ │ -548{ return stdc_bit_ceil(__value); } │ │ │ │ │ -549 │ │ │ │ │ -550inline unsigned long long int │ │ │ │ │ -551stdc_bit_ceil_ull(unsigned long long int __value) │ │ │ │ │ -552{ return stdc_bit_ceil(__value); } │ │ │ │ │ -553/// @} │ │ │ │ │ -554 │ │ │ │ │ -555#ifndef _GLIBCXX_DOXYGEN │ │ │ │ │ -556} // namespace __gnu_cxx │ │ │ │ │ -557#define _GLIBCXX_STDBIT_FUNC(F) \ │ │ │ │ │ -558 using __gnu_cxx::F ## _uc; \ │ │ │ │ │ -559 using __gnu_cxx::F ## _us; \ │ │ │ │ │ -560 using __gnu_cxx::F ## _ui; \ │ │ │ │ │ -561 using __gnu_cxx::F ## _ul; \ │ │ │ │ │ -562 using __gnu_cxx::F ## _ull; \ │ │ │ │ │ -563 using __gnu_cxx::F │ │ │ │ │ -564_GLIBCXX_STDBIT_FUNC(stdc_leading_zeros); │ │ │ │ │ -565_GLIBCXX_STDBIT_FUNC(stdc_leading_ones); │ │ │ │ │ -566_GLIBCXX_STDBIT_FUNC(stdc_trailing_zeros); │ │ │ │ │ -567_GLIBCXX_STDBIT_FUNC(stdc_trailing_ones); │ │ │ │ │ -568_GLIBCXX_STDBIT_FUNC(stdc_first_leading_zero); │ │ │ │ │ -569_GLIBCXX_STDBIT_FUNC(stdc_first_leading_one); │ │ │ │ │ -570_GLIBCXX_STDBIT_FUNC(stdc_first_trailing_zero); │ │ │ │ │ -571_GLIBCXX_STDBIT_FUNC(stdc_first_trailing_one); │ │ │ │ │ -572_GLIBCXX_STDBIT_FUNC(stdc_count_zeros); │ │ │ │ │ -573_GLIBCXX_STDBIT_FUNC(stdc_count_ones); │ │ │ │ │ -574_GLIBCXX_STDBIT_FUNC(stdc_has_single_bit); │ │ │ │ │ -575_GLIBCXX_STDBIT_FUNC(stdc_bit_width); │ │ │ │ │ -576_GLIBCXX_STDBIT_FUNC(stdc_bit_floor); │ │ │ │ │ -577_GLIBCXX_STDBIT_FUNC(stdc_bit_ceil); │ │ │ │ │ -578#undef _GLIBCXX_STDBIT_FUNC │ │ │ │ │ -579#endif // !DOXYGEN │ │ │ │ │ -580#endif // C++26 │ │ │ │ │ -581 │ │ │ │ │ -582#endif // _GLIBCXX_STDBIT_H │ │ │ │ │ -_b_i_t │ │ │ │ │ +33#include │ │ │ │ │ +34#include <_c_o_n_c_e_p_t_s> │ │ │ │ │ +35 │ │ │ │ │ +36#define __STDC_VERSION_STDCKDINT_H__ 202311L │ │ │ │ │ +37 │ │ │ │ │ +38#ifndef _GLIBCXX_DOXYGEN │ │ │ │ │ +39// We define these in our own namespace, but let Doxygen think otherwise. │ │ │ │ │ +40namespace _____g_n_u___c_x_x _GLIBCXX_VISIBILITY(default) │ │ │ │ │ +41{ │ │ │ │ │ +42#endif │ │ │ │ │ +43/// @cond undocumented │ │ │ │ │ +44namespace __detail │ │ │ │ │ +45{ │ │ │ │ │ +46 template │ │ │ │ │ +47 concept __cv_unqual_signed_or_unsigned_integer_type │ │ │ │ │ +48 = std::same_as<_Tp, std::remove_cv_t<_Tp>> │ │ │ │ │ +49 && std::__is_standard_integer<_Tp>::value; │ │ │ │ │ +50} │ │ │ │ │ +51/// @endcond │ │ │ │ │ +52 │ │ │ │ │ +53/** Checked integer arithmetic │ │ │ │ │ +54 * │ │ │ │ │ +55 * Performs arithmetic on `__a` and `__b` and stores the result in │ │ │ │ │ +`*__result`, │ │ │ │ │ +56 * with overflow detection. │ │ │ │ │ +57 * The arithmetic is performed in infinite signed precision, without │ │ │ │ │ +overflow, │ │ │ │ │ +58 * then converted to the result type, `_Tp1`. If the converted result is not │ │ │ │ │ +59 * equal to the infinite precision result, the stored result is wrapped to │ │ │ │ │ +the │ │ │ │ │ +60 * width of `_Tp1` and `true` is returned. Otherwise, the stored result is │ │ │ │ │ +61 * correct and `false` is returned. │ │ │ │ │ +62 * │ │ │ │ │ +63 * @param __result A pointer to a signed or unsigned integer type. │ │ │ │ │ +64 * @param __a A signed or unsigned integer type. │ │ │ │ │ +65 * @param __b A signed or unsigned integer type. │ │ │ │ │ +66 * @return True if overflow occurred, false otherwise. │ │ │ │ │ +67 * @since C++26 │ │ │ │ │ +68 * @{ │ │ │ │ │ +69 */ │ │ │ │ │ +70template │ │ │ │ │ +71 inline bool │ │ │ │ │ +72 ckd_add(_Tp1* __result, _Tp2 __a, _Tp3 __b) │ │ │ │ │ +73 { │ │ │ │ │ +74 using __gnu_cxx::__detail::__cv_unqual_signed_or_unsigned_integer_type; │ │ │ │ │ +75 static_assert(__cv_unqual_signed_or_unsigned_integer_type<_Tp1>); │ │ │ │ │ +76 static_assert(__cv_unqual_signed_or_unsigned_integer_type<_Tp2>); │ │ │ │ │ +77 static_assert(__cv_unqual_signed_or_unsigned_integer_type<_Tp3>); │ │ │ │ │ +78 return __builtin_add_overflow(__a, __b, __result); │ │ │ │ │ +79 } │ │ │ │ │ +80 │ │ │ │ │ +81template │ │ │ │ │ +82 inline bool │ │ │ │ │ +83 ckd_sub(_Tp1* __result, _Tp2 __a, _Tp3 __b) │ │ │ │ │ +84 { │ │ │ │ │ +85 using __gnu_cxx::__detail::__cv_unqual_signed_or_unsigned_integer_type; │ │ │ │ │ +86 static_assert(__cv_unqual_signed_or_unsigned_integer_type<_Tp1>); │ │ │ │ │ +87 static_assert(__cv_unqual_signed_or_unsigned_integer_type<_Tp2>); │ │ │ │ │ +88 static_assert(__cv_unqual_signed_or_unsigned_integer_type<_Tp3>); │ │ │ │ │ +89 return __builtin_sub_overflow(__a, __b, __result); │ │ │ │ │ +90 } │ │ │ │ │ +91 │ │ │ │ │ +92template │ │ │ │ │ +93 inline bool │ │ │ │ │ +94 ckd_mul(_Tp1* __result, _Tp2 __a, _Tp3 __b) │ │ │ │ │ +95 { │ │ │ │ │ +96 using __gnu_cxx::__detail::__cv_unqual_signed_or_unsigned_integer_type; │ │ │ │ │ +97 static_assert(__cv_unqual_signed_or_unsigned_integer_type<_Tp1>); │ │ │ │ │ +98 static_assert(__cv_unqual_signed_or_unsigned_integer_type<_Tp2>); │ │ │ │ │ +99 static_assert(__cv_unqual_signed_or_unsigned_integer_type<_Tp3>); │ │ │ │ │ +100 return __builtin_mul_overflow(__a, __b, __result); │ │ │ │ │ +101 } │ │ │ │ │ +102/// @} │ │ │ │ │ +103#ifndef _GLIBCXX_DOXYGEN │ │ │ │ │ +104} │ │ │ │ │ +105 │ │ │ │ │ +106using __gnu_cxx::ckd_add; │ │ │ │ │ +107using __gnu_cxx::ckd_sub; │ │ │ │ │ +108using __gnu_cxx::ckd_mul; │ │ │ │ │ +109#endif │ │ │ │ │ +110 │ │ │ │ │ +111#endif // C++26 │ │ │ │ │ +112 │ │ │ │ │ +113#endif // _GLIBCXX_STDCKDINT_H │ │ │ │ │ +_c_o_n_c_e_p_t_s │ │ │ │ │ _____g_n_u___c_x_x │ │ │ │ │ GNU extensions for public use. │ │ │ │ │ -_____g_n_u___c_x_x_:_:_____i_n_t___t_r_a_i_t_s │ │ │ │ │ -__numeric_traits_integer< _Tp > __int_traits │ │ │ │ │ -Convenience alias for __numeric_traits. │ │ │ │ │ -DDeeffiinniittiioonn _e_x_t_/_n_u_m_e_r_i_c___t_r_a_i_t_s_._h_:_1_4_0 │ │ │ │ │ - * _s_t_d_b_i_t_._h │ │ │ │ │ + * _s_t_d_c_k_d_i_n_t_._h │ │ │ │ │ * Generated by _[_d_o_x_y_g_e_n_]1.9.8 │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a00011.html │ │ │ │ @@ -1,15 +1,15 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ -libstdc++: stdlib.h File Reference │ │ │ │ +libstdc++: tgmath.h File Reference │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ @@ -45,27 +45,27 @@ │ │ │ │ │ │ │ │
│ │ │ │
│ │ │ │ -
stdlib.h File Reference
│ │ │ │ +
tgmath.h File Reference
│ │ │ │
│ │ │ │
│ │ │ │ │ │ │ │

Go to the source code of this file.

│ │ │ │

Detailed Description

│ │ │ │

This is a Standard C++ Library header.

│ │ │ │ │ │ │ │ -

Definition in file stdlib.h.

│ │ │ │ +

Definition in file tgmath.h.

│ │ │ │
│ │ │ │
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├── html2text {} │ │ │ │ │ @@ -1,8 +1,8 @@ │ │ │ │ │ libstdc++ │ │ │ │ │ -stdlib.h File Reference │ │ │ │ │ +tgmath.h File Reference │ │ │ │ │ _G_o_ _t_o_ _t_h_e_ _s_o_u_r_c_e_ _c_o_d_e_ _o_f_ _t_h_i_s_ _f_i_l_e_. │ │ │ │ │ ********** DDeettaaiilleedd DDeessccrriippttiioonn ********** │ │ │ │ │ This is a Standard C++ Library header. │ │ │ │ │ -Definition in file _s_t_d_l_i_b_._h. │ │ │ │ │ - * _s_t_d_l_i_b_._h │ │ │ │ │ +Definition in file _t_g_m_a_t_h_._h. │ │ │ │ │ + * _t_g_m_a_t_h_._h │ │ │ │ │ * Generated by _[_d_o_x_y_g_e_n_]1.9.8 │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a00011_source.html │ │ │ │ @@ -1,15 +1,15 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ -libstdc++: stdlib.h Source File │ │ │ │ +libstdc++: tgmath.h Source File │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ @@ -45,20 +45,20 @@ │ │ │ │ │ │ │ │
│ │ │ │
│ │ │ │ -
stdlib.h
│ │ │ │ +
tgmath.h
│ │ │ │
│ │ │ │
│ │ │ │ Go to the documentation of this file.
1// -*- C++ -*- compatibility header.
│ │ │ │
2
│ │ │ │ -
3// Copyright (C) 2002-2025 Free Software Foundation, Inc.
│ │ │ │ +
3// Copyright (C) 2007-2025 Free Software Foundation, Inc.
│ │ │ │
4//
│ │ │ │
5// This file is part of the GNU ISO C++ Library. This library is free
│ │ │ │
6// software; you can redistribute it and/or modify it under the
│ │ │ │
7// terms of the GNU General Public License as published by the
│ │ │ │
8// Free Software Foundation; either version 3, or (at your option)
│ │ │ │
9// any later version.
│ │ │ │
10
│ │ │ │ @@ -72,85 +72,40 @@ │ │ │ │
18// 3.1, as published by the Free Software Foundation.
│ │ │ │
19
│ │ │ │
20// You should have received a copy of the GNU General Public License and
│ │ │ │
21// a copy of the GCC Runtime Library Exception along with this program;
│ │ │ │
22// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
│ │ │ │
23// <http://www.gnu.org/licenses/>.
│ │ │ │
24
│ │ │ │ -
25/** @file stdlib.h
│ │ │ │ +
25/** @file tgmath.h
│ │ │ │
26 * This is a Standard C++ Library header.
│ │ │ │
27 */
│ │ │ │
28
│ │ │ │ -
29#if !defined __cplusplus || defined _GLIBCXX_INCLUDE_NEXT_C_HEADERS
│ │ │ │ -
30# include_next <stdlib.h>
│ │ │ │ -
31#else
│ │ │ │ -
32
│ │ │ │ -
33#ifndef _GLIBCXX_STDLIB_H
│ │ │ │ -
34#define _GLIBCXX_STDLIB_H 1
│ │ │ │ -
35
│ │ │ │ -
36# include <cstdlib>
│ │ │ │ -
37
│ │ │ │ -
38using std::abort;
│ │ │ │ -
39using std::atexit;
│ │ │ │ -
40using std::exit;
│ │ │ │ -
41#if __cplusplus >= 201103L
│ │ │ │ -
42# ifdef _GLIBCXX_HAVE_AT_QUICK_EXIT
│ │ │ │ -
43 using std::at_quick_exit;
│ │ │ │ -
44# endif
│ │ │ │ -
45# ifdef _GLIBCXX_HAVE_QUICK_EXIT
│ │ │ │ -
46 using std::quick_exit;
│ │ │ │ -
47# endif
│ │ │ │ -
48# if _GLIBCXX_USE_C99_STDLIB
│ │ │ │ -
49 using std::_Exit;
│ │ │ │ -
50# endif
│ │ │ │ -
51#endif
│ │ │ │ -
52
│ │ │ │ -
53#if _GLIBCXX_HOSTED
│ │ │ │ -
54using std::div_t;
│ │ │ │ -
55using std::ldiv_t;
│ │ │ │ -
56
│ │ │ │ -
57using std::abs;
│ │ │ │ -
58using std::atof;
│ │ │ │ -
59using std::atoi;
│ │ │ │ -
60using std::atol;
│ │ │ │ -
61using std::bsearch;
│ │ │ │ -
62using std::calloc;
│ │ │ │ -
63using std::div;
│ │ │ │ -
64using std::free;
│ │ │ │ -
65using std::getenv;
│ │ │ │ -
66using std::labs;
│ │ │ │ -
67using std::ldiv;
│ │ │ │ -
68using std::malloc;
│ │ │ │ -
69#ifdef _GLIBCXX_HAVE_MBSTATE_T
│ │ │ │ -
70using std::mblen;
│ │ │ │ -
71using std::mbstowcs;
│ │ │ │ -
72using std::mbtowc;
│ │ │ │ -
73#endif // _GLIBCXX_HAVE_MBSTATE_T
│ │ │ │ -
74using std::qsort;
│ │ │ │ -
75using std::rand;
│ │ │ │ -
76using std::realloc;
│ │ │ │ -
77using std::srand;
│ │ │ │ -
78using std::strtod;
│ │ │ │ -
79using std::strtol;
│ │ │ │ -
80using std::strtoul;
│ │ │ │ -
81using std::system;
│ │ │ │ -
82#ifdef _GLIBCXX_USE_WCHAR_T
│ │ │ │ -
83using std::wcstombs;
│ │ │ │ -
84using std::wctomb;
│ │ │ │ -
85#endif // _GLIBCXX_USE_WCHAR_T
│ │ │ │ -
86#endif
│ │ │ │ -
87
│ │ │ │ -
88#endif // _GLIBCXX_STDLIB_H
│ │ │ │ -
89#endif // __cplusplus
│ │ │ │ -
_Tp abs(const complex< _Tp > &)
Return magnitude of z.
Definition complex:968
│ │ │ │ - │ │ │ │ +
29#ifndef _GLIBCXX_TGMATH_H
│ │ │ │ +
30#define _GLIBCXX_TGMATH_H 1
│ │ │ │ +
31
│ │ │ │ +
32#include <bits/c++config.h>
│ │ │ │ +
33
│ │ │ │ +
34#if __cplusplus >= 201103L
│ │ │ │ +
35# include <cmath>
│ │ │ │ +
36extern "C++" {
│ │ │ │ +
37# include <complex>
│ │ │ │ +
38}
│ │ │ │ +
39#elif _GLIBCXX_HAVE_TGMATH_H
│ │ │ │ +
40# include_next <tgmath.h>
│ │ │ │ +
41#endif
│ │ │ │ +
42
│ │ │ │ +
43#endif
│ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │
│ │ │ │
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├── html2text {} │ │ │ │ │ @@ -1,13 +1,13 @@ │ │ │ │ │ libstdc++ │ │ │ │ │ -stdlib.h │ │ │ │ │ +tgmath.h │ │ │ │ │ _G_o_ _t_o_ _t_h_e_ _d_o_c_u_m_e_n_t_a_t_i_o_n_ _o_f_ _t_h_i_s_ _f_i_l_e_. │ │ │ │ │ 1// -*- C++ -*- compatibility header. │ │ │ │ │ 2 │ │ │ │ │ -3// Copyright (C) 2002-2025 Free Software Foundation, Inc. │ │ │ │ │ +3// Copyright (C) 2007-2025 Free Software Foundation, Inc. │ │ │ │ │ 4// │ │ │ │ │ 5// This file is part of the GNU ISO C++ Library. This library is free │ │ │ │ │ 6// software; you can redistribute it and/or modify it under the │ │ │ │ │ 7// terms of the GNU General Public License as published by the │ │ │ │ │ 8// Free Software Foundation; either version 3, or (at your option) │ │ │ │ │ 9// any later version. │ │ │ │ │ 10 │ │ │ │ │ @@ -21,79 +21,31 @@ │ │ │ │ │ 18// 3.1, as published by the Free Software Foundation. │ │ │ │ │ 19 │ │ │ │ │ 20// You should have received a copy of the GNU General Public License and │ │ │ │ │ 21// a copy of the GCC Runtime Library Exception along with this program; │ │ │ │ │ 22// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see │ │ │ │ │ 23// . │ │ │ │ │ 24 │ │ │ │ │ -25/** @file stdlib.h │ │ │ │ │ +25/** @file tgmath.h │ │ │ │ │ 26 * This is a Standard C++ Library header. │ │ │ │ │ 27 */ │ │ │ │ │ 28 │ │ │ │ │ -29#if !defined __cplusplus || defined _GLIBCXX_INCLUDE_NEXT_C_HEADERS │ │ │ │ │ -30# include_next │ │ │ │ │ -31#else │ │ │ │ │ -32 │ │ │ │ │ -33#ifndef _GLIBCXX_STDLIB_H │ │ │ │ │ -34#define _GLIBCXX_STDLIB_H 1 │ │ │ │ │ -35 │ │ │ │ │ -36# include <_c_s_t_d_l_i_b> │ │ │ │ │ -37 │ │ │ │ │ -38using std::abort; │ │ │ │ │ -39using std::atexit; │ │ │ │ │ -40using std::exit; │ │ │ │ │ -41#if __cplusplus >= 201103L │ │ │ │ │ -42# ifdef _GLIBCXX_HAVE_AT_QUICK_EXIT │ │ │ │ │ -43 using std::at_quick_exit; │ │ │ │ │ -44# endif │ │ │ │ │ -45# ifdef _GLIBCXX_HAVE_QUICK_EXIT │ │ │ │ │ -46 using std::quick_exit; │ │ │ │ │ -47# endif │ │ │ │ │ -48# if _GLIBCXX_USE_C99_STDLIB │ │ │ │ │ -49 using std::_Exit; │ │ │ │ │ -50# endif │ │ │ │ │ -51#endif │ │ │ │ │ -52 │ │ │ │ │ -53#if _GLIBCXX_HOSTED │ │ │ │ │ -54using std::div_t; │ │ │ │ │ -55using std::ldiv_t; │ │ │ │ │ -56 │ │ │ │ │ -57using _s_t_d_:_:_a_b_s; │ │ │ │ │ -58using std::atof; │ │ │ │ │ -59using std::atoi; │ │ │ │ │ -60using std::atol; │ │ │ │ │ -61using std::bsearch; │ │ │ │ │ -62using std::calloc; │ │ │ │ │ -63using std::div; │ │ │ │ │ -64using std::free; │ │ │ │ │ -65using std::getenv; │ │ │ │ │ -66using std::labs; │ │ │ │ │ -67using std::ldiv; │ │ │ │ │ -68using std::malloc; │ │ │ │ │ -69#ifdef _GLIBCXX_HAVE_MBSTATE_T │ │ │ │ │ -70using std::mblen; │ │ │ │ │ -71using std::mbstowcs; │ │ │ │ │ -72using std::mbtowc; │ │ │ │ │ -73#endif // _GLIBCXX_HAVE_MBSTATE_T │ │ │ │ │ -74using std::qsort; │ │ │ │ │ -75using std::rand; │ │ │ │ │ -76using std::realloc; │ │ │ │ │ -77using std::srand; │ │ │ │ │ -78using std::strtod; │ │ │ │ │ -79using std::strtol; │ │ │ │ │ -80using std::strtoul; │ │ │ │ │ -81using std::system; │ │ │ │ │ -82#ifdef _GLIBCXX_USE_WCHAR_T │ │ │ │ │ -83using std::wcstombs; │ │ │ │ │ -84using std::wctomb; │ │ │ │ │ -85#endif // _GLIBCXX_USE_WCHAR_T │ │ │ │ │ -86#endif │ │ │ │ │ -87 │ │ │ │ │ -88#endif // _GLIBCXX_STDLIB_H │ │ │ │ │ -89#endif // __cplusplus │ │ │ │ │ -_s_t_d_:_:_a_b_s │ │ │ │ │ -_Tp abs(const complex< _Tp > &) │ │ │ │ │ -Return magnitude of z. │ │ │ │ │ -DDeeffiinniittiioonn _c_o_m_p_l_e_x_:_9_6_8 │ │ │ │ │ -_c_s_t_d_l_i_b │ │ │ │ │ - * _s_t_d_l_i_b_._h │ │ │ │ │ +29#ifndef _GLIBCXX_TGMATH_H │ │ │ │ │ +30#define _GLIBCXX_TGMATH_H 1 │ │ │ │ │ +31 │ │ │ │ │ +32#include <_b_i_t_s_/_c_+_+_c_o_n_f_i_g_._h> │ │ │ │ │ +33 │ │ │ │ │ +34#if __cplusplus >= 201103L │ │ │ │ │ +35# include <_c_m_a_t_h> │ │ │ │ │ +36extern "C++" { │ │ │ │ │ +37# include <_c_o_m_p_l_e_x> │ │ │ │ │ +38} │ │ │ │ │ +39#elif _GLIBCXX_HAVE_TGMATH_H │ │ │ │ │ +40# include_next │ │ │ │ │ +41#endif │ │ │ │ │ +42 │ │ │ │ │ +43#endif │ │ │ │ │ +_c_+_+_c_o_n_f_i_g_._h │ │ │ │ │ +_c_m_a_t_h │ │ │ │ │ +_c_o_m_p_l_e_x │ │ │ │ │ + * _t_g_m_a_t_h_._h │ │ │ │ │ * Generated by _[_d_o_x_y_g_e_n_]1.9.8 │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a00014.html │ │ │ │ @@ -1,15 +1,15 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ -libstdc++: math.h File Reference │ │ │ │ +libstdc++: stdbit.h File Reference │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ @@ -45,27 +45,27 @@ │ │ │ │ │ │ │ │
│ │ │ │
│ │ │ │ -
math.h File Reference
│ │ │ │ +
stdbit.h File Reference
│ │ │ │
│ │ │ │
│ │ │ │ │ │ │ │

Go to the source code of this file.

│ │ │ │

Detailed Description

│ │ │ │

This is a Standard C++ Library header.

│ │ │ │ │ │ │ │ -

Definition in file math.h.

│ │ │ │ +

Definition in file stdbit.h.

│ │ │ │
│ │ │ │
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├── html2text {} │ │ │ │ │ @@ -1,8 +1,8 @@ │ │ │ │ │ libstdc++ │ │ │ │ │ -math.h File Reference │ │ │ │ │ +stdbit.h File Reference │ │ │ │ │ _G_o_ _t_o_ _t_h_e_ _s_o_u_r_c_e_ _c_o_d_e_ _o_f_ _t_h_i_s_ _f_i_l_e_. │ │ │ │ │ ********** DDeettaaiilleedd DDeessccrriippttiioonn ********** │ │ │ │ │ This is a Standard C++ Library header. │ │ │ │ │ -Definition in file _m_a_t_h_._h. │ │ │ │ │ - * _m_a_t_h_._h │ │ │ │ │ +Definition in file _s_t_d_b_i_t_._h. │ │ │ │ │ + * _s_t_d_b_i_t_._h │ │ │ │ │ * Generated by _[_d_o_x_y_g_e_n_]1.9.8 │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a00014_source.html │ │ │ │ @@ -1,15 +1,15 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ -libstdc++: math.h Source File │ │ │ │ +libstdc++: stdbit.h Source File │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ @@ -45,20 +45,20 @@ │ │ │ │ │ │ │ │
│ │ │ │
│ │ │ │ -
math.h
│ │ │ │ +
stdbit.h
│ │ │ │
│ │ │ │
│ │ │ │ -Go to the documentation of this file.
1// -*- C++ -*- compatibility header.
│ │ │ │ +Go to the documentation of this file.
1// C compatibility header <stdbit.h> -*- C++ -*-
│ │ │ │
2
│ │ │ │ -
3// Copyright (C) 2002-2025 Free Software Foundation, Inc.
│ │ │ │ +
3// Copyright The GNU Toolchain Authors.
│ │ │ │
4//
│ │ │ │
5// This file is part of the GNU ISO C++ Library. This library is free
│ │ │ │
6// software; you can redistribute it and/or modify it under the
│ │ │ │
7// terms of the GNU General Public License as published by the
│ │ │ │
8// Free Software Foundation; either version 3, or (at your option)
│ │ │ │
9// any later version.
│ │ │ │
10
│ │ │ │ @@ -72,257 +72,579 @@ │ │ │ │
18// 3.1, as published by the Free Software Foundation.
│ │ │ │
19
│ │ │ │
20// You should have received a copy of the GNU General Public License and
│ │ │ │
21// a copy of the GCC Runtime Library Exception along with this program;
│ │ │ │
22// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
│ │ │ │
23// <http://www.gnu.org/licenses/>.
│ │ │ │
24
│ │ │ │ -
25/** @file math.h
│ │ │ │ +
25/** @file include/stdbit.h
│ │ │ │
26 * This is a Standard C++ Library header.
│ │ │ │
27 */
│ │ │ │
28
│ │ │ │ -
29#if !defined __cplusplus || defined _GLIBCXX_INCLUDE_NEXT_C_HEADERS
│ │ │ │ -
30# include_next <math.h>
│ │ │ │ -
31#else
│ │ │ │ -
32
│ │ │ │ -
33#ifndef _GLIBCXX_MATH_H
│ │ │ │ -
34#define _GLIBCXX_MATH_H 1
│ │ │ │ -
35
│ │ │ │ -
36# include <cmath>
│ │ │ │ -
37
│ │ │ │ -
38using std::abs;
│ │ │ │ -
39using std::acos;
│ │ │ │ -
40using std::asin;
│ │ │ │ -
41using std::atan;
│ │ │ │ -
42using std::atan2;
│ │ │ │ -
43using std::cos;
│ │ │ │ -
44using std::sin;
│ │ │ │ -
45using std::tan;
│ │ │ │ -
46using std::cosh;
│ │ │ │ -
47using std::sinh;
│ │ │ │ -
48using std::tanh;
│ │ │ │ -
49using std::exp;
│ │ │ │ -
50using std::frexp;
│ │ │ │ -
51using std::ldexp;
│ │ │ │ -
52using std::log;
│ │ │ │ -
53using std::log10;
│ │ │ │ -
54using std::modf;
│ │ │ │ -
55using std::pow;
│ │ │ │ -
56using std::sqrt;
│ │ │ │ -
57using std::ceil;
│ │ │ │ -
58using std::fabs;
│ │ │ │ -
59using std::floor;
│ │ │ │ -
60using std::fmod;
│ │ │ │ -
61
│ │ │ │ -
62#if _GLIBCXX_USE_C99_MATH
│ │ │ │ -
63using std::fpclassify;
│ │ │ │ -
64using std::isfinite;
│ │ │ │ -
65using std::isinf;
│ │ │ │ -
66using std::isnan;
│ │ │ │ -
67using std::isnormal;
│ │ │ │ -
68using std::signbit;
│ │ │ │ -
69using std::isgreater;
│ │ │ │ -
70using std::isgreaterequal;
│ │ │ │ -
71using std::isless;
│ │ │ │ -
72using std::islessequal;
│ │ │ │ -
73using std::islessgreater;
│ │ │ │ -
74using std::isunordered;
│ │ │ │ -
75#endif
│ │ │ │ +
29#ifndef _GLIBCXX_STDBIT_H
│ │ │ │ +
30#define _GLIBCXX_STDBIT_H
│ │ │ │ +
31
│ │ │ │ +
32#if __cplusplus > 202302L
│ │ │ │ +
33#include <bit>
│ │ │ │ +
34
│ │ │ │ +
35#define __STDC_VERSION_STDBIT_H__ 202311L
│ │ │ │ +
36
│ │ │ │ +
37#define __STDC_ENDIAN_BIG__ __ORDER_BIG_ENDIAN__
│ │ │ │ +
38#define __STDC_ENDIAN_LITTLE__ __ORDER_LITTLE_ENDIAN__
│ │ │ │ +
39#define __STDC_ENDIAN_NATIVE__ __BYTE_ORDER__
│ │ │ │ +
40
│ │ │ │ +
41#ifndef _GLIBCXX_DOXYGEN
│ │ │ │ +
42// We define these in our own namespace, but let Doxygen think otherwise.
│ │ │ │ +
43namespace __gnu_cxx _GLIBCXX_VISIBILITY(default)
│ │ │ │ +
44{
│ │ │ │ +
45#endif
│ │ │ │ +
46
│ │ │ │ +
47/** Count the number of leading zero bits
│ │ │ │ +
48 *
│ │ │ │ +
49 * @param __value An unsigned integer.
│ │ │ │ +
50 * @since C++26
│ │ │ │ +
51 * @{
│ │ │ │ +
52 */
│ │ │ │ +
53template<typename _Tp>
│ │ │ │ +
54inline unsigned int
│ │ │ │ +
55stdc_leading_zeros(_Tp __value)
│ │ │ │ +
56{
│ │ │ │ +
57 static_assert(std::__unsigned_integer<_Tp>);
│ │ │ │ +
58 return std::countl_zero(__value);
│ │ │ │ +
59}
│ │ │ │ +
60
│ │ │ │ +
61inline unsigned int
│ │ │ │ +
62stdc_leading_zeros_uc(unsigned char __value)
│ │ │ │ +
63{ return stdc_leading_zeros(__value); }
│ │ │ │ +
64
│ │ │ │ +
65inline unsigned int
│ │ │ │ +
66stdc_leading_zeros_us(unsigned short __value)
│ │ │ │ +
67{ return stdc_leading_zeros(__value); }
│ │ │ │ +
68
│ │ │ │ +
69inline unsigned int
│ │ │ │ +
70stdc_leading_zeros_ui(unsigned int __value)
│ │ │ │ +
71{ return stdc_leading_zeros(__value); }
│ │ │ │ +
72
│ │ │ │ +
73inline unsigned int
│ │ │ │ +
74stdc_leading_zeros_ul(unsigned long int __value)
│ │ │ │ +
75{ return stdc_leading_zeros(__value); }
│ │ │ │
76
│ │ │ │ -
77#if __cplusplus >= 201103L && defined(_GLIBCXX_USE_C99_MATH_FUNCS)
│ │ │ │ -
78using std::acosh;
│ │ │ │ -
79using std::asinh;
│ │ │ │ -
80using std::atanh;
│ │ │ │ -
81using std::cbrt;
│ │ │ │ -
82using std::copysign;
│ │ │ │ -
83using std::erf;
│ │ │ │ -
84using std::erfc;
│ │ │ │ -
85using std::exp2;
│ │ │ │ -
86using std::expm1;
│ │ │ │ -
87using std::fdim;
│ │ │ │ -
88using std::fma;
│ │ │ │ -
89using std::fmax;
│ │ │ │ -
90using std::fmin;
│ │ │ │ -
91using std::hypot;
│ │ │ │ -
92using std::ilogb;
│ │ │ │ -
93using std::lgamma;
│ │ │ │ -
94using std::llrint;
│ │ │ │ -
95using std::llround;
│ │ │ │ -
96using std::log1p;
│ │ │ │ -
97using std::log2;
│ │ │ │ -
98using std::logb;
│ │ │ │ -
99using std::lrint;
│ │ │ │ -
100using std::lround;
│ │ │ │ -
101using std::nearbyint;
│ │ │ │ -
102using std::nextafter;
│ │ │ │ -
103using std::nexttoward;
│ │ │ │ -
104using std::remainder;
│ │ │ │ -
105using std::remquo;
│ │ │ │ -
106using std::rint;
│ │ │ │ -
107using std::round;
│ │ │ │ -
108using std::scalbln;
│ │ │ │ -
109using std::scalbn;
│ │ │ │ -
110using std::tgamma;
│ │ │ │ -
111using std::trunc;
│ │ │ │ -
112#endif // C++11 && _GLIBCXX_USE_C99_MATH_FUNCS
│ │ │ │ -
113
│ │ │ │ -
114// The mathematical special functions are only added to the global namespace
│ │ │ │ -
115// by IS 29124, but not by C++17.
│ │ │ │ -
116#if __cplusplus >= 201103L && __STDCPP_WANT_MATH_SPEC_FUNCS__ != 0
│ │ │ │ - │ │ │ │ - │ │ │ │ - │ │ │ │ - │ │ │ │ - │ │ │ │ - │ │ │ │ -
123using std::betaf;
│ │ │ │ -
124using std::betal;
│ │ │ │ -
125using std::beta;
│ │ │ │ - │ │ │ │ - │ │ │ │ - │ │ │ │ - │ │ │ │ - │ │ │ │ - │ │ │ │ - │ │ │ │ - │ │ │ │ - │ │ │ │ - │ │ │ │ - │ │ │ │ - │ │ │ │ - │ │ │ │ - │ │ │ │ - │ │ │ │ - │ │ │ │ - │ │ │ │ - │ │ │ │ - │ │ │ │ - │ │ │ │ -
146using std::cyl_neumann;
│ │ │ │ -
147using std::ellint_1f;
│ │ │ │ -
148using std::ellint_1l;
│ │ │ │ -
149using std::ellint_1;
│ │ │ │ -
150using std::ellint_2f;
│ │ │ │ -
151using std::ellint_2l;
│ │ │ │ -
152using std::ellint_2;
│ │ │ │ -
153using std::ellint_3f;
│ │ │ │ -
154using std::ellint_3l;
│ │ │ │ -
155using std::ellint_3;
│ │ │ │ -
156using std::expintf;
│ │ │ │ -
157using std::expintl;
│ │ │ │ -
158using std::expint;
│ │ │ │ -
159using std::hermitef;
│ │ │ │ -
160using std::hermitel;
│ │ │ │ -
161using std::hermite;
│ │ │ │ -
162using std::laguerref;
│ │ │ │ -
163using std::laguerrel;
│ │ │ │ -
164using std::laguerre;
│ │ │ │ -
165using std::legendref;
│ │ │ │ -
166using std::legendrel;
│ │ │ │ -
167using std::legendre;
│ │ │ │ - │ │ │ │ - │ │ │ │ - │ │ │ │ -
171using std::sph_besself;
│ │ │ │ -
172using std::sph_bessell;
│ │ │ │ -
173using std::sph_bessel;
│ │ │ │ - │ │ │ │ - │ │ │ │ - │ │ │ │ - │ │ │ │ - │ │ │ │ -
179using std::sph_neumann;
│ │ │ │ -
180#endif // _GLIBCXX_USE_STD_SPEC_FUNCS
│ │ │ │ +
77inline unsigned int
│ │ │ │ +
78stdc_leading_zeros_ull(unsigned long long int __value)
│ │ │ │ +
79{ return stdc_leading_zeros(__value); }
│ │ │ │ +
80/// @}
│ │ │ │ +
81
│ │ │ │ +
82/** Count the number of leading one bits
│ │ │ │ +
83 *
│ │ │ │ +
84 * @param __value An unsigned integer.
│ │ │ │ +
85 * @since C++26
│ │ │ │ +
86 * @{
│ │ │ │ +
87 */
│ │ │ │ +
88template<typename _Tp>
│ │ │ │ +
89inline unsigned int
│ │ │ │ +
90stdc_leading_ones(_Tp __value)
│ │ │ │ +
91{
│ │ │ │ +
92 static_assert(std::__unsigned_integer<_Tp>);
│ │ │ │ +
93 return std::countl_one(__value);
│ │ │ │ +
94}
│ │ │ │ +
95
│ │ │ │ +
96inline unsigned int
│ │ │ │ +
97stdc_leading_ones_uc(unsigned char __value)
│ │ │ │ +
98{ return stdc_leading_ones(__value); }
│ │ │ │ +
99
│ │ │ │ +
100inline unsigned int
│ │ │ │ +
101stdc_leading_ones_us(unsigned short __value)
│ │ │ │ +
102{ return stdc_leading_ones(__value); }
│ │ │ │ +
103
│ │ │ │ +
104inline unsigned int
│ │ │ │ +
105stdc_leading_ones_ui(unsigned int __value)
│ │ │ │ +
106{ return stdc_leading_ones(__value); }
│ │ │ │ +
107
│ │ │ │ +
108inline unsigned int
│ │ │ │ +
109stdc_leading_ones_ul(unsigned long int __value)
│ │ │ │ +
110{ return stdc_leading_ones(__value); }
│ │ │ │ +
111
│ │ │ │ +
112inline unsigned int
│ │ │ │ +
113stdc_leading_ones_ull(unsigned long long int __value)
│ │ │ │ +
114{ return stdc_leading_ones(__value); }
│ │ │ │ +
115/// @}
│ │ │ │ +
116
│ │ │ │ +
117/** Count the number of trailing zero bits
│ │ │ │ +
118 *
│ │ │ │ +
119 * @param __value An unsigned integer.
│ │ │ │ +
120 * @since C++26
│ │ │ │ +
121 * @{
│ │ │ │ +
122 */
│ │ │ │ +
123template<typename _Tp>
│ │ │ │ +
124inline unsigned int
│ │ │ │ +
125stdc_trailing_zeros(_Tp __value)
│ │ │ │ +
126{
│ │ │ │ +
127 static_assert(std::__unsigned_integer<_Tp>);
│ │ │ │ +
128 return std::countr_zero(__value);
│ │ │ │ +
129}
│ │ │ │ +
130
│ │ │ │ +
131inline unsigned int
│ │ │ │ +
132stdc_trailing_zeros_uc(unsigned char __value)
│ │ │ │ +
133{ return stdc_trailing_zeros(__value); }
│ │ │ │ +
134
│ │ │ │ +
135inline unsigned int
│ │ │ │ +
136stdc_trailing_zeros_us(unsigned short __value)
│ │ │ │ +
137{ return stdc_trailing_zeros(__value); }
│ │ │ │ +
138
│ │ │ │ +
139inline unsigned int
│ │ │ │ +
140stdc_trailing_zeros_ui(unsigned int __value)
│ │ │ │ +
141{ return stdc_trailing_zeros(__value); }
│ │ │ │ +
142
│ │ │ │ +
143inline unsigned int
│ │ │ │ +
144stdc_trailing_zeros_ul(unsigned long int __value)
│ │ │ │ +
145{ return stdc_trailing_zeros(__value); }
│ │ │ │ +
146
│ │ │ │ +
147inline unsigned int
│ │ │ │ +
148stdc_trailing_zeros_ull(unsigned long long int __value)
│ │ │ │ +
149{ return stdc_trailing_zeros(__value); }
│ │ │ │ +
150/// @}
│ │ │ │ +
151
│ │ │ │ +
152/** Count the number of trailing one bits
│ │ │ │ +
153 *
│ │ │ │ +
154 * @param __value An unsigned integer.
│ │ │ │ +
155 * @since C++26
│ │ │ │ +
156 * @{
│ │ │ │ +
157 */
│ │ │ │ +
158template<typename _Tp>
│ │ │ │ +
159inline unsigned int
│ │ │ │ +
160stdc_trailing_ones(_Tp __value)
│ │ │ │ +
161{
│ │ │ │ +
162 static_assert(std::__unsigned_integer<_Tp>);
│ │ │ │ +
163 return std::countr_one(__value);
│ │ │ │ +
164}
│ │ │ │ +
165
│ │ │ │ +
166inline unsigned int
│ │ │ │ +
167stdc_trailing_ones_uc(unsigned char __value)
│ │ │ │ +
168{ return stdc_trailing_ones(__value); }
│ │ │ │ +
169
│ │ │ │ +
170inline unsigned int
│ │ │ │ +
171stdc_trailing_ones_us(unsigned short __value)
│ │ │ │ +
172{ return stdc_trailing_ones(__value); }
│ │ │ │ +
173
│ │ │ │ +
174inline unsigned int
│ │ │ │ +
175stdc_trailing_ones_ui(unsigned int __value)
│ │ │ │ +
176{ return stdc_trailing_ones(__value); }
│ │ │ │ +
177
│ │ │ │ +
178inline unsigned int
│ │ │ │ +
179stdc_trailing_ones_ul(unsigned long int __value)
│ │ │ │ +
180{ return stdc_trailing_ones(__value); }
│ │ │ │
181
│ │ │ │ -
182#if __cplusplus > 201703L
│ │ │ │ -
183using std::lerp;
│ │ │ │ -
184#endif // C++20
│ │ │ │ -
185
│ │ │ │ -
186#endif // _GLIBCXX_MATH_H
│ │ │ │ -
187#endif // __cplusplus
│ │ │ │ -
complex< _Tp > log10(const complex< _Tp > &)
Return complex base 10 logarithm of z.
Definition complex:1167
│ │ │ │ -
complex< _Tp > sin(const complex< _Tp > &)
Return complex sine of z.
Definition complex:1197
│ │ │ │ -
complex< _Tp > log(const complex< _Tp > &)
Return complex natural logarithm of z.
Definition complex:1162
│ │ │ │ -
complex< _Tp > tan(const complex< _Tp > &)
Return complex tangent of z.
Definition complex:1298
│ │ │ │ -
_Tp abs(const complex< _Tp > &)
Return magnitude of z.
Definition complex:968
│ │ │ │ -
complex< _Tp > exp(const complex< _Tp > &)
Return complex base e exponential of z.
Definition complex:1135
│ │ │ │ -
complex< _Tp > cosh(const complex< _Tp > &)
Return complex hyperbolic cosine of z.
Definition complex:1109
│ │ │ │ -
complex< _Tp > tanh(const complex< _Tp > &)
Return complex hyperbolic tangent of z.
Definition complex:1326
│ │ │ │ -
complex< _Tp > pow(const complex< _Tp > &, int)
Return x to the y'th power.
Definition complex:1357
│ │ │ │ -
complex< _Tp > sinh(const complex< _Tp > &)
Return complex hyperbolic sine of z.
Definition complex:1227
│ │ │ │ -
complex< _Tp > cos(const complex< _Tp > &)
Return complex cosine of z.
Definition complex:1079
│ │ │ │ -
complex< _Tp > sqrt(const complex< _Tp > &)
Return complex square root of z.
Definition complex:1271
│ │ │ │ -
__gnu_cxx::__promote< _Tp >::__type sph_bessel(unsigned int __n, _Tp __x)
Definition specfun.h:1100
│ │ │ │ -
long double sph_bessell(unsigned int __n, long double __x)
Definition specfun.h:1081
│ │ │ │ -
float betaf(float __a, float __b)
Definition specfun.h:310
│ │ │ │ -
long double expintl(long double __x)
Definition specfun.h:852
│ │ │ │ -
float cyl_bessel_jf(float __nu, float __x)
Definition specfun.h:548
│ │ │ │ -
__gnu_cxx::__promote_2< _Tpnu, _Tp >::__type cyl_bessel_k(_Tpnu __nu, _Tp __x)
Definition specfun.h:631
│ │ │ │ -
float ellint_3f(float __k, float __nu, float __phi)
Return the incomplete elliptic integral of the third kind for float argument.
Definition specfun.h:790
│ │ │ │ -
long double legendrel(unsigned int __l, long double __x)
Definition specfun.h:985
│ │ │ │ -
long double comp_ellint_3l(long double __k, long double __nu)
Return the complete elliptic integral of the third kind for long double modulus k.
Definition specfun.h:461
│ │ │ │ -
long double riemann_zetal(long double __s)
Definition specfun.h:1030
│ │ │ │ -
float cyl_bessel_kf(float __nu, float __x)
Definition specfun.h:594
│ │ │ │ -
float comp_ellint_2f(float __k)
Definition specfun.h:404
│ │ │ │ -
long double hermitel(unsigned int __n, long double __x)
Definition specfun.h:893
│ │ │ │ -
__gnu_cxx::__promote_2< _Tp, _Tpp >::__type ellint_1(_Tp __k, _Tpp __phi)
Definition specfun.h:727
│ │ │ │ -
long double sph_legendrel(unsigned int __l, unsigned int __m, long double __theta)
Definition specfun.h:1126
│ │ │ │ -
float ellint_1f(float __k, float __phi)
Definition specfun.h:694
│ │ │ │ -
__gnu_cxx::__promote_2< _Tpnu, _Tp >::__type cyl_neumann(_Tpnu __nu, _Tp __x)
Definition specfun.h:679
│ │ │ │ -
float assoc_legendref(unsigned int __l, unsigned int __m, float __x)
Definition specfun.h:265
│ │ │ │ -
long double sph_neumannl(unsigned int __n, long double __x)
Definition specfun.h:1172
│ │ │ │ -
long double comp_ellint_2l(long double __k)
Definition specfun.h:414
│ │ │ │ -
__gnu_cxx::__promote< _Tp >::__type comp_ellint_2(_Tp __k)
Definition specfun.h:436
│ │ │ │ -
float sph_besself(unsigned int __n, float __x)
Definition specfun.h:1071
│ │ │ │ -
long double assoc_legendrel(unsigned int __l, unsigned int __m, long double __x)
Definition specfun.h:274
│ │ │ │ -
__gnu_cxx::__promote< _Tp >::__type legendre(unsigned int __l, _Tp __x)
Definition specfun.h:1005
│ │ │ │ -
float expintf(float __x)
Definition specfun.h:842
│ │ │ │ -
float ellint_2f(float __k, float __phi)
Return the incomplete elliptic integral of the second kind for float argument.
Definition specfun.h:742
│ │ │ │ -
__gnu_cxx::__promote_3< _Tp, _Tpn, _Tpp >::__type ellint_3(_Tp __k, _Tpn __nu, _Tpp __phi)
Return the incomplete elliptic integral of the third kind .
Definition specfun.h:828
│ │ │ │ -
long double ellint_2l(long double __k, long double __phi)
Return the incomplete elliptic integral of the second kind .
Definition specfun.h:752
│ │ │ │ -
float cyl_neumannf(float __nu, float __x)
Definition specfun.h:646
│ │ │ │ -
__gnu_cxx::__promote_2< _Tpa, _Tpb >::__type beta(_Tpa __a, _Tpb __b)
Definition specfun.h:341
│ │ │ │ -
long double comp_ellint_1l(long double __k)
Definition specfun.h:366
│ │ │ │ -
float comp_ellint_3f(float __k, float __nu)
Return the complete elliptic integral of the third kind for float modulus k.
Definition specfun.h:451
│ │ │ │ -
float sph_neumannf(unsigned int __n, float __x)
Definition specfun.h:1162
│ │ │ │ -
__gnu_cxx::__promote< _Tp >::__type expint(_Tp __x)
Definition specfun.h:868
│ │ │ │ -
long double ellint_1l(long double __k, long double __phi)
Definition specfun.h:704
│ │ │ │ -
float comp_ellint_1f(float __k)
Definition specfun.h:356
│ │ │ │ -
long double betal(long double __a, long double __b)
Definition specfun.h:320
│ │ │ │ -
float hermitef(unsigned int __n, float __x)
Definition specfun.h:883
│ │ │ │ -
__gnu_cxx::__promote< _Tp >::__type riemann_zeta(_Tp __s)
Definition specfun.h:1056
│ │ │ │ -
long double ellint_3l(long double __k, long double __nu, long double __phi)
Return the incomplete elliptic integral of the third kind .
Definition specfun.h:800
│ │ │ │ -
float sph_legendref(unsigned int __l, unsigned int __m, float __theta)
Definition specfun.h:1115
│ │ │ │ -
__gnu_cxx::__promote< _Tp >::__type sph_neumann(unsigned int __n, _Tp __x)
Definition specfun.h:1191
│ │ │ │ -
float cyl_bessel_if(float __nu, float __x)
Definition specfun.h:502
│ │ │ │ -
long double laguerrel(unsigned int __n, long double __x)
Definition specfun.h:941
│ │ │ │ -
long double cyl_bessel_il(long double __nu, long double __x)
Definition specfun.h:512
│ │ │ │ -
__gnu_cxx::__promote< _Tp >::__type assoc_laguerre(unsigned int __n, unsigned int __m, _Tp __x)
Definition specfun.h:250
│ │ │ │ -
__gnu_cxx::__promote_2< _Tp, _Tpn >::__type comp_ellint_3(_Tp __k, _Tpn __nu)
Definition specfun.h:487
│ │ │ │ -
__gnu_cxx::__promote< _Tp >::__type sph_legendre(unsigned int __l, unsigned int __m, _Tp __theta)
Definition specfun.h:1147
│ │ │ │ -
long double cyl_bessel_kl(long double __nu, long double __x)
Definition specfun.h:604
│ │ │ │ -
long double assoc_laguerrel(unsigned int __n, unsigned int __m, long double __x)
Definition specfun.h:214
│ │ │ │ -
__gnu_cxx::__promote< _Tp >::__type hermite(unsigned int __n, _Tp __x)
Definition specfun.h:916
│ │ │ │ -
__gnu_cxx::__promote_2< _Tpnu, _Tp >::__type cyl_bessel_j(_Tpnu __nu, _Tp __x)
Definition specfun.h:579
│ │ │ │ -
float laguerref(unsigned int __n, float __x)
Definition specfun.h:931
│ │ │ │ -
long double cyl_bessel_jl(long double __nu, long double __x)
Definition specfun.h:558
│ │ │ │ -
__gnu_cxx::__promote< _Tp >::__type comp_ellint_1(_Tp __k)
Definition specfun.h:389
│ │ │ │ -
__gnu_cxx::__promote_2< _Tp, _Tpp >::__type ellint_2(_Tp __k, _Tpp __phi)
Definition specfun.h:775
│ │ │ │ -
__gnu_cxx::__promote< _Tp >::__type laguerre(unsigned int __n, _Tp __x)
Definition specfun.h:960
│ │ │ │ -
float legendref(unsigned int __l, float __x)
Definition specfun.h:975
│ │ │ │ -
__gnu_cxx::__promote_2< _Tpnu, _Tp >::__type cyl_bessel_i(_Tpnu __nu, _Tp __x)
Definition specfun.h:533
│ │ │ │ -
__gnu_cxx::__promote< _Tp >::__type assoc_legendre(unsigned int __l, unsigned int __m, _Tp __x)
Definition specfun.h:296
│ │ │ │ -
float assoc_laguerref(unsigned int __n, unsigned int __m, float __x)
Definition specfun.h:204
│ │ │ │ -
long double cyl_neumannl(long double __nu, long double __x)
Definition specfun.h:656
│ │ │ │ -
float riemann_zetaf(float __s)
Definition specfun.h:1020
│ │ │ │ - │ │ │ │ +
182inline unsigned int
│ │ │ │ +
183stdc_trailing_ones_ull(unsigned long long int __value)
│ │ │ │ +
184{ return stdc_trailing_ones(__value); }
│ │ │ │ +
185/// @}
│ │ │ │ +
186
│ │ │ │ +
187/** Find the leftmost (i.e. most significant) zero bit
│ │ │ │ +
188 *
│ │ │ │ +
189 * @param __value An unsigned integer.
│ │ │ │ +
190 * @return The one-based index of the first zero bit counting from the left,
│ │ │ │ +
191 * or zero if there are no zero bits.
│ │ │ │ +
192 * @since C++26
│ │ │ │ +
193 * @{
│ │ │ │ +
194 */
│ │ │ │ +
195template<typename _Tp>
│ │ │ │ +
196inline unsigned int
│ │ │ │ +
197stdc_first_leading_zero(_Tp __value)
│ │ │ │ +
198{
│ │ │ │ +
199 static_assert(std::__unsigned_integer<_Tp>);
│ │ │ │ +
200 return __value == _Tp(-1) ? 0 : 1 + std::countl_one(__value);
│ │ │ │ +
201}
│ │ │ │ +
202
│ │ │ │ +
203inline unsigned int
│ │ │ │ +
204stdc_first_leading_zero_uc(unsigned char __value)
│ │ │ │ +
205{ return stdc_first_leading_zero(__value); }
│ │ │ │ +
206
│ │ │ │ +
207inline unsigned int
│ │ │ │ +
208stdc_first_leading_zero_us(unsigned short __value)
│ │ │ │ +
209{ return stdc_first_leading_zero(__value); }
│ │ │ │ +
210
│ │ │ │ +
211inline unsigned int
│ │ │ │ +
212stdc_first_leading_zero_ui(unsigned int __value)
│ │ │ │ +
213{ return stdc_first_leading_zero(__value); }
│ │ │ │ +
214
│ │ │ │ +
215inline unsigned int
│ │ │ │ +
216stdc_first_leading_zero_ul(unsigned long int __value)
│ │ │ │ +
217{ return stdc_first_leading_zero(__value); }
│ │ │ │ +
218
│ │ │ │ +
219inline unsigned int
│ │ │ │ +
220stdc_first_leading_zero_ull(unsigned long long int __value)
│ │ │ │ +
221{ return stdc_first_leading_zero(__value); }
│ │ │ │ +
222/// @}
│ │ │ │ +
223
│ │ │ │ +
224/** Find the leftmost (i.e. most significant) one bit
│ │ │ │ +
225 *
│ │ │ │ +
226 * @param __value An unsigned integer.
│ │ │ │ +
227 * @return The one-based index of the first one bit counting from the left,
│ │ │ │ +
228 * or zero if there are no one bits.
│ │ │ │ +
229 * @since C++26
│ │ │ │ +
230 * @{
│ │ │ │ +
231 */
│ │ │ │ +
232template<typename _Tp>
│ │ │ │ +
233inline unsigned int
│ │ │ │ +
234stdc_first_leading_one(_Tp __value)
│ │ │ │ +
235{
│ │ │ │ +
236 static_assert(std::__unsigned_integer<_Tp>);
│ │ │ │ +
237 return __value == 0 ? 0 : 1 + std::countl_zero(__value);
│ │ │ │ +
238}
│ │ │ │ +
239
│ │ │ │ +
240inline unsigned int
│ │ │ │ +
241stdc_first_leading_one_uc(unsigned char __value)
│ │ │ │ +
242{ return stdc_first_leading_one(__value); }
│ │ │ │ +
243
│ │ │ │ +
244inline unsigned int
│ │ │ │ +
245stdc_first_leading_one_us(unsigned short __value)
│ │ │ │ +
246{ return stdc_first_leading_one(__value); }
│ │ │ │ +
247
│ │ │ │ +
248inline unsigned int
│ │ │ │ +
249stdc_first_leading_one_ui(unsigned int __value)
│ │ │ │ +
250{ return stdc_first_leading_one(__value); }
│ │ │ │ +
251
│ │ │ │ +
252inline unsigned int
│ │ │ │ +
253stdc_first_leading_one_ul(unsigned long int __value)
│ │ │ │ +
254{ return stdc_first_leading_one(__value); }
│ │ │ │ +
255
│ │ │ │ +
256inline unsigned int
│ │ │ │ +
257stdc_first_leading_one_ull(unsigned long long int __value)
│ │ │ │ +
258{ return stdc_first_leading_one(__value); }
│ │ │ │ +
259/// @}
│ │ │ │ +
260
│ │ │ │ +
261/** Find the rightmost (i.e. least significant) zero bit
│ │ │ │ +
262 *
│ │ │ │ +
263 * @param __value An unsigned integer.
│ │ │ │ +
264 * @return The one-based index of the first zero bit counting from the right,
│ │ │ │ +
265 * or zero if there are no zero bits.
│ │ │ │ +
266 * @since C++26
│ │ │ │ +
267 * @{
│ │ │ │ +
268 */
│ │ │ │ +
269template<typename _Tp>
│ │ │ │ +
270inline unsigned int
│ │ │ │ +
271stdc_first_trailing_zero(_Tp __value)
│ │ │ │ +
272{
│ │ │ │ +
273 static_assert(std::__unsigned_integer<_Tp>);
│ │ │ │ +
274 return __value == _Tp(-1) ? 0 : 1 + std::countr_one(__value);
│ │ │ │ +
275}
│ │ │ │ +
276
│ │ │ │ +
277inline unsigned int
│ │ │ │ +
278stdc_first_trailing_zero_uc(unsigned char __value)
│ │ │ │ +
279{ return stdc_first_trailing_zero(__value); }
│ │ │ │ +
280
│ │ │ │ +
281inline unsigned int
│ │ │ │ +
282stdc_first_trailing_zero_us(unsigned short __value)
│ │ │ │ +
283{ return stdc_first_trailing_zero(__value); }
│ │ │ │ +
284
│ │ │ │ +
285inline unsigned int
│ │ │ │ +
286stdc_first_trailing_zero_ui(unsigned int __value)
│ │ │ │ +
287{ return stdc_first_trailing_zero(__value); }
│ │ │ │ +
288
│ │ │ │ +
289inline unsigned int
│ │ │ │ +
290stdc_first_trailing_zero_ul(unsigned long int __value)
│ │ │ │ +
291{ return stdc_first_trailing_zero(__value); }
│ │ │ │ +
292
│ │ │ │ +
293inline unsigned int
│ │ │ │ +
294stdc_first_trailing_zero_ull(unsigned long long int __value)
│ │ │ │ +
295{ return stdc_first_trailing_zero(__value); }
│ │ │ │ +
296/// @}
│ │ │ │ +
297
│ │ │ │ +
298/** Find the rightmost (i.e. least significant) one bit
│ │ │ │ +
299 *
│ │ │ │ +
300 * @param __value An unsigned integer.
│ │ │ │ +
301 * @return The one-based index of the first one bit counting from the right,
│ │ │ │ +
302 * or zero if there are no one bits.
│ │ │ │ +
303 * @since C++26
│ │ │ │ +
304 * @{
│ │ │ │ +
305 */
│ │ │ │ +
306template<typename _Tp>
│ │ │ │ +
307inline unsigned int
│ │ │ │ +
308stdc_first_trailing_one(_Tp __value)
│ │ │ │ +
309{
│ │ │ │ +
310 static_assert(std::__unsigned_integer<_Tp>);
│ │ │ │ +
311 return __value == 0 ? 0 : 1 + std::countr_zero(__value);
│ │ │ │ +
312}
│ │ │ │ +
313
│ │ │ │ +
314inline unsigned int
│ │ │ │ +
315stdc_first_trailing_one_uc(unsigned char __value)
│ │ │ │ +
316{ return stdc_first_trailing_one(__value); }
│ │ │ │ +
317
│ │ │ │ +
318inline unsigned int
│ │ │ │ +
319stdc_first_trailing_one_us(unsigned short __value)
│ │ │ │ +
320{ return stdc_first_trailing_one(__value); }
│ │ │ │ +
321
│ │ │ │ +
322inline unsigned int
│ │ │ │ +
323stdc_first_trailing_one_ui(unsigned int __value)
│ │ │ │ +
324{ return stdc_first_trailing_one(__value); }
│ │ │ │ +
325
│ │ │ │ +
326inline unsigned int
│ │ │ │ +
327stdc_first_trailing_one_ul(unsigned long int __value)
│ │ │ │ +
328{ return stdc_first_trailing_one(__value); }
│ │ │ │ +
329
│ │ │ │ +
330inline unsigned int
│ │ │ │ +
331stdc_first_trailing_one_ull(unsigned long long int __value)
│ │ │ │ +
332{ return stdc_first_trailing_one(__value); }
│ │ │ │ +
333/// @}
│ │ │ │ +
334
│ │ │ │ +
335/** Count zeros
│ │ │ │ +
336 *
│ │ │ │ +
337 * @param __value An unsigned integer.
│ │ │ │ +
338 * @return The total number of zero bits in `__value`.
│ │ │ │ +
339 * @since C++26
│ │ │ │ +
340 * @{
│ │ │ │ +
341 */
│ │ │ │ +
342template<typename _Tp>
│ │ │ │ +
343inline unsigned int
│ │ │ │ +
344stdc_count_zeros(_Tp __value)
│ │ │ │ +
345{
│ │ │ │ +
346 static_assert(std::__unsigned_integer<_Tp>);
│ │ │ │ +
347 return std::popcount(_Tp(~__value));
│ │ │ │ +
348}
│ │ │ │ +
349
│ │ │ │ +
350inline unsigned int
│ │ │ │ +
351stdc_count_zeros_uc(unsigned char __value)
│ │ │ │ +
352{ return stdc_count_zeros(__value); }
│ │ │ │ +
353
│ │ │ │ +
354inline unsigned int
│ │ │ │ +
355stdc_count_zeros_us(unsigned short __value)
│ │ │ │ +
356{ return stdc_count_zeros(__value); }
│ │ │ │ +
357
│ │ │ │ +
358inline unsigned int
│ │ │ │ +
359stdc_count_zeros_ui(unsigned int __value)
│ │ │ │ +
360{ return stdc_count_zeros(__value); }
│ │ │ │ +
361
│ │ │ │ +
362inline unsigned int
│ │ │ │ +
363stdc_count_zeros_ul(unsigned long int __value)
│ │ │ │ +
364{ return stdc_count_zeros(__value); }
│ │ │ │ +
365
│ │ │ │ +
366inline unsigned int
│ │ │ │ +
367stdc_count_zeros_ull(unsigned long long int __value)
│ │ │ │ +
368{ return stdc_count_zeros(__value); }
│ │ │ │ +
369/// @}
│ │ │ │ +
370
│ │ │ │ +
371/** Count ones
│ │ │ │ +
372 *
│ │ │ │ +
373 * @param __value An unsigned integer.
│ │ │ │ +
374 * @return The total number of one bits in `__value`.
│ │ │ │ +
375 * @since C++26
│ │ │ │ +
376 * @{
│ │ │ │ +
377 */
│ │ │ │ +
378template<typename _Tp>
│ │ │ │ +
379inline unsigned int
│ │ │ │ +
380stdc_count_ones(_Tp __value)
│ │ │ │ +
381{
│ │ │ │ +
382 static_assert(std::__unsigned_integer<_Tp>);
│ │ │ │ +
383 return std::popcount(__value);
│ │ │ │ +
384}
│ │ │ │ +
385
│ │ │ │ +
386inline unsigned int
│ │ │ │ +
387stdc_count_ones_uc(unsigned char __value)
│ │ │ │ +
388{ return stdc_count_ones(__value); }
│ │ │ │ +
389
│ │ │ │ +
390inline unsigned int
│ │ │ │ +
391stdc_count_ones_us(unsigned short __value)
│ │ │ │ +
392{ return stdc_count_ones(__value); }
│ │ │ │ +
393
│ │ │ │ +
394inline unsigned int
│ │ │ │ +
395stdc_count_ones_ui(unsigned int __value)
│ │ │ │ +
396{ return stdc_count_ones(__value); }
│ │ │ │ +
397
│ │ │ │ +
398inline unsigned int
│ │ │ │ +
399stdc_count_ones_ul(unsigned long int __value)
│ │ │ │ +
400{ return stdc_count_ones(__value); }
│ │ │ │ +
401
│ │ │ │ +
402inline unsigned int
│ │ │ │ +
403stdc_count_ones_ull(unsigned long long int __value)
│ │ │ │ +
404{ return stdc_count_ones(__value); }
│ │ │ │ +
405/// @}
│ │ │ │ +
406
│ │ │ │ +
407/** Power of two check
│ │ │ │ +
408 *
│ │ │ │ +
409 * @param __value An unsigned integer.
│ │ │ │ +
410 * @return True if the value has a single bit set, false otherwise.
│ │ │ │ +
411 * @since C++26
│ │ │ │ +
412 * @{
│ │ │ │ +
413 */
│ │ │ │ +
414template<typename _Tp>
│ │ │ │ +
415inline bool
│ │ │ │ +
416stdc_has_single_bit(_Tp __value)
│ │ │ │ +
417{
│ │ │ │ +
418 static_assert(std::__unsigned_integer<_Tp>);
│ │ │ │ +
419 return std::has_single_bit(__value);
│ │ │ │ +
420}
│ │ │ │ +
421
│ │ │ │ +
422inline bool
│ │ │ │ +
423stdc_has_single_bit_uc(unsigned char __value)
│ │ │ │ +
424{ return stdc_has_single_bit(__value); }
│ │ │ │ +
425
│ │ │ │ +
426inline bool
│ │ │ │ +
427stdc_has_single_bit_us(unsigned short __value)
│ │ │ │ +
428{ return stdc_has_single_bit(__value); }
│ │ │ │ +
429
│ │ │ │ +
430inline bool
│ │ │ │ +
431stdc_has_single_bit_ui(unsigned int __value)
│ │ │ │ +
432{ return stdc_has_single_bit(__value); }
│ │ │ │ +
433
│ │ │ │ +
434inline bool
│ │ │ │ +
435stdc_has_single_bit_ul(unsigned long int __value)
│ │ │ │ +
436{ return stdc_has_single_bit(__value); }
│ │ │ │ +
437
│ │ │ │ +
438inline bool
│ │ │ │ +
439stdc_has_single_bit_ull(unsigned long long int __value)
│ │ │ │ +
440{ return stdc_has_single_bit(__value); }
│ │ │ │ +
441/// @}
│ │ │ │ +
442
│ │ │ │ +
443/** Bit width
│ │ │ │ +
444 *
│ │ │ │ +
445 * @param __value An unsigned integer.
│ │ │ │ +
446 * @return The minimum number of bits needed to represent `__value`.
│ │ │ │ +
447 * @since C++26
│ │ │ │ +
448 * @{
│ │ │ │ +
449 */
│ │ │ │ +
450template<typename _Tp>
│ │ │ │ +
451inline unsigned int
│ │ │ │ +
452stdc_bit_width(_Tp __value)
│ │ │ │ +
453{
│ │ │ │ +
454 static_assert(std::__unsigned_integer<_Tp>);
│ │ │ │ +
455 return std::bit_width(__value);
│ │ │ │ +
456}
│ │ │ │ +
457
│ │ │ │ +
458inline unsigned int
│ │ │ │ +
459stdc_bit_width_uc(unsigned char __value)
│ │ │ │ +
460{ return stdc_bit_width(__value); }
│ │ │ │ +
461
│ │ │ │ +
462inline unsigned int
│ │ │ │ +
463stdc_bit_width_us(unsigned short __value)
│ │ │ │ +
464{ return stdc_bit_width(__value); }
│ │ │ │ +
465
│ │ │ │ +
466inline unsigned int
│ │ │ │ +
467stdc_bit_width_ui(unsigned int __value)
│ │ │ │ +
468{ return stdc_bit_width(__value); }
│ │ │ │ +
469
│ │ │ │ +
470inline unsigned int
│ │ │ │ +
471stdc_bit_width_ul(unsigned long int __value)
│ │ │ │ +
472{ return stdc_bit_width(__value); }
│ │ │ │ +
473
│ │ │ │ +
474inline unsigned int
│ │ │ │ +
475stdc_bit_width_ull(unsigned long long int __value)
│ │ │ │ +
476{ return stdc_bit_width(__value); }
│ │ │ │ +
477/// @}
│ │ │ │ +
478
│ │ │ │ +
479/** Bit floor
│ │ │ │ +
480 *
│ │ │ │ +
481 * @param __value An unsigned integer.
│ │ │ │ +
482 * @return The largest power of two that is not greater than `__value`.
│ │ │ │ +
483 * @since C++26
│ │ │ │ +
484 * @{
│ │ │ │ +
485 */
│ │ │ │ +
486template<typename _Tp>
│ │ │ │ +
487inline _Tp
│ │ │ │ +
488stdc_bit_floor(_Tp __value)
│ │ │ │ +
489{
│ │ │ │ +
490 static_assert(std::__unsigned_integer<_Tp>);
│ │ │ │ +
491 return std::bit_floor(__value);
│ │ │ │ +
492}
│ │ │ │ +
493
│ │ │ │ +
494inline unsigned char
│ │ │ │ +
495stdc_bit_floor_uc(unsigned char __value)
│ │ │ │ +
496{ return stdc_bit_floor(__value); }
│ │ │ │ +
497
│ │ │ │ +
498inline unsigned short
│ │ │ │ +
499stdc_bit_floor_us(unsigned short __value)
│ │ │ │ +
500{ return stdc_bit_floor(__value); }
│ │ │ │ +
501
│ │ │ │ +
502inline unsigned int
│ │ │ │ +
503stdc_bit_floor_ui(unsigned int __value)
│ │ │ │ +
504{ return stdc_bit_floor(__value); }
│ │ │ │ +
505
│ │ │ │ +
506inline unsigned long int
│ │ │ │ +
507stdc_bit_floor_ul(unsigned long int __value)
│ │ │ │ +
508{ return stdc_bit_floor(__value); }
│ │ │ │ +
509
│ │ │ │ +
510inline unsigned long long int
│ │ │ │ +
511stdc_bit_floor_ull(unsigned long long int __value)
│ │ │ │ +
512{ return stdc_bit_floor(__value); }
│ │ │ │ +
513/// @}
│ │ │ │ +
514
│ │ │ │ +
515/** Bit ceiling
│ │ │ │ +
516 *
│ │ │ │ +
517 * Unlike `std::bit_ceil`, this is defined to return zero for values which
│ │ │ │ +
518 * are not representable in the return type.
│ │ │ │ +
519 *
│ │ │ │ +
520 * @param __value An unsigned integer.
│ │ │ │ +
521 * @return The smallest power of two that is not less than `__value`.
│ │ │ │ +
522 * @since C++26
│ │ │ │ +
523 * @{
│ │ │ │ +
524 */
│ │ │ │ +
525template<typename _Tp>
│ │ │ │ +
526inline _Tp
│ │ │ │ +
527stdc_bit_ceil(_Tp __value)
│ │ │ │ +
528{
│ │ │ │ +
529 static_assert(std::__unsigned_integer<_Tp>);
│ │ │ │ +
530 constexpr _Tp __msb = _Tp(1) << (__gnu_cxx::__int_traits<_Tp>::__digits - 1);
│ │ │ │ +
531 return (__value & __msb) ? 0 : std::bit_ceil(__value);
│ │ │ │ +
532}
│ │ │ │ +
533
│ │ │ │ +
534inline unsigned char
│ │ │ │ +
535stdc_bit_ceil_uc(unsigned char __value)
│ │ │ │ +
536{ return stdc_bit_ceil(__value); }
│ │ │ │ +
537
│ │ │ │ +
538inline unsigned short
│ │ │ │ +
539stdc_bit_ceil_us(unsigned short __value)
│ │ │ │ +
540{ return stdc_bit_ceil(__value); }
│ │ │ │ +
541
│ │ │ │ +
542inline unsigned int
│ │ │ │ +
543stdc_bit_ceil_ui(unsigned int __value)
│ │ │ │ +
544{ return stdc_bit_ceil(__value); }
│ │ │ │ +
545
│ │ │ │ +
546inline unsigned long int
│ │ │ │ +
547stdc_bit_ceil_ul(unsigned long int __value)
│ │ │ │ +
548{ return stdc_bit_ceil(__value); }
│ │ │ │ +
549
│ │ │ │ +
550inline unsigned long long int
│ │ │ │ +
551stdc_bit_ceil_ull(unsigned long long int __value)
│ │ │ │ +
552{ return stdc_bit_ceil(__value); }
│ │ │ │ +
553/// @}
│ │ │ │ +
554
│ │ │ │ +
555#ifndef _GLIBCXX_DOXYGEN
│ │ │ │ +
556} // namespace __gnu_cxx
│ │ │ │ +
557#define _GLIBCXX_STDBIT_FUNC(F) \
│ │ │ │ +
558 using __gnu_cxx::F ## _uc; \
│ │ │ │ +
559 using __gnu_cxx::F ## _us; \
│ │ │ │ +
560 using __gnu_cxx::F ## _ui; \
│ │ │ │ +
561 using __gnu_cxx::F ## _ul; \
│ │ │ │ +
562 using __gnu_cxx::F ## _ull; \
│ │ │ │ +
563 using __gnu_cxx::F
│ │ │ │ +
564_GLIBCXX_STDBIT_FUNC(stdc_leading_zeros);
│ │ │ │ +
565_GLIBCXX_STDBIT_FUNC(stdc_leading_ones);
│ │ │ │ +
566_GLIBCXX_STDBIT_FUNC(stdc_trailing_zeros);
│ │ │ │ +
567_GLIBCXX_STDBIT_FUNC(stdc_trailing_ones);
│ │ │ │ +
568_GLIBCXX_STDBIT_FUNC(stdc_first_leading_zero);
│ │ │ │ +
569_GLIBCXX_STDBIT_FUNC(stdc_first_leading_one);
│ │ │ │ +
570_GLIBCXX_STDBIT_FUNC(stdc_first_trailing_zero);
│ │ │ │ +
571_GLIBCXX_STDBIT_FUNC(stdc_first_trailing_one);
│ │ │ │ +
572_GLIBCXX_STDBIT_FUNC(stdc_count_zeros);
│ │ │ │ +
573_GLIBCXX_STDBIT_FUNC(stdc_count_ones);
│ │ │ │ +
574_GLIBCXX_STDBIT_FUNC(stdc_has_single_bit);
│ │ │ │ +
575_GLIBCXX_STDBIT_FUNC(stdc_bit_width);
│ │ │ │ +
576_GLIBCXX_STDBIT_FUNC(stdc_bit_floor);
│ │ │ │ +
577_GLIBCXX_STDBIT_FUNC(stdc_bit_ceil);
│ │ │ │ +
578#undef _GLIBCXX_STDBIT_FUNC
│ │ │ │ +
579#endif // !DOXYGEN
│ │ │ │ +
580#endif // C++26
│ │ │ │ +
581
│ │ │ │ +
582#endif // _GLIBCXX_STDBIT_H
│ │ │ │ + │ │ │ │ +
GNU extensions for public use.
│ │ │ │ +
__numeric_traits_integer< _Tp > __int_traits
Convenience alias for __numeric_traits<integer-type>.
│ │ │ │
│ │ │ │
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├── html2text {} │ │ │ │ │ @@ -1,13 +1,13 @@ │ │ │ │ │ libstdc++ │ │ │ │ │ -math.h │ │ │ │ │ +stdbit.h │ │ │ │ │ _G_o_ _t_o_ _t_h_e_ _d_o_c_u_m_e_n_t_a_t_i_o_n_ _o_f_ _t_h_i_s_ _f_i_l_e_. │ │ │ │ │ -1// -*- C++ -*- compatibility header. │ │ │ │ │ +1// C compatibility header -*- C++ -*- │ │ │ │ │ 2 │ │ │ │ │ -3// Copyright (C) 2002-2025 Free Software Foundation, Inc. │ │ │ │ │ +3// Copyright The GNU Toolchain Authors. │ │ │ │ │ 4// │ │ │ │ │ 5// This file is part of the GNU ISO C++ Library. This library is free │ │ │ │ │ 6// software; you can redistribute it and/or modify it under the │ │ │ │ │ 7// terms of the GNU General Public License as published by the │ │ │ │ │ 8// Free Software Foundation; either version 3, or (at your option) │ │ │ │ │ 9// any later version. │ │ │ │ │ 10 │ │ │ │ │ @@ -21,425 +21,576 @@ │ │ │ │ │ 18// 3.1, as published by the Free Software Foundation. │ │ │ │ │ 19 │ │ │ │ │ 20// You should have received a copy of the GNU General Public License and │ │ │ │ │ 21// a copy of the GCC Runtime Library Exception along with this program; │ │ │ │ │ 22// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see │ │ │ │ │ 23// . │ │ │ │ │ 24 │ │ │ │ │ -25/** @file math.h │ │ │ │ │ +25/** @file include/stdbit.h │ │ │ │ │ 26 * This is a Standard C++ Library header. │ │ │ │ │ 27 */ │ │ │ │ │ 28 │ │ │ │ │ -29#if !defined __cplusplus || defined _GLIBCXX_INCLUDE_NEXT_C_HEADERS │ │ │ │ │ -30# include_next │ │ │ │ │ -31#else │ │ │ │ │ -32 │ │ │ │ │ -33#ifndef _GLIBCXX_MATH_H │ │ │ │ │ -34#define _GLIBCXX_MATH_H 1 │ │ │ │ │ -35 │ │ │ │ │ -36# include <_c_m_a_t_h> │ │ │ │ │ -37 │ │ │ │ │ -38using _s_t_d_:_:_a_b_s; │ │ │ │ │ -39using std::acos; │ │ │ │ │ -40using std::asin; │ │ │ │ │ -41using std::atan; │ │ │ │ │ -42using std::atan2; │ │ │ │ │ -43using _s_t_d_:_:_c_o_s; │ │ │ │ │ -44using _s_t_d_:_:_s_i_n; │ │ │ │ │ -45using _s_t_d_:_:_t_a_n; │ │ │ │ │ -46using _s_t_d_:_:_c_o_s_h; │ │ │ │ │ -47using _s_t_d_:_:_s_i_n_h; │ │ │ │ │ -48using _s_t_d_:_:_t_a_n_h; │ │ │ │ │ -49using _s_t_d_:_:_e_x_p; │ │ │ │ │ -50using std::frexp; │ │ │ │ │ -51using std::ldexp; │ │ │ │ │ -52using _s_t_d_:_:_l_o_g; │ │ │ │ │ -53using _s_t_d_:_:_l_o_g_1_0; │ │ │ │ │ -54using std::modf; │ │ │ │ │ -55using _s_t_d_:_:_p_o_w; │ │ │ │ │ -56using _s_t_d_:_:_s_q_r_t; │ │ │ │ │ -57using std::ceil; │ │ │ │ │ -58using std::fabs; │ │ │ │ │ -59using std::floor; │ │ │ │ │ -60using std::fmod; │ │ │ │ │ -61 │ │ │ │ │ -62#if _GLIBCXX_USE_C99_MATH │ │ │ │ │ -63using std::fpclassify; │ │ │ │ │ -64using std::isfinite; │ │ │ │ │ -65using std::isinf; │ │ │ │ │ -66using std::isnan; │ │ │ │ │ -67using std::isnormal; │ │ │ │ │ -68using std::signbit; │ │ │ │ │ -69using std::isgreater; │ │ │ │ │ -70using std::isgreaterequal; │ │ │ │ │ -71using std::isless; │ │ │ │ │ -72using std::islessequal; │ │ │ │ │ -73using std::islessgreater; │ │ │ │ │ -74using std::isunordered; │ │ │ │ │ -75#endif │ │ │ │ │ +29#ifndef _GLIBCXX_STDBIT_H │ │ │ │ │ +30#define _GLIBCXX_STDBIT_H │ │ │ │ │ +31 │ │ │ │ │ +32#if __cplusplus > 202302L │ │ │ │ │ +33#include <_b_i_t> │ │ │ │ │ +34 │ │ │ │ │ +35#define __STDC_VERSION_STDBIT_H__ 202311L │ │ │ │ │ +36 │ │ │ │ │ +37#define __STDC_ENDIAN_BIG__ __ORDER_BIG_ENDIAN__ │ │ │ │ │ +38#define __STDC_ENDIAN_LITTLE__ __ORDER_LITTLE_ENDIAN__ │ │ │ │ │ +39#define __STDC_ENDIAN_NATIVE__ __BYTE_ORDER__ │ │ │ │ │ +40 │ │ │ │ │ +41#ifndef _GLIBCXX_DOXYGEN │ │ │ │ │ +42// We define these in our own namespace, but let Doxygen think otherwise. │ │ │ │ │ +43namespace _____g_n_u___c_x_x _GLIBCXX_VISIBILITY(default) │ │ │ │ │ +44{ │ │ │ │ │ +45#endif │ │ │ │ │ +46 │ │ │ │ │ +47/** Count the number of leading zero bits │ │ │ │ │ +48 * │ │ │ │ │ +49 * @param __value An unsigned integer. │ │ │ │ │ +50 * @since C++26 │ │ │ │ │ +51 * @{ │ │ │ │ │ +52 */ │ │ │ │ │ +53template │ │ │ │ │ +54inline unsigned int │ │ │ │ │ +55stdc_leading_zeros(_Tp __value) │ │ │ │ │ +56{ │ │ │ │ │ +57 static_assert(std::__unsigned_integer<_Tp>); │ │ │ │ │ +58 return std::countl_zero(__value); │ │ │ │ │ +59} │ │ │ │ │ +60 │ │ │ │ │ +61inline unsigned int │ │ │ │ │ +62stdc_leading_zeros_uc(unsigned char __value) │ │ │ │ │ +63{ return stdc_leading_zeros(__value); } │ │ │ │ │ +64 │ │ │ │ │ +65inline unsigned int │ │ │ │ │ +66stdc_leading_zeros_us(unsigned short __value) │ │ │ │ │ +67{ return stdc_leading_zeros(__value); } │ │ │ │ │ +68 │ │ │ │ │ +69inline unsigned int │ │ │ │ │ +70stdc_leading_zeros_ui(unsigned int __value) │ │ │ │ │ +71{ return stdc_leading_zeros(__value); } │ │ │ │ │ +72 │ │ │ │ │ +73inline unsigned int │ │ │ │ │ +74stdc_leading_zeros_ul(unsigned long int __value) │ │ │ │ │ +75{ return stdc_leading_zeros(__value); } │ │ │ │ │ 76 │ │ │ │ │ -77#if __cplusplus >= 201103L && defined(_GLIBCXX_USE_C99_MATH_FUNCS) │ │ │ │ │ -78using std::acosh; │ │ │ │ │ -79using std::asinh; │ │ │ │ │ -80using std::atanh; │ │ │ │ │ -81using std::cbrt; │ │ │ │ │ -82using std::copysign; │ │ │ │ │ -83using std::erf; │ │ │ │ │ -84using std::erfc; │ │ │ │ │ -85using std::exp2; │ │ │ │ │ -86using std::expm1; │ │ │ │ │ -87using std::fdim; │ │ │ │ │ -88using std::fma; │ │ │ │ │ -89using std::fmax; │ │ │ │ │ -90using std::fmin; │ │ │ │ │ -91using std::hypot; │ │ │ │ │ -92using std::ilogb; │ │ │ │ │ -93using std::lgamma; │ │ │ │ │ -94using std::llrint; │ │ │ │ │ -95using std::llround; │ │ │ │ │ -96using std::log1p; │ │ │ │ │ -97using std::log2; │ │ │ │ │ -98using std::logb; │ │ │ │ │ -99using std::lrint; │ │ │ │ │ -100using std::lround; │ │ │ │ │ -101using std::nearbyint; │ │ │ │ │ -102using std::nextafter; │ │ │ │ │ -103using std::nexttoward; │ │ │ │ │ -104using std::remainder; │ │ │ │ │ -105using std::remquo; │ │ │ │ │ -106using std::rint; │ │ │ │ │ -107using std::round; │ │ │ │ │ -108using std::scalbln; │ │ │ │ │ -109using std::scalbn; │ │ │ │ │ -110using std::tgamma; │ │ │ │ │ -111using std::trunc; │ │ │ │ │ -112#endif // C++11 && _GLIBCXX_USE_C99_MATH_FUNCS │ │ │ │ │ -113 │ │ │ │ │ -114// The mathematical special functions are only added to the global namespace │ │ │ │ │ -115// by IS 29124, but not by C++17. │ │ │ │ │ -116#if __cplusplus >= 201103L && __STDCPP_WANT_MATH_SPEC_FUNCS__ != 0 │ │ │ │ │ -117using _s_t_d_:_:_a_s_s_o_c___l_a_g_u_e_r_r_e_f; │ │ │ │ │ -118using _s_t_d_:_:_a_s_s_o_c___l_a_g_u_e_r_r_e_l; │ │ │ │ │ -119using _s_t_d_:_:_a_s_s_o_c___l_a_g_u_e_r_r_e; │ │ │ │ │ -120using _s_t_d_:_:_a_s_s_o_c___l_e_g_e_n_d_r_e_f; │ │ │ │ │ -121using _s_t_d_:_:_a_s_s_o_c___l_e_g_e_n_d_r_e_l; │ │ │ │ │ -122using _s_t_d_:_:_a_s_s_o_c___l_e_g_e_n_d_r_e; │ │ │ │ │ -123using _s_t_d_:_:_b_e_t_a_f; │ │ │ │ │ -124using _s_t_d_:_:_b_e_t_a_l; │ │ │ │ │ -125using _s_t_d_:_:_b_e_t_a; │ │ │ │ │ -126using _s_t_d_:_:_c_o_m_p___e_l_l_i_n_t___1_f; │ │ │ │ │ -127using _s_t_d_:_:_c_o_m_p___e_l_l_i_n_t___1_l; │ │ │ │ │ -128using _s_t_d_:_:_c_o_m_p___e_l_l_i_n_t___1; │ │ │ │ │ -129using _s_t_d_:_:_c_o_m_p___e_l_l_i_n_t___2_f; │ │ │ │ │ -130using _s_t_d_:_:_c_o_m_p___e_l_l_i_n_t___2_l; │ │ │ │ │ -131using _s_t_d_:_:_c_o_m_p___e_l_l_i_n_t___2; │ │ │ │ │ -132using _s_t_d_:_:_c_o_m_p___e_l_l_i_n_t___3_f; │ │ │ │ │ -133using _s_t_d_:_:_c_o_m_p___e_l_l_i_n_t___3_l; │ │ │ │ │ -134using _s_t_d_:_:_c_o_m_p___e_l_l_i_n_t___3; │ │ │ │ │ -135using _s_t_d_:_:_c_y_l___b_e_s_s_e_l___i_f; │ │ │ │ │ -136using _s_t_d_:_:_c_y_l___b_e_s_s_e_l___i_l; │ │ │ │ │ -137using _s_t_d_:_:_c_y_l___b_e_s_s_e_l___i; │ │ │ │ │ -138using _s_t_d_:_:_c_y_l___b_e_s_s_e_l___j_f; │ │ │ │ │ -139using _s_t_d_:_:_c_y_l___b_e_s_s_e_l___j_l; │ │ │ │ │ -140using _s_t_d_:_:_c_y_l___b_e_s_s_e_l___j; │ │ │ │ │ -141using _s_t_d_:_:_c_y_l___b_e_s_s_e_l___k_f; │ │ │ │ │ -142using _s_t_d_:_:_c_y_l___b_e_s_s_e_l___k_l; │ │ │ │ │ -143using _s_t_d_:_:_c_y_l___b_e_s_s_e_l___k; │ │ │ │ │ -144using _s_t_d_:_:_c_y_l___n_e_u_m_a_n_n_f; │ │ │ │ │ -145using _s_t_d_:_:_c_y_l___n_e_u_m_a_n_n_l; │ │ │ │ │ -146using _s_t_d_:_:_c_y_l___n_e_u_m_a_n_n; │ │ │ │ │ -147using _s_t_d_:_:_e_l_l_i_n_t___1_f; │ │ │ │ │ -148using _s_t_d_:_:_e_l_l_i_n_t___1_l; │ │ │ │ │ -149using _s_t_d_:_:_e_l_l_i_n_t___1; │ │ │ │ │ -150using _s_t_d_:_:_e_l_l_i_n_t___2_f; │ │ │ │ │ -151using _s_t_d_:_:_e_l_l_i_n_t___2_l; │ │ │ │ │ -152using _s_t_d_:_:_e_l_l_i_n_t___2; │ │ │ │ │ -153using _s_t_d_:_:_e_l_l_i_n_t___3_f; │ │ │ │ │ -154using _s_t_d_:_:_e_l_l_i_n_t___3_l; │ │ │ │ │ -155using _s_t_d_:_:_e_l_l_i_n_t___3; │ │ │ │ │ -156using _s_t_d_:_:_e_x_p_i_n_t_f; │ │ │ │ │ -157using _s_t_d_:_:_e_x_p_i_n_t_l; │ │ │ │ │ -158using _s_t_d_:_:_e_x_p_i_n_t; │ │ │ │ │ -159using _s_t_d_:_:_h_e_r_m_i_t_e_f; │ │ │ │ │ -160using _s_t_d_:_:_h_e_r_m_i_t_e_l; │ │ │ │ │ -161using _s_t_d_:_:_h_e_r_m_i_t_e; │ │ │ │ │ -162using _s_t_d_:_:_l_a_g_u_e_r_r_e_f; │ │ │ │ │ -163using _s_t_d_:_:_l_a_g_u_e_r_r_e_l; │ │ │ │ │ -164using _s_t_d_:_:_l_a_g_u_e_r_r_e; │ │ │ │ │ -165using _s_t_d_:_:_l_e_g_e_n_d_r_e_f; │ │ │ │ │ -166using _s_t_d_:_:_l_e_g_e_n_d_r_e_l; │ │ │ │ │ -167using _s_t_d_:_:_l_e_g_e_n_d_r_e; │ │ │ │ │ -168using _s_t_d_:_:_r_i_e_m_a_n_n___z_e_t_a_f; │ │ │ │ │ -169using _s_t_d_:_:_r_i_e_m_a_n_n___z_e_t_a_l; │ │ │ │ │ -170using _s_t_d_:_:_r_i_e_m_a_n_n___z_e_t_a; │ │ │ │ │ -171using _s_t_d_:_:_s_p_h___b_e_s_s_e_l_f; │ │ │ │ │ -172using _s_t_d_:_:_s_p_h___b_e_s_s_e_l_l; │ │ │ │ │ -173using _s_t_d_:_:_s_p_h___b_e_s_s_e_l; │ │ │ │ │ -174using _s_t_d_:_:_s_p_h___l_e_g_e_n_d_r_e_f; │ │ │ │ │ -175using _s_t_d_:_:_s_p_h___l_e_g_e_n_d_r_e_l; │ │ │ │ │ -176using _s_t_d_:_:_s_p_h___l_e_g_e_n_d_r_e; │ │ │ │ │ -177using _s_t_d_:_:_s_p_h___n_e_u_m_a_n_n_f; │ │ │ │ │ -178using _s_t_d_:_:_s_p_h___n_e_u_m_a_n_n_l; │ │ │ │ │ -179using _s_t_d_:_:_s_p_h___n_e_u_m_a_n_n; │ │ │ │ │ -180#endif // _GLIBCXX_USE_STD_SPEC_FUNCS │ │ │ │ │ +77inline unsigned int │ │ │ │ │ +78stdc_leading_zeros_ull(unsigned long long int __value) │ │ │ │ │ +79{ return stdc_leading_zeros(__value); } │ │ │ │ │ +80/// @} │ │ │ │ │ +81 │ │ │ │ │ +82/** Count the number of leading one bits │ │ │ │ │ +83 * │ │ │ │ │ +84 * @param __value An unsigned integer. │ │ │ │ │ +85 * @since C++26 │ │ │ │ │ +86 * @{ │ │ │ │ │ +87 */ │ │ │ │ │ +88template │ │ │ │ │ +89inline unsigned int │ │ │ │ │ +90stdc_leading_ones(_Tp __value) │ │ │ │ │ +91{ │ │ │ │ │ +92 static_assert(std::__unsigned_integer<_Tp>); │ │ │ │ │ +93 return std::countl_one(__value); │ │ │ │ │ +94} │ │ │ │ │ +95 │ │ │ │ │ +96inline unsigned int │ │ │ │ │ +97stdc_leading_ones_uc(unsigned char __value) │ │ │ │ │ +98{ return stdc_leading_ones(__value); } │ │ │ │ │ +99 │ │ │ │ │ +100inline unsigned int │ │ │ │ │ +101stdc_leading_ones_us(unsigned short __value) │ │ │ │ │ +102{ return stdc_leading_ones(__value); } │ │ │ │ │ +103 │ │ │ │ │ +104inline unsigned int │ │ │ │ │ +105stdc_leading_ones_ui(unsigned int __value) │ │ │ │ │ +106{ return stdc_leading_ones(__value); } │ │ │ │ │ +107 │ │ │ │ │ +108inline unsigned int │ │ │ │ │ +109stdc_leading_ones_ul(unsigned long int __value) │ │ │ │ │ +110{ return stdc_leading_ones(__value); } │ │ │ │ │ +111 │ │ │ │ │ +112inline unsigned int │ │ │ │ │ +113stdc_leading_ones_ull(unsigned long long int __value) │ │ │ │ │ +114{ return stdc_leading_ones(__value); } │ │ │ │ │ +115/// @} │ │ │ │ │ +116 │ │ │ │ │ +117/** Count the number of trailing zero bits │ │ │ │ │ +118 * │ │ │ │ │ +119 * @param __value An unsigned integer. │ │ │ │ │ +120 * @since C++26 │ │ │ │ │ +121 * @{ │ │ │ │ │ +122 */ │ │ │ │ │ +123template │ │ │ │ │ +124inline unsigned int │ │ │ │ │ +125stdc_trailing_zeros(_Tp __value) │ │ │ │ │ +126{ │ │ │ │ │ +127 static_assert(std::__unsigned_integer<_Tp>); │ │ │ │ │ +128 return std::countr_zero(__value); │ │ │ │ │ +129} │ │ │ │ │ +130 │ │ │ │ │ +131inline unsigned int │ │ │ │ │ +132stdc_trailing_zeros_uc(unsigned char __value) │ │ │ │ │ +133{ return stdc_trailing_zeros(__value); } │ │ │ │ │ +134 │ │ │ │ │ +135inline unsigned int │ │ │ │ │ +136stdc_trailing_zeros_us(unsigned short __value) │ │ │ │ │ +137{ return stdc_trailing_zeros(__value); } │ │ │ │ │ +138 │ │ │ │ │ +139inline unsigned int │ │ │ │ │ +140stdc_trailing_zeros_ui(unsigned int __value) │ │ │ │ │ +141{ return stdc_trailing_zeros(__value); } │ │ │ │ │ +142 │ │ │ │ │ +143inline unsigned int │ │ │ │ │ +144stdc_trailing_zeros_ul(unsigned long int __value) │ │ │ │ │ +145{ return stdc_trailing_zeros(__value); } │ │ │ │ │ +146 │ │ │ │ │ +147inline unsigned int │ │ │ │ │ +148stdc_trailing_zeros_ull(unsigned long long int __value) │ │ │ │ │ +149{ return stdc_trailing_zeros(__value); } │ │ │ │ │ +150/// @} │ │ │ │ │ +151 │ │ │ │ │ +152/** Count the number of trailing one bits │ │ │ │ │ +153 * │ │ │ │ │ +154 * @param __value An unsigned integer. │ │ │ │ │ +155 * @since C++26 │ │ │ │ │ +156 * @{ │ │ │ │ │ +157 */ │ │ │ │ │ +158template │ │ │ │ │ +159inline unsigned int │ │ │ │ │ +160stdc_trailing_ones(_Tp __value) │ │ │ │ │ +161{ │ │ │ │ │ +162 static_assert(std::__unsigned_integer<_Tp>); │ │ │ │ │ +163 return std::countr_one(__value); │ │ │ │ │ +164} │ │ │ │ │ +165 │ │ │ │ │ +166inline unsigned int │ │ │ │ │ +167stdc_trailing_ones_uc(unsigned char __value) │ │ │ │ │ +168{ return stdc_trailing_ones(__value); } │ │ │ │ │ +169 │ │ │ │ │ +170inline unsigned int │ │ │ │ │ +171stdc_trailing_ones_us(unsigned short __value) │ │ │ │ │ +172{ return stdc_trailing_ones(__value); } │ │ │ │ │ +173 │ │ │ │ │ +174inline unsigned int │ │ │ │ │ +175stdc_trailing_ones_ui(unsigned int __value) │ │ │ │ │ +176{ return stdc_trailing_ones(__value); } │ │ │ │ │ +177 │ │ │ │ │ +178inline unsigned int │ │ │ │ │ +179stdc_trailing_ones_ul(unsigned long int __value) │ │ │ │ │ +180{ return stdc_trailing_ones(__value); } │ │ │ │ │ 181 │ │ │ │ │ -182#if __cplusplus > 201703L │ │ │ │ │ -183using std::lerp; │ │ │ │ │ -184#endif // C++20 │ │ │ │ │ -185 │ │ │ │ │ -186#endif // _GLIBCXX_MATH_H │ │ │ │ │ -187#endif // __cplusplus │ │ │ │ │ -_s_t_d_:_:_l_o_g_1_0 │ │ │ │ │ -complex< _Tp > log10(const complex< _Tp > &) │ │ │ │ │ -Return complex base 10 logarithm of z. │ │ │ │ │ -DDeeffiinniittiioonn _c_o_m_p_l_e_x_:_1_1_6_7 │ │ │ │ │ -_s_t_d_:_:_s_i_n │ │ │ │ │ -complex< _Tp > sin(const complex< _Tp > &) │ │ │ │ │ -Return complex sine of z. │ │ │ │ │ -DDeeffiinniittiioonn _c_o_m_p_l_e_x_:_1_1_9_7 │ │ │ │ │ -_s_t_d_:_:_l_o_g │ │ │ │ │ -complex< _Tp > log(const complex< _Tp > &) │ │ │ │ │ -Return complex natural logarithm of z. │ │ │ │ │ -DDeeffiinniittiioonn _c_o_m_p_l_e_x_:_1_1_6_2 │ │ │ │ │ -_s_t_d_:_:_t_a_n │ │ │ │ │ -complex< _Tp > tan(const complex< _Tp > &) │ │ │ │ │ -Return complex tangent of z. │ │ │ │ │ -DDeeffiinniittiioonn _c_o_m_p_l_e_x_:_1_2_9_8 │ │ │ │ │ -_s_t_d_:_:_a_b_s │ │ │ │ │ -_Tp abs(const complex< _Tp > &) │ │ │ │ │ -Return magnitude of z. │ │ │ │ │ -DDeeffiinniittiioonn _c_o_m_p_l_e_x_:_9_6_8 │ │ │ │ │ -_s_t_d_:_:_e_x_p │ │ │ │ │ -complex< _Tp > exp(const complex< _Tp > &) │ │ │ │ │ -Return complex base e exponential of z. │ │ │ │ │ -DDeeffiinniittiioonn _c_o_m_p_l_e_x_:_1_1_3_5 │ │ │ │ │ -_s_t_d_:_:_c_o_s_h │ │ │ │ │ -complex< _Tp > cosh(const complex< _Tp > &) │ │ │ │ │ -Return complex hyperbolic cosine of z. │ │ │ │ │ -DDeeffiinniittiioonn _c_o_m_p_l_e_x_:_1_1_0_9 │ │ │ │ │ -_s_t_d_:_:_t_a_n_h │ │ │ │ │ -complex< _Tp > tanh(const complex< _Tp > &) │ │ │ │ │ -Return complex hyperbolic tangent of z. │ │ │ │ │ -DDeeffiinniittiioonn _c_o_m_p_l_e_x_:_1_3_2_6 │ │ │ │ │ -_s_t_d_:_:_p_o_w │ │ │ │ │ -complex< _Tp > pow(const complex< _Tp > &, int) │ │ │ │ │ -Return x to the y'th power. │ │ │ │ │ -DDeeffiinniittiioonn _c_o_m_p_l_e_x_:_1_3_5_7 │ │ │ │ │ -_s_t_d_:_:_s_i_n_h │ │ │ │ │ -complex< _Tp > sinh(const complex< _Tp > &) │ │ │ │ │ -Return complex hyperbolic sine of z. │ │ │ │ │ -DDeeffiinniittiioonn _c_o_m_p_l_e_x_:_1_2_2_7 │ │ │ │ │ -_s_t_d_:_:_c_o_s │ │ │ │ │ -complex< _Tp > cos(const complex< _Tp > &) │ │ │ │ │ -Return complex cosine of z. │ │ │ │ │ -DDeeffiinniittiioonn _c_o_m_p_l_e_x_:_1_0_7_9 │ │ │ │ │ -_s_t_d_:_:_s_q_r_t │ │ │ │ │ -complex< _Tp > sqrt(const complex< _Tp > &) │ │ │ │ │ -Return complex square root of z. │ │ │ │ │ -DDeeffiinniittiioonn _c_o_m_p_l_e_x_:_1_2_7_1 │ │ │ │ │ -_s_t_d_:_:_s_p_h___b_e_s_s_e_l │ │ │ │ │ -__gnu_cxx::__promote< _Tp >::__type sph_bessel(unsigned int __n, _Tp __x) │ │ │ │ │ -DDeeffiinniittiioonn _s_p_e_c_f_u_n_._h_:_1_1_0_0 │ │ │ │ │ -_s_t_d_:_:_s_p_h___b_e_s_s_e_l_l │ │ │ │ │ -long double sph_bessell(unsigned int __n, long double __x) │ │ │ │ │ -DDeeffiinniittiioonn _s_p_e_c_f_u_n_._h_:_1_0_8_1 │ │ │ │ │ -_s_t_d_:_:_b_e_t_a_f │ │ │ │ │ -float betaf(float __a, float __b) │ │ │ │ │ -DDeeffiinniittiioonn _s_p_e_c_f_u_n_._h_:_3_1_0 │ │ │ │ │ -_s_t_d_:_:_e_x_p_i_n_t_l │ │ │ │ │ -long double expintl(long double __x) │ │ │ │ │ -DDeeffiinniittiioonn _s_p_e_c_f_u_n_._h_:_8_5_2 │ │ │ │ │ -_s_t_d_:_:_c_y_l___b_e_s_s_e_l___j_f │ │ │ │ │ -float cyl_bessel_jf(float __nu, float __x) │ │ │ │ │ -DDeeffiinniittiioonn _s_p_e_c_f_u_n_._h_:_5_4_8 │ │ │ │ │ -_s_t_d_:_:_c_y_l___b_e_s_s_e_l___k │ │ │ │ │ -__gnu_cxx::__promote_2< _Tpnu, _Tp >::__type cyl_bessel_k(_Tpnu __nu, _Tp __x) │ │ │ │ │ -DDeeffiinniittiioonn _s_p_e_c_f_u_n_._h_:_6_3_1 │ │ │ │ │ -_s_t_d_:_:_e_l_l_i_n_t___3_f │ │ │ │ │ -float ellint_3f(float __k, float __nu, float __phi) │ │ │ │ │ -Return the incomplete elliptic integral of the third kind for float argument. │ │ │ │ │ -DDeeffiinniittiioonn _s_p_e_c_f_u_n_._h_:_7_9_0 │ │ │ │ │ -_s_t_d_:_:_l_e_g_e_n_d_r_e_l │ │ │ │ │ -long double legendrel(unsigned int __l, long double __x) │ │ │ │ │ -DDeeffiinniittiioonn _s_p_e_c_f_u_n_._h_:_9_8_5 │ │ │ │ │ -_s_t_d_:_:_c_o_m_p___e_l_l_i_n_t___3_l │ │ │ │ │ -long double comp_ellint_3l(long double __k, long double __nu) │ │ │ │ │ -Return the complete elliptic integral of the third kind for long double modulus │ │ │ │ │ -k. │ │ │ │ │ -DDeeffiinniittiioonn _s_p_e_c_f_u_n_._h_:_4_6_1 │ │ │ │ │ -_s_t_d_:_:_r_i_e_m_a_n_n___z_e_t_a_l │ │ │ │ │ -long double riemann_zetal(long double __s) │ │ │ │ │ -DDeeffiinniittiioonn _s_p_e_c_f_u_n_._h_:_1_0_3_0 │ │ │ │ │ -_s_t_d_:_:_c_y_l___b_e_s_s_e_l___k_f │ │ │ │ │ -float cyl_bessel_kf(float __nu, float __x) │ │ │ │ │ -DDeeffiinniittiioonn _s_p_e_c_f_u_n_._h_:_5_9_4 │ │ │ │ │ -_s_t_d_:_:_c_o_m_p___e_l_l_i_n_t___2_f │ │ │ │ │ -float comp_ellint_2f(float __k) │ │ │ │ │ -DDeeffiinniittiioonn _s_p_e_c_f_u_n_._h_:_4_0_4 │ │ │ │ │ -_s_t_d_:_:_h_e_r_m_i_t_e_l │ │ │ │ │ -long double hermitel(unsigned int __n, long double __x) │ │ │ │ │ -DDeeffiinniittiioonn _s_p_e_c_f_u_n_._h_:_8_9_3 │ │ │ │ │ -_s_t_d_:_:_e_l_l_i_n_t___1 │ │ │ │ │ -__gnu_cxx::__promote_2< _Tp, _Tpp >::__type ellint_1(_Tp __k, _Tpp __phi) │ │ │ │ │ -DDeeffiinniittiioonn _s_p_e_c_f_u_n_._h_:_7_2_7 │ │ │ │ │ -_s_t_d_:_:_s_p_h___l_e_g_e_n_d_r_e_l │ │ │ │ │ -long double sph_legendrel(unsigned int __l, unsigned int __m, long double │ │ │ │ │ -__theta) │ │ │ │ │ -DDeeffiinniittiioonn _s_p_e_c_f_u_n_._h_:_1_1_2_6 │ │ │ │ │ -_s_t_d_:_:_e_l_l_i_n_t___1_f │ │ │ │ │ -float ellint_1f(float __k, float __phi) │ │ │ │ │ -DDeeffiinniittiioonn _s_p_e_c_f_u_n_._h_:_6_9_4 │ │ │ │ │ -_s_t_d_:_:_c_y_l___n_e_u_m_a_n_n │ │ │ │ │ -__gnu_cxx::__promote_2< _Tpnu, _Tp >::__type cyl_neumann(_Tpnu __nu, _Tp __x) │ │ │ │ │ -DDeeffiinniittiioonn _s_p_e_c_f_u_n_._h_:_6_7_9 │ │ │ │ │ -_s_t_d_:_:_a_s_s_o_c___l_e_g_e_n_d_r_e_f │ │ │ │ │ -float assoc_legendref(unsigned int __l, unsigned int __m, float __x) │ │ │ │ │ -DDeeffiinniittiioonn _s_p_e_c_f_u_n_._h_:_2_6_5 │ │ │ │ │ -_s_t_d_:_:_s_p_h___n_e_u_m_a_n_n_l │ │ │ │ │ -long double sph_neumannl(unsigned int __n, long double __x) │ │ │ │ │ -DDeeffiinniittiioonn _s_p_e_c_f_u_n_._h_:_1_1_7_2 │ │ │ │ │ -_s_t_d_:_:_c_o_m_p___e_l_l_i_n_t___2_l │ │ │ │ │ -long double comp_ellint_2l(long double __k) │ │ │ │ │ -DDeeffiinniittiioonn _s_p_e_c_f_u_n_._h_:_4_1_4 │ │ │ │ │ -_s_t_d_:_:_c_o_m_p___e_l_l_i_n_t___2 │ │ │ │ │ -__gnu_cxx::__promote< _Tp >::__type comp_ellint_2(_Tp __k) │ │ │ │ │ -DDeeffiinniittiioonn _s_p_e_c_f_u_n_._h_:_4_3_6 │ │ │ │ │ -_s_t_d_:_:_s_p_h___b_e_s_s_e_l_f │ │ │ │ │ -float sph_besself(unsigned int __n, float __x) │ │ │ │ │ -DDeeffiinniittiioonn _s_p_e_c_f_u_n_._h_:_1_0_7_1 │ │ │ │ │ -_s_t_d_:_:_a_s_s_o_c___l_e_g_e_n_d_r_e_l │ │ │ │ │ -long double assoc_legendrel(unsigned int __l, unsigned int __m, long double │ │ │ │ │ -__x) │ │ │ │ │ -DDeeffiinniittiioonn _s_p_e_c_f_u_n_._h_:_2_7_4 │ │ │ │ │ -_s_t_d_:_:_l_e_g_e_n_d_r_e │ │ │ │ │ -__gnu_cxx::__promote< _Tp >::__type legendre(unsigned int __l, _Tp __x) │ │ │ │ │ -DDeeffiinniittiioonn _s_p_e_c_f_u_n_._h_:_1_0_0_5 │ │ │ │ │ -_s_t_d_:_:_e_x_p_i_n_t_f │ │ │ │ │ -float expintf(float __x) │ │ │ │ │ -DDeeffiinniittiioonn _s_p_e_c_f_u_n_._h_:_8_4_2 │ │ │ │ │ -_s_t_d_:_:_e_l_l_i_n_t___2_f │ │ │ │ │ -float ellint_2f(float __k, float __phi) │ │ │ │ │ -Return the incomplete elliptic integral of the second kind for float argument. │ │ │ │ │ -DDeeffiinniittiioonn _s_p_e_c_f_u_n_._h_:_7_4_2 │ │ │ │ │ -_s_t_d_:_:_e_l_l_i_n_t___3 │ │ │ │ │ -__gnu_cxx::__promote_3< _Tp, _Tpn, _Tpp >::__type ellint_3(_Tp __k, _Tpn __nu, │ │ │ │ │ -_Tpp __phi) │ │ │ │ │ -Return the incomplete elliptic integral of the third kind . │ │ │ │ │ -DDeeffiinniittiioonn _s_p_e_c_f_u_n_._h_:_8_2_8 │ │ │ │ │ -_s_t_d_:_:_e_l_l_i_n_t___2_l │ │ │ │ │ -long double ellint_2l(long double __k, long double __phi) │ │ │ │ │ -Return the incomplete elliptic integral of the second kind . │ │ │ │ │ -DDeeffiinniittiioonn _s_p_e_c_f_u_n_._h_:_7_5_2 │ │ │ │ │ -_s_t_d_:_:_c_y_l___n_e_u_m_a_n_n_f │ │ │ │ │ -float cyl_neumannf(float __nu, float __x) │ │ │ │ │ -DDeeffiinniittiioonn _s_p_e_c_f_u_n_._h_:_6_4_6 │ │ │ │ │ -_s_t_d_:_:_b_e_t_a │ │ │ │ │ -__gnu_cxx::__promote_2< _Tpa, _Tpb >::__type beta(_Tpa __a, _Tpb __b) │ │ │ │ │ -DDeeffiinniittiioonn _s_p_e_c_f_u_n_._h_:_3_4_1 │ │ │ │ │ -_s_t_d_:_:_c_o_m_p___e_l_l_i_n_t___1_l │ │ │ │ │ -long double comp_ellint_1l(long double __k) │ │ │ │ │ -DDeeffiinniittiioonn _s_p_e_c_f_u_n_._h_:_3_6_6 │ │ │ │ │ -_s_t_d_:_:_c_o_m_p___e_l_l_i_n_t___3_f │ │ │ │ │ -float comp_ellint_3f(float __k, float __nu) │ │ │ │ │ -Return the complete elliptic integral of the third kind for float modulus k. │ │ │ │ │ -DDeeffiinniittiioonn _s_p_e_c_f_u_n_._h_:_4_5_1 │ │ │ │ │ -_s_t_d_:_:_s_p_h___n_e_u_m_a_n_n_f │ │ │ │ │ -float sph_neumannf(unsigned int __n, float __x) │ │ │ │ │ -DDeeffiinniittiioonn _s_p_e_c_f_u_n_._h_:_1_1_6_2 │ │ │ │ │ -_s_t_d_:_:_e_x_p_i_n_t │ │ │ │ │ -__gnu_cxx::__promote< _Tp >::__type expint(_Tp __x) │ │ │ │ │ -DDeeffiinniittiioonn _s_p_e_c_f_u_n_._h_:_8_6_8 │ │ │ │ │ -_s_t_d_:_:_e_l_l_i_n_t___1_l │ │ │ │ │ -long double ellint_1l(long double __k, long double __phi) │ │ │ │ │ -DDeeffiinniittiioonn _s_p_e_c_f_u_n_._h_:_7_0_4 │ │ │ │ │ -_s_t_d_:_:_c_o_m_p___e_l_l_i_n_t___1_f │ │ │ │ │ -float comp_ellint_1f(float __k) │ │ │ │ │ -DDeeffiinniittiioonn _s_p_e_c_f_u_n_._h_:_3_5_6 │ │ │ │ │ -_s_t_d_:_:_b_e_t_a_l │ │ │ │ │ -long double betal(long double __a, long double __b) │ │ │ │ │ -DDeeffiinniittiioonn _s_p_e_c_f_u_n_._h_:_3_2_0 │ │ │ │ │ -_s_t_d_:_:_h_e_r_m_i_t_e_f │ │ │ │ │ -float hermitef(unsigned int __n, float __x) │ │ │ │ │ -DDeeffiinniittiioonn _s_p_e_c_f_u_n_._h_:_8_8_3 │ │ │ │ │ -_s_t_d_:_:_r_i_e_m_a_n_n___z_e_t_a │ │ │ │ │ -__gnu_cxx::__promote< _Tp >::__type riemann_zeta(_Tp __s) │ │ │ │ │ -DDeeffiinniittiioonn _s_p_e_c_f_u_n_._h_:_1_0_5_6 │ │ │ │ │ -_s_t_d_:_:_e_l_l_i_n_t___3_l │ │ │ │ │ -long double ellint_3l(long double __k, long double __nu, long double __phi) │ │ │ │ │ -Return the incomplete elliptic integral of the third kind . │ │ │ │ │ -DDeeffiinniittiioonn _s_p_e_c_f_u_n_._h_:_8_0_0 │ │ │ │ │ -_s_t_d_:_:_s_p_h___l_e_g_e_n_d_r_e_f │ │ │ │ │ -float sph_legendref(unsigned int __l, unsigned int __m, float __theta) │ │ │ │ │ -DDeeffiinniittiioonn _s_p_e_c_f_u_n_._h_:_1_1_1_5 │ │ │ │ │ -_s_t_d_:_:_s_p_h___n_e_u_m_a_n_n │ │ │ │ │ -__gnu_cxx::__promote< _Tp >::__type sph_neumann(unsigned int __n, _Tp __x) │ │ │ │ │ -DDeeffiinniittiioonn _s_p_e_c_f_u_n_._h_:_1_1_9_1 │ │ │ │ │ -_s_t_d_:_:_c_y_l___b_e_s_s_e_l___i_f │ │ │ │ │ -float cyl_bessel_if(float __nu, float __x) │ │ │ │ │ -DDeeffiinniittiioonn _s_p_e_c_f_u_n_._h_:_5_0_2 │ │ │ │ │ -_s_t_d_:_:_l_a_g_u_e_r_r_e_l │ │ │ │ │ -long double laguerrel(unsigned int __n, long double __x) │ │ │ │ │ -DDeeffiinniittiioonn _s_p_e_c_f_u_n_._h_:_9_4_1 │ │ │ │ │ -_s_t_d_:_:_c_y_l___b_e_s_s_e_l___i_l │ │ │ │ │ -long double cyl_bessel_il(long double __nu, long double __x) │ │ │ │ │ -DDeeffiinniittiioonn _s_p_e_c_f_u_n_._h_:_5_1_2 │ │ │ │ │ -_s_t_d_:_:_a_s_s_o_c___l_a_g_u_e_r_r_e │ │ │ │ │ -__gnu_cxx::__promote< _Tp >::__type assoc_laguerre(unsigned int __n, unsigned │ │ │ │ │ -int __m, _Tp __x) │ │ │ │ │ -DDeeffiinniittiioonn _s_p_e_c_f_u_n_._h_:_2_5_0 │ │ │ │ │ -_s_t_d_:_:_c_o_m_p___e_l_l_i_n_t___3 │ │ │ │ │ -__gnu_cxx::__promote_2< _Tp, _Tpn >::__type comp_ellint_3(_Tp __k, _Tpn __nu) │ │ │ │ │ -DDeeffiinniittiioonn _s_p_e_c_f_u_n_._h_:_4_8_7 │ │ │ │ │ -_s_t_d_:_:_s_p_h___l_e_g_e_n_d_r_e │ │ │ │ │ -__gnu_cxx::__promote< _Tp >::__type sph_legendre(unsigned int __l, unsigned int │ │ │ │ │ -__m, _Tp __theta) │ │ │ │ │ -DDeeffiinniittiioonn _s_p_e_c_f_u_n_._h_:_1_1_4_7 │ │ │ │ │ -_s_t_d_:_:_c_y_l___b_e_s_s_e_l___k_l │ │ │ │ │ -long double cyl_bessel_kl(long double __nu, long double __x) │ │ │ │ │ -DDeeffiinniittiioonn _s_p_e_c_f_u_n_._h_:_6_0_4 │ │ │ │ │ -_s_t_d_:_:_a_s_s_o_c___l_a_g_u_e_r_r_e_l │ │ │ │ │ -long double assoc_laguerrel(unsigned int __n, unsigned int __m, long double │ │ │ │ │ -__x) │ │ │ │ │ -DDeeffiinniittiioonn _s_p_e_c_f_u_n_._h_:_2_1_4 │ │ │ │ │ -_s_t_d_:_:_h_e_r_m_i_t_e │ │ │ │ │ -__gnu_cxx::__promote< _Tp >::__type hermite(unsigned int __n, _Tp __x) │ │ │ │ │ -DDeeffiinniittiioonn _s_p_e_c_f_u_n_._h_:_9_1_6 │ │ │ │ │ -_s_t_d_:_:_c_y_l___b_e_s_s_e_l___j │ │ │ │ │ -__gnu_cxx::__promote_2< _Tpnu, _Tp >::__type cyl_bessel_j(_Tpnu __nu, _Tp __x) │ │ │ │ │ -DDeeffiinniittiioonn _s_p_e_c_f_u_n_._h_:_5_7_9 │ │ │ │ │ -_s_t_d_:_:_l_a_g_u_e_r_r_e_f │ │ │ │ │ -float laguerref(unsigned int __n, float __x) │ │ │ │ │ -DDeeffiinniittiioonn _s_p_e_c_f_u_n_._h_:_9_3_1 │ │ │ │ │ -_s_t_d_:_:_c_y_l___b_e_s_s_e_l___j_l │ │ │ │ │ -long double cyl_bessel_jl(long double __nu, long double __x) │ │ │ │ │ -DDeeffiinniittiioonn _s_p_e_c_f_u_n_._h_:_5_5_8 │ │ │ │ │ -_s_t_d_:_:_c_o_m_p___e_l_l_i_n_t___1 │ │ │ │ │ -__gnu_cxx::__promote< _Tp >::__type comp_ellint_1(_Tp __k) │ │ │ │ │ -DDeeffiinniittiioonn _s_p_e_c_f_u_n_._h_:_3_8_9 │ │ │ │ │ -_s_t_d_:_:_e_l_l_i_n_t___2 │ │ │ │ │ -__gnu_cxx::__promote_2< _Tp, _Tpp >::__type ellint_2(_Tp __k, _Tpp __phi) │ │ │ │ │ -DDeeffiinniittiioonn _s_p_e_c_f_u_n_._h_:_7_7_5 │ │ │ │ │ -_s_t_d_:_:_l_a_g_u_e_r_r_e │ │ │ │ │ -__gnu_cxx::__promote< _Tp >::__type laguerre(unsigned int __n, _Tp __x) │ │ │ │ │ -DDeeffiinniittiioonn _s_p_e_c_f_u_n_._h_:_9_6_0 │ │ │ │ │ -_s_t_d_:_:_l_e_g_e_n_d_r_e_f │ │ │ │ │ -float legendref(unsigned int __l, float __x) │ │ │ │ │ -DDeeffiinniittiioonn _s_p_e_c_f_u_n_._h_:_9_7_5 │ │ │ │ │ -_s_t_d_:_:_c_y_l___b_e_s_s_e_l___i │ │ │ │ │ -__gnu_cxx::__promote_2< _Tpnu, _Tp >::__type cyl_bessel_i(_Tpnu __nu, _Tp __x) │ │ │ │ │ -DDeeffiinniittiioonn _s_p_e_c_f_u_n_._h_:_5_3_3 │ │ │ │ │ -_s_t_d_:_:_a_s_s_o_c___l_e_g_e_n_d_r_e │ │ │ │ │ -__gnu_cxx::__promote< _Tp >::__type assoc_legendre(unsigned int __l, unsigned │ │ │ │ │ -int __m, _Tp __x) │ │ │ │ │ -DDeeffiinniittiioonn _s_p_e_c_f_u_n_._h_:_2_9_6 │ │ │ │ │ -_s_t_d_:_:_a_s_s_o_c___l_a_g_u_e_r_r_e_f │ │ │ │ │ -float assoc_laguerref(unsigned int __n, unsigned int __m, float __x) │ │ │ │ │ -DDeeffiinniittiioonn _s_p_e_c_f_u_n_._h_:_2_0_4 │ │ │ │ │ -_s_t_d_:_:_c_y_l___n_e_u_m_a_n_n_l │ │ │ │ │ -long double cyl_neumannl(long double __nu, long double __x) │ │ │ │ │ -DDeeffiinniittiioonn _s_p_e_c_f_u_n_._h_:_6_5_6 │ │ │ │ │ -_s_t_d_:_:_r_i_e_m_a_n_n___z_e_t_a_f │ │ │ │ │ -float riemann_zetaf(float __s) │ │ │ │ │ -DDeeffiinniittiioonn _s_p_e_c_f_u_n_._h_:_1_0_2_0 │ │ │ │ │ -_c_m_a_t_h │ │ │ │ │ - * _m_a_t_h_._h │ │ │ │ │ +182inline unsigned int │ │ │ │ │ +183stdc_trailing_ones_ull(unsigned long long int __value) │ │ │ │ │ +184{ return stdc_trailing_ones(__value); } │ │ │ │ │ +185/// @} │ │ │ │ │ +186 │ │ │ │ │ +187/** Find the leftmost (i.e. most significant) zero bit │ │ │ │ │ +188 * │ │ │ │ │ +189 * @param __value An unsigned integer. │ │ │ │ │ +190 * @return The one-based index of the first zero bit counting from the left, │ │ │ │ │ +191 * or zero if there are no zero bits. │ │ │ │ │ +192 * @since C++26 │ │ │ │ │ +193 * @{ │ │ │ │ │ +194 */ │ │ │ │ │ +195template │ │ │ │ │ +196inline unsigned int │ │ │ │ │ +197stdc_first_leading_zero(_Tp __value) │ │ │ │ │ +198{ │ │ │ │ │ +199 static_assert(std::__unsigned_integer<_Tp>); │ │ │ │ │ +200 return __value == _Tp(-1) ? 0 : 1 + std::countl_one(__value); │ │ │ │ │ +201} │ │ │ │ │ +202 │ │ │ │ │ +203inline unsigned int │ │ │ │ │ +204stdc_first_leading_zero_uc(unsigned char __value) │ │ │ │ │ +205{ return stdc_first_leading_zero(__value); } │ │ │ │ │ +206 │ │ │ │ │ +207inline unsigned int │ │ │ │ │ +208stdc_first_leading_zero_us(unsigned short __value) │ │ │ │ │ +209{ return stdc_first_leading_zero(__value); } │ │ │ │ │ +210 │ │ │ │ │ +211inline unsigned int │ │ │ │ │ +212stdc_first_leading_zero_ui(unsigned int __value) │ │ │ │ │ +213{ return stdc_first_leading_zero(__value); } │ │ │ │ │ +214 │ │ │ │ │ +215inline unsigned int │ │ │ │ │ +216stdc_first_leading_zero_ul(unsigned long int __value) │ │ │ │ │ +217{ return stdc_first_leading_zero(__value); } │ │ │ │ │ +218 │ │ │ │ │ +219inline unsigned int │ │ │ │ │ +220stdc_first_leading_zero_ull(unsigned long long int __value) │ │ │ │ │ +221{ return stdc_first_leading_zero(__value); } │ │ │ │ │ +222/// @} │ │ │ │ │ +223 │ │ │ │ │ +224/** Find the leftmost (i.e. most significant) one bit │ │ │ │ │ +225 * │ │ │ │ │ +226 * @param __value An unsigned integer. │ │ │ │ │ +227 * @return The one-based index of the first one bit counting from the left, │ │ │ │ │ +228 * or zero if there are no one bits. │ │ │ │ │ +229 * @since C++26 │ │ │ │ │ +230 * @{ │ │ │ │ │ +231 */ │ │ │ │ │ +232template │ │ │ │ │ +233inline unsigned int │ │ │ │ │ +234stdc_first_leading_one(_Tp __value) │ │ │ │ │ +235{ │ │ │ │ │ +236 static_assert(std::__unsigned_integer<_Tp>); │ │ │ │ │ +237 return __value == 0 ? 0 : 1 + std::countl_zero(__value); │ │ │ │ │ +238} │ │ │ │ │ +239 │ │ │ │ │ +240inline unsigned int │ │ │ │ │ +241stdc_first_leading_one_uc(unsigned char __value) │ │ │ │ │ +242{ return stdc_first_leading_one(__value); } │ │ │ │ │ +243 │ │ │ │ │ +244inline unsigned int │ │ │ │ │ +245stdc_first_leading_one_us(unsigned short __value) │ │ │ │ │ +246{ return stdc_first_leading_one(__value); } │ │ │ │ │ +247 │ │ │ │ │ +248inline unsigned int │ │ │ │ │ +249stdc_first_leading_one_ui(unsigned int __value) │ │ │ │ │ +250{ return stdc_first_leading_one(__value); } │ │ │ │ │ +251 │ │ │ │ │ +252inline unsigned int │ │ │ │ │ +253stdc_first_leading_one_ul(unsigned long int __value) │ │ │ │ │ +254{ return stdc_first_leading_one(__value); } │ │ │ │ │ +255 │ │ │ │ │ +256inline unsigned int │ │ │ │ │ +257stdc_first_leading_one_ull(unsigned long long int __value) │ │ │ │ │ +258{ return stdc_first_leading_one(__value); } │ │ │ │ │ +259/// @} │ │ │ │ │ +260 │ │ │ │ │ +261/** Find the rightmost (i.e. least significant) zero bit │ │ │ │ │ +262 * │ │ │ │ │ +263 * @param __value An unsigned integer. │ │ │ │ │ +264 * @return The one-based index of the first zero bit counting from the │ │ │ │ │ +right, │ │ │ │ │ +265 * or zero if there are no zero bits. │ │ │ │ │ +266 * @since C++26 │ │ │ │ │ +267 * @{ │ │ │ │ │ +268 */ │ │ │ │ │ +269template │ │ │ │ │ +270inline unsigned int │ │ │ │ │ +271stdc_first_trailing_zero(_Tp __value) │ │ │ │ │ +272{ │ │ │ │ │ +273 static_assert(std::__unsigned_integer<_Tp>); │ │ │ │ │ +274 return __value == _Tp(-1) ? 0 : 1 + std::countr_one(__value); │ │ │ │ │ +275} │ │ │ │ │ +276 │ │ │ │ │ +277inline unsigned int │ │ │ │ │ +278stdc_first_trailing_zero_uc(unsigned char __value) │ │ │ │ │ +279{ return stdc_first_trailing_zero(__value); } │ │ │ │ │ +280 │ │ │ │ │ +281inline unsigned int │ │ │ │ │ +282stdc_first_trailing_zero_us(unsigned short __value) │ │ │ │ │ +283{ return stdc_first_trailing_zero(__value); } │ │ │ │ │ +284 │ │ │ │ │ +285inline unsigned int │ │ │ │ │ +286stdc_first_trailing_zero_ui(unsigned int __value) │ │ │ │ │ +287{ return stdc_first_trailing_zero(__value); } │ │ │ │ │ +288 │ │ │ │ │ +289inline unsigned int │ │ │ │ │ +290stdc_first_trailing_zero_ul(unsigned long int __value) │ │ │ │ │ +291{ return stdc_first_trailing_zero(__value); } │ │ │ │ │ +292 │ │ │ │ │ +293inline unsigned int │ │ │ │ │ +294stdc_first_trailing_zero_ull(unsigned long long int __value) │ │ │ │ │ +295{ return stdc_first_trailing_zero(__value); } │ │ │ │ │ +296/// @} │ │ │ │ │ +297 │ │ │ │ │ +298/** Find the rightmost (i.e. least significant) one bit │ │ │ │ │ +299 * │ │ │ │ │ +300 * @param __value An unsigned integer. │ │ │ │ │ +301 * @return The one-based index of the first one bit counting from the right, │ │ │ │ │ +302 * or zero if there are no one bits. │ │ │ │ │ +303 * @since C++26 │ │ │ │ │ +304 * @{ │ │ │ │ │ +305 */ │ │ │ │ │ +306template │ │ │ │ │ +307inline unsigned int │ │ │ │ │ +308stdc_first_trailing_one(_Tp __value) │ │ │ │ │ +309{ │ │ │ │ │ +310 static_assert(std::__unsigned_integer<_Tp>); │ │ │ │ │ +311 return __value == 0 ? 0 : 1 + std::countr_zero(__value); │ │ │ │ │ +312} │ │ │ │ │ +313 │ │ │ │ │ +314inline unsigned int │ │ │ │ │ +315stdc_first_trailing_one_uc(unsigned char __value) │ │ │ │ │ +316{ return stdc_first_trailing_one(__value); } │ │ │ │ │ +317 │ │ │ │ │ +318inline unsigned int │ │ │ │ │ +319stdc_first_trailing_one_us(unsigned short __value) │ │ │ │ │ +320{ return stdc_first_trailing_one(__value); } │ │ │ │ │ +321 │ │ │ │ │ +322inline unsigned int │ │ │ │ │ +323stdc_first_trailing_one_ui(unsigned int __value) │ │ │ │ │ +324{ return stdc_first_trailing_one(__value); } │ │ │ │ │ +325 │ │ │ │ │ +326inline unsigned int │ │ │ │ │ +327stdc_first_trailing_one_ul(unsigned long int __value) │ │ │ │ │ +328{ return stdc_first_trailing_one(__value); } │ │ │ │ │ +329 │ │ │ │ │ +330inline unsigned int │ │ │ │ │ +331stdc_first_trailing_one_ull(unsigned long long int __value) │ │ │ │ │ +332{ return stdc_first_trailing_one(__value); } │ │ │ │ │ +333/// @} │ │ │ │ │ +334 │ │ │ │ │ +335/** Count zeros │ │ │ │ │ +336 * │ │ │ │ │ +337 * @param __value An unsigned integer. │ │ │ │ │ +338 * @return The total number of zero bits in `__value`. │ │ │ │ │ +339 * @since C++26 │ │ │ │ │ +340 * @{ │ │ │ │ │ +341 */ │ │ │ │ │ +342template │ │ │ │ │ +343inline unsigned int │ │ │ │ │ +344stdc_count_zeros(_Tp __value) │ │ │ │ │ +345{ │ │ │ │ │ +346 static_assert(std::__unsigned_integer<_Tp>); │ │ │ │ │ +347 return std::popcount(_Tp(~__value)); │ │ │ │ │ +348} │ │ │ │ │ +349 │ │ │ │ │ +350inline unsigned int │ │ │ │ │ +351stdc_count_zeros_uc(unsigned char __value) │ │ │ │ │ +352{ return stdc_count_zeros(__value); } │ │ │ │ │ +353 │ │ │ │ │ +354inline unsigned int │ │ │ │ │ +355stdc_count_zeros_us(unsigned short __value) │ │ │ │ │ +356{ return stdc_count_zeros(__value); } │ │ │ │ │ +357 │ │ │ │ │ +358inline unsigned int │ │ │ │ │ +359stdc_count_zeros_ui(unsigned int __value) │ │ │ │ │ +360{ return stdc_count_zeros(__value); } │ │ │ │ │ +361 │ │ │ │ │ +362inline unsigned int │ │ │ │ │ +363stdc_count_zeros_ul(unsigned long int __value) │ │ │ │ │ +364{ return stdc_count_zeros(__value); } │ │ │ │ │ +365 │ │ │ │ │ +366inline unsigned int │ │ │ │ │ +367stdc_count_zeros_ull(unsigned long long int __value) │ │ │ │ │ +368{ return stdc_count_zeros(__value); } │ │ │ │ │ +369/// @} │ │ │ │ │ +370 │ │ │ │ │ +371/** Count ones │ │ │ │ │ +372 * │ │ │ │ │ +373 * @param __value An unsigned integer. │ │ │ │ │ +374 * @return The total number of one bits in `__value`. │ │ │ │ │ +375 * @since C++26 │ │ │ │ │ +376 * @{ │ │ │ │ │ +377 */ │ │ │ │ │ +378template │ │ │ │ │ +379inline unsigned int │ │ │ │ │ +380stdc_count_ones(_Tp __value) │ │ │ │ │ +381{ │ │ │ │ │ +382 static_assert(std::__unsigned_integer<_Tp>); │ │ │ │ │ +383 return std::popcount(__value); │ │ │ │ │ +384} │ │ │ │ │ +385 │ │ │ │ │ +386inline unsigned int │ │ │ │ │ +387stdc_count_ones_uc(unsigned char __value) │ │ │ │ │ +388{ return stdc_count_ones(__value); } │ │ │ │ │ +389 │ │ │ │ │ +390inline unsigned int │ │ │ │ │ +391stdc_count_ones_us(unsigned short __value) │ │ │ │ │ +392{ return stdc_count_ones(__value); } │ │ │ │ │ +393 │ │ │ │ │ +394inline unsigned int │ │ │ │ │ +395stdc_count_ones_ui(unsigned int __value) │ │ │ │ │ +396{ return stdc_count_ones(__value); } │ │ │ │ │ +397 │ │ │ │ │ +398inline unsigned int │ │ │ │ │ +399stdc_count_ones_ul(unsigned long int __value) │ │ │ │ │ +400{ return stdc_count_ones(__value); } │ │ │ │ │ +401 │ │ │ │ │ +402inline unsigned int │ │ │ │ │ +403stdc_count_ones_ull(unsigned long long int __value) │ │ │ │ │ +404{ return stdc_count_ones(__value); } │ │ │ │ │ +405/// @} │ │ │ │ │ +406 │ │ │ │ │ +407/** Power of two check │ │ │ │ │ +408 * │ │ │ │ │ +409 * @param __value An unsigned integer. │ │ │ │ │ +410 * @return True if the value has a single bit set, false otherwise. │ │ │ │ │ +411 * @since C++26 │ │ │ │ │ +412 * @{ │ │ │ │ │ +413 */ │ │ │ │ │ +414template │ │ │ │ │ +415inline bool │ │ │ │ │ +416stdc_has_single_bit(_Tp __value) │ │ │ │ │ +417{ │ │ │ │ │ +418 static_assert(std::__unsigned_integer<_Tp>); │ │ │ │ │ +419 return std::has_single_bit(__value); │ │ │ │ │ +420} │ │ │ │ │ +421 │ │ │ │ │ +422inline bool │ │ │ │ │ +423stdc_has_single_bit_uc(unsigned char __value) │ │ │ │ │ +424{ return stdc_has_single_bit(__value); } │ │ │ │ │ +425 │ │ │ │ │ +426inline bool │ │ │ │ │ +427stdc_has_single_bit_us(unsigned short __value) │ │ │ │ │ +428{ return stdc_has_single_bit(__value); } │ │ │ │ │ +429 │ │ │ │ │ +430inline bool │ │ │ │ │ +431stdc_has_single_bit_ui(unsigned int __value) │ │ │ │ │ +432{ return stdc_has_single_bit(__value); } │ │ │ │ │ +433 │ │ │ │ │ +434inline bool │ │ │ │ │ +435stdc_has_single_bit_ul(unsigned long int __value) │ │ │ │ │ +436{ return stdc_has_single_bit(__value); } │ │ │ │ │ +437 │ │ │ │ │ +438inline bool │ │ │ │ │ +439stdc_has_single_bit_ull(unsigned long long int __value) │ │ │ │ │ +440{ return stdc_has_single_bit(__value); } │ │ │ │ │ +441/// @} │ │ │ │ │ +442 │ │ │ │ │ +443/** Bit width │ │ │ │ │ +444 * │ │ │ │ │ +445 * @param __value An unsigned integer. │ │ │ │ │ +446 * @return The minimum number of bits needed to represent `__value`. │ │ │ │ │ +447 * @since C++26 │ │ │ │ │ +448 * @{ │ │ │ │ │ +449 */ │ │ │ │ │ +450template │ │ │ │ │ +451inline unsigned int │ │ │ │ │ +452stdc_bit_width(_Tp __value) │ │ │ │ │ +453{ │ │ │ │ │ +454 static_assert(std::__unsigned_integer<_Tp>); │ │ │ │ │ +455 return std::bit_width(__value); │ │ │ │ │ +456} │ │ │ │ │ +457 │ │ │ │ │ +458inline unsigned int │ │ │ │ │ +459stdc_bit_width_uc(unsigned char __value) │ │ │ │ │ +460{ return stdc_bit_width(__value); } │ │ │ │ │ +461 │ │ │ │ │ +462inline unsigned int │ │ │ │ │ +463stdc_bit_width_us(unsigned short __value) │ │ │ │ │ +464{ return stdc_bit_width(__value); } │ │ │ │ │ +465 │ │ │ │ │ +466inline unsigned int │ │ │ │ │ +467stdc_bit_width_ui(unsigned int __value) │ │ │ │ │ +468{ return stdc_bit_width(__value); } │ │ │ │ │ +469 │ │ │ │ │ +470inline unsigned int │ │ │ │ │ +471stdc_bit_width_ul(unsigned long int __value) │ │ │ │ │ +472{ return stdc_bit_width(__value); } │ │ │ │ │ +473 │ │ │ │ │ +474inline unsigned int │ │ │ │ │ +475stdc_bit_width_ull(unsigned long long int __value) │ │ │ │ │ +476{ return stdc_bit_width(__value); } │ │ │ │ │ +477/// @} │ │ │ │ │ +478 │ │ │ │ │ +479/** Bit floor │ │ │ │ │ +480 * │ │ │ │ │ +481 * @param __value An unsigned integer. │ │ │ │ │ +482 * @return The largest power of two that is not greater than `__value`. │ │ │ │ │ +483 * @since C++26 │ │ │ │ │ +484 * @{ │ │ │ │ │ +485 */ │ │ │ │ │ +486template │ │ │ │ │ +487inline _Tp │ │ │ │ │ +488stdc_bit_floor(_Tp __value) │ │ │ │ │ +489{ │ │ │ │ │ +490 static_assert(std::__unsigned_integer<_Tp>); │ │ │ │ │ +491 return std::bit_floor(__value); │ │ │ │ │ +492} │ │ │ │ │ +493 │ │ │ │ │ +494inline unsigned char │ │ │ │ │ +495stdc_bit_floor_uc(unsigned char __value) │ │ │ │ │ +496{ return stdc_bit_floor(__value); } │ │ │ │ │ +497 │ │ │ │ │ +498inline unsigned short │ │ │ │ │ +499stdc_bit_floor_us(unsigned short __value) │ │ │ │ │ +500{ return stdc_bit_floor(__value); } │ │ │ │ │ +501 │ │ │ │ │ +502inline unsigned int │ │ │ │ │ +503stdc_bit_floor_ui(unsigned int __value) │ │ │ │ │ +504{ return stdc_bit_floor(__value); } │ │ │ │ │ +505 │ │ │ │ │ +506inline unsigned long int │ │ │ │ │ +507stdc_bit_floor_ul(unsigned long int __value) │ │ │ │ │ +508{ return stdc_bit_floor(__value); } │ │ │ │ │ +509 │ │ │ │ │ +510inline unsigned long long int │ │ │ │ │ +511stdc_bit_floor_ull(unsigned long long int __value) │ │ │ │ │ +512{ return stdc_bit_floor(__value); } │ │ │ │ │ +513/// @} │ │ │ │ │ +514 │ │ │ │ │ +515/** Bit ceiling │ │ │ │ │ +516 * │ │ │ │ │ +517 * Unlike `std::bit_ceil`, this is defined to return zero for values which │ │ │ │ │ +518 * are not representable in the return type. │ │ │ │ │ +519 * │ │ │ │ │ +520 * @param __value An unsigned integer. │ │ │ │ │ +521 * @return The smallest power of two that is not less than `__value`. │ │ │ │ │ +522 * @since C++26 │ │ │ │ │ +523 * @{ │ │ │ │ │ +524 */ │ │ │ │ │ +525template │ │ │ │ │ +526inline _Tp │ │ │ │ │ +527stdc_bit_ceil(_Tp __value) │ │ │ │ │ +528{ │ │ │ │ │ +529 static_assert(std::__unsigned_integer<_Tp>); │ │ │ │ │ +530 constexpr _Tp __msb = _Tp(1) << (_____g_n_u___c_x_x_:_:_____i_n_t___t_r_a_i_t_s_<___T_p_>_:_:_____d_i_g_i_t_s - │ │ │ │ │ +1); │ │ │ │ │ +531 return (__value & __msb) ? 0 : std::bit_ceil(__value); │ │ │ │ │ +532} │ │ │ │ │ +533 │ │ │ │ │ +534inline unsigned char │ │ │ │ │ +535stdc_bit_ceil_uc(unsigned char __value) │ │ │ │ │ +536{ return stdc_bit_ceil(__value); } │ │ │ │ │ +537 │ │ │ │ │ +538inline unsigned short │ │ │ │ │ +539stdc_bit_ceil_us(unsigned short __value) │ │ │ │ │ +540{ return stdc_bit_ceil(__value); } │ │ │ │ │ +541 │ │ │ │ │ +542inline unsigned int │ │ │ │ │ +543stdc_bit_ceil_ui(unsigned int __value) │ │ │ │ │ +544{ return stdc_bit_ceil(__value); } │ │ │ │ │ +545 │ │ │ │ │ +546inline unsigned long int │ │ │ │ │ +547stdc_bit_ceil_ul(unsigned long int __value) │ │ │ │ │ +548{ return stdc_bit_ceil(__value); } │ │ │ │ │ +549 │ │ │ │ │ +550inline unsigned long long int │ │ │ │ │ +551stdc_bit_ceil_ull(unsigned long long int __value) │ │ │ │ │ +552{ return stdc_bit_ceil(__value); } │ │ │ │ │ +553/// @} │ │ │ │ │ +554 │ │ │ │ │ +555#ifndef _GLIBCXX_DOXYGEN │ │ │ │ │ +556} // namespace __gnu_cxx │ │ │ │ │ +557#define _GLIBCXX_STDBIT_FUNC(F) \ │ │ │ │ │ +558 using __gnu_cxx::F ## _uc; \ │ │ │ │ │ +559 using __gnu_cxx::F ## _us; \ │ │ │ │ │ +560 using __gnu_cxx::F ## _ui; \ │ │ │ │ │ +561 using __gnu_cxx::F ## _ul; \ │ │ │ │ │ +562 using __gnu_cxx::F ## _ull; \ │ │ │ │ │ +563 using __gnu_cxx::F │ │ │ │ │ +564_GLIBCXX_STDBIT_FUNC(stdc_leading_zeros); │ │ │ │ │ +565_GLIBCXX_STDBIT_FUNC(stdc_leading_ones); │ │ │ │ │ +566_GLIBCXX_STDBIT_FUNC(stdc_trailing_zeros); │ │ │ │ │ +567_GLIBCXX_STDBIT_FUNC(stdc_trailing_ones); │ │ │ │ │ +568_GLIBCXX_STDBIT_FUNC(stdc_first_leading_zero); │ │ │ │ │ +569_GLIBCXX_STDBIT_FUNC(stdc_first_leading_one); │ │ │ │ │ +570_GLIBCXX_STDBIT_FUNC(stdc_first_trailing_zero); │ │ │ │ │ +571_GLIBCXX_STDBIT_FUNC(stdc_first_trailing_one); │ │ │ │ │ +572_GLIBCXX_STDBIT_FUNC(stdc_count_zeros); │ │ │ │ │ +573_GLIBCXX_STDBIT_FUNC(stdc_count_ones); │ │ │ │ │ +574_GLIBCXX_STDBIT_FUNC(stdc_has_single_bit); │ │ │ │ │ +575_GLIBCXX_STDBIT_FUNC(stdc_bit_width); │ │ │ │ │ +576_GLIBCXX_STDBIT_FUNC(stdc_bit_floor); │ │ │ │ │ +577_GLIBCXX_STDBIT_FUNC(stdc_bit_ceil); │ │ │ │ │ +578#undef _GLIBCXX_STDBIT_FUNC │ │ │ │ │ +579#endif // !DOXYGEN │ │ │ │ │ +580#endif // C++26 │ │ │ │ │ +581 │ │ │ │ │ +582#endif // _GLIBCXX_STDBIT_H │ │ │ │ │ +_b_i_t │ │ │ │ │ +_____g_n_u___c_x_x │ │ │ │ │ +GNU extensions for public use. │ │ │ │ │ +_____g_n_u___c_x_x_:_:_____i_n_t___t_r_a_i_t_s │ │ │ │ │ +__numeric_traits_integer< _Tp > __int_traits │ │ │ │ │ +Convenience alias for __numeric_traits. │ │ │ │ │ +DDeeffiinniittiioonn _e_x_t_/_n_u_m_e_r_i_c___t_r_a_i_t_s_._h_:_1_4_0 │ │ │ │ │ + * _s_t_d_b_i_t_._h │ │ │ │ │ * Generated by _[_d_o_x_y_g_e_n_]1.9.8 │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a00017.html │ │ │ │ @@ -1,15 +1,15 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ -libstdc++: fenv.h File Reference │ │ │ │ +libstdc++: stdlib.h File Reference │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ @@ -45,27 +45,27 @@ │ │ │ │ │ │ │ │
│ │ │ │
│ │ │ │ -
fenv.h File Reference
│ │ │ │ +
stdlib.h File Reference
│ │ │ │
│ │ │ │
│ │ │ │ │ │ │ │

Go to the source code of this file.

│ │ │ │

Detailed Description

│ │ │ │

This is a Standard C++ Library header.

│ │ │ │ │ │ │ │ -

Definition in file fenv.h.

│ │ │ │ +

Definition in file stdlib.h.

│ │ │ │
│ │ │ │
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├── html2text {} │ │ │ │ │ @@ -1,8 +1,8 @@ │ │ │ │ │ libstdc++ │ │ │ │ │ -fenv.h File Reference │ │ │ │ │ +stdlib.h File Reference │ │ │ │ │ _G_o_ _t_o_ _t_h_e_ _s_o_u_r_c_e_ _c_o_d_e_ _o_f_ _t_h_i_s_ _f_i_l_e_. │ │ │ │ │ ********** DDeettaaiilleedd DDeessccrriippttiioonn ********** │ │ │ │ │ This is a Standard C++ Library header. │ │ │ │ │ -Definition in file _f_e_n_v_._h. │ │ │ │ │ - * _f_e_n_v_._h │ │ │ │ │ +Definition in file _s_t_d_l_i_b_._h. │ │ │ │ │ + * _s_t_d_l_i_b_._h │ │ │ │ │ * Generated by _[_d_o_x_y_g_e_n_]1.9.8 │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a00017_source.html │ │ │ │ @@ -1,15 +1,15 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ -libstdc++: fenv.h Source File │ │ │ │ +libstdc++: stdlib.h Source File │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ @@ -45,20 +45,20 @@ │ │ │ │ │ │ │ │
│ │ │ │
│ │ │ │ -
fenv.h
│ │ │ │ +
stdlib.h
│ │ │ │
│ │ │ │
│ │ │ │ Go to the documentation of this file.
1// -*- C++ -*- compatibility header.
│ │ │ │
2
│ │ │ │ -
3// Copyright (C) 2007-2025 Free Software Foundation, Inc.
│ │ │ │ +
3// Copyright (C) 2002-2025 Free Software Foundation, Inc.
│ │ │ │
4//
│ │ │ │
5// This file is part of the GNU ISO C++ Library. This library is free
│ │ │ │
6// software; you can redistribute it and/or modify it under the
│ │ │ │
7// terms of the GNU General Public License as published by the
│ │ │ │
8// Free Software Foundation; either version 3, or (at your option)
│ │ │ │
9// any later version.
│ │ │ │
10
│ │ │ │ @@ -72,84 +72,85 @@ │ │ │ │
18// 3.1, as published by the Free Software Foundation.
│ │ │ │
19
│ │ │ │
20// You should have received a copy of the GNU General Public License and
│ │ │ │
21// a copy of the GCC Runtime Library Exception along with this program;
│ │ │ │
22// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
│ │ │ │
23// <http://www.gnu.org/licenses/>.
│ │ │ │
24
│ │ │ │ -
25/** @file fenv.h
│ │ │ │ +
25/** @file stdlib.h
│ │ │ │
26 * This is a Standard C++ Library header.
│ │ │ │
27 */
│ │ │ │
28
│ │ │ │ -
29#ifndef _GLIBCXX_FENV_H
│ │ │ │ -
30#define _GLIBCXX_FENV_H 1
│ │ │ │ -
31
│ │ │ │ -
32#ifdef _GLIBCXX_SYSHDR
│ │ │ │ -
33#pragma GCC system_header
│ │ │ │ -
34#endif
│ │ │ │ +
29#if !defined __cplusplus || defined _GLIBCXX_INCLUDE_NEXT_C_HEADERS
│ │ │ │ +
30# include_next <stdlib.h>
│ │ │ │ +
31#else
│ │ │ │ +
32
│ │ │ │ +
33#ifndef _GLIBCXX_STDLIB_H
│ │ │ │ +
34#define _GLIBCXX_STDLIB_H 1
│ │ │ │
35
│ │ │ │ -
36#pragma GCC diagnostic push
│ │ │ │ -
37#pragma GCC diagnostic ignored "-Wpedantic" // include_next
│ │ │ │ -
38
│ │ │ │ -
39#include <bits/c++config.h>
│ │ │ │ -
40#if _GLIBCXX_HAVE_FENV_H
│ │ │ │ -
41# include_next <fenv.h>
│ │ │ │ -
42#endif
│ │ │ │ -
43
│ │ │ │ -
44#pragma GCC diagnostic pop
│ │ │ │ -
45
│ │ │ │ -
46#if __cplusplus >= 201103L
│ │ │ │ -
47
│ │ │ │ -
48#if _GLIBCXX_USE_C99_FENV
│ │ │ │ -
49
│ │ │ │ -
50#undef feclearexcept
│ │ │ │ -
51#undef fegetexceptflag
│ │ │ │ -
52#undef feraiseexcept
│ │ │ │ -
53#undef fesetexceptflag
│ │ │ │ -
54#undef fetestexcept
│ │ │ │ -
55#undef fegetround
│ │ │ │ -
56#undef fesetround
│ │ │ │ -
57#undef fegetenv
│ │ │ │ -
58#undef feholdexcept
│ │ │ │ -
59#undef fesetenv
│ │ │ │ -
60#undef feupdateenv
│ │ │ │ -
61
│ │ │ │ -
62namespace std
│ │ │ │ -
63{
│ │ │ │ -
64 // types
│ │ │ │ -
65 using ::fenv_t;
│ │ │ │ -
66 using ::fexcept_t;
│ │ │ │ -
67
│ │ │ │ -
68 // functions
│ │ │ │ -
69 using ::feclearexcept;
│ │ │ │ -
70 using ::fegetexceptflag;
│ │ │ │ -
71 using ::feraiseexcept;
│ │ │ │ -
72 using ::fesetexceptflag;
│ │ │ │ -
73 using ::fetestexcept;
│ │ │ │ -
74
│ │ │ │ -
75 using ::fegetround;
│ │ │ │ -
76 using ::fesetround;
│ │ │ │ -
77
│ │ │ │ -
78 using ::fegetenv;
│ │ │ │ -
79 using ::feholdexcept;
│ │ │ │ -
80 using ::fesetenv;
│ │ │ │ -
81 using ::feupdateenv;
│ │ │ │ -
82} // namespace
│ │ │ │ -
83
│ │ │ │ -
84#endif // _GLIBCXX_USE_C99_FENV
│ │ │ │ -
85
│ │ │ │ -
86#endif // C++11
│ │ │ │ +
36# include <cstdlib>
│ │ │ │ +
37
│ │ │ │ +
38using std::abort;
│ │ │ │ +
39using std::atexit;
│ │ │ │ +
40using std::exit;
│ │ │ │ +
41#if __cplusplus >= 201103L
│ │ │ │ +
42# ifdef _GLIBCXX_HAVE_AT_QUICK_EXIT
│ │ │ │ +
43 using std::at_quick_exit;
│ │ │ │ +
44# endif
│ │ │ │ +
45# ifdef _GLIBCXX_HAVE_QUICK_EXIT
│ │ │ │ +
46 using std::quick_exit;
│ │ │ │ +
47# endif
│ │ │ │ +
48# if _GLIBCXX_USE_C99_STDLIB
│ │ │ │ +
49 using std::_Exit;
│ │ │ │ +
50# endif
│ │ │ │ +
51#endif
│ │ │ │ +
52
│ │ │ │ +
53#if _GLIBCXX_HOSTED
│ │ │ │ +
54using std::div_t;
│ │ │ │ +
55using std::ldiv_t;
│ │ │ │ +
56
│ │ │ │ +
57using std::abs;
│ │ │ │ +
58using std::atof;
│ │ │ │ +
59using std::atoi;
│ │ │ │ +
60using std::atol;
│ │ │ │ +
61using std::bsearch;
│ │ │ │ +
62using std::calloc;
│ │ │ │ +
63using std::div;
│ │ │ │ +
64using std::free;
│ │ │ │ +
65using std::getenv;
│ │ │ │ +
66using std::labs;
│ │ │ │ +
67using std::ldiv;
│ │ │ │ +
68using std::malloc;
│ │ │ │ +
69#ifdef _GLIBCXX_HAVE_MBSTATE_T
│ │ │ │ +
70using std::mblen;
│ │ │ │ +
71using std::mbstowcs;
│ │ │ │ +
72using std::mbtowc;
│ │ │ │ +
73#endif // _GLIBCXX_HAVE_MBSTATE_T
│ │ │ │ +
74using std::qsort;
│ │ │ │ +
75using std::rand;
│ │ │ │ +
76using std::realloc;
│ │ │ │ +
77using std::srand;
│ │ │ │ +
78using std::strtod;
│ │ │ │ +
79using std::strtol;
│ │ │ │ +
80using std::strtoul;
│ │ │ │ +
81using std::system;
│ │ │ │ +
82#ifdef _GLIBCXX_USE_WCHAR_T
│ │ │ │ +
83using std::wcstombs;
│ │ │ │ +
84using std::wctomb;
│ │ │ │ +
85#endif // _GLIBCXX_USE_WCHAR_T
│ │ │ │ +
86#endif
│ │ │ │
87
│ │ │ │ -
88#endif // _GLIBCXX_FENV_H
│ │ │ │ - │ │ │ │ -
ISO C++ entities toplevel namespace is std.
│ │ │ │ +
88#endif // _GLIBCXX_STDLIB_H
│ │ │ │ +
89#endif // __cplusplus
│ │ │ │ +
_Tp abs(const complex< _Tp > &)
Return magnitude of z.
Definition complex:968
│ │ │ │ + │ │ │ │
│ │ │ │
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├── html2text {} │ │ │ │ │ @@ -1,13 +1,13 @@ │ │ │ │ │ libstdc++ │ │ │ │ │ -fenv.h │ │ │ │ │ +stdlib.h │ │ │ │ │ _G_o_ _t_o_ _t_h_e_ _d_o_c_u_m_e_n_t_a_t_i_o_n_ _o_f_ _t_h_i_s_ _f_i_l_e_. │ │ │ │ │ 1// -*- C++ -*- compatibility header. │ │ │ │ │ 2 │ │ │ │ │ -3// Copyright (C) 2007-2025 Free Software Foundation, Inc. │ │ │ │ │ +3// Copyright (C) 2002-2025 Free Software Foundation, Inc. │ │ │ │ │ 4// │ │ │ │ │ 5// This file is part of the GNU ISO C++ Library. This library is free │ │ │ │ │ 6// software; you can redistribute it and/or modify it under the │ │ │ │ │ 7// terms of the GNU General Public License as published by the │ │ │ │ │ 8// Free Software Foundation; either version 3, or (at your option) │ │ │ │ │ 9// any later version. │ │ │ │ │ 10 │ │ │ │ │ @@ -21,76 +21,79 @@ │ │ │ │ │ 18// 3.1, as published by the Free Software Foundation. │ │ │ │ │ 19 │ │ │ │ │ 20// You should have received a copy of the GNU General Public License and │ │ │ │ │ 21// a copy of the GCC Runtime Library Exception along with this program; │ │ │ │ │ 22// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see │ │ │ │ │ 23// . │ │ │ │ │ 24 │ │ │ │ │ -25/** @file fenv.h │ │ │ │ │ +25/** @file stdlib.h │ │ │ │ │ 26 * This is a Standard C++ Library header. │ │ │ │ │ 27 */ │ │ │ │ │ 28 │ │ │ │ │ -29#ifndef _GLIBCXX_FENV_H │ │ │ │ │ -30#define _GLIBCXX_FENV_H 1 │ │ │ │ │ -31 │ │ │ │ │ -32#ifdef _GLIBCXX_SYSHDR │ │ │ │ │ -33#pragma GCC system_header │ │ │ │ │ -34#endif │ │ │ │ │ +29#if !defined __cplusplus || defined _GLIBCXX_INCLUDE_NEXT_C_HEADERS │ │ │ │ │ +30# include_next │ │ │ │ │ +31#else │ │ │ │ │ +32 │ │ │ │ │ +33#ifndef _GLIBCXX_STDLIB_H │ │ │ │ │ +34#define _GLIBCXX_STDLIB_H 1 │ │ │ │ │ 35 │ │ │ │ │ -36#pragma GCC diagnostic push │ │ │ │ │ -37#pragma GCC diagnostic ignored "-Wpedantic" // include_next │ │ │ │ │ -38 │ │ │ │ │ -39#include <_b_i_t_s_/_c_+_+_c_o_n_f_i_g_._h> │ │ │ │ │ -40#if _GLIBCXX_HAVE_FENV_H │ │ │ │ │ -41# include_next │ │ │ │ │ -42#endif │ │ │ │ │ -43 │ │ │ │ │ -44#pragma GCC diagnostic pop │ │ │ │ │ -45 │ │ │ │ │ -46#if __cplusplus >= 201103L │ │ │ │ │ -47 │ │ │ │ │ -48#if _GLIBCXX_USE_C99_FENV │ │ │ │ │ -49 │ │ │ │ │ -50#undef feclearexcept │ │ │ │ │ -51#undef fegetexceptflag │ │ │ │ │ -52#undef feraiseexcept │ │ │ │ │ -53#undef fesetexceptflag │ │ │ │ │ -54#undef fetestexcept │ │ │ │ │ -55#undef fegetround │ │ │ │ │ -56#undef fesetround │ │ │ │ │ -57#undef fegetenv │ │ │ │ │ -58#undef feholdexcept │ │ │ │ │ -59#undef fesetenv │ │ │ │ │ -60#undef feupdateenv │ │ │ │ │ -61 │ │ │ │ │ -62namespace _s_t_d │ │ │ │ │ -63{ │ │ │ │ │ -64 // types │ │ │ │ │ -65 using ::fenv_t; │ │ │ │ │ -66 using ::fexcept_t; │ │ │ │ │ -67 │ │ │ │ │ -68 // functions │ │ │ │ │ -69 using ::feclearexcept; │ │ │ │ │ -70 using ::fegetexceptflag; │ │ │ │ │ -71 using ::feraiseexcept; │ │ │ │ │ -72 using ::fesetexceptflag; │ │ │ │ │ -73 using ::fetestexcept; │ │ │ │ │ -74 │ │ │ │ │ -75 using ::fegetround; │ │ │ │ │ -76 using ::fesetround; │ │ │ │ │ -77 │ │ │ │ │ -78 using ::fegetenv; │ │ │ │ │ -79 using ::feholdexcept; │ │ │ │ │ -80 using ::fesetenv; │ │ │ │ │ -81 using ::feupdateenv; │ │ │ │ │ -82} // namespace │ │ │ │ │ -83 │ │ │ │ │ -84#endif // _GLIBCXX_USE_C99_FENV │ │ │ │ │ -85 │ │ │ │ │ -86#endif // C++11 │ │ │ │ │ +36# include <_c_s_t_d_l_i_b> │ │ │ │ │ +37 │ │ │ │ │ +38using std::abort; │ │ │ │ │ +39using std::atexit; │ │ │ │ │ +40using std::exit; │ │ │ │ │ +41#if __cplusplus >= 201103L │ │ │ │ │ +42# ifdef _GLIBCXX_HAVE_AT_QUICK_EXIT │ │ │ │ │ +43 using std::at_quick_exit; │ │ │ │ │ +44# endif │ │ │ │ │ +45# ifdef _GLIBCXX_HAVE_QUICK_EXIT │ │ │ │ │ +46 using std::quick_exit; │ │ │ │ │ +47# endif │ │ │ │ │ +48# if _GLIBCXX_USE_C99_STDLIB │ │ │ │ │ +49 using std::_Exit; │ │ │ │ │ +50# endif │ │ │ │ │ +51#endif │ │ │ │ │ +52 │ │ │ │ │ +53#if _GLIBCXX_HOSTED │ │ │ │ │ +54using std::div_t; │ │ │ │ │ +55using std::ldiv_t; │ │ │ │ │ +56 │ │ │ │ │ +57using _s_t_d_:_:_a_b_s; │ │ │ │ │ +58using std::atof; │ │ │ │ │ +59using std::atoi; │ │ │ │ │ +60using std::atol; │ │ │ │ │ +61using std::bsearch; │ │ │ │ │ +62using std::calloc; │ │ │ │ │ +63using std::div; │ │ │ │ │ +64using std::free; │ │ │ │ │ +65using std::getenv; │ │ │ │ │ +66using std::labs; │ │ │ │ │ +67using std::ldiv; │ │ │ │ │ +68using std::malloc; │ │ │ │ │ +69#ifdef _GLIBCXX_HAVE_MBSTATE_T │ │ │ │ │ +70using std::mblen; │ │ │ │ │ +71using std::mbstowcs; │ │ │ │ │ +72using std::mbtowc; │ │ │ │ │ +73#endif // _GLIBCXX_HAVE_MBSTATE_T │ │ │ │ │ +74using std::qsort; │ │ │ │ │ +75using std::rand; │ │ │ │ │ +76using std::realloc; │ │ │ │ │ +77using std::srand; │ │ │ │ │ +78using std::strtod; │ │ │ │ │ +79using std::strtol; │ │ │ │ │ +80using std::strtoul; │ │ │ │ │ +81using std::system; │ │ │ │ │ +82#ifdef _GLIBCXX_USE_WCHAR_T │ │ │ │ │ +83using std::wcstombs; │ │ │ │ │ +84using std::wctomb; │ │ │ │ │ +85#endif // _GLIBCXX_USE_WCHAR_T │ │ │ │ │ +86#endif │ │ │ │ │ 87 │ │ │ │ │ -88#endif // _GLIBCXX_FENV_H │ │ │ │ │ -_c_+_+_c_o_n_f_i_g_._h │ │ │ │ │ -_s_t_d │ │ │ │ │ -ISO C++ entities toplevel namespace is std. │ │ │ │ │ - * _f_e_n_v_._h │ │ │ │ │ +88#endif // _GLIBCXX_STDLIB_H │ │ │ │ │ +89#endif // __cplusplus │ │ │ │ │ +_s_t_d_:_:_a_b_s │ │ │ │ │ +_Tp abs(const complex< _Tp > &) │ │ │ │ │ +Return magnitude of z. │ │ │ │ │ +DDeeffiinniittiioonn _c_o_m_p_l_e_x_:_9_6_8 │ │ │ │ │ +_c_s_t_d_l_i_b │ │ │ │ │ + * _s_t_d_l_i_b_._h │ │ │ │ │ * Generated by _[_d_o_x_y_g_e_n_]1.9.8 │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a00020.html │ │ │ │ @@ -1,15 +1,15 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ -libstdc++: tgmath.h File Reference │ │ │ │ +libstdc++: complex.h File Reference │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ @@ -45,27 +45,27 @@ │ │ │ │ │ │ │ │
│ │ │ │
│ │ │ │ -
tgmath.h File Reference
│ │ │ │ +
complex.h File Reference
│ │ │ │
│ │ │ │
│ │ │ │ │ │ │ │

Go to the source code of this file.

│ │ │ │

Detailed Description

│ │ │ │

This is a Standard C++ Library header.

│ │ │ │ │ │ │ │ -

Definition in file tgmath.h.

│ │ │ │ +

Definition in file complex.h.

│ │ │ │
│ │ │ │
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├── html2text {} │ │ │ │ │ @@ -1,8 +1,8 @@ │ │ │ │ │ libstdc++ │ │ │ │ │ -tgmath.h File Reference │ │ │ │ │ +complex.h File Reference │ │ │ │ │ _G_o_ _t_o_ _t_h_e_ _s_o_u_r_c_e_ _c_o_d_e_ _o_f_ _t_h_i_s_ _f_i_l_e_. │ │ │ │ │ ********** DDeettaaiilleedd DDeessccrriippttiioonn ********** │ │ │ │ │ This is a Standard C++ Library header. │ │ │ │ │ -Definition in file _t_g_m_a_t_h_._h. │ │ │ │ │ - * _t_g_m_a_t_h_._h │ │ │ │ │ +Definition in file _c_o_m_p_l_e_x_._h. │ │ │ │ │ + * _c_o_m_p_l_e_x_._h │ │ │ │ │ * Generated by _[_d_o_x_y_g_e_n_]1.9.8 │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a00020_source.html │ │ │ │ @@ -1,15 +1,15 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ -libstdc++: tgmath.h Source File │ │ │ │ +libstdc++: complex.h Source File │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ @@ -45,15 +45,15 @@ │ │ │ │ │ │ │ │
│ │ │ │
│ │ │ │ -
tgmath.h
│ │ │ │ +
complex.h
│ │ │ │
│ │ │ │
│ │ │ │ Go to the documentation of this file.
1// -*- C++ -*- compatibility header.
│ │ │ │
2
│ │ │ │
3// Copyright (C) 2007-2025 Free Software Foundation, Inc.
│ │ │ │
4//
│ │ │ │
5// This file is part of the GNU ISO C++ Library. This library is free
│ │ │ │ @@ -72,40 +72,46 @@ │ │ │ │
18// 3.1, as published by the Free Software Foundation.
│ │ │ │
19
│ │ │ │
20// You should have received a copy of the GNU General Public License and
│ │ │ │
21// a copy of the GCC Runtime Library Exception along with this program;
│ │ │ │
22// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
│ │ │ │
23// <http://www.gnu.org/licenses/>.
│ │ │ │
24
│ │ │ │ -
25/** @file tgmath.h
│ │ │ │ +
25/** @file complex.h
│ │ │ │
26 * This is a Standard C++ Library header.
│ │ │ │
27 */
│ │ │ │
28
│ │ │ │ -
29#ifndef _GLIBCXX_TGMATH_H
│ │ │ │ -
30#define _GLIBCXX_TGMATH_H 1
│ │ │ │ +
29#ifndef _GLIBCXX_COMPLEX_H
│ │ │ │ +
30#define _GLIBCXX_COMPLEX_H 1
│ │ │ │
31
│ │ │ │ -
32#include <bits/c++config.h>
│ │ │ │ +
32#include <bits/c++config.h>
│ │ │ │
33
│ │ │ │
34#if __cplusplus >= 201103L
│ │ │ │ -
35# include <cmath>
│ │ │ │ -
36extern "C++" {
│ │ │ │ -
37# include <complex>
│ │ │ │ -
38}
│ │ │ │ -
39#elif _GLIBCXX_HAVE_TGMATH_H
│ │ │ │ -
40# include_next <tgmath.h>
│ │ │ │ -
41#endif
│ │ │ │ -
42
│ │ │ │ -
43#endif
│ │ │ │ - │ │ │ │ - │ │ │ │ +
35extern "C++" {
│ │ │ │ +
36#include <complex>
│ │ │ │ +
37}
│ │ │ │ +
38#endif
│ │ │ │ +
39
│ │ │ │ +
40#if __cplusplus >= 201103L && defined(__STRICT_ANSI__)
│ │ │ │ +
41// For strict modes do not include the C library's <complex.h>, see PR 82417.
│ │ │ │ +
42#elif _GLIBCXX_HAVE_COMPLEX_H
│ │ │ │ +
43# include_next <complex.h>
│ │ │ │ +
44# ifdef _GLIBCXX_COMPLEX
│ │ │ │ +
45// See PR56111, keep the macro in C++03 if possible.
│ │ │ │ +
46# undef complex
│ │ │ │ +
47# endif
│ │ │ │ +
48#endif
│ │ │ │ +
49
│ │ │ │ +
50#endif
│ │ │ │ + │ │ │ │ │ │ │ │
│ │ │ │
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├── html2text {} │ │ │ │ │ @@ -1,9 +1,9 @@ │ │ │ │ │ libstdc++ │ │ │ │ │ -tgmath.h │ │ │ │ │ +complex.h │ │ │ │ │ _G_o_ _t_o_ _t_h_e_ _d_o_c_u_m_e_n_t_a_t_i_o_n_ _o_f_ _t_h_i_s_ _f_i_l_e_. │ │ │ │ │ 1// -*- C++ -*- compatibility header. │ │ │ │ │ 2 │ │ │ │ │ 3// Copyright (C) 2007-2025 Free Software Foundation, Inc. │ │ │ │ │ 4// │ │ │ │ │ 5// This file is part of the GNU ISO C++ Library. This library is free │ │ │ │ │ 6// software; you can redistribute it and/or modify it under the │ │ │ │ │ @@ -21,31 +21,37 @@ │ │ │ │ │ 18// 3.1, as published by the Free Software Foundation. │ │ │ │ │ 19 │ │ │ │ │ 20// You should have received a copy of the GNU General Public License and │ │ │ │ │ 21// a copy of the GCC Runtime Library Exception along with this program; │ │ │ │ │ 22// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see │ │ │ │ │ 23// . │ │ │ │ │ 24 │ │ │ │ │ -25/** @file tgmath.h │ │ │ │ │ +25/** @file complex.h │ │ │ │ │ 26 * This is a Standard C++ Library header. │ │ │ │ │ 27 */ │ │ │ │ │ 28 │ │ │ │ │ -29#ifndef _GLIBCXX_TGMATH_H │ │ │ │ │ -30#define _GLIBCXX_TGMATH_H 1 │ │ │ │ │ +29#ifndef _GLIBCXX_COMPLEX_H │ │ │ │ │ +30#define _GLIBCXX_COMPLEX_H 1 │ │ │ │ │ 31 │ │ │ │ │ 32#include <_b_i_t_s_/_c_+_+_c_o_n_f_i_g_._h> │ │ │ │ │ 33 │ │ │ │ │ 34#if __cplusplus >= 201103L │ │ │ │ │ -35# include <_c_m_a_t_h> │ │ │ │ │ -36extern "C++" { │ │ │ │ │ -37# include <_c_o_m_p_l_e_x> │ │ │ │ │ -38} │ │ │ │ │ -39#elif _GLIBCXX_HAVE_TGMATH_H │ │ │ │ │ -40# include_next │ │ │ │ │ -41#endif │ │ │ │ │ -42 │ │ │ │ │ -43#endif │ │ │ │ │ +35extern "C++" { │ │ │ │ │ +36#include <_c_o_m_p_l_e_x> │ │ │ │ │ +37} │ │ │ │ │ +38#endif │ │ │ │ │ +39 │ │ │ │ │ +40#if __cplusplus >= 201103L && defined(__STRICT_ANSI__) │ │ │ │ │ +41// For strict modes do not include the C library's , see PR 82417. │ │ │ │ │ +42#elif _GLIBCXX_HAVE_COMPLEX_H │ │ │ │ │ +43# include_next │ │ │ │ │ +44# ifdef _GLIBCXX_COMPLEX │ │ │ │ │ +45// See PR56111, keep the macro in C++03 if possible. │ │ │ │ │ +46# undef complex │ │ │ │ │ +47# endif │ │ │ │ │ +48#endif │ │ │ │ │ +49 │ │ │ │ │ +50#endif │ │ │ │ │ _c_+_+_c_o_n_f_i_g_._h │ │ │ │ │ -_c_m_a_t_h │ │ │ │ │ _c_o_m_p_l_e_x │ │ │ │ │ - * _t_g_m_a_t_h_._h │ │ │ │ │ + * _c_o_m_p_l_e_x_._h │ │ │ │ │ * Generated by _[_d_o_x_y_g_e_n_]1.9.8 │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a00023_source.html │ │ │ │ @@ -80,15 +80,15 @@ │ │ │ │
26 * This is a Standard C++ Library header.
│ │ │ │
27 */
│ │ │ │
28
│ │ │ │
29#ifndef _GLIBCXX_STDATOMIC_H
│ │ │ │
30#define _GLIBCXX_STDATOMIC_H
│ │ │ │
31
│ │ │ │
32#define __glibcxx_want_stdatomic_h
│ │ │ │ -
33#include <bits/version.h>
│ │ │ │ +
33#include <bits/version.h>
│ │ │ │
34
│ │ │ │
35#ifdef __cpp_lib_stdatomic_h // C++ >= 23
│ │ │ │
36#include <atomic>
│ │ │ │
37
│ │ │ │
38#define _Atomic(_Tp) ::std::atomic<_Tp>
│ │ │ │
39
│ │ │ │ │ │ │ │ @@ -180,15 +180,15 @@ │ │ │ │
126using std::atomic_signal_fence;
│ │ │ │
127
│ │ │ │
128#elif defined _GLIBCXX_CLANG
│ │ │ │
129# include_next <stdatomic.h>
│ │ │ │
130#endif // __cpp_lib_stdatomic_h
│ │ │ │
131#endif // _GLIBCXX_STDATOMIC_H
│ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │
atomic< intmax_t > atomic_intmax_t
atomic_intmax_t
Definition atomic:1208
│ │ │ │
atomic< uintptr_t > atomic_uintptr_t
atomic_uintptr_t
Definition atomic:1199
│ │ │ │
atomic< int_least8_t > atomic_int_least8_t
atomic_int_least8_t
Definition atomic:1146
│ │ │ │
atomic< uint_fast8_t > atomic_uint_fast8_t
atomic_uint_fast8_t
Definition atomic:1174
│ │ │ │
atomic< intptr_t > atomic_intptr_t
atomic_intptr_t
Definition atomic:1196
│ │ │ │
atomic< int16_t > atomic_int16_t
atomic_int16_t
Definition atomic:1127
│ │ │ │
atomic< size_t > atomic_size_t
atomic_size_t
Definition atomic:1202
│ │ │ │ @@ -208,15 +208,15 @@ │ │ │ │
atomic< int32_t > atomic_int32_t
atomic_int32_t
Definition atomic:1133
│ │ │ │
atomic< uint_fast16_t > atomic_uint_fast16_t
atomic_uint_fast16_t
Definition atomic:1180
│ │ │ │
atomic< int8_t > atomic_int8_t
atomic_int8_t
Definition atomic:1121
│ │ │ │
atomic< int_fast64_t > atomic_int_fast64_t
atomic_int_fast64_t
Definition atomic:1189
│ │ │ │
atomic< ptrdiff_t > atomic_ptrdiff_t
atomic_ptrdiff_t
Definition atomic:1205
│ │ │ │
atomic< int_least16_t > atomic_int_least16_t
atomic_int_least16_t
Definition atomic:1152
│ │ │ │
atomic< int_fast8_t > atomic_int_fast8_t
atomic_int_fast8_t
Definition atomic:1171
│ │ │ │ -
memory_order
Enumeration for memory_order.
Definition atomic_base.h:66
│ │ │ │ +
memory_order
Enumeration for memory_order.
Definition atomic_base.h:66
│ │ │ │
atomic< int_least64_t > atomic_int_least64_t
atomic_int_least64_t
Definition atomic:1164
│ │ │ │
atomic< uint_fast32_t > atomic_uint_fast32_t
atomic_uint_fast32_t
Definition atomic:1186
│ │ │ │
atomic< uint32_t > atomic_uint32_t
atomic_uint32_t
Definition atomic:1136
│ │ │ │
atomic<bool>
Definition atomic:72
│ │ │ │
Explicit specialization for char.
Definition atomic:718
│ │ │ │
Explicit specialization for signed char.
Definition atomic:741
│ │ │ │
Explicit specialization for unsigned char.
Definition atomic:764
│ │ │ │ @@ -227,15 +227,15 @@ │ │ │ │
Explicit specialization for long.
Definition atomic:879
│ │ │ │
Explicit specialization for unsigned long.
Definition atomic:902
│ │ │ │
Explicit specialization for long long.
Definition atomic:925
│ │ │ │
Explicit specialization for unsigned long long.
Definition atomic:948
│ │ │ │
Explicit specialization for wchar_t.
Definition atomic:971
│ │ │ │
Explicit specialization for char16_t.
Definition atomic:1020
│ │ │ │
Explicit specialization for char32_t.
Definition atomic:1044
│ │ │ │ -
atomic_flag
│ │ │ │ +
atomic_flag
│ │ │ │
│ │ │ │
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a00032_source.html │ │ │ │ @@ -98,18 +98,18 @@ │ │ │ │
44#ifdef _GLIBCXX_SYSHDR
│ │ │ │
45#pragma GCC system_header
│ │ │ │
46#endif
│ │ │ │
47
│ │ │ │
48#pragma GCC visibility push(default)
│ │ │ │
49
│ │ │ │
50#include <stddef.h>
│ │ │ │ -
51#include <bits/c++config.h>
│ │ │ │ -
52#include <bits/cxxabi_tweaks.h>
│ │ │ │ -
53#include <bits/cxxabi_forced.h>
│ │ │ │ - │ │ │ │ +
51#include <bits/c++config.h>
│ │ │ │ +
52#include <bits/cxxabi_tweaks.h>
│ │ │ │ +
53#include <bits/cxxabi_forced.h>
│ │ │ │ + │ │ │ │
55
│ │ │ │
56#ifdef __cplusplus
│ │ │ │
57namespace __cxxabiv1
│ │ │ │
58{
│ │ │ │
59 extern "C"
│ │ │ │
60 {
│ │ │ │
61#endif
│ │ │ │ @@ -766,23 +766,23 @@ │ │ │ │
712}
│ │ │ │
713#endif // __cplusplus
│ │ │ │
714
│ │ │ │
715#pragma GCC visibility pop
│ │ │ │
716
│ │ │ │
717#endif // __CXXABI_H
│ │ │ │ │ │ │ │ - │ │ │ │ - │ │ │ │ - │ │ │ │ - │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │
ISO C++ entities toplevel namespace is std.
│ │ │ │
GNU extensions for public use.
│ │ │ │ -
constexpr _Iterator __base(_Iterator __it)
│ │ │ │ +
constexpr _Iterator __base(_Iterator __it)
│ │ │ │
Part of RTTI.
Definition typeinfo:94
│ │ │ │ -
Base class for all library exceptions.
Definition exception.h:62
│ │ │ │ +
Base class for all library exceptions.
Definition exception.h:62
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a00041_source.html │ │ │ │ @@ -89,22 +89,22 @@ │ │ │ │
35#ifndef _NEW
│ │ │ │
36#define _NEW
│ │ │ │
37
│ │ │ │
38#ifdef _GLIBCXX_SYSHDR
│ │ │ │
39#pragma GCC system_header
│ │ │ │
40#endif
│ │ │ │
41
│ │ │ │ -
42#include <bits/c++config.h>
│ │ │ │ -
43#include <bits/exception.h>
│ │ │ │ +
42#include <bits/c++config.h>
│ │ │ │ +
43#include <bits/exception.h>
│ │ │ │
44
│ │ │ │
45#define __glibcxx_want_launder
│ │ │ │
46#define __glibcxx_want_hardware_interference_size
│ │ │ │
47#define __glibcxx_want_destroying_delete
│ │ │ │
48#define __glibcxx_want_constexpr_new
│ │ │ │ -
49#include <bits/version.h>
│ │ │ │ +
49#include <bits/version.h>
│ │ │ │
50
│ │ │ │
51#pragma GCC diagnostic push
│ │ │ │
52#pragma GCC diagnostic ignored "-Wc++11-extensions" // scoped enum
│ │ │ │
53
│ │ │ │
54#pragma GCC visibility push(default)
│ │ │ │
55
│ │ │ │
56extern "C++" {
│ │ │ │ @@ -321,26 +321,26 @@ │ │ │ │
263#endif // C++20
│ │ │ │
264}
│ │ │ │
265
│ │ │ │
266#pragma GCC visibility pop
│ │ │ │
267#pragma GCC diagnostic pop
│ │ │ │
268
│ │ │ │
269#endif
│ │ │ │ - │ │ │ │ - │ │ │ │ - │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │
ISO C++ entities toplevel namespace is std.
│ │ │ │
new_handler set_new_handler(new_handler)
Takes a replacement handler as the argument, returns the previous handler.
│ │ │ │
new_handler get_new_handler() noexcept
Return the current new handler.
│ │ │ │
constexpr destroying_delete_t destroying_delete
Tag variable of type destroying_delete_t.
Definition new:262
│ │ │ │
void(* new_handler)()
Definition new:114
│ │ │ │
Exception possibly thrown by new.
Definition new:67
│ │ │ │
virtual const char * what() const
│ │ │ │
Tag type used to declare a class-specific operator delete that can invoke the destructor before deall...
Definition new:258
│ │ │ │ -
Base class for all library exceptions.
Definition exception.h:62
│ │ │ │ +
Base class for all library exceptions.
Definition exception.h:62
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a00065_source.html │ │ │ │ @@ -96,30 +96,30 @@ │ │ │ │
42#ifndef _GLIBCXX_BITSET
│ │ │ │
43#define _GLIBCXX_BITSET 1
│ │ │ │
44
│ │ │ │
45#ifdef _GLIBCXX_SYSHDR
│ │ │ │
46#pragma GCC system_header
│ │ │ │
47#endif
│ │ │ │
48
│ │ │ │ -
49#include <bits/functexcept.h> // For invalid_argument, out_of_range,
│ │ │ │ +
49#include <bits/functexcept.h> // For invalid_argument, out_of_range,
│ │ │ │
50 // overflow_error
│ │ │ │ -
51#include <bits/stl_algobase.h> // For std::fill
│ │ │ │ +
51#include <bits/stl_algobase.h> // For std::fill
│ │ │ │
52
│ │ │ │
53#if _GLIBCXX_HOSTED
│ │ │ │
54# include <string>
│ │ │ │
55# include <iosfwd>
│ │ │ │ -
56# include <bits/cxxabi_forced.h>
│ │ │ │ +
56# include <bits/cxxabi_forced.h>
│ │ │ │
57#endif
│ │ │ │
58
│ │ │ │
59#if __cplusplus >= 201103L
│ │ │ │ -
60# include <bits/functional_hash.h>
│ │ │ │ +
60# include <bits/functional_hash.h>
│ │ │ │
61#endif
│ │ │ │
62
│ │ │ │
63#define __glibcxx_want_constexpr_bitset
│ │ │ │ -
64#include <bits/version.h>
│ │ │ │ +
64#include <bits/version.h>
│ │ │ │
65
│ │ │ │
66#define _GLIBCXX_BITSET_BITS_PER_WORD (__CHAR_BIT__ * __SIZEOF_LONG__)
│ │ │ │
67#define _GLIBCXX_BITSET_WORDS(__n) \
│ │ │ │
68 ((__n) / _GLIBCXX_BITSET_BITS_PER_WORD + \
│ │ │ │
69 ((__n) % _GLIBCXX_BITSET_BITS_PER_WORD == 0 ? 0 : 1))
│ │ │ │
70
│ │ │ │
71#define _GLIBCXX_BITSET_BITS_PER_ULL (__CHAR_BIT__ * __SIZEOF_LONG_LONG__)
│ │ │ │ @@ -1895,27 +1895,27 @@ │ │ │ │
1747#if defined _GLIBCXX_DEBUG && _GLIBCXX_HOSTED
│ │ │ │
1748# include <debug/bitset>
│ │ │ │
1749#endif
│ │ │ │
1750
│ │ │ │
1751#endif /* _GLIBCXX_BITSET */
│ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ - │ │ │ │ - │ │ │ │ - │ │ │ │ - │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │
constexpr bitset< _Nb > & _Unchecked_reset(size_t __pos) noexcept
Definition bitset:1136
│ │ │ │
constexpr bitset< _Nb > & _Unchecked_flip(size_t __pos) noexcept
Definition bitset:1144
│ │ │ │
constexpr size_t _Find_first() const noexcept
Finds the index of the first "on" bit.
Definition bitset:1458
│ │ │ │
constexpr bool _Unchecked_test(size_t __pos) const noexcept
Definition bitset:1151
│ │ │ │
constexpr bitset< _Nb > & _Unchecked_set(size_t __pos) noexcept
Definition bitset:1117
│ │ │ │
constexpr bitset< _Nb > & _Unchecked_set(size_t __pos, int __val) noexcept
Definition bitset:1125
│ │ │ │
constexpr size_t _Find_next(size_t __prev) const noexcept
Finds the index of the next "on" bit after prev.
Definition bitset:1470
│ │ │ │ -
constexpr const _Tp & min(const _Tp &, const _Tp &)
This does what you think it does.
│ │ │ │ +
constexpr const _Tp & min(const _Tp &, const _Tp &)
This does what you think it does.
│ │ │ │
ISO C++ entities toplevel namespace is std.
│ │ │ │
constexpr bitset< _Nb > operator^(const bitset< _Nb > &__x, const bitset< _Nb > &__y) noexcept
Global bitwise operations on bitsets.
Definition bitset:1582
│ │ │ │
std::basic_istream< _CharT, _Traits > & operator>>(std::basic_istream< _CharT, _Traits > &__is, bitset< _Nb > &__x)
Global I/O operators for bitsets.
Definition bitset:1602
│ │ │ │
std::basic_ostream< _CharT, _Traits > & operator<<(std::basic_ostream< _CharT, _Traits > &__os, const bitset< _Nb > &__x)
Global I/O operators for bitsets.
Definition bitset:1692
│ │ │ │
constexpr bitset< _Nb > operator|(const bitset< _Nb > &__x, const bitset< _Nb > &__y) noexcept
Global bitwise operations on bitsets.
Definition bitset:1572
│ │ │ │
constexpr bitset< _Nb > operator&(const bitset< _Nb > &__x, const bitset< _Nb > &__y) noexcept
Global bitwise operations on bitsets.
Definition bitset:1562
│ │ │ │ │ │ │ │ @@ -1946,27 +1946,27 @@ │ │ │ │
constexpr bool all() const noexcept
Tests whether all the bits are on.
Definition bitset:1416
│ │ │ │
constexpr bitset< _Nb > & reset(size_t __position)
Sets a given bit to false.
Definition bitset:1203
│ │ │ │
constexpr bool none() const noexcept
Tests whether any of the bits are on.
Definition bitset:1434
│ │ │ │
constexpr bool operator==(const bitset< _Nb > &__rhs) const noexcept
These comparisons for equality/inequality are, well, bitwise.
Definition bitset:1383
│ │ │ │
constexpr bool operator[](size_t __position) const
Array-indexing support.
Definition bitset:1261
│ │ │ │
constexpr bitset< _Nb > & flip(size_t __position)
Toggles a given bit to its opposite value.
Definition bitset:1228
│ │ │ │ │ │ │ │ -
void setstate(iostate __state)
Sets additional flags in the error state.
Definition basic_ios.h:166
│ │ │ │ -
char_type widen(char __c) const
Widens characters.
Definition basic_ios.h:464
│ │ │ │ -
basic_streambuf< _CharT, _Traits > * rdbuf() const
Accessing the underlying buffer.
Definition basic_ios.h:337
│ │ │ │ +
void setstate(iostate __state)
Sets additional flags in the error state.
Definition basic_ios.h:166
│ │ │ │ +
char_type widen(char __c) const
Widens characters.
Definition basic_ios.h:464
│ │ │ │ +
basic_streambuf< _CharT, _Traits > * rdbuf() const
Accessing the underlying buffer.
Definition basic_ios.h:337
│ │ │ │
Template class basic_istream.
Definition istream:63
│ │ │ │ -
Template class basic_ostream.
Definition ostream.h:67
│ │ │ │ -
Primary class template hash.
│ │ │ │ -
The standard allocator, as per C++03 [20.4.1].
Definition allocator.h:134
│ │ │ │ -
Managing sequences of characters and character-like objects.
Definition cow_string.h:109
│ │ │ │ -
const _CharT * data() const noexcept
Return const pointer to contents.
│ │ │ │ -
basic_string & assign(const basic_string &__str)
Set value to contents of another string.
│ │ │ │ -
size_type size() const noexcept
Returns the number of characters in the string, not including any null-termination.
Definition cow_string.h:913
│ │ │ │ -
Thrown as part of forced unwinding.
│ │ │ │ -
locale getloc() const
Locale access.
Definition ios_base.h:841
│ │ │ │ +
Template class basic_ostream.
Definition ostream.h:67
│ │ │ │ +
Primary class template hash.
│ │ │ │ +
The standard allocator, as per C++03 [20.4.1].
Definition allocator.h:134
│ │ │ │ +
Managing sequences of characters and character-like objects.
Definition cow_string.h:109
│ │ │ │ +
const _CharT * data() const noexcept
Return const pointer to contents.
│ │ │ │ +
basic_string & assign(const basic_string &__str)
Set value to contents of another string.
│ │ │ │ +
size_type size() const noexcept
Returns the number of characters in the string, not including any null-termination.
Definition cow_string.h:913
│ │ │ │ +
Thrown as part of forced unwinding.
│ │ │ │ +
locale getloc() const
Locale access.
Definition ios_base.h:841
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├── html2text {} │ │ │ │ │ @@ -958,17 +958,17 @@ │ │ │ │ │ 937_GLIBCXX_END_NAMESPACE_VERSION │ │ │ │ │ 938} // namespace std │ │ │ │ │ 939#endif // C++14 │ │ │ │ │ 940#pragma GCC diagnostic pop │ │ │ │ │ 941#endif // _GLIBCXX_CHARCONV │ │ │ │ │ _b_i_t │ │ │ │ │ _t_y_p_e___t_r_a_i_t_s │ │ │ │ │ -_c_h_a_r_c_o_n_v_._h │ │ │ │ │ -_v_e_r_s_i_o_n_._h │ │ │ │ │ _r_e_q_u_i_r_e_s___h_o_s_t_e_d_._h │ │ │ │ │ +_v_e_r_s_i_o_n_._h │ │ │ │ │ +_c_h_a_r_c_o_n_v_._h │ │ │ │ │ _e_r_r_o_r___c_o_n_s_t_a_n_t_s_._h │ │ │ │ │ _s_t_d │ │ │ │ │ ISO C++ entities toplevel namespace is std. │ │ │ │ │ _s_t_d_:_:_s_c_i_e_n_t_i_f_i_c │ │ │ │ │ ios_base & scientific(ios_base &__base) │ │ │ │ │ Calls base.setf(ios_base::scientific, ios_base::floatfield). │ │ │ │ │ DDeeffiinniittiioonn _i_o_s___b_a_s_e_._h_:_1_1_2_7 │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a00071_source.html │ │ │ │ @@ -85,38 +85,38 @@ │ │ │ │
31#define _GLIBCXX_CHRONO 1
│ │ │ │
32
│ │ │ │
33#ifdef _GLIBCXX_SYSHDR
│ │ │ │
34#pragma GCC system_header
│ │ │ │
35#endif
│ │ │ │
36
│ │ │ │
37#ifdef _GLIBCXX_NO_FREESTANDING_CHRONO
│ │ │ │ -
38# include <bits/requires_hosted.h> // for <ctime> and clocks
│ │ │ │ +
38# include <bits/requires_hosted.h> // for <ctime> and clocks
│ │ │ │
39#endif
│ │ │ │
40
│ │ │ │
41#if __cplusplus < 201103L
│ │ │ │ -
42# include <bits/c++0x_warning.h>
│ │ │ │ +
42# include <bits/c++0x_warning.h>
│ │ │ │
43#else
│ │ │ │
44
│ │ │ │ -
45#include <bits/chrono.h>
│ │ │ │ +
45#include <bits/chrono.h>
│ │ │ │
46
│ │ │ │
47#if __cplusplus >= 202002L
│ │ │ │
48# include <bit> // __countr_zero
│ │ │ │
49#endif
│ │ │ │
50#if __cplusplus >= 202002L && _GLIBCXX_HOSTED
│ │ │ │
51# include <sstream>
│ │ │ │
52# include <string>
│ │ │ │
53# include <vector>
│ │ │ │ -
54# include <bits/stl_algo.h> // upper_bound
│ │ │ │ +
54# include <bits/stl_algo.h> // upper_bound
│ │ │ │
55# include <bits/shared_ptr.h>
│ │ │ │ -
56# include <bits/unique_ptr.h>
│ │ │ │ +
56# include <bits/unique_ptr.h>
│ │ │ │
57#endif
│ │ │ │
58
│ │ │ │
59#define __glibcxx_want_chrono
│ │ │ │
60#define __glibcxx_want_chrono_udls
│ │ │ │ -
61#include <bits/version.h>
│ │ │ │ +
61#include <bits/version.h>
│ │ │ │
62
│ │ │ │
63namespace std _GLIBCXX_VISIBILITY(default)
│ │ │ │
64{
│ │ │ │
65_GLIBCXX_BEGIN_NAMESPACE_VERSION
│ │ │ │
66
│ │ │ │
67 /**
│ │ │ │
68 * @defgroup chrono Time
│ │ │ │ @@ -3441,73 +3441,73 @@ │ │ │ │
3371 } // inline namespace literals
│ │ │ │
3372#endif // C++20
│ │ │ │
3373
│ │ │ │
3374_GLIBCXX_END_NAMESPACE_VERSION
│ │ │ │
3375} // namespace std
│ │ │ │
3376
│ │ │ │
3377#if __cplusplus >= 202002L && _GLIBCXX_HOSTED
│ │ │ │ -
3378# include <bits/chrono_io.h>
│ │ │ │ +
3378# include <bits/chrono_io.h>
│ │ │ │
3379#endif
│ │ │ │
3380
│ │ │ │
3381#endif // C++11
│ │ │ │
3382
│ │ │ │
3383#endif //_GLIBCXX_CHRONO
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ - │ │ │ │ - │ │ │ │ - │ │ │ │ - │ │ │ │ - │ │ │ │ - │ │ │ │ -
duration< int64_t > seconds
seconds
Definition chrono.h:901
│ │ │ │ -
constexpr bool operator<=(const duration< _Rep1, _Period1 > &__lhs, const duration< _Rep2, _Period2 > &__rhs)
Definition chrono.h:859
│ │ │ │ -
duration< int64_t, ratio< 3600 > > hours
hours
Definition chrono.h:907
│ │ │ │ -
constexpr bool operator>=(const duration< _Rep1, _Period1 > &__lhs, const duration< _Rep2, _Period2 > &__rhs)
Definition chrono.h:873
│ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ +
duration< int64_t > seconds
seconds
Definition chrono.h:901
│ │ │ │ +
constexpr bool operator<=(const duration< _Rep1, _Period1 > &__lhs, const duration< _Rep2, _Period2 > &__rhs)
Definition chrono.h:859
│ │ │ │ +
duration< int64_t, ratio< 3600 > > hours
hours
Definition chrono.h:907
│ │ │ │ +
constexpr bool operator>=(const duration< _Rep1, _Period1 > &__lhs, const duration< _Rep2, _Period2 > &__rhs)
Definition chrono.h:873
│ │ │ │
auto clock_cast(const time_point< _SourceClock, _Duration > &__t)
Convert a time point to a different clock.
Definition chrono:415
│ │ │ │ -
duration< int64_t, ratio< 86400 > > days
days
Definition chrono.h:911
│ │ │ │ -
duration< int64_t, ratio< 60 > > minutes
minutes
Definition chrono.h:904
│ │ │ │ -
constexpr time_point< _Clock, typename common_type< duration< _Rep1, _Period1 >, _Dur2 >::type > operator+(const duration< _Rep1, _Period1 > &__lhs, const time_point< _Clock, _Dur2 > &__rhs)
Adjust a time point forwards by the given duration.
Definition chrono.h:1119
│ │ │ │ -
constexpr bool operator<(const duration< _Rep1, _Period1 > &__lhs, const duration< _Rep2, _Period2 > &__rhs)
Definition chrono.h:826
│ │ │ │ -
constexpr bool operator>(const duration< _Rep1, _Period1 > &__lhs, const duration< _Rep2, _Period2 > &__rhs)
Definition chrono.h:866
│ │ │ │ -
constexpr common_type< duration< _Rep1, _Period1 >, duration< _Rep2, _Period2 > >::type operator-(const duration< _Rep1, _Period1 > &__lhs, const duration< _Rep2, _Period2 > &__rhs)
The difference between two durations.
Definition chrono.h:714
│ │ │ │ -
constexpr duration< __common_rep_t< _Rep1, __disable_if_is_duration< _Rep2 > >, _Period > operator/(const duration< _Rep1, _Period > &__d, const _Rep2 &__s)
Definition chrono.h:760
│ │ │ │ -
duration< int64_t, ratio< 2629746 > > months
months
Definition chrono.h:920
│ │ │ │ -
duration< int64_t, ratio< 31556952 > > years
years
Definition chrono.h:917
│ │ │ │ +
duration< int64_t, ratio< 86400 > > days
days
Definition chrono.h:911
│ │ │ │ +
duration< int64_t, ratio< 60 > > minutes
minutes
Definition chrono.h:904
│ │ │ │ +
constexpr time_point< _Clock, typename common_type< duration< _Rep1, _Period1 >, _Dur2 >::type > operator+(const duration< _Rep1, _Period1 > &__lhs, const time_point< _Clock, _Dur2 > &__rhs)
Adjust a time point forwards by the given duration.
Definition chrono.h:1119
│ │ │ │ +
constexpr bool operator<(const duration< _Rep1, _Period1 > &__lhs, const duration< _Rep2, _Period2 > &__rhs)
Definition chrono.h:826
│ │ │ │ +
constexpr bool operator>(const duration< _Rep1, _Period1 > &__lhs, const duration< _Rep2, _Period2 > &__rhs)
Definition chrono.h:866
│ │ │ │ +
constexpr common_type< duration< _Rep1, _Period1 >, duration< _Rep2, _Period2 > >::type operator-(const duration< _Rep1, _Period1 > &__lhs, const duration< _Rep2, _Period2 > &__rhs)
The difference between two durations.
Definition chrono.h:714
│ │ │ │ +
constexpr duration< __common_rep_t< _Rep1, __disable_if_is_duration< _Rep2 > >, _Period > operator/(const duration< _Rep1, _Period > &__d, const _Rep2 &__s)
Definition chrono.h:760
│ │ │ │ +
duration< int64_t, ratio< 2629746 > > months
months
Definition chrono.h:920
│ │ │ │ +
duration< int64_t, ratio< 31556952 > > years
years
Definition chrono.h:917
│ │ │ │
constexpr complex< _Tp > operator*(const complex< _Tp > &__x, const complex< _Tp > &__y)
Return new complex value x times y.
Definition complex:434
│ │ │ │
constexpr complex< _Tp > operator-(const complex< _Tp > &__x, const complex< _Tp > &__y)
Return new complex value x minus y.
Definition complex:404
│ │ │ │
constexpr complex< _Tp > operator+(const complex< _Tp > &__x, const complex< _Tp > &__y)
Return new complex value x plus y.
Definition complex:374
│ │ │ │
constexpr complex< _Tp > operator/(const complex< _Tp > &__x, const complex< _Tp > &__y)
Return new complex value x divided by y.
Definition complex:464
│ │ │ │
basic_ostringstream< char > ostringstream
Class for char output memory streams.
Definition iosfwd:157
│ │ │ │
__bool_constant< true > true_type
The type used as a compile-time boolean with true value.
Definition type_traits:116
│ │ │ │
typename common_type< _Tp... >::type common_type_t
Alias template for common_type.
Definition type_traits:2845
│ │ │ │ -
constexpr std::remove_reference< _Tp >::type && move(_Tp &&__t) noexcept
Convert a value to an rvalue.
Definition move.h:138
│ │ │ │ +
constexpr std::remove_reference< _Tp >::type && move(_Tp &&__t) noexcept
Convert a value to an rvalue.
Definition move.h:138
│ │ │ │
_Tp * end(valarray< _Tp > &__va) noexcept
Return an iterator pointing to one past the last element of the valarray.
Definition valarray:1251
│ │ │ │
_Tp * begin(valarray< _Tp > &__va) noexcept
Return an iterator pointing to the first element of the valarray.
Definition valarray:1229
│ │ │ │
ISO C++ entities toplevel namespace is std.
│ │ │ │ -
constexpr auto cend(const _Container &__cont) noexcept(noexcept(std::end(__cont))) -> decltype(std::end(__cont))
Return an iterator pointing to one past the last element of the const container.
│ │ │ │ -
constexpr auto size(const _Container &__cont) noexcept(noexcept(__cont.size())) -> decltype(__cont.size())
Return the size of a container.
│ │ │ │ -
constexpr auto cbegin(const _Container &__cont) noexcept(noexcept(std::begin(__cont))) -> decltype(std::begin(__cont))
Return an iterator pointing to the first element of the const container.
│ │ │ │ +
constexpr auto cend(const _Container &__cont) noexcept(noexcept(std::end(__cont))) -> decltype(std::end(__cont))
Return an iterator pointing to one past the last element of the const container.
│ │ │ │ +
constexpr auto size(const _Container &__cont) noexcept(noexcept(__cont.size())) -> decltype(__cont.size())
Return the size of a container.
│ │ │ │ +
constexpr auto cbegin(const _Container &__cont) noexcept(noexcept(std::begin(__cont))) -> decltype(std::begin(__cont))
Return an iterator pointing to the first element of the const container.
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
const tzdb & front() const noexcept
│ │ │ │ │ │ │ │
Properties of fundamental types.
Definition limits:320
│ │ │ │
Provides compile-time rational arithmetic.
Definition ratio:272
│ │ │ │
is_unsigned
Definition type_traits:1001
│ │ │ │ │ │ │ │ -
chrono::time_point represents a point in time as measured by a clock
Definition chrono.h:927
│ │ │ │ +
chrono::time_point represents a point in time as measured by a clock
Definition chrono.h:927
│ │ │ │
A smart pointer with reference-counted copy semantics.
│ │ │ │ -
Forward iterators support a superset of input iterator operations.
│ │ │ │ +
Forward iterators support a superset of input iterator operations.
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
1367#endif
│ │ │ │
1368
│ │ │ │
1369_GLIBCXX_END_NAMESPACE_VERSION
│ │ │ │
1370} // namespace
│ │ │ │
1371
│ │ │ │ -
1372#include <bits/fstream.tcc>
│ │ │ │ +
1372#include <bits/fstream.tcc>
│ │ │ │
1373
│ │ │ │
1374#endif /* _GLIBCXX_FSTREAM */
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ - │ │ │ │ - │ │ │ │ - │ │ │ │ - │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │
typename enable_if< _Cond, _Tp >::type enable_if_t
Alias template for enable_if.
Definition type_traits:2837
│ │ │ │ -
constexpr std::remove_reference< _Tp >::type && move(_Tp &&__t) noexcept
Convert a value to an rvalue.
Definition move.h:138
│ │ │ │ +
constexpr std::remove_reference< _Tp >::type && move(_Tp &&__t) noexcept
Convert a value to an rvalue.
Definition move.h:138
│ │ │ │
ISO C++ entities toplevel namespace is std.
│ │ │ │ -
ptrdiff_t streamsize
Integral type for I/O operation counts and buffer sizes.
Definition postypes.h:73
│ │ │ │ +
ptrdiff_t streamsize
Integral type for I/O operation counts and buffer sizes.
Definition postypes.h:73
│ │ │ │
The actual work of input and output (for files).
Definition fstream:93
│ │ │ │
char_type _M_pback
Definition fstream:176
│ │ │ │
ios_base::openmode _M_mode
Place to stash in || out || in | out settings for current filebuf.
Definition fstream:133
│ │ │ │
virtual ~basic_filebuf()
The destructor closes the file first.
Definition fstream:258
│ │ │ │
streamsize _M_ext_buf_size
Definition fstream:195
│ │ │ │
char_type * _M_pback_cur_save
Definition fstream:177
│ │ │ │
_If_fs_path< _Path, __filebuf_type * > open(const _Path &__s, ios_base::openmode __mode)
Opens an external file.
Definition fstream:356
│ │ │ │
__filebuf_type * open(const std::string &__s, ios_base::openmode __mode)
Opens an external file.
Definition fstream:344
│ │ │ │
bool is_open() const
Returns true if the external file is open.
Definition fstream:278
│ │ │ │
size_t _M_buf_size
Definition fstream:155
│ │ │ │ -
__filebuf_type * close()
Closes the currently associated file.
Definition fstream.tcc:254
│ │ │ │ +
__filebuf_type * close()
Closes the currently associated file.
Definition fstream.tcc:254
│ │ │ │
char_type * _M_pback_end_save
Definition fstream:178
│ │ │ │
char * _M_ext_buf
Definition fstream:190
│ │ │ │
void _M_destroy_pback()
Definition fstream:228
│ │ │ │
char_type * _M_buf
Pointer to the beginning of internal buffer.
Definition fstream:148
│ │ │ │ │ │ │ │
void _M_create_pback()
Definition fstream:211
│ │ │ │ │ │ │ │ -
__filebuf_type * open(const char *__s, ios_base::openmode __mode)
Opens an external file.
Definition fstream.tcc:184
│ │ │ │ +
__filebuf_type * open(const char *__s, ios_base::openmode __mode)
Opens an external file.
Definition fstream.tcc:184
│ │ │ │
const char * _M_ext_next
Definition fstream:202
│ │ │ │
Controlling input for files.
Definition fstream:536
│ │ │ │
basic_ifstream()
Default constructor.
Definition fstream:561
│ │ │ │
~basic_ifstream()
The destructor does nothing.
Definition fstream:642
│ │ │ │
_If_fs_path< _Path, void > open(const _Path &__s, ios_base::openmode __mode=ios_base::in)
Opens an external file.
Definition fstream:764
│ │ │ │
__filebuf_type * rdbuf() const
Accessing the underlying buffer.
Definition fstream:676
│ │ │ │
void open(const char *__s, ios_base::openmode __mode=ios_base::in)
Opens an external file.
Definition fstream:704
│ │ │ │ @@ -1586,35 +1586,35 @@ │ │ │ │
basic_fstream(const std::string &__s, ios_base::openmode __mode=ios_base::in|ios_base::out)
Create an input/output file stream.
Definition fstream:1150
│ │ │ │
void open(const std::string &__s, ios_base::openmode __mode=ios_base::in|ios_base::out)
Opens an external file.
Definition fstream:1288
│ │ │ │
__filebuf_type * rdbuf() const
Accessing the underlying buffer.
Definition fstream:1219
│ │ │ │
bool is_open()
Wrapper to test for an open file.
Definition fstream:1228
│ │ │ │
void close()
Close the file.
Definition fstream:1323
│ │ │ │
basic_fstream(const char *__s, ios_base::openmode __mode=ios_base::in|ios_base::out)
Create an input/output file stream.
Definition fstream:1120
│ │ │ │
basic_fstream()
Default constructor.
Definition fstream:1110
│ │ │ │ -
Template class basic_ios, virtual base class for all stream classes.
Definition basic_ios.h:70
│ │ │ │ -
void clear(iostate __state=goodbit)
[Re]sets the error state.
Definition basic_ios.tcc:46
│ │ │ │ -
void setstate(iostate __state)
Sets additional flags in the error state.
Definition basic_ios.h:166
│ │ │ │ -
void init(basic_streambuf< _CharT, _Traits > *__sb)
All setup is performed here.
│ │ │ │ +
Template class basic_ios, virtual base class for all stream classes.
Definition basic_ios.h:70
│ │ │ │ +
void clear(iostate __state=goodbit)
[Re]sets the error state.
Definition basic_ios.tcc:46
│ │ │ │ +
void setstate(iostate __state)
Sets additional flags in the error state.
Definition basic_ios.h:166
│ │ │ │ +
void init(basic_streambuf< _CharT, _Traits > *__sb)
All setup is performed here.
│ │ │ │
The actual work of input and output (interface).
Definition streambuf:127
│ │ │ │
Template class basic_istream.
Definition istream:63
│ │ │ │ -
Template class basic_ostream.
Definition ostream.h:67
│ │ │ │ +
Template class basic_ostream.
Definition ostream.h:67
│ │ │ │
Template class basic_iostream.
Definition istream:988
│ │ │ │ │ │ │ │
is_default_constructible
Definition type_traits:1167
│ │ │ │
is_copy_constructible
Definition type_traits:1194
│ │ │ │ -
Primary class template codecvt.
Definition codecvt.h:284
│ │ │ │ +
Primary class template codecvt.
Definition codecvt.h:284
│ │ │ │ │ │ │ │ -
const _CharT * c_str() const noexcept
Return const pointer to null-terminated contents.
│ │ │ │ -
The base of the I/O class hierarchy.
Definition ios_base.h:266
│ │ │ │ -
static const openmode in
Open for input. Default for ifstream and fstream.
Definition ios_base.h:498
│ │ │ │ -
static const openmode out
Open for output. Default for ofstream and fstream.
Definition ios_base.h:501
│ │ │ │ -
static const openmode app
Seek to end before each write.
Definition ios_base.h:487
│ │ │ │ -
static const openmode trunc
Truncate an existing stream when opening. Default for ofstream.
Definition ios_base.h:504
│ │ │ │ -
static const iostate failbit
Indicates that an input operation failed to read the expected characters, or that an output operation...
Definition ios_base.h:465
│ │ │ │ -
Class representing stream positions.
Definition postypes.h:88
│ │ │ │ +
const _CharT * c_str() const noexcept
Return const pointer to null-terminated contents.
│ │ │ │ +
The base of the I/O class hierarchy.
Definition ios_base.h:266
│ │ │ │ +
static const openmode in
Open for input. Default for ifstream and fstream.
Definition ios_base.h:498
│ │ │ │ +
static const openmode out
Open for output. Default for ofstream and fstream.
Definition ios_base.h:501
│ │ │ │ +
static const openmode app
Seek to end before each write.
Definition ios_base.h:487
│ │ │ │ +
static const openmode trunc
Truncate an existing stream when opening. Default for ofstream.
Definition ios_base.h:504
│ │ │ │ +
static const iostate failbit
Indicates that an input operation failed to read the expected characters, or that an output operation...
Definition ios_base.h:465
│ │ │ │ +
Class representing stream positions.
Definition postypes.h:88
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a00122_source.html │ │ │ │ @@ -87,17 +87,17 @@ │ │ │ │
33#ifndef _GLIBCXX_IOSTREAM
│ │ │ │
34#define _GLIBCXX_IOSTREAM 1
│ │ │ │
35
│ │ │ │
36#ifdef _GLIBCXX_SYSHDR
│ │ │ │
37#pragma GCC system_header
│ │ │ │
38#endif
│ │ │ │
39
│ │ │ │ -
40#include <bits/requires_hosted.h> // iostreams
│ │ │ │ +
40#include <bits/requires_hosted.h> // iostreams
│ │ │ │
41
│ │ │ │ -
42#include <bits/c++config.h>
│ │ │ │ +
42#include <bits/c++config.h>
│ │ │ │
43#include <ostream>
│ │ │ │
44#include <istream>
│ │ │ │
45
│ │ │ │
46namespace std _GLIBCXX_VISIBILITY(default)
│ │ │ │
47{
│ │ │ │
48_GLIBCXX_BEGIN_NAMESPACE_VERSION
│ │ │ │
49
│ │ │ │ @@ -140,16 +140,16 @@ │ │ │ │
86
│ │ │ │
87_GLIBCXX_END_NAMESPACE_VERSION
│ │ │ │
88} // namespace
│ │ │ │
89
│ │ │ │
90#endif /* _GLIBCXX_IOSTREAM */
│ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ - │ │ │ │ + │ │ │ │ + │ │ │ │
basic_ostream< char > ostream
Base class for char output streams.
Definition iosfwd:145
│ │ │ │
basic_istream< char > istream
Base class for char input streams.
Definition iosfwd:142
│ │ │ │
basic_ostream< wchar_t > wostream
Base class for wchar_t output streams.
Definition iosfwd:185
│ │ │ │
basic_istream< wchar_t > wistream
Base class for wchar_t input streams.
Definition iosfwd:182
│ │ │ │
ISO C++ entities toplevel namespace is std.
│ │ │ │
wostream wclog
Linked to standard error (buffered)
│ │ │ │
wostream wcout
Linked to standard output.
│ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a00125_source.html │ │ │ │ @@ -87,15 +87,15 @@ │ │ │ │
33#ifndef _GLIBCXX_ISTREAM
│ │ │ │
34#define _GLIBCXX_ISTREAM 1
│ │ │ │
35
│ │ │ │
36#ifdef _GLIBCXX_SYSHDR
│ │ │ │
37#pragma GCC system_header
│ │ │ │
38#endif
│ │ │ │
39
│ │ │ │ -
40#include <bits/requires_hosted.h> // iostreams
│ │ │ │ +
40#include <bits/requires_hosted.h> // iostreams
│ │ │ │
41
│ │ │ │
42#include <ios>
│ │ │ │
43#include <ostream>
│ │ │ │
44
│ │ │ │
45namespace std _GLIBCXX_VISIBILITY(default)
│ │ │ │
46{
│ │ │ │
47_GLIBCXX_BEGIN_NAMESPACE_VERSION
│ │ │ │ @@ -1220,78 +1220,78 @@ │ │ │ │
1105 }
│ │ │ │ │ │ │ │
1106#endif // C++11
│ │ │ │
1107
│ │ │ │
1108_GLIBCXX_END_NAMESPACE_VERSION
│ │ │ │
1109} // namespace
│ │ │ │
1110
│ │ │ │ -
1111#include <bits/istream.tcc>
│ │ │ │ +
1111#include <bits/istream.tcc>
│ │ │ │
1112
│ │ │ │
1113#endif /* _GLIBCXX_ISTREAM */
│ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ - │ │ │ │ + │ │ │ │ + │ │ │ │
basic_istream< char > istream
Base class for char input streams.
Definition iosfwd:142
│ │ │ │ -
constexpr std::remove_reference< _Tp >::type && move(_Tp &&__t) noexcept
Convert a value to an rvalue.
Definition move.h:138
│ │ │ │ +
constexpr std::remove_reference< _Tp >::type && move(_Tp &&__t) noexcept
Convert a value to an rvalue.
Definition move.h:138
│ │ │ │
ISO C++ entities toplevel namespace is std.
│ │ │ │ -
ptrdiff_t streamsize
Integral type for I/O operation counts and buffer sizes.
Definition postypes.h:73
│ │ │ │ +
ptrdiff_t streamsize
Integral type for I/O operation counts and buffer sizes.
Definition postypes.h:73
│ │ │ │
std::basic_istream< _CharT, _Traits > & operator>>(std::basic_istream< _CharT, _Traits > &__is, bitset< _Nb > &__x)
Global I/O operators for bitsets.
Definition bitset:1602
│ │ │ │ -
basic_istream< _CharT, _Traits > & ws(basic_istream< _CharT, _Traits > &__is)
Quick and easy way to eat whitespace.
Definition istream.tcc:1078
│ │ │ │ -
Template class basic_ios, virtual base class for all stream classes.
Definition basic_ios.h:70
│ │ │ │ -
void setstate(iostate __state)
Sets additional flags in the error state.
Definition basic_ios.h:166
│ │ │ │ -
void init(basic_streambuf< _CharT, _Traits > *__sb)
All setup is performed here.
│ │ │ │ -
char_type widen(char __c) const
Widens characters.
Definition basic_ios.h:464
│ │ │ │ +
basic_istream< _CharT, _Traits > & ws(basic_istream< _CharT, _Traits > &__is)
Quick and easy way to eat whitespace.
Definition istream.tcc:1078
│ │ │ │ +
Template class basic_ios, virtual base class for all stream classes.
Definition basic_ios.h:70
│ │ │ │ +
void setstate(iostate __state)
Sets additional flags in the error state.
Definition basic_ios.h:166
│ │ │ │ +
void init(basic_streambuf< _CharT, _Traits > *__sb)
All setup is performed here.
│ │ │ │ +
char_type widen(char __c) const
Widens characters.
Definition basic_ios.h:464
│ │ │ │
The actual work of input and output (interface).
Definition streambuf:127
│ │ │ │
Template class basic_istream.
Definition istream:63
│ │ │ │
__istream_type & operator>>(void *&__p)
Basic arithmetic extractors.
Definition istream:330
│ │ │ │ -
__istream_type & seekg(pos_type)
Changing the current read position.
Definition istream.tcc:905
│ │ │ │ +
__istream_type & seekg(pos_type)
Changing the current read position.
Definition istream.tcc:905
│ │ │ │
streamsize gcount() const
Character counting.
Definition istream:364
│ │ │ │ -
int_type get()
Simple extraction.
Definition istream.tcc:266
│ │ │ │ -
streamsize readsome(char_type *__s, streamsize __n)
Extraction until the buffer is exhausted, but no more.
Definition istream.tcc:739
│ │ │ │ -
int_type peek()
Looking ahead in the stream.
Definition istream.tcc:680
│ │ │ │ -
__istream_type & unget()
Unextracting the previous character.
Definition istream.tcc:806
│ │ │ │ -
pos_type tellg()
Getting the current read position.
Definition istream.tcc:877
│ │ │ │ +
int_type get()
Simple extraction.
Definition istream.tcc:266
│ │ │ │ +
streamsize readsome(char_type *__s, streamsize __n)
Extraction until the buffer is exhausted, but no more.
Definition istream.tcc:739
│ │ │ │ +
int_type peek()
Looking ahead in the stream.
Definition istream.tcc:680
│ │ │ │ +
__istream_type & unget()
Unextracting the previous character.
Definition istream.tcc:806
│ │ │ │ +
pos_type tellg()
Getting the current read position.
Definition istream.tcc:877
│ │ │ │
__istream_type & get(__streambuf_type &__sb)
Extraction into another streambuf.
Definition istream:482
│ │ │ │
streamsize _M_gcount
Definition istream:86
│ │ │ │
__istream_type & operator>>(double &__f)
Floating point arithmetic extractors.
Definition istream:225
│ │ │ │ -
__istream_type & ignore()
Simple extraction.
Definition istream.tcc:500
│ │ │ │ +
__istream_type & ignore()
Simple extraction.
Definition istream.tcc:500
│ │ │ │
__istream_type & operator>>(bool &__n)
Integer arithmetic extractors.
Definition istream:172
│ │ │ │
__istream_type & operator>>(long &__n)
Integer arithmetic extractors.
Definition istream:190
│ │ │ │
virtual ~basic_istream()
Base destructor.
Definition istream:107
│ │ │ │
__istream_type & getline(char_type *__s, streamsize __n)
String extraction.
Definition istream:522
│ │ │ │
__istream_type & operator>>(unsigned long long &__n)
Integer arithmetic extractors.
Definition istream:205
│ │ │ │
__istream_type & operator>>(float &__f)
Floating point arithmetic extractors.
Definition istream:221
│ │ │ │
__istream_type & operator>>(__ios_type &(*__pf)(__ios_type &))
Interface for manipulators.
Definition istream:128
│ │ │ │
__istream_type & operator>>(long long &__n)
Integer arithmetic extractors.
Definition istream:201
│ │ │ │
__istream_type & operator>>(unsigned long &__n)
Integer arithmetic extractors.
Definition istream:194
│ │ │ │ -
__istream_type & read(char_type *__s, streamsize __n)
Extraction without delimiters.
Definition istream.tcc:710
│ │ │ │ +
__istream_type & read(char_type *__s, streamsize __n)
Extraction without delimiters.
Definition istream.tcc:710
│ │ │ │
__istream_type & operator>>(unsigned int &__n)
Integer arithmetic extractors.
Definition istream:186
│ │ │ │
__istream_type & operator>>(unsigned short &__n)
Integer arithmetic extractors.
Definition istream:179
│ │ │ │ -
__istream_type & putback(char_type __c)
Unextracting a single character.
Definition istream.tcc:771
│ │ │ │ +
__istream_type & putback(char_type __c)
Unextracting a single character.
Definition istream.tcc:771
│ │ │ │
basic_istream(__streambuf_type *__sb)
Base constructor.
Definition istream:97
│ │ │ │ -
__istream_type & getline(char_type *__s, streamsize __n, char_type __delim)
String extraction.
Definition istream.tcc:440
│ │ │ │ +
__istream_type & getline(char_type *__s, streamsize __n, char_type __delim)
String extraction.
Definition istream.tcc:440
│ │ │ │
__istream_type & get(char_type *__s, streamsize __n)
Simple multiple-character extraction.
Definition istream:449
│ │ │ │
__istream_type & operator>>(ios_base &(*__pf)(ios_base &))
Interface for manipulators.
Definition istream:135
│ │ │ │
__istream_type & operator>>(long double &__f)
Floating point arithmetic extractors.
Definition istream:229
│ │ │ │
__istream_type & operator>>(__istream_type &(*__pf)(__istream_type &))
Interface for manipulators.
Definition istream:124
│ │ │ │ -
int sync()
Synchronizing the stream buffer.
Definition istream.tcc:841
│ │ │ │ -
Template class basic_ostream.
Definition ostream.h:67
│ │ │ │ +
int sync()
Synchronizing the stream buffer.
Definition istream.tcc:841
│ │ │ │ +
Template class basic_ostream.
Definition ostream.h:67
│ │ │ │
Template class basic_iostream.
Definition istream:988
│ │ │ │
basic_iostream(basic_streambuf< _CharT, _Traits > *__sb)
Constructor does nothing.
Definition istream:1010
│ │ │ │
virtual ~basic_iostream()
Destructor does nothing.
Definition istream:1017
│ │ │ │
Performs setup work for input streams.
Definition istream:782
│ │ │ │
_Traits traits_type
Easy access to dependent types.
Definition istream:788
│ │ │ │ -
The base of the I/O class hierarchy.
Definition ios_base.h:266
│ │ │ │ -
_Ios_Iostate iostate
This is a bitmask type.
Definition ios_base.h:453
│ │ │ │ -
static const iostate eofbit
Indicates that an input operation reached the end of an input sequence.
Definition ios_base.h:460
│ │ │ │ -
static const iostate goodbit
Indicates all is well.
Definition ios_base.h:468
│ │ │ │ -
static const iostate failbit
Indicates that an input operation failed to read the expected characters, or that an output operation...
Definition ios_base.h:465
│ │ │ │ -
Primary class template ctype facet.
│ │ │ │ -
Primary class template num_get.
│ │ │ │ +
The base of the I/O class hierarchy.
Definition ios_base.h:266
│ │ │ │ +
_Ios_Iostate iostate
This is a bitmask type.
Definition ios_base.h:453
│ │ │ │ +
static const iostate eofbit
Indicates that an input operation reached the end of an input sequence.
Definition ios_base.h:460
│ │ │ │ +
static const iostate goodbit
Indicates all is well.
Definition ios_base.h:468
│ │ │ │ +
static const iostate failbit
Indicates that an input operation failed to read the expected characters, or that an output operation...
Definition ios_base.h:465
│ │ │ │ +
Primary class template ctype facet.
│ │ │ │ +
Primary class template num_get.
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├── html2text {} │ │ │ │ │ @@ -58,16 +58,16 @@ │ │ │ │ │ 55 │ │ │ │ │ 56#endif // _GLIBCXX_RANDOM │ │ │ │ │ _i_o_s_f_w_d │ │ │ │ │ _l_i_m_i_t_s │ │ │ │ │ _s_t_r_i_n_g │ │ │ │ │ _t_y_p_e___t_r_a_i_t_s │ │ │ │ │ _r_e_q_u_i_r_e_s___h_o_s_t_e_d_._h │ │ │ │ │ -_r_a_n_d_o_m_._h │ │ │ │ │ _c_+_+_0_x___w_a_r_n_i_n_g_._h │ │ │ │ │ +_r_a_n_d_o_m_._h │ │ │ │ │ _o_p_t___r_a_n_d_o_m_._h │ │ │ │ │ _d_e_b_u_g_._h │ │ │ │ │ _r_a_n_d_o_m_._t_c_c │ │ │ │ │ _c_m_a_t_h │ │ │ │ │ _c_s_t_d_i_n_t │ │ │ │ │ _c_s_t_d_l_i_b │ │ │ │ │ * _r_a_n_d_o_m │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a00176_source.html │ │ │ │ @@ -101,16 +101,16 @@ │ │ │ │
47#include <span>
│ │ │ │
48#include <string_view>
│ │ │ │
49#include <tuple>
│ │ │ │
50#if __cplusplus > 202002L
│ │ │ │
51#include <utility>
│ │ │ │
52#include <variant>
│ │ │ │
53#endif
│ │ │ │ -
54#include <bits/ranges_util.h>
│ │ │ │ -
55#include <bits/refwrap.h>
│ │ │ │ +
54#include <bits/ranges_util.h>
│ │ │ │ +
55#include <bits/refwrap.h>
│ │ │ │
56
│ │ │ │
57#define __glibcxx_want_algorithm_default_value_type
│ │ │ │
58#define __glibcxx_want_ranges
│ │ │ │
59#define __glibcxx_want_ranges_as_const
│ │ │ │
60#define __glibcxx_want_ranges_as_rvalue
│ │ │ │
61#define __glibcxx_want_ranges_cache_latest
│ │ │ │
62#define __glibcxx_want_ranges_cartesian_product
│ │ │ │ @@ -122,15 +122,15 @@ │ │ │ │
68#define __glibcxx_want_ranges_join_with
│ │ │ │
69#define __glibcxx_want_ranges_repeat
│ │ │ │
70#define __glibcxx_want_ranges_slide
│ │ │ │
71#define __glibcxx_want_ranges_stride
│ │ │ │
72#define __glibcxx_want_ranges_to_container
│ │ │ │
73#define __glibcxx_want_ranges_to_input
│ │ │ │
74#define __glibcxx_want_ranges_zip
│ │ │ │ -
75#include <bits/version.h>
│ │ │ │ +
75#include <bits/version.h>
│ │ │ │
76
│ │ │ │
77#ifdef __glibcxx_generator // C++ >= 23 && __glibcxx_coroutine
│ │ │ │
78# include <bits/elements_of.h>
│ │ │ │
79#endif
│ │ │ │
80
│ │ │ │
81/**
│ │ │ │
82 * @defgroup ranges Ranges
│ │ │ │ @@ -10626,49 +10626,49 @@ │ │ │ │
10572#endif // C++2a
│ │ │ │
10573#endif /* _GLIBCXX_RANGES */
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ - │ │ │ │ - │ │ │ │ -
constexpr bool operator<=(const duration< _Rep1, _Period1 > &__lhs, const duration< _Rep2, _Period2 > &__rhs)
Definition chrono.h:859
│ │ │ │ -
constexpr bool operator>=(const duration< _Rep1, _Period1 > &__lhs, const duration< _Rep2, _Period2 > &__rhs)
Definition chrono.h:873
│ │ │ │ -
constexpr bool operator<(const duration< _Rep1, _Period1 > &__lhs, const duration< _Rep2, _Period2 > &__rhs)
Definition chrono.h:826
│ │ │ │ -
constexpr bool operator>(const duration< _Rep1, _Period1 > &__lhs, const duration< _Rep2, _Period2 > &__rhs)
Definition chrono.h:866
│ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ +
constexpr bool operator<=(const duration< _Rep1, _Period1 > &__lhs, const duration< _Rep2, _Period2 > &__rhs)
Definition chrono.h:859
│ │ │ │ +
constexpr bool operator>=(const duration< _Rep1, _Period1 > &__lhs, const duration< _Rep2, _Period2 > &__rhs)
Definition chrono.h:873
│ │ │ │ +
constexpr bool operator<(const duration< _Rep1, _Period1 > &__lhs, const duration< _Rep2, _Period2 > &__rhs)
Definition chrono.h:826
│ │ │ │ +
constexpr bool operator>(const duration< _Rep1, _Period1 > &__lhs, const duration< _Rep2, _Period2 > &__rhs)
Definition chrono.h:866
│ │ │ │
constexpr complex< _Tp > operator*(const complex< _Tp > &__x, const complex< _Tp > &__y)
Return new complex value x times y.
Definition complex:434
│ │ │ │
constexpr complex< _Tp > operator-(const complex< _Tp > &__x, const complex< _Tp > &__y)
Return new complex value x minus y.
Definition complex:404
│ │ │ │
constexpr complex< _Tp > operator+(const complex< _Tp > &__x, const complex< _Tp > &__y)
Return new complex value x plus y.
Definition complex:374
│ │ │ │
basic_istream< char > istream
Base class for char input streams.
Definition iosfwd:142
│ │ │ │ -
constexpr _Tp * to_address(_Tp *__ptr) noexcept
Obtain address referenced by a pointer to an object.
Definition ptr_traits.h:232
│ │ │ │ +
constexpr _Tp * to_address(_Tp *__ptr) noexcept
Obtain address referenced by a pointer to an object.
Definition ptr_traits.h:232
│ │ │ │
typename make_unsigned< _Tp >::type make_unsigned_t
Alias template for make_unsigned.
Definition type_traits:2143
│ │ │ │
typename common_type< _Tp... >::type common_type_t
Alias template for common_type.
Definition type_traits:2845
│ │ │ │
typename conditional< _Cond, _Iftrue, _Iffalse >::type conditional_t
Alias template for conditional.
Definition type_traits:2841
│ │ │ │
constexpr auto tuple_cat(_Tpls &&... __tpls) -> typename __tuple_cat_result< _Tpls... >::__type
Create a tuple containing all elements from multiple tuple-like objects.
Definition tuple:2805
│ │ │ │
auto declval() noexcept -> decltype(__declval< _Tp >(0))
Definition type_traits:2611
│ │ │ │ -
constexpr std::remove_reference< _Tp >::type && move(_Tp &&__t) noexcept
Convert a value to an rvalue.
Definition move.h:138
│ │ │ │ -
constexpr __invoke_result< _Callable, _Args... >::type __invoke(_Callable &&__fn, _Args &&... __args) noexcept(__is_nothrow_invocable< _Callable, _Args... >::value)
Invoke a callable object.
Definition invoke.h:92
│ │ │ │ -
constexpr _Tp * __addressof(_Tp &__r) noexcept
Same as C++11 std::addressof.
Definition move.h:52
│ │ │ │ -
constexpr _Tp && forward(typename std::remove_reference< _Tp >::type &__t) noexcept
Forward an lvalue.
Definition move.h:72
│ │ │ │ +
constexpr std::remove_reference< _Tp >::type && move(_Tp &&__t) noexcept
Convert a value to an rvalue.
Definition move.h:138
│ │ │ │ +
constexpr __invoke_result< _Callable, _Args... >::type __invoke(_Callable &&__fn, _Args &&... __args) noexcept(__is_nothrow_invocable< _Callable, _Args... >::value)
Invoke a callable object.
Definition invoke.h:92
│ │ │ │ +
constexpr _Tp * __addressof(_Tp &__r) noexcept
Same as C++11 std::addressof.
Definition move.h:52
│ │ │ │ +
constexpr _Tp && forward(typename std::remove_reference< _Tp >::type &__t) noexcept
Forward an lvalue.
Definition move.h:72
│ │ │ │
_Tp * end(valarray< _Tp > &__va) noexcept
Return an iterator pointing to one past the last element of the valarray.
Definition valarray:1251
│ │ │ │
_Tp * begin(valarray< _Tp > &__va) noexcept
Return an iterator pointing to the first element of the valarray.
Definition valarray:1229
│ │ │ │ -
constexpr const _Tp & min(const _Tp &, const _Tp &)
This does what you think it does.
│ │ │ │ +
constexpr const _Tp & min(const _Tp &, const _Tp &)
This does what you think it does.
│ │ │ │
constexpr reverse_iterator< _Iterator > make_reverse_iterator(_Iterator __i)
Generator function for reverse_iterator.
│ │ │ │ -
constexpr void iota(_ForwardIterator __first, _ForwardIterator __last, _Tp __value)
Create a range of sequentially increasing values.
Definition stl_numeric.h:88
│ │ │ │ +
constexpr void iota(_ForwardIterator __first, _ForwardIterator __last, _Tp __value)
Create a range of sequentially increasing values.
Definition stl_numeric.h:88
│ │ │ │
ISO C++ entities toplevel namespace is std.
│ │ │ │ -
make_integer_sequence< size_t, _Num > make_index_sequence
Alias template make_index_sequence.
Definition utility.h:188
│ │ │ │ -
constexpr auto empty(const _Container &__cont) noexcept(noexcept(__cont.empty())) -> decltype(__cont.empty())
Return whether a container is empty.
│ │ │ │ -
constexpr auto size(const _Container &__cont) noexcept(noexcept(__cont.size())) -> decltype(__cont.size())
Return the size of a container.
│ │ │ │ -
constexpr default_sentinel_t default_sentinel
A default sentinel value.
│ │ │ │ -
constexpr auto data(_Container &__cont) noexcept(noexcept(__cont.data())) -> decltype(__cont.data())
Return the data pointer of a container.
│ │ │ │ +
make_integer_sequence< size_t, _Num > make_index_sequence
Alias template make_index_sequence.
Definition utility.h:188
│ │ │ │ +
constexpr auto empty(const _Container &__cont) noexcept(noexcept(__cont.empty())) -> decltype(__cont.empty())
Return whether a container is empty.
│ │ │ │ +
constexpr auto size(const _Container &__cont) noexcept(noexcept(__cont.size())) -> decltype(__cont.size())
Return the size of a container.
│ │ │ │ +
constexpr default_sentinel_t default_sentinel
A default sentinel value.
│ │ │ │ +
constexpr auto data(_Container &__cont) noexcept(noexcept(__cont.data())) -> decltype(__cont.data())
Return the data pointer of a container.
│ │ │ │
constexpr bitset< _Nb > operator|(const bitset< _Nb > &__x, const bitset< _Nb > &__y) noexcept
Global bitwise operations on bitsets.
Definition bitset:1572
│ │ │ │ -
integer_sequence< size_t, _Idx... > index_sequence
Alias template index_sequence.
Definition utility.h:184
│ │ │ │ -
constexpr _Iterator __base(_Iterator __it)
│ │ │ │ +
integer_sequence< size_t, _Idx... > index_sequence
Alias template index_sequence.
Definition utility.h:184
│ │ │ │ +
constexpr _Iterator __base(_Iterator __it)
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├── html2text {} │ │ │ │ │ @@ -915,22 +915,22 @@ │ │ │ │ │ 910 │ │ │ │ │ 911#include │ │ │ │ │ 912 │ │ │ │ │ 913#endif // __cplusplus <= 201402L │ │ │ │ │ 914 │ │ │ │ │ 915#endif // _GLIBCXX_EXPERIMENTAL_STRING_VIEW │ │ │ │ │ _i_o_s_f_w_d │ │ │ │ │ -_r_a_n_g_e___a_c_c_e_s_s_._h │ │ │ │ │ _v_e_r_s_i_o_n_._h │ │ │ │ │ -_f_u_n_c_t_i_o_n_a_l___h_a_s_h_._h │ │ │ │ │ _r_a_n_g_e_s___b_a_s_e_._h │ │ │ │ │ -_f_u_n_c_t_e_x_c_e_p_t_._h │ │ │ │ │ +_c_h_a_r___t_r_a_i_t_s_._h │ │ │ │ │ +_f_u_n_c_t_i_o_n_a_l___h_a_s_h_._h │ │ │ │ │ +_r_a_n_g_e___a_c_c_e_s_s_._h │ │ │ │ │ _s_t_l___a_l_g_o_b_a_s_e_._h │ │ │ │ │ _o_s_t_r_e_a_m___i_n_s_e_r_t_._h │ │ │ │ │ -_c_h_a_r___t_r_a_i_t_s_._h │ │ │ │ │ +_f_u_n_c_t_e_x_c_e_p_t_._h │ │ │ │ │ _s_t_d_:_:_c_h_r_o_n_o_:_:_o_p_e_r_a_t_o_r_<_= │ │ │ │ │ constexpr bool operator<=(const duration< _Rep1, _Period1 > &__lhs, const │ │ │ │ │ duration< _Rep2, _Period2 > &__rhs) │ │ │ │ │ DDeeffiinniittiioonn _c_h_r_o_n_o_._h_:_8_5_9 │ │ │ │ │ _s_t_d_:_:_c_h_r_o_n_o_:_:_o_p_e_r_a_t_o_r_>_= │ │ │ │ │ constexpr bool operator>=(const duration< _Rep1, _Period1 > &__lhs, const │ │ │ │ │ duration< _Rep2, _Period2 > &__rhs) │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a00224_source.html │ │ │ │ @@ -83,29 +83,29 @@ │ │ │ │
29#ifndef _GLIBCXX_SYNCSTREAM
│ │ │ │
30#define _GLIBCXX_SYNCSTREAM 1
│ │ │ │
31
│ │ │ │
32#ifdef _GLIBCXX_SYSHDR
│ │ │ │
33#pragma GCC system_header
│ │ │ │
34#endif
│ │ │ │
35
│ │ │ │ -
36#include <bits/requires_hosted.h> // iostreams
│ │ │ │ +
36#include <bits/requires_hosted.h> // iostreams
│ │ │ │
37
│ │ │ │ -
38#include <bits/c++config.h>
│ │ │ │ +
38#include <bits/c++config.h>
│ │ │ │
39
│ │ │ │
40#define __glibcxx_want_syncbuf
│ │ │ │ -
41#include <bits/version.h>
│ │ │ │ +
41#include <bits/version.h>
│ │ │ │
42
│ │ │ │
43#ifdef __cpp_lib_syncbuf // C++ >= 20 && HOSTED && CXX11ABI
│ │ │ │
44#include <sstream>
│ │ │ │
45
│ │ │ │
46#include <bits/alloc_traits.h>
│ │ │ │ -
47#include <bits/allocator.h>
│ │ │ │ -
48#include <bits/functexcept.h>
│ │ │ │ - │ │ │ │ -
50#include <bits/std_mutex.h>
│ │ │ │ +
47#include <bits/allocator.h>
│ │ │ │ +
48#include <bits/functexcept.h>
│ │ │ │ + │ │ │ │ +
50#include <bits/std_mutex.h>
│ │ │ │
51
│ │ │ │
52namespace std _GLIBCXX_VISIBILITY(default)
│ │ │ │
53{
│ │ │ │
54_GLIBCXX_BEGIN_NAMESPACE_VERSION
│ │ │ │
55
│ │ │ │
56 template<typename _CharT, typename _Traits, typename _Alloc>
│ │ │ │
57 class basic_syncbuf : public __syncbuf_base<_CharT, _Traits>
│ │ │ │ @@ -369,26 +369,26 @@ │ │ │ │
315 using wosyncstream = basic_osyncstream<wchar_t>;
│ │ │ │
316_GLIBCXX_END_NAMESPACE_VERSION
│ │ │ │
317} // namespace std
│ │ │ │
318#endif // __cpp_lib_syncbuf
│ │ │ │
319
│ │ │ │
320#endif /* _GLIBCXX_SYNCSTREAM */
│ │ │ │ │ │ │ │ - │ │ │ │ - │ │ │ │ - │ │ │ │ - │ │ │ │ - │ │ │ │ - │ │ │ │ - │ │ │ │ -
constexpr std::remove_reference< _Tp >::type && move(_Tp &&__t) noexcept
Convert a value to an rvalue.
Definition move.h:138
│ │ │ │ -
constexpr _Tp * __addressof(_Tp &__r) noexcept
Same as C++11 std::addressof.
Definition move.h:52
│ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ +
constexpr std::remove_reference< _Tp >::type && move(_Tp &&__t) noexcept
Convert a value to an rvalue.
Definition move.h:138
│ │ │ │ +
constexpr _Tp * __addressof(_Tp &__r) noexcept
Same as C++11 std::addressof.
Definition move.h:52
│ │ │ │
void lock(_L1 &__l1, _L2 &__l2, _L3 &... __l3)
Generic lock.
Definition mutex:700
│ │ │ │
ISO C++ entities toplevel namespace is std.
│ │ │ │ -
ptrdiff_t streamsize
Integral type for I/O operation counts and buffer sizes.
Definition postypes.h:73
│ │ │ │ +
ptrdiff_t streamsize
Integral type for I/O operation counts and buffer sizes.
Definition postypes.h:73
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
594
│ │ │ │
595_GLIBCXX_END_NAMESPACE_VERSION
│ │ │ │
596} // namespace
│ │ │ │
597
│ │ │ │ -
598#include <bits/functional_hash.h>
│ │ │ │ +
598#include <bits/functional_hash.h>
│ │ │ │
599
│ │ │ │
600namespace std _GLIBCXX_VISIBILITY(default)
│ │ │ │
601{
│ │ │ │
602_GLIBCXX_BEGIN_NAMESPACE_VERSION
│ │ │ │
603
│ │ │ │
604#ifndef _GLIBCXX_COMPATIBILITY_CXX0X
│ │ │ │
605 // DR 1182.
│ │ │ │ @@ -744,34 +744,34 @@ │ │ │ │
640
│ │ │ │
641#endif // C++11
│ │ │ │
642
│ │ │ │
643#endif // _GLIBCXX_SYSTEM_ERROR
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ - │ │ │ │ - │ │ │ │ - │ │ │ │ - │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │
bool operator==(const error_condition &__lhs, const error_condition &__rhs) noexcept
Definition system_error:482
│ │ │ │
const error_category & generic_category() noexcept
Error category for errno error codes.
│ │ │ │
bool operator==(const error_code &__lhs, const error_condition &__rhs) noexcept
Definition system_error:467
│ │ │ │
error_code make_error_code(errc __e) noexcept
Definition system_error:304
│ │ │ │
bool operator==(const error_code &__lhs, const error_code &__rhs) noexcept
Definition system_error:451
│ │ │ │
error_condition make_error_condition(errc __e) noexcept
Definition system_error:437
│ │ │ │
const error_category & system_category() noexcept
Error category for other error codes defined by the OS.
│ │ │ │
error_condition make_error_condition(future_errc __errc) noexcept
Overload of make_error_condition for future_errc.
Definition future:102
│ │ │ │
error_code make_error_code(future_errc __errc) noexcept
Overload of make_error_code for future_errc.
Definition future:96
│ │ │ │
__bool_constant< true > true_type
The type used as a compile-time boolean with true value.
Definition type_traits:116
│ │ │ │
__bool_constant< false > false_type
The type used as a compile-time boolean with false value.
Definition type_traits:119
│ │ │ │
ISO C++ entities toplevel namespace is std.
│ │ │ │
std::basic_ostream< _CharT, _Traits > & operator<<(std::basic_ostream< _CharT, _Traits > &__os, const bitset< _Nb > &__x)
Global I/O operators for bitsets.
Definition bitset:1692
│ │ │ │
One of two subclasses of exception.
Definition stdexcept:222
│ │ │ │ -
Primary class template hash.
│ │ │ │ +
Primary class template hash.
│ │ │ │
is_error_code_enum
Definition system_error:64
│ │ │ │
is_error_condition_enum
Definition system_error:68
│ │ │ │ │ │ │ │
virtual bool equivalent(int __i, const error_condition &__cond) const noexcept
Test whether cond corresponds to i for this category.
│ │ │ │
virtual bool equivalent(const error_code &__code, int __i) const noexcept
Test whether code corresponds to i for this category.
│ │ │ │
bool operator==(const error_category &__other) const noexcept
An error_category only compares equal to itself.
Definition system_error:162
│ │ │ │
virtual const char * name() const noexcept=0
A string that identifies the error category.
│ │ │ │ @@ -789,15 +789,15 @@ │ │ │ │
int value() const noexcept
The error value.
Definition system_error:401
│ │ │ │
error_condition() noexcept
Initialize with a zero (no error) value and the generic category.
Definition system_error:364
│ │ │ │
string message() const
The category's description of the value.
Definition system_error:411
│ │ │ │
void assign(int __v, const error_category &__cat) noexcept
Set the value and category.
Definition system_error:385
│ │ │ │
void clear() noexcept
Reset the value and category to the default-constructed state.
Definition system_error:393
│ │ │ │
An exception type that includes an error_code value.
Definition system_error:559
│ │ │ │ │ │ │ │ -
One of the comparison functors.
│ │ │ │ +
One of the comparison functors.
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
601
│ │ │ │
602 /// @} group numeric_arrays
│ │ │ │
603
│ │ │ │
604_GLIBCXX_END_NAMESPACE_VERSION
│ │ │ │
605} // namespace
│ │ │ │
606
│ │ │ │ -
607#include <bits/valarray_after.h>
│ │ │ │ -
608#include <bits/slice_array.h>
│ │ │ │ -
609#include <bits/gslice.h>
│ │ │ │ -
610#include <bits/gslice_array.h>
│ │ │ │ -
611#include <bits/mask_array.h>
│ │ │ │ -
612#include <bits/indirect_array.h>
│ │ │ │ +
607#include <bits/valarray_after.h>
│ │ │ │ +
608#include <bits/slice_array.h>
│ │ │ │ +
609#include <bits/gslice.h>
│ │ │ │ +
610#include <bits/gslice_array.h>
│ │ │ │ +
611#include <bits/mask_array.h>
│ │ │ │ +
612#include <bits/indirect_array.h>
│ │ │ │
613
│ │ │ │
614namespace std _GLIBCXX_VISIBILITY(default)
│ │ │ │
615{
│ │ │ │
616_GLIBCXX_BEGIN_NAMESPACE_VERSION
│ │ │ │
617
│ │ │ │
618 /**
│ │ │ │
619 * @addtogroup numeric_arrays
│ │ │ │ @@ -1478,26 +1478,26 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ - │ │ │ │ - │ │ │ │ - │ │ │ │ - │ │ │ │ - │ │ │ │ - │ │ │ │ - │ │ │ │ - │ │ │ │ - │ │ │ │ - │ │ │ │ -
constexpr _Tp * __addressof(_Tp &__r) noexcept
Same as C++11 std::addressof.
Definition move.h:52
│ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ +
constexpr _Tp * __addressof(_Tp &__r) noexcept
Same as C++11 std::addressof.
Definition move.h:52
│ │ │ │
valarray< _Tp > & operator=(const mask_array< _Tp > &__ma)
Assign elements to an array subset.
Definition valarray:820
│ │ │ │
valarray< _Tp > & operator=(valarray< _Tp > &&__v) noexcept
Move assign elements to an array.
Definition valarray:752
│ │ │ │
_Expr< _RefFunClos< _ValArray, _Tp >, _Tp > apply(_Tp __func(const _Tp &)) const
Apply a function to the array.
Definition valarray:1085
│ │ │ │
mask_array< _Tp > operator[](const valarray< bool > &__m)
Return a reference to an array subset.
Definition valarray:911
│ │ │ │
_Expr< _GClos< _ValArray, _Tp >, _Tp > operator[](const gslice &__s) const
Return an array subset.
Definition valarray:881
│ │ │ │
_Expr< _IClos< _ValArray, _Tp >, _Tp > operator[](const valarray< size_t > &__i) const
Return an array subset.
Definition valarray:923
│ │ │ │
valarray(const mask_array< _Tp > &)
Construct an array with the same size and values in ma.
Definition valarray:688
│ │ │ │ @@ -1526,15 +1526,15 @@ │ │ │ │
gslice_array< _Tp > operator[](const gslice &__s)
Return a reference to an array subset.
Definition valarray:890
│ │ │ │
valarray< _Tp > shift(int __n) const
Return a shifted array.
Definition valarray:962
│ │ │ │
_Expr< _ValFunClos< _ValArray, _Tp >, _Tp > apply(_Tp __func(_Tp)) const
Apply a function to the array.
Definition valarray:1077
│ │ │ │
_Tp * begin(valarray< _Tp > &__va) noexcept
Return an iterator pointing to the first element of the valarray.
Definition valarray:1229
│ │ │ │
indirect_array< _Tp > operator[](const valarray< size_t > &__i)
Return a reference to an array subset.
Definition valarray:931
│ │ │ │
valarray< _Tp > & operator=(const valarray< _Tp > &__v)
Assign elements to an array.
Definition valarray:728
│ │ │ │
ISO C++ entities toplevel namespace is std.
│ │ │ │ -
constexpr auto size(const _Container &__cont) noexcept(noexcept(__cont.size())) -> decltype(__cont.size())
Return the size of a container.
│ │ │ │ +
constexpr auto size(const _Container &__cont) noexcept(noexcept(__cont.size())) -> decltype(__cont.size())
Return the size of a container.
│ │ │ │
initializer_list
│ │ │ │
Smart array designed to support numeric processing.
Definition valarray:132
│ │ │ │
valarray< _Tp > & operator^=(const _Tp &)
Set each element e of array to e ^ t.
│ │ │ │
valarray< _Tp > & operator/=(const _Tp &)
Divide each element of array by t.
│ │ │ │
valarray< _Tp > & operator|=(const valarray< _Tp > &)
Logical or corresponding elements of v with elements of array.
│ │ │ │
_UnaryOp< __unary_plus >::_Rt operator+() const
Return a new valarray by applying unary + to each element.
│ │ │ │
valarray< _Tp > & operator*=(const _Tp &)
Multiply each element of array by t.
│ │ │ │ @@ -1553,20 +1553,20 @@ │ │ │ │
valarray< _Tp > & operator&=(const valarray< _Tp > &)
Logical and corresponding elements of v with elements of array.
│ │ │ │
valarray< _Tp > & operator*=(const valarray< _Tp > &)
Multiply elements of array by corresponding elements of v.
│ │ │ │
valarray(valarray &&) noexcept
Move constructor.
│ │ │ │
_UnaryOp< __negate >::_Rt operator-() const
Return a new valarray by applying unary - to each element.
│ │ │ │
valarray< _Tp > & operator%=(const valarray< _Tp > &)
Modulo elements of array by corresponding elements of v.
│ │ │ │
valarray< _Tp > & operator&=(const _Tp &)
Set each element e of array to e & t.
│ │ │ │
valarray< _Tp > & operator|=(const _Tp &)
Set each element e of array to e | t.
│ │ │ │ -
Reference to one-dimensional subset of an array.
│ │ │ │ -
Reference to multi-dimensional subset of an array.
│ │ │ │ -
Reference to selected subset of an array.
Definition mask_array.h:65
│ │ │ │ -
Reference to arbitrary subset of an array.
│ │ │ │ -
Class defining multi-dimensional subset of an array.
Definition gslice.h:67
│ │ │ │ -
Class defining one-dimensional subset of an array.
Definition slice_array.h:62
│ │ │ │ +
Reference to one-dimensional subset of an array.
│ │ │ │ +
Reference to multi-dimensional subset of an array.
│ │ │ │ +
Reference to selected subset of an array.
Definition mask_array.h:65
│ │ │ │ +
Reference to arbitrary subset of an array.
│ │ │ │ +
Class defining multi-dimensional subset of an array.
Definition gslice.h:67
│ │ │ │ +
Class defining one-dimensional subset of an array.
Definition slice_array.h:62
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a00311_source.html │ │ │ │ @@ -84,18 +84,18 @@ │ │ │ │
30#define _GLIBCXX_CSTDINT 1
│ │ │ │
31
│ │ │ │
32#ifdef _GLIBCXX_SYSHDR
│ │ │ │
33#pragma GCC system_header
│ │ │ │
34#endif
│ │ │ │
35
│ │ │ │
36#if __cplusplus < 201103L
│ │ │ │ -
37# include <bits/c++0x_warning.h>
│ │ │ │ +
37# include <bits/c++0x_warning.h>
│ │ │ │
38#else
│ │ │ │
39
│ │ │ │ -
40#include <bits/c++config.h>
│ │ │ │ +
40#include <bits/c++config.h>
│ │ │ │
41
│ │ │ │
42#if ! _GLIBCXX_HOSTED && __has_include(<stdint-gcc.h>)
│ │ │ │
43// For --disable-hosted-libstdcxx we want GCC's own stdint-gcc.h header
│ │ │ │
44// even when -ffreestanding isn't used.
│ │ │ │
45# include <stdint-gcc.h>
│ │ │ │
46#elif __has_include(<stdint.h>)
│ │ │ │
47# include <stdint.h>
│ │ │ │ @@ -196,16 +196,16 @@ │ │ │ │
142
│ │ │ │
143#endif // _GLIBCXX_USE_C99_STDINT
│ │ │ │
144} // namespace std
│ │ │ │
145
│ │ │ │
146#endif // C++11
│ │ │ │
147
│ │ │ │
148#endif // _GLIBCXX_CSTDINT
│ │ │ │ - │ │ │ │ - │ │ │ │ + │ │ │ │ + │ │ │ │
ISO C++ entities toplevel namespace is std.
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├── html2text {} │ │ │ │ │ @@ -1,64 +1,19 @@ │ │ │ │ │ libstdc++ │ │ │ │ │ -_C_l_a_s_s_e_s | _N_a_m_e_s_p_a_c_e_s | _M_a_c_r_o_s | _F_u_n_c_t_i_o_n_s │ │ │ │ │ -stl_list.h File Reference │ │ │ │ │ +_C_l_a_s_s_e_s | _N_a_m_e_s_p_a_c_e_s │ │ │ │ │ +stream_iterator.h File Reference │ │ │ │ │ _G_o_ _t_o_ _t_h_e_ _s_o_u_r_c_e_ _c_o_d_e_ _o_f_ _t_h_i_s_ _f_i_l_e_. │ │ │ │ │ CCllaasssseess │ │ │ │ │ - class   _s_t_d_:_:___L_i_s_t___b_a_s_e_<_ ___T_p_,_ ___A_l_l_o_c_ _> │ │ │ │ │ +class   _s_t_d_:_:_i_s_t_r_e_a_m___i_t_e_r_a_t_o_r_<_ ___T_p_,_ ___C_h_a_r_T_,_ ___T_r_a_i_t_s_,_ ___D_i_s_t_ _> │ │ │ │ │   │ │ │ │ │ -struct   _s_t_d_:_:___L_i_s_t___c_o_n_s_t___i_t_e_r_a_t_o_r_<_ ___T_p_ _> │ │ │ │ │ -  │ │ │ │ │ -struct   _s_t_d_:_:___L_i_s_t___i_t_e_r_a_t_o_r_<_ ___T_p_ _> │ │ │ │ │ -  │ │ │ │ │ -struct   _s_t_d_:_:___L_i_s_t___n_o_d_e_<_ ___T_p_ _> │ │ │ │ │ -  │ │ │ │ │ -struct   _s_t_d_:_:_____d_e_t_a_i_l_:_:___L_i_s_t___n_o_d_e___b_a_s_e │ │ │ │ │ -  │ │ │ │ │ -struct   _s_t_d_:_:_____d_e_t_a_i_l_:_:___L_i_s_t___n_o_d_e___h_e_a_d_e_r │ │ │ │ │ -  │ │ │ │ │ - class   _s_t_d_:_:_l_i_s_t_<_ ___T_p_,_ ___A_l_l_o_c_ _> │ │ │ │ │ +class   _s_t_d_:_:_o_s_t_r_e_a_m___i_t_e_r_a_t_o_r_<_ ___T_p_,_ ___C_h_a_r_T_,_ ___T_r_a_i_t_s_ _> │ │ │ │ │   │ │ │ │ │ NNaammeessppaacceess │ │ │ │ │ namespace   _s_t_d │ │ │ │ │   │ │ │ │ │ -namespace   _s_t_d_:_:_____d_e_t_a_i_l │ │ │ │ │ -  │ │ │ │ │ -MMaaccrrooss │ │ │ │ │ -#define  ___G_L_I_B_C_X_X___L_I_S_T___R_E_M_O_V_E___R_E_T_U_R_N___T_Y_P_E___T_A_G │ │ │ │ │ -  │ │ │ │ │ -#define  ___G_L_I_B_C_X_X___U_S_E___A_L_L_O_C___P_T_R___F_O_R___L_I_S_T │ │ │ │ │ -  │ │ │ │ │ -FFuunnccttiioonnss │ │ │ │ │ -template::value_type, typename _Allocator = │ │ │ │ │ -allocator<_ValT>, typename = _RequireInputIter<_InputIterator>, typename = │ │ │ │ │ -_RequireAllocator<_Allocator>> │ │ │ │ │ -   ssttdd::::lliisstt (_InputIterator, _InputIterator, │ │ │ │ │ - _Allocator=_Allocator()) -> _l_i_s_t< _ValT, │ │ │ │ │ - _Allocator > │ │ │ │ │ -  │ │ │ │ │ -template │ │ │ │ │ -__detail::__synth3way_t< _Tp >  _s_t_d_:_:_o_p_e_r_a_t_o_r_<_=_> (const _l_i_s_t< _Tp, _Alloc > │ │ │ │ │ - &__x, const _l_i_s_t< _Tp, _Alloc > &__y) │ │ │ │ │ -  │ │ │ │ │ -template │ │ │ │ │ - bool  _s_t_d_:_:_o_p_e_r_a_t_o_r_=_= (const _l_i_s_t< _Tp, _Alloc > │ │ │ │ │ - &__x, const _l_i_s_t< _Tp, _Alloc > &__y) │ │ │ │ │ -  │ │ │ │ │ -template │ │ │ │ │ - void  _s_t_d_:_:_s_w_a_p (_l_i_s_t< _Tp, _Alloc > &__x, _l_i_s_t< _Tp, │ │ │ │ │ - _Alloc > &__y) noexcept(/*_c_o_n_d_i_t_i_o_n_a_l */) │ │ │ │ │ -  │ │ │ │ │ ********** DDeettaaiilleedd DDeessccrriippttiioonn ********** │ │ │ │ │ This is an internal header file, included by other library headers. Do not │ │ │ │ │ -attempt to use it directly. Instead, include . │ │ │ │ │ -Definition in file _s_t_l___l_i_s_t_._h. │ │ │ │ │ -********** MMaaccrroo DDeeffiinniittiioonn DDooccuummeennttaattiioonn ********** │ │ │ │ │ -********** _?◆_? __GGLLIIBBCCXXXX__LLIISSTT__RREEMMOOVVEE__RREETTUURRNN__TTYYPPEE__TTAAGG ********** │ │ │ │ │ -#define _GLIBCXX_LIST_REMOVE_RETURN_TYPE_TAG │ │ │ │ │ -Definition at line _2_2_2_8 of file _s_t_l___l_i_s_t_._h. │ │ │ │ │ -********** _?◆_? __GGLLIIBBCCXXXX__UUSSEE__AALLLLOOCC__PPTTRR__FFOORR__LLIISSTT ********** │ │ │ │ │ -#define _GLIBCXX_USE_ALLOC_PTR_FOR_LIST │ │ │ │ │ -Definition at line _7_8 of file _s_t_l___l_i_s_t_._h. │ │ │ │ │ +attempt to use it directly. Instead, include . │ │ │ │ │ +Definition in file _s_t_r_e_a_m___i_t_e_r_a_t_o_r_._h. │ │ │ │ │ * _b_i_t_s │ │ │ │ │ - * _s_t_l___l_i_s_t_._h │ │ │ │ │ + * _s_t_r_e_a_m___i_t_e_r_a_t_o_r_._h │ │ │ │ │ * Generated by _[_d_o_x_y_g_e_n_]1.9.8 │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a00383_source.html │ │ │ │ @@ -1,15 +1,15 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ -libstdc++: stl_list.h Source File │ │ │ │ +libstdc++: stream_iterator.h Source File │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ @@ -45,3088 +45,339 @@ │ │ │ │ │ │ │ │
│ │ │ │
│ │ │ │ -
stl_list.h
│ │ │ │ +
stream_iterator.h
│ │ │ │
│ │ │ │
│ │ │ │ -Go to the documentation of this file.
1// List implementation -*- C++ -*-
│ │ │ │ +Go to the documentation of this file.
1// Stream iterators
│ │ │ │
2
│ │ │ │
3// Copyright (C) 2001-2025 Free Software Foundation, Inc.
│ │ │ │ -
4// Copyright The GNU Toolchain Authors.
│ │ │ │ -
5//
│ │ │ │ -
6// This file is part of the GNU ISO C++ Library. This library is free
│ │ │ │ -
7// software; you can redistribute it and/or modify it under the
│ │ │ │ -
8// terms of the GNU General Public License as published by the
│ │ │ │ -
9// Free Software Foundation; either version 3, or (at your option)
│ │ │ │ -
10// any later version.
│ │ │ │ -
11
│ │ │ │ -
12// This library is distributed in the hope that it will be useful,
│ │ │ │ -
13// but WITHOUT ANY WARRANTY; without even the implied warranty of
│ │ │ │ -
14// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
│ │ │ │ -
15// GNU General Public License for more details.
│ │ │ │ -
16
│ │ │ │ -
17// Under Section 7 of GPL version 3, you are granted additional
│ │ │ │ -
18// permissions described in the GCC Runtime Library Exception, version
│ │ │ │ -
19// 3.1, as published by the Free Software Foundation.
│ │ │ │ -
20
│ │ │ │ -
21// You should have received a copy of the GNU General Public License and
│ │ │ │ -
22// a copy of the GCC Runtime Library Exception along with this program;
│ │ │ │ -
23// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
│ │ │ │ -
24// <http://www.gnu.org/licenses/>.
│ │ │ │ -
25
│ │ │ │ -
26/*
│ │ │ │ -
27 *
│ │ │ │ -
28 * Copyright (c) 1994
│ │ │ │ -
29 * Hewlett-Packard Company
│ │ │ │ -
30 *
│ │ │ │ -
31 * Permission to use, copy, modify, distribute and sell this software
│ │ │ │ -
32 * and its documentation for any purpose is hereby granted without fee,
│ │ │ │ -
33 * provided that the above copyright notice appear in all copies and
│ │ │ │ -
34 * that both that copyright notice and this permission notice appear
│ │ │ │ -
35 * in supporting documentation. Hewlett-Packard Company makes no
│ │ │ │ -
36 * representations about the suitability of this software for any
│ │ │ │ -
37 * purpose. It is provided "as is" without express or implied warranty.
│ │ │ │ -
38 *
│ │ │ │ -
39 *
│ │ │ │ -
40 * Copyright (c) 1996,1997
│ │ │ │ -
41 * Silicon Graphics Computer Systems, Inc.
│ │ │ │ -
42 *
│ │ │ │ -
43 * Permission to use, copy, modify, distribute and sell this software
│ │ │ │ -
44 * and its documentation for any purpose is hereby granted without fee,
│ │ │ │ -
45 * provided that the above copyright notice appear in all copies and
│ │ │ │ -
46 * that both that copyright notice and this permission notice appear
│ │ │ │ -
47 * in supporting documentation. Silicon Graphics makes no
│ │ │ │ -
48 * representations about the suitability of this software for any
│ │ │ │ -
49 * purpose. It is provided "as is" without express or implied warranty.
│ │ │ │ -
50 */
│ │ │ │ -
51
│ │ │ │ -
52/** @file bits/stl_list.h
│ │ │ │ -
53 * This is an internal header file, included by other library headers.
│ │ │ │ -
54 * Do not attempt to use it directly. @headername{list}
│ │ │ │ -
55 */
│ │ │ │ -
56
│ │ │ │ -
57#ifndef _STL_LIST_H
│ │ │ │ -
58#define _STL_LIST_H 1
│ │ │ │ -
59
│ │ │ │ -
60#include <bits/concept_check.h>
│ │ │ │ -
61#include <ext/alloc_traits.h>
│ │ │ │ -
62#include <debug/assertions.h>
│ │ │ │ -
63#if __cplusplus >= 201103L
│ │ │ │ -
64#include <initializer_list>
│ │ │ │ -
65#include <bits/allocated_ptr.h>
│ │ │ │ -
66#include <bits/ptr_traits.h>
│ │ │ │ -
67#include <ext/aligned_buffer.h>
│ │ │ │ -
68#endif
│ │ │ │ -
69#if __glibcxx_ranges_to_container // C++ >= 23
│ │ │ │ -
70# include <bits/ranges_base.h> // ranges::begin, ranges::distance etc.
│ │ │ │ -
71# include <bits/ranges_util.h> // ranges::subrange
│ │ │ │ -
72#endif
│ │ │ │ +
4//
│ │ │ │ +
5// This file is part of the GNU ISO C++ Library. This library is free
│ │ │ │ +
6// software; you can redistribute it and/or modify it under the
│ │ │ │ +
7// terms of the GNU General Public License as published by the
│ │ │ │ +
8// Free Software Foundation; either version 3, or (at your option)
│ │ │ │ +
9// any later version.
│ │ │ │ +
10
│ │ │ │ +
11// This library is distributed in the hope that it will be useful,
│ │ │ │ +
12// but WITHOUT ANY WARRANTY; without even the implied warranty of
│ │ │ │ +
13// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
│ │ │ │ +
14// GNU General Public License for more details.
│ │ │ │ +
15
│ │ │ │ +
16// Under Section 7 of GPL version 3, you are granted additional
│ │ │ │ +
17// permissions described in the GCC Runtime Library Exception, version
│ │ │ │ +
18// 3.1, as published by the Free Software Foundation.
│ │ │ │ +
19
│ │ │ │ +
20// You should have received a copy of the GNU General Public License and
│ │ │ │ +
21// a copy of the GCC Runtime Library Exception along with this program;
│ │ │ │ +
22// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
│ │ │ │ +
23// <http://www.gnu.org/licenses/>.
│ │ │ │ +
24
│ │ │ │ +
25/** @file bits/stream_iterator.h
│ │ │ │ +
26 * This is an internal header file, included by other library headers.
│ │ │ │ +
27 * Do not attempt to use it directly. @headername{iterator}
│ │ │ │ +
28 */
│ │ │ │ +
29
│ │ │ │ +
30#ifndef _STREAM_ITERATOR_H
│ │ │ │ +
31#define _STREAM_ITERATOR_H 1
│ │ │ │ +
32
│ │ │ │ +
33#ifdef _GLIBCXX_SYSHDR
│ │ │ │ +
34#pragma GCC system_header
│ │ │ │ +
35#endif
│ │ │ │ +
36
│ │ │ │ +
37#include <iosfwd>
│ │ │ │ +
38#include <bits/move.h>
│ │ │ │ + │ │ │ │ +
40#include <debug/debug.h>
│ │ │ │ +
41
│ │ │ │ +
42namespace std _GLIBCXX_VISIBILITY(default)
│ │ │ │ +
43{
│ │ │ │ +
44_GLIBCXX_BEGIN_NAMESPACE_VERSION
│ │ │ │ +
45
│ │ │ │ +
46 /**
│ │ │ │ +
47 * @addtogroup iterators
│ │ │ │ +
48 * @{
│ │ │ │ +
49 */
│ │ │ │ +
50
│ │ │ │ +
51// Ignore warnings about std::iterator.
│ │ │ │ +
52#pragma GCC diagnostic push
│ │ │ │ +
53#pragma GCC diagnostic ignored "-Wdeprecated-declarations"
│ │ │ │ +
54
│ │ │ │ +
55 /// Provides input iterator semantics for streams.
│ │ │ │ +
56 template<typename _Tp, typename _CharT = char,
│ │ │ │ +
57 typename _Traits = char_traits<_CharT>, typename _Dist = ptrdiff_t>
│ │ │ │ +
│ │ │ │ + │ │ │ │ +
59 : public iterator<input_iterator_tag, _Tp, _Dist, const _Tp*, const _Tp&>
│ │ │ │ +
60 {
│ │ │ │ +
61 public:
│ │ │ │ +
62 typedef _CharT char_type;
│ │ │ │ +
63 typedef _Traits traits_type;
│ │ │ │ +
64 typedef basic_istream<_CharT, _Traits> istream_type;
│ │ │ │ +
65
│ │ │ │ +
66 private:
│ │ │ │ +
67 istream_type* _M_stream;
│ │ │ │ +
68 _Tp _M_value;
│ │ │ │ +
69 // This bool becomes false at end-of-stream. It should be sufficient to
│ │ │ │ +
70 // check _M_stream != nullptr instead, but historically we did not set
│ │ │ │ +
71 // _M_stream to null when reaching the end, so we need to keep this flag.
│ │ │ │ +
72 bool _M_ok;
│ │ │ │
73
│ │ │ │ -
74#if __cplusplus < 201103L
│ │ │ │ -
75# undef _GLIBCXX_USE_ALLOC_PTR_FOR_LIST
│ │ │ │ -
76# define _GLIBCXX_USE_ALLOC_PTR_FOR_LIST 0
│ │ │ │ -
77#elif ! defined _GLIBCXX_USE_ALLOC_PTR_FOR_LIST
│ │ │ │ -
78# define _GLIBCXX_USE_ALLOC_PTR_FOR_LIST 1
│ │ │ │ -
79#endif
│ │ │ │ -
80
│ │ │ │ -
81namespace std _GLIBCXX_VISIBILITY(default)
│ │ │ │ -
82{
│ │ │ │ -
83_GLIBCXX_BEGIN_NAMESPACE_VERSION
│ │ │ │ +
74 public:
│ │ │ │ +
75 /// Construct end of input stream iterator.
│ │ │ │ +
│ │ │ │ +
76 _GLIBCXX_CONSTEXPR istream_iterator()
│ │ │ │ +
77 _GLIBCXX_NOEXCEPT_IF(is_nothrow_default_constructible<_Tp>::value)
│ │ │ │ +
78 : _M_stream(0), _M_value(), _M_ok(false) {}
│ │ │ │ +
│ │ │ │ +
79
│ │ │ │ +
80 /// Construct start of input stream iterator.
│ │ │ │ +
│ │ │ │ +
81 istream_iterator(istream_type& __s)
│ │ │ │ +
82 : _M_stream(std::__addressof(__s)), _M_ok(true)
│ │ │ │ +
83 { _M_read(); }
│ │ │ │ +
│ │ │ │
84
│ │ │ │ -
85 namespace __detail
│ │ │ │ -
86 {
│ │ │ │ -
87 // Supporting structures are split into common and templated
│ │ │ │ -
88 // types; the latter publicly inherits from the former in an
│ │ │ │ -
89 // effort to reduce code duplication. This results in some
│ │ │ │ -
90 // "needless" static_cast'ing later on, but it's all safe
│ │ │ │ -
91 // downcasting.
│ │ │ │ -
92
│ │ │ │ -
93 /// Common part of a node in the %list.
│ │ │ │ -
│ │ │ │ - │ │ │ │ -
95 {
│ │ │ │ - │ │ │ │ -
97
│ │ │ │ -
98 _List_node_base* _M_next;
│ │ │ │ -
99 _List_node_base* _M_prev;
│ │ │ │ -
100
│ │ │ │ -
101 static void
│ │ │ │ -
102 swap(_List_node_base& __x, _List_node_base& __y) _GLIBCXX_USE_NOEXCEPT;
│ │ │ │ +
85 _GLIBCXX_CONSTEXPR
│ │ │ │ + │ │ │ │ + │ │ │ │ +
88 : _M_stream(__obj._M_stream), _M_value(__obj._M_value),
│ │ │ │ +
89 _M_ok(__obj._M_ok)
│ │ │ │ +
90 { }
│ │ │ │ +
91
│ │ │ │ +
92#if __cplusplus > 201703L && __cpp_lib_concepts
│ │ │ │ +
93 constexpr
│ │ │ │ +
94 istream_iterator(default_sentinel_t)
│ │ │ │ +
95 noexcept(is_nothrow_default_constructible_v<_Tp>)
│ │ │ │ +
96 : istream_iterator() { }
│ │ │ │ +
97#endif
│ │ │ │ +
98
│ │ │ │ +
99#if __cplusplus >= 201103L
│ │ │ │ +
100 istream_iterator& operator=(const istream_iterator&) = default;
│ │ │ │ +
101 ~istream_iterator() = default;
│ │ │ │ +
102#endif
│ │ │ │
103
│ │ │ │ -
104 void
│ │ │ │ -
105 _M_transfer(_List_node_base* const __first,
│ │ │ │ -
106 _List_node_base* const __last) _GLIBCXX_USE_NOEXCEPT;
│ │ │ │ -
107
│ │ │ │ -
108 void
│ │ │ │ -
109 _M_reverse() _GLIBCXX_USE_NOEXCEPT;
│ │ │ │ -
110
│ │ │ │ -
111 void
│ │ │ │ -
112 _M_hook(_List_node_base* const __position) _GLIBCXX_USE_NOEXCEPT;
│ │ │ │ +
104 _GLIBCXX_NODISCARD
│ │ │ │ +
105 const _Tp&
│ │ │ │ +
106 operator*() const _GLIBCXX_NOEXCEPT
│ │ │ │ +
107 {
│ │ │ │ +
108 __glibcxx_requires_cond(_M_ok,
│ │ │ │ +
109 _M_message(__gnu_debug::__msg_deref_istream)
│ │ │ │ +
110 ._M_iterator(*this));
│ │ │ │ +
111 return _M_value;
│ │ │ │ +
112 }
│ │ │ │
113
│ │ │ │ -
114 void
│ │ │ │ -
115 _M_unhook() _GLIBCXX_USE_NOEXCEPT;
│ │ │ │ -
116
│ │ │ │ -
117 _List_node_base* _M_base() { return this; }
│ │ │ │ -
118 const _List_node_base* _M_base() const { return this; }
│ │ │ │ -
119 };
│ │ │ │ -
│ │ │ │ -
120
│ │ │ │ -
121 struct _List_size
│ │ │ │ -
122 {
│ │ │ │ -
123#if _GLIBCXX_USE_CXX11_ABI
│ │ │ │ -
124 // Store the size here so that std::list::size() is fast.
│ │ │ │ -
125 size_t _M_size;
│ │ │ │ -
126#endif
│ │ │ │ -
127 };
│ │ │ │ -
128
│ │ │ │ -
129 /// The %list node header.
│ │ │ │ -
│ │ │ │ -
130 struct _List_node_header : public _List_node_base, _List_size
│ │ │ │ -
131 {
│ │ │ │ -
132 _List_node_header() _GLIBCXX_NOEXCEPT
│ │ │ │ -
133 { _M_init(); }
│ │ │ │ -
134
│ │ │ │ -
135#if __cplusplus >= 201103L
│ │ │ │ - │ │ │ │ -
137 : _List_node_base(__x), _List_size(__x)
│ │ │ │ -
138 {
│ │ │ │ -
139 if (__x._M_base()->_M_next == __x._M_base())
│ │ │ │ -
140 this->_M_next = this->_M_prev = this;
│ │ │ │ -
141 else
│ │ │ │ -
142 {
│ │ │ │ -
143 this->_M_next->_M_prev = this->_M_prev->_M_next = this->_M_base();
│ │ │ │ -
144 __x._M_init();
│ │ │ │ -
145 }
│ │ │ │ -
146 }
│ │ │ │ -
147
│ │ │ │ -
148 void
│ │ │ │ -
149 _M_move_nodes(_List_node_header&& __x)
│ │ │ │ -
150 {
│ │ │ │ -
151 _List_node_base* const __xnode = __x._M_base();
│ │ │ │ -
152 if (__xnode->_M_next == __xnode)
│ │ │ │ -
153 _M_init();
│ │ │ │ -
154 else
│ │ │ │ -
155 {
│ │ │ │ -
156 _List_node_base* const __node = this->_M_base();
│ │ │ │ -
157 __node->_M_next = __xnode->_M_next;
│ │ │ │ -
158 __node->_M_prev = __xnode->_M_prev;
│ │ │ │ -
159 __node->_M_next->_M_prev = __node->_M_prev->_M_next = __node;
│ │ │ │ -
160 _List_size::operator=(__x);
│ │ │ │ -
161 __x._M_init();
│ │ │ │ -
162 }
│ │ │ │ -
163 }
│ │ │ │ -
164#endif
│ │ │ │ -
165
│ │ │ │ -
166 void
│ │ │ │ -
167 _M_init() _GLIBCXX_NOEXCEPT
│ │ │ │ -
168 {
│ │ │ │ -
169 this->_M_next = this->_M_prev = this;
│ │ │ │ -
170 _List_size::operator=(_List_size());
│ │ │ │ -
171 }
│ │ │ │ -
172
│ │ │ │ -
173 using _List_node_base::_M_base;
│ │ │ │ -
174#if ! _GLIBCXX_INLINE_VERSION
│ │ │ │ -
175 _List_node_base* _M_base() { return this; } // XXX GLIBCXX_ABI Deprecated
│ │ │ │ -
176#endif
│ │ │ │ -
177 };
│ │ │ │ -
│ │ │ │ -
178
│ │ │ │ -
179 } // namespace detail
│ │ │ │ -
180
│ │ │ │ -
181#if _GLIBCXX_USE_ALLOC_PTR_FOR_LIST
│ │ │ │ -
182_GLIBCXX_BEGIN_NAMESPACE_CONTAINER
│ │ │ │ -
183_GLIBCXX_BEGIN_NAMESPACE_CXX11
│ │ │ │ -
184 template<typename _Tp, typename _Allocator> class list;
│ │ │ │ -
185_GLIBCXX_END_NAMESPACE_CXX11
│ │ │ │ -
186_GLIBCXX_END_NAMESPACE_CONTAINER
│ │ │ │ -
187
│ │ │ │ -
188namespace __list
│ │ │ │ -
189{
│ │ │ │ -
190 // The base class for a list node. Contains the pointers connecting nodes.
│ │ │ │ -
191 template<typename _VoidPtr>
│ │ │ │ -
192 struct _Node_base
│ │ │ │ -
193 {
│ │ │ │ -
194 using _Base_ptr = __ptr_rebind<_VoidPtr, _Node_base>;
│ │ │ │ -
195 _Base_ptr _M_next;
│ │ │ │ -
196 _Base_ptr _M_prev;
│ │ │ │ -
197
│ │ │ │ -
198 static void
│ │ │ │ -
199 swap(_Node_base& __x, _Node_base& __y) noexcept;
│ │ │ │ -
200
│ │ │ │ -
201 void
│ │ │ │ -
202 _M_transfer(_Base_ptr const __first, _Base_ptr const __last) noexcept;
│ │ │ │ -
203
│ │ │ │ -
204 void
│ │ │ │ -
205 _M_hook(_Base_ptr const __position) noexcept
│ │ │ │ -
206 {
│ │ │ │ -
207 auto __self = this->_M_base();
│ │ │ │ -
208 this->_M_next = __position;
│ │ │ │ -
209 this->_M_prev = __position->_M_prev;
│ │ │ │ -
210 __position->_M_prev->_M_next = __self;
│ │ │ │ -
211 __position->_M_prev = __self;
│ │ │ │ -
212 }
│ │ │ │ -
213
│ │ │ │ -
214 void
│ │ │ │ -
215 _M_unhook() noexcept
│ │ │ │ -
216 {
│ │ │ │ -
217 auto const __next_node = this->_M_next;
│ │ │ │ -
218 auto const __prev_node = this->_M_prev;
│ │ │ │ -
219 __prev_node->_M_next = __next_node;
│ │ │ │ -
220 __next_node->_M_prev = __prev_node;
│ │ │ │ -
221 }
│ │ │ │ -
222
│ │ │ │ -
223 // This is not const-correct, but it's only used in a const access path
│ │ │ │ -
224 // by std::list::empty(), where it doesn't escape, and by
│ │ │ │ -
225 // std::list::end() const, where the pointer is used to initialize a
│ │ │ │ -
226 // const_iterator and so constness is restored.
│ │ │ │ -
227 // The standard allows pointer_to to be potentially-throwing,
│ │ │ │ -
228 // but we have to assume it doesn't throw to implement std::list.
│ │ │ │ -
229 _Base_ptr
│ │ │ │ -
230 _M_base() const noexcept
│ │ │ │ -
231 {
│ │ │ │ -
232 return pointer_traits<_Base_ptr>::
│ │ │ │ -
233 pointer_to(const_cast<_Node_base&>(*this));
│ │ │ │ -
234 }
│ │ │ │ -
235 };
│ │ │ │ -
236
│ │ │ │ -
237 using ::std::__detail::_List_size;
│ │ │ │ -
238
│ │ │ │ -
239 // The special sentinel node contained by a std::list.
│ │ │ │ -
240 // begin()->_M_node->_M_prev and end()->_M_node point to this header.
│ │ │ │ -
241 // This is not a complete node, as it doesn't contain a value.
│ │ │ │ -
242 template<typename _VoidPtr>
│ │ │ │ -
243 struct _Node_header
│ │ │ │ -
244 : public _Node_base<_VoidPtr>, _List_size
│ │ │ │ -
245 {
│ │ │ │ -
246 _Node_header() noexcept
│ │ │ │ -
247 { _M_init(); }
│ │ │ │ -
248
│ │ │ │ -
249 _Node_header(_Node_header&& __x) noexcept
│ │ │ │ -
250 : _Node_base<_VoidPtr>(__x), _List_size(__x)
│ │ │ │ -
251 {
│ │ │ │ -
252 if (__x._M_base()->_M_next == __x._M_base())
│ │ │ │ -
253 this->_M_next = this->_M_prev = this->_M_base();
│ │ │ │ -
254 else
│ │ │ │ -
255 {
│ │ │ │ -
256 this->_M_next->_M_prev = this->_M_prev->_M_next = this->_M_base();
│ │ │ │ -
257 __x._M_init();
│ │ │ │ -
258 }
│ │ │ │ -
259 }
│ │ │ │ +
114 _GLIBCXX_NODISCARD
│ │ │ │ +
115 const _Tp*
│ │ │ │ +
116 operator->() const _GLIBCXX_NOEXCEPT
│ │ │ │ +
117 { return std::__addressof((operator*())); }
│ │ │ │ +
118
│ │ │ │ + │ │ │ │ +
120 operator++()
│ │ │ │ +
121 {
│ │ │ │ +
122 __glibcxx_requires_cond(_M_ok,
│ │ │ │ +
123 _M_message(__gnu_debug::__msg_inc_istream)
│ │ │ │ +
124 ._M_iterator(*this));
│ │ │ │ +
125 _M_read();
│ │ │ │ +
126 return *this;
│ │ │ │ +
127 }
│ │ │ │ +
128
│ │ │ │ + │ │ │ │ +
130 operator++(int)
│ │ │ │ +
131 {
│ │ │ │ +
132 __glibcxx_requires_cond(_M_ok,
│ │ │ │ +
133 _M_message(__gnu_debug::__msg_inc_istream)
│ │ │ │ +
134 ._M_iterator(*this));
│ │ │ │ +
135 istream_iterator __tmp = *this;
│ │ │ │ +
136 _M_read();
│ │ │ │ +
137 return __tmp;
│ │ │ │ +
138 }
│ │ │ │ +
139
│ │ │ │ +
140 private:
│ │ │ │ +
141 bool
│ │ │ │ +
142 _M_equal(const istream_iterator& __x) const _GLIBCXX_NOEXCEPT
│ │ │ │ +
143 {
│ │ │ │ +
144 // Ideally this would just return _M_stream == __x._M_stream,
│ │ │ │ +
145 // but code compiled with old versions never sets _M_stream to null.
│ │ │ │ +
146 return (_M_ok == __x._M_ok) && (!_M_ok || _M_stream == __x._M_stream);
│ │ │ │ +
147 }
│ │ │ │ +
148
│ │ │ │ +
149 void
│ │ │ │ +
150 _M_read()
│ │ │ │ +
151 {
│ │ │ │ +
152 if (_M_stream && !(*_M_stream >> _M_value))
│ │ │ │ +
153 {
│ │ │ │ +
154 _M_stream = 0;
│ │ │ │ +
155 _M_ok = false;
│ │ │ │ +
156 }
│ │ │ │ +
157 }
│ │ │ │ +
158
│ │ │ │ +
159 /// Return true if the iterators refer to the same stream,
│ │ │ │ +
160 /// or are both at end-of-stream.
│ │ │ │ +
161 _GLIBCXX_NODISCARD
│ │ │ │ +
162 friend bool
│ │ │ │ +
│ │ │ │ + │ │ │ │ +
164 _GLIBCXX_NOEXCEPT
│ │ │ │ +
165 { return __x._M_equal(__y); }
│ │ │ │ +
│ │ │ │ +
166
│ │ │ │ +
167#if __cpp_impl_three_way_comparison < 201907L
│ │ │ │ +
168 /// Return true if the iterators refer to different streams,
│ │ │ │ +
169 /// or if one is at end-of-stream and the other is not.
│ │ │ │ +
170 _GLIBCXX_NODISCARD
│ │ │ │ +
171 friend bool
│ │ │ │ +
172 operator!=(const istream_iterator& __x, const istream_iterator& __y)
│ │ │ │ +
173 _GLIBCXX_NOEXCEPT
│ │ │ │ +
174 { return !__x._M_equal(__y); }
│ │ │ │ +
175#endif
│ │ │ │ +
176
│ │ │ │ +
177#if __cplusplus > 201703L && __cpp_lib_concepts
│ │ │ │ +
178 [[nodiscard]]
│ │ │ │ +
179 friend bool
│ │ │ │ +
180 operator==(const istream_iterator& __i, default_sentinel_t) noexcept
│ │ │ │ +
181 { return !__i._M_stream; }
│ │ │ │ +
182#endif
│ │ │ │ +
183 };
│ │ │ │ +
│ │ │ │ +
184
│ │ │ │ +
185 /**
│ │ │ │ +
186 * @brief Provides output iterator semantics for streams.
│ │ │ │ +
187 *
│ │ │ │ +
188 * This class provides an iterator to write to an ostream. The type Tp is
│ │ │ │ +
189 * the only type written by this iterator and there must be an
│ │ │ │ +
190 * operator<<(Tp) defined.
│ │ │ │ +
191 *
│ │ │ │ +
192 * @tparam _Tp The type to write to the ostream.
│ │ │ │ +
193 * @tparam _CharT The ostream char_type.
│ │ │ │ +
194 * @tparam _Traits The ostream char_traits.
│ │ │ │ +
195 */
│ │ │ │ +
196 template<typename _Tp, typename _CharT = char,
│ │ │ │ +
197 typename _Traits = char_traits<_CharT> >
│ │ │ │ +
│ │ │ │ + │ │ │ │ +
199 : public iterator<output_iterator_tag, void, void, void, void>
│ │ │ │ +
200 {
│ │ │ │ +
201 public:
│ │ │ │ +
202 ///@{
│ │ │ │ +
203 /// Public typedef
│ │ │ │ +
204#if __cplusplus > 201703L
│ │ │ │ +
205 using difference_type = ptrdiff_t;
│ │ │ │ +
206#endif
│ │ │ │ +
207 typedef _CharT char_type;
│ │ │ │ +
208 typedef _Traits traits_type;
│ │ │ │ + │ │ │ │ +
210 ///@}
│ │ │ │ +
211
│ │ │ │ +
212 private:
│ │ │ │ +
213 ostream_type* _M_stream;
│ │ │ │ +
214 const _CharT* _M_string;
│ │ │ │ +
215
│ │ │ │ +
216 public:
│ │ │ │ +
217 /// Construct from an ostream.
│ │ │ │ +
│ │ │ │ +
218 ostream_iterator(ostream_type& __s) _GLIBCXX_NOEXCEPT
│ │ │ │ +
219 : _M_stream(std::__addressof(__s)), _M_string(0) {}
│ │ │ │ +
│ │ │ │ +
220
│ │ │ │ +
221 /**
│ │ │ │ +
222 * Construct from an ostream.
│ │ │ │ +
223 *
│ │ │ │ +
224 * The delimiter string @a c is written to the stream after every Tp
│ │ │ │ +
225 * written to the stream. The delimiter is not copied, and thus must
│ │ │ │ +
226 * not be destroyed while this iterator is in use.
│ │ │ │ +
227 *
│ │ │ │ +
228 * @param __s Underlying ostream to write to.
│ │ │ │ +
229 * @param __c CharT delimiter string to insert.
│ │ │ │ +
230 */
│ │ │ │ +
│ │ │ │ +
231 ostream_iterator(ostream_type& __s, const _CharT* __c) _GLIBCXX_NOEXCEPT
│ │ │ │ +
232 : _M_stream(std::__addressof(__s)), _M_string(__c) { }
│ │ │ │ +
│ │ │ │ +
233
│ │ │ │ +
234 /// Copy constructor.
│ │ │ │ +
│ │ │ │ +
235 ostream_iterator(const ostream_iterator& __obj) _GLIBCXX_NOEXCEPT
│ │ │ │ +
236 : _M_stream(__obj._M_stream), _M_string(__obj._M_string) { }
│ │ │ │ +
│ │ │ │ +
237
│ │ │ │ +
238#if __cplusplus >= 201103L
│ │ │ │ +
239 ostream_iterator& operator=(const ostream_iterator&) = default;
│ │ │ │ +
240#endif
│ │ │ │ +
241
│ │ │ │ +
242 /// Writes @a value to underlying ostream using operator<<. If
│ │ │ │ +
243 /// constructed with delimiter string, writes delimiter to ostream.
│ │ │ │ + │ │ │ │ +
│ │ │ │ +
245 operator=(const _Tp& __value)
│ │ │ │ +
246 {
│ │ │ │ +
247 __glibcxx_requires_cond(_M_stream != 0,
│ │ │ │ +
248 _M_message(__gnu_debug::__msg_output_ostream)
│ │ │ │ +
249 ._M_iterator(*this));
│ │ │ │ +
250 *_M_stream << __value;
│ │ │ │ +
251 if (_M_string)
│ │ │ │ +
252 *_M_stream << _M_string;
│ │ │ │ +
253 return *this;
│ │ │ │ +
254 }
│ │ │ │ +
│ │ │ │ +
255
│ │ │ │ +
256 _GLIBCXX_NODISCARD
│ │ │ │ + │ │ │ │ +
258 operator*() _GLIBCXX_NOEXCEPT
│ │ │ │ +
259 { return *this; }
│ │ │ │
260
│ │ │ │ -
261 void
│ │ │ │ -
262 _M_move_nodes(_Node_header&& __x) noexcept
│ │ │ │ -
263 {
│ │ │ │ -
264 auto const __xnode = __x._M_base();
│ │ │ │ -
265 if (__xnode->_M_next == __xnode)
│ │ │ │ -
266 _M_init();
│ │ │ │ -
267 else
│ │ │ │ -
268 {
│ │ │ │ -
269 auto const __node = this->_M_base();
│ │ │ │ -
270 __node->_M_next = __xnode->_M_next;
│ │ │ │ -
271 __node->_M_prev = __xnode->_M_prev;
│ │ │ │ -
272 __node->_M_next->_M_prev = __node->_M_prev->_M_next = __node;
│ │ │ │ -
273 _List_size::operator=(__x);
│ │ │ │ -
274 __x._M_init();
│ │ │ │ -
275 }
│ │ │ │ -
276 }
│ │ │ │ -
277
│ │ │ │ -
278 void
│ │ │ │ -
279 _M_init() noexcept
│ │ │ │ -
280 {
│ │ │ │ -
281 this->_M_next = this->_M_prev = this->_M_base();
│ │ │ │ -
282 _List_size::operator=(_List_size());
│ │ │ │ -
283 }
│ │ │ │ -
284
│ │ │ │ -
285 void _M_reverse() noexcept;
│ │ │ │ -
286 };
│ │ │ │ -
287
│ │ │ │ -
288 // The node type used for allocators with fancy pointers.
│ │ │ │ -
289 template<typename _ValPtr>
│ │ │ │ -
290 struct _Node : public __list::_Node_base<__ptr_rebind<_ValPtr, void>>
│ │ │ │ -
291 {
│ │ │ │ -
292 using value_type = typename pointer_traits<_ValPtr>::element_type;
│ │ │ │ -
293 using _Node_ptr = __ptr_rebind<_ValPtr, _Node>;
│ │ │ │ -
294
│ │ │ │ -
295 _Node() noexcept { }
│ │ │ │ -
296 ~_Node() { }
│ │ │ │ -
297 _Node(_Node&&) = delete;
│ │ │ │ -
298
│ │ │ │ -
299 union _Uninit_storage
│ │ │ │ -
300 {
│ │ │ │ -
301 _Uninit_storage() noexcept { }
│ │ │ │ -
302 ~_Uninit_storage() { }
│ │ │ │ -
303
│ │ │ │ -
304 value_type _M_data;
│ │ │ │ -
305 };
│ │ │ │ -
306 _Uninit_storage _M_u;
│ │ │ │ -
307
│ │ │ │ -
308 value_type*
│ │ │ │ -
309 _M_valptr() noexcept { return std::__addressof(_M_u._M_data); }
│ │ │ │ -
310
│ │ │ │ -
311 value_type const*
│ │ │ │ -
312 _M_valptr() const noexcept { return std::__addressof(_M_u._M_data); }
│ │ │ │ -
313
│ │ │ │ -
314 _Node_ptr
│ │ │ │ -
315 _M_node_ptr()
│ │ │ │ -
316 { return pointer_traits<_Node_ptr>::pointer_to(*this); }
│ │ │ │ -
317 };
│ │ │ │ -
318
│ │ │ │ -
319 template<bool _Const, typename _Ptr> class _Iterator;
│ │ │ │ -
320
│ │ │ │ -
321 template<bool _Const, typename _Ptr>
│ │ │ │ -
322 class _Iterator
│ │ │ │ -
323 {
│ │ │ │ -
324 using _Node = __list::_Node<_Ptr>;
│ │ │ │ -
325 using _Base_ptr
│ │ │ │ -
326 = typename __list::_Node_base<__ptr_rebind<_Ptr, void>>::_Base_ptr;
│ │ │ │ -
327
│ │ │ │ -
328 template<typename _Tp>
│ │ │ │ -
329 using __maybe_const = __conditional_t<_Const, const _Tp, _Tp>;
│ │ │ │ -
330
│ │ │ │ -
331 public:
│ │ │ │ -
332 using value_type = typename pointer_traits<_Ptr>::element_type;
│ │ │ │ -
333 using difference_type = ptrdiff_t;
│ │ │ │ -
334 using iterator_category = bidirectional_iterator_tag;
│ │ │ │ -
335 using pointer = __maybe_const<value_type>*;
│ │ │ │ -
336 using reference = __maybe_const<value_type>&;
│ │ │ │ -
337
│ │ │ │ -
338 constexpr _Iterator() noexcept : _M_node() { }
│ │ │ │ -
339
│ │ │ │ -
340 _Iterator(const _Iterator&) = default;
│ │ │ │ -
341 _Iterator& operator=(const _Iterator&) = default;
│ │ │ │ -
342
│ │ │ │ -
343#ifdef __glibcxx_concepts
│ │ │ │ -
344 constexpr
│ │ │ │ -
345 _Iterator(const _Iterator<false, _Ptr>& __i) requires _Const
│ │ │ │ -
346#else
│ │ │ │ -
347 template<bool _OtherConst,
│ │ │ │ -
348 typename = __enable_if_t<_Const && !_OtherConst>>
│ │ │ │ -
349 constexpr
│ │ │ │ -
350 _Iterator(const _Iterator<_OtherConst, _Ptr>& __i)
│ │ │ │ -
351#endif
│ │ │ │ -
352 : _M_node(__i._M_node) { }
│ │ │ │ -
353
│ │ │ │ -
354 constexpr explicit
│ │ │ │ -
355 _Iterator(_Base_ptr __x) noexcept
│ │ │ │ -
356 : _M_node(__x) { }
│ │ │ │ -
357
│ │ │ │ -
358 // Must downcast from _Node_base to _Node to get to value.
│ │ │ │ -
359 [[__nodiscard__]]
│ │ │ │ -
360 constexpr reference
│ │ │ │ -
361 operator*() const noexcept
│ │ │ │ -
362 { return static_cast<_Node&>(*_M_node)._M_u._M_data; }
│ │ │ │ -
363
│ │ │ │ -
364 [[__nodiscard__]]
│ │ │ │ -
365 constexpr pointer
│ │ │ │ -
366 operator->() const noexcept
│ │ │ │ -
367 { return std::__addressof(operator*()); }
│ │ │ │ -
368
│ │ │ │ -
369 _GLIBCXX14_CONSTEXPR _Iterator&
│ │ │ │ -
370 operator++() noexcept
│ │ │ │ -
371 {
│ │ │ │ -
372 _M_node = _M_node->_M_next;
│ │ │ │ -
373 return *this;
│ │ │ │ -
374 }
│ │ │ │ -
375
│ │ │ │ -
376 _GLIBCXX14_CONSTEXPR _Iterator
│ │ │ │ -
377 operator++(int) noexcept
│ │ │ │ -
378 {
│ │ │ │ -
379 auto __tmp = *this;
│ │ │ │ -
380 _M_node = _M_node->_M_next;
│ │ │ │ -
381 return __tmp;
│ │ │ │ -
382 }
│ │ │ │ -
383
│ │ │ │ -
384 _GLIBCXX14_CONSTEXPR _Iterator&
│ │ │ │ -
385 operator--() noexcept
│ │ │ │ -
386 {
│ │ │ │ -
387 _M_node = _M_node->_M_prev;
│ │ │ │ -
388 return *this;
│ │ │ │ -
389 }
│ │ │ │ -
390
│ │ │ │ -
391 _GLIBCXX14_CONSTEXPR _Iterator
│ │ │ │ -
392 operator--(int) noexcept
│ │ │ │ -
393 {
│ │ │ │ -
394 auto __tmp = *this;
│ │ │ │ -
395 _M_node = _M_node->_M_prev;
│ │ │ │ -
396 return __tmp;
│ │ │ │ -
397 }
│ │ │ │ -
398
│ │ │ │ -
399 [[__nodiscard__]]
│ │ │ │ -
400 friend constexpr bool
│ │ │ │ -
401 operator==(const _Iterator& __x, const _Iterator& __y) noexcept
│ │ │ │ -
402 { return __x._M_node == __y._M_node; }
│ │ │ │ -
403
│ │ │ │ -
404#if __cpp_impl_three_way_comparison < 201907L
│ │ │ │ -
405 [[__nodiscard__]]
│ │ │ │ -
406 friend constexpr bool
│ │ │ │ -
407 operator!=(const _Iterator& __x, const _Iterator& __y) noexcept
│ │ │ │ -
408 { return __x._M_node != __y._M_node; }
│ │ │ │ -
409#endif
│ │ │ │ -
410
│ │ │ │ -
411 private:
│ │ │ │ -
412 template<typename _Tp, typename _Allocator>
│ │ │ │ -
413 friend class _GLIBCXX_STD_C::list;
│ │ │ │ -
414
│ │ │ │ -
415 friend _Iterator<!_Const, _Ptr>;
│ │ │ │ -
416
│ │ │ │ -
417 constexpr _Iterator<false, _Ptr>
│ │ │ │ -
418 _M_const_cast() const noexcept
│ │ │ │ -
419 { return _Iterator<false, _Ptr>(_M_node); }
│ │ │ │ -
420
│ │ │ │ -
421 _Base_ptr _M_node;
│ │ │ │ -
422 };
│ │ │ │ -
423} // namespace __list
│ │ │ │ -
424#endif // USE_ALLOC_PTR_FOR_LIST
│ │ │ │ -
425
│ │ │ │ -
426_GLIBCXX_BEGIN_NAMESPACE_CONTAINER
│ │ │ │ -
427 template<typename _Tp> struct _List_node;
│ │ │ │ -
428 template<typename _Tp> struct _List_iterator;
│ │ │ │ -
429 template<typename _Tp> struct _List_const_iterator;
│ │ │ │ -
430_GLIBCXX_END_NAMESPACE_CONTAINER
│ │ │ │ -
431
│ │ │ │ -
432namespace __list
│ │ │ │ -
433{
│ │ │ │ -
434 // Determine the node and iterator types used by std::list.
│ │ │ │ -
435 template<typename _Tp, typename _Ptr>
│ │ │ │ -
436 struct _Node_traits;
│ │ │ │ -
437
│ │ │ │ -
438#if _GLIBCXX_USE_ALLOC_PTR_FOR_LIST <= 9000
│ │ │ │ -
439 // Specialization for the simple case where the allocator's pointer type
│ │ │ │ -
440 // is the same type as value_type*.
│ │ │ │ -
441 // For ABI compatibility we can't change the types used for this case.
│ │ │ │ -
442 template<typename _Tp>
│ │ │ │ -
443 struct _Node_traits<_Tp, _Tp*>
│ │ │ │ -
444 {
│ │ │ │ -
445 typedef __detail::_List_node_base _Node_base;
│ │ │ │ -
446 typedef __detail::_List_node_header _Node_header;
│ │ │ │ -
447 typedef _GLIBCXX_STD_C::_List_node<_Tp> _Node;
│ │ │ │ -
448 typedef _GLIBCXX_STD_C::_List_iterator<_Tp> _Iterator;
│ │ │ │ -
449 typedef _GLIBCXX_STD_C::_List_const_iterator<_Tp> _Const_iterator;
│ │ │ │ -
450 };
│ │ │ │ -
451#endif
│ │ │ │ -
452
│ │ │ │ -
453#if ! _GLIBCXX_USE_ALLOC_PTR_FOR_LIST
│ │ │ │ -
454 // Always use the T* specialization.
│ │ │ │ -
455 template<typename _Tp, typename _Ptr>
│ │ │ │ -
456 struct _Node_traits
│ │ │ │ -
457 : _Node_traits<_Tp, _Tp*>
│ │ │ │ -
458 { };
│ │ │ │ -
459#else
│ │ │ │ -
460 // Primary template used when the allocator uses fancy pointers.
│ │ │ │ -
461 template<typename _Tp, typename _Ptr>
│ │ │ │ -
462 struct _Node_traits
│ │ │ │ -
463 {
│ │ │ │ -
464 private:
│ │ │ │ -
465 using _VoidPtr = __ptr_rebind<_Ptr, void>;
│ │ │ │ -
466 using _ValPtr = __ptr_rebind<_Ptr, _Tp>;
│ │ │ │ -
467
│ │ │ │ -
468 public:
│ │ │ │ -
469 using _Node_base = __list::_Node_base<_VoidPtr>;
│ │ │ │ -
470 using _Node_header = __list::_Node_header<_VoidPtr>;
│ │ │ │ -
471 using _Node = __list::_Node<_ValPtr>;
│ │ │ │ -
472 using _Iterator = __list::_Iterator<false, _ValPtr>;
│ │ │ │ -
473 using _Const_iterator = __list::_Iterator<true, _ValPtr>;
│ │ │ │ -
474 };
│ │ │ │ -
475#endif // USE_ALLOC_PTR_FOR_LIST
│ │ │ │ -
476
│ │ │ │ -
477 // Used by std::list::sort to hold nodes being sorted.
│ │ │ │ -
478 template<typename _NodeBaseT>
│ │ │ │ -
479 struct _Scratch_list
│ │ │ │ -
480 : _NodeBaseT
│ │ │ │ -
481 {
│ │ │ │ -
482 typedef _NodeBaseT _Base;
│ │ │ │ -
483 typedef typename _Base::_Base_ptr _Base_ptr;
│ │ │ │ -
484
│ │ │ │ -
485 _Scratch_list() { this->_M_next = this->_M_prev = this->_M_base(); }
│ │ │ │ -
486
│ │ │ │ -
487 bool empty() const { return this->_M_next == this->_M_base(); }
│ │ │ │ -
488
│ │ │ │ -
489 void swap(_Base& __l) { _Base::swap(*this, __l); }
│ │ │ │ -
490
│ │ │ │ -
491 template<typename _Iter, typename _Cmp>
│ │ │ │ -
492 struct _Ptr_cmp
│ │ │ │ -
493 {
│ │ │ │ -
494 _Cmp _M_cmp;
│ │ │ │ -
495
│ │ │ │ -
496 bool
│ │ │ │ -
497 operator()(_Base_ptr __lhs, _Base_ptr __rhs) /* not const */
│ │ │ │ -
498 { return _M_cmp(*_Iter(__lhs), *_Iter(__rhs)); }
│ │ │ │ -
499 };
│ │ │ │ -
500
│ │ │ │ -
501 template<typename _Iter>
│ │ │ │ -
502 struct _Ptr_cmp<_Iter, void>
│ │ │ │ -
503 {
│ │ │ │ -
504 bool
│ │ │ │ -
505 operator()(_Base_ptr __lhs, _Base_ptr __rhs) const
│ │ │ │ -
506 { return *_Iter(__lhs) < *_Iter(__rhs); }
│ │ │ │ -
507 };
│ │ │ │ -
508
│ │ │ │ -
509 // Merge nodes from __x into *this. Both lists must be sorted wrt _Cmp.
│ │ │ │ -
510 template<typename _Cmp>
│ │ │ │ -
511 void
│ │ │ │ -
512 merge(_Base& __x, _Cmp __comp)
│ │ │ │ -
513 {
│ │ │ │ -
514 _Base_ptr __first1 = this->_M_next;
│ │ │ │ -
515 _Base_ptr const __last1 = this->_M_base();
│ │ │ │ -
516 _Base_ptr __first2 = __x._M_next;
│ │ │ │ -
517 _Base_ptr const __last2 = __x._M_base();
│ │ │ │ -
518
│ │ │ │ -
519 while (__first1 != __last1 && __first2 != __last2)
│ │ │ │ -
520 {
│ │ │ │ -
521 if (__comp(__first2, __first1))
│ │ │ │ -
522 {
│ │ │ │ -
523 _Base_ptr __next = __first2->_M_next;
│ │ │ │ -
524 __first1->_M_transfer(__first2, __next);
│ │ │ │ -
525 __first2 = __next;
│ │ │ │ -
526 }
│ │ │ │ -
527 else
│ │ │ │ -
528 __first1 = __first1->_M_next;
│ │ │ │ -
529 }
│ │ │ │ -
530 if (__first2 != __last2)
│ │ │ │ -
531 this->_M_transfer(__first2, __last2);
│ │ │ │ -
532 }
│ │ │ │ -
533
│ │ │ │ -
534 // Splice the node at __i into *this.
│ │ │ │ -
535 void _M_take_one(_Base_ptr __i)
│ │ │ │ -
536 { this->_M_transfer(__i, __i->_M_next); }
│ │ │ │ -
537
│ │ │ │ -
538 // Splice all nodes from *this after __i.
│ │ │ │ -
539 void _M_put_all(_Base_ptr __i)
│ │ │ │ -
540 {
│ │ │ │ -
541 if (!empty())
│ │ │ │ -
542 __i->_M_transfer(this->_M_next, this->_M_base());
│ │ │ │ -
543 }
│ │ │ │ -
544 };
│ │ │ │ -
545} // namespace __list
│ │ │ │ -
546
│ │ │ │ -
547_GLIBCXX_BEGIN_NAMESPACE_CONTAINER
│ │ │ │ -
548
│ │ │ │ -
549 /// An actual node in the %list.
│ │ │ │ -
550 template<typename _Tp>
│ │ │ │ -
│ │ │ │ - │ │ │ │ -
552 {
│ │ │ │ -
553 typedef _List_node* _Node_ptr;
│ │ │ │ -
554
│ │ │ │ -
555#if __cplusplus >= 201103L
│ │ │ │ -
556 __gnu_cxx::__aligned_membuf<_Tp> _M_storage;
│ │ │ │ -
557 _Tp* _M_valptr() { return _M_storage._M_ptr(); }
│ │ │ │ -
558 _Tp const* _M_valptr() const { return _M_storage._M_ptr(); }
│ │ │ │ -
559#else
│ │ │ │ -
560 _Tp _M_data;
│ │ │ │ -
561 _Tp* _M_valptr() { return std::__addressof(_M_data); }
│ │ │ │ -
562 _Tp const* _M_valptr() const { return std::__addressof(_M_data); }
│ │ │ │ -
563#endif
│ │ │ │ -
564
│ │ │ │ -
565 _Node_ptr _M_node_ptr() { return this; }
│ │ │ │ -
566 };
│ │ │ │ -
│ │ │ │ -
567
│ │ │ │ -
568 /**
│ │ │ │ -
569 * @brief A list::iterator.
│ │ │ │ -
570 *
│ │ │ │ -
571 * All the functions are op overloads.
│ │ │ │ -
572 */
│ │ │ │ -
573 template<typename _Tp>
│ │ │ │ -
│ │ │ │ - │ │ │ │ -
575 {
│ │ │ │ -
576 typedef _List_node<_Tp> _Node;
│ │ │ │ -
577
│ │ │ │ -
578 typedef ptrdiff_t difference_type;
│ │ │ │ - │ │ │ │ -
580 typedef _Tp value_type;
│ │ │ │ -
581 typedef _Tp* pointer;
│ │ │ │ -
582 typedef _Tp& reference;
│ │ │ │ -
583
│ │ │ │ -
584 _List_iterator() _GLIBCXX_NOEXCEPT
│ │ │ │ -
585 : _M_node() { }
│ │ │ │ -
586
│ │ │ │ -
587 explicit
│ │ │ │ -
588 _List_iterator(__detail::_List_node_base* __x) _GLIBCXX_NOEXCEPT
│ │ │ │ -
589 : _M_node(__x) { }
│ │ │ │ -
590
│ │ │ │ - │ │ │ │ -
592 _M_const_cast() const _GLIBCXX_NOEXCEPT
│ │ │ │ -
593 { return *this; }
│ │ │ │ -
594
│ │ │ │ -
595 // Must downcast from _List_node_base to _List_node to get to value.
│ │ │ │ -
596 _GLIBCXX_NODISCARD
│ │ │ │ -
597 reference
│ │ │ │ -
598 operator*() const _GLIBCXX_NOEXCEPT
│ │ │ │ -
599 { return *static_cast<_Node*>(_M_node)->_M_valptr(); }
│ │ │ │ -
600
│ │ │ │ -
601 _GLIBCXX_NODISCARD
│ │ │ │ -
602 pointer
│ │ │ │ -
603 operator->() const _GLIBCXX_NOEXCEPT
│ │ │ │ -
604 { return static_cast<_Node*>(_M_node)->_M_valptr(); }
│ │ │ │ -
605
│ │ │ │ - │ │ │ │ -
607 operator++() _GLIBCXX_NOEXCEPT
│ │ │ │ -
608 {
│ │ │ │ -
609 _M_node = _M_node->_M_next;
│ │ │ │ -
610 return *this;
│ │ │ │ -
611 }
│ │ │ │ -
612
│ │ │ │ - │ │ │ │ -
614 operator++(int) _GLIBCXX_NOEXCEPT
│ │ │ │ -
615 {
│ │ │ │ -
616 _List_iterator __tmp = *this;
│ │ │ │ -
617 _M_node = _M_node->_M_next;
│ │ │ │ -
618 return __tmp;
│ │ │ │ -
619 }
│ │ │ │ -
620
│ │ │ │ - │ │ │ │ -
622 operator--() _GLIBCXX_NOEXCEPT
│ │ │ │ -
623 {
│ │ │ │ -
624 _M_node = _M_node->_M_prev;
│ │ │ │ -
625 return *this;
│ │ │ │ -
626 }
│ │ │ │ -
627
│ │ │ │ - │ │ │ │ -
629 operator--(int) _GLIBCXX_NOEXCEPT
│ │ │ │ -
630 {
│ │ │ │ -
631 _List_iterator __tmp = *this;
│ │ │ │ -
632 _M_node = _M_node->_M_prev;
│ │ │ │ -
633 return __tmp;
│ │ │ │ -
634 }
│ │ │ │ -
635
│ │ │ │ -
636 _GLIBCXX_NODISCARD
│ │ │ │ -
637 friend bool
│ │ │ │ -
638 operator==(const _List_iterator& __x,
│ │ │ │ -
639 const _List_iterator& __y) _GLIBCXX_NOEXCEPT
│ │ │ │ -
640 { return __x._M_node == __y._M_node; }
│ │ │ │ -
641
│ │ │ │ -
642#if __cpp_impl_three_way_comparison < 201907L
│ │ │ │ -
643 _GLIBCXX_NODISCARD
│ │ │ │ -
644 friend bool
│ │ │ │ -
645 operator!=(const _List_iterator& __x,
│ │ │ │ -
646 const _List_iterator& __y) _GLIBCXX_NOEXCEPT
│ │ │ │ -
647 { return __x._M_node != __y._M_node; }
│ │ │ │ -
648#endif
│ │ │ │ -
649
│ │ │ │ -
650 // The only member points to the %list element.
│ │ │ │ - │ │ │ │ -
652 };
│ │ │ │ -
│ │ │ │ -
653
│ │ │ │ -
654 /**
│ │ │ │ -
655 * @brief A list::const_iterator.
│ │ │ │ -
656 *
│ │ │ │ -
657 * All the functions are op overloads.
│ │ │ │ -
658 */
│ │ │ │ -
659 template<typename _Tp>
│ │ │ │ -
│ │ │ │ - │ │ │ │ -
661 {
│ │ │ │ -
662 typedef const _List_node<_Tp> _Node;
│ │ │ │ -
663 typedef _List_iterator<_Tp> iterator;
│ │ │ │ -
664
│ │ │ │ -
665 typedef ptrdiff_t difference_type;
│ │ │ │ - │ │ │ │ -
667 typedef _Tp value_type;
│ │ │ │ -
668 typedef const _Tp* pointer;
│ │ │ │ -
669 typedef const _Tp& reference;
│ │ │ │ -
670
│ │ │ │ -
671 _List_const_iterator() _GLIBCXX_NOEXCEPT
│ │ │ │ -
672 : _M_node() { }
│ │ │ │ -
673
│ │ │ │ -
674 explicit
│ │ │ │ - │ │ │ │ -
676 _GLIBCXX_NOEXCEPT
│ │ │ │ -
677 : _M_node(__x) { }
│ │ │ │ -
678
│ │ │ │ -
679 _List_const_iterator(const iterator& __x) _GLIBCXX_NOEXCEPT
│ │ │ │ -
680 : _M_node(__x._M_node) { }
│ │ │ │ -
681
│ │ │ │ -
682 iterator
│ │ │ │ -
683 _M_const_cast() const _GLIBCXX_NOEXCEPT
│ │ │ │ -
684 { return iterator(const_cast<__detail::_List_node_base*>(_M_node)); }
│ │ │ │ -
685
│ │ │ │ -
686 // Must downcast from List_node_base to _List_node to get to value.
│ │ │ │ -
687 _GLIBCXX_NODISCARD
│ │ │ │ -
688 reference
│ │ │ │ -
689 operator*() const _GLIBCXX_NOEXCEPT
│ │ │ │ -
690 { return *static_cast<_Node*>(_M_node)->_M_valptr(); }
│ │ │ │ -
691
│ │ │ │ -
692 _GLIBCXX_NODISCARD
│ │ │ │ -
693 pointer
│ │ │ │ -
694 operator->() const _GLIBCXX_NOEXCEPT
│ │ │ │ -
695 { return static_cast<_Node*>(_M_node)->_M_valptr(); }
│ │ │ │ -
696
│ │ │ │ - │ │ │ │ -
698 operator++() _GLIBCXX_NOEXCEPT
│ │ │ │ -
699 {
│ │ │ │ -
700 _M_node = _M_node->_M_next;
│ │ │ │ -
701 return *this;
│ │ │ │ -
702 }
│ │ │ │ -
703
│ │ │ │ - │ │ │ │ -
705 operator++(int) _GLIBCXX_NOEXCEPT
│ │ │ │ -
706 {
│ │ │ │ -
707 _List_const_iterator __tmp = *this;
│ │ │ │ -
708 _M_node = _M_node->_M_next;
│ │ │ │ -
709 return __tmp;
│ │ │ │ -
710 }
│ │ │ │ -
711
│ │ │ │ - │ │ │ │ -
713 operator--() _GLIBCXX_NOEXCEPT
│ │ │ │ -
714 {
│ │ │ │ -
715 _M_node = _M_node->_M_prev;
│ │ │ │ -
716 return *this;
│ │ │ │ -
717 }
│ │ │ │ -
718
│ │ │ │ - │ │ │ │ -
720 operator--(int) _GLIBCXX_NOEXCEPT
│ │ │ │ -
721 {
│ │ │ │ -
722 _List_const_iterator __tmp = *this;
│ │ │ │ -
723 _M_node = _M_node->_M_prev;
│ │ │ │ -
724 return __tmp;
│ │ │ │ -
725 }
│ │ │ │ -
726
│ │ │ │ -
727 _GLIBCXX_NODISCARD
│ │ │ │ -
728 friend bool
│ │ │ │ -
729 operator==(const _List_const_iterator& __x,
│ │ │ │ -
730 const _List_const_iterator& __y) _GLIBCXX_NOEXCEPT
│ │ │ │ -
731 { return __x._M_node == __y._M_node; }
│ │ │ │ -
732
│ │ │ │ -
733#if __cpp_impl_three_way_comparison < 201907L
│ │ │ │ -
734 _GLIBCXX_NODISCARD
│ │ │ │ -
735 friend bool
│ │ │ │ -
736 operator!=(const _List_const_iterator& __x,
│ │ │ │ -
737 const _List_const_iterator& __y) _GLIBCXX_NOEXCEPT
│ │ │ │ -
738 { return __x._M_node != __y._M_node; }
│ │ │ │ -
739#endif
│ │ │ │ -
740
│ │ │ │ -
741 // The only member points to the %list element.
│ │ │ │ -
742 const __detail::_List_node_base* _M_node;
│ │ │ │ -
743 };
│ │ │ │ -
│ │ │ │ -
744
│ │ │ │ -
745_GLIBCXX_BEGIN_NAMESPACE_CXX11
│ │ │ │ -
746 /// See bits/stl_deque.h's _Deque_base for an explanation.
│ │ │ │ -
747 template<typename _Tp, typename _Alloc>
│ │ │ │ -
│ │ │ │ - │ │ │ │ -
749 {
│ │ │ │ -
750 protected:
│ │ │ │ - │ │ │ │ -
752 rebind<_Tp>::other _Tp_alloc_type;
│ │ │ │ - │ │ │ │ -
754
│ │ │ │ -
755 typedef __list::_Node_traits<_Tp, typename _Tp_alloc_traits::pointer>
│ │ │ │ -
756 _Node_traits;
│ │ │ │ -
757 typedef typename _Tp_alloc_traits::template
│ │ │ │ -
758 rebind<typename _Node_traits::_Node>::other _Node_alloc_type;
│ │ │ │ - │ │ │ │ -
760
│ │ │ │ -
761#if __cplusplus < 201103L || ! _GLIBCXX_USE_ALLOC_PTR_FOR_LIST
│ │ │ │ -
762 typedef _List_node<_Tp>* _Node_ptr;
│ │ │ │ -
763#else
│ │ │ │ -
764 using _Node_ptr = typename _Node_alloc_traits::pointer;
│ │ │ │ -
765#endif
│ │ │ │ -
766
│ │ │ │ -
767 struct _List_impl
│ │ │ │ -
768 : public _Node_alloc_type
│ │ │ │ -
769 {
│ │ │ │ -
770 typename _Node_traits::_Node_header _M_node;
│ │ │ │ -
771
│ │ │ │ -
772 _List_impl() _GLIBCXX_NOEXCEPT_IF(
│ │ │ │ - │ │ │ │ -
774 : _Node_alloc_type()
│ │ │ │ -
775 { }
│ │ │ │ -
776
│ │ │ │ -
777 _List_impl(const _Node_alloc_type& __a) _GLIBCXX_NOEXCEPT
│ │ │ │ -
778 : _Node_alloc_type(__a)
│ │ │ │ -
779 { }
│ │ │ │ -
780
│ │ │ │ -
781#if __cplusplus >= 201103L
│ │ │ │ -
782 _List_impl(_List_impl&&) = default;
│ │ │ │ -
783
│ │ │ │ -
784 _List_impl(_Node_alloc_type&& __a, _List_impl&& __x)
│ │ │ │ -
785 : _Node_alloc_type(std::move(__a)), _M_node(std::move(__x._M_node))
│ │ │ │ -
786 { }
│ │ │ │ -
787
│ │ │ │ -
788 _List_impl(_Node_alloc_type&& __a) noexcept
│ │ │ │ -
789 : _Node_alloc_type(std::move(__a))
│ │ │ │ -
790 { }
│ │ │ │ -
791#endif
│ │ │ │ -
792 };
│ │ │ │ -
793
│ │ │ │ -
794 _List_impl _M_impl;
│ │ │ │ -
795
│ │ │ │ -
796#if _GLIBCXX_USE_CXX11_ABI
│ │ │ │ -
797 size_t _M_get_size() const { return _M_impl._M_node._M_size; }
│ │ │ │ -
798
│ │ │ │ -
799 void _M_set_size(size_t __n) { _M_impl._M_node._M_size = __n; }
│ │ │ │ -
800
│ │ │ │ -
801 void _M_inc_size(size_t __n) { _M_impl._M_node._M_size += __n; }
│ │ │ │ -
802
│ │ │ │ -
803 void _M_dec_size(size_t __n) { _M_impl._M_node._M_size -= __n; }
│ │ │ │ -
804#else
│ │ │ │ -
805 // dummy implementations used when the size is not stored
│ │ │ │ -
806 size_t _M_get_size() const { return 0; }
│ │ │ │ -
807 void _M_set_size(size_t) { }
│ │ │ │ -
808 void _M_inc_size(size_t) { }
│ │ │ │ -
809 void _M_dec_size(size_t) { }
│ │ │ │ -
810#endif
│ │ │ │ -
811
│ │ │ │ -
812 typename _Node_alloc_traits::pointer
│ │ │ │ -
813 _M_get_node()
│ │ │ │ -
814 { return _Node_alloc_traits::allocate(_M_impl, 1); }
│ │ │ │ -
815
│ │ │ │ -
816 void
│ │ │ │ -
817 _M_put_node(_Node_ptr __p) _GLIBCXX_NOEXCEPT
│ │ │ │ -
818 {
│ │ │ │ -
819#if __cplusplus < 201103L || _GLIBCXX_USE_ALLOC_PTR_FOR_LIST
│ │ │ │ -
820 _Node_alloc_traits::deallocate(_M_impl, __p, 1);
│ │ │ │ -
821#else
│ │ │ │ -
822#pragma GCC diagnostic push
│ │ │ │ -
823#pragma GCC diagnostic ignored "-Wc++17-extensions" // if constexpr
│ │ │ │ -
824 using __alloc_pointer = typename _Node_alloc_traits::pointer;
│ │ │ │ - │ │ │ │ -
826 _Node_alloc_traits::deallocate(_M_impl, __p, 1);
│ │ │ │ -
827 else
│ │ │ │ -
828 {
│ │ │ │ -
829 // When not using the allocator's pointer type internally we must
│ │ │ │ -
830 // convert __p to __alloc_pointer so it can be deallocated.
│ │ │ │ - │ │ │ │ -
832 _Node_alloc_traits::deallocate(_M_impl, __ap, 1);
│ │ │ │ -
833 }
│ │ │ │ -
834#pragma GCC diagnostic pop
│ │ │ │ -
835#endif
│ │ │ │ -
836 }
│ │ │ │ -
837
│ │ │ │ -
838 void
│ │ │ │ -
839 _M_destroy_node(_Node_ptr __p)
│ │ │ │ -
840 {
│ │ │ │ -
841 // Destroy the element
│ │ │ │ -
842#if __cplusplus < 201103L
│ │ │ │ -
843 _Tp_alloc_type(_M_impl).destroy(__p->_M_valptr());
│ │ │ │ -
844#else
│ │ │ │ -
845 _Node_alloc_traits::destroy(_M_impl, __p->_M_valptr());
│ │ │ │ -
846 // Only destroy the node if the pointers require it.
│ │ │ │ -
847 using _Node = typename _Node_traits::_Node;
│ │ │ │ -
848 using _Base_ptr = typename _Node_traits::_Node_base::_Base_ptr;
│ │ │ │ -
849#pragma GCC diagnostic push
│ │ │ │ -
850#pragma GCC diagnostic ignored "-Wc++17-extensions" // if constexpr
│ │ │ │ - │ │ │ │ -
852 __p->~_Node();
│ │ │ │ -
853#pragma GCC diagnostic pop
│ │ │ │ -
854#endif
│ │ │ │ -
855 this->_M_put_node(__p);
│ │ │ │ -
856 }
│ │ │ │ -
857
│ │ │ │ -
858 public:
│ │ │ │ -
859 typedef _Alloc allocator_type;
│ │ │ │ -
860
│ │ │ │ -
861 _Node_alloc_type&
│ │ │ │ -
862 _M_get_Node_allocator() _GLIBCXX_NOEXCEPT
│ │ │ │ -
863 { return _M_impl; }
│ │ │ │ -
864
│ │ │ │ -
865 const _Node_alloc_type&
│ │ │ │ -
866 _M_get_Node_allocator() const _GLIBCXX_NOEXCEPT
│ │ │ │ -
867 { return _M_impl; }
│ │ │ │ -
868
│ │ │ │ -
869#if __cplusplus >= 201103L
│ │ │ │ -
870 _List_base() = default;
│ │ │ │ -
871#else
│ │ │ │ -
872 _List_base() { }
│ │ │ │ -
873#endif
│ │ │ │ -
874
│ │ │ │ -
875 _List_base(const _Node_alloc_type& __a) _GLIBCXX_NOEXCEPT
│ │ │ │ -
876 : _M_impl(__a)
│ │ │ │ -
877 { }
│ │ │ │ -
878
│ │ │ │ -
879#if __cplusplus >= 201103L
│ │ │ │ -
880 _List_base(_List_base&&) = default;
│ │ │ │ -
881
│ │ │ │ -
882 // Used when allocator is_always_equal.
│ │ │ │ -
883 _List_base(_Node_alloc_type&& __a, _List_base&& __x)
│ │ │ │ -
884 : _M_impl(std::move(__a), std::move(__x._M_impl))
│ │ │ │ -
885 { }
│ │ │ │ -
886
│ │ │ │ -
887 // Used when allocator !is_always_equal.
│ │ │ │ -
888 _List_base(_Node_alloc_type&& __a)
│ │ │ │ -
889 : _M_impl(std::move(__a))
│ │ │ │ -
890 { }
│ │ │ │ -
891
│ │ │ │ -
892 void
│ │ │ │ -
893 _M_move_nodes(_List_base&& __x)
│ │ │ │ -
894 { _M_impl._M_node._M_move_nodes(std::move(__x._M_impl._M_node)); }
│ │ │ │ -
895#endif
│ │ │ │ -
896
│ │ │ │ -
897 // This is what actually destroys the list.
│ │ │ │ -
898 ~_List_base() _GLIBCXX_NOEXCEPT
│ │ │ │ -
899 { _M_clear(); }
│ │ │ │ -
900
│ │ │ │ -
901 void
│ │ │ │ -
902 _M_clear() _GLIBCXX_NOEXCEPT;
│ │ │ │ -
903
│ │ │ │ -
904 void
│ │ │ │ -
905 _M_init() _GLIBCXX_NOEXCEPT
│ │ │ │ -
906 { this->_M_impl._M_node._M_init(); }
│ │ │ │ -
907
│ │ │ │ -
908#if !_GLIBCXX_INLINE_VERSION
│ │ │ │ -
909 // XXX GLIBCXX_ABI Deprecated
│ │ │ │ -
910 // These members are unused by std::list now, but we keep them here
│ │ │ │ -
911 // so that an explicit instantiation of std::list will define them.
│ │ │ │ -
912 // This ensures that explicit instantiations still define these symbols,
│ │ │ │ -
913 // so that explicit instantiation declarations of std::list that were
│ │ │ │ -
914 // compiled with old versions of GCC can still find these old symbols.
│ │ │ │ -
915
│ │ │ │ -
916 // Use 'if constexpr' so that the functions don't do anything for
│ │ │ │ -
917 // specializations using _Node_traits<T, fancy-pointer>, because any
│ │ │ │ -
918 // old code referencing these symbols wasn't using the fancy-pointer
│ │ │ │ -
919 // specializations.
│ │ │ │ -
920
│ │ │ │ -
921#pragma GCC diagnostic push
│ │ │ │ -
922#pragma GCC diagnostic ignored "-Wc++17-extensions" // if constexpr
│ │ │ │ -
923
│ │ │ │ -
924# if __cplusplus >= 201103L
│ │ │ │ -
925 _List_base(_List_base&& __x, _Node_alloc_type&& __a)
│ │ │ │ -
926 : _M_impl(std::move(__a))
│ │ │ │ -
927 {
│ │ │ │ -
928#if _GLIBCXX_USE_ALLOC_PTR_FOR_LIST
│ │ │ │ - │ │ │ │ -
930#endif
│ │ │ │ -
931 if (__x._M_get_Node_allocator() == _M_get_Node_allocator())
│ │ │ │ -
932 _M_move_nodes(std::move(__x));
│ │ │ │ -
933 // else caller must move individual elements.
│ │ │ │ -
934 }
│ │ │ │ -
935# endif
│ │ │ │ -
936
│ │ │ │ -
937 static size_t
│ │ │ │ -
938 _S_distance(const __detail::_List_node_base* __first,
│ │ │ │ -
939 const __detail::_List_node_base* __last)
│ │ │ │ -
940 {
│ │ │ │ -
941#if _GLIBCXX_USE_ALLOC_PTR_FOR_LIST
│ │ │ │ - │ │ │ │ -
943 return 0;
│ │ │ │ -
944 else
│ │ │ │ -
945#endif
│ │ │ │ -
946 {
│ │ │ │ -
947 size_t __n = 0;
│ │ │ │ -
948 while (__first != __last)
│ │ │ │ -
949 {
│ │ │ │ -
950 __first = __first->_M_next;
│ │ │ │ -
951 ++__n;
│ │ │ │ -
952 }
│ │ │ │ -
953 return __n;
│ │ │ │ -
954 }
│ │ │ │ -
955 }
│ │ │ │ -
956
│ │ │ │ -
957#if _GLIBCXX_USE_CXX11_ABI
│ │ │ │ -
958 size_t
│ │ │ │ -
959 _M_distance(const __detail::_List_node_base* __first,
│ │ │ │ -
960 const __detail::_List_node_base* __last) const
│ │ │ │ -
961 { return _S_distance(__first, __last); }
│ │ │ │ -
962
│ │ │ │ -
963 // return the stored size
│ │ │ │ -
964 size_t _M_node_count() const { return _M_get_size(); }
│ │ │ │ -
965#else
│ │ │ │ -
966 size_t _M_distance(const void*, const void*) const { return 0; }
│ │ │ │ -
967
│ │ │ │ -
968 // count the number of nodes
│ │ │ │ -
969 size_t _M_node_count() const
│ │ │ │ -
970 {
│ │ │ │ -
971 return _S_distance(_M_impl._M_node._M_next, _M_impl._M_node._M_base());
│ │ │ │ -
972 }
│ │ │ │ -
973#endif
│ │ │ │ -
974#pragma GCC diagnostic pop
│ │ │ │ -
975#endif // ! INLINE_VERSION
│ │ │ │ -
976 };
│ │ │ │ -
│ │ │ │ -
977
│ │ │ │ -
978 /**
│ │ │ │ -
979 * @brief A standard container with linear time access to elements,
│ │ │ │ -
980 * and fixed time insertion/deletion at any point in the sequence.
│ │ │ │ -
981 *
│ │ │ │ -
982 * @ingroup sequences
│ │ │ │ -
983 *
│ │ │ │ -
984 * @tparam _Tp Type of element.
│ │ │ │ -
985 * @tparam _Alloc Allocator type, defaults to allocator<_Tp>.
│ │ │ │ -
986 *
│ │ │ │ -
987 * Meets the requirements of a <a href="tables.html#65">container</a>, a
│ │ │ │ -
988 * <a href="tables.html#66">reversible container</a>, and a
│ │ │ │ -
989 * <a href="tables.html#67">sequence</a>, including the
│ │ │ │ -
990 * <a href="tables.html#68">optional sequence requirements</a> with the
│ │ │ │ -
991 * %exception of @c at and @c operator[].
│ │ │ │ -
992 *
│ │ │ │ -
993 * This is a @e doubly @e linked %list. Traversal up and down the
│ │ │ │ -
994 * %list requires linear time, but adding and removing elements (or
│ │ │ │ -
995 * @e nodes) is done in constant time, regardless of where the
│ │ │ │ -
996 * change takes place. Unlike std::vector and std::deque,
│ │ │ │ -
997 * random-access iterators are not provided, so subscripting ( @c
│ │ │ │ -
998 * [] ) access is not allowed. For algorithms which only need
│ │ │ │ -
999 * sequential access, this lack makes no difference.
│ │ │ │ -
1000 *
│ │ │ │ -
1001 * Also unlike the other standard containers, std::list provides
│ │ │ │ -
1002 * specialized algorithms %unique to linked lists, such as
│ │ │ │ -
1003 * splicing, sorting, and in-place reversal.
│ │ │ │ -
1004 *
│ │ │ │ -
1005 * A couple points on memory allocation for list<Tp>:
│ │ │ │ -
1006 *
│ │ │ │ -
1007 * First, we never actually allocate a Tp, we allocate
│ │ │ │ -
1008 * List_node<Tp>'s and trust [20.1.5]/4 to DTRT. This is to ensure
│ │ │ │ -
1009 * that after elements from %list<X,Alloc1> are spliced into
│ │ │ │ -
1010 * %list<X,Alloc2>, destroying the memory of the second %list is a
│ │ │ │ -
1011 * valid operation, i.e., Alloc1 giveth and Alloc2 taketh away.
│ │ │ │ -
1012 *
│ │ │ │ -
1013 * Second, a %list conceptually represented as
│ │ │ │ -
1014 * @code
│ │ │ │ -
1015 * A <---> B <---> C <---> D
│ │ │ │ -
1016 * @endcode
│ │ │ │ -
1017 * is actually circular; a link exists between A and D. The %list
│ │ │ │ -
1018 * class holds (as its only data member) a private list::iterator
│ │ │ │ -
1019 * pointing to @e D, not to @e A! To get to the head of the %list,
│ │ │ │ -
1020 * we start at the tail and move forward by one. When this member
│ │ │ │ -
1021 * iterator's next/previous pointers refer to itself, the %list is
│ │ │ │ -
1022 * %empty.
│ │ │ │ -
1023 */
│ │ │ │ -
1024 template<typename _Tp, typename _Alloc = std::allocator<_Tp> >
│ │ │ │ -
│ │ │ │ -
1025 class list : protected _List_base<_Tp, _Alloc>
│ │ │ │ -
1026 {
│ │ │ │ -
1027#ifdef _GLIBCXX_CONCEPT_CHECKS
│ │ │ │ -
1028 // concept requirements
│ │ │ │ -
1029 typedef typename _Alloc::value_type _Alloc_value_type;
│ │ │ │ -
1030# if __cplusplus < 201103L
│ │ │ │ -
1031 __glibcxx_class_requires(_Tp, _SGIAssignableConcept)
│ │ │ │ -
1032# endif
│ │ │ │ -
1033 __glibcxx_class_requires2(_Tp, _Alloc_value_type, _SameTypeConcept)
│ │ │ │ -
1034#endif
│ │ │ │ -
1035
│ │ │ │ -
1036#if __cplusplus >= 201103L
│ │ │ │ -
1037 static_assert(is_same<typename remove_cv<_Tp>::type, _Tp>::value,
│ │ │ │ -
1038 "std::list must have a non-const, non-volatile value_type");
│ │ │ │ -
1039# if __cplusplus > 201703L || defined __STRICT_ANSI__
│ │ │ │ - │ │ │ │ -
1041 "std::list must have the same value_type as its allocator");
│ │ │ │ -
1042# endif
│ │ │ │ -
1043#endif
│ │ │ │ -
1044
│ │ │ │ - │ │ │ │ -
1046 typedef typename _Base::_Tp_alloc_type _Tp_alloc_type;
│ │ │ │ - │ │ │ │ -
1048 typedef typename _Base::_Node_alloc_type _Node_alloc_type;
│ │ │ │ - │ │ │ │ -
1050 typedef typename _Base::_Node_traits _Node_traits;
│ │ │ │ -
1051
│ │ │ │ -
1052 public:
│ │ │ │ -
1053 typedef _Tp value_type;
│ │ │ │ -
1054 typedef typename _Tp_alloc_traits::pointer pointer;
│ │ │ │ -
1055 typedef typename _Tp_alloc_traits::const_pointer const_pointer;
│ │ │ │ -
1056 typedef typename _Tp_alloc_traits::reference reference;
│ │ │ │ -
1057 typedef typename _Tp_alloc_traits::const_reference const_reference;
│ │ │ │ -
1058 typedef typename _Node_traits::_Iterator iterator;
│ │ │ │ -
1059 typedef typename _Node_traits::_Const_iterator const_iterator;
│ │ │ │ - │ │ │ │ - │ │ │ │ -
1062 typedef size_t size_type;
│ │ │ │ -
1063 typedef ptrdiff_t difference_type;
│ │ │ │ -
1064 typedef _Alloc allocator_type;
│ │ │ │ -
1065
│ │ │ │ -
1066 protected:
│ │ │ │ -
1067 // Note that pointers-to-_Node's can be ctor-converted to
│ │ │ │ -
1068 // iterator types.
│ │ │ │ -
1069 typedef typename _Node_alloc_traits::pointer _Node_ptr;
│ │ │ │ -
1070
│ │ │ │ -
1071 using _Base::_M_impl;
│ │ │ │ -
1072 using _Base::_M_put_node;
│ │ │ │ -
1073 using _Base::_M_get_node;
│ │ │ │ -
1074 using _Base::_M_get_Node_allocator;
│ │ │ │ -
1075
│ │ │ │ -
1076 /**
│ │ │ │ -
1077 * @param __args An instance of user data.
│ │ │ │ -
1078 *
│ │ │ │ -
1079 * Allocates space for a new node and constructs a copy of
│ │ │ │ -
1080 * @a __args in it.
│ │ │ │ -
1081 */
│ │ │ │ -
1082#if __cplusplus < 201103L
│ │ │ │ -
1083 _Node_ptr
│ │ │ │ -
1084 _M_create_node(const value_type& __x)
│ │ │ │ -
1085 {
│ │ │ │ -
1086 _Node_ptr __p = this->_M_get_node();
│ │ │ │ -
1087 __try
│ │ │ │ -
1088 {
│ │ │ │ -
1089 _Tp_alloc_type __alloc(_M_get_Node_allocator());
│ │ │ │ -
1090 __alloc.construct(__p->_M_valptr(), __x);
│ │ │ │ -
1091 }
│ │ │ │ -
1092 __catch(...)
│ │ │ │ -
1093 {
│ │ │ │ -
1094 _M_put_node(__p);
│ │ │ │ -
1095 __throw_exception_again;
│ │ │ │ -
1096 }
│ │ │ │ -
1097 return __p;
│ │ │ │ -
1098 }
│ │ │ │ -
1099#else
│ │ │ │ -
1100 template<typename... _Args>
│ │ │ │ -
1101 _Node_ptr
│ │ │ │ -
│ │ │ │ -
1102 _M_create_node(_Args&&... __args)
│ │ │ │ -
1103 {
│ │ │ │ -
1104 auto& __alloc = _M_get_Node_allocator();
│ │ │ │ -
1105 auto __guard = std::__allocate_guarded_obj(__alloc);
│ │ │ │ -
1106 _Node_alloc_traits::construct(__alloc, __guard->_M_valptr(),
│ │ │ │ -
1107 std::forward<_Args>(__args)...);
│ │ │ │ -
1108 return __guard.release();
│ │ │ │ -
1109 }
│ │ │ │ -
│ │ │ │ -
1110#endif
│ │ │ │ -
1111
│ │ │ │ -
1112 public:
│ │ │ │ -
1113 // [23.2.2.1] construct/copy/destroy
│ │ │ │ -
1114 // (assign() and get_allocator() are also listed in this section)
│ │ │ │ -
1115
│ │ │ │ -
1116 /**
│ │ │ │ -
1117 * @brief Creates a %list with no elements.
│ │ │ │ -
1118 */
│ │ │ │ -
1119#if __cplusplus >= 201103L
│ │ │ │ -
1120 list() = default;
│ │ │ │ -
1121#else
│ │ │ │ -
1122 list() { }
│ │ │ │ -
1123#endif
│ │ │ │ -
1124
│ │ │ │ -
1125 /**
│ │ │ │ -
1126 * @brief Creates a %list with no elements.
│ │ │ │ -
1127 * @param __a An allocator object.
│ │ │ │ -
1128 */
│ │ │ │ -
1129 explicit
│ │ │ │ -
│ │ │ │ -
1130 list(const allocator_type& __a) _GLIBCXX_NOEXCEPT
│ │ │ │ -
1131 : _Base(_Node_alloc_type(__a)) { }
│ │ │ │ -
│ │ │ │ -
1132
│ │ │ │ -
1133#if __cplusplus >= 201103L
│ │ │ │ -
1134 /**
│ │ │ │ -
1135 * @brief Creates a %list with default constructed elements.
│ │ │ │ -
1136 * @param __n The number of elements to initially create.
│ │ │ │ -
1137 * @param __a An allocator object.
│ │ │ │ -
1138 *
│ │ │ │ -
1139 * This constructor fills the %list with @a __n default
│ │ │ │ -
1140 * constructed elements.
│ │ │ │ -
1141 */
│ │ │ │ -
1142 explicit
│ │ │ │ -
│ │ │ │ -
1143 list(size_type __n, const allocator_type& __a = allocator_type())
│ │ │ │ -
1144 : _Base(_Node_alloc_type(__a))
│ │ │ │ -
1145 { _M_default_initialize(__n); }
│ │ │ │ -
│ │ │ │ -
1146
│ │ │ │ -
1147 /**
│ │ │ │ -
1148 * @brief Creates a %list with copies of an exemplar element.
│ │ │ │ -
1149 * @param __n The number of elements to initially create.
│ │ │ │ -
1150 * @param __value An element to copy.
│ │ │ │ -
1151 * @param __a An allocator object.
│ │ │ │ -
1152 *
│ │ │ │ -
1153 * This constructor fills the %list with @a __n copies of @a __value.
│ │ │ │ -
1154 */
│ │ │ │ -
│ │ │ │ -
1155 list(size_type __n, const value_type& __value,
│ │ │ │ -
1156 const allocator_type& __a = allocator_type())
│ │ │ │ -
1157 : _Base(_Node_alloc_type(__a))
│ │ │ │ -
1158 { _M_fill_initialize(__n, __value); }
│ │ │ │ -
│ │ │ │ -
1159#else
│ │ │ │ -
1160 /**
│ │ │ │ -
1161 * @brief Creates a %list with copies of an exemplar element.
│ │ │ │ -
1162 * @param __n The number of elements to initially create.
│ │ │ │ -
1163 * @param __value An element to copy.
│ │ │ │ -
1164 * @param __a An allocator object.
│ │ │ │ -
1165 *
│ │ │ │ -
1166 * This constructor fills the %list with @a __n copies of @a __value.
│ │ │ │ -
1167 */
│ │ │ │ -
1168 explicit
│ │ │ │ -
1169 list(size_type __n, const value_type& __value = value_type(),
│ │ │ │ -
1170 const allocator_type& __a = allocator_type())
│ │ │ │ -
1171 : _Base(_Node_alloc_type(__a))
│ │ │ │ -
1172 { _M_fill_initialize(__n, __value); }
│ │ │ │ -
1173#endif
│ │ │ │ -
1174
│ │ │ │ -
1175 /**
│ │ │ │ -
1176 * @brief %List copy constructor.
│ │ │ │ -
1177 * @param __x A %list of identical element and allocator types.
│ │ │ │ -
1178 *
│ │ │ │ -
1179 * The newly-created %list uses a copy of the allocation object used
│ │ │ │ -
1180 * by @a __x (unless the allocator traits dictate a different object).
│ │ │ │ -
1181 */
│ │ │ │ -
│ │ │ │ -
1182 list(const list& __x)
│ │ │ │ - │ │ │ │ -
1184 _S_select_on_copy(__x._M_get_Node_allocator()))
│ │ │ │ -
1185 { _M_initialize_dispatch(__x.begin(), __x.end(), __false_type()); }
│ │ │ │ -
│ │ │ │ -
1186
│ │ │ │ -
1187#if __cplusplus >= 201103L
│ │ │ │ -
1188 /**
│ │ │ │ -
1189 * @brief %List move constructor.
│ │ │ │ -
1190 *
│ │ │ │ -
1191 * The newly-created %list contains the exact contents of the moved
│ │ │ │ -
1192 * instance. The contents of the moved instance are a valid, but
│ │ │ │ -
1193 * unspecified %list.
│ │ │ │ -
1194 */
│ │ │ │ -
1195 list(list&&) = default;
│ │ │ │ -
1196
│ │ │ │ -
1197 /**
│ │ │ │ -
1198 * @brief Builds a %list from an initializer_list
│ │ │ │ -
1199 * @param __l An initializer_list of value_type.
│ │ │ │ -
1200 * @param __a An allocator object.
│ │ │ │ -
1201 *
│ │ │ │ -
1202 * Create a %list consisting of copies of the elements in the
│ │ │ │ -
1203 * initializer_list @a __l. This is linear in __l.size().
│ │ │ │ -
1204 */
│ │ │ │ -
│ │ │ │ - │ │ │ │ -
1206 const allocator_type& __a = allocator_type())
│ │ │ │ -
1207 : _Base(_Node_alloc_type(__a))
│ │ │ │ -
1208 { _M_initialize_dispatch(__l.begin(), __l.end(), __false_type()); }
│ │ │ │ -
│ │ │ │ -
1209
│ │ │ │ -
1210 list(const list& __x, const __type_identity_t<allocator_type>& __a)
│ │ │ │ -
1211 : _Base(_Node_alloc_type(__a))
│ │ │ │ -
1212 { _M_initialize_dispatch(__x.begin(), __x.end(), __false_type()); }
│ │ │ │ -
1213
│ │ │ │ -
1214 private:
│ │ │ │ -
1215 list(list&& __x, const allocator_type& __a, true_type) noexcept
│ │ │ │ -
1216 : _Base(_Node_alloc_type(__a), std::move(__x))
│ │ │ │ -
1217 { }
│ │ │ │ -
1218
│ │ │ │ -
1219 list(list&& __x, const allocator_type& __a, false_type)
│ │ │ │ -
1220 : _Base(_Node_alloc_type(__a))
│ │ │ │ -
1221 {
│ │ │ │ -
1222 if (__x._M_get_Node_allocator() == this->_M_get_Node_allocator())
│ │ │ │ -
1223 this->_M_move_nodes(std::move(__x));
│ │ │ │ -
1224 else
│ │ │ │ -
1225 insert(begin(), std::__make_move_if_noexcept_iterator(__x.begin()),
│ │ │ │ -
1226 std::__make_move_if_noexcept_iterator(__x.end()));
│ │ │ │ -
1227 }
│ │ │ │ -
1228
│ │ │ │ -
1229 public:
│ │ │ │ -
1230 list(list&& __x, const __type_identity_t<allocator_type>& __a)
│ │ │ │ -
1231 noexcept(_Node_alloc_traits::_S_always_equal())
│ │ │ │ -
1232 : list(std::move(__x), __a,
│ │ │ │ -
1233 typename _Node_alloc_traits::is_always_equal{})
│ │ │ │ -
1234 { }
│ │ │ │ -
1235#endif
│ │ │ │ -
1236
│ │ │ │ -
1237 /**
│ │ │ │ -
1238 * @brief Builds a %list from a range.
│ │ │ │ -
1239 * @param __first An input iterator.
│ │ │ │ -
1240 * @param __last An input iterator.
│ │ │ │ -
1241 * @param __a An allocator object.
│ │ │ │ -
1242 *
│ │ │ │ -
1243 * Create a %list consisting of copies of the elements from
│ │ │ │ -
1244 * [@a __first,@a __last). This is linear in N (where N is
│ │ │ │ -
1245 * distance(@a __first,@a __last)).
│ │ │ │ -
1246 */
│ │ │ │ -
1247#if __cplusplus >= 201103L
│ │ │ │ -
1248 template<typename _InputIterator,
│ │ │ │ -
1249 typename = std::_RequireInputIter<_InputIterator>>
│ │ │ │ -
│ │ │ │ -
1250 list(_InputIterator __first, _InputIterator __last,
│ │ │ │ -
1251 const allocator_type& __a = allocator_type())
│ │ │ │ -
1252 : _Base(_Node_alloc_type(__a))
│ │ │ │ -
1253 { _M_initialize_dispatch(__first, __last, __false_type()); }
│ │ │ │ -
│ │ │ │ -
1254#else
│ │ │ │ -
1255 template<typename _InputIterator>
│ │ │ │ -
1256 list(_InputIterator __first, _InputIterator __last,
│ │ │ │ -
1257 const allocator_type& __a = allocator_type())
│ │ │ │ -
1258 : _Base(_Node_alloc_type(__a))
│ │ │ │ -
1259 {
│ │ │ │ -
1260 // Check whether it's an integral type. If so, it's not an iterator.
│ │ │ │ -
1261 typedef typename std::__is_integer<_InputIterator>::__type _Integral;
│ │ │ │ -
1262 _M_initialize_dispatch(__first, __last, _Integral());
│ │ │ │ -
1263 }
│ │ │ │ -
1264#endif
│ │ │ │ -
1265
│ │ │ │ -
1266#if __glibcxx_ranges_to_container // C++ >= 23
│ │ │ │ -
1267 /**
│ │ │ │ -
1268 * @brief Construct a list from a range.
│ │ │ │ -
1269 * @since C++23
│ │ │ │ -
1270 */
│ │ │ │ -
1271 template<__detail::__container_compatible_range<_Tp> _Rg>
│ │ │ │ -
1272 list(from_range_t, _Rg&& __rg, const _Alloc& __a = _Alloc())
│ │ │ │ -
1273 : _Base(_Node_alloc_type(__a))
│ │ │ │ -
1274 {
│ │ │ │ -
1275 auto __first = ranges::begin(__rg);
│ │ │ │ -
1276 const auto __last = ranges::end(__rg);
│ │ │ │ -
1277 for (; __first != __last; ++__first)
│ │ │ │ -
1278 emplace_back(*__first);
│ │ │ │ -
1279 }
│ │ │ │ -
1280#endif
│ │ │ │ -
1281
│ │ │ │ -
1282#if __cplusplus >= 201103L
│ │ │ │ -
1283 /**
│ │ │ │ -
1284 * No explicit dtor needed as the _Base dtor takes care of
│ │ │ │ -
1285 * things. The _Base dtor only erases the elements, and note
│ │ │ │ -
1286 * that if the elements themselves are pointers, the pointed-to
│ │ │ │ -
1287 * memory is not touched in any way. Managing the pointer is
│ │ │ │ -
1288 * the user's responsibility.
│ │ │ │ -
1289 */
│ │ │ │ -
1290 ~list() = default;
│ │ │ │ -
1291#endif
│ │ │ │ -
1292
│ │ │ │ -
1293 /**
│ │ │ │ -
1294 * @brief %List assignment operator.
│ │ │ │ -
1295 * @param __x A %list of identical element and allocator types.
│ │ │ │ -
1296 *
│ │ │ │ -
1297 * All the elements of @a __x are copied.
│ │ │ │ -
1298 *
│ │ │ │ -
1299 * Whether the allocator is copied depends on the allocator traits.
│ │ │ │ -
1300 */
│ │ │ │ -
1301 list&
│ │ │ │ -
1302 operator=(const list& __x);
│ │ │ │ -
1303
│ │ │ │ -
1304#if __cplusplus >= 201103L
│ │ │ │ -
1305#pragma GCC diagnostic push
│ │ │ │ -
1306#pragma GCC diagnostic ignored "-Wc++17-extensions" // if constexpr
│ │ │ │ -
1307 /**
│ │ │ │ -
1308 * @brief %List move assignment operator.
│ │ │ │ -
1309 * @param __x A %list of identical element and allocator types.
│ │ │ │ -
1310 *
│ │ │ │ -
1311 * The contents of @a __x are moved into this %list (without copying).
│ │ │ │ -
1312 *
│ │ │ │ -
1313 * Afterwards @a __x is a valid, but unspecified %list
│ │ │ │ -
1314 *
│ │ │ │ -
1315 * Whether the allocator is moved depends on the allocator traits.
│ │ │ │ -
1316 */
│ │ │ │ -
1317 list&
│ │ │ │ -
│ │ │ │ - │ │ │ │ -
1319 noexcept(_Node_alloc_traits::_S_nothrow_move())
│ │ │ │ -
1320 {
│ │ │ │ -
1321 constexpr bool __move_storage =
│ │ │ │ -
1322 _Node_alloc_traits::_S_propagate_on_move_assign()
│ │ │ │ -
1323 || _Node_alloc_traits::_S_always_equal();
│ │ │ │ -
1324 if constexpr (!__move_storage)
│ │ │ │ -
1325 {
│ │ │ │ -
1326 if (__x._M_get_Node_allocator() != this->_M_get_Node_allocator())
│ │ │ │ -
1327 {
│ │ │ │ -
1328 // The rvalue's allocator cannot be moved, or is not equal,
│ │ │ │ -
1329 // so we need to individually move each element.
│ │ │ │ -
1330 _M_assign_dispatch(std::make_move_iterator(__x.begin()),
│ │ │ │ -
1331 std::make_move_iterator(__x.end()),
│ │ │ │ -
1332 __false_type{});
│ │ │ │ -
1333 return *this;
│ │ │ │ -
1334 }
│ │ │ │ -
1335 }
│ │ │ │ -
1336
│ │ │ │ -
1337 this->clear();
│ │ │ │ -
1338 this->_M_move_nodes(std::move(__x));
│ │ │ │ -
1339
│ │ │ │ -
1340 if constexpr (_Node_alloc_traits::_S_propagate_on_move_assign())
│ │ │ │ -
1341 this->_M_get_Node_allocator()
│ │ │ │ -
1342 = std::move(__x._M_get_Node_allocator());
│ │ │ │ -
1343
│ │ │ │ -
1344 return *this;
│ │ │ │ -
1345 }
│ │ │ │ -
│ │ │ │ -
1346#pragma GCC diagnostic pop
│ │ │ │ -
1347
│ │ │ │ -
1348 /**
│ │ │ │ -
1349 * @brief %List initializer list assignment operator.
│ │ │ │ -
1350 * @param __l An initializer_list of value_type.
│ │ │ │ -
1351 *
│ │ │ │ -
1352 * Replace the contents of the %list with copies of the elements
│ │ │ │ -
1353 * in the initializer_list @a __l. This is linear in l.size().
│ │ │ │ -
1354 */
│ │ │ │ -
1355 list&
│ │ │ │ -
│ │ │ │ - │ │ │ │ -
1357 {
│ │ │ │ -
1358 this->assign(__l.begin(), __l.end());
│ │ │ │ -
1359 return *this;
│ │ │ │ -
1360 }
│ │ │ │ -
│ │ │ │ -
1361#endif
│ │ │ │ -
1362
│ │ │ │ -
1363#if __glibcxx_ranges_to_container // C++ >= 23
│ │ │ │ -
1364 /**
│ │ │ │ -
1365 * @brief Assign a range to a list.
│ │ │ │ -
1366 * @since C++23
│ │ │ │ -
1367 */
│ │ │ │ -
1368 template<__detail::__container_compatible_range<_Tp> _Rg>
│ │ │ │ -
1369 void
│ │ │ │ -
1370 assign_range(_Rg&& __rg)
│ │ │ │ -
1371 {
│ │ │ │ -
1372 static_assert(assignable_from<_Tp&, ranges::range_reference_t<_Rg>>);
│ │ │ │ -
1373
│ │ │ │ -
1374 iterator __first1 = begin();
│ │ │ │ -
1375 const iterator __last1 = end();
│ │ │ │ -
1376 auto __first2 = ranges::begin(__rg);
│ │ │ │ -
1377 const auto __last2 = ranges::end(__rg);
│ │ │ │ -
1378 for (; __first1 != __last1 && __first2 != __last2;
│ │ │ │ -
1379 ++__first1, (void)++__first2)
│ │ │ │ -
1380 *__first1 = *__first2;
│ │ │ │ -
1381 if (__first2 == __last2)
│ │ │ │ -
1382 erase(__first1, __last1);
│ │ │ │ -
1383 else
│ │ │ │ -
1384 insert_range(__last1,
│ │ │ │ -
1385 ranges::subrange(std::move(__first2), __last2));
│ │ │ │ -
1386 }
│ │ │ │ -
1387#endif
│ │ │ │ -
1388
│ │ │ │ -
1389 /**
│ │ │ │ -
1390 * @brief Assigns a given value to a %list.
│ │ │ │ -
1391 * @param __n Number of elements to be assigned.
│ │ │ │ -
1392 * @param __val Value to be assigned.
│ │ │ │ -
1393 *
│ │ │ │ -
1394 * This function fills a %list with @a __n copies of the given
│ │ │ │ -
1395 * value. Note that the assignment completely changes the %list
│ │ │ │ -
1396 * and that the resulting %list's size is the same as the number
│ │ │ │ -
1397 * of elements assigned.
│ │ │ │ -
1398 */
│ │ │ │ -
1399 void
│ │ │ │ -
│ │ │ │ -
1400 assign(size_type __n, const value_type& __val)
│ │ │ │ -
1401 { _M_fill_assign(__n, __val); }
│ │ │ │ -
│ │ │ │ -
1402
│ │ │ │ -
1403 /**
│ │ │ │ -
1404 * @brief Assigns a range to a %list.
│ │ │ │ -
1405 * @param __first An input iterator.
│ │ │ │ -
1406 * @param __last An input iterator.
│ │ │ │ -
1407 *
│ │ │ │ -
1408 * This function fills a %list with copies of the elements in the
│ │ │ │ -
1409 * range [@a __first,@a __last).
│ │ │ │ -
1410 *
│ │ │ │ -
1411 * Note that the assignment completely changes the %list and
│ │ │ │ -
1412 * that the resulting %list's size is the same as the number of
│ │ │ │ -
1413 * elements assigned.
│ │ │ │ -
1414 */
│ │ │ │ -
1415#if __cplusplus >= 201103L
│ │ │ │ -
1416 template<typename _InputIterator,
│ │ │ │ -
1417 typename = std::_RequireInputIter<_InputIterator>>
│ │ │ │ -
1418 void
│ │ │ │ -
│ │ │ │ -
1419 assign(_InputIterator __first, _InputIterator __last)
│ │ │ │ -
1420 { _M_assign_dispatch(__first, __last, __false_type()); }
│ │ │ │ -
│ │ │ │ -
1421#else
│ │ │ │ -
1422 template<typename _InputIterator>
│ │ │ │ -
1423 void
│ │ │ │ -
1424 assign(_InputIterator __first, _InputIterator __last)
│ │ │ │ -
1425 {
│ │ │ │ -
1426 // Check whether it's an integral type. If so, it's not an iterator.
│ │ │ │ -
1427 typedef typename std::__is_integer<_InputIterator>::__type _Integral;
│ │ │ │ -
1428 _M_assign_dispatch(__first, __last, _Integral());
│ │ │ │ -
1429 }
│ │ │ │ -
1430#endif
│ │ │ │ -
1431
│ │ │ │ -
1432#if __cplusplus >= 201103L
│ │ │ │ -
1433 /**
│ │ │ │ -
1434 * @brief Assigns an initializer_list to a %list.
│ │ │ │ -
1435 * @param __l An initializer_list of value_type.
│ │ │ │ -
1436 *
│ │ │ │ -
1437 * Replace the contents of the %list with copies of the elements
│ │ │ │ -
1438 * in the initializer_list @a __l. This is linear in __l.size().
│ │ │ │ -
1439 */
│ │ │ │ -
1440 void
│ │ │ │ -
│ │ │ │ - │ │ │ │ -
1442 { this->_M_assign_dispatch(__l.begin(), __l.end(), __false_type()); }
│ │ │ │ -
│ │ │ │ -
1443#endif
│ │ │ │ -
1444
│ │ │ │ -
1445 /// Get a copy of the memory allocation object.
│ │ │ │ -
1446 allocator_type
│ │ │ │ -
│ │ │ │ -
1447 get_allocator() const _GLIBCXX_NOEXCEPT
│ │ │ │ -
1448 { return allocator_type(_Base::_M_get_Node_allocator()); }
│ │ │ │ -
│ │ │ │ -
1449
│ │ │ │ -
1450 // iterators
│ │ │ │ -
1451 /**
│ │ │ │ -
1452 * Returns a read/write iterator that points to the first element in the
│ │ │ │ -
1453 * %list. Iteration is done in ordinary element order.
│ │ │ │ -
1454 */
│ │ │ │ -
1455 _GLIBCXX_NODISCARD
│ │ │ │ -
1456 iterator
│ │ │ │ -
│ │ │ │ -
1457 begin() _GLIBCXX_NOEXCEPT
│ │ │ │ -
1458 { return iterator(this->_M_impl._M_node._M_next); }
│ │ │ │ -
│ │ │ │ -
1459
│ │ │ │ -
1460 /**
│ │ │ │ -
1461 * Returns a read-only (constant) iterator that points to the
│ │ │ │ -
1462 * first element in the %list. Iteration is done in ordinary
│ │ │ │ -
1463 * element order.
│ │ │ │ -
1464 */
│ │ │ │ -
1465 _GLIBCXX_NODISCARD
│ │ │ │ -
1466 const_iterator
│ │ │ │ -
│ │ │ │ -
1467 begin() const _GLIBCXX_NOEXCEPT
│ │ │ │ -
1468 { return const_iterator(this->_M_impl._M_node._M_next); }
│ │ │ │ -
│ │ │ │ -
1469
│ │ │ │ -
1470 /**
│ │ │ │ -
1471 * Returns a read/write iterator that points one past the last
│ │ │ │ -
1472 * element in the %list. Iteration is done in ordinary element
│ │ │ │ -
1473 * order.
│ │ │ │ -
1474 */
│ │ │ │ -
1475 _GLIBCXX_NODISCARD
│ │ │ │ -
1476 iterator
│ │ │ │ -
│ │ │ │ -
1477 end() _GLIBCXX_NOEXCEPT
│ │ │ │ -
1478 { return iterator(this->_M_impl._M_node._M_base()); }
│ │ │ │ -
│ │ │ │ -
1479
│ │ │ │ -
1480 /**
│ │ │ │ -
1481 * Returns a read-only (constant) iterator that points one past
│ │ │ │ -
1482 * the last element in the %list. Iteration is done in ordinary
│ │ │ │ -
1483 * element order.
│ │ │ │ -
1484 */
│ │ │ │ -
1485 _GLIBCXX_NODISCARD
│ │ │ │ -
1486 const_iterator
│ │ │ │ -
│ │ │ │ -
1487 end() const _GLIBCXX_NOEXCEPT
│ │ │ │ -
1488 { return const_iterator(this->_M_impl._M_node._M_base()); }
│ │ │ │ -
│ │ │ │ -
1489
│ │ │ │ -
1490 /**
│ │ │ │ -
1491 * Returns a read/write reverse iterator that points to the last
│ │ │ │ -
1492 * element in the %list. Iteration is done in reverse element
│ │ │ │ -
1493 * order.
│ │ │ │ -
1494 */
│ │ │ │ -
1495 _GLIBCXX_NODISCARD
│ │ │ │ - │ │ │ │ -
│ │ │ │ -
1497 rbegin() _GLIBCXX_NOEXCEPT
│ │ │ │ -
1498 { return reverse_iterator(end()); }
│ │ │ │ -
│ │ │ │ -
1499
│ │ │ │ -
1500 /**
│ │ │ │ -
1501 * Returns a read-only (constant) reverse iterator that points to
│ │ │ │ -
1502 * the last element in the %list. Iteration is done in reverse
│ │ │ │ -
1503 * element order.
│ │ │ │ -
1504 */
│ │ │ │ -
1505 _GLIBCXX_NODISCARD
│ │ │ │ -
1506 const_reverse_iterator
│ │ │ │ -
│ │ │ │ -
1507 rbegin() const _GLIBCXX_NOEXCEPT
│ │ │ │ -
1508 { return const_reverse_iterator(end()); }
│ │ │ │ -
│ │ │ │ -
1509
│ │ │ │ -
1510 /**
│ │ │ │ -
1511 * Returns a read/write reverse iterator that points to one
│ │ │ │ -
1512 * before the first element in the %list. Iteration is done in
│ │ │ │ -
1513 * reverse element order.
│ │ │ │ -
1514 */
│ │ │ │ -
1515 _GLIBCXX_NODISCARD
│ │ │ │ - │ │ │ │ -
│ │ │ │ -
1517 rend() _GLIBCXX_NOEXCEPT
│ │ │ │ -
1518 { return reverse_iterator(begin()); }
│ │ │ │ -
│ │ │ │ -
1519
│ │ │ │ -
1520 /**
│ │ │ │ -
1521 * Returns a read-only (constant) reverse iterator that points to one
│ │ │ │ -
1522 * before the first element in the %list. Iteration is done in reverse
│ │ │ │ -
1523 * element order.
│ │ │ │ -
1524 */
│ │ │ │ -
1525 _GLIBCXX_NODISCARD
│ │ │ │ -
1526 const_reverse_iterator
│ │ │ │ -
│ │ │ │ -
1527 rend() const _GLIBCXX_NOEXCEPT
│ │ │ │ -
1528 { return const_reverse_iterator(begin()); }
│ │ │ │ -
│ │ │ │ -
1529
│ │ │ │ -
1530#if __cplusplus >= 201103L
│ │ │ │ -
1531 /**
│ │ │ │ -
1532 * Returns a read-only (constant) iterator that points to the
│ │ │ │ -
1533 * first element in the %list. Iteration is done in ordinary
│ │ │ │ -
1534 * element order.
│ │ │ │ -
1535 */
│ │ │ │ -
1536 [[__nodiscard__]]
│ │ │ │ -
1537 const_iterator
│ │ │ │ -
│ │ │ │ -
1538 cbegin() const noexcept
│ │ │ │ -
1539 { return const_iterator(this->_M_impl._M_node._M_next); }
│ │ │ │ -
│ │ │ │ -
1540
│ │ │ │ -
1541 /**
│ │ │ │ -
1542 * Returns a read-only (constant) iterator that points one past
│ │ │ │ -
1543 * the last element in the %list. Iteration is done in ordinary
│ │ │ │ -
1544 * element order.
│ │ │ │ -
1545 */
│ │ │ │ -
1546 [[__nodiscard__]]
│ │ │ │ -
1547 const_iterator
│ │ │ │ -
│ │ │ │ -
1548 cend() const noexcept
│ │ │ │ -
1549 { return const_iterator(this->_M_impl._M_node._M_base()); }
│ │ │ │ -
│ │ │ │ -
1550
│ │ │ │ -
1551 /**
│ │ │ │ -
1552 * Returns a read-only (constant) reverse iterator that points to
│ │ │ │ -
1553 * the last element in the %list. Iteration is done in reverse
│ │ │ │ -
1554 * element order.
│ │ │ │ -
1555 */
│ │ │ │ -
1556 [[__nodiscard__]]
│ │ │ │ -
1557 const_reverse_iterator
│ │ │ │ -
│ │ │ │ -
1558 crbegin() const noexcept
│ │ │ │ -
1559 { return const_reverse_iterator(end()); }
│ │ │ │ -
│ │ │ │ -
1560
│ │ │ │ -
1561 /**
│ │ │ │ -
1562 * Returns a read-only (constant) reverse iterator that points to one
│ │ │ │ -
1563 * before the first element in the %list. Iteration is done in reverse
│ │ │ │ -
1564 * element order.
│ │ │ │ -
1565 */
│ │ │ │ -
1566 [[__nodiscard__]]
│ │ │ │ -
1567 const_reverse_iterator
│ │ │ │ -
│ │ │ │ -
1568 crend() const noexcept
│ │ │ │ -
1569 { return const_reverse_iterator(begin()); }
│ │ │ │ -
│ │ │ │ -
1570#endif
│ │ │ │ -
1571
│ │ │ │ -
1572 // [23.2.2.2] capacity
│ │ │ │ -
1573 /**
│ │ │ │ -
1574 * Returns true if the %list is empty. (Thus begin() would equal
│ │ │ │ -
1575 * end().)
│ │ │ │ -
1576 */
│ │ │ │ -
1577 _GLIBCXX_NODISCARD bool
│ │ │ │ -
│ │ │ │ -
1578 empty() const _GLIBCXX_NOEXCEPT
│ │ │ │ -
1579 {
│ │ │ │ -
1580 return this->_M_impl._M_node._M_next == this->_M_impl._M_node._M_base();
│ │ │ │ -
1581 }
│ │ │ │ -
│ │ │ │ -
1582
│ │ │ │ -
1583 /** Returns the number of elements in the %list. */
│ │ │ │ -
1584 _GLIBCXX_NODISCARD
│ │ │ │ -
1585 size_type
│ │ │ │ -
│ │ │ │ -
1586 size() const _GLIBCXX_NOEXCEPT
│ │ │ │ -
1587 {
│ │ │ │ -
1588#if _GLIBCXX_USE_CXX11_ABI
│ │ │ │ -
1589 return this->_M_get_size(); // return the stored size
│ │ │ │ -
1590#else
│ │ │ │ -
1591 return std::distance(begin(), end()); // count the number of nodes
│ │ │ │ -
1592#endif
│ │ │ │ -
1593 }
│ │ │ │ -
│ │ │ │ -
1594
│ │ │ │ -
1595 /** Returns the size() of the largest possible %list. */
│ │ │ │ -
1596 _GLIBCXX_NODISCARD
│ │ │ │ -
1597 size_type
│ │ │ │ -
│ │ │ │ -
1598 max_size() const _GLIBCXX_NOEXCEPT
│ │ │ │ -
1599 { return _Node_alloc_traits::max_size(_M_get_Node_allocator()); }
│ │ │ │ -
│ │ │ │ -
1600
│ │ │ │ -
1601#if __cplusplus >= 201103L
│ │ │ │ -
1602 /**
│ │ │ │ -
1603 * @brief Resizes the %list to the specified number of elements.
│ │ │ │ -
1604 * @param __new_size Number of elements the %list should contain.
│ │ │ │ -
1605 *
│ │ │ │ -
1606 * This function will %resize the %list to the specified number
│ │ │ │ -
1607 * of elements. If the number is smaller than the %list's
│ │ │ │ -
1608 * current size the %list is truncated, otherwise default
│ │ │ │ -
1609 * constructed elements are appended.
│ │ │ │ -
1610 */
│ │ │ │ -
1611 void
│ │ │ │ -
1612 resize(size_type __new_size);
│ │ │ │ -
1613
│ │ │ │ -
1614 /**
│ │ │ │ -
1615 * @brief Resizes the %list to the specified number of elements.
│ │ │ │ -
1616 * @param __new_size Number of elements the %list should contain.
│ │ │ │ -
1617 * @param __x Data with which new elements should be populated.
│ │ │ │ -
1618 *
│ │ │ │ -
1619 * This function will %resize the %list to the specified number
│ │ │ │ -
1620 * of elements. If the number is smaller than the %list's
│ │ │ │ -
1621 * current size the %list is truncated, otherwise the %list is
│ │ │ │ -
1622 * extended and new elements are populated with given data.
│ │ │ │ -
1623 */
│ │ │ │ -
1624 void
│ │ │ │ -
1625 resize(size_type __new_size, const value_type& __x);
│ │ │ │ -
1626#else
│ │ │ │ -
1627 /**
│ │ │ │ -
1628 * @brief Resizes the %list to the specified number of elements.
│ │ │ │ -
1629 * @param __new_size Number of elements the %list should contain.
│ │ │ │ -
1630 * @param __x Data with which new elements should be populated.
│ │ │ │ -
1631 *
│ │ │ │ -
1632 * This function will %resize the %list to the specified number
│ │ │ │ -
1633 * of elements. If the number is smaller than the %list's
│ │ │ │ -
1634 * current size the %list is truncated, otherwise the %list is
│ │ │ │ -
1635 * extended and new elements are populated with given data.
│ │ │ │ -
1636 */
│ │ │ │ -
1637 void
│ │ │ │ -
1638 resize(size_type __new_size, value_type __x = value_type());
│ │ │ │ -
1639#endif
│ │ │ │ -
1640
│ │ │ │ -
1641 // element access
│ │ │ │ -
1642 /**
│ │ │ │ -
1643 * Returns a read/write reference to the data at the first
│ │ │ │ -
1644 * element of the %list.
│ │ │ │ -
1645 */
│ │ │ │ -
1646 _GLIBCXX_NODISCARD
│ │ │ │ -
1647 reference
│ │ │ │ -
│ │ │ │ -
1648 front() _GLIBCXX_NOEXCEPT
│ │ │ │ -
1649 {
│ │ │ │ -
1650 __glibcxx_requires_nonempty();
│ │ │ │ -
1651 return *begin();
│ │ │ │ -
1652 }
│ │ │ │ -
│ │ │ │ -
1653
│ │ │ │ -
1654 /**
│ │ │ │ -
1655 * Returns a read-only (constant) reference to the data at the first
│ │ │ │ -
1656 * element of the %list.
│ │ │ │ -
1657 */
│ │ │ │ -
1658 _GLIBCXX_NODISCARD
│ │ │ │ -
1659 const_reference
│ │ │ │ -
│ │ │ │ -
1660 front() const _GLIBCXX_NOEXCEPT
│ │ │ │ -
1661 {
│ │ │ │ -
1662 __glibcxx_requires_nonempty();
│ │ │ │ -
1663 return *begin();
│ │ │ │ -
1664 }
│ │ │ │ -
│ │ │ │ -
1665
│ │ │ │ -
1666 /**
│ │ │ │ -
1667 * Returns a read/write reference to the data at the last element
│ │ │ │ -
1668 * of the %list.
│ │ │ │ -
1669 */
│ │ │ │ -
1670 _GLIBCXX_NODISCARD
│ │ │ │ -
1671 reference
│ │ │ │ -
│ │ │ │ -
1672 back() _GLIBCXX_NOEXCEPT
│ │ │ │ -
1673 {
│ │ │ │ -
1674 __glibcxx_requires_nonempty();
│ │ │ │ -
1675 iterator __tmp = end();
│ │ │ │ -
1676 --__tmp;
│ │ │ │ -
1677 return *__tmp;
│ │ │ │ -
1678 }
│ │ │ │ -
│ │ │ │ -
1679
│ │ │ │ -
1680 /**
│ │ │ │ -
1681 * Returns a read-only (constant) reference to the data at the last
│ │ │ │ -
1682 * element of the %list.
│ │ │ │ -
1683 */
│ │ │ │ -
1684 _GLIBCXX_NODISCARD
│ │ │ │ -
1685 const_reference
│ │ │ │ -
│ │ │ │ -
1686 back() const _GLIBCXX_NOEXCEPT
│ │ │ │ -
1687 {
│ │ │ │ -
1688 __glibcxx_requires_nonempty();
│ │ │ │ -
1689 const_iterator __tmp = end();
│ │ │ │ -
1690 --__tmp;
│ │ │ │ -
1691 return *__tmp;
│ │ │ │ -
1692 }
│ │ │ │ -
│ │ │ │ -
1693
│ │ │ │ -
1694 // [23.2.2.3] modifiers
│ │ │ │ -
1695 /**
│ │ │ │ -
1696 * @brief Add data to the front of the %list.
│ │ │ │ -
1697 * @param __x Data to be added.
│ │ │ │ -
1698 *
│ │ │ │ -
1699 * This is a typical stack operation. The function creates an
│ │ │ │ -
1700 * element at the front of the %list and assigns the given data
│ │ │ │ -
1701 * to it. Due to the nature of a %list this operation can be
│ │ │ │ -
1702 * done in constant time, and does not invalidate iterators and
│ │ │ │ -
1703 * references.
│ │ │ │ -
1704 */
│ │ │ │ -
1705 void
│ │ │ │ -
│ │ │ │ -
1706 push_front(const value_type& __x)
│ │ │ │ -
1707 { this->_M_insert(begin(), __x); }
│ │ │ │ -
│ │ │ │ -
1708
│ │ │ │ -
1709#if __cplusplus >= 201103L
│ │ │ │ -
1710 void
│ │ │ │ -
1711 push_front(value_type&& __x)
│ │ │ │ -
1712 { this->_M_insert(begin(), std::move(__x)); }
│ │ │ │ -
1713
│ │ │ │ -
1714 template<typename... _Args>
│ │ │ │ -
1715#if __cplusplus > 201402L
│ │ │ │ -
1716 reference
│ │ │ │ -
1717#else
│ │ │ │ -
1718 void
│ │ │ │ -
1719#endif
│ │ │ │ -
1720 emplace_front(_Args&&... __args)
│ │ │ │ -
1721 {
│ │ │ │ -
1722 this->_M_insert(begin(), std::forward<_Args>(__args)...);
│ │ │ │ -
1723#if __cplusplus > 201402L
│ │ │ │ -
1724 return front();
│ │ │ │ -
1725#endif
│ │ │ │ -
1726 }
│ │ │ │ -
1727#endif
│ │ │ │ -
1728
│ │ │ │ -
1729#if __glibcxx_ranges_to_container // C++ >= 23
│ │ │ │ -
1730 /**
│ │ │ │ -
1731 * @brief Insert a range at the beginning of a list.
│ │ │ │ -
1732 * @param __rg An input range of elements that can be converted to
│ │ │ │ -
1733 * the list's value type.
│ │ │ │ -
1734 *
│ │ │ │ -
1735 * Inserts the elements of `__rg` at the beginning of the list.
│ │ │ │ -
1736 * No iterators to existing elements are invalidated by this function.
│ │ │ │ -
1737 * If the insertion fails due to an exception, no elements will be added
│ │ │ │ -
1738 * and so the list will be unchanged.
│ │ │ │ -
1739 *
│ │ │ │ -
1740 * @since C++23
│ │ │ │ -
1741 */
│ │ │ │ -
1742 template<__detail::__container_compatible_range<_Tp> _Rg>
│ │ │ │ -
1743 void
│ │ │ │ -
1744 prepend_range(_Rg&& __rg)
│ │ │ │ -
1745 {
│ │ │ │ -
1746 list __tmp(from_range, std::forward<_Rg>(__rg), get_allocator());
│ │ │ │ -
1747 if (!__tmp.empty())
│ │ │ │ -
1748 splice(begin(), __tmp);
│ │ │ │ -
1749 }
│ │ │ │ -
1750
│ │ │ │ -
1751 /**
│ │ │ │ -
1752 * @brief Insert a range at the end of a list.
│ │ │ │ -
1753 * @param __rg An input range of elements that can be converted to
│ │ │ │ -
1754 * the list's value type.
│ │ │ │ -
1755 *
│ │ │ │ -
1756 * Inserts the elements of `__rg` at the end of the list.
│ │ │ │ -
1757 * No iterators to existing elements are invalidated by this function.
│ │ │ │ -
1758 * If the insertion fails due to an exception, no elements will be added
│ │ │ │ -
1759 * and so the list will be unchanged.
│ │ │ │ -
1760 *
│ │ │ │ -
1761 * @since C++23
│ │ │ │ -
1762 */
│ │ │ │ -
1763 template<__detail::__container_compatible_range<_Tp> _Rg>
│ │ │ │ -
1764 void
│ │ │ │ -
1765 append_range(_Rg&& __rg)
│ │ │ │ -
1766 {
│ │ │ │ -
1767 list __tmp(from_range, std::forward<_Rg>(__rg), get_allocator());
│ │ │ │ -
1768 if (!__tmp.empty())
│ │ │ │ -
1769 splice(end(), __tmp);
│ │ │ │ -
1770 }
│ │ │ │ -
1771#endif
│ │ │ │ -
1772
│ │ │ │ -
1773 /**
│ │ │ │ -
1774 * @brief Removes first element.
│ │ │ │ -
1775 *
│ │ │ │ -
1776 * This is a typical stack operation. It shrinks the %list by
│ │ │ │ -
1777 * one. Due to the nature of a %list this operation can be done
│ │ │ │ -
1778 * in constant time, and only invalidates iterators/references to
│ │ │ │ -
1779 * the element being removed.
│ │ │ │ -
1780 *
│ │ │ │ -
1781 * Note that no data is returned, and if the first element's data
│ │ │ │ -
1782 * is needed, it should be retrieved before pop_front() is
│ │ │ │ -
1783 * called.
│ │ │ │ -
1784 */
│ │ │ │ -
1785 void
│ │ │ │ -
│ │ │ │ -
1786 pop_front() _GLIBCXX_NOEXCEPT
│ │ │ │ -
1787 {
│ │ │ │ -
1788 __glibcxx_requires_nonempty();
│ │ │ │ -
1789 this->_M_erase(begin());
│ │ │ │ -
1790 }
│ │ │ │ -
│ │ │ │ -
1791
│ │ │ │ -
1792 /**
│ │ │ │ -
1793 * @brief Add data to the end of the %list.
│ │ │ │ -
1794 * @param __x Data to be added.
│ │ │ │ -
1795 *
│ │ │ │ -
1796 * This is a typical stack operation. The function creates an
│ │ │ │ -
1797 * element at the end of the %list and assigns the given data to
│ │ │ │ -
1798 * it. Due to the nature of a %list this operation can be done
│ │ │ │ -
1799 * in constant time, and does not invalidate iterators and
│ │ │ │ -
1800 * references.
│ │ │ │ -
1801 */
│ │ │ │ -
1802 void
│ │ │ │ -
│ │ │ │ -
1803 push_back(const value_type& __x)
│ │ │ │ -
1804 { this->_M_insert(end(), __x); }
│ │ │ │ -
│ │ │ │ -
1805
│ │ │ │ -
1806#if __cplusplus >= 201103L
│ │ │ │ -
1807 void
│ │ │ │ -
1808 push_back(value_type&& __x)
│ │ │ │ -
1809 { this->_M_insert(end(), std::move(__x)); }
│ │ │ │ -
1810
│ │ │ │ -
1811 template<typename... _Args>
│ │ │ │ -
1812#if __cplusplus > 201402L
│ │ │ │ -
1813 reference
│ │ │ │ -
1814#else
│ │ │ │ -
1815 void
│ │ │ │ -
1816#endif
│ │ │ │ -
1817 emplace_back(_Args&&... __args)
│ │ │ │ -
1818 {
│ │ │ │ -
1819 this->_M_insert(end(), std::forward<_Args>(__args)...);
│ │ │ │ -
1820#if __cplusplus > 201402L
│ │ │ │ -
1821 return back();
│ │ │ │ -
1822#endif
│ │ │ │ -
1823 }
│ │ │ │ -
1824#endif
│ │ │ │ -
1825
│ │ │ │ -
1826 /**
│ │ │ │ -
1827 * @brief Removes last element.
│ │ │ │ -
1828 *
│ │ │ │ -
1829 * This is a typical stack operation. It shrinks the %list by
│ │ │ │ -
1830 * one. Due to the nature of a %list this operation can be done
│ │ │ │ -
1831 * in constant time, and only invalidates iterators/references to
│ │ │ │ -
1832 * the element being removed.
│ │ │ │ -
1833 *
│ │ │ │ -
1834 * Note that no data is returned, and if the last element's data
│ │ │ │ -
1835 * is needed, it should be retrieved before pop_back() is called.
│ │ │ │ -
1836 */
│ │ │ │ -
1837 void
│ │ │ │ -
│ │ │ │ -
1838 pop_back() _GLIBCXX_NOEXCEPT
│ │ │ │ -
1839 {
│ │ │ │ -
1840 __glibcxx_requires_nonempty();
│ │ │ │ -
1841 this->_M_erase(iterator(this->_M_impl._M_node._M_prev));
│ │ │ │ -
1842 }
│ │ │ │ -
│ │ │ │ -
1843
│ │ │ │ -
1844#if __cplusplus >= 201103L
│ │ │ │ -
1845 /**
│ │ │ │ -
1846 * @brief Constructs object in %list before specified iterator.
│ │ │ │ -
1847 * @param __position A const_iterator into the %list.
│ │ │ │ -
1848 * @param __args Arguments.
│ │ │ │ -
1849 * @return An iterator that points to the inserted data.
│ │ │ │ -
1850 *
│ │ │ │ -
1851 * This function will insert an object of type T constructed
│ │ │ │ -
1852 * with T(std::forward<Args>(args)...) before the specified
│ │ │ │ -
1853 * location. Due to the nature of a %list this operation can
│ │ │ │ -
1854 * be done in constant time, and does not invalidate iterators
│ │ │ │ -
1855 * and references.
│ │ │ │ -
1856 */
│ │ │ │ -
1857 template<typename... _Args>
│ │ │ │ -
1858 iterator
│ │ │ │ -
1859 emplace(const_iterator __position, _Args&&... __args);
│ │ │ │ -
1860#endif
│ │ │ │ -
1861
│ │ │ │ -
1862 /**
│ │ │ │ -
1863 * @brief Inserts given value into %list before specified iterator.
│ │ │ │ -
1864 * @param __position An iterator into the %list.
│ │ │ │ -
1865 * @param __x Data to be inserted.
│ │ │ │ -
1866 * @return An iterator that points to the inserted data.
│ │ │ │ -
1867 *
│ │ │ │ -
1868 * This function will insert a copy of the given value before
│ │ │ │ -
1869 * the specified location. Due to the nature of a %list this
│ │ │ │ -
1870 * operation can be done in constant time, and does not
│ │ │ │ -
1871 * invalidate iterators and references.
│ │ │ │ -
1872 *
│ │ │ │ -
1873 * @{
│ │ │ │ -
1874 */
│ │ │ │ -
1875#if __cplusplus >= 201103L
│ │ │ │ -
1876 iterator
│ │ │ │ -
1877 insert(const_iterator __position, const value_type& __x);
│ │ │ │ -
1878
│ │ │ │ -
1879 iterator
│ │ │ │ -
│ │ │ │ -
1880 insert(const_iterator __position, value_type&& __x)
│ │ │ │ -
1881 { return emplace(__position, std::move(__x)); }
│ │ │ │ -
│ │ │ │ -
1882#else
│ │ │ │ -
1883 iterator
│ │ │ │ -
1884 insert(iterator __position, const value_type& __x);
│ │ │ │ -
1885#endif
│ │ │ │ -
1886 /// @}
│ │ │ │ -
1887
│ │ │ │ -
1888#if __cplusplus >= 201103L
│ │ │ │ -
1889 /**
│ │ │ │ -
1890 * @brief Inserts the contents of an initializer_list into %list
│ │ │ │ -
1891 * before specified const_iterator.
│ │ │ │ -
1892 * @param __p A const_iterator into the %list.
│ │ │ │ -
1893 * @param __l An initializer_list of value_type.
│ │ │ │ -
1894 * @return An iterator pointing to the first element inserted
│ │ │ │ -
1895 * (or `__p`).
│ │ │ │ -
1896 *
│ │ │ │ -
1897 * This function will insert copies of the data in the
│ │ │ │ -
1898 * initializer_list `__l` into the %list before the location
│ │ │ │ -
1899 * specified by `__p`.
│ │ │ │ -
1900 *
│ │ │ │ -
1901 * This operation is linear in the number of elements inserted and
│ │ │ │ -
1902 * does not invalidate iterators and references.
│ │ │ │ -
1903 */
│ │ │ │ -
1904 iterator
│ │ │ │ -
│ │ │ │ -
1905 insert(const_iterator __p, initializer_list<value_type> __l)
│ │ │ │ -
1906 { return this->insert(__p, __l.begin(), __l.end()); }
│ │ │ │ -
│ │ │ │ -
1907#endif
│ │ │ │ -
1908
│ │ │ │ -
1909 /**
│ │ │ │ -
1910 * @brief Inserts a number of copies of given data into the %list.
│ │ │ │ -
1911 * @param __position An iterator into the %list.
│ │ │ │ -
1912 * @param __n Number of elements to be inserted.
│ │ │ │ -
1913 * @param __x Data to be inserted.
│ │ │ │ -
1914 * @return Since C++11, an iterator pointing to the first element
│ │ │ │ -
1915 * inserted (or `__position`). In C++98 this returns void.
│ │ │ │ -
1916 *
│ │ │ │ -
1917 * This function will insert a specified number of copies of the
│ │ │ │ -
1918 * given data before the location specified by `__position`.
│ │ │ │ -
1919 *
│ │ │ │ -
1920 * This operation is linear in the number of elements inserted and
│ │ │ │ -
1921 * does not invalidate iterators and references.
│ │ │ │ -
1922 */
│ │ │ │ -
1923#if __cplusplus >= 201103L
│ │ │ │ -
1924 iterator
│ │ │ │ -
1925 insert(const_iterator __position, size_type __n, const value_type& __x);
│ │ │ │ -
1926#else
│ │ │ │ -
1927 void
│ │ │ │ -
1928 insert(iterator __position, size_type __n, const value_type& __x)
│ │ │ │ -
1929 {
│ │ │ │ -
1930 list __tmp(__n, __x, get_allocator());
│ │ │ │ -
1931 splice(__position, __tmp);
│ │ │ │ -
1932 }
│ │ │ │ -
1933#endif
│ │ │ │ -
1934
│ │ │ │ -
1935 /**
│ │ │ │ -
1936 * @brief Inserts a range into the %list.
│ │ │ │ -
1937 * @param __position An iterator into the %list.
│ │ │ │ -
1938 * @param __first An input iterator.
│ │ │ │ -
1939 * @param __last An input iterator.
│ │ │ │ -
1940 * @return Since C++11, an iterator pointing to the first element
│ │ │ │ -
1941 * inserted (or `__position`). In C++98 this returns void.
│ │ │ │ -
1942 *
│ │ │ │ -
1943 * This function will insert copies of the data in the range
│ │ │ │ -
1944 * `[__first,__last)` into the %list before the location specified by
│ │ │ │ -
1945 * `__position`.
│ │ │ │ -
1946 *
│ │ │ │ -
1947 * This operation is linear in the number of elements inserted and
│ │ │ │ -
1948 * does not invalidate iterators and references.
│ │ │ │ -
1949 */
│ │ │ │ -
1950#if __cplusplus >= 201103L
│ │ │ │ -
1951 template<typename _InputIterator,
│ │ │ │ -
1952 typename = std::_RequireInputIter<_InputIterator>>
│ │ │ │ -
1953 iterator
│ │ │ │ -
1954 insert(const_iterator __position, _InputIterator __first,
│ │ │ │ -
1955 _InputIterator __last);
│ │ │ │ -
1956#else
│ │ │ │ -
1957 template<typename _InputIterator>
│ │ │ │ -
1958 void
│ │ │ │ -
1959 insert(iterator __position, _InputIterator __first,
│ │ │ │ -
1960 _InputIterator __last)
│ │ │ │ -
1961 {
│ │ │ │ -
1962 list __tmp(__first, __last, get_allocator());
│ │ │ │ -
1963 splice(__position, __tmp);
│ │ │ │ -
1964 }
│ │ │ │ -
1965#endif
│ │ │ │ -
1966
│ │ │ │ -
1967#if __glibcxx_ranges_to_container // C++ >= 23
│ │ │ │ -
1968 /**
│ │ │ │ -
1969 * @brief Insert a range into a list.
│ │ │ │ -
1970 * @param __position An iterator.
│ │ │ │ -
1971 * @param __rg An input range of elements that can be converted to
│ │ │ │ -
1972 * the list's value type.
│ │ │ │ -
1973 * @return An iterator pointing to the first element inserted,
│ │ │ │ -
1974 * or `__position` if the range is empty.
│ │ │ │ -
1975 *
│ │ │ │ -
1976 * Inserts the elements of `__rg` before `__position`.
│ │ │ │ -
1977 * No iterators to existing elements are invalidated by this function.
│ │ │ │ -
1978 * If the insertion fails due to an exception, no elements will be added
│ │ │ │ -
1979 * and so the list will be unchanged.
│ │ │ │ -
1980 *
│ │ │ │ -
1981 * @since C++23
│ │ │ │ -
1982 */
│ │ │ │ -
1983 template<__detail::__container_compatible_range<_Tp> _Rg>
│ │ │ │ -
1984 iterator
│ │ │ │ -
1985 insert_range(const_iterator __position, _Rg&& __rg)
│ │ │ │ -
1986 {
│ │ │ │ -
1987 list __tmp(from_range, std::forward<_Rg>(__rg), get_allocator());
│ │ │ │ -
1988 if (!__tmp.empty())
│ │ │ │ -
1989 {
│ │ │ │ -
1990 auto __it = __tmp.begin();
│ │ │ │ -
1991 splice(__position, __tmp);
│ │ │ │ -
1992 return __it;
│ │ │ │ -
1993 }
│ │ │ │ -
1994 return __position._M_const_cast();
│ │ │ │ -
1995 }
│ │ │ │ -
1996#endif
│ │ │ │ -
1997
│ │ │ │ -
1998 /**
│ │ │ │ -
1999 * @brief Remove element at given position.
│ │ │ │ -
2000 * @param __position Iterator pointing to element to be erased.
│ │ │ │ -
2001 * @return An iterator pointing to the next element (or end()).
│ │ │ │ -
2002 *
│ │ │ │ -
2003 * This function will erase the element at the given position and thus
│ │ │ │ -
2004 * shorten the %list by one.
│ │ │ │ -
2005 *
│ │ │ │ -
2006 * Due to the nature of a %list this operation can be done in
│ │ │ │ -
2007 * constant time, and only invalidates iterators/references to
│ │ │ │ -
2008 * the element being removed. The user is also cautioned that
│ │ │ │ -
2009 * this function only erases the element, and that if the element
│ │ │ │ -
2010 * is itself a pointer, the pointed-to memory is not touched in
│ │ │ │ -
2011 * any way. Managing the pointer is the user's responsibility.
│ │ │ │ -
2012 */
│ │ │ │ -
2013 iterator
│ │ │ │ -
2014#if __cplusplus >= 201103L
│ │ │ │ -
2015 erase(const_iterator __position) noexcept;
│ │ │ │ -
2016#else
│ │ │ │ -
2017 erase(iterator __position);
│ │ │ │ -
2018#endif
│ │ │ │ -
2019
│ │ │ │ -
2020 /**
│ │ │ │ -
2021 * @brief Remove a range of elements.
│ │ │ │ -
2022 * @param __first Iterator pointing to the first element to be erased.
│ │ │ │ -
2023 * @param __last Iterator pointing to one past the last element to be
│ │ │ │ -
2024 * erased.
│ │ │ │ -
2025 * @return An iterator pointing to the element pointed to by @a last
│ │ │ │ -
2026 * prior to erasing (or end()).
│ │ │ │ -
2027 *
│ │ │ │ -
2028 * This function will erase the elements in the range @a
│ │ │ │ -
2029 * [first,last) and shorten the %list accordingly.
│ │ │ │ -
2030 *
│ │ │ │ -
2031 * This operation is linear time in the size of the range and only
│ │ │ │ -
2032 * invalidates iterators/references to the element being removed.
│ │ │ │ -
2033 * The user is also cautioned that this function only erases the
│ │ │ │ -
2034 * elements, and that if the elements themselves are pointers, the
│ │ │ │ -
2035 * pointed-to memory is not touched in any way. Managing the pointer
│ │ │ │ -
2036 * is the user's responsibility.
│ │ │ │ -
2037 */
│ │ │ │ -
2038 iterator
│ │ │ │ -
2039#if __cplusplus >= 201103L
│ │ │ │ -
│ │ │ │ -
2040 erase(const_iterator __first, const_iterator __last) noexcept
│ │ │ │ -
2041#else
│ │ │ │ -
2042 erase(iterator __first, iterator __last)
│ │ │ │ -
2043#endif
│ │ │ │ -
2044 {
│ │ │ │ -
2045 while (__first != __last)
│ │ │ │ -
2046 __first = erase(__first);
│ │ │ │ -
2047 return __last._M_const_cast();
│ │ │ │ -
2048 }
│ │ │ │ -
│ │ │ │ -
2049
│ │ │ │ -
2050 /**
│ │ │ │ -
2051 * @brief Swaps data with another %list.
│ │ │ │ -
2052 * @param __x A %list of the same element and allocator types.
│ │ │ │ -
2053 *
│ │ │ │ -
2054 * This exchanges the elements between two lists in constant
│ │ │ │ -
2055 * time. Note that the global std::swap() function is
│ │ │ │ -
2056 * specialized such that std::swap(l1,l2) will feed to this
│ │ │ │ -
2057 * function.
│ │ │ │ -
2058 *
│ │ │ │ -
2059 * Whether the allocators are swapped depends on the allocator traits.
│ │ │ │ -
2060 */
│ │ │ │ -
2061 void
│ │ │ │ -
│ │ │ │ -
2062 swap(list& __x) _GLIBCXX_NOEXCEPT
│ │ │ │ -
2063 {
│ │ │ │ -
2064 _Node_traits::_Node_base::swap(this->_M_impl._M_node,
│ │ │ │ -
2065 __x._M_impl._M_node);
│ │ │ │ -
2066
│ │ │ │ -
2067 size_t __xsize = __x._M_get_size();
│ │ │ │ -
2068 __x._M_set_size(this->_M_get_size());
│ │ │ │ -
2069 this->_M_set_size(__xsize);
│ │ │ │ -
2070
│ │ │ │ -
2071 _Node_alloc_traits::_S_on_swap(this->_M_get_Node_allocator(),
│ │ │ │ -
2072 __x._M_get_Node_allocator());
│ │ │ │ -
2073 }
│ │ │ │ -
│ │ │ │ -
2074
│ │ │ │ -
2075 /**
│ │ │ │ -
2076 * Erases all the elements. Note that this function only erases
│ │ │ │ -
2077 * the elements, and that if the elements themselves are
│ │ │ │ -
2078 * pointers, the pointed-to memory is not touched in any way.
│ │ │ │ -
2079 * Managing the pointer is the user's responsibility.
│ │ │ │ -
2080 */
│ │ │ │ -
2081 void
│ │ │ │ -
│ │ │ │ -
2082 clear() _GLIBCXX_NOEXCEPT
│ │ │ │ -
2083 {
│ │ │ │ -
2084 _Base::_M_clear();
│ │ │ │ -
2085 _Base::_M_init();
│ │ │ │ -
2086 }
│ │ │ │ -
│ │ │ │ -
2087
│ │ │ │ -
2088 // [23.2.2.4] list operations
│ │ │ │ -
2089 /**
│ │ │ │ -
2090 * @brief Insert contents of another %list.
│ │ │ │ -
2091 * @param __position Iterator referencing the element to insert before.
│ │ │ │ -
2092 * @param __x Source list.
│ │ │ │ -
2093 *
│ │ │ │ -
2094 * The elements of @a __x are inserted in constant time in front of
│ │ │ │ -
2095 * the element referenced by @a __position. @a __x becomes an empty
│ │ │ │ -
2096 * list.
│ │ │ │ -
2097 *
│ │ │ │ -
2098 * Requires this != @a __x.
│ │ │ │ -
2099 */
│ │ │ │ -
2100 void
│ │ │ │ -
2101#if __cplusplus >= 201103L
│ │ │ │ -
│ │ │ │ -
2102 splice(const_iterator __position, list&& __x) noexcept
│ │ │ │ -
2103#else
│ │ │ │ -
2104 splice(iterator __position, list& __x)
│ │ │ │ -
2105#endif
│ │ │ │ -
2106 {
│ │ │ │ -
2107 if (!__x.empty())
│ │ │ │ -
2108 {
│ │ │ │ -
2109 _M_check_equal_allocators(__x);
│ │ │ │ -
2110
│ │ │ │ -
2111 this->_M_transfer(__position._M_const_cast(),
│ │ │ │ -
2112 __x.begin(), __x.end());
│ │ │ │ -
2113
│ │ │ │ -
2114 this->_M_inc_size(__x._M_get_size());
│ │ │ │ -
2115 __x._M_set_size(0);
│ │ │ │ -
2116 }
│ │ │ │ -
2117 }
│ │ │ │ -
│ │ │ │ -
2118
│ │ │ │ -
2119#if __cplusplus >= 201103L
│ │ │ │ -
2120 void
│ │ │ │ -
2121 splice(const_iterator __position, list& __x) noexcept
│ │ │ │ -
2122 { splice(__position, std::move(__x)); }
│ │ │ │ -
2123#endif
│ │ │ │ -
2124
│ │ │ │ -
2125 /**
│ │ │ │ -
2126 * @brief Insert element from another %list.
│ │ │ │ -
2127 * @param __position Iterator referencing the element to insert before.
│ │ │ │ -
2128 * @param __x Source list.
│ │ │ │ -
2129 * @param __i Iterator referencing the element to move.
│ │ │ │ -
2130 *
│ │ │ │ -
2131 * Removes the element in list @a __x referenced by @a __i and
│ │ │ │ -
2132 * inserts it into the current list before @a __position.
│ │ │ │ -
2133 *
│ │ │ │ -
2134 * @{
│ │ │ │ -
2135 */
│ │ │ │ -
2136#if __cplusplus >= 201103L
│ │ │ │ -
2137 void
│ │ │ │ -
│ │ │ │ -
2138 splice(const_iterator __position, list&& __x, const_iterator __i) noexcept
│ │ │ │ -
2139#else
│ │ │ │ -
2140 void
│ │ │ │ -
2141 splice(iterator __position, list& __x, iterator __i)
│ │ │ │ -
2142#endif
│ │ │ │ -
2143 {
│ │ │ │ -
2144 iterator __j = __i._M_const_cast();
│ │ │ │ -
2145 ++__j;
│ │ │ │ -
2146 if (__position == __i || __position == __j)
│ │ │ │ -
2147 return;
│ │ │ │ -
2148
│ │ │ │ -
2149 if (this != std::__addressof(__x))
│ │ │ │ -
2150 _M_check_equal_allocators(__x);
│ │ │ │ -
2151
│ │ │ │ -
2152 this->_M_transfer(__position._M_const_cast(),
│ │ │ │ -
2153 __i._M_const_cast(), __j);
│ │ │ │ -
2154
│ │ │ │ -
2155 this->_M_inc_size(1);
│ │ │ │ -
2156 __x._M_dec_size(1);
│ │ │ │ -
2157 }
│ │ │ │ -
│ │ │ │ -
2158
│ │ │ │ -
2159#if __cplusplus >= 201103L
│ │ │ │ -
2160 void
│ │ │ │ -
│ │ │ │ -
2161 splice(const_iterator __position, list& __x, const_iterator __i) noexcept
│ │ │ │ -
2162 { splice(__position, std::move(__x), __i); }
│ │ │ │ -
│ │ │ │ -
2163#endif
│ │ │ │ -
2164 /// @}
│ │ │ │ -
2165
│ │ │ │ -
2166 /**
│ │ │ │ -
2167 * @brief Insert range from another %list.
│ │ │ │ -
2168 * @param __position Iterator referencing the element to insert before.
│ │ │ │ -
2169 * @param __x Source list.
│ │ │ │ -
2170 * @param __first Iterator referencing the start of range in x.
│ │ │ │ -
2171 * @param __last Iterator referencing the end of range in x.
│ │ │ │ -
2172 *
│ │ │ │ -
2173 * Removes elements in the range [__first,__last) and inserts them
│ │ │ │ -
2174 * before @a __position in constant time.
│ │ │ │ -
2175 *
│ │ │ │ -
2176 * Undefined if @a __position is in [__first,__last).
│ │ │ │ -
2177 */
│ │ │ │ -
2178#if __cplusplus >= 201103L
│ │ │ │ -
2179 void
│ │ │ │ -
│ │ │ │ -
2180 splice(const_iterator __position, list&& __x, const_iterator __first,
│ │ │ │ -
2181 const_iterator __last) noexcept
│ │ │ │ -
2182#else
│ │ │ │ -
2183 void
│ │ │ │ -
2184 splice(iterator __position, list& __x, iterator __first,
│ │ │ │ -
2185 iterator __last)
│ │ │ │ -
2186#endif
│ │ │ │ -
2187 {
│ │ │ │ -
2188 if (__first != __last)
│ │ │ │ -
2189 {
│ │ │ │ -
2190 if (this != std::__addressof(__x))
│ │ │ │ -
2191 _M_check_equal_allocators(__x);
│ │ │ │ -
2192
│ │ │ │ -
2193#if _GLIBCXX_USE_CXX11_ABI
│ │ │ │ -
2194 size_t __n = std::distance(__first, __last);
│ │ │ │ -
2195 this->_M_inc_size(__n);
│ │ │ │ -
2196 __x._M_dec_size(__n);
│ │ │ │ -
2197#endif
│ │ │ │ -
2198
│ │ │ │ -
2199 this->_M_transfer(__position._M_const_cast(),
│ │ │ │ -
2200 __first._M_const_cast(),
│ │ │ │ -
2201 __last._M_const_cast());
│ │ │ │ -
2202 }
│ │ │ │ -
2203 }
│ │ │ │ -
│ │ │ │ -
2204
│ │ │ │ -
2205#if __cplusplus >= 201103L
│ │ │ │ -
2206 /**
│ │ │ │ -
2207 * @brief Insert range from another %list.
│ │ │ │ -
2208 * @param __position Const_iterator referencing the element to
│ │ │ │ -
2209 * insert before.
│ │ │ │ -
2210 * @param __x Source list.
│ │ │ │ -
2211 * @param __first Const_iterator referencing the start of range in x.
│ │ │ │ -
2212 * @param __last Const_iterator referencing the end of range in x.
│ │ │ │ -
2213 *
│ │ │ │ -
2214 * Removes elements in the range [__first,__last) and inserts them
│ │ │ │ -
2215 * before @a __position in constant time.
│ │ │ │ -
2216 *
│ │ │ │ -
2217 * Undefined if @a __position is in [__first,__last).
│ │ │ │ -
2218 */
│ │ │ │ -
2219 void
│ │ │ │ -
│ │ │ │ -
2220 splice(const_iterator __position, list& __x, const_iterator __first,
│ │ │ │ -
2221 const_iterator __last) noexcept
│ │ │ │ -
2222 { splice(__position, std::move(__x), __first, __last); }
│ │ │ │ -
│ │ │ │ -
2223#endif
│ │ │ │ -
2224
│ │ │ │ -
2225 private:
│ │ │ │ -
2226#ifdef __glibcxx_list_remove_return_type // C++ >= 20 && HOSTED
│ │ │ │ -
2227 typedef size_type __remove_return_type;
│ │ │ │ -
2228# define _GLIBCXX_LIST_REMOVE_RETURN_TYPE_TAG \
│ │ │ │ -
2229 __attribute__((__abi_tag__("__cxx20")))
│ │ │ │ -
2230#else
│ │ │ │ -
2231 typedef void __remove_return_type;
│ │ │ │ -
2232# define _GLIBCXX_LIST_REMOVE_RETURN_TYPE_TAG
│ │ │ │ -
2233#endif
│ │ │ │ -
2234 public:
│ │ │ │ -
2235
│ │ │ │ -
2236 /**
│ │ │ │ -
2237 * @brief Remove all elements equal to value.
│ │ │ │ -
2238 * @param __value The value to remove.
│ │ │ │ -
2239 *
│ │ │ │ -
2240 * Removes every element in the list equal to @a value.
│ │ │ │ -
2241 * Remaining elements stay in list order. Note that this
│ │ │ │ -
2242 * function only erases the elements, and that if the elements
│ │ │ │ -
2243 * themselves are pointers, the pointed-to memory is not
│ │ │ │ -
2244 * touched in any way. Managing the pointer is the user's
│ │ │ │ -
2245 * responsibility.
│ │ │ │ -
2246 */
│ │ │ │ -
2247 _GLIBCXX_LIST_REMOVE_RETURN_TYPE_TAG
│ │ │ │ -
2248 __remove_return_type
│ │ │ │ -
2249 remove(const _Tp& __value);
│ │ │ │ -
2250
│ │ │ │ -
2251 /**
│ │ │ │ -
2252 * @brief Remove all elements satisfying a predicate.
│ │ │ │ -
2253 * @tparam _Predicate Unary predicate function or object.
│ │ │ │ -
2254 *
│ │ │ │ -
2255 * Removes every element in the list for which the predicate
│ │ │ │ -
2256 * returns true. Remaining elements stay in list order. Note
│ │ │ │ -
2257 * that this function only erases the elements, and that if the
│ │ │ │ -
2258 * elements themselves are pointers, the pointed-to memory is
│ │ │ │ -
2259 * not touched in any way. Managing the pointer is the user's
│ │ │ │ -
2260 * responsibility.
│ │ │ │ -
2261 */
│ │ │ │ -
2262 template<typename _Predicate>
│ │ │ │ -
2263 __remove_return_type
│ │ │ │ -
2264 remove_if(_Predicate);
│ │ │ │ -
2265
│ │ │ │ -
2266 /**
│ │ │ │ -
2267 * @brief Remove consecutive duplicate elements.
│ │ │ │ -
2268 *
│ │ │ │ -
2269 * For each consecutive set of elements with the same value,
│ │ │ │ -
2270 * remove all but the first one. Remaining elements stay in
│ │ │ │ -
2271 * list order. Note that this function only erases the
│ │ │ │ -
2272 * elements, and that if the elements themselves are pointers,
│ │ │ │ -
2273 * the pointed-to memory is not touched in any way. Managing
│ │ │ │ -
2274 * the pointer is the user's responsibility.
│ │ │ │ -
2275 */
│ │ │ │ -
2276 _GLIBCXX_LIST_REMOVE_RETURN_TYPE_TAG
│ │ │ │ -
2277 __remove_return_type
│ │ │ │ -
2278 unique();
│ │ │ │ -
2279
│ │ │ │ -
2280 /**
│ │ │ │ -
2281 * @brief Remove consecutive elements satisfying a predicate.
│ │ │ │ -
2282 * @tparam _BinaryPredicate Binary predicate function or object.
│ │ │ │ -
2283 *
│ │ │ │ -
2284 * For each consecutive set of elements [first,last) that
│ │ │ │ -
2285 * satisfy predicate(first,i) where i is an iterator in
│ │ │ │ -
2286 * [first,last), remove all but the first one. Remaining
│ │ │ │ -
2287 * elements stay in list order. Note that this function only
│ │ │ │ -
2288 * erases the elements, and that if the elements themselves are
│ │ │ │ -
2289 * pointers, the pointed-to memory is not touched in any way.
│ │ │ │ -
2290 * Managing the pointer is the user's responsibility.
│ │ │ │ -
2291 */
│ │ │ │ -
2292 template<typename _BinaryPredicate>
│ │ │ │ -
2293 __remove_return_type
│ │ │ │ -
2294 unique(_BinaryPredicate);
│ │ │ │ -
2295
│ │ │ │ -
2296#undef _GLIBCXX_LIST_REMOVE_RETURN_TYPE_TAG
│ │ │ │ -
2297
│ │ │ │ -
2298 /**
│ │ │ │ -
2299 * @brief Merge sorted lists.
│ │ │ │ -
2300 * @param __x Sorted list to merge.
│ │ │ │ -
2301 *
│ │ │ │ -
2302 * Assumes that both @a __x and this list are sorted according to
│ │ │ │ -
2303 * operator<(). Merges elements of @a __x into this list in
│ │ │ │ -
2304 * sorted order, leaving @a __x empty when complete. Elements in
│ │ │ │ -
2305 * this list precede elements in @a __x that are equal.
│ │ │ │ -
2306 */
│ │ │ │ -
2307#if __cplusplus >= 201103L
│ │ │ │ -
2308 void
│ │ │ │ -
2309 merge(list&& __x);
│ │ │ │ -
2310
│ │ │ │ -
2311 void
│ │ │ │ -
2312 merge(list& __x)
│ │ │ │ -
2313 { merge(std::move(__x)); }
│ │ │ │ -
2314#else
│ │ │ │ -
2315 void
│ │ │ │ -
2316 merge(list& __x);
│ │ │ │ -
2317#endif
│ │ │ │ -
2318
│ │ │ │ -
2319 /**
│ │ │ │ -
2320 * @brief Merge sorted lists according to comparison function.
│ │ │ │ -
2321 * @tparam _StrictWeakOrdering Comparison function defining
│ │ │ │ -
2322 * sort order.
│ │ │ │ -
2323 * @param __x Sorted list to merge.
│ │ │ │ -
2324 * @param __comp Comparison functor.
│ │ │ │ -
2325 *
│ │ │ │ -
2326 * Assumes that both @a __x and this list are sorted according to
│ │ │ │ -
2327 * StrictWeakOrdering. Merges elements of @a __x into this list
│ │ │ │ -
2328 * in sorted order, leaving @a __x empty when complete. Elements
│ │ │ │ -
2329 * in this list precede elements in @a __x that are equivalent
│ │ │ │ -
2330 * according to StrictWeakOrdering().
│ │ │ │ -
2331 */
│ │ │ │ -
2332#if __cplusplus >= 201103L
│ │ │ │ -
2333 template<typename _StrictWeakOrdering>
│ │ │ │ -
2334 void
│ │ │ │ -
2335 merge(list&& __x, _StrictWeakOrdering __comp);
│ │ │ │ -
2336
│ │ │ │ -
2337 template<typename _StrictWeakOrdering>
│ │ │ │ -
2338 void
│ │ │ │ -
2339 merge(list& __x, _StrictWeakOrdering __comp)
│ │ │ │ -
2340 { merge(std::move(__x), __comp); }
│ │ │ │ -
2341#else
│ │ │ │ -
2342 template<typename _StrictWeakOrdering>
│ │ │ │ -
2343 void
│ │ │ │ -
2344 merge(list& __x, _StrictWeakOrdering __comp);
│ │ │ │ -
2345#endif
│ │ │ │ -
2346
│ │ │ │ -
2347 /**
│ │ │ │ -
2348 * @brief Reverse the elements in list.
│ │ │ │ -
2349 *
│ │ │ │ -
2350 * Reverse the order of elements in the list in linear time.
│ │ │ │ -
2351 */
│ │ │ │ -
2352 void
│ │ │ │ -
│ │ │ │ -
2353 reverse() _GLIBCXX_NOEXCEPT
│ │ │ │ -
2354 { this->_M_impl._M_node._M_reverse(); }
│ │ │ │ -
│ │ │ │ -
2355
│ │ │ │ -
2356 /**
│ │ │ │ -
2357 * @brief Sort the elements.
│ │ │ │ -
2358 *
│ │ │ │ -
2359 * Sorts the elements of this list in NlogN time. Equivalent
│ │ │ │ -
2360 * elements remain in list order.
│ │ │ │ -
2361 */
│ │ │ │ -
2362 void
│ │ │ │ -
2363 sort();
│ │ │ │ -
2364
│ │ │ │ -
2365 /**
│ │ │ │ -
2366 * @brief Sort the elements according to comparison function.
│ │ │ │ -
2367 *
│ │ │ │ -
2368 * Sorts the elements of this list in NlogN time. Equivalent
│ │ │ │ -
2369 * elements remain in list order.
│ │ │ │ -
2370 */
│ │ │ │ -
2371 template<typename _StrictWeakOrdering>
│ │ │ │ -
2372 void
│ │ │ │ -
2373 sort(_StrictWeakOrdering);
│ │ │ │ -
2374
│ │ │ │ -
2375 protected:
│ │ │ │ -
2376 // Internal constructor functions follow.
│ │ │ │ -
2377
│ │ │ │ -
2378 // Called by the range constructor to implement [23.1.1]/9
│ │ │ │ -
2379
│ │ │ │ -
2380 // _GLIBCXX_RESOLVE_LIB_DEFECTS
│ │ │ │ -
2381 // 438. Ambiguity in the "do the right thing" clause
│ │ │ │ -
2382 template<typename _Integer>
│ │ │ │ -
2383 void
│ │ │ │ -
2384 _M_initialize_dispatch(_Integer __n, _Integer __x, __true_type)
│ │ │ │ -
2385 { _M_fill_initialize(static_cast<size_type>(__n), __x); }
│ │ │ │ -
2386
│ │ │ │ -
2387 // Called by the range constructor to implement [23.1.1]/9
│ │ │ │ -
2388 template<typename _InputIterator>
│ │ │ │ -
2389 void
│ │ │ │ -
2390 _M_initialize_dispatch(_InputIterator __first, _InputIterator __last,
│ │ │ │ -
2391 __false_type)
│ │ │ │ -
2392 {
│ │ │ │ -
2393 bool __notempty = __first != __last;
│ │ │ │ -
2394 for (; __first != __last; ++__first)
│ │ │ │ -
2395#if __cplusplus >= 201103L
│ │ │ │ -
2396 emplace_back(*__first);
│ │ │ │ -
2397#else
│ │ │ │ -
2398 push_back(*__first);
│ │ │ │ -
2399#endif
│ │ │ │ -
2400 if (__notempty)
│ │ │ │ -
2401 {
│ │ │ │ -
2402 if (begin() == end())
│ │ │ │ -
2403 __builtin_unreachable();
│ │ │ │ -
2404 }
│ │ │ │ -
2405 }
│ │ │ │ -
2406
│ │ │ │ -
2407 // Called by list(n,v,a), and the range constructor when it turns out
│ │ │ │ -
2408 // to be the same thing.
│ │ │ │ -
2409 void
│ │ │ │ -
2410 _M_fill_initialize(size_type __n, const value_type& __x)
│ │ │ │ -
2411 {
│ │ │ │ -
2412 for (; __n; --__n)
│ │ │ │ -
2413 push_back(__x);
│ │ │ │ -
2414 }
│ │ │ │ -
2415
│ │ │ │ -
2416#if __cplusplus >= 201103L
│ │ │ │ -
2417 // Called by list(n).
│ │ │ │ -
2418 void
│ │ │ │ -
2419 _M_default_initialize(size_type __n)
│ │ │ │ -
2420 {
│ │ │ │ -
2421 for (; __n; --__n)
│ │ │ │ -
2422 emplace_back();
│ │ │ │ -
2423 }
│ │ │ │ -
2424
│ │ │ │ -
2425 // Called by resize(sz).
│ │ │ │ -
2426 void
│ │ │ │ -
2427 _M_default_append(size_type __n);
│ │ │ │ -
2428#endif
│ │ │ │ -
2429
│ │ │ │ -
2430 // Internal assign functions follow.
│ │ │ │ -
2431
│ │ │ │ -
2432 // Called by the range assign to implement [23.1.1]/9
│ │ │ │ -
2433
│ │ │ │ -
2434 // _GLIBCXX_RESOLVE_LIB_DEFECTS
│ │ │ │ -
2435 // 438. Ambiguity in the "do the right thing" clause
│ │ │ │ -
2436 template<typename _Integer>
│ │ │ │ -
2437 void
│ │ │ │ -
2438 _M_assign_dispatch(_Integer __n, _Integer __val, __true_type)
│ │ │ │ -
2439 { _M_fill_assign(__n, __val); }
│ │ │ │ -
2440
│ │ │ │ -
2441 // Called by the range assign to implement [23.1.1]/9
│ │ │ │ -
2442 template<typename _InputIterator>
│ │ │ │ -
2443 void
│ │ │ │ -
2444 _M_assign_dispatch(_InputIterator __first, _InputIterator __last,
│ │ │ │ -
2445 __false_type);
│ │ │ │ -
2446
│ │ │ │ -
2447 // Called by assign(n,t), and the range assign when it turns out
│ │ │ │ -
2448 // to be the same thing.
│ │ │ │ -
2449 void
│ │ │ │ -
2450 _M_fill_assign(size_type __n, const value_type& __val);
│ │ │ │ -
2451
│ │ │ │ -
2452
│ │ │ │ -
2453 // Moves the elements from [first,last) before position.
│ │ │ │ -
2454 void
│ │ │ │ -
2455 _M_transfer(iterator __position, iterator __first, iterator __last)
│ │ │ │ -
2456 { __position._M_node->_M_transfer(__first._M_node, __last._M_node); }
│ │ │ │ -
2457
│ │ │ │ -
2458 // Inserts new element at position given and with value given.
│ │ │ │ -
2459#if __cplusplus < 201103L
│ │ │ │ -
2460 void
│ │ │ │ -
2461 _M_insert(iterator __position, const value_type& __x)
│ │ │ │ -
2462 {
│ │ │ │ -
2463 _Node_ptr __tmp = _M_create_node(__x);
│ │ │ │ -
2464 __tmp->_M_hook(__position._M_node);
│ │ │ │ -
2465 this->_M_inc_size(1);
│ │ │ │ -
2466 }
│ │ │ │ -
2467#else
│ │ │ │ -
2468 template<typename... _Args>
│ │ │ │ -
2469 void
│ │ │ │ -
2470 _M_insert(iterator __position, _Args&&... __args)
│ │ │ │ -
2471 {
│ │ │ │ -
2472 _Node_ptr __tmp = _M_create_node(std::forward<_Args>(__args)...);
│ │ │ │ -
2473 __tmp->_M_hook(__position._M_node);
│ │ │ │ -
2474 this->_M_inc_size(1);
│ │ │ │ -
2475 }
│ │ │ │ -
2476#endif
│ │ │ │ -
2477
│ │ │ │ -
2478 // Erases element at position given.
│ │ │ │ -
2479 void
│ │ │ │ -
2480 _M_erase(iterator __position) _GLIBCXX_NOEXCEPT
│ │ │ │ -
2481 {
│ │ │ │ -
2482 typedef typename _Node_traits::_Node _Node;
│ │ │ │ -
2483 this->_M_dec_size(1);
│ │ │ │ -
2484 __position._M_node->_M_unhook();
│ │ │ │ -
2485 _Node& __n = static_cast<_Node&>(*__position._M_node);
│ │ │ │ -
2486 this->_M_destroy_node(__n._M_node_ptr());
│ │ │ │ -
2487 }
│ │ │ │ -
2488
│ │ │ │ -
2489 // To implement the splice (and merge) bits of N1599.
│ │ │ │ -
2490 void
│ │ │ │ -
2491 _M_check_equal_allocators(const list& __x) _GLIBCXX_NOEXCEPT
│ │ │ │ -
2492 {
│ │ │ │ -
2493 if (_M_get_Node_allocator() != __x._M_get_Node_allocator())
│ │ │ │ -
2494 __builtin_abort();
│ │ │ │ -
2495 }
│ │ │ │ -
2496
│ │ │ │ -
2497 // Used to implement resize.
│ │ │ │ -
2498 const_iterator
│ │ │ │ -
2499 _M_resize_pos(size_type& __new_size) const;
│ │ │ │ -
2500
│ │ │ │ -
2501#if __cplusplus >= 201103L && ! _GLIBCXX_INLINE_VERSION
│ │ │ │ -
2502 // XXX GLIBCXX_ABI Deprecated
│ │ │ │ -
2503 // These are unused and only kept so that explicit instantiations will
│ │ │ │ -
2504 // continue to define the symbols.
│ │ │ │ -
2505 void
│ │ │ │ -
2506 _M_move_assign(list&& __x, true_type) noexcept
│ │ │ │ -
2507 {
│ │ │ │ -
2508 this->clear();
│ │ │ │ -
2509 this->_M_move_nodes(std::move(__x));
│ │ │ │ -
2510 std::__alloc_on_move(this->_M_get_Node_allocator(),
│ │ │ │ -
2511 __x._M_get_Node_allocator());
│ │ │ │ -
2512 }
│ │ │ │ -
2513
│ │ │ │ -
2514 void
│ │ │ │ -
2515 _M_move_assign(list&& __x, false_type)
│ │ │ │ -
2516 {
│ │ │ │ -
2517 if (__x._M_get_Node_allocator() == this->_M_get_Node_allocator())
│ │ │ │ -
2518 _M_move_assign(std::move(__x), true_type{});
│ │ │ │ -
2519 else
│ │ │ │ -
2520 // The rvalue's allocator cannot be moved, or is not equal,
│ │ │ │ -
2521 // so we need to individually move each element.
│ │ │ │ -
2522 _M_assign_dispatch(std::make_move_iterator(__x.begin()),
│ │ │ │ -
2523 std::make_move_iterator(__x.end()),
│ │ │ │ -
2524 __false_type{});
│ │ │ │ -
2525 }
│ │ │ │ -
2526#endif
│ │ │ │ -
2527
│ │ │ │ -
2528#if _GLIBCXX_USE_CXX11_ABI
│ │ │ │ -
2529 // Update _M_size members after merging (some of) __src into __dest.
│ │ │ │ -
2530 struct _Finalize_merge
│ │ │ │ -
2531 {
│ │ │ │ -
2532 explicit
│ │ │ │ -
2533 _Finalize_merge(list& __dest, list& __src, const iterator& __src_next)
│ │ │ │ -
2534 : _M_dest(__dest), _M_src(__src), _M_next(__src_next)
│ │ │ │ -
2535 { }
│ │ │ │ -
2536
│ │ │ │ -
2537 ~_Finalize_merge()
│ │ │ │ -
2538 {
│ │ │ │ -
2539 // For the common case, _M_next == _M_sec.end() and the std::distance
│ │ │ │ -
2540 // call is fast. But if any *iter1 < *iter2 comparison throws then we
│ │ │ │ -
2541 // have to count how many elements remain in _M_src.
│ │ │ │ -
2542 const size_t __num_unmerged = std::distance(_M_next, _M_src.end());
│ │ │ │ -
2543 const size_t __orig_size = _M_src._M_get_size();
│ │ │ │ -
2544 _M_dest._M_inc_size(__orig_size - __num_unmerged);
│ │ │ │ -
2545 _M_src._M_set_size(__num_unmerged);
│ │ │ │ -
2546 }
│ │ │ │ -
2547
│ │ │ │ -
2548 list& _M_dest;
│ │ │ │ -
2549 list& _M_src;
│ │ │ │ -
2550 const iterator& _M_next;
│ │ │ │ -
2551
│ │ │ │ -
2552#if __cplusplus >= 201103L
│ │ │ │ -
2553 _Finalize_merge(const _Finalize_merge&) = delete;
│ │ │ │ -
2554#endif
│ │ │ │ -
2555 };
│ │ │ │ -
2556#else
│ │ │ │ -
2557 struct _Finalize_merge
│ │ │ │ -
2558 { explicit _Finalize_merge(list&, list&, const iterator&) { } };
│ │ │ │ -
2559#endif
│ │ │ │ -
2560
│ │ │ │ -
2561#if !_GLIBCXX_INLINE_VERSION
│ │ │ │ -
2562 // XXX GLIBCXX_ABI Deprecated
│ │ │ │ -
2563 // These members are unused by std::list now, but we keep them here
│ │ │ │ -
2564 // so that an explicit instantiation of std::list will define them.
│ │ │ │ -
2565 // This ensures that any objects or libraries compiled against old
│ │ │ │ -
2566 // versions of GCC will still be able to use the symbols.
│ │ │ │ -
2567
│ │ │ │ -
2568#if _GLIBCXX_USE_CXX11_ABI
│ │ │ │ -
2569 static size_t
│ │ │ │ -
2570 _S_distance(const_iterator __first, const_iterator __last)
│ │ │ │ -
2571 { return std::distance(__first, __last); }
│ │ │ │ -
2572
│ │ │ │ -
2573 size_t
│ │ │ │ -
2574 _M_node_count() const
│ │ │ │ -
2575 { return this->_M_get_size(); }
│ │ │ │ -
2576#else
│ │ │ │ -
2577 static size_t
│ │ │ │ -
2578 _S_distance(const_iterator, const_iterator)
│ │ │ │ -
2579 { return 0; }
│ │ │ │ -
2580
│ │ │ │ -
2581 size_t
│ │ │ │ -
2582 _M_node_count() const
│ │ │ │ -
2583 { return std::distance(begin(), end()); }
│ │ │ │ -
2584#endif
│ │ │ │ -
2585#endif // ! INLINE_VERSION
│ │ │ │ -
2586 };
│ │ │ │ -
│ │ │ │ -
2587
│ │ │ │ -
2588#if __cpp_deduction_guides >= 201606
│ │ │ │ -
2589 template<typename _InputIterator, typename _ValT
│ │ │ │ -
2590 = typename iterator_traits<_InputIterator>::value_type,
│ │ │ │ -
2591 typename _Allocator = allocator<_ValT>,
│ │ │ │ -
2592 typename = _RequireInputIter<_InputIterator>,
│ │ │ │ -
2593 typename = _RequireAllocator<_Allocator>>
│ │ │ │ -
2594 list(_InputIterator, _InputIterator, _Allocator = _Allocator())
│ │ │ │ -
2595 -> list<_ValT, _Allocator>;
│ │ │ │ -
2596
│ │ │ │ -
2597#if __glibcxx_ranges_to_container // C++ >= 23
│ │ │ │ -
2598 template<ranges::input_range _Rg,
│ │ │ │ -
2599 typename _Allocator = allocator<ranges::range_value_t<_Rg>>>
│ │ │ │ -
2600 list(from_range_t, _Rg&&, _Allocator = _Allocator())
│ │ │ │ -
2601 -> list<ranges::range_value_t<_Rg>, _Allocator>;
│ │ │ │ -
2602#endif
│ │ │ │ -
2603#endif
│ │ │ │ -
2604
│ │ │ │ -
2605_GLIBCXX_END_NAMESPACE_CXX11
│ │ │ │ -
2606
│ │ │ │ -
2607 /**
│ │ │ │ -
2608 * @brief List equality comparison.
│ │ │ │ -
2609 * @param __x A %list.
│ │ │ │ -
2610 * @param __y A %list of the same type as @a __x.
│ │ │ │ -
2611 * @return True iff the size and elements of the lists are equal.
│ │ │ │ -
2612 *
│ │ │ │ -
2613 * This is an equivalence relation. It is linear in the size of
│ │ │ │ -
2614 * the lists. Lists are considered equivalent if their sizes are
│ │ │ │ -
2615 * equal, and if corresponding elements compare equal.
│ │ │ │ -
2616 */
│ │ │ │ -
2617 template<typename _Tp, typename _Alloc>
│ │ │ │ -
2618 _GLIBCXX_NODISCARD
│ │ │ │ -
2619 inline bool
│ │ │ │ -
│ │ │ │ -
2620 operator==(const list<_Tp, _Alloc>& __x, const list<_Tp, _Alloc>& __y)
│ │ │ │ -
2621 {
│ │ │ │ -
2622#if _GLIBCXX_USE_CXX11_ABI
│ │ │ │ -
2623 if (__x.size() != __y.size())
│ │ │ │ -
2624 return false;
│ │ │ │ -
2625#endif
│ │ │ │ -
2626
│ │ │ │ -
2627 typedef typename list<_Tp, _Alloc>::const_iterator const_iterator;
│ │ │ │ -
2628 const_iterator __end1 = __x.end();
│ │ │ │ -
2629 const_iterator __end2 = __y.end();
│ │ │ │ -
2630
│ │ │ │ -
2631 const_iterator __i1 = __x.begin();
│ │ │ │ -
2632 const_iterator __i2 = __y.begin();
│ │ │ │ -
2633 while (__i1 != __end1 && __i2 != __end2 && *__i1 == *__i2)
│ │ │ │ -
2634 {
│ │ │ │ -
2635 ++__i1;
│ │ │ │ -
2636 ++__i2;
│ │ │ │ -
2637 }
│ │ │ │ -
2638 return __i1 == __end1 && __i2 == __end2;
│ │ │ │ -
2639 }
│ │ │ │ -
2640
│ │ │ │ -
2641#if __cpp_lib_three_way_comparison
│ │ │ │ -
2642/**
│ │ │ │ -
2643 * @brief List ordering relation.
│ │ │ │ -
2644 * @param __x A `list`.
│ │ │ │ -
2645 * @param __y A `list` of the same type as `__x`.
│ │ │ │ -
2646 * @return A value indicating whether `__x` is less than, equal to,
│ │ │ │ -
2647 * greater than, or incomparable with `__y`.
│ │ │ │ -
2648 *
│ │ │ │ -
2649 * See `std::lexicographical_compare_three_way()` for how the determination
│ │ │ │ -
2650 * is made. This operator is used to synthesize relational operators like
│ │ │ │ -
2651 * `<` and `>=` etc.
│ │ │ │ -
2652 */
│ │ │ │ -
2653 template<typename _Tp, typename _Alloc>
│ │ │ │ -
2654 [[nodiscard]]
│ │ │ │ -
2655 inline __detail::__synth3way_t<_Tp>
│ │ │ │ -
2656 operator<=>(const list<_Tp, _Alloc>& __x, const list<_Tp, _Alloc>& __y)
│ │ │ │ -
2657 {
│ │ │ │ -
2658 return std::lexicographical_compare_three_way(__x.begin(), __x.end(),
│ │ │ │ -
2659 __y.begin(), __y.end(),
│ │ │ │ -
2660 __detail::__synth3way);
│ │ │ │ -
2661 }
│ │ │ │ -
│ │ │ │ -
2662#else
│ │ │ │ -
2663 /**
│ │ │ │ -
2664 * @brief List ordering relation.
│ │ │ │ -
2665 * @param __x A %list.
│ │ │ │ -
2666 * @param __y A %list of the same type as @a __x.
│ │ │ │ -
2667 * @return True iff @a __x is lexicographically less than @a __y.
│ │ │ │ -
2668 *
│ │ │ │ -
2669 * This is a total ordering relation. It is linear in the size of the
│ │ │ │ -
2670 * lists. The elements must be comparable with @c <.
│ │ │ │ -
2671 *
│ │ │ │ -
2672 * See std::lexicographical_compare() for how the determination is made.
│ │ │ │ -
2673 */
│ │ │ │ -
2674 template<typename _Tp, typename _Alloc>
│ │ │ │ -
2675 _GLIBCXX_NODISCARD
│ │ │ │ -
2676 inline bool
│ │ │ │ -
2677 operator<(const list<_Tp, _Alloc>& __x, const list<_Tp, _Alloc>& __y)
│ │ │ │ -
2678 { return std::lexicographical_compare(__x.begin(), __x.end(),
│ │ │ │ -
2679 __y.begin(), __y.end()); }
│ │ │ │ -
2680
│ │ │ │ -
2681 /// Based on operator==
│ │ │ │ -
2682 template<typename _Tp, typename _Alloc>
│ │ │ │ -
2683 _GLIBCXX_NODISCARD
│ │ │ │ -
2684 inline bool
│ │ │ │ -
2685 operator!=(const list<_Tp, _Alloc>& __x, const list<_Tp, _Alloc>& __y)
│ │ │ │ -
2686 { return !(__x == __y); }
│ │ │ │ -
2687
│ │ │ │ -
2688 /// Based on operator<
│ │ │ │ -
2689 template<typename _Tp, typename _Alloc>
│ │ │ │ -
2690 _GLIBCXX_NODISCARD
│ │ │ │ -
2691 inline bool
│ │ │ │ -
2692 operator>(const list<_Tp, _Alloc>& __x, const list<_Tp, _Alloc>& __y)
│ │ │ │ -
2693 { return __y < __x; }
│ │ │ │ -
2694
│ │ │ │ -
2695 /// Based on operator<
│ │ │ │ -
2696 template<typename _Tp, typename _Alloc>
│ │ │ │ -
2697 _GLIBCXX_NODISCARD
│ │ │ │ -
2698 inline bool
│ │ │ │ -
2699 operator<=(const list<_Tp, _Alloc>& __x, const list<_Tp, _Alloc>& __y)
│ │ │ │ -
2700 { return !(__y < __x); }
│ │ │ │ -
2701
│ │ │ │ -
2702 /// Based on operator<
│ │ │ │ -
2703 template<typename _Tp, typename _Alloc>
│ │ │ │ -
2704 _GLIBCXX_NODISCARD
│ │ │ │ -
2705 inline bool
│ │ │ │ -
2706 operator>=(const list<_Tp, _Alloc>& __x, const list<_Tp, _Alloc>& __y)
│ │ │ │ -
2707 { return !(__x < __y); }
│ │ │ │ -
2708#endif // three-way comparison
│ │ │ │ -
2709
│ │ │ │ -
2710 /// See std::list::swap().
│ │ │ │ -
2711 template<typename _Tp, typename _Alloc>
│ │ │ │ -
2712 inline void
│ │ │ │ -
│ │ │ │ - │ │ │ │ -
2714 _GLIBCXX_NOEXCEPT_IF(noexcept(__x.swap(__y)))
│ │ │ │ -
2715 { __x.swap(__y); }
│ │ │ │ -
│ │ │ │ -
2716
│ │ │ │ -
2717_GLIBCXX_END_NAMESPACE_CONTAINER
│ │ │ │ -
2718
│ │ │ │ -
2719#if _GLIBCXX_USE_CXX11_ABI
│ │ │ │ -
2720
│ │ │ │ -
2721 // Detect when distance is used to compute the size of the whole list.
│ │ │ │ -
2722 template<typename _Tp>
│ │ │ │ -
2723 inline ptrdiff_t
│ │ │ │ -
2724 __distance(_GLIBCXX_STD_C::_List_iterator<_Tp> __first,
│ │ │ │ -
2725 _GLIBCXX_STD_C::_List_iterator<_Tp> __last,
│ │ │ │ -
2726 input_iterator_tag __tag)
│ │ │ │ -
2727 {
│ │ │ │ -
2728 typedef _GLIBCXX_STD_C::_List_const_iterator<_Tp> _CIter;
│ │ │ │ -
2729 return std::__distance(_CIter(__first), _CIter(__last), __tag);
│ │ │ │ -
2730 }
│ │ │ │ -
2731
│ │ │ │ -
2732 template<typename _Tp>
│ │ │ │ -
2733 inline ptrdiff_t
│ │ │ │ -
2734 __distance(_GLIBCXX_STD_C::_List_const_iterator<_Tp> __first,
│ │ │ │ -
2735 _GLIBCXX_STD_C::_List_const_iterator<_Tp> __last,
│ │ │ │ -
2736 input_iterator_tag)
│ │ │ │ -
2737 {
│ │ │ │ -
2738 typedef __detail::_List_node_header _Sentinel;
│ │ │ │ -
2739 _GLIBCXX_STD_C::_List_const_iterator<_Tp> __beyond = __last;
│ │ │ │ -
2740 ++__beyond;
│ │ │ │ -
2741 const bool __whole = __first == __beyond;
│ │ │ │ -
2742 if (__builtin_constant_p (__whole) && __whole)
│ │ │ │ -
2743 return static_cast<const _Sentinel*>(__last._M_node)->_M_size;
│ │ │ │ -
2744
│ │ │ │ -
2745 ptrdiff_t __n = 0;
│ │ │ │ -
2746 while (__first != __last)
│ │ │ │ -
2747 {
│ │ │ │ -
2748 ++__first;
│ │ │ │ -
2749 ++__n;
│ │ │ │ -
2750 }
│ │ │ │ -
2751 return __n;
│ │ │ │ -
2752 }
│ │ │ │ -
2753
│ │ │ │ -
2754#if _GLIBCXX_USE_ALLOC_PTR_FOR_LIST
│ │ │ │ -
2755 template<bool _Const, typename _Ptr>
│ │ │ │ -
2756 inline ptrdiff_t
│ │ │ │ -
2757 __distance(__list::_Iterator<_Const, _Ptr> __first,
│ │ │ │ -
2758 __list::_Iterator<_Const, _Ptr> __last,
│ │ │ │ -
2759 input_iterator_tag __tag)
│ │ │ │ -
2760 {
│ │ │ │ -
2761 using _Tp = typename __list::_Iterator<_Const, _Ptr>::value_type;
│ │ │ │ -
2762 using _Sentinel = typename __list::_Node_traits<_Tp, _Ptr>::_Node_header;
│ │ │ │ -
2763 auto __beyond = __last;
│ │ │ │ -
2764 ++__beyond;
│ │ │ │ -
2765 const bool __whole = __first == __beyond;
│ │ │ │ -
2766 if (__builtin_constant_p (__whole) && __whole)
│ │ │ │ -
2767 return static_cast<const _Sentinel&>(*__last._M_node)._M_size;
│ │ │ │ -
2768
│ │ │ │ -
2769 ptrdiff_t __n = 0;
│ │ │ │ -
2770 while (__first != __last)
│ │ │ │ -
2771 {
│ │ │ │ -
2772 ++__first;
│ │ │ │ -
2773 ++__n;
│ │ │ │ -
2774 }
│ │ │ │ -
2775 return __n;
│ │ │ │ -
2776 }
│ │ │ │ -
2777#endif
│ │ │ │ -
2778#endif
│ │ │ │ -
2779
│ │ │ │ -
2780#if _GLIBCXX_USE_ALLOC_PTR_FOR_LIST
│ │ │ │ -
2781namespace __list
│ │ │ │ -
2782{
│ │ │ │ -
2783 template<typename _VoidPtr>
│ │ │ │ -
2784 void
│ │ │ │ -
2785 _Node_base<_VoidPtr>::swap(_Node_base& __x, _Node_base& __y) noexcept
│ │ │ │ -
2786 {
│ │ │ │ -
2787 auto __px = __x._M_base();
│ │ │ │ -
2788 auto __py = __x._M_base();
│ │ │ │ -
2789
│ │ │ │ -
2790 if (__x._M_next != __px)
│ │ │ │ -
2791 {
│ │ │ │ -
2792 if (__y._M_next != __py)
│ │ │ │ -
2793 {
│ │ │ │ -
2794 using std::swap;
│ │ │ │ -
2795 // Both __x and __y are not empty.
│ │ │ │ -
2796 swap(__x._M_next,__y._M_next);
│ │ │ │ -
2797 swap(__x._M_prev,__y._M_prev);
│ │ │ │ -
2798 __x._M_next->_M_prev = __x._M_prev->_M_next = __px;
│ │ │ │ -
2799 __y._M_next->_M_prev = __y._M_prev->_M_next = __py;
│ │ │ │ -
2800 }
│ │ │ │ -
2801 else
│ │ │ │ -
2802 {
│ │ │ │ -
2803 // __x is not empty, __y is empty.
│ │ │ │ -
2804 __y._M_next = __x._M_next;
│ │ │ │ -
2805 __y._M_prev = __x._M_prev;
│ │ │ │ -
2806 __y._M_next->_M_prev = __y._M_prev->_M_next = __py;
│ │ │ │ -
2807 __x._M_next = __x._M_prev = __px;
│ │ │ │ -
2808 }
│ │ │ │ -
2809 }
│ │ │ │ -
2810 else if (__y._M_next != __py)
│ │ │ │ -
2811 {
│ │ │ │ -
2812 // __x is empty, __y is not empty.
│ │ │ │ -
2813 __x._M_next = __y._M_next;
│ │ │ │ -
2814 __x._M_prev = __y._M_prev;
│ │ │ │ -
2815 __x._M_next->_M_prev = __x._M_prev->_M_next = __px;
│ │ │ │ -
2816 __y._M_next = __y._M_prev = __py;
│ │ │ │ -
2817 }
│ │ │ │ -
2818 }
│ │ │ │ -
2819
│ │ │ │ -
2820 template<typename _VoidPtr>
│ │ │ │ -
2821 void
│ │ │ │ -
2822 _Node_base<_VoidPtr>::_M_transfer(_Base_ptr const __first,
│ │ │ │ -
2823 _Base_ptr const __last) noexcept
│ │ │ │ -
2824 {
│ │ │ │ -
2825 __glibcxx_assert(__first != __last);
│ │ │ │ -
2826
│ │ │ │ -
2827 auto __self = _M_base();
│ │ │ │ -
2828 if (__self != __last)
│ │ │ │ -
2829 {
│ │ │ │ -
2830 // Remove [first, last) from its old position.
│ │ │ │ -
2831 __last->_M_prev->_M_next = __self;
│ │ │ │ -
2832 __first->_M_prev->_M_next = __last;
│ │ │ │ -
2833 this->_M_prev->_M_next = __first;
│ │ │ │ -
2834
│ │ │ │ -
2835 // Splice [first, last) into its new position.
│ │ │ │ -
2836 auto const __tmp = this->_M_prev;
│ │ │ │ -
2837 this->_M_prev = __last->_M_prev;
│ │ │ │ -
2838 __last->_M_prev = __first->_M_prev;
│ │ │ │ -
2839 __first->_M_prev = __tmp;
│ │ │ │ -
2840 }
│ │ │ │ -
2841 }
│ │ │ │ -
2842
│ │ │ │ -
2843 template<typename _VoidPtr>
│ │ │ │ -
2844 void
│ │ │ │ -
2845 _Node_header<_VoidPtr>::_M_reverse() noexcept
│ │ │ │ -
2846 {
│ │ │ │ -
2847 const auto __self = this->_M_base();
│ │ │ │ -
2848 auto __tmp = __self;
│ │ │ │ -
2849 do
│ │ │ │ -
2850 {
│ │ │ │ -
2851 using std::swap;
│ │ │ │ -
2852 swap(__tmp->_M_next, __tmp->_M_prev);
│ │ │ │ -
2853
│ │ │ │ -
2854 // Old next node is now prev.
│ │ │ │ -
2855 __tmp = __tmp->_M_prev;
│ │ │ │ -
2856 }
│ │ │ │ -
2857 while (__tmp != __self);
│ │ │ │ -
2858 }
│ │ │ │ -
2859} // namespace __list
│ │ │ │ -
2860#endif
│ │ │ │ -
2861
│ │ │ │ -
2862_GLIBCXX_END_NAMESPACE_VERSION
│ │ │ │ -
2863} // namespace std
│ │ │ │ -
2864
│ │ │ │ -
2865#endif /* _STL_LIST_H */
│ │ │ │ - │ │ │ │ - │ │ │ │ - │ │ │ │ - │ │ │ │ - │ │ │ │ - │ │ │ │ - │ │ │ │ - │ │ │ │ -
constexpr bool operator<=(const duration< _Rep1, _Period1 > &__lhs, const duration< _Rep2, _Period2 > &__rhs)
Definition chrono.h:859
│ │ │ │ -
constexpr bool operator>=(const duration< _Rep1, _Period1 > &__lhs, const duration< _Rep2, _Period2 > &__rhs)
Definition chrono.h:873
│ │ │ │ -
constexpr bool operator<(const duration< _Rep1, _Period1 > &__lhs, const duration< _Rep2, _Period2 > &__rhs)
Definition chrono.h:826
│ │ │ │ -
constexpr bool operator>(const duration< _Rep1, _Period1 > &__lhs, const duration< _Rep2, _Period2 > &__rhs)
Definition chrono.h:866
│ │ │ │ -
constexpr complex< _Tp > operator*(const complex< _Tp > &__x, const complex< _Tp > &__y)
Return new complex value x times y.
Definition complex:434
│ │ │ │ -
constexpr std::remove_reference< _Tp >::type && move(_Tp &&__t) noexcept
Convert a value to an rvalue.
Definition move.h:138
│ │ │ │ -
constexpr _Tp * __addressof(_Tp &__r) noexcept
Same as C++11 std::addressof.
Definition move.h:52
│ │ │ │ -
_Tp * end(valarray< _Tp > &__va) noexcept
Return an iterator pointing to one past the last element of the valarray.
Definition valarray:1251
│ │ │ │ -
_Tp * begin(valarray< _Tp > &__va) noexcept
Return an iterator pointing to the first element of the valarray.
Definition valarray:1229
│ │ │ │ -
constexpr auto lexicographical_compare_three_way(_InputIter1 __first1, _InputIter1 __last1, _InputIter2 __first2, _InputIter2 __last2, _Comp __comp) -> decltype(__comp(*__first1, *__first2))
Performs dictionary comparison on ranges.
│ │ │ │ +
261 ostream_iterator&
│ │ │ │ +
262 operator++() _GLIBCXX_NOEXCEPT
│ │ │ │ +
263 { return *this; }
│ │ │ │ +
264
│ │ │ │ + │ │ │ │ +
266 operator++(int) _GLIBCXX_NOEXCEPT
│ │ │ │ +
267 { return *this; }
│ │ │ │ +
268 };
│ │ │ │ +
│ │ │ │ +
269#pragma GCC diagnostic pop
│ │ │ │ +
270
│ │ │ │ +
271 /// @} group iterators
│ │ │ │ +
272
│ │ │ │ +
273_GLIBCXX_END_NAMESPACE_VERSION
│ │ │ │ +
274} // namespace
│ │ │ │ +
275
│ │ │ │ +
276#endif
│ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ +
constexpr _Tp * __addressof(_Tp &__r) noexcept
Same as C++11 std::addressof.
Definition move.h:52
│ │ │ │
ISO C++ entities toplevel namespace is std.
│ │ │ │ -
typename pointer_traits< _Ptr >::template rebind< _Tp > __ptr_rebind
Convenience alias for rebinding pointers.
Definition ptr_traits.h:201
│ │ │ │ -
constexpr iterator_traits< _InputIterator >::difference_type distance(_InputIterator __first, _InputIterator __last)
A generalization of pointer arithmetic.
│ │ │ │ -
constexpr auto empty(const _Container &__cont) noexcept(noexcept(__cont.empty())) -> decltype(__cont.empty())
Return whether a container is empty.
│ │ │ │ -
initializer_list
│ │ │ │ - │ │ │ │ +
Template class basic_istream.
Definition istream:63
│ │ │ │ +
Template class basic_ostream.
Definition ostream.h:67
│ │ │ │
is_nothrow_default_constructible
Definition type_traits:1245
│ │ │ │ -
is_trivially_destructible
Definition type_traits:1459
│ │ │ │ -
Uniform interface to all pointer-like types.
Definition ptr_traits.h:178
│ │ │ │ -
The ranges::subrange class template.
│ │ │ │ - │ │ │ │ -
A list::iterator.
Definition stl_list.h:575
│ │ │ │ -
A list::const_iterator.
Definition stl_list.h:661
│ │ │ │ -
Bidirectional iterators support a superset of forward iterator operations.
│ │ │ │ -
Common iterator class.
│ │ │ │ -
Common part of a node in the list.
Definition stl_list.h:95
│ │ │ │ -
The list node header.
Definition stl_list.h:131
│ │ │ │ -
A standard container with linear time access to elements, and fixed time insertion/deletion at any po...
Definition stl_list.h:1026
│ │ │ │ -
void splice(const_iterator __position, list &&__x, const_iterator __i) noexcept
Insert element from another list.
Definition stl_list.h:2138
│ │ │ │ -
list(list &&)=default
List move constructor.
│ │ │ │ -
void push_back(const value_type &__x)
Add data to the end of the list.
Definition stl_list.h:1803
│ │ │ │ -
iterator begin() noexcept
Definition stl_list.h:1457
│ │ │ │ -
list & operator=(list &&__x) noexcept(_Node_alloc_traits::_S_nothrow_move())
List move assignment operator.
Definition stl_list.h:1318
│ │ │ │ -
iterator insert(const_iterator __position, value_type &&__x)
Inserts given value into list before specified iterator.
Definition stl_list.h:1880
│ │ │ │ -
allocator_type get_allocator() const noexcept
Get a copy of the memory allocation object.
Definition stl_list.h:1447
│ │ │ │ -
void assign(initializer_list< value_type > __l)
Assigns an initializer_list to a list.
Definition stl_list.h:1441
│ │ │ │ -
const_iterator end() const noexcept
Definition stl_list.h:1487
│ │ │ │ -
const_reverse_iterator rbegin() const noexcept
Definition stl_list.h:1507
│ │ │ │ -
list(size_type __n, const allocator_type &__a=allocator_type())
Creates a list with default constructed elements.
Definition stl_list.h:1143
│ │ │ │ -
reverse_iterator rend() noexcept
Definition stl_list.h:1517
│ │ │ │ -
void pop_back() noexcept
Removes last element.
Definition stl_list.h:1838
│ │ │ │ -
void push_front(const value_type &__x)
Add data to the front of the list.
Definition stl_list.h:1706
│ │ │ │ -
size_type size() const noexcept
Definition stl_list.h:1586
│ │ │ │ -
const_reference front() const noexcept
Definition stl_list.h:1660
│ │ │ │ -
_Node_ptr _M_create_node(_Args &&... __args)
Definition stl_list.h:1102
│ │ │ │ -
void splice(const_iterator __position, list &__x, const_iterator __first, const_iterator __last) noexcept
Insert range from another list.
Definition stl_list.h:2220
│ │ │ │ -
~list()=default
│ │ │ │ -
void assign(_InputIterator __first, _InputIterator __last)
Assigns a range to a list.
Definition stl_list.h:1419
│ │ │ │ -
const_iterator cend() const noexcept
Definition stl_list.h:1548
│ │ │ │ -
list(const allocator_type &__a) noexcept
Creates a list with no elements.
Definition stl_list.h:1130
│ │ │ │ -
void reverse() noexcept
Reverse the elements in list.
Definition stl_list.h:2353
│ │ │ │ -
list & operator=(initializer_list< value_type > __l)
List initializer list assignment operator.
Definition stl_list.h:1356
│ │ │ │ -
reverse_iterator rbegin() noexcept
Definition stl_list.h:1497
│ │ │ │ -
list()=default
Creates a list with no elements.
│ │ │ │ -
iterator erase(const_iterator __first, const_iterator __last) noexcept
Remove a range of elements.
Definition stl_list.h:2040
│ │ │ │ -
reference back() noexcept
Definition stl_list.h:1672
│ │ │ │ -
void assign(size_type __n, const value_type &__val)
Assigns a given value to a list.
Definition stl_list.h:1400
│ │ │ │ -
void splice(const_iterator __position, list &&__x, const_iterator __first, const_iterator __last) noexcept
Insert range from another list.
Definition stl_list.h:2180
│ │ │ │ -
void splice(const_iterator __position, list &__x, const_iterator __i) noexcept
Insert element from another list.
Definition stl_list.h:2161
│ │ │ │ -
const_iterator cbegin() const noexcept
Definition stl_list.h:1538
│ │ │ │ -
const_reverse_iterator crbegin() const noexcept
Definition stl_list.h:1558
│ │ │ │ -
iterator end() noexcept
Definition stl_list.h:1477
│ │ │ │ -
list(initializer_list< value_type > __l, const allocator_type &__a=allocator_type())
Builds a list from an initializer_list.
Definition stl_list.h:1205
│ │ │ │ -
size_type max_size() const noexcept
Definition stl_list.h:1598
│ │ │ │ -
const_reference back() const noexcept
Definition stl_list.h:1686
│ │ │ │ -
list(size_type __n, const value_type &__value, const allocator_type &__a=allocator_type())
Creates a list with copies of an exemplar element.
Definition stl_list.h:1155
│ │ │ │ -
const_iterator begin() const noexcept
Definition stl_list.h:1467
│ │ │ │ -
reference front() noexcept
Definition stl_list.h:1648
│ │ │ │ -
void pop_front() noexcept
Removes first element.
Definition stl_list.h:1786
│ │ │ │ -
list(_InputIterator __first, _InputIterator __last, const allocator_type &__a=allocator_type())
Builds a list from a range.
Definition stl_list.h:1250
│ │ │ │ -
void splice(const_iterator __position, list &&__x) noexcept
Insert contents of another list.
Definition stl_list.h:2102
│ │ │ │ -
void clear() noexcept
Definition stl_list.h:2082
│ │ │ │ -
list(const list &__x)
List copy constructor.
Definition stl_list.h:1182
│ │ │ │ -
const_reverse_iterator rend() const noexcept
Definition stl_list.h:1527
│ │ │ │ -
bool empty() const noexcept
Definition stl_list.h:1578
│ │ │ │ -
iterator insert(const_iterator __p, initializer_list< value_type > __l)
Inserts the contents of an initializer_list into list before specified const_iterator.
Definition stl_list.h:1905
│ │ │ │ -
const_reverse_iterator crend() const noexcept
Definition stl_list.h:1568
│ │ │ │ -
void swap(list &__x) noexcept
Swaps data with another list.
Definition stl_list.h:2062
│ │ │ │ -
An actual node in the list.
Definition stl_list.h:552
│ │ │ │ -
See bits/stl_deque.h's _Deque_base for an explanation.
Definition stl_list.h:749
│ │ │ │ -
Uniform interface to C++98 and C++11 allocators.
│ │ │ │ - │ │ │ │ +
is_nothrow_copy_constructible
Definition type_traits:1254
│ │ │ │ +
Common iterator class.
│ │ │ │ +
Provides input iterator semantics for streams.
│ │ │ │ +
istream_iterator(istream_type &__s)
Construct start of input stream iterator.
│ │ │ │ +
constexpr istream_iterator() noexcept(/*conditional */)
Construct end of input stream iterator.
│ │ │ │ +
friend bool operator==(const istream_iterator &__x, const istream_iterator &__y) noexcept
Return true if the iterators refer to the same stream, or are both at end-of-stream.
│ │ │ │ +
Provides output iterator semantics for streams.
│ │ │ │ +
_CharT char_type
Public typedef.
│ │ │ │ +
ostream_iterator(ostream_type &__s) noexcept
Construct from an ostream.
│ │ │ │ +
ostream_iterator(ostream_type &__s, const _CharT *__c) noexcept
│ │ │ │ +
_Traits traits_type
Public typedef.
│ │ │ │ +
ostream_iterator & operator=(const _Tp &__value)
Writes value to underlying ostream using operator<<. If constructed with delimiter string,...
│ │ │ │ +
ptrdiff_t difference_type
Public typedef.
│ │ │ │ +
basic_ostream< _CharT, _Traits > ostream_type
Public typedef.
│ │ │ │ +
ostream_iterator(const ostream_iterator &__obj) noexcept
Copy constructor.
│ │ │ │
│ │ │ │
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├── html2text {} │ │ │ │ │ @@ -1,3171 +1,359 @@ │ │ │ │ │ libstdc++ │ │ │ │ │ -stl_list.h │ │ │ │ │ +stream_iterator.h │ │ │ │ │ _G_o_ _t_o_ _t_h_e_ _d_o_c_u_m_e_n_t_a_t_i_o_n_ _o_f_ _t_h_i_s_ _f_i_l_e_. │ │ │ │ │ -1// List implementation -*- C++ -*- │ │ │ │ │ +1// Stream iterators │ │ │ │ │ 2 │ │ │ │ │ 3// Copyright (C) 2001-2025 Free Software Foundation, Inc. │ │ │ │ │ -4// Copyright The GNU Toolchain Authors. │ │ │ │ │ -5// │ │ │ │ │ -6// This file is part of the GNU ISO C++ Library. This library is free │ │ │ │ │ -7// software; you can redistribute it and/or modify it under the │ │ │ │ │ -8// terms of the GNU General Public License as published by the │ │ │ │ │ -9// Free Software Foundation; either version 3, or (at your option) │ │ │ │ │ -10// any later version. │ │ │ │ │ -11 │ │ │ │ │ -12// This library is distributed in the hope that it will be useful, │ │ │ │ │ -13// but WITHOUT ANY WARRANTY; without even the implied warranty of │ │ │ │ │ -14// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the │ │ │ │ │ -15// GNU General Public License for more details. │ │ │ │ │ -16 │ │ │ │ │ -17// Under Section 7 of GPL version 3, you are granted additional │ │ │ │ │ -18// permissions described in the GCC Runtime Library Exception, version │ │ │ │ │ -19// 3.1, as published by the Free Software Foundation. │ │ │ │ │ -20 │ │ │ │ │ -21// You should have received a copy of the GNU General Public License and │ │ │ │ │ -22// a copy of the GCC Runtime Library Exception along with this program; │ │ │ │ │ -23// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see │ │ │ │ │ -24// . │ │ │ │ │ -25 │ │ │ │ │ -26/* │ │ │ │ │ -27 * │ │ │ │ │ -28 * Copyright (c) 1994 │ │ │ │ │ -29 * Hewlett-Packard Company │ │ │ │ │ -30 * │ │ │ │ │ -31 * Permission to use, copy, modify, distribute and sell this software │ │ │ │ │ -32 * and its documentation for any purpose is hereby granted without fee, │ │ │ │ │ -33 * provided that the above copyright notice appear in all copies and │ │ │ │ │ -34 * that both that copyright notice and this permission notice appear │ │ │ │ │ -35 * in supporting documentation. Hewlett-Packard Company makes no │ │ │ │ │ -36 * representations about the suitability of this software for any │ │ │ │ │ -37 * purpose. It is provided "as is" without express or implied warranty. │ │ │ │ │ -38 * │ │ │ │ │ -39 * │ │ │ │ │ -40 * Copyright (c) 1996,1997 │ │ │ │ │ -41 * Silicon Graphics Computer Systems, Inc. │ │ │ │ │ -42 * │ │ │ │ │ -43 * Permission to use, copy, modify, distribute and sell this software │ │ │ │ │ -44 * and its documentation for any purpose is hereby granted without fee, │ │ │ │ │ -45 * provided that the above copyright notice appear in all copies and │ │ │ │ │ -46 * that both that copyright notice and this permission notice appear │ │ │ │ │ -47 * in supporting documentation. Silicon Graphics makes no │ │ │ │ │ -48 * representations about the suitability of this software for any │ │ │ │ │ -49 * purpose. It is provided "as is" without express or implied warranty. │ │ │ │ │ -50 */ │ │ │ │ │ -51 │ │ │ │ │ -52/** @file bits/stl_list.h │ │ │ │ │ -53 * This is an internal header file, included by other library headers. │ │ │ │ │ -54 * Do not attempt to use it directly. @headername{list} │ │ │ │ │ -55 */ │ │ │ │ │ -56 │ │ │ │ │ -57#ifndef _STL_LIST_H │ │ │ │ │ -58#define _STL_LIST_H 1 │ │ │ │ │ -59 │ │ │ │ │ -60#include <_b_i_t_s_/_c_o_n_c_e_p_t___c_h_e_c_k_._h> │ │ │ │ │ -61#include <_e_x_t_/_a_l_l_o_c___t_r_a_i_t_s_._h> │ │ │ │ │ -62#include <_d_e_b_u_g_/_a_s_s_e_r_t_i_o_n_s_._h> │ │ │ │ │ -63#if __cplusplus >= 201103L │ │ │ │ │ -64#include <_i_n_i_t_i_a_l_i_z_e_r___l_i_s_t> │ │ │ │ │ -65#include <_b_i_t_s_/_a_l_l_o_c_a_t_e_d___p_t_r_._h> │ │ │ │ │ -66#include <_b_i_t_s_/_p_t_r___t_r_a_i_t_s_._h> │ │ │ │ │ -67#include <_e_x_t_/_a_l_i_g_n_e_d___b_u_f_f_e_r_._h> │ │ │ │ │ -68#endif │ │ │ │ │ -69#if __glibcxx_ranges_to_container // C++ >= 23 │ │ │ │ │ -70# include <_b_i_t_s_/_r_a_n_g_e_s___b_a_s_e_._h> // ranges::begin, ranges::distance etc. │ │ │ │ │ -71# include <_b_i_t_s_/_r_a_n_g_e_s___u_t_i_l_._h> // ranges::subrange │ │ │ │ │ -72#endif │ │ │ │ │ +4// │ │ │ │ │ +5// This file is part of the GNU ISO C++ Library. This library is free │ │ │ │ │ +6// software; you can redistribute it and/or modify it under the │ │ │ │ │ +7// terms of the GNU General Public License as published by the │ │ │ │ │ +8// Free Software Foundation; either version 3, or (at your option) │ │ │ │ │ +9// any later version. │ │ │ │ │ +10 │ │ │ │ │ +11// This library is distributed in the hope that it will be useful, │ │ │ │ │ +12// but WITHOUT ANY WARRANTY; without even the implied warranty of │ │ │ │ │ +13// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the │ │ │ │ │ +14// GNU General Public License for more details. │ │ │ │ │ +15 │ │ │ │ │ +16// Under Section 7 of GPL version 3, you are granted additional │ │ │ │ │ +17// permissions described in the GCC Runtime Library Exception, version │ │ │ │ │ +18// 3.1, as published by the Free Software Foundation. │ │ │ │ │ +19 │ │ │ │ │ +20// You should have received a copy of the GNU General Public License and │ │ │ │ │ +21// a copy of the GCC Runtime Library Exception along with this program; │ │ │ │ │ +22// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see │ │ │ │ │ +23// . │ │ │ │ │ +24 │ │ │ │ │ +25/** @file bits/stream_iterator.h │ │ │ │ │ +26 * This is an internal header file, included by other library headers. │ │ │ │ │ +27 * Do not attempt to use it directly. @headername{iterator} │ │ │ │ │ +28 */ │ │ │ │ │ +29 │ │ │ │ │ +30#ifndef _STREAM_ITERATOR_H │ │ │ │ │ +31#define _STREAM_ITERATOR_H 1 │ │ │ │ │ +32 │ │ │ │ │ +33#ifdef _GLIBCXX_SYSHDR │ │ │ │ │ +34#pragma GCC system_header │ │ │ │ │ +35#endif │ │ │ │ │ +36 │ │ │ │ │ +37#include <_i_o_s_f_w_d> │ │ │ │ │ +38#include <_b_i_t_s_/_m_o_v_e_._h> │ │ │ │ │ +39#include <_b_i_t_s_/_s_t_l___i_t_e_r_a_t_o_r___b_a_s_e___t_y_p_e_s_._h> │ │ │ │ │ +40#include <_d_e_b_u_g_/_d_e_b_u_g_._h> │ │ │ │ │ +41 │ │ │ │ │ +42namespace _s_t_d _GLIBCXX_VISIBILITY(default) │ │ │ │ │ +43{ │ │ │ │ │ +44_GLIBCXX_BEGIN_NAMESPACE_VERSION │ │ │ │ │ +45 │ │ │ │ │ +46 /** │ │ │ │ │ +47 * @addtogroup iterators │ │ │ │ │ +48 * @{ │ │ │ │ │ +49 */ │ │ │ │ │ +50 │ │ │ │ │ +51// Ignore warnings about std::iterator. │ │ │ │ │ +52#pragma GCC diagnostic push │ │ │ │ │ +53#pragma GCC diagnostic ignored "-Wdeprecated-declarations" │ │ │ │ │ +54 │ │ │ │ │ +55 /// Provides input iterator semantics for streams. │ │ │ │ │ +56 template, typename _Dist = ptrdiff_t> │ │ │ │ │ +_5_8 class _i_s_t_r_e_a_m___i_t_e_r_a_t_o_r │ │ │ │ │ +59 : public _i_t_e_r_a_t_o_r │ │ │ │ │ +60 { │ │ │ │ │ +61 public: │ │ │ │ │ +62 typedef _CharT char_type; │ │ │ │ │ +63 typedef _Traits traits_type; │ │ │ │ │ +64 typedef _b_a_s_i_c___i_s_t_r_e_a_m_<___C_h_a_r_T_,_ ___T_r_a_i_t_s_> istream_type; │ │ │ │ │ +65 │ │ │ │ │ +66 private: │ │ │ │ │ +67 istream_type* _M_stream; │ │ │ │ │ +68 _Tp _M_value; │ │ │ │ │ +69 // This bool becomes false at end-of-stream. It should be sufficient to │ │ │ │ │ +70 // check _M_stream != nullptr instead, but historically we did not set │ │ │ │ │ +71 // _M_stream to null when reaching the end, so we need to keep this flag. │ │ │ │ │ +72 bool _M_ok; │ │ │ │ │ 73 │ │ │ │ │ -74#if __cplusplus < 201103L │ │ │ │ │ -75# undef _GLIBCXX_USE_ALLOC_PTR_FOR_LIST │ │ │ │ │ -76# define _GLIBCXX_USE_ALLOC_PTR_FOR_LIST 0 │ │ │ │ │ -77#elif ! defined _GLIBCXX_USE_ALLOC_PTR_FOR_LIST │ │ │ │ │ -78# define _GLIBCXX_USE_ALLOC_PTR_FOR_LIST 1 │ │ │ │ │ -79#endif │ │ │ │ │ -80 │ │ │ │ │ -81namespace _s_t_d _GLIBCXX_VISIBILITY(default) │ │ │ │ │ -82{ │ │ │ │ │ -83_GLIBCXX_BEGIN_NAMESPACE_VERSION │ │ │ │ │ +74 public: │ │ │ │ │ +75 /// Construct end of input stream iterator. │ │ │ │ │ +_7_6 _GLIBCXX_CONSTEXPR _i_s_t_r_e_a_m___i_t_e_r_a_t_o_r() │ │ │ │ │ +77 _GLIBCXX_NOEXCEPT_IF(_i_s___n_o_t_h_r_o_w___d_e_f_a_u_l_t___c_o_n_s_t_r_u_c_t_i_b_l_e<_Tp>::value) │ │ │ │ │ +78 : _M_stream(0), _M_value(), _M_ok(false) {} │ │ │ │ │ +79 │ │ │ │ │ +80 /// Construct start of input stream iterator. │ │ │ │ │ +_8_1 _i_s_t_r_e_a_m___i_t_e_r_a_t_o_r(istream_type& __s) │ │ │ │ │ +82 : _M_stream(_s_t_d::_____a_d_d_r_e_s_s_o_f(__s)), _M_ok(true) │ │ │ │ │ +83 { _M_read(); } │ │ │ │ │ 84 │ │ │ │ │ -85 namespace __detail │ │ │ │ │ -86 { │ │ │ │ │ -87 // Supporting structures are split into common and templated │ │ │ │ │ -88 // types; the latter publicly inherits from the former in an │ │ │ │ │ -89 // effort to reduce code duplication. This results in some │ │ │ │ │ -90 // "needless" static_cast'ing later on, but it's all safe │ │ │ │ │ -91 // downcasting. │ │ │ │ │ -92 │ │ │ │ │ -93 /// Common part of a node in the %list. │ │ │ │ │ -_9_4 struct ___L_i_s_t___n_o_d_e___b_a_s_e │ │ │ │ │ -95 { │ │ │ │ │ -96 typedef ___L_i_s_t___n_o_d_e___b_a_s_e* ___B_a_s_e___p_t_r; │ │ │ │ │ -97 │ │ │ │ │ -98 ___L_i_s_t___n_o_d_e___b_a_s_e* _M_next; │ │ │ │ │ -99 ___L_i_s_t___n_o_d_e___b_a_s_e* _M_prev; │ │ │ │ │ -100 │ │ │ │ │ -101 static void │ │ │ │ │ -102 swap(___L_i_s_t___n_o_d_e___b_a_s_e& __x, ___L_i_s_t___n_o_d_e___b_a_s_e& __y) _GLIBCXX_USE_NOEXCEPT; │ │ │ │ │ +85 _GLIBCXX_CONSTEXPR │ │ │ │ │ +86 _i_s_t_r_e_a_m___i_t_e_r_a_t_o_r(const _i_s_t_r_e_a_m___i_t_e_r_a_t_o_r& __obj) │ │ │ │ │ +87 _GLIBCXX_NOEXCEPT_IF(_i_s___n_o_t_h_r_o_w___c_o_p_y___c_o_n_s_t_r_u_c_t_i_b_l_e_<___T_p_>_:_:_v_a_l_u_e) │ │ │ │ │ +88 : _M_stream(__obj._M_stream), _M_value(__obj._M_value), │ │ │ │ │ +89 _M_ok(__obj._M_ok) │ │ │ │ │ +90 { } │ │ │ │ │ +91 │ │ │ │ │ +92#if __cplusplus > 201703L && __cpp_lib_concepts │ │ │ │ │ +93 constexpr │ │ │ │ │ +94 _i_s_t_r_e_a_m___i_t_e_r_a_t_o_r(default_sentinel_t) │ │ │ │ │ +95 noexcept(is_nothrow_default_constructible_v<_Tp>) │ │ │ │ │ +96 : _i_s_t_r_e_a_m___i_t_e_r_a_t_o_r() { } │ │ │ │ │ +97#endif │ │ │ │ │ +98 │ │ │ │ │ +99#if __cplusplus >= 201103L │ │ │ │ │ +100 _i_s_t_r_e_a_m___i_t_e_r_a_t_o_r& operator=(const _i_s_t_r_e_a_m___i_t_e_r_a_t_o_r&) = default; │ │ │ │ │ +101 ~istream_iterator() = default; │ │ │ │ │ +102#endif │ │ │ │ │ 103 │ │ │ │ │ -104 void │ │ │ │ │ -105 _M_transfer(___L_i_s_t___n_o_d_e___b_a_s_e* const __first, │ │ │ │ │ -106 ___L_i_s_t___n_o_d_e___b_a_s_e* const __last) _GLIBCXX_USE_NOEXCEPT; │ │ │ │ │ -107 │ │ │ │ │ -108 void │ │ │ │ │ -109 _M_reverse() _GLIBCXX_USE_NOEXCEPT; │ │ │ │ │ -110 │ │ │ │ │ -111 void │ │ │ │ │ -112 _M_hook(___L_i_s_t___n_o_d_e___b_a_s_e* const __position) _GLIBCXX_USE_NOEXCEPT; │ │ │ │ │ +104 _GLIBCXX_NODISCARD │ │ │ │ │ +105 const _Tp& │ │ │ │ │ +106 operator*() const _GLIBCXX_NOEXCEPT │ │ │ │ │ +107 { │ │ │ │ │ +108 __glibcxx_requires_cond(_M_ok, │ │ │ │ │ +109 _M_message(__gnu_debug::__msg_deref_istream) │ │ │ │ │ +110 ._M_iterator(*this)); │ │ │ │ │ +111 return _M_value; │ │ │ │ │ +112 } │ │ │ │ │ 113 │ │ │ │ │ -114 void │ │ │ │ │ -115 _M_unhook() _GLIBCXX_USE_NOEXCEPT; │ │ │ │ │ -116 │ │ │ │ │ -117 ___L_i_s_t___n_o_d_e___b_a_s_e* _M_base() { return this; } │ │ │ │ │ -118 const ___L_i_s_t___n_o_d_e___b_a_s_e* _M_base() const { return this; } │ │ │ │ │ -119 }; │ │ │ │ │ -120 │ │ │ │ │ -121 struct _List_size │ │ │ │ │ -122 { │ │ │ │ │ -123#if _GLIBCXX_USE_CXX11_ABI │ │ │ │ │ -124 // Store the size here so that std::list::size() is fast. │ │ │ │ │ -125 size_t _M_size; │ │ │ │ │ -126#endif │ │ │ │ │ -127 }; │ │ │ │ │ +114 _GLIBCXX_NODISCARD │ │ │ │ │ +115 const _Tp* │ │ │ │ │ +116 operator->() const _GLIBCXX_NOEXCEPT │ │ │ │ │ +117 { return _s_t_d_:_:_____a_d_d_r_e_s_s_o_f((operator*())); } │ │ │ │ │ +118 │ │ │ │ │ +119 _i_s_t_r_e_a_m___i_t_e_r_a_t_o_r& │ │ │ │ │ +120 operator++() │ │ │ │ │ +121 { │ │ │ │ │ +122 __glibcxx_requires_cond(_M_ok, │ │ │ │ │ +123 _M_message(__gnu_debug::__msg_inc_istream) │ │ │ │ │ +124 ._M_iterator(*this)); │ │ │ │ │ +125 _M_read(); │ │ │ │ │ +126 return *this; │ │ │ │ │ +127 } │ │ │ │ │ 128 │ │ │ │ │ -129 /// The %list node header. │ │ │ │ │ -_1_3_0 struct ___L_i_s_t___n_o_d_e___h_e_a_d_e_r : public ___L_i_s_t___n_o_d_e___b_a_s_e, _List_size │ │ │ │ │ +129 _i_s_t_r_e_a_m___i_t_e_r_a_t_o_r │ │ │ │ │ +130 operator++(int) │ │ │ │ │ 131 { │ │ │ │ │ -132 ___L_i_s_t___n_o_d_e___h_e_a_d_e_r() _GLIBCXX_NOEXCEPT │ │ │ │ │ -133 { _M_init(); } │ │ │ │ │ -134 │ │ │ │ │ -135#if __cplusplus >= 201103L │ │ │ │ │ -136 ___L_i_s_t___n_o_d_e___h_e_a_d_e_r(___L_i_s_t___n_o_d_e___h_e_a_d_e_r&& __x) noexcept │ │ │ │ │ -137 : ___L_i_s_t___n_o_d_e___b_a_s_e(__x), _List_size(__x) │ │ │ │ │ -138 { │ │ │ │ │ -139 if (__x._M_base()->_M_next == __x._M_base()) │ │ │ │ │ -140 this->_M_next = this->_M_prev = this; │ │ │ │ │ -141 else │ │ │ │ │ -142 { │ │ │ │ │ -143 this->_M_next->_M_prev = this->_M_prev->_M_next = this->_M_base(); │ │ │ │ │ -144 __x._M_init(); │ │ │ │ │ -145 } │ │ │ │ │ -146 } │ │ │ │ │ -147 │ │ │ │ │ -148 void │ │ │ │ │ -149 _M_move_nodes(___L_i_s_t___n_o_d_e___h_e_a_d_e_r&& __x) │ │ │ │ │ -150 { │ │ │ │ │ -151 ___L_i_s_t___n_o_d_e___b_a_s_e* const __xnode = __x._M_base(); │ │ │ │ │ -152 if (__xnode->_M_next == __xnode) │ │ │ │ │ -153 _M_init(); │ │ │ │ │ -154 else │ │ │ │ │ -155 { │ │ │ │ │ -156 ___L_i_s_t___n_o_d_e___b_a_s_e* const __node = this->_M_base(); │ │ │ │ │ -157 __node->_M_next = __xnode->_M_next; │ │ │ │ │ -158 __node->_M_prev = __xnode->_M_prev; │ │ │ │ │ -159 __node->_M_next->_M_prev = __node->_M_prev->_M_next = __node; │ │ │ │ │ -160 _List_size::operator=(__x); │ │ │ │ │ -161 __x._M_init(); │ │ │ │ │ -162 } │ │ │ │ │ -163 } │ │ │ │ │ -164#endif │ │ │ │ │ -165 │ │ │ │ │ -166 void │ │ │ │ │ -167 _M_init() _GLIBCXX_NOEXCEPT │ │ │ │ │ -168 { │ │ │ │ │ -169 this->_M_next = this->_M_prev = this; │ │ │ │ │ -170 _List_size::operator=(_List_size()); │ │ │ │ │ -171 } │ │ │ │ │ -172 │ │ │ │ │ -173 using _List_node_base::_M_base; │ │ │ │ │ -174#if ! _GLIBCXX_INLINE_VERSION │ │ │ │ │ -175 ___L_i_s_t___n_o_d_e___b_a_s_e* _M_base() { return this; } // XXX GLIBCXX_ABI Deprecated │ │ │ │ │ -176#endif │ │ │ │ │ -177 }; │ │ │ │ │ -178 │ │ │ │ │ -179 } // namespace detail │ │ │ │ │ -180 │ │ │ │ │ -181#if _GLIBCXX_USE_ALLOC_PTR_FOR_LIST │ │ │ │ │ -182_GLIBCXX_BEGIN_NAMESPACE_CONTAINER │ │ │ │ │ -183_GLIBCXX_BEGIN_NAMESPACE_CXX11 │ │ │ │ │ -184 template class _l_i_s_t; │ │ │ │ │ -185_GLIBCXX_END_NAMESPACE_CXX11 │ │ │ │ │ -186_GLIBCXX_END_NAMESPACE_CONTAINER │ │ │ │ │ -187 │ │ │ │ │ -188namespace __list │ │ │ │ │ -189{ │ │ │ │ │ -190 // The base class for a list node. Contains the pointers connecting nodes. │ │ │ │ │ -191 template │ │ │ │ │ -192 struct _Node_base │ │ │ │ │ -193 { │ │ │ │ │ -194 using _Base_ptr = _____p_t_r___r_e_b_i_n_d_<___V_o_i_d_P_t_r_,_ ___N_o_d_e___b_a_s_e_>; │ │ │ │ │ -195 _Base_ptr _M_next; │ │ │ │ │ -196 _Base_ptr _M_prev; │ │ │ │ │ -197 │ │ │ │ │ -198 static void │ │ │ │ │ -199 swap(_Node_base& __x, _Node_base& __y) noexcept; │ │ │ │ │ -200 │ │ │ │ │ -201 void │ │ │ │ │ -202 _M_transfer(_Base_ptr const __first, _Base_ptr const __last) noexcept; │ │ │ │ │ -203 │ │ │ │ │ -204 void │ │ │ │ │ -205 _M_hook(_Base_ptr const __position) noexcept │ │ │ │ │ -206 { │ │ │ │ │ -207 auto __self = this->_M_base(); │ │ │ │ │ -208 this->_M_next = __position; │ │ │ │ │ -209 this->_M_prev = __position->_M_prev; │ │ │ │ │ -210 __position->_M_prev->_M_next = __self; │ │ │ │ │ -211 __position->_M_prev = __self; │ │ │ │ │ -212 } │ │ │ │ │ -213 │ │ │ │ │ -214 void │ │ │ │ │ -215 _M_unhook() noexcept │ │ │ │ │ -216 { │ │ │ │ │ -217 auto const __next_node = this->_M_next; │ │ │ │ │ -218 auto const __prev_node = this->_M_prev; │ │ │ │ │ -219 __prev_node->_M_next = __next_node; │ │ │ │ │ -220 __next_node->_M_prev = __prev_node; │ │ │ │ │ -221 } │ │ │ │ │ -222 │ │ │ │ │ -223 // This is not const-correct, but it's only used in a const access path │ │ │ │ │ -224 // by std::list::empty(), where it doesn't escape, and by │ │ │ │ │ -225 // std::list::end() const, where the pointer is used to initialize a │ │ │ │ │ -226 // const_iterator and so constness is restored. │ │ │ │ │ -227 // The standard allows pointer_to to be potentially-throwing, │ │ │ │ │ -228 // but we have to assume it doesn't throw to implement std::list. │ │ │ │ │ -229 _Base_ptr │ │ │ │ │ -230 _M_base() const noexcept │ │ │ │ │ -231 { │ │ │ │ │ -232 return pointer_traits<_Base_ptr>:: │ │ │ │ │ -233 pointer_to(const_cast<_Node_base&>(*this)); │ │ │ │ │ -234 } │ │ │ │ │ -235 }; │ │ │ │ │ -236 │ │ │ │ │ -237 using ::std::__detail::_List_size; │ │ │ │ │ -238 │ │ │ │ │ -239 // The special sentinel node contained by a std::list. │ │ │ │ │ -240 // begin()->_M_node->_M_prev and end()->_M_node point to this header. │ │ │ │ │ -241 // This is not a complete node, as it doesn't contain a value. │ │ │ │ │ -242 template │ │ │ │ │ -243 struct _Node_header │ │ │ │ │ -244 : public _Node_base<_VoidPtr>, _List_size │ │ │ │ │ -245 { │ │ │ │ │ -246 _Node_header() noexcept │ │ │ │ │ -247 { _M_init(); } │ │ │ │ │ -248 │ │ │ │ │ -249 _Node_header(_Node_header&& __x) noexcept │ │ │ │ │ -250 : _Node_base<_VoidPtr>(__x), _List_size(__x) │ │ │ │ │ -251 { │ │ │ │ │ -252 if (__x._M_base()->_M_next == __x._M_base()) │ │ │ │ │ -253 this->_M_next = this->_M_prev = this->_M_base(); │ │ │ │ │ -254 else │ │ │ │ │ -255 { │ │ │ │ │ -256 this->_M_next->_M_prev = this->_M_prev->_M_next = this->_M_base(); │ │ │ │ │ -257 __x._M_init(); │ │ │ │ │ -258 } │ │ │ │ │ -259 } │ │ │ │ │ +132 __glibcxx_requires_cond(_M_ok, │ │ │ │ │ +133 _M_message(__gnu_debug::__msg_inc_istream) │ │ │ │ │ +134 ._M_iterator(*this)); │ │ │ │ │ +135 _i_s_t_r_e_a_m___i_t_e_r_a_t_o_r __tmp = *this; │ │ │ │ │ +136 _M_read(); │ │ │ │ │ +137 return __tmp; │ │ │ │ │ +138 } │ │ │ │ │ +139 │ │ │ │ │ +140 private: │ │ │ │ │ +141 bool │ │ │ │ │ +142 _M_equal(const _i_s_t_r_e_a_m___i_t_e_r_a_t_o_r& __x) const _GLIBCXX_NOEXCEPT │ │ │ │ │ +143 { │ │ │ │ │ +144 // Ideally this would just return _M_stream == __x._M_stream, │ │ │ │ │ +145 // but code compiled with old versions never sets _M_stream to null. │ │ │ │ │ +146 return (_M_ok == __x._M_ok) && (!_M_ok || _M_stream == __x._M_stream); │ │ │ │ │ +147 } │ │ │ │ │ +148 │ │ │ │ │ +149 void │ │ │ │ │ +150 _M_read() │ │ │ │ │ +151 { │ │ │ │ │ +152 if (_M_stream && !(*_M_stream >> _M_value)) │ │ │ │ │ +153 { │ │ │ │ │ +154 _M_stream = 0; │ │ │ │ │ +155 _M_ok = false; │ │ │ │ │ +156 } │ │ │ │ │ +157 } │ │ │ │ │ +158 │ │ │ │ │ +159 /// Return true if the iterators refer to the same stream, │ │ │ │ │ +160 /// or are both at end-of-stream. │ │ │ │ │ +161 _GLIBCXX_NODISCARD │ │ │ │ │ +162 friend bool │ │ │ │ │ +_1_6_3 _o_p_e_r_a_t_o_r_=_=(const _i_s_t_r_e_a_m___i_t_e_r_a_t_o_r& __x, const _i_s_t_r_e_a_m___i_t_e_r_a_t_o_r& __y) │ │ │ │ │ +164 _GLIBCXX_NOEXCEPT │ │ │ │ │ +165 { return __x._M_equal(__y); } │ │ │ │ │ +166 │ │ │ │ │ +167#if __cpp_impl_three_way_comparison < 201907L │ │ │ │ │ +168 /// Return true if the iterators refer to different streams, │ │ │ │ │ +169 /// or if one is at end-of-stream and the other is not. │ │ │ │ │ +170 _GLIBCXX_NODISCARD │ │ │ │ │ +171 friend bool │ │ │ │ │ +172 operator!=(const _i_s_t_r_e_a_m___i_t_e_r_a_t_o_r& __x, const _i_s_t_r_e_a_m___i_t_e_r_a_t_o_r& __y) │ │ │ │ │ +173 _GLIBCXX_NOEXCEPT │ │ │ │ │ +174 { return !__x._M_equal(__y); } │ │ │ │ │ +175#endif │ │ │ │ │ +176 │ │ │ │ │ +177#if __cplusplus > 201703L && __cpp_lib_concepts │ │ │ │ │ +178 [[nodiscard]] │ │ │ │ │ +179 friend bool │ │ │ │ │ +180 _o_p_e_r_a_t_o_r_=_=(const _i_s_t_r_e_a_m___i_t_e_r_a_t_o_r& __i, default_sentinel_t) noexcept │ │ │ │ │ +181 { return !__i._M_stream; } │ │ │ │ │ +182#endif │ │ │ │ │ +183 }; │ │ │ │ │ +184 │ │ │ │ │ +185 /** │ │ │ │ │ +186 * @brief Provides output iterator semantics for streams. │ │ │ │ │ +187 * │ │ │ │ │ +188 * This class provides an iterator to write to an ostream. The type Tp is │ │ │ │ │ +189 * the only type written by this iterator and there must be an │ │ │ │ │ +190 * operator<<(Tp) defined. │ │ │ │ │ +191 * │ │ │ │ │ +192 * @tparam _Tp The type to write to the ostream. │ │ │ │ │ +193 * @tparam _CharT The ostream char_type. │ │ │ │ │ +194 * @tparam _Traits The ostream char_traits. │ │ │ │ │ +195 */ │ │ │ │ │ +196 template > │ │ │ │ │ +_1_9_8 class _o_s_t_r_e_a_m___i_t_e_r_a_t_o_r │ │ │ │ │ +199 : public _i_t_e_r_a_t_o_r │ │ │ │ │ +200 { │ │ │ │ │ +201 public: │ │ │ │ │ +202 ///@{ │ │ │ │ │ +203 /// Public typedef │ │ │ │ │ +204#if __cplusplus > 201703L │ │ │ │ │ +_2_0_5 using _d_i_f_f_e_r_e_n_c_e___t_y_p_e = ptrdiff_t; │ │ │ │ │ +206#endif │ │ │ │ │ +_2_0_7 typedef _CharT _c_h_a_r___t_y_p_e; │ │ │ │ │ +_2_0_8 typedef _Traits _t_r_a_i_t_s___t_y_p_e; │ │ │ │ │ +_2_0_9 typedef _b_a_s_i_c___o_s_t_r_e_a_m_<___C_h_a_r_T_,_ ___T_r_a_i_t_s_> _o_s_t_r_e_a_m___t_y_p_e; │ │ │ │ │ +210 ///@} │ │ │ │ │ +211 │ │ │ │ │ +212 private: │ │ │ │ │ +213 _o_s_t_r_e_a_m___t_y_p_e* _M_stream; │ │ │ │ │ +214 const _CharT* _M_string; │ │ │ │ │ +215 │ │ │ │ │ +216 public: │ │ │ │ │ +217 /// Construct from an ostream. │ │ │ │ │ +_2_1_8 _o_s_t_r_e_a_m___i_t_e_r_a_t_o_r(_o_s_t_r_e_a_m___t_y_p_e& __s) _GLIBCXX_NOEXCEPT │ │ │ │ │ +219 : _M_stream(_s_t_d_:_:_____a_d_d_r_e_s_s_o_f(__s)), _M_string(0) {} │ │ │ │ │ +220 │ │ │ │ │ +221 /** │ │ │ │ │ +222 * Construct from an ostream. │ │ │ │ │ +223 * │ │ │ │ │ +224 * The delimiter string @a c is written to the stream after every Tp │ │ │ │ │ +225 * written to the stream. The delimiter is not copied, and thus must │ │ │ │ │ +226 * not be destroyed while this iterator is in use. │ │ │ │ │ +227 * │ │ │ │ │ +228 * @param __s Underlying ostream to write to. │ │ │ │ │ +229 * @param __c CharT delimiter string to insert. │ │ │ │ │ +230 */ │ │ │ │ │ +_2_3_1 _o_s_t_r_e_a_m___i_t_e_r_a_t_o_r(_o_s_t_r_e_a_m___t_y_p_e& __s, const _CharT* __c) _GLIBCXX_NOEXCEPT │ │ │ │ │ +232 : _M_stream(_s_t_d_:_:_____a_d_d_r_e_s_s_o_f(__s)), _M_string(__c) { } │ │ │ │ │ +233 │ │ │ │ │ +234 /// Copy constructor. │ │ │ │ │ +_2_3_5 _o_s_t_r_e_a_m___i_t_e_r_a_t_o_r(const _o_s_t_r_e_a_m___i_t_e_r_a_t_o_r& __obj) _GLIBCXX_NOEXCEPT │ │ │ │ │ +236 : _M_stream(__obj._M_stream), _M_string(__obj._M_string) { } │ │ │ │ │ +237 │ │ │ │ │ +238#if __cplusplus >= 201103L │ │ │ │ │ +239 _o_s_t_r_e_a_m___i_t_e_r_a_t_o_r& operator=(const _o_s_t_r_e_a_m___i_t_e_r_a_t_o_r&) = default; │ │ │ │ │ +240#endif │ │ │ │ │ +241 │ │ │ │ │ +242 /// Writes @a value to underlying ostream using operator<<. If │ │ │ │ │ +243 /// constructed with delimiter string, writes delimiter to ostream. │ │ │ │ │ +244 _o_s_t_r_e_a_m___i_t_e_r_a_t_o_r& │ │ │ │ │ +_2_4_5 _o_p_e_r_a_t_o_r_=(const _Tp& __value) │ │ │ │ │ +246 { │ │ │ │ │ +247 __glibcxx_requires_cond(_M_stream != 0, │ │ │ │ │ +248 _M_message(__gnu_debug::__msg_output_ostream) │ │ │ │ │ +249 ._M_iterator(*this)); │ │ │ │ │ +250 *_M_stream << __value; │ │ │ │ │ +251 if (_M_string) │ │ │ │ │ +252 *_M_stream << _M_string; │ │ │ │ │ +253 return *this; │ │ │ │ │ +254 } │ │ │ │ │ +255 │ │ │ │ │ +256 _GLIBCXX_NODISCARD │ │ │ │ │ +257 _o_s_t_r_e_a_m___i_t_e_r_a_t_o_r& │ │ │ │ │ +258 operator*() _GLIBCXX_NOEXCEPT │ │ │ │ │ +259 { return *this; } │ │ │ │ │ 260 │ │ │ │ │ -261 void │ │ │ │ │ -262 _M_move_nodes(_Node_header&& __x) noexcept │ │ │ │ │ -263 { │ │ │ │ │ -264 auto const __xnode = __x._M_base(); │ │ │ │ │ -265 if (__xnode->_M_next == __xnode) │ │ │ │ │ -266 _M_init(); │ │ │ │ │ -267 else │ │ │ │ │ -268 { │ │ │ │ │ -269 auto const __node = this->_M_base(); │ │ │ │ │ -270 __node->_M_next = __xnode->_M_next; │ │ │ │ │ -271 __node->_M_prev = __xnode->_M_prev; │ │ │ │ │ -272 __node->_M_next->_M_prev = __node->_M_prev->_M_next = __node; │ │ │ │ │ -273 _List_size::operator=(__x); │ │ │ │ │ -274 __x._M_init(); │ │ │ │ │ -275 } │ │ │ │ │ -276 } │ │ │ │ │ -277 │ │ │ │ │ -278 void │ │ │ │ │ -279 _M_init() noexcept │ │ │ │ │ -280 { │ │ │ │ │ -281 this->_M_next = this->_M_prev = this->_M_base(); │ │ │ │ │ -282 _List_size::operator=(_List_size()); │ │ │ │ │ -283 } │ │ │ │ │ -284 │ │ │ │ │ -285 void _M_reverse() noexcept; │ │ │ │ │ -286 }; │ │ │ │ │ -287 │ │ │ │ │ -288 // The node type used for allocators with fancy pointers. │ │ │ │ │ -289 template │ │ │ │ │ -290 struct _Node : public __list::_Node_base<_____p_t_r___r_e_b_i_n_d<_ValPtr, void>> │ │ │ │ │ -291 { │ │ │ │ │ -292 using value_type = typename pointer_traits<_ValPtr>::element_type; │ │ │ │ │ -293 using _Node_ptr = __ptr_rebind<_ValPtr, _Node>; │ │ │ │ │ -294 │ │ │ │ │ -295 _Node() noexcept { } │ │ │ │ │ -296 ~_Node() { } │ │ │ │ │ -297 _Node(_Node&&) = delete; │ │ │ │ │ -298 │ │ │ │ │ -299 union _Uninit_storage │ │ │ │ │ -300 { │ │ │ │ │ -301 _Uninit_storage() noexcept { } │ │ │ │ │ -302 ~_Uninit_storage() { } │ │ │ │ │ -303 │ │ │ │ │ -304 value_type _M_data; │ │ │ │ │ -305 }; │ │ │ │ │ -306 _Uninit_storage _M_u; │ │ │ │ │ -307 │ │ │ │ │ -308 value_type* │ │ │ │ │ -309 _M_valptr() noexcept { return _s_t_d_:_:_____a_d_d_r_e_s_s_o_f(_M_u._M_data); } │ │ │ │ │ -310 │ │ │ │ │ -311 value_type const* │ │ │ │ │ -312 _M_valptr() const noexcept { return _s_t_d_:_:_____a_d_d_r_e_s_s_o_f(_M_u._M_data); } │ │ │ │ │ -313 │ │ │ │ │ -314 _Node_ptr │ │ │ │ │ -315 _M_node_ptr() │ │ │ │ │ -316 { return pointer_traits<_Node_ptr>::pointer_to(*this); } │ │ │ │ │ -317 }; │ │ │ │ │ -318 │ │ │ │ │ -319 template class _Iterator; │ │ │ │ │ -320 │ │ │ │ │ -321 template │ │ │ │ │ -322 class _Iterator │ │ │ │ │ -323 { │ │ │ │ │ -324 using _Node = __list::_Node<_Ptr>; │ │ │ │ │ -325 using _Base_ptr │ │ │ │ │ -326 = typename __list::_Node_base<__ptr_rebind<_Ptr, void>>::_Base_ptr; │ │ │ │ │ -327 │ │ │ │ │ -328 template │ │ │ │ │ -329 using __maybe_const = __conditional_t<_Const, const _Tp, _Tp>; │ │ │ │ │ -330 │ │ │ │ │ -331 public: │ │ │ │ │ -332 using value_type = typename pointer_traits<_Ptr>::element_type; │ │ │ │ │ -333 using difference_type = ptrdiff_t; │ │ │ │ │ -334 using iterator_category = bidirectional_iterator_tag; │ │ │ │ │ -335 using pointer = __maybe_const*; │ │ │ │ │ -336 using reference = __maybe_const&; │ │ │ │ │ -337 │ │ │ │ │ -338 constexpr _Iterator() noexcept : _M_node() { } │ │ │ │ │ -339 │ │ │ │ │ -340 _Iterator(const _Iterator&) = default; │ │ │ │ │ -341 _Iterator& operator=(const _Iterator&) = default; │ │ │ │ │ -342 │ │ │ │ │ -343#ifdef __glibcxx_concepts │ │ │ │ │ -344 constexpr │ │ │ │ │ -345 _Iterator(const _Iterator& __i) requires _Const │ │ │ │ │ -346#else │ │ │ │ │ -347 template> │ │ │ │ │ -349 constexpr │ │ │ │ │ -350 _Iterator(const _Iterator<_OtherConst, _Ptr>& __i) │ │ │ │ │ -351#endif │ │ │ │ │ -352 : _M_node(__i._M_node) { } │ │ │ │ │ -353 │ │ │ │ │ -354 constexpr explicit │ │ │ │ │ -355 _Iterator(_Base_ptr __x) noexcept │ │ │ │ │ -356 : _M_node(__x) { } │ │ │ │ │ -357 │ │ │ │ │ -358 // Must downcast from _Node_base to _Node to get to value. │ │ │ │ │ -359 [[__nodiscard__]] │ │ │ │ │ -360 constexpr reference │ │ │ │ │ -361 _o_p_e_r_a_t_o_r_*() const noexcept │ │ │ │ │ -362 { return static_cast<_Node&>(*_M_node)._M_u._M_data; } │ │ │ │ │ -363 │ │ │ │ │ -364 [[__nodiscard__]] │ │ │ │ │ -365 constexpr pointer │ │ │ │ │ -366 operator->() const noexcept │ │ │ │ │ -367 { return _s_t_d_:_:_____a_d_d_r_e_s_s_o_f(operator*()); } │ │ │ │ │ -368 │ │ │ │ │ -369 _GLIBCXX14_CONSTEXPR _Iterator& │ │ │ │ │ -370 operator++() noexcept │ │ │ │ │ -371 { │ │ │ │ │ -372 _M_node = _M_node->_M_next; │ │ │ │ │ -373 return *this; │ │ │ │ │ -374 } │ │ │ │ │ -375 │ │ │ │ │ -376 _GLIBCXX14_CONSTEXPR _Iterator │ │ │ │ │ -377 operator++(int) noexcept │ │ │ │ │ -378 { │ │ │ │ │ -379 auto __tmp = *this; │ │ │ │ │ -380 _M_node = _M_node->_M_next; │ │ │ │ │ -381 return __tmp; │ │ │ │ │ -382 } │ │ │ │ │ -383 │ │ │ │ │ -384 _GLIBCXX14_CONSTEXPR _Iterator& │ │ │ │ │ -385 operator--() noexcept │ │ │ │ │ -386 { │ │ │ │ │ -387 _M_node = _M_node->_M_prev; │ │ │ │ │ -388 return *this; │ │ │ │ │ -389 } │ │ │ │ │ -390 │ │ │ │ │ -391 _GLIBCXX14_CONSTEXPR _Iterator │ │ │ │ │ -392 operator--(int) noexcept │ │ │ │ │ -393 { │ │ │ │ │ -394 auto __tmp = *this; │ │ │ │ │ -395 _M_node = _M_node->_M_prev; │ │ │ │ │ -396 return __tmp; │ │ │ │ │ -397 } │ │ │ │ │ -398 │ │ │ │ │ -399 [[__nodiscard__]] │ │ │ │ │ -400 friend constexpr bool │ │ │ │ │ -401 operator==(const _Iterator& __x, const _Iterator& __y) noexcept │ │ │ │ │ -402 { return __x._M_node == __y._M_node; } │ │ │ │ │ -403 │ │ │ │ │ -404#if __cpp_impl_three_way_comparison < 201907L │ │ │ │ │ -405 [[__nodiscard__]] │ │ │ │ │ -406 friend constexpr bool │ │ │ │ │ -407 operator!=(const _Iterator& __x, const _Iterator& __y) noexcept │ │ │ │ │ -408 { return __x._M_node != __y._M_node; } │ │ │ │ │ -409#endif │ │ │ │ │ -410 │ │ │ │ │ -411 private: │ │ │ │ │ -412 template │ │ │ │ │ -413 friend class _GLIBCXX_STD_C::list; │ │ │ │ │ -414 │ │ │ │ │ -415 friend _Iterator; │ │ │ │ │ -416 │ │ │ │ │ -417 constexpr _Iterator │ │ │ │ │ -418 _M_const_cast() const noexcept │ │ │ │ │ -419 { return _Iterator(_M_node); } │ │ │ │ │ -420 │ │ │ │ │ -421 _Base_ptr _M_node; │ │ │ │ │ -422 }; │ │ │ │ │ -423} // namespace __list │ │ │ │ │ -424#endif // USE_ALLOC_PTR_FOR_LIST │ │ │ │ │ -425 │ │ │ │ │ -426_GLIBCXX_BEGIN_NAMESPACE_CONTAINER │ │ │ │ │ -427 template struct _List_node; │ │ │ │ │ -428 template struct _List_iterator; │ │ │ │ │ -429 template struct _List_const_iterator; │ │ │ │ │ -430_GLIBCXX_END_NAMESPACE_CONTAINER │ │ │ │ │ -431 │ │ │ │ │ -432namespace __list │ │ │ │ │ -433{ │ │ │ │ │ -434 // Determine the node and iterator types used by std::list. │ │ │ │ │ -435 template │ │ │ │ │ -436 struct _Node_traits; │ │ │ │ │ -437 │ │ │ │ │ -438#if _GLIBCXX_USE_ALLOC_PTR_FOR_LIST <= 9000 │ │ │ │ │ -439 // Specialization for the simple case where the allocator's pointer type │ │ │ │ │ -440 // is the same type as value_type*. │ │ │ │ │ -441 // For ABI compatibility we can't change the types used for this case. │ │ │ │ │ -442 template │ │ │ │ │ -443 struct _Node_traits<_Tp, _Tp*> │ │ │ │ │ -444 { │ │ │ │ │ -445 typedef __detail::_List_node_base _Node_base; │ │ │ │ │ -446 typedef __detail::_List_node_header _Node_header; │ │ │ │ │ -447 typedef _GLIBCXX_STD_C::_List_node<_Tp> _Node; │ │ │ │ │ -448 typedef _GLIBCXX_STD_C::_List_iterator<_Tp> _Iterator; │ │ │ │ │ -449 typedef _GLIBCXX_STD_C::_List_const_iterator<_Tp> _Const_iterator; │ │ │ │ │ -450 }; │ │ │ │ │ -451#endif │ │ │ │ │ -452 │ │ │ │ │ -453#if ! _GLIBCXX_USE_ALLOC_PTR_FOR_LIST │ │ │ │ │ -454 // Always use the T* specialization. │ │ │ │ │ -455 template │ │ │ │ │ -456 struct _Node_traits │ │ │ │ │ -457 : _Node_traits<_Tp, _Tp*> │ │ │ │ │ -458 { }; │ │ │ │ │ -459#else │ │ │ │ │ -460 // Primary template used when the allocator uses fancy pointers. │ │ │ │ │ -461 template │ │ │ │ │ -462 struct _Node_traits │ │ │ │ │ -463 { │ │ │ │ │ -464 private: │ │ │ │ │ -465 using _VoidPtr = __ptr_rebind<_Ptr, void>; │ │ │ │ │ -466 using _ValPtr = __ptr_rebind<_Ptr, _Tp>; │ │ │ │ │ -467 │ │ │ │ │ -468 public: │ │ │ │ │ -469 using _Node_base = __list::_Node_base<_VoidPtr>; │ │ │ │ │ -470 using _Node_header = __list::_Node_header<_VoidPtr>; │ │ │ │ │ -471 using _Node = __list::_Node<_ValPtr>; │ │ │ │ │ -472 using _Iterator = __list::_Iterator; │ │ │ │ │ -473 using _Const_iterator = __list::_Iterator; │ │ │ │ │ -474 }; │ │ │ │ │ -475#endif // USE_ALLOC_PTR_FOR_LIST │ │ │ │ │ -476 │ │ │ │ │ -477 // Used by std::list::sort to hold nodes being sorted. │ │ │ │ │ -478 template │ │ │ │ │ -479 struct _Scratch_list │ │ │ │ │ -480 : _NodeBaseT │ │ │ │ │ -481 { │ │ │ │ │ -482 typedef _NodeBaseT _Base; │ │ │ │ │ -483 typedef typename _Base::_Base_ptr _Base_ptr; │ │ │ │ │ -484 │ │ │ │ │ -485 _Scratch_list() { this->_M_next = this->_M_prev = this->_M_base(); } │ │ │ │ │ -486 │ │ │ │ │ -487 bool _e_m_p_t_y() const { return this->_M_next == this->_M_base(); } │ │ │ │ │ -488 │ │ │ │ │ -489 void swap(_Base& __l) { _Base::swap(*this, __l); } │ │ │ │ │ -490 │ │ │ │ │ -491 template │ │ │ │ │ -492 struct _Ptr_cmp │ │ │ │ │ -493 { │ │ │ │ │ -494 _Cmp _M_cmp; │ │ │ │ │ -495 │ │ │ │ │ -496 bool │ │ │ │ │ -497 operator()(_Base_ptr __lhs, _Base_ptr __rhs) /* not const */ │ │ │ │ │ -498 { return _M_cmp(*_Iter(__lhs), *_Iter(__rhs)); } │ │ │ │ │ -499 }; │ │ │ │ │ -500 │ │ │ │ │ -501 template │ │ │ │ │ -502 struct _Ptr_cmp<_Iter, void> │ │ │ │ │ -503 { │ │ │ │ │ -504 bool │ │ │ │ │ -505 operator()(_Base_ptr __lhs, _Base_ptr __rhs) const │ │ │ │ │ -506 { return *_Iter(__lhs) < *_Iter(__rhs); } │ │ │ │ │ -507 }; │ │ │ │ │ -508 │ │ │ │ │ -509 // Merge nodes from __x into *this. Both lists must be sorted wrt _Cmp. │ │ │ │ │ -510 template │ │ │ │ │ -511 void │ │ │ │ │ -512 merge(_Base& __x, _Cmp __comp) │ │ │ │ │ -513 { │ │ │ │ │ -514 _Base_ptr __first1 = this->_M_next; │ │ │ │ │ -515 _Base_ptr const __last1 = this->_M_base(); │ │ │ │ │ -516 _Base_ptr __first2 = __x._M_next; │ │ │ │ │ -517 _Base_ptr const __last2 = __x._M_base(); │ │ │ │ │ -518 │ │ │ │ │ -519 while (__first1 != __last1 && __first2 != __last2) │ │ │ │ │ -520 { │ │ │ │ │ -521 if (__comp(__first2, __first1)) │ │ │ │ │ -522 { │ │ │ │ │ -523 _Base_ptr __next = __first2->_M_next; │ │ │ │ │ -524 __first1->_M_transfer(__first2, __next); │ │ │ │ │ -525 __first2 = __next; │ │ │ │ │ -526 } │ │ │ │ │ -527 else │ │ │ │ │ -528 __first1 = __first1->_M_next; │ │ │ │ │ -529 } │ │ │ │ │ -530 if (__first2 != __last2) │ │ │ │ │ -531 this->_M_transfer(__first2, __last2); │ │ │ │ │ -532 } │ │ │ │ │ -533 │ │ │ │ │ -534 // Splice the node at __i into *this. │ │ │ │ │ -535 void _M_take_one(_Base_ptr __i) │ │ │ │ │ -536 { this->_M_transfer(__i, __i->_M_next); } │ │ │ │ │ -537 │ │ │ │ │ -538 // Splice all nodes from *this after __i. │ │ │ │ │ -539 void _M_put_all(_Base_ptr __i) │ │ │ │ │ -540 { │ │ │ │ │ -541 if (!_e_m_p_t_y()) │ │ │ │ │ -542 __i->_M_transfer(this->_M_next, this->_M_base()); │ │ │ │ │ -543 } │ │ │ │ │ -544 }; │ │ │ │ │ -545} // namespace __list │ │ │ │ │ -546 │ │ │ │ │ -547_GLIBCXX_BEGIN_NAMESPACE_CONTAINER │ │ │ │ │ -548 │ │ │ │ │ -549 /// An actual node in the %list. │ │ │ │ │ -550 template │ │ │ │ │ -_5_5_1 struct ___L_i_s_t___n_o_d_e : public _____d_e_t_a_i_l_:_:___L_i_s_t___n_o_d_e___b_a_s_e │ │ │ │ │ -552 { │ │ │ │ │ -553 typedef ___L_i_s_t___n_o_d_e* ___N_o_d_e___p_t_r; │ │ │ │ │ -554 │ │ │ │ │ -555#if __cplusplus >= 201103L │ │ │ │ │ -556 __gnu_cxx::__aligned_membuf<_Tp> _M_storage; │ │ │ │ │ -557 _Tp* _M_valptr() { return _M_storage._M_ptr(); } │ │ │ │ │ -558 _Tp const* _M_valptr() const { return _M_storage._M_ptr(); } │ │ │ │ │ -559#else │ │ │ │ │ -560 _Tp _M_data; │ │ │ │ │ -561 _Tp* _M_valptr() { return _s_t_d_:_:_____a_d_d_r_e_s_s_o_f(_M_data); } │ │ │ │ │ -562 _Tp const* _M_valptr() const { return _s_t_d_:_:_____a_d_d_r_e_s_s_o_f(_M_data); } │ │ │ │ │ -563#endif │ │ │ │ │ -564 │ │ │ │ │ -565 ___N_o_d_e___p_t_r _M_node_ptr() { return this; } │ │ │ │ │ -566 }; │ │ │ │ │ -567 │ │ │ │ │ -568 /** │ │ │ │ │ -569 * @brief A list::iterator. │ │ │ │ │ -570 * │ │ │ │ │ -571 * All the functions are op overloads. │ │ │ │ │ -572 */ │ │ │ │ │ -573 template │ │ │ │ │ -_5_7_4 struct ___L_i_s_t___i_t_e_r_a_t_o_r │ │ │ │ │ -575 { │ │ │ │ │ -576 typedef ___L_i_s_t___n_o_d_e_<___T_p_> _Node; │ │ │ │ │ -577 │ │ │ │ │ -578 typedef ptrdiff_t difference_type; │ │ │ │ │ -579 typedef _s_t_d_:_:_b_i_d_i_r_e_c_t_i_o_n_a_l___i_t_e_r_a_t_o_r___t_a_g _i_t_e_r_a_t_o_r___c_a_t_e_g_o_r_y; │ │ │ │ │ -580 typedef _Tp value_type; │ │ │ │ │ -581 typedef _Tp* pointer; │ │ │ │ │ -582 typedef _Tp& reference; │ │ │ │ │ -583 │ │ │ │ │ -584 ___L_i_s_t___i_t_e_r_a_t_o_r() _GLIBCXX_NOEXCEPT │ │ │ │ │ -585 : _M_node() { } │ │ │ │ │ -586 │ │ │ │ │ -587 explicit │ │ │ │ │ -588 ___L_i_s_t___i_t_e_r_a_t_o_r(_____d_e_t_a_i_l_:_:___L_i_s_t___n_o_d_e___b_a_s_e* __x) _GLIBCXX_NOEXCEPT │ │ │ │ │ -589 : _M_node(__x) { } │ │ │ │ │ -590 │ │ │ │ │ -591 ___L_i_s_t___i_t_e_r_a_t_o_r │ │ │ │ │ -592 _M_const_cast() const _GLIBCXX_NOEXCEPT │ │ │ │ │ -593 { return *this; } │ │ │ │ │ -594 │ │ │ │ │ -595 // Must downcast from _List_node_base to _List_node to get to value. │ │ │ │ │ -596 _GLIBCXX_NODISCARD │ │ │ │ │ -597 reference │ │ │ │ │ -598 _o_p_e_r_a_t_o_r_*() const _GLIBCXX_NOEXCEPT │ │ │ │ │ -599 { return *static_cast<_Node*>(_M_node)->_M_valptr(); } │ │ │ │ │ -600 │ │ │ │ │ -601 _GLIBCXX_NODISCARD │ │ │ │ │ -602 pointer │ │ │ │ │ -603 operator->() const _GLIBCXX_NOEXCEPT │ │ │ │ │ -604 { return static_cast<_Node*>(_M_node)->_M_valptr(); } │ │ │ │ │ -605 │ │ │ │ │ -606 ___L_i_s_t___i_t_e_r_a_t_o_r& │ │ │ │ │ -607 operator++() _GLIBCXX_NOEXCEPT │ │ │ │ │ -608 { │ │ │ │ │ -609 _M_node = _M_node->_M_next; │ │ │ │ │ -610 return *this; │ │ │ │ │ -611 } │ │ │ │ │ -612 │ │ │ │ │ -613 ___L_i_s_t___i_t_e_r_a_t_o_r │ │ │ │ │ -614 operator++(int) _GLIBCXX_NOEXCEPT │ │ │ │ │ -615 { │ │ │ │ │ -616 ___L_i_s_t___i_t_e_r_a_t_o_r __tmp = *this; │ │ │ │ │ -617 _M_node = _M_node->_M_next; │ │ │ │ │ -618 return __tmp; │ │ │ │ │ -619 } │ │ │ │ │ -620 │ │ │ │ │ -621 ___L_i_s_t___i_t_e_r_a_t_o_r& │ │ │ │ │ -622 operator--() _GLIBCXX_NOEXCEPT │ │ │ │ │ -623 { │ │ │ │ │ -624 _M_node = _M_node->_M_prev; │ │ │ │ │ -625 return *this; │ │ │ │ │ -626 } │ │ │ │ │ -627 │ │ │ │ │ -628 ___L_i_s_t___i_t_e_r_a_t_o_r │ │ │ │ │ -629 operator--(int) _GLIBCXX_NOEXCEPT │ │ │ │ │ -630 { │ │ │ │ │ -631 ___L_i_s_t___i_t_e_r_a_t_o_r __tmp = *this; │ │ │ │ │ -632 _M_node = _M_node->_M_prev; │ │ │ │ │ -633 return __tmp; │ │ │ │ │ -634 } │ │ │ │ │ -635 │ │ │ │ │ -636 _GLIBCXX_NODISCARD │ │ │ │ │ -637 friend bool │ │ │ │ │ -638 operator==(const ___L_i_s_t___i_t_e_r_a_t_o_r& __x, │ │ │ │ │ -639 const ___L_i_s_t___i_t_e_r_a_t_o_r& __y) _GLIBCXX_NOEXCEPT │ │ │ │ │ -640 { return __x._M_node == __y._M_node; } │ │ │ │ │ -641 │ │ │ │ │ -642#if __cpp_impl_three_way_comparison < 201907L │ │ │ │ │ -643 _GLIBCXX_NODISCARD │ │ │ │ │ -644 friend bool │ │ │ │ │ -645 operator!=(const ___L_i_s_t___i_t_e_r_a_t_o_r& __x, │ │ │ │ │ -646 const ___L_i_s_t___i_t_e_r_a_t_o_r& __y) _GLIBCXX_NOEXCEPT │ │ │ │ │ -647 { return __x._M_node != __y._M_node; } │ │ │ │ │ -648#endif │ │ │ │ │ -649 │ │ │ │ │ -650 // The only member points to the %list element. │ │ │ │ │ -651 _____d_e_t_a_i_l_:_:___L_i_s_t___n_o_d_e___b_a_s_e* _M_node; │ │ │ │ │ -652 }; │ │ │ │ │ -653 │ │ │ │ │ -654 /** │ │ │ │ │ -655 * @brief A list::const_iterator. │ │ │ │ │ -656 * │ │ │ │ │ -657 * All the functions are op overloads. │ │ │ │ │ -658 */ │ │ │ │ │ -659 template │ │ │ │ │ -_6_6_0 struct ___L_i_s_t___c_o_n_s_t___i_t_e_r_a_t_o_r │ │ │ │ │ -661 { │ │ │ │ │ -662 typedef const ___L_i_s_t___n_o_d_e_<___T_p_> _Node; │ │ │ │ │ -663 typedef ___L_i_s_t___i_t_e_r_a_t_o_r_<___T_p_> iterator; │ │ │ │ │ -664 │ │ │ │ │ -665 typedef ptrdiff_t difference_type; │ │ │ │ │ -666 typedef _s_t_d_:_:_b_i_d_i_r_e_c_t_i_o_n_a_l___i_t_e_r_a_t_o_r___t_a_g _i_t_e_r_a_t_o_r___c_a_t_e_g_o_r_y; │ │ │ │ │ -667 typedef _Tp value_type; │ │ │ │ │ -668 typedef const _Tp* pointer; │ │ │ │ │ -669 typedef const _Tp& reference; │ │ │ │ │ -670 │ │ │ │ │ -671 ___L_i_s_t___c_o_n_s_t___i_t_e_r_a_t_o_r() _GLIBCXX_NOEXCEPT │ │ │ │ │ -672 : _M_node() { } │ │ │ │ │ -673 │ │ │ │ │ -674 explicit │ │ │ │ │ -675 ___L_i_s_t___c_o_n_s_t___i_t_e_r_a_t_o_r(const _____d_e_t_a_i_l_:_:___L_i_s_t___n_o_d_e___b_a_s_e* __x) │ │ │ │ │ -676 _GLIBCXX_NOEXCEPT │ │ │ │ │ -677 : _M_node(__x) { } │ │ │ │ │ -678 │ │ │ │ │ -679 ___L_i_s_t___c_o_n_s_t___i_t_e_r_a_t_o_r(const iterator& __x) _GLIBCXX_NOEXCEPT │ │ │ │ │ -680 : _M_node(__x._M_node) { } │ │ │ │ │ -681 │ │ │ │ │ -682 iterator │ │ │ │ │ -683 _M_const_cast() const _GLIBCXX_NOEXCEPT │ │ │ │ │ -684 { return iterator(const_cast<_____d_e_t_a_i_l_:_:___L_i_s_t___n_o_d_e___b_a_s_e*>(_M_node)); } │ │ │ │ │ -685 │ │ │ │ │ -686 // Must downcast from List_node_base to _List_node to get to value. │ │ │ │ │ -687 _GLIBCXX_NODISCARD │ │ │ │ │ -688 reference │ │ │ │ │ -689 _o_p_e_r_a_t_o_r_*() const _GLIBCXX_NOEXCEPT │ │ │ │ │ -690 { return *static_cast<_Node*>(_M_node)->_M_valptr(); } │ │ │ │ │ -691 │ │ │ │ │ -692 _GLIBCXX_NODISCARD │ │ │ │ │ -693 pointer │ │ │ │ │ -694 operator->() const _GLIBCXX_NOEXCEPT │ │ │ │ │ -695 { return static_cast<_Node*>(_M_node)->_M_valptr(); } │ │ │ │ │ -696 │ │ │ │ │ -697 ___L_i_s_t___c_o_n_s_t___i_t_e_r_a_t_o_r& │ │ │ │ │ -698 operator++() _GLIBCXX_NOEXCEPT │ │ │ │ │ -699 { │ │ │ │ │ -700 _M_node = _M_node->_M_next; │ │ │ │ │ -701 return *this; │ │ │ │ │ -702 } │ │ │ │ │ -703 │ │ │ │ │ -704 ___L_i_s_t___c_o_n_s_t___i_t_e_r_a_t_o_r │ │ │ │ │ -705 operator++(int) _GLIBCXX_NOEXCEPT │ │ │ │ │ -706 { │ │ │ │ │ -707 ___L_i_s_t___c_o_n_s_t___i_t_e_r_a_t_o_r __tmp = *this; │ │ │ │ │ -708 _M_node = _M_node->_M_next; │ │ │ │ │ -709 return __tmp; │ │ │ │ │ -710 } │ │ │ │ │ -711 │ │ │ │ │ -712 ___L_i_s_t___c_o_n_s_t___i_t_e_r_a_t_o_r& │ │ │ │ │ -713 operator--() _GLIBCXX_NOEXCEPT │ │ │ │ │ -714 { │ │ │ │ │ -715 _M_node = _M_node->_M_prev; │ │ │ │ │ -716 return *this; │ │ │ │ │ -717 } │ │ │ │ │ -718 │ │ │ │ │ -719 ___L_i_s_t___c_o_n_s_t___i_t_e_r_a_t_o_r │ │ │ │ │ -720 operator--(int) _GLIBCXX_NOEXCEPT │ │ │ │ │ -721 { │ │ │ │ │ -722 ___L_i_s_t___c_o_n_s_t___i_t_e_r_a_t_o_r __tmp = *this; │ │ │ │ │ -723 _M_node = _M_node->_M_prev; │ │ │ │ │ -724 return __tmp; │ │ │ │ │ -725 } │ │ │ │ │ -726 │ │ │ │ │ -727 _GLIBCXX_NODISCARD │ │ │ │ │ -728 friend bool │ │ │ │ │ -729 operator==(const ___L_i_s_t___c_o_n_s_t___i_t_e_r_a_t_o_r& __x, │ │ │ │ │ -730 const ___L_i_s_t___c_o_n_s_t___i_t_e_r_a_t_o_r& __y) _GLIBCXX_NOEXCEPT │ │ │ │ │ -731 { return __x._M_node == __y._M_node; } │ │ │ │ │ -732 │ │ │ │ │ -733#if __cpp_impl_three_way_comparison < 201907L │ │ │ │ │ -734 _GLIBCXX_NODISCARD │ │ │ │ │ -735 friend bool │ │ │ │ │ -736 operator!=(const ___L_i_s_t___c_o_n_s_t___i_t_e_r_a_t_o_r& __x, │ │ │ │ │ -737 const ___L_i_s_t___c_o_n_s_t___i_t_e_r_a_t_o_r& __y) _GLIBCXX_NOEXCEPT │ │ │ │ │ -738 { return __x._M_node != __y._M_node; } │ │ │ │ │ -739#endif │ │ │ │ │ -740 │ │ │ │ │ -741 // The only member points to the %list element. │ │ │ │ │ -742 const _____d_e_t_a_i_l_:_:___L_i_s_t___n_o_d_e___b_a_s_e* _M_node; │ │ │ │ │ -743 }; │ │ │ │ │ -744 │ │ │ │ │ -745_GLIBCXX_BEGIN_NAMESPACE_CXX11 │ │ │ │ │ -746 /// See bits/stl_deque.h's _Deque_base for an explanation. │ │ │ │ │ -747 template │ │ │ │ │ -_7_4_8 class ___L_i_s_t___b_a_s_e │ │ │ │ │ -749 { │ │ │ │ │ -750 protected: │ │ │ │ │ -751 typedef typename _____g_n_u___c_x_x_:_:_____a_l_l_o_c___t_r_a_i_t_s_<___A_l_l_o_c_>_:_:_t_e_m_p_l_a_t_e │ │ │ │ │ -752 rebind<_Tp>::other _Tp_alloc_type; │ │ │ │ │ -753 typedef _____g_n_u___c_x_x_:_:_____a_l_l_o_c___t_r_a_i_t_s_<___T_p___a_l_l_o_c___t_y_p_e_> ___T_p___a_l_l_o_c___t_r_a_i_t_s; │ │ │ │ │ -754 │ │ │ │ │ -755 typedef __list::_Node_traits<_Tp, typename _Tp_alloc_traits::pointer> │ │ │ │ │ -756 _Node_traits; │ │ │ │ │ -757 typedef typename _Tp_alloc_traits::template │ │ │ │ │ -758 rebind::other _Node_alloc_type; │ │ │ │ │ -759 typedef _____g_n_u___c_x_x_:_:_____a_l_l_o_c___t_r_a_i_t_s_<___N_o_d_e___a_l_l_o_c___t_y_p_e_> ___N_o_d_e___a_l_l_o_c___t_r_a_i_t_s; │ │ │ │ │ -760 │ │ │ │ │ -761#if __cplusplus < 201103L || ! _GLIBCXX_USE_ALLOC_PTR_FOR_LIST │ │ │ │ │ -762 typedef ___L_i_s_t___n_o_d_e_<___T_p_>* _Node_ptr; │ │ │ │ │ -763#else │ │ │ │ │ -764 using _Node_ptr = typename _Node_alloc_traits::pointer; │ │ │ │ │ -765#endif │ │ │ │ │ -766 │ │ │ │ │ -767 struct _List_impl │ │ │ │ │ -768 : public _Node_alloc_type │ │ │ │ │ -769 { │ │ │ │ │ -770 typename _Node_traits::_Node_header _M_node; │ │ │ │ │ -771 │ │ │ │ │ -772 _List_impl() _GLIBCXX_NOEXCEPT_IF( │ │ │ │ │ -773 _i_s___n_o_t_h_r_o_w___d_e_f_a_u_l_t___c_o_n_s_t_r_u_c_t_i_b_l_e_<___N_o_d_e___a_l_l_o_c___t_y_p_e_>_:_:_v_a_l_u_e) │ │ │ │ │ -774 : _Node_alloc_type() │ │ │ │ │ -775 { } │ │ │ │ │ -776 │ │ │ │ │ -777 _List_impl(const _Node_alloc_type& __a) _GLIBCXX_NOEXCEPT │ │ │ │ │ -778 : _Node_alloc_type(__a) │ │ │ │ │ -779 { } │ │ │ │ │ -780 │ │ │ │ │ -781#if __cplusplus >= 201103L │ │ │ │ │ -782 _List_impl(_List_impl&&) = default; │ │ │ │ │ -783 │ │ │ │ │ -784 _List_impl(_Node_alloc_type&& __a, _List_impl&& __x) │ │ │ │ │ -785 : _Node_alloc_type(_s_t_d_:_:_m_o_v_e(__a)), _M_node(_s_t_d_:_:_m_o_v_e(__x._M_node)) │ │ │ │ │ -786 { } │ │ │ │ │ -787 │ │ │ │ │ -788 _List_impl(_Node_alloc_type&& __a) noexcept │ │ │ │ │ -789 : _Node_alloc_type(_s_t_d_:_:_m_o_v_e(__a)) │ │ │ │ │ -790 { } │ │ │ │ │ -791#endif │ │ │ │ │ -792 }; │ │ │ │ │ -793 │ │ │ │ │ -794 _List_impl _M_impl; │ │ │ │ │ -795 │ │ │ │ │ -796#if _GLIBCXX_USE_CXX11_ABI │ │ │ │ │ -797 size_t _M_get_size() const { return _M_impl._M_node._M_size; } │ │ │ │ │ -798 │ │ │ │ │ -799 void _M_set_size(size_t __n) { _M_impl._M_node._M_size = __n; } │ │ │ │ │ -800 │ │ │ │ │ -801 void _M_inc_size(size_t __n) { _M_impl._M_node._M_size += __n; } │ │ │ │ │ -802 │ │ │ │ │ -803 void _M_dec_size(size_t __n) { _M_impl._M_node._M_size -= __n; } │ │ │ │ │ -804#else │ │ │ │ │ -805 // dummy implementations used when the size is not stored │ │ │ │ │ -806 size_t _M_get_size() const { return 0; } │ │ │ │ │ -807 void _M_set_size(size_t) { } │ │ │ │ │ -808 void _M_inc_size(size_t) { } │ │ │ │ │ -809 void _M_dec_size(size_t) { } │ │ │ │ │ -810#endif │ │ │ │ │ -811 │ │ │ │ │ -812 typename _Node_alloc_traits::pointer │ │ │ │ │ -813 _M_get_node() │ │ │ │ │ -814 { return _Node_alloc_traits::allocate(_M_impl, 1); } │ │ │ │ │ -815 │ │ │ │ │ -816 void │ │ │ │ │ -817 _M_put_node(_Node_ptr __p) _GLIBCXX_NOEXCEPT │ │ │ │ │ -818 { │ │ │ │ │ -819#if __cplusplus < 201103L || _GLIBCXX_USE_ALLOC_PTR_FOR_LIST │ │ │ │ │ -820 _Node_alloc_traits::deallocate(_M_impl, __p, 1); │ │ │ │ │ -821#else │ │ │ │ │ -822#pragma GCC diagnostic push │ │ │ │ │ -823#pragma GCC diagnostic ignored "-Wc++17-extensions" // if constexpr │ │ │ │ │ -824 using __alloc_pointer = typename _Node_alloc_traits::pointer; │ │ │ │ │ -825 if constexpr (_i_s___s_a_m_e_<___N_o_d_e___p_t_r_,_ _____a_l_l_o_c___p_o_i_n_t_e_r_>_:_:_v_a_l_u_e) │ │ │ │ │ -826 _Node_alloc_traits::deallocate(_M_impl, __p, 1); │ │ │ │ │ -827 else │ │ │ │ │ -828 { │ │ │ │ │ -829 // When not using the allocator's pointer type internally we must │ │ │ │ │ -830 // convert __p to __alloc_pointer so it can be deallocated. │ │ │ │ │ -831 auto __ap = _p_o_i_n_t_e_r___t_r_a_i_t_s_<_____a_l_l_o_c___p_o_i_n_t_e_r_>_:_:_p_o_i_n_t_e_r___t_o(*__p); │ │ │ │ │ -832 _Node_alloc_traits::deallocate(_M_impl, __ap, 1); │ │ │ │ │ -833 } │ │ │ │ │ -834#pragma GCC diagnostic pop │ │ │ │ │ -835#endif │ │ │ │ │ -836 } │ │ │ │ │ -837 │ │ │ │ │ -838 void │ │ │ │ │ -839 _M_destroy_node(_Node_ptr __p) │ │ │ │ │ -840 { │ │ │ │ │ -841 // Destroy the element │ │ │ │ │ -842#if __cplusplus < 201103L │ │ │ │ │ -843 _Tp_alloc_type(_M_impl).destroy(__p->_M_valptr()); │ │ │ │ │ -844#else │ │ │ │ │ -845 _Node_alloc_traits::destroy(_M_impl, __p->_M_valptr()); │ │ │ │ │ -846 // Only destroy the node if the pointers require it. │ │ │ │ │ -847 using _Node = typename _Node_traits::_Node; │ │ │ │ │ -848 using _Base_ptr = typename _Node_traits::_Node_base::_Base_ptr; │ │ │ │ │ -849#pragma GCC diagnostic push │ │ │ │ │ -850#pragma GCC diagnostic ignored "-Wc++17-extensions" // if constexpr │ │ │ │ │ -851 if constexpr (!_i_s___t_r_i_v_i_a_l_l_y___d_e_s_t_r_u_c_t_i_b_l_e_<___B_a_s_e___p_t_r_>_:_:_v_a_l_u_e) │ │ │ │ │ -852 __p->~_Node(); │ │ │ │ │ -853#pragma GCC diagnostic pop │ │ │ │ │ -854#endif │ │ │ │ │ -855 this->_M_put_node(__p); │ │ │ │ │ -856 } │ │ │ │ │ -857 │ │ │ │ │ -858 public: │ │ │ │ │ -859 typedef _Alloc allocator_type; │ │ │ │ │ -860 │ │ │ │ │ -861 _Node_alloc_type& │ │ │ │ │ -862 _M_get_Node_allocator() _GLIBCXX_NOEXCEPT │ │ │ │ │ -863 { return _M_impl; } │ │ │ │ │ -864 │ │ │ │ │ -865 const _Node_alloc_type& │ │ │ │ │ -866 _M_get_Node_allocator() const _GLIBCXX_NOEXCEPT │ │ │ │ │ -867 { return _M_impl; } │ │ │ │ │ -868 │ │ │ │ │ -869#if __cplusplus >= 201103L │ │ │ │ │ -870 ___L_i_s_t___b_a_s_e() = default; │ │ │ │ │ -871#else │ │ │ │ │ -872 ___L_i_s_t___b_a_s_e() { } │ │ │ │ │ -873#endif │ │ │ │ │ -874 │ │ │ │ │ -875 ___L_i_s_t___b_a_s_e(const _Node_alloc_type& __a) _GLIBCXX_NOEXCEPT │ │ │ │ │ -876 : _M_impl(__a) │ │ │ │ │ -877 { } │ │ │ │ │ -878 │ │ │ │ │ -879#if __cplusplus >= 201103L │ │ │ │ │ -880 ___L_i_s_t___b_a_s_e(___L_i_s_t___b_a_s_e&&) = default; │ │ │ │ │ -881 │ │ │ │ │ -882 // Used when allocator is_always_equal. │ │ │ │ │ -883 ___L_i_s_t___b_a_s_e(_Node_alloc_type&& __a, ___L_i_s_t___b_a_s_e&& __x) │ │ │ │ │ -884 : _M_impl(_s_t_d_:_:_m_o_v_e(__a), _s_t_d_:_:_m_o_v_e(__x._M_impl)) │ │ │ │ │ -885 { } │ │ │ │ │ -886 │ │ │ │ │ -887 // Used when allocator !is_always_equal. │ │ │ │ │ -888 ___L_i_s_t___b_a_s_e(_Node_alloc_type&& __a) │ │ │ │ │ -889 : _M_impl(_s_t_d_:_:_m_o_v_e(__a)) │ │ │ │ │ -890 { } │ │ │ │ │ -891 │ │ │ │ │ -892 void │ │ │ │ │ -893 _M_move_nodes(___L_i_s_t___b_a_s_e&& __x) │ │ │ │ │ -894 { _M_impl._M_node._M_move_nodes(_s_t_d_:_:_m_o_v_e(__x._M_impl._M_node)); } │ │ │ │ │ -895#endif │ │ │ │ │ -896 │ │ │ │ │ -897 // This is what actually destroys the list. │ │ │ │ │ -898 _~___L_i_s_t___b_a_s_e() _GLIBCXX_NOEXCEPT │ │ │ │ │ -899 { _M_clear(); } │ │ │ │ │ -900 │ │ │ │ │ -901 void │ │ │ │ │ -902 _M_clear() _GLIBCXX_NOEXCEPT; │ │ │ │ │ -903 │ │ │ │ │ -904 void │ │ │ │ │ -905 _M_init() _GLIBCXX_NOEXCEPT │ │ │ │ │ -906 { this->_M_impl._M_node._M_init(); } │ │ │ │ │ -907 │ │ │ │ │ -908#if !_GLIBCXX_INLINE_VERSION │ │ │ │ │ -909 // XXX GLIBCXX_ABI Deprecated │ │ │ │ │ -910 // These members are unused by std::list now, but we keep them here │ │ │ │ │ -911 // so that an explicit instantiation of std::list will define them. │ │ │ │ │ -912 // This ensures that explicit instantiations still define these symbols, │ │ │ │ │ -913 // so that explicit instantiation declarations of std::list that were │ │ │ │ │ -914 // compiled with old versions of GCC can still find these old symbols. │ │ │ │ │ -915 │ │ │ │ │ -916 // Use 'if constexpr' so that the functions don't do anything for │ │ │ │ │ -917 // specializations using _Node_traits, because any │ │ │ │ │ -918 // old code referencing these symbols wasn't using the fancy-pointer │ │ │ │ │ -919 // specializations. │ │ │ │ │ -920 │ │ │ │ │ -921#pragma GCC diagnostic push │ │ │ │ │ -922#pragma GCC diagnostic ignored "-Wc++17-extensions" // if constexpr │ │ │ │ │ -923 │ │ │ │ │ -924# if __cplusplus >= 201103L │ │ │ │ │ -925 ___L_i_s_t___b_a_s_e(___L_i_s_t___b_a_s_e&& __x, _Node_alloc_type&& __a) │ │ │ │ │ -926 : _M_impl(_s_t_d_:_:_m_o_v_e(__a)) │ │ │ │ │ -927 { │ │ │ │ │ -928#if _GLIBCXX_USE_ALLOC_PTR_FOR_LIST │ │ │ │ │ -929 if constexpr (_i_s___s_a_m_e_<_t_y_p_e_n_a_m_e_ ___T_p___a_l_l_o_c___t_r_a_i_t_s_:_:_p_o_i_n_t_e_r_,_ ___T_p_*_>_:_:_v_a_l_u_e) │ │ │ │ │ -930#endif │ │ │ │ │ -931 if (__x._M_get_Node_allocator() == _M_get_Node_allocator()) │ │ │ │ │ -932 _M_move_nodes(_s_t_d_:_:_m_o_v_e(__x)); │ │ │ │ │ -933 // else caller must move individual elements. │ │ │ │ │ -934 } │ │ │ │ │ -935# endif │ │ │ │ │ -936 │ │ │ │ │ -937 static size_t │ │ │ │ │ -938 _S_distance(const _____d_e_t_a_i_l_:_:___L_i_s_t___n_o_d_e___b_a_s_e* __first, │ │ │ │ │ -939 const _____d_e_t_a_i_l_:_:___L_i_s_t___n_o_d_e___b_a_s_e* __last) │ │ │ │ │ -940 { │ │ │ │ │ -941#if _GLIBCXX_USE_ALLOC_PTR_FOR_LIST │ │ │ │ │ -942 if constexpr (!_i_s___s_a_m_e_<_t_y_p_e_n_a_m_e_ ___T_p___a_l_l_o_c___t_r_a_i_t_s_:_:_p_o_i_n_t_e_r_,_ ___T_p_*_>_:_:_v_a_l_u_e) │ │ │ │ │ -943 return 0; │ │ │ │ │ -944 else │ │ │ │ │ -945#endif │ │ │ │ │ -946 { │ │ │ │ │ -947 size_t __n = 0; │ │ │ │ │ -948 while (__first != __last) │ │ │ │ │ -949 { │ │ │ │ │ -950 __first = __first->_M_next; │ │ │ │ │ -951 ++__n; │ │ │ │ │ -952 } │ │ │ │ │ -953 return __n; │ │ │ │ │ -954 } │ │ │ │ │ -955 } │ │ │ │ │ -956 │ │ │ │ │ -957#if _GLIBCXX_USE_CXX11_ABI │ │ │ │ │ -958 size_t │ │ │ │ │ -959 _M_distance(const _____d_e_t_a_i_l_:_:___L_i_s_t___n_o_d_e___b_a_s_e* __first, │ │ │ │ │ -960 const _____d_e_t_a_i_l_:_:___L_i_s_t___n_o_d_e___b_a_s_e* __last) const │ │ │ │ │ -961 { return _S_distance(__first, __last); } │ │ │ │ │ -962 │ │ │ │ │ -963 // return the stored size │ │ │ │ │ -964 size_t _M_node_count() const { return _M_get_size(); } │ │ │ │ │ -965#else │ │ │ │ │ -966 size_t _M_distance(const void*, const void*) const { return 0; } │ │ │ │ │ -967 │ │ │ │ │ -968 // count the number of nodes │ │ │ │ │ -969 size_t _M_node_count() const │ │ │ │ │ -970 { │ │ │ │ │ -971 return _S_distance(_M_impl._M_node._M_next, _M_impl._M_node._M_base()); │ │ │ │ │ -972 } │ │ │ │ │ -973#endif │ │ │ │ │ -974#pragma GCC diagnostic pop │ │ │ │ │ -975#endif // ! INLINE_VERSION │ │ │ │ │ -976 }; │ │ │ │ │ -977 │ │ │ │ │ -978 /** │ │ │ │ │ -979 * @brief A standard container with linear time access to elements, │ │ │ │ │ -980 * and fixed time insertion/deletion at any point in the sequence. │ │ │ │ │ -981 * │ │ │ │ │ -982 * @ingroup sequences │ │ │ │ │ -983 * │ │ │ │ │ -984 * @tparam _Tp Type of element. │ │ │ │ │ -985 * @tparam _Alloc Allocator type, defaults to allocator<_Tp>. │ │ │ │ │ -986 * │ │ │ │ │ -987 * Meets the requirements of a container, a │ │ │ │ │ -988 * reversible container, and a │ │ │ │ │ -989 * sequence, including the │ │ │ │ │ -990 * optional sequence requirements with the │ │ │ │ │ -991 * %exception of @c at and @c operator[]. │ │ │ │ │ -992 * │ │ │ │ │ -993 * This is a @e doubly @e linked %list. Traversal up and down the │ │ │ │ │ -994 * %list requires linear time, but adding and removing elements (or │ │ │ │ │ -995 * @e nodes) is done in constant time, regardless of where the │ │ │ │ │ -996 * change takes place. Unlike std::vector and std::deque, │ │ │ │ │ -997 * random-access iterators are not provided, so subscripting ( @c │ │ │ │ │ -998 * [] ) access is not allowed. For algorithms which only need │ │ │ │ │ -999 * sequential access, this lack makes no difference. │ │ │ │ │ -1000 * │ │ │ │ │ -1001 * Also unlike the other standard containers, std::list provides │ │ │ │ │ -1002 * specialized algorithms %unique to linked lists, such as │ │ │ │ │ -1003 * splicing, sorting, and in-place reversal. │ │ │ │ │ -1004 * │ │ │ │ │ -1005 * A couple points on memory allocation for list: │ │ │ │ │ -1006 * │ │ │ │ │ -1007 * First, we never actually allocate a Tp, we allocate │ │ │ │ │ -1008 * List_node's and trust [20.1.5]/4 to DTRT. This is to ensure │ │ │ │ │ -1009 * that after elements from %list are spliced into │ │ │ │ │ -1010 * %list, destroying the memory of the second %list is a │ │ │ │ │ -1011 * valid operation, i.e., Alloc1 giveth and Alloc2 taketh away. │ │ │ │ │ -1012 * │ │ │ │ │ -1013 * Second, a %list conceptually represented as │ │ │ │ │ -1014 * @code │ │ │ │ │ -1015 * A <---> B <---> C <---> D │ │ │ │ │ -1016 * @endcode │ │ │ │ │ -1017 * is actually circular; a link exists between A and D. The %list │ │ │ │ │ -1018 * class holds (as its only data member) a private list::iterator │ │ │ │ │ -1019 * pointing to @e D, not to @e A! To get to the head of the %list, │ │ │ │ │ -1020 * we start at the tail and move forward by one. When this member │ │ │ │ │ -1021 * iterator's next/previous pointers refer to itself, the %list is │ │ │ │ │ -1022 * %empty. │ │ │ │ │ -1023 */ │ │ │ │ │ -1024 template > │ │ │ │ │ -_1_0_2_5 class _l_i_s_t : protected ___L_i_s_t___b_a_s_e<_Tp, _Alloc> │ │ │ │ │ -1026 { │ │ │ │ │ -1027#ifdef _GLIBCXX_CONCEPT_CHECKS │ │ │ │ │ -1028 // concept requirements │ │ │ │ │ -1029 typedef typename _Alloc::value_type _Alloc_value_type; │ │ │ │ │ -1030# if __cplusplus < 201103L │ │ │ │ │ -1031 __glibcxx_class_requires(_Tp, _SGIAssignableConcept) │ │ │ │ │ -1032# endif │ │ │ │ │ -1033 __glibcxx_class_requires2(_Tp, _Alloc_value_type, _SameTypeConcept) │ │ │ │ │ -1034#endif │ │ │ │ │ -1035 │ │ │ │ │ -1036#if __cplusplus >= 201103L │ │ │ │ │ -1037 static_assert(_i_s___s_a_m_e_<_t_y_p_e_n_a_m_e_ _r_e_m_o_v_e___c_v_<___T_p_>_:_:_t_y_p_e, _Tp>::value, │ │ │ │ │ -1038 "std::list must have a non-const, non-volatile value_type"); │ │ │ │ │ -1039# if __cplusplus > 201703L || defined __STRICT_ANSI__ │ │ │ │ │ -1040 static_assert(_i_s___s_a_m_e_<_t_y_p_e_n_a_m_e_ ___A_l_l_o_c_:_:_v_a_l_u_e___t_y_p_e_,_ ___T_p_>_:_:_v_a_l_u_e, │ │ │ │ │ -1041 "std::list must have the same value_type as its allocator"); │ │ │ │ │ -1042# endif │ │ │ │ │ -1043#endif │ │ │ │ │ -1044 │ │ │ │ │ -1045 typedef ___L_i_s_t___b_a_s_e_<___T_p_,_ ___A_l_l_o_c_> ___B_a_s_e; │ │ │ │ │ -1046 typedef typename _Base::_Tp_alloc_type _Tp_alloc_type; │ │ │ │ │ -1047 typedef typename ___B_a_s_e_:_:___T_p___a_l_l_o_c___t_r_a_i_t_s ___T_p___a_l_l_o_c___t_r_a_i_t_s; │ │ │ │ │ -1048 typedef typename _Base::_Node_alloc_type _Node_alloc_type; │ │ │ │ │ -1049 typedef typename ___B_a_s_e_:_:___N_o_d_e___a_l_l_o_c___t_r_a_i_t_s ___N_o_d_e___a_l_l_o_c___t_r_a_i_t_s; │ │ │ │ │ -1050 typedef typename _Base::_Node_traits _Node_traits; │ │ │ │ │ -1051 │ │ │ │ │ -1052 public: │ │ │ │ │ -1053 typedef _Tp value_type; │ │ │ │ │ -1054 typedef typename _Tp_alloc_traits::pointer pointer; │ │ │ │ │ -1055 typedef typename _Tp_alloc_traits::const_pointer const_pointer; │ │ │ │ │ -1056 typedef typename _Tp_alloc_traits::reference reference; │ │ │ │ │ -1057 typedef typename _Tp_alloc_traits::const_reference const_reference; │ │ │ │ │ -1058 typedef typename _Node_traits::_Iterator iterator; │ │ │ │ │ -1059 typedef typename _Node_traits::_Const_iterator const_iterator; │ │ │ │ │ -1060 typedef _s_t_d_:_:_r_e_v_e_r_s_e___i_t_e_r_a_t_o_r_<_c_o_n_s_t___i_t_e_r_a_t_o_r_> _c_o_n_s_t___r_e_v_e_r_s_e___i_t_e_r_a_t_o_r; │ │ │ │ │ -1061 typedef _s_t_d_:_:_r_e_v_e_r_s_e___i_t_e_r_a_t_o_r_<_i_t_e_r_a_t_o_r_> _r_e_v_e_r_s_e___i_t_e_r_a_t_o_r; │ │ │ │ │ -1062 typedef size_t size_type; │ │ │ │ │ -1063 typedef ptrdiff_t difference_type; │ │ │ │ │ -1064 typedef _Alloc allocator_type; │ │ │ │ │ -1065 │ │ │ │ │ -1066 protected: │ │ │ │ │ -1067 // Note that pointers-to-_Node's can be ctor-converted to │ │ │ │ │ -1068 // iterator types. │ │ │ │ │ -1069 typedef typename _Node_alloc_traits::pointer _Node_ptr; │ │ │ │ │ -1070 │ │ │ │ │ -1071 using _Base::_M_impl; │ │ │ │ │ -1072 using _Base::_M_put_node; │ │ │ │ │ -1073 using _Base::_M_get_node; │ │ │ │ │ -1074 using _Base::_M_get_Node_allocator; │ │ │ │ │ -1075 │ │ │ │ │ -1076 /** │ │ │ │ │ -1077 * @param __args An instance of user data. │ │ │ │ │ -1078 * │ │ │ │ │ -1079 * Allocates space for a new node and constructs a copy of │ │ │ │ │ -1080 * @a __args in it. │ │ │ │ │ -1081 */ │ │ │ │ │ -1082#if __cplusplus < 201103L │ │ │ │ │ -1083 _Node_ptr │ │ │ │ │ -1084 _M_create_node(const value_type& __x) │ │ │ │ │ -1085 { │ │ │ │ │ -1086 _Node_ptr __p = this->_M_get_node(); │ │ │ │ │ -1087 __try │ │ │ │ │ -1088 { │ │ │ │ │ -1089 _Tp_alloc_type __alloc(_M_get_Node_allocator()); │ │ │ │ │ -1090 __alloc.construct(__p->_M_valptr(), __x); │ │ │ │ │ -1091 } │ │ │ │ │ -1092 __catch(...) │ │ │ │ │ -1093 { │ │ │ │ │ -1094 _M_put_node(__p); │ │ │ │ │ -1095 __throw_exception_again; │ │ │ │ │ -1096 } │ │ │ │ │ -1097 return __p; │ │ │ │ │ -1098 } │ │ │ │ │ -1099#else │ │ │ │ │ -1100 template │ │ │ │ │ -1101 _Node_ptr │ │ │ │ │ -_1_1_0_2 ___M___c_r_e_a_t_e___n_o_d_e(_Args&&... __args) │ │ │ │ │ -1103 { │ │ │ │ │ -1104 auto& __alloc = _M_get_Node_allocator(); │ │ │ │ │ -1105 auto __guard = std::__allocate_guarded_obj(__alloc); │ │ │ │ │ -1106 _Node_alloc_traits::construct(__alloc, __guard->_M_valptr(), │ │ │ │ │ -1107 std::forward<_Args>(__args)...); │ │ │ │ │ -1108 return __guard.release(); │ │ │ │ │ -1109 } │ │ │ │ │ -1110#endif │ │ │ │ │ -1111 │ │ │ │ │ -1112 public: │ │ │ │ │ -1113 // [23.2.2.1] construct/copy/destroy │ │ │ │ │ -1114 // (assign() and get_allocator() are also listed in this section) │ │ │ │ │ -1115 │ │ │ │ │ -1116 /** │ │ │ │ │ -1117 * @brief Creates a %list with no elements. │ │ │ │ │ -1118 */ │ │ │ │ │ -1119#if __cplusplus >= 201103L │ │ │ │ │ -_1_1_2_0 _l_i_s_t() = default; │ │ │ │ │ -1121#else │ │ │ │ │ -1122 _l_i_s_t() { } │ │ │ │ │ -1123#endif │ │ │ │ │ -1124 │ │ │ │ │ -1125 /** │ │ │ │ │ -1126 * @brief Creates a %list with no elements. │ │ │ │ │ -1127 * @param __a An allocator object. │ │ │ │ │ -1128 */ │ │ │ │ │ -1129 explicit │ │ │ │ │ -_1_1_3_0 _l_i_s_t(const allocator_type& __a) _GLIBCXX_NOEXCEPT │ │ │ │ │ -1131 : ___B_a_s_e(_Node_alloc_type(__a)) { } │ │ │ │ │ -1132 │ │ │ │ │ -1133#if __cplusplus >= 201103L │ │ │ │ │ -1134 /** │ │ │ │ │ -1135 * @brief Creates a %list with default constructed elements. │ │ │ │ │ -1136 * @param __n The number of elements to initially create. │ │ │ │ │ -1137 * @param __a An allocator object. │ │ │ │ │ -1138 * │ │ │ │ │ -1139 * This constructor fills the %list with @a __n default │ │ │ │ │ -1140 * constructed elements. │ │ │ │ │ -1141 */ │ │ │ │ │ -1142 explicit │ │ │ │ │ -_1_1_4_3 _l_i_s_t(size_type __n, const allocator_type& __a = allocator_type()) │ │ │ │ │ -1144 : ___B_a_s_e(_Node_alloc_type(__a)) │ │ │ │ │ -1145 { _M_default_initialize(__n); } │ │ │ │ │ -1146 │ │ │ │ │ -1147 /** │ │ │ │ │ -1148 * @brief Creates a %list with copies of an exemplar element. │ │ │ │ │ -1149 * @param __n The number of elements to initially create. │ │ │ │ │ -1150 * @param __value An element to copy. │ │ │ │ │ -1151 * @param __a An allocator object. │ │ │ │ │ -1152 * │ │ │ │ │ -1153 * This constructor fills the %list with @a __n copies of @a __value. │ │ │ │ │ -1154 */ │ │ │ │ │ -_1_1_5_5 _l_i_s_t(size_type __n, const value_type& __value, │ │ │ │ │ -1156 const allocator_type& __a = allocator_type()) │ │ │ │ │ -1157 : ___B_a_s_e(_Node_alloc_type(__a)) │ │ │ │ │ -1158 { _M_fill_initialize(__n, __value); } │ │ │ │ │ -1159#else │ │ │ │ │ -1160 /** │ │ │ │ │ -1161 * @brief Creates a %list with copies of an exemplar element. │ │ │ │ │ -1162 * @param __n The number of elements to initially create. │ │ │ │ │ -1163 * @param __value An element to copy. │ │ │ │ │ -1164 * @param __a An allocator object. │ │ │ │ │ -1165 * │ │ │ │ │ -1166 * This constructor fills the %list with @a __n copies of @a __value. │ │ │ │ │ -1167 */ │ │ │ │ │ -1168 explicit │ │ │ │ │ -1169 _l_i_s_t(size_type __n, const value_type& __value = value_type(), │ │ │ │ │ -1170 const allocator_type& __a = allocator_type()) │ │ │ │ │ -1171 : _Base(_Node_alloc_type(__a)) │ │ │ │ │ -1172 { _M_fill_initialize(__n, __value); } │ │ │ │ │ -1173#endif │ │ │ │ │ -1174 │ │ │ │ │ -1175 /** │ │ │ │ │ -1176 * @brief %List copy constructor. │ │ │ │ │ -1177 * @param __x A %list of identical element and allocator types. │ │ │ │ │ -1178 * │ │ │ │ │ -1179 * The newly-created %list uses a copy of the allocation object used │ │ │ │ │ -1180 * by @a __x (unless the allocator traits dictate a different object). │ │ │ │ │ -1181 */ │ │ │ │ │ -_1_1_8_2 _l_i_s_t(const _l_i_s_t& __x) │ │ │ │ │ -1183 : ___B_a_s_e(___N_o_d_e___a_l_l_o_c___t_r_a_i_t_s:: │ │ │ │ │ -1184 _S_select_on_copy(__x._M_get_Node_allocator())) │ │ │ │ │ -1185 { _M_initialize_dispatch(__x._b_e_g_i_n(), __x._e_n_d(), __false_type()); } │ │ │ │ │ -1186 │ │ │ │ │ -1187#if __cplusplus >= 201103L │ │ │ │ │ -1188 /** │ │ │ │ │ -1189 * @brief %List move constructor. │ │ │ │ │ -1190 * │ │ │ │ │ -1191 * The newly-created %list contains the exact contents of the moved │ │ │ │ │ -1192 * instance. The contents of the moved instance are a valid, but │ │ │ │ │ -1193 * unspecified %list. │ │ │ │ │ -1194 */ │ │ │ │ │ -_1_1_9_5 _l_i_s_t(_l_i_s_t&&) = default; │ │ │ │ │ -1196 │ │ │ │ │ -1197 /** │ │ │ │ │ -1198 * @brief Builds a %list from an initializer_list │ │ │ │ │ -1199 * @param __l An initializer_list of value_type. │ │ │ │ │ -1200 * @param __a An allocator object. │ │ │ │ │ -1201 * │ │ │ │ │ -1202 * Create a %list consisting of copies of the elements in the │ │ │ │ │ -1203 * initializer_list @a __l. This is linear in __l.size(). │ │ │ │ │ -1204 */ │ │ │ │ │ -_1_2_0_5 _l_i_s_t(_i_n_i_t_i_a_l_i_z_e_r___l_i_s_t_<_v_a_l_u_e___t_y_p_e_> __l, │ │ │ │ │ -1206 const allocator_type& __a = allocator_type()) │ │ │ │ │ -1207 : ___B_a_s_e(_Node_alloc_type(__a)) │ │ │ │ │ -1208 { _M_initialize_dispatch(__l.begin(), __l.end(), __false_type()); } │ │ │ │ │ -1209 │ │ │ │ │ -1210 _l_i_s_t(const _l_i_s_t& __x, const __type_identity_t& __a) │ │ │ │ │ -1211 : _Base(_Node_alloc_type(__a)) │ │ │ │ │ -1212 { _M_initialize_dispatch(__x._b_e_g_i_n(), __x._e_n_d(), __false_type()); } │ │ │ │ │ -1213 │ │ │ │ │ -1214 private: │ │ │ │ │ -1215 list(list&& __x, const allocator_type& __a, true_type) noexcept │ │ │ │ │ -1216 : _Base(_Node_alloc_type(__a), _s_t_d_:_:_m_o_v_e(__x)) │ │ │ │ │ -1217 { } │ │ │ │ │ -1218 │ │ │ │ │ -1219 list(list&& __x, const allocator_type& __a, false_type) │ │ │ │ │ -1220 : _Base(_Node_alloc_type(__a)) │ │ │ │ │ -1221 { │ │ │ │ │ -1222 if (__x._M_get_Node_allocator() == this->_M_get_Node_allocator()) │ │ │ │ │ -1223 this->_M_move_nodes(_s_t_d_:_:_m_o_v_e(__x)); │ │ │ │ │ -1224 else │ │ │ │ │ -1225 insert(_b_e_g_i_n(), std::__make_move_if_noexcept_iterator(__x._b_e_g_i_n()), │ │ │ │ │ -1226 std::__make_move_if_noexcept_iterator(__x._e_n_d())); │ │ │ │ │ -1227 } │ │ │ │ │ -1228 │ │ │ │ │ -1229 public: │ │ │ │ │ -1230 list(list&& __x, const __type_identity_t& __a) │ │ │ │ │ -1231 noexcept(_Node_alloc_traits::_S_always_equal()) │ │ │ │ │ -1232 : list(_s_t_d::_m_o_v_e(__x), __a, │ │ │ │ │ -1233 typename _Node_alloc_traits::is_always_equal{}) │ │ │ │ │ -1234 { } │ │ │ │ │ -1235#endif │ │ │ │ │ -1236 │ │ │ │ │ -1237 /** │ │ │ │ │ -1238 * @brief Builds a %list from a range. │ │ │ │ │ -1239 * @param __first An input iterator. │ │ │ │ │ -1240 * @param __last An input iterator. │ │ │ │ │ -1241 * @param __a An allocator object. │ │ │ │ │ -1242 * │ │ │ │ │ -1243 * Create a %list consisting of copies of the elements from │ │ │ │ │ -1244 * [@a __first,@a __last). This is linear in N (where N is │ │ │ │ │ -1245 * distance(@a __first,@a __last)). │ │ │ │ │ -1246 */ │ │ │ │ │ -1247#if __cplusplus >= 201103L │ │ │ │ │ -1248 template> │ │ │ │ │ -_1_2_5_0 _l_i_s_t(_InputIterator __first, _InputIterator __last, │ │ │ │ │ -1251 const allocator_type& __a = allocator_type()) │ │ │ │ │ -1252 : ___B_a_s_e(_Node_alloc_type(__a)) │ │ │ │ │ -1253 { _M_initialize_dispatch(__first, __last, __false_type()); } │ │ │ │ │ -1254#else │ │ │ │ │ -1255 template │ │ │ │ │ -1256 _l_i_s_t(_InputIterator __first, _InputIterator __last, │ │ │ │ │ -1257 const allocator_type& __a = allocator_type()) │ │ │ │ │ -1258 : _Base(_Node_alloc_type(__a)) │ │ │ │ │ -1259 { │ │ │ │ │ -1260 // Check whether it's an integral type. If so, it's not an iterator. │ │ │ │ │ -1261 typedef typename std::__is_integer<_InputIterator>::__type _Integral; │ │ │ │ │ -1262 _M_initialize_dispatch(__first, __last, _Integral()); │ │ │ │ │ -1263 } │ │ │ │ │ -1264#endif │ │ │ │ │ -1265 │ │ │ │ │ -1266#if __glibcxx_ranges_to_container // C++ >= 23 │ │ │ │ │ -1267 /** │ │ │ │ │ -1268 * @brief Construct a list from a range. │ │ │ │ │ -1269 * @since C++23 │ │ │ │ │ -1270 */ │ │ │ │ │ -1271 template<__detail::__container_compatible_range<_Tp> _Rg> │ │ │ │ │ -1272 list(from_range_t, _Rg&& __rg, const _Alloc& __a = _Alloc()) │ │ │ │ │ -1273 : _Base(_Node_alloc_type(__a)) │ │ │ │ │ -1274 { │ │ │ │ │ -1275 auto __first = ranges::begin(__rg); │ │ │ │ │ -1276 const auto __last = ranges::end(__rg); │ │ │ │ │ -1277 for (; __first != __last; ++__first) │ │ │ │ │ -1278 emplace_back(*__first); │ │ │ │ │ -1279 } │ │ │ │ │ -1280#endif │ │ │ │ │ -1281 │ │ │ │ │ -1282#if __cplusplus >= 201103L │ │ │ │ │ -1283 /** │ │ │ │ │ -1284 * No explicit dtor needed as the _Base dtor takes care of │ │ │ │ │ -1285 * things. The _Base dtor only erases the elements, and note │ │ │ │ │ -1286 * that if the elements themselves are pointers, the pointed-to │ │ │ │ │ -1287 * memory is not touched in any way. Managing the pointer is │ │ │ │ │ -1288 * the user's responsibility. │ │ │ │ │ -1289 */ │ │ │ │ │ -_1_2_9_0 _~_l_i_s_t() = default; │ │ │ │ │ -1291#endif │ │ │ │ │ -1292 │ │ │ │ │ -1293 /** │ │ │ │ │ -1294 * @brief %List assignment operator. │ │ │ │ │ -1295 * @param __x A %list of identical element and allocator types. │ │ │ │ │ -1296 * │ │ │ │ │ -1297 * All the elements of @a __x are copied. │ │ │ │ │ -1298 * │ │ │ │ │ -1299 * Whether the allocator is copied depends on the allocator traits. │ │ │ │ │ -1300 */ │ │ │ │ │ -1301 _l_i_s_t& │ │ │ │ │ -1302 operator=(const _l_i_s_t& __x); │ │ │ │ │ -1303 │ │ │ │ │ -1304#if __cplusplus >= 201103L │ │ │ │ │ -1305#pragma GCC diagnostic push │ │ │ │ │ -1306#pragma GCC diagnostic ignored "-Wc++17-extensions" // if constexpr │ │ │ │ │ -1307 /** │ │ │ │ │ -1308 * @brief %List move assignment operator. │ │ │ │ │ -1309 * @param __x A %list of identical element and allocator types. │ │ │ │ │ -1310 * │ │ │ │ │ -1311 * The contents of @a __x are moved into this %list (without copying). │ │ │ │ │ -1312 * │ │ │ │ │ -1313 * Afterwards @a __x is a valid, but unspecified %list │ │ │ │ │ -1314 * │ │ │ │ │ -1315 * Whether the allocator is moved depends on the allocator traits. │ │ │ │ │ -1316 */ │ │ │ │ │ -1317 _l_i_s_t& │ │ │ │ │ -_1_3_1_8 _o_p_e_r_a_t_o_r_=(_l_i_s_t&& __x) │ │ │ │ │ -1319 noexcept(_Node_alloc_traits::_S_nothrow_move()) │ │ │ │ │ -1320 { │ │ │ │ │ -1321 constexpr bool __move_storage = │ │ │ │ │ -1322 _Node_alloc_traits::_S_propagate_on_move_assign() │ │ │ │ │ -1323 || _Node_alloc_traits::_S_always_equal(); │ │ │ │ │ -1324 if constexpr (!__move_storage) │ │ │ │ │ -1325 { │ │ │ │ │ -1326 if (__x._M_get_Node_allocator() != this->_M_get_Node_allocator()) │ │ │ │ │ -1327 { │ │ │ │ │ -1328 // The rvalue's allocator cannot be moved, or is not equal, │ │ │ │ │ -1329 // so we need to individually move each element. │ │ │ │ │ -1330 _M_assign_dispatch(std::make_move_iterator(__x._b_e_g_i_n()), │ │ │ │ │ -1331 std::make_move_iterator(__x._e_n_d()), │ │ │ │ │ -1332 __false_type{}); │ │ │ │ │ -1333 return *this; │ │ │ │ │ -1334 } │ │ │ │ │ -1335 } │ │ │ │ │ -1336 │ │ │ │ │ -1337 this->clear(); │ │ │ │ │ -1338 this->_M_move_nodes(_s_t_d_:_:_m_o_v_e(__x)); │ │ │ │ │ -1339 │ │ │ │ │ -1340 if constexpr (_Node_alloc_traits::_S_propagate_on_move_assign()) │ │ │ │ │ -1341 this->_M_get_Node_allocator() │ │ │ │ │ -1342 = _s_t_d_:_:_m_o_v_e(__x._M_get_Node_allocator()); │ │ │ │ │ -1343 │ │ │ │ │ -1344 return *this; │ │ │ │ │ -1345 } │ │ │ │ │ -1346#pragma GCC diagnostic pop │ │ │ │ │ -1347 │ │ │ │ │ -1348 /** │ │ │ │ │ -1349 * @brief %List initializer list assignment operator. │ │ │ │ │ -1350 * @param __l An initializer_list of value_type. │ │ │ │ │ -1351 * │ │ │ │ │ -1352 * Replace the contents of the %list with copies of the elements │ │ │ │ │ -1353 * in the initializer_list @a __l. This is linear in l.size(). │ │ │ │ │ -1354 */ │ │ │ │ │ -1355 _l_i_s_t& │ │ │ │ │ -_1_3_5_6 _o_p_e_r_a_t_o_r_=(_i_n_i_t_i_a_l_i_z_e_r___l_i_s_t_<_v_a_l_u_e___t_y_p_e_> __l) │ │ │ │ │ -1357 { │ │ │ │ │ -1358 this->assign(__l.begin(), __l.end()); │ │ │ │ │ -1359 return *this; │ │ │ │ │ -1360 } │ │ │ │ │ -1361#endif │ │ │ │ │ -1362 │ │ │ │ │ -1363#if __glibcxx_ranges_to_container // C++ >= 23 │ │ │ │ │ -1364 /** │ │ │ │ │ -1365 * @brief Assign a range to a list. │ │ │ │ │ -1366 * @since C++23 │ │ │ │ │ -1367 */ │ │ │ │ │ -1368 template<__detail::__container_compatible_range<_Tp> _Rg> │ │ │ │ │ -1369 void │ │ │ │ │ -1370 assign_range(_Rg&& __rg) │ │ │ │ │ -1371 { │ │ │ │ │ -1372 static_assert(assignable_from<_Tp&, ranges::range_reference_t<_Rg>>); │ │ │ │ │ -1373 │ │ │ │ │ -1374 _i_t_e_r_a_t_o_r __first1 = _b_e_g_i_n(); │ │ │ │ │ -1375 const _i_t_e_r_a_t_o_r __last1 = _e_n_d(); │ │ │ │ │ -1376 auto __first2 = ranges::begin(__rg); │ │ │ │ │ -1377 const auto __last2 = ranges::end(__rg); │ │ │ │ │ -1378 for (; __first1 != __last1 && __first2 != __last2; │ │ │ │ │ -1379 ++__first1, (void)++__first2) │ │ │ │ │ -1380 *__first1 = *__first2; │ │ │ │ │ -1381 if (__first2 == __last2) │ │ │ │ │ -1382 erase(__first1, __last1); │ │ │ │ │ -1383 else │ │ │ │ │ -1384 insert_range(__last1, │ │ │ │ │ -1385 _r_a_n_g_e_s_:_:_s_u_b_r_a_n_g_e(_s_t_d_:_:_m_o_v_e(__first2), __last2)); │ │ │ │ │ -1386 } │ │ │ │ │ -1387#endif │ │ │ │ │ -1388 │ │ │ │ │ -1389 /** │ │ │ │ │ -1390 * @brief Assigns a given value to a %list. │ │ │ │ │ -1391 * @param __n Number of elements to be assigned. │ │ │ │ │ -1392 * @param __val Value to be assigned. │ │ │ │ │ -1393 * │ │ │ │ │ -1394 * This function fills a %list with @a __n copies of the given │ │ │ │ │ -1395 * value. Note that the assignment completely changes the %list │ │ │ │ │ -1396 * and that the resulting %list's size is the same as the number │ │ │ │ │ -1397 * of elements assigned. │ │ │ │ │ -1398 */ │ │ │ │ │ -1399 void │ │ │ │ │ -_1_4_0_0 _a_s_s_i_g_n(size_type __n, const value_type& __val) │ │ │ │ │ -1401 { _M_fill_assign(__n, __val); } │ │ │ │ │ -1402 │ │ │ │ │ -1403 /** │ │ │ │ │ -1404 * @brief Assigns a range to a %list. │ │ │ │ │ -1405 * @param __first An input iterator. │ │ │ │ │ -1406 * @param __last An input iterator. │ │ │ │ │ -1407 * │ │ │ │ │ -1408 * This function fills a %list with copies of the elements in the │ │ │ │ │ -1409 * range [@a __first,@a __last). │ │ │ │ │ -1410 * │ │ │ │ │ -1411 * Note that the assignment completely changes the %list and │ │ │ │ │ -1412 * that the resulting %list's size is the same as the number of │ │ │ │ │ -1413 * elements assigned. │ │ │ │ │ -1414 */ │ │ │ │ │ -1415#if __cplusplus >= 201103L │ │ │ │ │ -1416 template> │ │ │ │ │ -1418 void │ │ │ │ │ -_1_4_1_9 _a_s_s_i_g_n(_InputIterator __first, _InputIterator __last) │ │ │ │ │ -1420 { _M_assign_dispatch(__first, __last, __false_type()); } │ │ │ │ │ -1421#else │ │ │ │ │ -1422 template │ │ │ │ │ -1423 void │ │ │ │ │ -1424 assign(_InputIterator __first, _InputIterator __last) │ │ │ │ │ -1425 { │ │ │ │ │ -1426 // Check whether it's an integral type. If so, it's not an iterator. │ │ │ │ │ -1427 typedef typename std::__is_integer<_InputIterator>::__type _Integral; │ │ │ │ │ -1428 _M_assign_dispatch(__first, __last, _Integral()); │ │ │ │ │ -1429 } │ │ │ │ │ -1430#endif │ │ │ │ │ -1431 │ │ │ │ │ -1432#if __cplusplus >= 201103L │ │ │ │ │ -1433 /** │ │ │ │ │ -1434 * @brief Assigns an initializer_list to a %list. │ │ │ │ │ -1435 * @param __l An initializer_list of value_type. │ │ │ │ │ -1436 * │ │ │ │ │ -1437 * Replace the contents of the %list with copies of the elements │ │ │ │ │ -1438 * in the initializer_list @a __l. This is linear in __l.size(). │ │ │ │ │ -1439 */ │ │ │ │ │ -1440 void │ │ │ │ │ -_1_4_4_1 _a_s_s_i_g_n(_i_n_i_t_i_a_l_i_z_e_r___l_i_s_t_<_v_a_l_u_e___t_y_p_e_> __l) │ │ │ │ │ -1442 { this->_M_assign_dispatch(__l.begin(), __l.end(), __false_type()); } │ │ │ │ │ -1443#endif │ │ │ │ │ -1444 │ │ │ │ │ -1445 /// Get a copy of the memory allocation object. │ │ │ │ │ -1446 allocator_type │ │ │ │ │ -_1_4_4_7 _g_e_t___a_l_l_o_c_a_t_o_r() const _GLIBCXX_NOEXCEPT │ │ │ │ │ -1448 { return allocator_type(_Base::_M_get_Node_allocator()); } │ │ │ │ │ -1449 │ │ │ │ │ -1450 // iterators │ │ │ │ │ -1451 /** │ │ │ │ │ -1452 * Returns a read/write iterator that points to the first element in the │ │ │ │ │ -1453 * %list. Iteration is done in ordinary element order. │ │ │ │ │ -1454 */ │ │ │ │ │ -1455 _GLIBCXX_NODISCARD │ │ │ │ │ -1456 _i_t_e_r_a_t_o_r │ │ │ │ │ -_1_4_5_7 _b_e_g_i_n() _GLIBCXX_NOEXCEPT │ │ │ │ │ -1458 { return iterator(this->_M_impl._M_node._M_next); } │ │ │ │ │ -1459 │ │ │ │ │ -1460 /** │ │ │ │ │ -1461 * Returns a read-only (constant) iterator that points to the │ │ │ │ │ -1462 * first element in the %list. Iteration is done in ordinary │ │ │ │ │ -1463 * element order. │ │ │ │ │ -1464 */ │ │ │ │ │ -1465 _GLIBCXX_NODISCARD │ │ │ │ │ -1466 const_iterator │ │ │ │ │ -_1_4_6_7 _b_e_g_i_n() const _GLIBCXX_NOEXCEPT │ │ │ │ │ -1468 { return const_iterator(this->_M_impl._M_node._M_next); } │ │ │ │ │ -1469 │ │ │ │ │ -1470 /** │ │ │ │ │ -1471 * Returns a read/write iterator that points one past the last │ │ │ │ │ -1472 * element in the %list. Iteration is done in ordinary element │ │ │ │ │ -1473 * order. │ │ │ │ │ -1474 */ │ │ │ │ │ -1475 _GLIBCXX_NODISCARD │ │ │ │ │ -1476 _i_t_e_r_a_t_o_r │ │ │ │ │ -_1_4_7_7 _e_n_d() _GLIBCXX_NOEXCEPT │ │ │ │ │ -1478 { return iterator(this->_M_impl._M_node._M_base()); } │ │ │ │ │ -1479 │ │ │ │ │ -1480 /** │ │ │ │ │ -1481 * Returns a read-only (constant) iterator that points one past │ │ │ │ │ -1482 * the last element in the %list. Iteration is done in ordinary │ │ │ │ │ -1483 * element order. │ │ │ │ │ -1484 */ │ │ │ │ │ -1485 _GLIBCXX_NODISCARD │ │ │ │ │ -1486 const_iterator │ │ │ │ │ -_1_4_8_7 _e_n_d() const _GLIBCXX_NOEXCEPT │ │ │ │ │ -1488 { return const_iterator(this->_M_impl._M_node._M_base()); } │ │ │ │ │ -1489 │ │ │ │ │ -1490 /** │ │ │ │ │ -1491 * Returns a read/write reverse iterator that points to the last │ │ │ │ │ -1492 * element in the %list. Iteration is done in reverse element │ │ │ │ │ -1493 * order. │ │ │ │ │ -1494 */ │ │ │ │ │ -1495 _GLIBCXX_NODISCARD │ │ │ │ │ -1496 _r_e_v_e_r_s_e___i_t_e_r_a_t_o_r │ │ │ │ │ -_1_4_9_7 _r_b_e_g_i_n() _GLIBCXX_NOEXCEPT │ │ │ │ │ -1498 { return _r_e_v_e_r_s_e___i_t_e_r_a_t_o_r(_e_n_d()); } │ │ │ │ │ -1499 │ │ │ │ │ -1500 /** │ │ │ │ │ -1501 * Returns a read-only (constant) reverse iterator that points to │ │ │ │ │ -1502 * the last element in the %list. Iteration is done in reverse │ │ │ │ │ -1503 * element order. │ │ │ │ │ -1504 */ │ │ │ │ │ -1505 _GLIBCXX_NODISCARD │ │ │ │ │ -1506 const_reverse_iterator │ │ │ │ │ -_1_5_0_7 _r_b_e_g_i_n() const _GLIBCXX_NOEXCEPT │ │ │ │ │ -1508 { return _c_o_n_s_t___r_e_v_e_r_s_e___i_t_e_r_a_t_o_r(_e_n_d()); } │ │ │ │ │ -1509 │ │ │ │ │ -1510 /** │ │ │ │ │ -1511 * Returns a read/write reverse iterator that points to one │ │ │ │ │ -1512 * before the first element in the %list. Iteration is done in │ │ │ │ │ -1513 * reverse element order. │ │ │ │ │ -1514 */ │ │ │ │ │ -1515 _GLIBCXX_NODISCARD │ │ │ │ │ -1516 _r_e_v_e_r_s_e___i_t_e_r_a_t_o_r │ │ │ │ │ -_1_5_1_7 _r_e_n_d() _GLIBCXX_NOEXCEPT │ │ │ │ │ -1518 { return _r_e_v_e_r_s_e___i_t_e_r_a_t_o_r(_b_e_g_i_n()); } │ │ │ │ │ -1519 │ │ │ │ │ -1520 /** │ │ │ │ │ -1521 * Returns a read-only (constant) reverse iterator that points to one │ │ │ │ │ -1522 * before the first element in the %list. Iteration is done in reverse │ │ │ │ │ -1523 * element order. │ │ │ │ │ -1524 */ │ │ │ │ │ -1525 _GLIBCXX_NODISCARD │ │ │ │ │ -1526 const_reverse_iterator │ │ │ │ │ -_1_5_2_7 _r_e_n_d() const _GLIBCXX_NOEXCEPT │ │ │ │ │ -1528 { return _c_o_n_s_t___r_e_v_e_r_s_e___i_t_e_r_a_t_o_r(_b_e_g_i_n()); } │ │ │ │ │ -1529 │ │ │ │ │ -1530#if __cplusplus >= 201103L │ │ │ │ │ -1531 /** │ │ │ │ │ -1532 * Returns a read-only (constant) iterator that points to the │ │ │ │ │ -1533 * first element in the %list. Iteration is done in ordinary │ │ │ │ │ -1534 * element order. │ │ │ │ │ -1535 */ │ │ │ │ │ -1536 [[__nodiscard__]] │ │ │ │ │ -1537 const_iterator │ │ │ │ │ -_1_5_3_8 _c_b_e_g_i_n() const noexcept │ │ │ │ │ -1539 { return const_iterator(this->_M_impl._M_node._M_next); } │ │ │ │ │ -1540 │ │ │ │ │ -1541 /** │ │ │ │ │ -1542 * Returns a read-only (constant) iterator that points one past │ │ │ │ │ -1543 * the last element in the %list. Iteration is done in ordinary │ │ │ │ │ -1544 * element order. │ │ │ │ │ -1545 */ │ │ │ │ │ -1546 [[__nodiscard__]] │ │ │ │ │ -1547 const_iterator │ │ │ │ │ -_1_5_4_8 _c_e_n_d() const noexcept │ │ │ │ │ -1549 { return const_iterator(this->_M_impl._M_node._M_base()); } │ │ │ │ │ -1550 │ │ │ │ │ -1551 /** │ │ │ │ │ -1552 * Returns a read-only (constant) reverse iterator that points to │ │ │ │ │ -1553 * the last element in the %list. Iteration is done in reverse │ │ │ │ │ -1554 * element order. │ │ │ │ │ -1555 */ │ │ │ │ │ -1556 [[__nodiscard__]] │ │ │ │ │ -1557 const_reverse_iterator │ │ │ │ │ -_1_5_5_8 _c_r_b_e_g_i_n() const noexcept │ │ │ │ │ -1559 { return _c_o_n_s_t___r_e_v_e_r_s_e___i_t_e_r_a_t_o_r(_e_n_d()); } │ │ │ │ │ -1560 │ │ │ │ │ -1561 /** │ │ │ │ │ -1562 * Returns a read-only (constant) reverse iterator that points to one │ │ │ │ │ -1563 * before the first element in the %list. Iteration is done in reverse │ │ │ │ │ -1564 * element order. │ │ │ │ │ -1565 */ │ │ │ │ │ -1566 [[__nodiscard__]] │ │ │ │ │ -1567 const_reverse_iterator │ │ │ │ │ -_1_5_6_8 _c_r_e_n_d() const noexcept │ │ │ │ │ -1569 { return _c_o_n_s_t___r_e_v_e_r_s_e___i_t_e_r_a_t_o_r(_b_e_g_i_n()); } │ │ │ │ │ -1570#endif │ │ │ │ │ -1571 │ │ │ │ │ -1572 // [23.2.2.2] capacity │ │ │ │ │ -1573 /** │ │ │ │ │ -1574 * Returns true if the %list is empty. (Thus begin() would equal │ │ │ │ │ -1575 * end().) │ │ │ │ │ -1576 */ │ │ │ │ │ -1577 _GLIBCXX_NODISCARD bool │ │ │ │ │ -_1_5_7_8 _e_m_p_t_y() const _GLIBCXX_NOEXCEPT │ │ │ │ │ -1579 { │ │ │ │ │ -1580 return this->_M_impl._M_node._M_next == this->_M_impl._M_node._M_base(); │ │ │ │ │ -1581 } │ │ │ │ │ -1582 │ │ │ │ │ -1583 /** Returns the number of elements in the %list. */ │ │ │ │ │ -1584 _GLIBCXX_NODISCARD │ │ │ │ │ -1585 size_type │ │ │ │ │ -_1_5_8_6 _s_i_z_e() const _GLIBCXX_NOEXCEPT │ │ │ │ │ -1587 { │ │ │ │ │ -1588#if _GLIBCXX_USE_CXX11_ABI │ │ │ │ │ -1589 return this->_M_get_size(); // return the stored size │ │ │ │ │ -1590#else │ │ │ │ │ -1591 return _s_t_d_:_:_d_i_s_t_a_n_c_e(_b_e_g_i_n(), _e_n_d()); // count the number of nodes │ │ │ │ │ -1592#endif │ │ │ │ │ -1593 } │ │ │ │ │ -1594 │ │ │ │ │ -1595 /** Returns the size() of the largest possible %list. */ │ │ │ │ │ -1596 _GLIBCXX_NODISCARD │ │ │ │ │ -1597 size_type │ │ │ │ │ -_1_5_9_8 _m_a_x___s_i_z_e() const _GLIBCXX_NOEXCEPT │ │ │ │ │ -1599 { return _Node_alloc_traits::max_size(_M_get_Node_allocator()); } │ │ │ │ │ -1600 │ │ │ │ │ -1601#if __cplusplus >= 201103L │ │ │ │ │ -1602 /** │ │ │ │ │ -1603 * @brief Resizes the %list to the specified number of elements. │ │ │ │ │ -1604 * @param __new_size Number of elements the %list should contain. │ │ │ │ │ -1605 * │ │ │ │ │ -1606 * This function will %resize the %list to the specified number │ │ │ │ │ -1607 * of elements. If the number is smaller than the %list's │ │ │ │ │ -1608 * current size the %list is truncated, otherwise default │ │ │ │ │ -1609 * constructed elements are appended. │ │ │ │ │ -1610 */ │ │ │ │ │ -1611 void │ │ │ │ │ -1612 resize(size_type __new_size); │ │ │ │ │ -1613 │ │ │ │ │ -1614 /** │ │ │ │ │ -1615 * @brief Resizes the %list to the specified number of elements. │ │ │ │ │ -1616 * @param __new_size Number of elements the %list should contain. │ │ │ │ │ -1617 * @param __x Data with which new elements should be populated. │ │ │ │ │ -1618 * │ │ │ │ │ -1619 * This function will %resize the %list to the specified number │ │ │ │ │ -1620 * of elements. If the number is smaller than the %list's │ │ │ │ │ -1621 * current size the %list is truncated, otherwise the %list is │ │ │ │ │ -1622 * extended and new elements are populated with given data. │ │ │ │ │ -1623 */ │ │ │ │ │ -1624 void │ │ │ │ │ -1625 resize(size_type __new_size, const value_type& __x); │ │ │ │ │ -1626#else │ │ │ │ │ -1627 /** │ │ │ │ │ -1628 * @brief Resizes the %list to the specified number of elements. │ │ │ │ │ -1629 * @param __new_size Number of elements the %list should contain. │ │ │ │ │ -1630 * @param __x Data with which new elements should be populated. │ │ │ │ │ -1631 * │ │ │ │ │ -1632 * This function will %resize the %list to the specified number │ │ │ │ │ -1633 * of elements. If the number is smaller than the %list's │ │ │ │ │ -1634 * current size the %list is truncated, otherwise the %list is │ │ │ │ │ -1635 * extended and new elements are populated with given data. │ │ │ │ │ -1636 */ │ │ │ │ │ -1637 void │ │ │ │ │ -1638 resize(size_type __new_size, value_type __x = value_type()); │ │ │ │ │ -1639#endif │ │ │ │ │ -1640 │ │ │ │ │ -1641 // element access │ │ │ │ │ -1642 /** │ │ │ │ │ -1643 * Returns a read/write reference to the data at the first │ │ │ │ │ -1644 * element of the %list. │ │ │ │ │ -1645 */ │ │ │ │ │ -1646 _GLIBCXX_NODISCARD │ │ │ │ │ -1647 reference │ │ │ │ │ -_1_6_4_8 _f_r_o_n_t() _GLIBCXX_NOEXCEPT │ │ │ │ │ -1649 { │ │ │ │ │ -1650 __glibcxx_requires_nonempty(); │ │ │ │ │ -1651 return *_b_e_g_i_n(); │ │ │ │ │ -1652 } │ │ │ │ │ -1653 │ │ │ │ │ -1654 /** │ │ │ │ │ -1655 * Returns a read-only (constant) reference to the data at the first │ │ │ │ │ -1656 * element of the %list. │ │ │ │ │ -1657 */ │ │ │ │ │ -1658 _GLIBCXX_NODISCARD │ │ │ │ │ -1659 const_reference │ │ │ │ │ -_1_6_6_0 _f_r_o_n_t() const _GLIBCXX_NOEXCEPT │ │ │ │ │ -1661 { │ │ │ │ │ -1662 __glibcxx_requires_nonempty(); │ │ │ │ │ -1663 return *_b_e_g_i_n(); │ │ │ │ │ -1664 } │ │ │ │ │ -1665 │ │ │ │ │ -1666 /** │ │ │ │ │ -1667 * Returns a read/write reference to the data at the last element │ │ │ │ │ -1668 * of the %list. │ │ │ │ │ -1669 */ │ │ │ │ │ -1670 _GLIBCXX_NODISCARD │ │ │ │ │ -1671 reference │ │ │ │ │ -_1_6_7_2 _b_a_c_k() _GLIBCXX_NOEXCEPT │ │ │ │ │ -1673 { │ │ │ │ │ -1674 __glibcxx_requires_nonempty(); │ │ │ │ │ -1675 iterator __tmp = _e_n_d(); │ │ │ │ │ -1676 --__tmp; │ │ │ │ │ -1677 return *__tmp; │ │ │ │ │ -1678 } │ │ │ │ │ -1679 │ │ │ │ │ -1680 /** │ │ │ │ │ -1681 * Returns a read-only (constant) reference to the data at the last │ │ │ │ │ -1682 * element of the %list. │ │ │ │ │ -1683 */ │ │ │ │ │ -1684 _GLIBCXX_NODISCARD │ │ │ │ │ -1685 const_reference │ │ │ │ │ -_1_6_8_6 _b_a_c_k() const _GLIBCXX_NOEXCEPT │ │ │ │ │ -1687 { │ │ │ │ │ -1688 __glibcxx_requires_nonempty(); │ │ │ │ │ -1689 const_iterator __tmp = _e_n_d(); │ │ │ │ │ -1690 --__tmp; │ │ │ │ │ -1691 return *__tmp; │ │ │ │ │ -1692 } │ │ │ │ │ -1693 │ │ │ │ │ -1694 // [23.2.2.3] modifiers │ │ │ │ │ -1695 /** │ │ │ │ │ -1696 * @brief Add data to the front of the %list. │ │ │ │ │ -1697 * @param __x Data to be added. │ │ │ │ │ -1698 * │ │ │ │ │ -1699 * This is a typical stack operation. The function creates an │ │ │ │ │ -1700 * element at the front of the %list and assigns the given data │ │ │ │ │ -1701 * to it. Due to the nature of a %list this operation can be │ │ │ │ │ -1702 * done in constant time, and does not invalidate iterators and │ │ │ │ │ -1703 * references. │ │ │ │ │ -1704 */ │ │ │ │ │ -1705 void │ │ │ │ │ -_1_7_0_6 _p_u_s_h___f_r_o_n_t(const value_type& __x) │ │ │ │ │ -1707 { this->_M_insert(_b_e_g_i_n(), __x); } │ │ │ │ │ -1708 │ │ │ │ │ -1709#if __cplusplus >= 201103L │ │ │ │ │ -1710 void │ │ │ │ │ -1711 push_front(value_type&& __x) │ │ │ │ │ -1712 { this->_M_insert(_b_e_g_i_n(), _s_t_d_:_:_m_o_v_e(__x)); } │ │ │ │ │ -1713 │ │ │ │ │ -1714 template │ │ │ │ │ -1715#if __cplusplus > 201402L │ │ │ │ │ -1716 reference │ │ │ │ │ -1717#else │ │ │ │ │ -1718 void │ │ │ │ │ -1719#endif │ │ │ │ │ -1720 emplace_front(_Args&&... __args) │ │ │ │ │ -1721 { │ │ │ │ │ -1722 this->_M_insert(begin(), std::forward<_Args>(__args)...); │ │ │ │ │ -1723#if __cplusplus > 201402L │ │ │ │ │ -1724 return front(); │ │ │ │ │ -1725#endif │ │ │ │ │ -1726 } │ │ │ │ │ -1727#endif │ │ │ │ │ -1728 │ │ │ │ │ -1729#if __glibcxx_ranges_to_container // C++ >= 23 │ │ │ │ │ -1730 /** │ │ │ │ │ -1731 * @brief Insert a range at the beginning of a list. │ │ │ │ │ -1732 * @param __rg An input range of elements that can be converted to │ │ │ │ │ -1733 * the list's value type. │ │ │ │ │ -1734 * │ │ │ │ │ -1735 * Inserts the elements of `__rg` at the beginning of the list. │ │ │ │ │ -1736 * No iterators to existing elements are invalidated by this function. │ │ │ │ │ -1737 * If the insertion fails due to an exception, no elements will be added │ │ │ │ │ -1738 * and so the list will be unchanged. │ │ │ │ │ -1739 * │ │ │ │ │ -1740 * @since C++23 │ │ │ │ │ -1741 */ │ │ │ │ │ -1742 template<__detail::__container_compatible_range<_Tp> _Rg> │ │ │ │ │ -1743 void │ │ │ │ │ -1744 prepend_range(_Rg&& __rg) │ │ │ │ │ -1745 { │ │ │ │ │ -1746 list __tmp(from_range, std::forward<_Rg>(__rg), get_allocator()); │ │ │ │ │ -1747 if (!__tmp.empty()) │ │ │ │ │ -1748 splice(_b_e_g_i_n(), __tmp); │ │ │ │ │ -1749 } │ │ │ │ │ -1750 │ │ │ │ │ -1751 /** │ │ │ │ │ -1752 * @brief Insert a range at the end of a list. │ │ │ │ │ -1753 * @param __rg An input range of elements that can be converted to │ │ │ │ │ -1754 * the list's value type. │ │ │ │ │ -1755 * │ │ │ │ │ -1756 * Inserts the elements of `__rg` at the end of the list. │ │ │ │ │ -1757 * No iterators to existing elements are invalidated by this function. │ │ │ │ │ -1758 * If the insertion fails due to an exception, no elements will be added │ │ │ │ │ -1759 * and so the list will be unchanged. │ │ │ │ │ -1760 * │ │ │ │ │ -1761 * @since C++23 │ │ │ │ │ -1762 */ │ │ │ │ │ -1763 template<__detail::__container_compatible_range<_Tp> _Rg> │ │ │ │ │ -1764 void │ │ │ │ │ -1765 append_range(_Rg&& __rg) │ │ │ │ │ -1766 { │ │ │ │ │ -1767 list __tmp(from_range, std::forward<_Rg>(__rg), get_allocator()); │ │ │ │ │ -1768 if (!__tmp.empty()) │ │ │ │ │ -1769 splice(_e_n_d(), __tmp); │ │ │ │ │ -1770 } │ │ │ │ │ -1771#endif │ │ │ │ │ -1772 │ │ │ │ │ -1773 /** │ │ │ │ │ -1774 * @brief Removes first element. │ │ │ │ │ -1775 * │ │ │ │ │ -1776 * This is a typical stack operation. It shrinks the %list by │ │ │ │ │ -1777 * one. Due to the nature of a %list this operation can be done │ │ │ │ │ -1778 * in constant time, and only invalidates iterators/references to │ │ │ │ │ -1779 * the element being removed. │ │ │ │ │ -1780 * │ │ │ │ │ -1781 * Note that no data is returned, and if the first element's data │ │ │ │ │ -1782 * is needed, it should be retrieved before pop_front() is │ │ │ │ │ -1783 * called. │ │ │ │ │ -1784 */ │ │ │ │ │ -1785 void │ │ │ │ │ -_1_7_8_6 _p_o_p___f_r_o_n_t() _GLIBCXX_NOEXCEPT │ │ │ │ │ -1787 { │ │ │ │ │ -1788 __glibcxx_requires_nonempty(); │ │ │ │ │ -1789 this->_M_erase(_b_e_g_i_n()); │ │ │ │ │ -1790 } │ │ │ │ │ -1791 │ │ │ │ │ -1792 /** │ │ │ │ │ -1793 * @brief Add data to the end of the %list. │ │ │ │ │ -1794 * @param __x Data to be added. │ │ │ │ │ -1795 * │ │ │ │ │ -1796 * This is a typical stack operation. The function creates an │ │ │ │ │ -1797 * element at the end of the %list and assigns the given data to │ │ │ │ │ -1798 * it. Due to the nature of a %list this operation can be done │ │ │ │ │ -1799 * in constant time, and does not invalidate iterators and │ │ │ │ │ -1800 * references. │ │ │ │ │ -1801 */ │ │ │ │ │ -1802 void │ │ │ │ │ -_1_8_0_3 _p_u_s_h___b_a_c_k(const value_type& __x) │ │ │ │ │ -1804 { this->_M_insert(_e_n_d(), __x); } │ │ │ │ │ -1805 │ │ │ │ │ -1806#if __cplusplus >= 201103L │ │ │ │ │ -1807 void │ │ │ │ │ -1808 push_back(value_type&& __x) │ │ │ │ │ -1809 { this->_M_insert(_e_n_d(), _s_t_d_:_:_m_o_v_e(__x)); } │ │ │ │ │ -1810 │ │ │ │ │ -1811 template │ │ │ │ │ -1812#if __cplusplus > 201402L │ │ │ │ │ -1813 reference │ │ │ │ │ -1814#else │ │ │ │ │ -1815 void │ │ │ │ │ -1816#endif │ │ │ │ │ -1817 emplace_back(_Args&&... __args) │ │ │ │ │ -1818 { │ │ │ │ │ -1819 this->_M_insert(end(), std::forward<_Args>(__args)...); │ │ │ │ │ -1820#if __cplusplus > 201402L │ │ │ │ │ -1821 return back(); │ │ │ │ │ -1822#endif │ │ │ │ │ -1823 } │ │ │ │ │ -1824#endif │ │ │ │ │ -1825 │ │ │ │ │ -1826 /** │ │ │ │ │ -1827 * @brief Removes last element. │ │ │ │ │ -1828 * │ │ │ │ │ -1829 * This is a typical stack operation. It shrinks the %list by │ │ │ │ │ -1830 * one. Due to the nature of a %list this operation can be done │ │ │ │ │ -1831 * in constant time, and only invalidates iterators/references to │ │ │ │ │ -1832 * the element being removed. │ │ │ │ │ -1833 * │ │ │ │ │ -1834 * Note that no data is returned, and if the last element's data │ │ │ │ │ -1835 * is needed, it should be retrieved before pop_back() is called. │ │ │ │ │ -1836 */ │ │ │ │ │ -1837 void │ │ │ │ │ -_1_8_3_8 _p_o_p___b_a_c_k() _GLIBCXX_NOEXCEPT │ │ │ │ │ -1839 { │ │ │ │ │ -1840 __glibcxx_requires_nonempty(); │ │ │ │ │ -1841 this->_M_erase(iterator(this->_M_impl._M_node._M_prev)); │ │ │ │ │ -1842 } │ │ │ │ │ -1843 │ │ │ │ │ -1844#if __cplusplus >= 201103L │ │ │ │ │ -1845 /** │ │ │ │ │ -1846 * @brief Constructs object in %list before specified iterator. │ │ │ │ │ -1847 * @param __position A const_iterator into the %list. │ │ │ │ │ -1848 * @param __args Arguments. │ │ │ │ │ -1849 * @return An iterator that points to the inserted data. │ │ │ │ │ -1850 * │ │ │ │ │ -1851 * This function will insert an object of type T constructed │ │ │ │ │ -1852 * with T(std::forward(args)...) before the specified │ │ │ │ │ -1853 * location. Due to the nature of a %list this operation can │ │ │ │ │ -1854 * be done in constant time, and does not invalidate iterators │ │ │ │ │ -1855 * and references. │ │ │ │ │ -1856 */ │ │ │ │ │ -1857 template │ │ │ │ │ -1858 _i_t_e_r_a_t_o_r │ │ │ │ │ -1859 emplace(const_iterator __position, _Args&&... __args); │ │ │ │ │ -1860#endif │ │ │ │ │ -1861 │ │ │ │ │ -1862 /** │ │ │ │ │ -1863 * @brief Inserts given value into %list before specified iterator. │ │ │ │ │ -1864 * @param __position An iterator into the %list. │ │ │ │ │ -1865 * @param __x Data to be inserted. │ │ │ │ │ -1866 * @return An iterator that points to the inserted data. │ │ │ │ │ -1867 * │ │ │ │ │ -1868 * This function will insert a copy of the given value before │ │ │ │ │ -1869 * the specified location. Due to the nature of a %list this │ │ │ │ │ -1870 * operation can be done in constant time, and does not │ │ │ │ │ -1871 * invalidate iterators and references. │ │ │ │ │ -1872 * │ │ │ │ │ -1873 * @{ │ │ │ │ │ -1874 */ │ │ │ │ │ -1875#if __cplusplus >= 201103L │ │ │ │ │ -1876 _i_t_e_r_a_t_o_r │ │ │ │ │ -1877 insert(const_iterator __position, const value_type& __x); │ │ │ │ │ -1878 │ │ │ │ │ -1879 _i_t_e_r_a_t_o_r │ │ │ │ │ -_1_8_8_0 _i_n_s_e_r_t(const_iterator __position, value_type&& __x) │ │ │ │ │ -1881 { return emplace(__position, _s_t_d_:_:_m_o_v_e(__x)); } │ │ │ │ │ -1882#else │ │ │ │ │ -1883 _i_t_e_r_a_t_o_r │ │ │ │ │ -1884 insert(_i_t_e_r_a_t_o_r __position, const value_type& __x); │ │ │ │ │ -1885#endif │ │ │ │ │ -1886 /// @} │ │ │ │ │ -1887 │ │ │ │ │ -1888#if __cplusplus >= 201103L │ │ │ │ │ -1889 /** │ │ │ │ │ -1890 * @brief Inserts the contents of an initializer_list into %list │ │ │ │ │ -1891 * before specified const_iterator. │ │ │ │ │ -1892 * @param __p A const_iterator into the %list. │ │ │ │ │ -1893 * @param __l An initializer_list of value_type. │ │ │ │ │ -1894 * @return An iterator pointing to the first element inserted │ │ │ │ │ -1895 * (or `__p`). │ │ │ │ │ -1896 * │ │ │ │ │ -1897 * This function will insert copies of the data in the │ │ │ │ │ -1898 * initializer_list `__l` into the %list before the location │ │ │ │ │ -1899 * specified by `__p`. │ │ │ │ │ -1900 * │ │ │ │ │ -1901 * This operation is linear in the number of elements inserted and │ │ │ │ │ -1902 * does not invalidate iterators and references. │ │ │ │ │ -1903 */ │ │ │ │ │ -1904 _i_t_e_r_a_t_o_r │ │ │ │ │ -_1_9_0_5 _i_n_s_e_r_t(const_iterator __p, _i_n_i_t_i_a_l_i_z_e_r___l_i_s_t_<_v_a_l_u_e___t_y_p_e_> __l) │ │ │ │ │ -1906 { return this->insert(__p, __l.begin(), __l.end()); } │ │ │ │ │ -1907#endif │ │ │ │ │ -1908 │ │ │ │ │ -1909 /** │ │ │ │ │ -1910 * @brief Inserts a number of copies of given data into the %list. │ │ │ │ │ -1911 * @param __position An iterator into the %list. │ │ │ │ │ -1912 * @param __n Number of elements to be inserted. │ │ │ │ │ -1913 * @param __x Data to be inserted. │ │ │ │ │ -1914 * @return Since C++11, an iterator pointing to the first element │ │ │ │ │ -1915 * inserted (or `__position`). In C++98 this returns void. │ │ │ │ │ -1916 * │ │ │ │ │ -1917 * This function will insert a specified number of copies of the │ │ │ │ │ -1918 * given data before the location specified by `__position`. │ │ │ │ │ -1919 * │ │ │ │ │ -1920 * This operation is linear in the number of elements inserted and │ │ │ │ │ -1921 * does not invalidate iterators and references. │ │ │ │ │ -1922 */ │ │ │ │ │ -1923#if __cplusplus >= 201103L │ │ │ │ │ -1924 _i_t_e_r_a_t_o_r │ │ │ │ │ -1925 insert(const_iterator __position, size_type __n, const value_type& __x); │ │ │ │ │ -1926#else │ │ │ │ │ -1927 void │ │ │ │ │ -1928 insert(_i_t_e_r_a_t_o_r __position, size_type __n, const value_type& __x) │ │ │ │ │ -1929 { │ │ │ │ │ -1930 _l_i_s_t __tmp(__n, __x, get_allocator()); │ │ │ │ │ -1931 splice(__position, __tmp); │ │ │ │ │ -1932 } │ │ │ │ │ -1933#endif │ │ │ │ │ -1934 │ │ │ │ │ -1935 /** │ │ │ │ │ -1936 * @brief Inserts a range into the %list. │ │ │ │ │ -1937 * @param __position An iterator into the %list. │ │ │ │ │ -1938 * @param __first An input iterator. │ │ │ │ │ -1939 * @param __last An input iterator. │ │ │ │ │ -1940 * @return Since C++11, an iterator pointing to the first element │ │ │ │ │ -1941 * inserted (or `__position`). In C++98 this returns void. │ │ │ │ │ -1942 * │ │ │ │ │ -1943 * This function will insert copies of the data in the range │ │ │ │ │ -1944 * `[__first,__last)` into the %list before the location specified by │ │ │ │ │ -1945 * `__position`. │ │ │ │ │ -1946 * │ │ │ │ │ -1947 * This operation is linear in the number of elements inserted and │ │ │ │ │ -1948 * does not invalidate iterators and references. │ │ │ │ │ -1949 */ │ │ │ │ │ -1950#if __cplusplus >= 201103L │ │ │ │ │ -1951 template> │ │ │ │ │ -1953 iterator │ │ │ │ │ -1954 insert(const_iterator __position, _InputIterator __first, │ │ │ │ │ -1955 _InputIterator __last); │ │ │ │ │ -1956#else │ │ │ │ │ -1957 template │ │ │ │ │ -1958 void │ │ │ │ │ -1959 insert(iterator __position, _InputIterator __first, │ │ │ │ │ -1960 _InputIterator __last) │ │ │ │ │ -1961 { │ │ │ │ │ -1962 list __tmp(__first, __last, get_allocator()); │ │ │ │ │ -1963 splice(__position, __tmp); │ │ │ │ │ -1964 } │ │ │ │ │ -1965#endif │ │ │ │ │ -1966 │ │ │ │ │ -1967#if __glibcxx_ranges_to_container // C++ >= 23 │ │ │ │ │ -1968 /** │ │ │ │ │ -1969 * @brief Insert a range into a list. │ │ │ │ │ -1970 * @param __position An iterator. │ │ │ │ │ -1971 * @param __rg An input range of elements that can be converted to │ │ │ │ │ -1972 * the list's value type. │ │ │ │ │ -1973 * @return An iterator pointing to the first element inserted, │ │ │ │ │ -1974 * or `__position` if the range is empty. │ │ │ │ │ -1975 * │ │ │ │ │ -1976 * Inserts the elements of `__rg` before `__position`. │ │ │ │ │ -1977 * No iterators to existing elements are invalidated by this function. │ │ │ │ │ -1978 * If the insertion fails due to an exception, no elements will be added │ │ │ │ │ -1979 * and so the list will be unchanged. │ │ │ │ │ -1980 * │ │ │ │ │ -1981 * @since C++23 │ │ │ │ │ -1982 */ │ │ │ │ │ -1983 template<__detail::__container_compatible_range<_Tp> _Rg> │ │ │ │ │ -1984 iterator │ │ │ │ │ -1985 insert_range(const_iterator __position, _Rg&& __rg) │ │ │ │ │ -1986 { │ │ │ │ │ -1987 list __tmp(from_range, std::forward<_Rg>(__rg), get_allocator()); │ │ │ │ │ -1988 if (!__tmp.empty()) │ │ │ │ │ -1989 { │ │ │ │ │ -1990 auto __it = __tmp.begin(); │ │ │ │ │ -1991 splice(__position, __tmp); │ │ │ │ │ -1992 return __it; │ │ │ │ │ -1993 } │ │ │ │ │ -1994 return __position._M_const_cast(); │ │ │ │ │ -1995 } │ │ │ │ │ -1996#endif │ │ │ │ │ -1997 │ │ │ │ │ -1998 /** │ │ │ │ │ -1999 * @brief Remove element at given position. │ │ │ │ │ -2000 * @param __position Iterator pointing to element to be erased. │ │ │ │ │ -2001 * @return An iterator pointing to the next element (or end()). │ │ │ │ │ -2002 * │ │ │ │ │ -2003 * This function will erase the element at the given position and thus │ │ │ │ │ -2004 * shorten the %list by one. │ │ │ │ │ -2005 * │ │ │ │ │ -2006 * Due to the nature of a %list this operation can be done in │ │ │ │ │ -2007 * constant time, and only invalidates iterators/references to │ │ │ │ │ -2008 * the element being removed. The user is also cautioned that │ │ │ │ │ -2009 * this function only erases the element, and that if the element │ │ │ │ │ -2010 * is itself a pointer, the pointed-to memory is not touched in │ │ │ │ │ -2011 * any way. Managing the pointer is the user's responsibility. │ │ │ │ │ -2012 */ │ │ │ │ │ -2013 iterator │ │ │ │ │ -2014#if __cplusplus >= 201103L │ │ │ │ │ -2015 erase(const_iterator __position) noexcept; │ │ │ │ │ -2016#else │ │ │ │ │ -2017 erase(iterator __position); │ │ │ │ │ -2018#endif │ │ │ │ │ -2019 │ │ │ │ │ -2020 /** │ │ │ │ │ -2021 * @brief Remove a range of elements. │ │ │ │ │ -2022 * @param __first Iterator pointing to the first element to be erased. │ │ │ │ │ -2023 * @param __last Iterator pointing to one past the last element to be │ │ │ │ │ -2024 * erased. │ │ │ │ │ -2025 * @return An iterator pointing to the element pointed to by @a last │ │ │ │ │ -2026 * prior to erasing (or end()). │ │ │ │ │ -2027 * │ │ │ │ │ -2028 * This function will erase the elements in the range @a │ │ │ │ │ -2029 * [first,last) and shorten the %list accordingly. │ │ │ │ │ -2030 * │ │ │ │ │ -2031 * This operation is linear time in the size of the range and only │ │ │ │ │ -2032 * invalidates iterators/references to the element being removed. │ │ │ │ │ -2033 * The user is also cautioned that this function only erases the │ │ │ │ │ -2034 * elements, and that if the elements themselves are pointers, the │ │ │ │ │ -2035 * pointed-to memory is not touched in any way. Managing the pointer │ │ │ │ │ -2036 * is the user's responsibility. │ │ │ │ │ -2037 */ │ │ │ │ │ -2038 iterator │ │ │ │ │ -2039#if __cplusplus >= 201103L │ │ │ │ │ -_2_0_4_0 _e_r_a_s_e(const_iterator __first, const_iterator __last) noexcept │ │ │ │ │ -2041#else │ │ │ │ │ -2042 erase(iterator __first, iterator __last) │ │ │ │ │ -2043#endif │ │ │ │ │ -2044 { │ │ │ │ │ -2045 while (__first != __last) │ │ │ │ │ -2046 __first = erase(__first); │ │ │ │ │ -2047 return __last._M_const_cast(); │ │ │ │ │ -2048 } │ │ │ │ │ -2049 │ │ │ │ │ -2050 /** │ │ │ │ │ -2051 * @brief Swaps data with another %list. │ │ │ │ │ -2052 * @param __x A %list of the same element and allocator types. │ │ │ │ │ -2053 * │ │ │ │ │ -2054 * This exchanges the elements between two lists in constant │ │ │ │ │ -2055 * time. Note that the global std::swap() function is │ │ │ │ │ -2056 * specialized such that std::swap(l1,l2) will feed to this │ │ │ │ │ -2057 * function. │ │ │ │ │ -2058 * │ │ │ │ │ -2059 * Whether the allocators are swapped depends on the allocator traits. │ │ │ │ │ -2060 */ │ │ │ │ │ -2061 void │ │ │ │ │ -_2_0_6_2 _s_w_a_p(_l_i_s_t& __x) _GLIBCXX_NOEXCEPT │ │ │ │ │ -2063 { │ │ │ │ │ -2064 _Node_traits::_Node_base::swap(this->_M_impl._M_node, │ │ │ │ │ -2065 __x._M_impl._M_node); │ │ │ │ │ -2066 │ │ │ │ │ -2067 size_t __xsize = __x._M_get_size(); │ │ │ │ │ -2068 __x._M_set_size(this->_M_get_size()); │ │ │ │ │ -2069 this->_M_set_size(__xsize); │ │ │ │ │ -2070 │ │ │ │ │ -2071 _Node_alloc_traits::_S_on_swap(this->_M_get_Node_allocator(), │ │ │ │ │ -2072 __x._M_get_Node_allocator()); │ │ │ │ │ -2073 } │ │ │ │ │ -2074 │ │ │ │ │ -2075 /** │ │ │ │ │ -2076 * Erases all the elements. Note that this function only erases │ │ │ │ │ -2077 * the elements, and that if the elements themselves are │ │ │ │ │ -2078 * pointers, the pointed-to memory is not touched in any way. │ │ │ │ │ -2079 * Managing the pointer is the user's responsibility. │ │ │ │ │ -2080 */ │ │ │ │ │ -2081 void │ │ │ │ │ -_2_0_8_2 _c_l_e_a_r() _GLIBCXX_NOEXCEPT │ │ │ │ │ -2083 { │ │ │ │ │ -2084 _Base::_M_clear(); │ │ │ │ │ -2085 _Base::_M_init(); │ │ │ │ │ -2086 } │ │ │ │ │ -2087 │ │ │ │ │ -2088 // [23.2.2.4] list operations │ │ │ │ │ -2089 /** │ │ │ │ │ -2090 * @brief Insert contents of another %list. │ │ │ │ │ -2091 * @param __position Iterator referencing the element to insert before. │ │ │ │ │ -2092 * @param __x Source list. │ │ │ │ │ -2093 * │ │ │ │ │ -2094 * The elements of @a __x are inserted in constant time in front of │ │ │ │ │ -2095 * the element referenced by @a __position. @a __x becomes an empty │ │ │ │ │ -2096 * list. │ │ │ │ │ -2097 * │ │ │ │ │ -2098 * Requires this != @a __x. │ │ │ │ │ -2099 */ │ │ │ │ │ -2100 void │ │ │ │ │ -2101#if __cplusplus >= 201103L │ │ │ │ │ -_2_1_0_2 _s_p_l_i_c_e(const_iterator __position, _l_i_s_t&& __x) noexcept │ │ │ │ │ -2103#else │ │ │ │ │ -2104 splice(iterator __position, _l_i_s_t& __x) │ │ │ │ │ -2105#endif │ │ │ │ │ -2106 { │ │ │ │ │ -2107 if (!__x._e_m_p_t_y()) │ │ │ │ │ -2108 { │ │ │ │ │ -2109 _M_check_equal_allocators(__x); │ │ │ │ │ -2110 │ │ │ │ │ -2111 this->_M_transfer(__position._M_const_cast(), │ │ │ │ │ -2112 __x._b_e_g_i_n(), __x._e_n_d()); │ │ │ │ │ -2113 │ │ │ │ │ -2114 this->_M_inc_size(__x._M_get_size()); │ │ │ │ │ -2115 __x._M_set_size(0); │ │ │ │ │ -2116 } │ │ │ │ │ -2117 } │ │ │ │ │ -2118 │ │ │ │ │ -2119#if __cplusplus >= 201103L │ │ │ │ │ -2120 void │ │ │ │ │ -2121 splice(const_iterator __position, _l_i_s_t& __x) noexcept │ │ │ │ │ -2122 { splice(__position, _s_t_d_:_:_m_o_v_e(__x)); } │ │ │ │ │ -2123#endif │ │ │ │ │ -2124 │ │ │ │ │ -2125 /** │ │ │ │ │ -2126 * @brief Insert element from another %list. │ │ │ │ │ -2127 * @param __position Iterator referencing the element to insert before. │ │ │ │ │ -2128 * @param __x Source list. │ │ │ │ │ -2129 * @param __i Iterator referencing the element to move. │ │ │ │ │ -2130 * │ │ │ │ │ -2131 * Removes the element in list @a __x referenced by @a __i and │ │ │ │ │ -2132 * inserts it into the current list before @a __position. │ │ │ │ │ -2133 * │ │ │ │ │ -2134 * @{ │ │ │ │ │ -2135 */ │ │ │ │ │ -2136#if __cplusplus >= 201103L │ │ │ │ │ -2137 void │ │ │ │ │ -_2_1_3_8 _s_p_l_i_c_e(const_iterator __position, _l_i_s_t&& __x, const_iterator __i) noexcept │ │ │ │ │ -2139#else │ │ │ │ │ -2140 void │ │ │ │ │ -2141 splice(iterator __position, _l_i_s_t& __x, iterator __i) │ │ │ │ │ -2142#endif │ │ │ │ │ -2143 { │ │ │ │ │ -2144 iterator __j = __i._M_const_cast(); │ │ │ │ │ -2145 ++__j; │ │ │ │ │ -2146 if (__position == __i || __position == __j) │ │ │ │ │ -2147 return; │ │ │ │ │ -2148 │ │ │ │ │ -2149 if (this != _s_t_d_:_:_____a_d_d_r_e_s_s_o_f(__x)) │ │ │ │ │ -2150 _M_check_equal_allocators(__x); │ │ │ │ │ -2151 │ │ │ │ │ -2152 this->_M_transfer(__position._M_const_cast(), │ │ │ │ │ -2153 __i._M_const_cast(), __j); │ │ │ │ │ -2154 │ │ │ │ │ -2155 this->_M_inc_size(1); │ │ │ │ │ -2156 __x._M_dec_size(1); │ │ │ │ │ -2157 } │ │ │ │ │ -2158 │ │ │ │ │ -2159#if __cplusplus >= 201103L │ │ │ │ │ -2160 void │ │ │ │ │ -_2_1_6_1 _s_p_l_i_c_e(const_iterator __position, _l_i_s_t& __x, const_iterator __i) noexcept │ │ │ │ │ -2162 { splice(__position, _s_t_d_:_:_m_o_v_e(__x), __i); } │ │ │ │ │ -2163#endif │ │ │ │ │ -2164 /// @} │ │ │ │ │ -2165 │ │ │ │ │ -2166 /** │ │ │ │ │ -2167 * @brief Insert range from another %list. │ │ │ │ │ -2168 * @param __position Iterator referencing the element to insert before. │ │ │ │ │ -2169 * @param __x Source list. │ │ │ │ │ -2170 * @param __first Iterator referencing the start of range in x. │ │ │ │ │ -2171 * @param __last Iterator referencing the end of range in x. │ │ │ │ │ -2172 * │ │ │ │ │ -2173 * Removes elements in the range [__first,__last) and inserts them │ │ │ │ │ -2174 * before @a __position in constant time. │ │ │ │ │ -2175 * │ │ │ │ │ -2176 * Undefined if @a __position is in [__first,__last). │ │ │ │ │ -2177 */ │ │ │ │ │ -2178#if __cplusplus >= 201103L │ │ │ │ │ -2179 void │ │ │ │ │ -_2_1_8_0 _s_p_l_i_c_e(const_iterator __position, _l_i_s_t&& __x, const_iterator __first, │ │ │ │ │ -2181 const_iterator __last) noexcept │ │ │ │ │ -2182#else │ │ │ │ │ -2183 void │ │ │ │ │ -2184 splice(iterator __position, _l_i_s_t& __x, iterator __first, │ │ │ │ │ -2185 iterator __last) │ │ │ │ │ -2186#endif │ │ │ │ │ -2187 { │ │ │ │ │ -2188 if (__first != __last) │ │ │ │ │ -2189 { │ │ │ │ │ -2190 if (this != _s_t_d_:_:_____a_d_d_r_e_s_s_o_f(__x)) │ │ │ │ │ -2191 _M_check_equal_allocators(__x); │ │ │ │ │ -2192 │ │ │ │ │ -2193#if _GLIBCXX_USE_CXX11_ABI │ │ │ │ │ -2194 size_t __n = _s_t_d_:_:_d_i_s_t_a_n_c_e(__first, __last); │ │ │ │ │ -2195 this->_M_inc_size(__n); │ │ │ │ │ -2196 __x._M_dec_size(__n); │ │ │ │ │ -2197#endif │ │ │ │ │ -2198 │ │ │ │ │ -2199 this->_M_transfer(__position._M_const_cast(), │ │ │ │ │ -2200 __first._M_const_cast(), │ │ │ │ │ -2201 __last._M_const_cast()); │ │ │ │ │ -2202 } │ │ │ │ │ -2203 } │ │ │ │ │ -2204 │ │ │ │ │ -2205#if __cplusplus >= 201103L │ │ │ │ │ -2206 /** │ │ │ │ │ -2207 * @brief Insert range from another %list. │ │ │ │ │ -2208 * @param __position Const_iterator referencing the element to │ │ │ │ │ -2209 * insert before. │ │ │ │ │ -2210 * @param __x Source list. │ │ │ │ │ -2211 * @param __first Const_iterator referencing the start of range in x. │ │ │ │ │ -2212 * @param __last Const_iterator referencing the end of range in x. │ │ │ │ │ -2213 * │ │ │ │ │ -2214 * Removes elements in the range [__first,__last) and inserts them │ │ │ │ │ -2215 * before @a __position in constant time. │ │ │ │ │ -2216 * │ │ │ │ │ -2217 * Undefined if @a __position is in [__first,__last). │ │ │ │ │ -2218 */ │ │ │ │ │ -2219 void │ │ │ │ │ -_2_2_2_0 _s_p_l_i_c_e(const_iterator __position, _l_i_s_t& __x, const_iterator __first, │ │ │ │ │ -2221 const_iterator __last) noexcept │ │ │ │ │ -2222 { splice(__position, _s_t_d_:_:_m_o_v_e(__x), __first, __last); } │ │ │ │ │ -2223#endif │ │ │ │ │ -2224 │ │ │ │ │ -2225 private: │ │ │ │ │ -2226#ifdef __glibcxx_list_remove_return_type // C++ >= 20 && HOSTED │ │ │ │ │ -2227 typedef size_type __remove_return_type; │ │ │ │ │ -2228# define _GLIBCXX_LIST_REMOVE_RETURN_TYPE_TAG \ │ │ │ │ │ -2229 __attribute__((__abi_tag__("__cxx20"))) │ │ │ │ │ -2230#else │ │ │ │ │ -2231 typedef void __remove_return_type; │ │ │ │ │ -2232# define _GLIBCXX_LIST_REMOVE_RETURN_TYPE_TAG │ │ │ │ │ -2233#endif │ │ │ │ │ -2234 public: │ │ │ │ │ -2235 │ │ │ │ │ -2236 /** │ │ │ │ │ -2237 * @brief Remove all elements equal to value. │ │ │ │ │ -2238 * @param __value The value to remove. │ │ │ │ │ -2239 * │ │ │ │ │ -2240 * Removes every element in the list equal to @a value. │ │ │ │ │ -2241 * Remaining elements stay in list order. Note that this │ │ │ │ │ -2242 * function only erases the elements, and that if the elements │ │ │ │ │ -2243 * themselves are pointers, the pointed-to memory is not │ │ │ │ │ -2244 * touched in any way. Managing the pointer is the user's │ │ │ │ │ -2245 * responsibility. │ │ │ │ │ -2246 */ │ │ │ │ │ -2247 _GLIBCXX_LIST_REMOVE_RETURN_TYPE_TAG │ │ │ │ │ -2248 __remove_return_type │ │ │ │ │ -2249 remove(const _Tp& __value); │ │ │ │ │ -2250 │ │ │ │ │ -2251 /** │ │ │ │ │ -2252 * @brief Remove all elements satisfying a predicate. │ │ │ │ │ -2253 * @tparam _Predicate Unary predicate function or object. │ │ │ │ │ -2254 * │ │ │ │ │ -2255 * Removes every element in the list for which the predicate │ │ │ │ │ -2256 * returns true. Remaining elements stay in list order. Note │ │ │ │ │ -2257 * that this function only erases the elements, and that if the │ │ │ │ │ -2258 * elements themselves are pointers, the pointed-to memory is │ │ │ │ │ -2259 * not touched in any way. Managing the pointer is the user's │ │ │ │ │ -2260 * responsibility. │ │ │ │ │ -2261 */ │ │ │ │ │ -2262 template │ │ │ │ │ -2263 __remove_return_type │ │ │ │ │ -2264 remove_if(_Predicate); │ │ │ │ │ -2265 │ │ │ │ │ -2266 /** │ │ │ │ │ -2267 * @brief Remove consecutive duplicate elements. │ │ │ │ │ -2268 * │ │ │ │ │ -2269 * For each consecutive set of elements with the same value, │ │ │ │ │ -2270 * remove all but the first one. Remaining elements stay in │ │ │ │ │ -2271 * list order. Note that this function only erases the │ │ │ │ │ -2272 * elements, and that if the elements themselves are pointers, │ │ │ │ │ -2273 * the pointed-to memory is not touched in any way. Managing │ │ │ │ │ -2274 * the pointer is the user's responsibility. │ │ │ │ │ -2275 */ │ │ │ │ │ -2276 _GLIBCXX_LIST_REMOVE_RETURN_TYPE_TAG │ │ │ │ │ -2277 __remove_return_type │ │ │ │ │ -2278 unique(); │ │ │ │ │ -2279 │ │ │ │ │ -2280 /** │ │ │ │ │ -2281 * @brief Remove consecutive elements satisfying a predicate. │ │ │ │ │ -2282 * @tparam _BinaryPredicate Binary predicate function or object. │ │ │ │ │ -2283 * │ │ │ │ │ -2284 * For each consecutive set of elements [first,last) that │ │ │ │ │ -2285 * satisfy predicate(first,i) where i is an iterator in │ │ │ │ │ -2286 * [first,last), remove all but the first one. Remaining │ │ │ │ │ -2287 * elements stay in list order. Note that this function only │ │ │ │ │ -2288 * erases the elements, and that if the elements themselves are │ │ │ │ │ -2289 * pointers, the pointed-to memory is not touched in any way. │ │ │ │ │ -2290 * Managing the pointer is the user's responsibility. │ │ │ │ │ -2291 */ │ │ │ │ │ -2292 template │ │ │ │ │ -2293 __remove_return_type │ │ │ │ │ -2294 unique(_BinaryPredicate); │ │ │ │ │ -2295 │ │ │ │ │ -2296#undef _GLIBCXX_LIST_REMOVE_RETURN_TYPE_TAG │ │ │ │ │ -2297 │ │ │ │ │ -2298 /** │ │ │ │ │ -2299 * @brief Merge sorted lists. │ │ │ │ │ -2300 * @param __x Sorted list to merge. │ │ │ │ │ -2301 * │ │ │ │ │ -2302 * Assumes that both @a __x and this list are sorted according to │ │ │ │ │ -2303 * operator<(). Merges elements of @a __x into this list in │ │ │ │ │ -2304 * sorted order, leaving @a __x empty when complete. Elements in │ │ │ │ │ -2305 * this list precede elements in @a __x that are equal. │ │ │ │ │ -2306 */ │ │ │ │ │ -2307#if __cplusplus >= 201103L │ │ │ │ │ -2308 void │ │ │ │ │ -2309 merge(_l_i_s_t&& __x); │ │ │ │ │ -2310 │ │ │ │ │ -2311 void │ │ │ │ │ -2312 merge(_l_i_s_t& __x) │ │ │ │ │ -2313 { merge(_s_t_d_:_:_m_o_v_e(__x)); } │ │ │ │ │ -2314#else │ │ │ │ │ -2315 void │ │ │ │ │ -2316 merge(list& __x); │ │ │ │ │ -2317#endif │ │ │ │ │ -2318 │ │ │ │ │ -2319 /** │ │ │ │ │ -2320 * @brief Merge sorted lists according to comparison function. │ │ │ │ │ -2321 * @tparam _StrictWeakOrdering Comparison function defining │ │ │ │ │ -2322 * sort order. │ │ │ │ │ -2323 * @param __x Sorted list to merge. │ │ │ │ │ -2324 * @param __comp Comparison functor. │ │ │ │ │ -2325 * │ │ │ │ │ -2326 * Assumes that both @a __x and this list are sorted according to │ │ │ │ │ -2327 * StrictWeakOrdering. Merges elements of @a __x into this list │ │ │ │ │ -2328 * in sorted order, leaving @a __x empty when complete. Elements │ │ │ │ │ -2329 * in this list precede elements in @a __x that are equivalent │ │ │ │ │ -2330 * according to StrictWeakOrdering(). │ │ │ │ │ -2331 */ │ │ │ │ │ -2332#if __cplusplus >= 201103L │ │ │ │ │ -2333 template │ │ │ │ │ -2334 void │ │ │ │ │ -2335 merge(list&& __x, _StrictWeakOrdering __comp); │ │ │ │ │ -2336 │ │ │ │ │ -2337 template │ │ │ │ │ -2338 void │ │ │ │ │ -2339 merge(list& __x, _StrictWeakOrdering __comp) │ │ │ │ │ -2340 { merge(_s_t_d_:_:_m_o_v_e(__x), __comp); } │ │ │ │ │ -2341#else │ │ │ │ │ -2342 template │ │ │ │ │ -2343 void │ │ │ │ │ -2344 merge(list& __x, _StrictWeakOrdering __comp); │ │ │ │ │ -2345#endif │ │ │ │ │ -2346 │ │ │ │ │ -2347 /** │ │ │ │ │ -2348 * @brief Reverse the elements in list. │ │ │ │ │ -2349 * │ │ │ │ │ -2350 * Reverse the order of elements in the list in linear time. │ │ │ │ │ -2351 */ │ │ │ │ │ -2352 void │ │ │ │ │ -_2_3_5_3 _r_e_v_e_r_s_e() _GLIBCXX_NOEXCEPT │ │ │ │ │ -2354 { this->_M_impl._M_node._M_reverse(); } │ │ │ │ │ -2355 │ │ │ │ │ -2356 /** │ │ │ │ │ -2357 * @brief Sort the elements. │ │ │ │ │ -2358 * │ │ │ │ │ -2359 * Sorts the elements of this list in NlogN time. Equivalent │ │ │ │ │ -2360 * elements remain in list order. │ │ │ │ │ -2361 */ │ │ │ │ │ -2362 void │ │ │ │ │ -2363 sort(); │ │ │ │ │ -2364 │ │ │ │ │ -2365 /** │ │ │ │ │ -2366 * @brief Sort the elements according to comparison function. │ │ │ │ │ -2367 * │ │ │ │ │ -2368 * Sorts the elements of this list in NlogN time. Equivalent │ │ │ │ │ -2369 * elements remain in list order. │ │ │ │ │ -2370 */ │ │ │ │ │ -2371 template │ │ │ │ │ -2372 void │ │ │ │ │ -2373 sort(_StrictWeakOrdering); │ │ │ │ │ -2374 │ │ │ │ │ -2375 protected: │ │ │ │ │ -2376 // Internal constructor functions follow. │ │ │ │ │ -2377 │ │ │ │ │ -2378 // Called by the range constructor to implement [23.1.1]/9 │ │ │ │ │ -2379 │ │ │ │ │ -2380 // _GLIBCXX_RESOLVE_LIB_DEFECTS │ │ │ │ │ -2381 // 438. Ambiguity in the "do the right thing" clause │ │ │ │ │ -2382 template │ │ │ │ │ -2383 void │ │ │ │ │ -2384 _M_initialize_dispatch(_Integer __n, _Integer __x, __true_type) │ │ │ │ │ -2385 { _M_fill_initialize(static_cast(__n), __x); } │ │ │ │ │ -2386 │ │ │ │ │ -2387 // Called by the range constructor to implement [23.1.1]/9 │ │ │ │ │ -2388 template │ │ │ │ │ -2389 void │ │ │ │ │ -2390 _M_initialize_dispatch(_InputIterator __first, _InputIterator __last, │ │ │ │ │ -2391 __false_type) │ │ │ │ │ -2392 { │ │ │ │ │ -2393 bool __notempty = __first != __last; │ │ │ │ │ -2394 for (; __first != __last; ++__first) │ │ │ │ │ -2395#if __cplusplus >= 201103L │ │ │ │ │ -2396 emplace_back(*__first); │ │ │ │ │ -2397#else │ │ │ │ │ -2398 push_back(*__first); │ │ │ │ │ -2399#endif │ │ │ │ │ -2400 if (__notempty) │ │ │ │ │ -2401 { │ │ │ │ │ -2402 if (begin() == end()) │ │ │ │ │ -2403 __builtin_unreachable(); │ │ │ │ │ -2404 } │ │ │ │ │ -2405 } │ │ │ │ │ -2406 │ │ │ │ │ -2407 // Called by list(n,v,a), and the range constructor when it turns out │ │ │ │ │ -2408 // to be the same thing. │ │ │ │ │ -2409 void │ │ │ │ │ -2410 _M_fill_initialize(size_type __n, const value_type& __x) │ │ │ │ │ -2411 { │ │ │ │ │ -2412 for (; __n; --__n) │ │ │ │ │ -2413 push_back(__x); │ │ │ │ │ -2414 } │ │ │ │ │ -2415 │ │ │ │ │ -2416#if __cplusplus >= 201103L │ │ │ │ │ -2417 // Called by list(n). │ │ │ │ │ -2418 void │ │ │ │ │ -2419 _M_default_initialize(size_type __n) │ │ │ │ │ -2420 { │ │ │ │ │ -2421 for (; __n; --__n) │ │ │ │ │ -2422 emplace_back(); │ │ │ │ │ -2423 } │ │ │ │ │ -2424 │ │ │ │ │ -2425 // Called by resize(sz). │ │ │ │ │ -2426 void │ │ │ │ │ -2427 _M_default_append(size_type __n); │ │ │ │ │ -2428#endif │ │ │ │ │ -2429 │ │ │ │ │ -2430 // Internal assign functions follow. │ │ │ │ │ -2431 │ │ │ │ │ -2432 // Called by the range assign to implement [23.1.1]/9 │ │ │ │ │ -2433 │ │ │ │ │ -2434 // _GLIBCXX_RESOLVE_LIB_DEFECTS │ │ │ │ │ -2435 // 438. Ambiguity in the "do the right thing" clause │ │ │ │ │ -2436 template │ │ │ │ │ -2437 void │ │ │ │ │ -2438 _M_assign_dispatch(_Integer __n, _Integer __val, __true_type) │ │ │ │ │ -2439 { _M_fill_assign(__n, __val); } │ │ │ │ │ -2440 │ │ │ │ │ -2441 // Called by the range assign to implement [23.1.1]/9 │ │ │ │ │ -2442 template │ │ │ │ │ -2443 void │ │ │ │ │ -2444 _M_assign_dispatch(_InputIterator __first, _InputIterator __last, │ │ │ │ │ -2445 __false_type); │ │ │ │ │ -2446 │ │ │ │ │ -2447 // Called by assign(n,t), and the range assign when it turns out │ │ │ │ │ -2448 // to be the same thing. │ │ │ │ │ -2449 void │ │ │ │ │ -2450 _M_fill_assign(size_type __n, const value_type& __val); │ │ │ │ │ -2451 │ │ │ │ │ -2452 │ │ │ │ │ -2453 // Moves the elements from [first,last) before position. │ │ │ │ │ -2454 void │ │ │ │ │ -2455 _M_transfer(iterator __position, iterator __first, iterator __last) │ │ │ │ │ -2456 { __position._M_node->_M_transfer(__first._M_node, __last._M_node); } │ │ │ │ │ -2457 │ │ │ │ │ -2458 // Inserts new element at position given and with value given. │ │ │ │ │ -2459#if __cplusplus < 201103L │ │ │ │ │ -2460 void │ │ │ │ │ -2461 _M_insert(iterator __position, const value_type& __x) │ │ │ │ │ -2462 { │ │ │ │ │ -2463 _Node_ptr __tmp = _M_create_node(__x); │ │ │ │ │ -2464 __tmp->_M_hook(__position._M_node); │ │ │ │ │ -2465 this->_M_inc_size(1); │ │ │ │ │ -2466 } │ │ │ │ │ -2467#else │ │ │ │ │ -2468 template │ │ │ │ │ -2469 void │ │ │ │ │ -2470 _M_insert(iterator __position, _Args&&... __args) │ │ │ │ │ -2471 { │ │ │ │ │ -2472 _Node_ptr __tmp = _M_create_node(std::forward<_Args>(__args)...); │ │ │ │ │ -2473 __tmp->_M_hook(__position._M_node); │ │ │ │ │ -2474 this->_M_inc_size(1); │ │ │ │ │ -2475 } │ │ │ │ │ -2476#endif │ │ │ │ │ -2477 │ │ │ │ │ -2478 // Erases element at position given. │ │ │ │ │ -2479 void │ │ │ │ │ -2480 _M_erase(iterator __position) _GLIBCXX_NOEXCEPT │ │ │ │ │ -2481 { │ │ │ │ │ -2482 typedef typename _Node_traits::_Node _Node; │ │ │ │ │ -2483 this->_M_dec_size(1); │ │ │ │ │ -2484 __position._M_node->_M_unhook(); │ │ │ │ │ -2485 _Node& __n = static_cast<_Node&>(*__position._M_node); │ │ │ │ │ -2486 this->_M_destroy_node(__n._M_node_ptr()); │ │ │ │ │ -2487 } │ │ │ │ │ -2488 │ │ │ │ │ -2489 // To implement the splice (and merge) bits of N1599. │ │ │ │ │ -2490 void │ │ │ │ │ -2491 _M_check_equal_allocators(const list& __x) _GLIBCXX_NOEXCEPT │ │ │ │ │ -2492 { │ │ │ │ │ -2493 if (_M_get_Node_allocator() != __x._M_get_Node_allocator()) │ │ │ │ │ -2494 __builtin_abort(); │ │ │ │ │ -2495 } │ │ │ │ │ -2496 │ │ │ │ │ -2497 // Used to implement resize. │ │ │ │ │ -2498 const_iterator │ │ │ │ │ -2499 _M_resize_pos(size_type& __new_size) const; │ │ │ │ │ -2500 │ │ │ │ │ -2501#if __cplusplus >= 201103L && ! _GLIBCXX_INLINE_VERSION │ │ │ │ │ -2502 // XXX GLIBCXX_ABI Deprecated │ │ │ │ │ -2503 // These are unused and only kept so that explicit instantiations will │ │ │ │ │ -2504 // continue to define the symbols. │ │ │ │ │ -2505 void │ │ │ │ │ -2506 _M_move_assign(list&& __x, true_type) noexcept │ │ │ │ │ -2507 { │ │ │ │ │ -2508 this->clear(); │ │ │ │ │ -2509 this->_M_move_nodes(_s_t_d_:_:_m_o_v_e(__x)); │ │ │ │ │ -2510 std::__alloc_on_move(this->_M_get_Node_allocator(), │ │ │ │ │ -2511 __x._M_get_Node_allocator()); │ │ │ │ │ -2512 } │ │ │ │ │ -2513 │ │ │ │ │ -2514 void │ │ │ │ │ -2515 _M_move_assign(list&& __x, false_type) │ │ │ │ │ -2516 { │ │ │ │ │ -2517 if (__x._M_get_Node_allocator() == this->_M_get_Node_allocator()) │ │ │ │ │ -2518 _M_move_assign(_s_t_d_:_:_m_o_v_e(__x), true_type{}); │ │ │ │ │ -2519 else │ │ │ │ │ -2520 // The rvalue's allocator cannot be moved, or is not equal, │ │ │ │ │ -2521 // so we need to individually move each element. │ │ │ │ │ -2522 _M_assign_dispatch(std::make_move_iterator(__x.begin()), │ │ │ │ │ -2523 std::make_move_iterator(__x.end()), │ │ │ │ │ -2524 __false_type{}); │ │ │ │ │ -2525 } │ │ │ │ │ -2526#endif │ │ │ │ │ -2527 │ │ │ │ │ -2528#if _GLIBCXX_USE_CXX11_ABI │ │ │ │ │ -2529 // Update _M_size members after merging (some of) __src into __dest. │ │ │ │ │ -2530 struct _Finalize_merge │ │ │ │ │ -2531 { │ │ │ │ │ -2532 explicit │ │ │ │ │ -2533 _Finalize_merge(list& __dest, list& __src, const iterator& __src_next) │ │ │ │ │ -2534 : _M_dest(__dest), _M_src(__src), _M_next(__src_next) │ │ │ │ │ -2535 { } │ │ │ │ │ -2536 │ │ │ │ │ -2537 ~_Finalize_merge() │ │ │ │ │ -2538 { │ │ │ │ │ -2539 // For the common case, _M_next == _M_sec.end() and the std::distance │ │ │ │ │ -2540 // call is fast. But if any *iter1 < *iter2 comparison throws then we │ │ │ │ │ -2541 // have to count how many elements remain in _M_src. │ │ │ │ │ -2542 const size_t __num_unmerged = _s_t_d_:_:_d_i_s_t_a_n_c_e(_M_next, _M_src.end()); │ │ │ │ │ -2543 const size_t __orig_size = _M_src._M_get_size(); │ │ │ │ │ -2544 _M_dest._M_inc_size(__orig_size - __num_unmerged); │ │ │ │ │ -2545 _M_src._M_set_size(__num_unmerged); │ │ │ │ │ -2546 } │ │ │ │ │ -2547 │ │ │ │ │ -2548 list& _M_dest; │ │ │ │ │ -2549 list& _M_src; │ │ │ │ │ -2550 const iterator& _M_next; │ │ │ │ │ -2551 │ │ │ │ │ -2552#if __cplusplus >= 201103L │ │ │ │ │ -2553 _Finalize_merge(const _Finalize_merge&) = delete; │ │ │ │ │ -2554#endif │ │ │ │ │ -2555 }; │ │ │ │ │ -2556#else │ │ │ │ │ -2557 struct _Finalize_merge │ │ │ │ │ -2558 { explicit _Finalize_merge(list&, list&, const iterator&) { } }; │ │ │ │ │ -2559#endif │ │ │ │ │ -2560 │ │ │ │ │ -2561#if !_GLIBCXX_INLINE_VERSION │ │ │ │ │ -2562 // XXX GLIBCXX_ABI Deprecated │ │ │ │ │ -2563 // These members are unused by std::list now, but we keep them here │ │ │ │ │ -2564 // so that an explicit instantiation of std::list will define them. │ │ │ │ │ -2565 // This ensures that any objects or libraries compiled against old │ │ │ │ │ -2566 // versions of GCC will still be able to use the symbols. │ │ │ │ │ -2567 │ │ │ │ │ -2568#if _GLIBCXX_USE_CXX11_ABI │ │ │ │ │ -2569 static size_t │ │ │ │ │ -2570 _S_distance(const_iterator __first, const_iterator __last) │ │ │ │ │ -2571 { return _s_t_d_:_:_d_i_s_t_a_n_c_e(__first, __last); } │ │ │ │ │ -2572 │ │ │ │ │ -2573 size_t │ │ │ │ │ -2574 _M_node_count() const │ │ │ │ │ -2575 { return this->_M_get_size(); } │ │ │ │ │ -2576#else │ │ │ │ │ -2577 static size_t │ │ │ │ │ -2578 _S_distance(const_iterator, const_iterator) │ │ │ │ │ -2579 { return 0; } │ │ │ │ │ -2580 │ │ │ │ │ -2581 size_t │ │ │ │ │ -2582 _M_node_count() const │ │ │ │ │ -2583 { return _s_t_d_:_:_d_i_s_t_a_n_c_e(_b_e_g_i_n(), _e_n_d()); } │ │ │ │ │ -2584#endif │ │ │ │ │ -2585#endif // ! INLINE_VERSION │ │ │ │ │ -2586 }; │ │ │ │ │ -2587 │ │ │ │ │ -2588#if __cpp_deduction_guides >= 201606 │ │ │ │ │ -2589 template::value_type, │ │ │ │ │ -2591 typename _Allocator = allocator<_ValT>, │ │ │ │ │ -2592 typename = _RequireInputIter<_InputIterator>, │ │ │ │ │ -2593 typename = _RequireAllocator<_Allocator>> │ │ │ │ │ -2594 list(_InputIterator, _InputIterator, _Allocator = _Allocator()) │ │ │ │ │ -2595 -> list<_ValT, _Allocator>; │ │ │ │ │ -2596 │ │ │ │ │ -2597#if __glibcxx_ranges_to_container // C++ >= 23 │ │ │ │ │ -2598 template>> │ │ │ │ │ -2600 list(from_range_t, _Rg&&, _Allocator = _Allocator()) │ │ │ │ │ -2601 -> list, _Allocator>; │ │ │ │ │ -2602#endif │ │ │ │ │ -2603#endif │ │ │ │ │ -2604 │ │ │ │ │ -2605_GLIBCXX_END_NAMESPACE_CXX11 │ │ │ │ │ -2606 │ │ │ │ │ -2607 /** │ │ │ │ │ -2608 * @brief List equality comparison. │ │ │ │ │ -2609 * @param __x A %list. │ │ │ │ │ -2610 * @param __y A %list of the same type as @a __x. │ │ │ │ │ -2611 * @return True iff the size and elements of the lists are equal. │ │ │ │ │ -2612 * │ │ │ │ │ -2613 * This is an equivalence relation. It is linear in the size of │ │ │ │ │ -2614 * the lists. Lists are considered equivalent if their sizes are │ │ │ │ │ -2615 * equal, and if corresponding elements compare equal. │ │ │ │ │ -2616 */ │ │ │ │ │ -2617 template │ │ │ │ │ -2618 _GLIBCXX_NODISCARD │ │ │ │ │ -2619 inline bool │ │ │ │ │ -_2_6_2_0 operator==(const _l_i_s_t_<___T_p_,_ ___A_l_l_o_c_>& __x, const _l_i_s_t_<___T_p_,_ ___A_l_l_o_c_>& __y) │ │ │ │ │ -2621 { │ │ │ │ │ -2622#if _GLIBCXX_USE_CXX11_ABI │ │ │ │ │ -2623 if (__x._s_i_z_e() != __y.size()) │ │ │ │ │ -2624 return false; │ │ │ │ │ -2625#endif │ │ │ │ │ -2626 │ │ │ │ │ -2627 typedef typename list<_Tp, _Alloc>::const_iterator const_iterator; │ │ │ │ │ -2628 const_iterator __end1 = __x._e_n_d(); │ │ │ │ │ -2629 const_iterator __end2 = __y.end(); │ │ │ │ │ -2630 │ │ │ │ │ -2631 const_iterator __i1 = __x._b_e_g_i_n(); │ │ │ │ │ -2632 const_iterator __i2 = __y.begin(); │ │ │ │ │ -2633 while (__i1 != __end1 && __i2 != __end2 && *__i1 == *__i2) │ │ │ │ │ -2634 { │ │ │ │ │ -2635 ++__i1; │ │ │ │ │ -2636 ++__i2; │ │ │ │ │ -2637 } │ │ │ │ │ -2638 return __i1 == __end1 && __i2 == __end2; │ │ │ │ │ -2639 } │ │ │ │ │ -2640 │ │ │ │ │ -2641#if __cpp_lib_three_way_comparison │ │ │ │ │ -2642/** │ │ │ │ │ -2643 * @brief List ordering relation. │ │ │ │ │ -2644 * @param __x A `list`. │ │ │ │ │ -2645 * @param __y A `list` of the same type as `__x`. │ │ │ │ │ -2646 * @return A value indicating whether `__x` is less than, equal to, │ │ │ │ │ -2647 * greater than, or incomparable with `__y`. │ │ │ │ │ -2648 * │ │ │ │ │ -2649 * See `std::lexicographical_compare_three_way()` for how the determination │ │ │ │ │ -2650 * is made. This operator is used to synthesize relational operators like │ │ │ │ │ -2651 * `<` and `>=` etc. │ │ │ │ │ -2652 */ │ │ │ │ │ -2653 template │ │ │ │ │ -2654 [[nodiscard]] │ │ │ │ │ -2655 inline __detail::__synth3way_t<_Tp> │ │ │ │ │ -2656 operator<=>(const list<_Tp, _Alloc>& __x, const list<_Tp, _Alloc>& __y) │ │ │ │ │ -2657 { │ │ │ │ │ -2658 return _s_t_d_:_:_l_e_x_i_c_o_g_r_a_p_h_i_c_a_l___c_o_m_p_a_r_e___t_h_r_e_e___w_a_y(__x.begin(), __x.end(), │ │ │ │ │ -2659 __y.begin(), __y.end(), │ │ │ │ │ -2660 __detail::__synth3way); │ │ │ │ │ -2661 } │ │ │ │ │ -2662#else │ │ │ │ │ -2663 /** │ │ │ │ │ -2664 * @brief List ordering relation. │ │ │ │ │ -2665 * @param __x A %list. │ │ │ │ │ -2666 * @param __y A %list of the same type as @a __x. │ │ │ │ │ -2667 * @return True iff @a __x is lexicographically less than @a __y. │ │ │ │ │ -2668 * │ │ │ │ │ -2669 * This is a total ordering relation. It is linear in the size of the │ │ │ │ │ -2670 * lists. The elements must be comparable with @c <. │ │ │ │ │ -2671 * │ │ │ │ │ -2672 * See std::lexicographical_compare() for how the determination is made. │ │ │ │ │ -2673 */ │ │ │ │ │ -2674 template │ │ │ │ │ -2675 _GLIBCXX_NODISCARD │ │ │ │ │ -2676 inline bool │ │ │ │ │ -2677 _o_p_e_r_a_t_o_r_<(const list<_Tp, _Alloc>& __x, const list<_Tp, _Alloc>& __y) │ │ │ │ │ -2678 { return std::lexicographical_compare(__x.begin(), __x.end(), │ │ │ │ │ -2679 __y.begin(), __y.end()); } │ │ │ │ │ -2680 │ │ │ │ │ -2681 /// Based on operator== │ │ │ │ │ -2682 template │ │ │ │ │ -2683 _GLIBCXX_NODISCARD │ │ │ │ │ -2684 inline bool │ │ │ │ │ -2685 operator!=(const list<_Tp, _Alloc>& __x, const list<_Tp, _Alloc>& __y) │ │ │ │ │ -2686 { return !(__x == __y); } │ │ │ │ │ -2687 │ │ │ │ │ -2688 /// Based on operator< │ │ │ │ │ -2689 template │ │ │ │ │ -2690 _GLIBCXX_NODISCARD │ │ │ │ │ -2691 inline bool │ │ │ │ │ -2692 _o_p_e_r_a_t_o_r_>(const list<_Tp, _Alloc>& __x, const list<_Tp, _Alloc>& __y) │ │ │ │ │ -2693 { return __y < __x; } │ │ │ │ │ -2694 │ │ │ │ │ -2695 /// Based on operator< │ │ │ │ │ -2696 template │ │ │ │ │ -2697 _GLIBCXX_NODISCARD │ │ │ │ │ -2698 inline bool │ │ │ │ │ -2699 _o_p_e_r_a_t_o_r_<_=(const list<_Tp, _Alloc>& __x, const list<_Tp, _Alloc>& __y) │ │ │ │ │ -2700 { return !(__y < __x); } │ │ │ │ │ -2701 │ │ │ │ │ -2702 /// Based on operator< │ │ │ │ │ -2703 template │ │ │ │ │ -2704 _GLIBCXX_NODISCARD │ │ │ │ │ -2705 inline bool │ │ │ │ │ -2706 _o_p_e_r_a_t_o_r_>_=(const list<_Tp, _Alloc>& __x, const list<_Tp, _Alloc>& __y) │ │ │ │ │ -2707 { return !(__x < __y); } │ │ │ │ │ -2708#endif // three-way comparison │ │ │ │ │ -2709 │ │ │ │ │ -2710 /// See std::list::swap(). │ │ │ │ │ -2711 template │ │ │ │ │ -2712 inline void │ │ │ │ │ -_2_7_1_3 swap(_l_i_s_t_<___T_p_,_ ___A_l_l_o_c_>& __x, _l_i_s_t_<___T_p_,_ ___A_l_l_o_c_>& __y) │ │ │ │ │ -2714 _GLIBCXX_NOEXCEPT_IF(noexcept(__x.swap(__y))) │ │ │ │ │ -2715 { __x.swap(__y); } │ │ │ │ │ -2716 │ │ │ │ │ -2717_GLIBCXX_END_NAMESPACE_CONTAINER │ │ │ │ │ -2718 │ │ │ │ │ -2719#if _GLIBCXX_USE_CXX11_ABI │ │ │ │ │ -2720 │ │ │ │ │ -2721 // Detect when distance is used to compute the size of the whole list. │ │ │ │ │ -2722 template │ │ │ │ │ -2723 inline ptrdiff_t │ │ │ │ │ -2724 __distance(_GLIBCXX_STD_C::_List_iterator<_Tp> __first, │ │ │ │ │ -2725 _GLIBCXX_STD_C::_List_iterator<_Tp> __last, │ │ │ │ │ -2726 input_iterator_tag __tag) │ │ │ │ │ -2727 { │ │ │ │ │ -2728 typedef _GLIBCXX_STD_C::_List_const_iterator<_Tp> _CIter; │ │ │ │ │ -2729 return std::__distance(_CIter(__first), _CIter(__last), __tag); │ │ │ │ │ -2730 } │ │ │ │ │ -2731 │ │ │ │ │ -2732 template │ │ │ │ │ -2733 inline ptrdiff_t │ │ │ │ │ -2734 __distance(_GLIBCXX_STD_C::_List_const_iterator<_Tp> __first, │ │ │ │ │ -2735 _GLIBCXX_STD_C::_List_const_iterator<_Tp> __last, │ │ │ │ │ -2736 input_iterator_tag) │ │ │ │ │ -2737 { │ │ │ │ │ -2738 typedef __detail::_List_node_header _Sentinel; │ │ │ │ │ -2739 _GLIBCXX_STD_C::_List_const_iterator<_Tp> __beyond = __last; │ │ │ │ │ -2740 ++__beyond; │ │ │ │ │ -2741 const bool __whole = __first == __beyond; │ │ │ │ │ -2742 if (__builtin_constant_p (__whole) && __whole) │ │ │ │ │ -2743 return static_cast(__last._M_node)->_M_size; │ │ │ │ │ -2744 │ │ │ │ │ -2745 ptrdiff_t __n = 0; │ │ │ │ │ -2746 while (__first != __last) │ │ │ │ │ -2747 { │ │ │ │ │ -2748 ++__first; │ │ │ │ │ -2749 ++__n; │ │ │ │ │ -2750 } │ │ │ │ │ -2751 return __n; │ │ │ │ │ -2752 } │ │ │ │ │ -2753 │ │ │ │ │ -2754#if _GLIBCXX_USE_ALLOC_PTR_FOR_LIST │ │ │ │ │ -2755 template │ │ │ │ │ -2756 inline ptrdiff_t │ │ │ │ │ -2757 __distance(__list::_Iterator<_Const, _Ptr> __first, │ │ │ │ │ -2758 __list::_Iterator<_Const, _Ptr> __last, │ │ │ │ │ -2759 input_iterator_tag __tag) │ │ │ │ │ -2760 { │ │ │ │ │ -2761 using _Tp = typename __list::_Iterator<_Const, _Ptr>::value_type; │ │ │ │ │ -2762 using _Sentinel = typename __list::_Node_traits<_Tp, _Ptr>::_Node_header; │ │ │ │ │ -2763 auto __beyond = __last; │ │ │ │ │ -2764 ++__beyond; │ │ │ │ │ -2765 const bool __whole = __first == __beyond; │ │ │ │ │ -2766 if (__builtin_constant_p (__whole) && __whole) │ │ │ │ │ -2767 return static_cast(*__last._M_node)._M_size; │ │ │ │ │ -2768 │ │ │ │ │ -2769 ptrdiff_t __n = 0; │ │ │ │ │ -2770 while (__first != __last) │ │ │ │ │ -2771 { │ │ │ │ │ -2772 ++__first; │ │ │ │ │ -2773 ++__n; │ │ │ │ │ -2774 } │ │ │ │ │ -2775 return __n; │ │ │ │ │ -2776 } │ │ │ │ │ -2777#endif │ │ │ │ │ -2778#endif │ │ │ │ │ -2779 │ │ │ │ │ -2780#if _GLIBCXX_USE_ALLOC_PTR_FOR_LIST │ │ │ │ │ -2781namespace __list │ │ │ │ │ -2782{ │ │ │ │ │ -2783 template │ │ │ │ │ -2784 void │ │ │ │ │ -2785 _Node_base<_VoidPtr>::swap(_Node_base& __x, _Node_base& __y) noexcept │ │ │ │ │ -2786 { │ │ │ │ │ -2787 auto __px = __x._M_base(); │ │ │ │ │ -2788 auto __py = __x._M_base(); │ │ │ │ │ -2789 │ │ │ │ │ -2790 if (__x._M_next != __px) │ │ │ │ │ -2791 { │ │ │ │ │ -2792 if (__y._M_next != __py) │ │ │ │ │ -2793 { │ │ │ │ │ -2794 using std::swap; │ │ │ │ │ -2795 // Both __x and __y are not empty. │ │ │ │ │ -2796 swap(__x._M_next,__y._M_next); │ │ │ │ │ -2797 swap(__x._M_prev,__y._M_prev); │ │ │ │ │ -2798 __x._M_next->_M_prev = __x._M_prev->_M_next = __px; │ │ │ │ │ -2799 __y._M_next->_M_prev = __y._M_prev->_M_next = __py; │ │ │ │ │ -2800 } │ │ │ │ │ -2801 else │ │ │ │ │ -2802 { │ │ │ │ │ -2803 // __x is not empty, __y is empty. │ │ │ │ │ -2804 __y._M_next = __x._M_next; │ │ │ │ │ -2805 __y._M_prev = __x._M_prev; │ │ │ │ │ -2806 __y._M_next->_M_prev = __y._M_prev->_M_next = __py; │ │ │ │ │ -2807 __x._M_next = __x._M_prev = __px; │ │ │ │ │ -2808 } │ │ │ │ │ -2809 } │ │ │ │ │ -2810 else if (__y._M_next != __py) │ │ │ │ │ -2811 { │ │ │ │ │ -2812 // __x is empty, __y is not empty. │ │ │ │ │ -2813 __x._M_next = __y._M_next; │ │ │ │ │ -2814 __x._M_prev = __y._M_prev; │ │ │ │ │ -2815 __x._M_next->_M_prev = __x._M_prev->_M_next = __px; │ │ │ │ │ -2816 __y._M_next = __y._M_prev = __py; │ │ │ │ │ -2817 } │ │ │ │ │ -2818 } │ │ │ │ │ -2819 │ │ │ │ │ -2820 template │ │ │ │ │ -2821 void │ │ │ │ │ -2822 _Node_base<_VoidPtr>::_M_transfer(_Base_ptr const __first, │ │ │ │ │ -2823 _Base_ptr const __last) noexcept │ │ │ │ │ -2824 { │ │ │ │ │ -2825 __glibcxx_assert(__first != __last); │ │ │ │ │ -2826 │ │ │ │ │ -2827 auto __self = _M_base(); │ │ │ │ │ -2828 if (__self != __last) │ │ │ │ │ -2829 { │ │ │ │ │ -2830 // Remove [first, last) from its old position. │ │ │ │ │ -2831 __last->_M_prev->_M_next = __self; │ │ │ │ │ -2832 __first->_M_prev->_M_next = __last; │ │ │ │ │ -2833 this->_M_prev->_M_next = __first; │ │ │ │ │ -2834 │ │ │ │ │ -2835 // Splice [first, last) into its new position. │ │ │ │ │ -2836 auto const __tmp = this->_M_prev; │ │ │ │ │ -2837 this->_M_prev = __last->_M_prev; │ │ │ │ │ -2838 __last->_M_prev = __first->_M_prev; │ │ │ │ │ -2839 __first->_M_prev = __tmp; │ │ │ │ │ -2840 } │ │ │ │ │ -2841 } │ │ │ │ │ -2842 │ │ │ │ │ -2843 template │ │ │ │ │ -2844 void │ │ │ │ │ -2845 _Node_header<_VoidPtr>::_M_reverse() noexcept │ │ │ │ │ -2846 { │ │ │ │ │ -2847 const auto __self = this->_M_base(); │ │ │ │ │ -2848 auto __tmp = __self; │ │ │ │ │ -2849 do │ │ │ │ │ -2850 { │ │ │ │ │ -2851 using std::swap; │ │ │ │ │ -2852 swap(__tmp->_M_next, __tmp->_M_prev); │ │ │ │ │ -2853 │ │ │ │ │ -2854 // Old next node is now prev. │ │ │ │ │ -2855 __tmp = __tmp->_M_prev; │ │ │ │ │ -2856 } │ │ │ │ │ -2857 while (__tmp != __self); │ │ │ │ │ -2858 } │ │ │ │ │ -2859} // namespace __list │ │ │ │ │ -2860#endif │ │ │ │ │ -2861 │ │ │ │ │ -2862_GLIBCXX_END_NAMESPACE_VERSION │ │ │ │ │ -2863} // namespace std │ │ │ │ │ -2864 │ │ │ │ │ -2865#endif /* _STL_LIST_H */ │ │ │ │ │ -_i_n_i_t_i_a_l_i_z_e_r___l_i_s_t │ │ │ │ │ -_c_o_n_c_e_p_t___c_h_e_c_k_._h │ │ │ │ │ -_p_t_r___t_r_a_i_t_s_._h │ │ │ │ │ -_a_l_l_o_c_a_t_e_d___p_t_r_._h │ │ │ │ │ -_r_a_n_g_e_s___b_a_s_e_._h │ │ │ │ │ -_r_a_n_g_e_s___u_t_i_l_._h │ │ │ │ │ -_a_s_s_e_r_t_i_o_n_s_._h │ │ │ │ │ -_a_l_i_g_n_e_d___b_u_f_f_e_r_._h │ │ │ │ │ -_s_t_d_:_:_c_h_r_o_n_o_:_:_o_p_e_r_a_t_o_r_<_= │ │ │ │ │ -constexpr bool operator<=(const duration< _Rep1, _Period1 > &__lhs, const │ │ │ │ │ -duration< _Rep2, _Period2 > &__rhs) │ │ │ │ │ -DDeeffiinniittiioonn _c_h_r_o_n_o_._h_:_8_5_9 │ │ │ │ │ -_s_t_d_:_:_c_h_r_o_n_o_:_:_o_p_e_r_a_t_o_r_>_= │ │ │ │ │ -constexpr bool operator>=(const duration< _Rep1, _Period1 > &__lhs, const │ │ │ │ │ -duration< _Rep2, _Period2 > &__rhs) │ │ │ │ │ -DDeeffiinniittiioonn _c_h_r_o_n_o_._h_:_8_7_3 │ │ │ │ │ -_s_t_d_:_:_c_h_r_o_n_o_:_:_o_p_e_r_a_t_o_r_< │ │ │ │ │ -constexpr bool operator<(const duration< _Rep1, _Period1 > &__lhs, const │ │ │ │ │ -duration< _Rep2, _Period2 > &__rhs) │ │ │ │ │ -DDeeffiinniittiioonn _c_h_r_o_n_o_._h_:_8_2_6 │ │ │ │ │ -_s_t_d_:_:_c_h_r_o_n_o_:_:_o_p_e_r_a_t_o_r_> │ │ │ │ │ -constexpr bool operator>(const duration< _Rep1, _Period1 > &__lhs, const │ │ │ │ │ -duration< _Rep2, _Period2 > &__rhs) │ │ │ │ │ -DDeeffiinniittiioonn _c_h_r_o_n_o_._h_:_8_6_6 │ │ │ │ │ -_s_t_d_:_:_o_p_e_r_a_t_o_r_* │ │ │ │ │ -constexpr complex< _Tp > operator*(const complex< _Tp > &__x, const complex< │ │ │ │ │ -_Tp > &__y) │ │ │ │ │ -Return new complex value x times y. │ │ │ │ │ -DDeeffiinniittiioonn _c_o_m_p_l_e_x_:_4_3_4 │ │ │ │ │ -_s_t_d_:_:_m_o_v_e │ │ │ │ │ -constexpr std::remove_reference< _Tp >::type && move(_Tp &&__t) noexcept │ │ │ │ │ -Convert a value to an rvalue. │ │ │ │ │ -DDeeffiinniittiioonn _m_o_v_e_._h_:_1_3_8 │ │ │ │ │ +261 ostream_iterator& │ │ │ │ │ +262 operator++() _GLIBCXX_NOEXCEPT │ │ │ │ │ +263 { return *this; } │ │ │ │ │ +264 │ │ │ │ │ +265 _o_s_t_r_e_a_m___i_t_e_r_a_t_o_r& │ │ │ │ │ +266 operator++(int) _GLIBCXX_NOEXCEPT │ │ │ │ │ +267 { return *this; } │ │ │ │ │ +268 }; │ │ │ │ │ +269#pragma GCC diagnostic pop │ │ │ │ │ +270 │ │ │ │ │ +271 /// @} group iterators │ │ │ │ │ +272 │ │ │ │ │ +273_GLIBCXX_END_NAMESPACE_VERSION │ │ │ │ │ +274} // namespace │ │ │ │ │ +275 │ │ │ │ │ +276#endif │ │ │ │ │ +_i_o_s_f_w_d │ │ │ │ │ +_m_o_v_e_._h │ │ │ │ │ +_s_t_l___i_t_e_r_a_t_o_r___b_a_s_e___t_y_p_e_s_._h │ │ │ │ │ +_d_e_b_u_g_._h │ │ │ │ │ _s_t_d_:_:_____a_d_d_r_e_s_s_o_f │ │ │ │ │ constexpr _Tp * __addressof(_Tp &__r) noexcept │ │ │ │ │ Same as C++11 std::addressof. │ │ │ │ │ DDeeffiinniittiioonn _m_o_v_e_._h_:_5_2 │ │ │ │ │ -_s_t_d_:_:_e_n_d │ │ │ │ │ -_Tp * end(valarray< _Tp > &__va) noexcept │ │ │ │ │ -Return an iterator pointing to one past the last element of the valarray. │ │ │ │ │ -DDeeffiinniittiioonn _v_a_l_a_r_r_a_y_:_1_2_5_1 │ │ │ │ │ -_s_t_d_:_:_b_e_g_i_n │ │ │ │ │ -_Tp * begin(valarray< _Tp > &__va) noexcept │ │ │ │ │ -Return an iterator pointing to the first element of the valarray. │ │ │ │ │ -DDeeffiinniittiioonn _v_a_l_a_r_r_a_y_:_1_2_2_9 │ │ │ │ │ -_s_t_d_:_:_l_e_x_i_c_o_g_r_a_p_h_i_c_a_l___c_o_m_p_a_r_e___t_h_r_e_e___w_a_y │ │ │ │ │ -constexpr auto lexicographical_compare_three_way(_InputIter1 __first1, │ │ │ │ │ -_InputIter1 __last1, _InputIter2 __first2, _InputIter2 __last2, _Comp __comp) - │ │ │ │ │ -> decltype(__comp(*__first1, *__first2)) │ │ │ │ │ -Performs dictionary comparison on ranges. │ │ │ │ │ -DDeeffiinniittiioonn _s_t_l___a_l_g_o_b_a_s_e_._h_:_1_8_6_2 │ │ │ │ │ _s_t_d │ │ │ │ │ ISO C++ entities toplevel namespace is std. │ │ │ │ │ -_s_t_d_:_:_____p_t_r___r_e_b_i_n_d │ │ │ │ │ -typename pointer_traits< _Ptr >::template rebind< _Tp > __ptr_rebind │ │ │ │ │ -Convenience alias for rebinding pointers. │ │ │ │ │ -DDeeffiinniittiioonn _p_t_r___t_r_a_i_t_s_._h_:_2_0_1 │ │ │ │ │ -_s_t_d_:_:_d_i_s_t_a_n_c_e │ │ │ │ │ -constexpr iterator_traits< _InputIterator >::difference_type distance │ │ │ │ │ -(_InputIterator __first, _InputIterator __last) │ │ │ │ │ -A generalization of pointer arithmetic. │ │ │ │ │ -DDeeffiinniittiioonn _s_t_l___i_t_e_r_a_t_o_r___b_a_s_e___f_u_n_c_s_._h_:_1_5_0 │ │ │ │ │ -_s_t_d_:_:_e_m_p_t_y │ │ │ │ │ -constexpr auto empty(const _Container &__cont) noexcept(noexcept(__cont.empty │ │ │ │ │ -())) -> decltype(__cont.empty()) │ │ │ │ │ -Return whether a container is empty. │ │ │ │ │ -DDeeffiinniittiioonn _r_a_n_g_e___a_c_c_e_s_s_._h_:_2_9_4 │ │ │ │ │ -_s_t_d_:_:_i_n_i_t_i_a_l_i_z_e_r___l_i_s_t │ │ │ │ │ -initializer_list │ │ │ │ │ -DDeeffiinniittiioonn _i_n_i_t_i_a_l_i_z_e_r___l_i_s_t_:_4_8 │ │ │ │ │ -_s_t_d_:_:_i_s___s_a_m_e │ │ │ │ │ -is_same │ │ │ │ │ -DDeeffiinniittiioonn _t_y_p_e___t_r_a_i_t_s_:_1_5_4_0 │ │ │ │ │ +_s_t_d_:_:_b_a_s_i_c___i_s_t_r_e_a_m │ │ │ │ │ +Template class basic_istream. │ │ │ │ │ +DDeeffiinniittiioonn _i_s_t_r_e_a_m_:_6_3 │ │ │ │ │ +_s_t_d_:_:_b_a_s_i_c___o_s_t_r_e_a_m │ │ │ │ │ +Template class basic_ostream. │ │ │ │ │ +DDeeffiinniittiioonn _o_s_t_r_e_a_m_._h_:_6_7 │ │ │ │ │ _s_t_d_:_:_i_s___n_o_t_h_r_o_w___d_e_f_a_u_l_t___c_o_n_s_t_r_u_c_t_i_b_l_e │ │ │ │ │ is_nothrow_default_constructible │ │ │ │ │ DDeeffiinniittiioonn _t_y_p_e___t_r_a_i_t_s_:_1_2_4_5 │ │ │ │ │ -_s_t_d_:_:_i_s___t_r_i_v_i_a_l_l_y___d_e_s_t_r_u_c_t_i_b_l_e │ │ │ │ │ -is_trivially_destructible │ │ │ │ │ -DDeeffiinniittiioonn _t_y_p_e___t_r_a_i_t_s_:_1_4_5_9 │ │ │ │ │ -_s_t_d_:_:_p_o_i_n_t_e_r___t_r_a_i_t_s │ │ │ │ │ -Uniform interface to all pointer-like types. │ │ │ │ │ -DDeeffiinniittiioonn _p_t_r___t_r_a_i_t_s_._h_:_1_7_8 │ │ │ │ │ -_s_t_d_:_:_r_a_n_g_e_s_:_:_s_u_b_r_a_n_g_e │ │ │ │ │ -The ranges::subrange class template. │ │ │ │ │ -DDeeffiinniittiioonn _r_a_n_g_e_s___u_t_i_l_._h_:_2_7_0 │ │ │ │ │ -_s_t_d_:_:_r_e_v_e_r_s_e___i_t_e_r_a_t_o_r │ │ │ │ │ -DDeeffiinniittiioonn _b_i_t_s_/_s_t_l___i_t_e_r_a_t_o_r_._h_:_1_3_7 │ │ │ │ │ -_s_t_d_:_:___L_i_s_t___i_t_e_r_a_t_o_r │ │ │ │ │ -A list::iterator. │ │ │ │ │ -DDeeffiinniittiioonn _s_t_l___l_i_s_t_._h_:_5_7_5 │ │ │ │ │ -_s_t_d_:_:___L_i_s_t___c_o_n_s_t___i_t_e_r_a_t_o_r │ │ │ │ │ -A list::const_iterator. │ │ │ │ │ -DDeeffiinniittiioonn _s_t_l___l_i_s_t_._h_:_6_6_1 │ │ │ │ │ -_s_t_d_:_:_b_i_d_i_r_e_c_t_i_o_n_a_l___i_t_e_r_a_t_o_r___t_a_g │ │ │ │ │ -Bidirectional iterators support a superset of forward iterator operations. │ │ │ │ │ -DDeeffiinniittiioonn _s_t_l___i_t_e_r_a_t_o_r___b_a_s_e___t_y_p_e_s_._h_:_1_0_5 │ │ │ │ │ +_s_t_d_:_:_i_s___n_o_t_h_r_o_w___c_o_p_y___c_o_n_s_t_r_u_c_t_i_b_l_e │ │ │ │ │ +is_nothrow_copy_constructible │ │ │ │ │ +DDeeffiinniittiioonn _t_y_p_e___t_r_a_i_t_s_:_1_2_5_4 │ │ │ │ │ _s_t_d_:_:_i_t_e_r_a_t_o_r │ │ │ │ │ Common iterator class. │ │ │ │ │ DDeeffiinniittiioonn _s_t_l___i_t_e_r_a_t_o_r___b_a_s_e___t_y_p_e_s_._h_:_1_3_0 │ │ │ │ │ -_s_t_d_:_:_____d_e_t_a_i_l_:_:___L_i_s_t___n_o_d_e___b_a_s_e │ │ │ │ │ -Common part of a node in the list. │ │ │ │ │ -DDeeffiinniittiioonn _s_t_l___l_i_s_t_._h_:_9_5 │ │ │ │ │ -_s_t_d_:_:_____d_e_t_a_i_l_:_:___L_i_s_t___n_o_d_e___h_e_a_d_e_r │ │ │ │ │ -The list node header. │ │ │ │ │ -DDeeffiinniittiioonn _s_t_l___l_i_s_t_._h_:_1_3_1 │ │ │ │ │ -_s_t_d_:_:_l_i_s_t │ │ │ │ │ -A standard container with linear time access to elements, and fixed time │ │ │ │ │ -insertion/deletion at any po... │ │ │ │ │ -DDeeffiinniittiioonn _s_t_l___l_i_s_t_._h_:_1_0_2_6 │ │ │ │ │ -_s_t_d_:_:_l_i_s_t_:_:_s_p_l_i_c_e │ │ │ │ │ -void splice(const_iterator __position, list &&__x, const_iterator __i) noexcept │ │ │ │ │ -Insert element from another list. │ │ │ │ │ -DDeeffiinniittiioonn _s_t_l___l_i_s_t_._h_:_2_1_3_8 │ │ │ │ │ -_s_t_d_:_:_l_i_s_t_:_:_l_i_s_t │ │ │ │ │ -list(list &&)=default │ │ │ │ │ -List move constructor. │ │ │ │ │ -_s_t_d_:_:_l_i_s_t_:_:_p_u_s_h___b_a_c_k │ │ │ │ │ -void push_back(const value_type &__x) │ │ │ │ │ -Add data to the end of the list. │ │ │ │ │ -DDeeffiinniittiioonn _s_t_l___l_i_s_t_._h_:_1_8_0_3 │ │ │ │ │ -_s_t_d_:_:_l_i_s_t_:_:_b_e_g_i_n │ │ │ │ │ -iterator begin() noexcept │ │ │ │ │ -DDeeffiinniittiioonn _s_t_l___l_i_s_t_._h_:_1_4_5_7 │ │ │ │ │ -_s_t_d_:_:_l_i_s_t_:_:_o_p_e_r_a_t_o_r_= │ │ │ │ │ -list & operator=(list &&__x) noexcept(_Node_alloc_traits::_S_nothrow_move()) │ │ │ │ │ -List move assignment operator. │ │ │ │ │ -DDeeffiinniittiioonn _s_t_l___l_i_s_t_._h_:_1_3_1_8 │ │ │ │ │ -_s_t_d_:_:_l_i_s_t_:_:_i_n_s_e_r_t │ │ │ │ │ -iterator insert(const_iterator __position, value_type &&__x) │ │ │ │ │ -Inserts given value into list before specified iterator. │ │ │ │ │ -DDeeffiinniittiioonn _s_t_l___l_i_s_t_._h_:_1_8_8_0 │ │ │ │ │ -_s_t_d_:_:_l_i_s_t_:_:_g_e_t___a_l_l_o_c_a_t_o_r │ │ │ │ │ -allocator_type get_allocator() const noexcept │ │ │ │ │ -Get a copy of the memory allocation object. │ │ │ │ │ -DDeeffiinniittiioonn _s_t_l___l_i_s_t_._h_:_1_4_4_7 │ │ │ │ │ -_s_t_d_:_:_l_i_s_t_:_:_a_s_s_i_g_n │ │ │ │ │ -void assign(initializer_list< value_type > __l) │ │ │ │ │ -Assigns an initializer_list to a list. │ │ │ │ │ -DDeeffiinniittiioonn _s_t_l___l_i_s_t_._h_:_1_4_4_1 │ │ │ │ │ -_s_t_d_:_:_l_i_s_t_:_:_e_n_d │ │ │ │ │ -const_iterator end() const noexcept │ │ │ │ │ -DDeeffiinniittiioonn _s_t_l___l_i_s_t_._h_:_1_4_8_7 │ │ │ │ │ -_s_t_d_:_:_l_i_s_t_:_:_r_b_e_g_i_n │ │ │ │ │ -const_reverse_iterator rbegin() const noexcept │ │ │ │ │ -DDeeffiinniittiioonn _s_t_l___l_i_s_t_._h_:_1_5_0_7 │ │ │ │ │ -_s_t_d_:_:_l_i_s_t_:_:_l_i_s_t │ │ │ │ │ -list(size_type __n, const allocator_type &__a=allocator_type()) │ │ │ │ │ -Creates a list with default constructed elements. │ │ │ │ │ -DDeeffiinniittiioonn _s_t_l___l_i_s_t_._h_:_1_1_4_3 │ │ │ │ │ -_s_t_d_:_:_l_i_s_t_:_:_r_e_n_d │ │ │ │ │ -reverse_iterator rend() noexcept │ │ │ │ │ -DDeeffiinniittiioonn _s_t_l___l_i_s_t_._h_:_1_5_1_7 │ │ │ │ │ -_s_t_d_:_:_l_i_s_t_:_:_p_o_p___b_a_c_k │ │ │ │ │ -void pop_back() noexcept │ │ │ │ │ -Removes last element. │ │ │ │ │ -DDeeffiinniittiioonn _s_t_l___l_i_s_t_._h_:_1_8_3_8 │ │ │ │ │ -_s_t_d_:_:_l_i_s_t_:_:_p_u_s_h___f_r_o_n_t │ │ │ │ │ -void push_front(const value_type &__x) │ │ │ │ │ -Add data to the front of the list. │ │ │ │ │ -DDeeffiinniittiioonn _s_t_l___l_i_s_t_._h_:_1_7_0_6 │ │ │ │ │ -_s_t_d_:_:_l_i_s_t_:_:_s_i_z_e │ │ │ │ │ -size_type size() const noexcept │ │ │ │ │ -DDeeffiinniittiioonn _s_t_l___l_i_s_t_._h_:_1_5_8_6 │ │ │ │ │ -_s_t_d_:_:_l_i_s_t_:_:_f_r_o_n_t │ │ │ │ │ -const_reference front() const noexcept │ │ │ │ │ -DDeeffiinniittiioonn _s_t_l___l_i_s_t_._h_:_1_6_6_0 │ │ │ │ │ -_s_t_d_:_:_l_i_s_t_:_:___M___c_r_e_a_t_e___n_o_d_e │ │ │ │ │ -_Node_ptr _M_create_node(_Args &&... __args) │ │ │ │ │ -DDeeffiinniittiioonn _s_t_l___l_i_s_t_._h_:_1_1_0_2 │ │ │ │ │ -_s_t_d_:_:_l_i_s_t_:_:_s_p_l_i_c_e │ │ │ │ │ -void splice(const_iterator __position, list &__x, const_iterator __first, │ │ │ │ │ -const_iterator __last) noexcept │ │ │ │ │ -Insert range from another list. │ │ │ │ │ -DDeeffiinniittiioonn _s_t_l___l_i_s_t_._h_:_2_2_2_0 │ │ │ │ │ -_s_t_d_:_:_l_i_s_t_:_:_~_l_i_s_t │ │ │ │ │ -~list()=default │ │ │ │ │ -_s_t_d_:_:_l_i_s_t_:_:_a_s_s_i_g_n │ │ │ │ │ -void assign(_InputIterator __first, _InputIterator __last) │ │ │ │ │ -Assigns a range to a list. │ │ │ │ │ -DDeeffiinniittiioonn _s_t_l___l_i_s_t_._h_:_1_4_1_9 │ │ │ │ │ -_s_t_d_:_:_l_i_s_t_:_:_c_e_n_d │ │ │ │ │ -const_iterator cend() const noexcept │ │ │ │ │ -DDeeffiinniittiioonn _s_t_l___l_i_s_t_._h_:_1_5_4_8 │ │ │ │ │ -_s_t_d_:_:_l_i_s_t_:_:_l_i_s_t │ │ │ │ │ -list(const allocator_type &__a) noexcept │ │ │ │ │ -Creates a list with no elements. │ │ │ │ │ -DDeeffiinniittiioonn _s_t_l___l_i_s_t_._h_:_1_1_3_0 │ │ │ │ │ -_s_t_d_:_:_l_i_s_t_:_:_r_e_v_e_r_s_e │ │ │ │ │ -void reverse() noexcept │ │ │ │ │ -Reverse the elements in list. │ │ │ │ │ -DDeeffiinniittiioonn _s_t_l___l_i_s_t_._h_:_2_3_5_3 │ │ │ │ │ -_s_t_d_:_:_l_i_s_t_:_:_o_p_e_r_a_t_o_r_= │ │ │ │ │ -list & operator=(initializer_list< value_type > __l) │ │ │ │ │ -List initializer list assignment operator. │ │ │ │ │ -DDeeffiinniittiioonn _s_t_l___l_i_s_t_._h_:_1_3_5_6 │ │ │ │ │ -_s_t_d_:_:_l_i_s_t_:_:_r_b_e_g_i_n │ │ │ │ │ -reverse_iterator rbegin() noexcept │ │ │ │ │ -DDeeffiinniittiioonn _s_t_l___l_i_s_t_._h_:_1_4_9_7 │ │ │ │ │ -_s_t_d_:_:_l_i_s_t_:_:_l_i_s_t │ │ │ │ │ -list()=default │ │ │ │ │ -Creates a list with no elements. │ │ │ │ │ -_s_t_d_:_:_l_i_s_t_:_:_e_r_a_s_e │ │ │ │ │ -iterator erase(const_iterator __first, const_iterator __last) noexcept │ │ │ │ │ -Remove a range of elements. │ │ │ │ │ -DDeeffiinniittiioonn _s_t_l___l_i_s_t_._h_:_2_0_4_0 │ │ │ │ │ -_s_t_d_:_:_l_i_s_t_:_:_b_a_c_k │ │ │ │ │ -reference back() noexcept │ │ │ │ │ -DDeeffiinniittiioonn _s_t_l___l_i_s_t_._h_:_1_6_7_2 │ │ │ │ │ -_s_t_d_:_:_l_i_s_t_:_:_a_s_s_i_g_n │ │ │ │ │ -void assign(size_type __n, const value_type &__val) │ │ │ │ │ -Assigns a given value to a list. │ │ │ │ │ -DDeeffiinniittiioonn _s_t_l___l_i_s_t_._h_:_1_4_0_0 │ │ │ │ │ -_s_t_d_:_:_l_i_s_t_:_:_s_p_l_i_c_e │ │ │ │ │ -void splice(const_iterator __position, list &&__x, const_iterator __first, │ │ │ │ │ -const_iterator __last) noexcept │ │ │ │ │ -Insert range from another list. │ │ │ │ │ -DDeeffiinniittiioonn _s_t_l___l_i_s_t_._h_:_2_1_8_0 │ │ │ │ │ -_s_t_d_:_:_l_i_s_t_:_:_s_p_l_i_c_e │ │ │ │ │ -void splice(const_iterator __position, list &__x, const_iterator __i) noexcept │ │ │ │ │ -Insert element from another list. │ │ │ │ │ -DDeeffiinniittiioonn _s_t_l___l_i_s_t_._h_:_2_1_6_1 │ │ │ │ │ -_s_t_d_:_:_l_i_s_t_:_:_c_b_e_g_i_n │ │ │ │ │ -const_iterator cbegin() const noexcept │ │ │ │ │ -DDeeffiinniittiioonn _s_t_l___l_i_s_t_._h_:_1_5_3_8 │ │ │ │ │ -_s_t_d_:_:_l_i_s_t_:_:_c_r_b_e_g_i_n │ │ │ │ │ -const_reverse_iterator crbegin() const noexcept │ │ │ │ │ -DDeeffiinniittiioonn _s_t_l___l_i_s_t_._h_:_1_5_5_8 │ │ │ │ │ -_s_t_d_:_:_l_i_s_t_:_:_e_n_d │ │ │ │ │ -iterator end() noexcept │ │ │ │ │ -DDeeffiinniittiioonn _s_t_l___l_i_s_t_._h_:_1_4_7_7 │ │ │ │ │ -_s_t_d_:_:_l_i_s_t_:_:_l_i_s_t │ │ │ │ │ -list(initializer_list< value_type > __l, const allocator_type │ │ │ │ │ -&__a=allocator_type()) │ │ │ │ │ -Builds a list from an initializer_list. │ │ │ │ │ -DDeeffiinniittiioonn _s_t_l___l_i_s_t_._h_:_1_2_0_5 │ │ │ │ │ -_s_t_d_:_:_l_i_s_t_:_:_m_a_x___s_i_z_e │ │ │ │ │ -size_type max_size() const noexcept │ │ │ │ │ -DDeeffiinniittiioonn _s_t_l___l_i_s_t_._h_:_1_5_9_8 │ │ │ │ │ -_s_t_d_:_:_l_i_s_t_:_:_b_a_c_k │ │ │ │ │ -const_reference back() const noexcept │ │ │ │ │ -DDeeffiinniittiioonn _s_t_l___l_i_s_t_._h_:_1_6_8_6 │ │ │ │ │ -_s_t_d_:_:_l_i_s_t_:_:_l_i_s_t │ │ │ │ │ -list(size_type __n, const value_type &__value, const allocator_type │ │ │ │ │ -&__a=allocator_type()) │ │ │ │ │ -Creates a list with copies of an exemplar element. │ │ │ │ │ -DDeeffiinniittiioonn _s_t_l___l_i_s_t_._h_:_1_1_5_5 │ │ │ │ │ -_s_t_d_:_:_l_i_s_t_:_:_b_e_g_i_n │ │ │ │ │ -const_iterator begin() const noexcept │ │ │ │ │ -DDeeffiinniittiioonn _s_t_l___l_i_s_t_._h_:_1_4_6_7 │ │ │ │ │ -_s_t_d_:_:_l_i_s_t_:_:_f_r_o_n_t │ │ │ │ │ -reference front() noexcept │ │ │ │ │ -DDeeffiinniittiioonn _s_t_l___l_i_s_t_._h_:_1_6_4_8 │ │ │ │ │ -_s_t_d_:_:_l_i_s_t_:_:_p_o_p___f_r_o_n_t │ │ │ │ │ -void pop_front() noexcept │ │ │ │ │ -Removes first element. │ │ │ │ │ -DDeeffiinniittiioonn _s_t_l___l_i_s_t_._h_:_1_7_8_6 │ │ │ │ │ -_s_t_d_:_:_l_i_s_t_:_:_l_i_s_t │ │ │ │ │ -list(_InputIterator __first, _InputIterator __last, const allocator_type │ │ │ │ │ -&__a=allocator_type()) │ │ │ │ │ -Builds a list from a range. │ │ │ │ │ -DDeeffiinniittiioonn _s_t_l___l_i_s_t_._h_:_1_2_5_0 │ │ │ │ │ -_s_t_d_:_:_l_i_s_t_:_:_s_p_l_i_c_e │ │ │ │ │ -void splice(const_iterator __position, list &&__x) noexcept │ │ │ │ │ -Insert contents of another list. │ │ │ │ │ -DDeeffiinniittiioonn _s_t_l___l_i_s_t_._h_:_2_1_0_2 │ │ │ │ │ -_s_t_d_:_:_l_i_s_t_:_:_c_l_e_a_r │ │ │ │ │ -void clear() noexcept │ │ │ │ │ -DDeeffiinniittiioonn _s_t_l___l_i_s_t_._h_:_2_0_8_2 │ │ │ │ │ -_s_t_d_:_:_l_i_s_t_:_:_l_i_s_t │ │ │ │ │ -list(const list &__x) │ │ │ │ │ -List copy constructor. │ │ │ │ │ -DDeeffiinniittiioonn _s_t_l___l_i_s_t_._h_:_1_1_8_2 │ │ │ │ │ -_s_t_d_:_:_l_i_s_t_:_:_r_e_n_d │ │ │ │ │ -const_reverse_iterator rend() const noexcept │ │ │ │ │ -DDeeffiinniittiioonn _s_t_l___l_i_s_t_._h_:_1_5_2_7 │ │ │ │ │ -_s_t_d_:_:_l_i_s_t_:_:_e_m_p_t_y │ │ │ │ │ -bool empty() const noexcept │ │ │ │ │ -DDeeffiinniittiioonn _s_t_l___l_i_s_t_._h_:_1_5_7_8 │ │ │ │ │ -_s_t_d_:_:_l_i_s_t_:_:_i_n_s_e_r_t │ │ │ │ │ -iterator insert(const_iterator __p, initializer_list< value_type > __l) │ │ │ │ │ -Inserts the contents of an initializer_list into list before specified │ │ │ │ │ -const_iterator. │ │ │ │ │ -DDeeffiinniittiioonn _s_t_l___l_i_s_t_._h_:_1_9_0_5 │ │ │ │ │ -_s_t_d_:_:_l_i_s_t_:_:_c_r_e_n_d │ │ │ │ │ -const_reverse_iterator crend() const noexcept │ │ │ │ │ -DDeeffiinniittiioonn _s_t_l___l_i_s_t_._h_:_1_5_6_8 │ │ │ │ │ -_s_t_d_:_:_l_i_s_t_:_:_s_w_a_p │ │ │ │ │ -void swap(list &__x) noexcept │ │ │ │ │ -Swaps data with another list. │ │ │ │ │ -DDeeffiinniittiioonn _s_t_l___l_i_s_t_._h_:_2_0_6_2 │ │ │ │ │ -_s_t_d_:_:___L_i_s_t___n_o_d_e │ │ │ │ │ -An actual node in the list. │ │ │ │ │ -DDeeffiinniittiioonn _s_t_l___l_i_s_t_._h_:_5_5_2 │ │ │ │ │ -_s_t_d_:_:___L_i_s_t___b_a_s_e │ │ │ │ │ -See bits/stl_deque.h's _Deque_base for an explanation. │ │ │ │ │ -DDeeffiinniittiioonn _s_t_l___l_i_s_t_._h_:_7_4_9 │ │ │ │ │ -_____g_n_u___c_x_x_:_:_____a_l_l_o_c___t_r_a_i_t_s │ │ │ │ │ -Uniform interface to C++98 and C++11 allocators. │ │ │ │ │ -DDeeffiinniittiioonn _e_x_t_/_a_l_l_o_c___t_r_a_i_t_s_._h_:_5_1 │ │ │ │ │ -_a_l_l_o_c___t_r_a_i_t_s_._h │ │ │ │ │ +_s_t_d_:_:_i_s_t_r_e_a_m___i_t_e_r_a_t_o_r │ │ │ │ │ +Provides input iterator semantics for streams. │ │ │ │ │ +DDeeffiinniittiioonn _s_t_r_e_a_m___i_t_e_r_a_t_o_r_._h_:_6_0 │ │ │ │ │ +_s_t_d_:_:_i_s_t_r_e_a_m___i_t_e_r_a_t_o_r_:_:_i_s_t_r_e_a_m___i_t_e_r_a_t_o_r │ │ │ │ │ +istream_iterator(istream_type &__s) │ │ │ │ │ +Construct start of input stream iterator. │ │ │ │ │ +DDeeffiinniittiioonn _s_t_r_e_a_m___i_t_e_r_a_t_o_r_._h_:_8_1 │ │ │ │ │ +_s_t_d_:_:_i_s_t_r_e_a_m___i_t_e_r_a_t_o_r_:_:_i_s_t_r_e_a_m___i_t_e_r_a_t_o_r │ │ │ │ │ +constexpr istream_iterator() noexcept(/*conditional */) │ │ │ │ │ +Construct end of input stream iterator. │ │ │ │ │ +DDeeffiinniittiioonn _s_t_r_e_a_m___i_t_e_r_a_t_o_r_._h_:_7_6 │ │ │ │ │ +_s_t_d_:_:_i_s_t_r_e_a_m___i_t_e_r_a_t_o_r_:_:_o_p_e_r_a_t_o_r_=_= │ │ │ │ │ +friend bool operator==(const istream_iterator &__x, const istream_iterator │ │ │ │ │ +&__y) noexcept │ │ │ │ │ +Return true if the iterators refer to the same stream, or are both at end-of- │ │ │ │ │ +stream. │ │ │ │ │ +DDeeffiinniittiioonn _s_t_r_e_a_m___i_t_e_r_a_t_o_r_._h_:_1_6_3 │ │ │ │ │ +_s_t_d_:_:_o_s_t_r_e_a_m___i_t_e_r_a_t_o_r │ │ │ │ │ +Provides output iterator semantics for streams. │ │ │ │ │ +DDeeffiinniittiioonn _s_t_r_e_a_m___i_t_e_r_a_t_o_r_._h_:_2_0_0 │ │ │ │ │ +_s_t_d_:_:_o_s_t_r_e_a_m___i_t_e_r_a_t_o_r_:_:_c_h_a_r___t_y_p_e │ │ │ │ │ +_CharT char_type │ │ │ │ │ +Public typedef. │ │ │ │ │ +DDeeffiinniittiioonn _s_t_r_e_a_m___i_t_e_r_a_t_o_r_._h_:_2_0_7 │ │ │ │ │ +_s_t_d_:_:_o_s_t_r_e_a_m___i_t_e_r_a_t_o_r_:_:_o_s_t_r_e_a_m___i_t_e_r_a_t_o_r │ │ │ │ │ +ostream_iterator(ostream_type &__s) noexcept │ │ │ │ │ +Construct from an ostream. │ │ │ │ │ +DDeeffiinniittiioonn _s_t_r_e_a_m___i_t_e_r_a_t_o_r_._h_:_2_1_8 │ │ │ │ │ +_s_t_d_:_:_o_s_t_r_e_a_m___i_t_e_r_a_t_o_r_:_:_o_s_t_r_e_a_m___i_t_e_r_a_t_o_r │ │ │ │ │ +ostream_iterator(ostream_type &__s, const _CharT *__c) noexcept │ │ │ │ │ +DDeeffiinniittiioonn _s_t_r_e_a_m___i_t_e_r_a_t_o_r_._h_:_2_3_1 │ │ │ │ │ +_s_t_d_:_:_o_s_t_r_e_a_m___i_t_e_r_a_t_o_r_:_:_t_r_a_i_t_s___t_y_p_e │ │ │ │ │ +_Traits traits_type │ │ │ │ │ +Public typedef. │ │ │ │ │ +DDeeffiinniittiioonn _s_t_r_e_a_m___i_t_e_r_a_t_o_r_._h_:_2_0_8 │ │ │ │ │ +_s_t_d_:_:_o_s_t_r_e_a_m___i_t_e_r_a_t_o_r_:_:_o_p_e_r_a_t_o_r_= │ │ │ │ │ +ostream_iterator & operator=(const _Tp &__value) │ │ │ │ │ +Writes value to underlying ostream using operator<<. If constructed with │ │ │ │ │ +delimiter string,... │ │ │ │ │ +DDeeffiinniittiioonn _s_t_r_e_a_m___i_t_e_r_a_t_o_r_._h_:_2_4_5 │ │ │ │ │ +_s_t_d_:_:_o_s_t_r_e_a_m___i_t_e_r_a_t_o_r_:_:_d_i_f_f_e_r_e_n_c_e___t_y_p_e │ │ │ │ │ +ptrdiff_t difference_type │ │ │ │ │ +Public typedef. │ │ │ │ │ +DDeeffiinniittiioonn _s_t_r_e_a_m___i_t_e_r_a_t_o_r_._h_:_2_0_5 │ │ │ │ │ +_s_t_d_:_:_o_s_t_r_e_a_m___i_t_e_r_a_t_o_r_:_:_o_s_t_r_e_a_m___t_y_p_e │ │ │ │ │ +basic_ostream< _CharT, _Traits > ostream_type │ │ │ │ │ +Public typedef. │ │ │ │ │ +DDeeffiinniittiioonn _s_t_r_e_a_m___i_t_e_r_a_t_o_r_._h_:_2_0_9 │ │ │ │ │ +_s_t_d_:_:_o_s_t_r_e_a_m___i_t_e_r_a_t_o_r_:_:_o_s_t_r_e_a_m___i_t_e_r_a_t_o_r │ │ │ │ │ +ostream_iterator(const ostream_iterator &__obj) noexcept │ │ │ │ │ +Copy constructor. │ │ │ │ │ +DDeeffiinniittiioonn _s_t_r_e_a_m___i_t_e_r_a_t_o_r_._h_:_2_3_5 │ │ │ │ │ * _b_i_t_s │ │ │ │ │ - * _s_t_l___l_i_s_t_._h │ │ │ │ │ + * _s_t_r_e_a_m___i_t_e_r_a_t_o_r_._h │ │ │ │ │ * Generated by _[_d_o_x_y_g_e_n_]1.9.8 │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a00386.html │ │ │ │ @@ -1,15 +1,15 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ -libstdc++: sstream.tcc File Reference │ │ │ │ +libstdc++: version.h File Reference │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ @@ -46,57 +46,2355 @@ │ │ │ │ /* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */ │ │ │ │ $(document).ready(function(){initNavTree('a00386.html',''); initResizable(); }); │ │ │ │ /* @license-end */ │ │ │ │ │ │ │ │
│ │ │ │
│ │ │ │
│ │ │ │ -Namespaces | │ │ │ │ Macros
│ │ │ │ -
sstream.tcc File Reference
│ │ │ │ +
version.h File Reference
│ │ │ │
│ │ │ │
│ │ │ │ │ │ │ │

Go to the source code of this file.

│ │ │ │ │ │ │ │ - │ │ │ │ - │ │ │ │ - │ │ │ │ -

│ │ │ │ -Namespaces

namespace  std
 
│ │ │ │ │ │ │ │ - │ │ │ │ - │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │

│ │ │ │ Macros

#define _SSTREAM_TCC
 
#define __glibcxx_addressof_constexpr
 
#define __glibcxx_allocator_traits_is_always_equal
 
#define __glibcxx_any
 
#define __glibcxx_apply
 
#define __glibcxx_array_constexpr
 
#define __glibcxx_as_const
 
#define __glibcxx_assume_aligned
 
#define __glibcxx_atomic_flag_test
 
#define __glibcxx_atomic_float
 
#define __glibcxx_atomic_is_always_lock_free
 
#define __glibcxx_atomic_ref
 
#define __glibcxx_atomic_shared_ptr
 
#define __glibcxx_atomic_value_initialization
 
#define __glibcxx_atomic_wait
 
#define __glibcxx_barrier
 
#define __glibcxx_bind_front
 
#define __glibcxx_bit_cast
 
#define __glibcxx_bitops
 
#define __glibcxx_bool_constant
 
#define __glibcxx_bounded_array_traits
 
#define __glibcxx_boyer_moore_searcher
 
#define __glibcxx_byte
 
#define __glibcxx_chrono
 
#define __glibcxx_chrono_udls
 
#define __glibcxx_clamp
 
#define __glibcxx_complex_udls
 
#define __glibcxx_concepts
 
#define __glibcxx_constexpr_algorithms
 
#define __glibcxx_constexpr_char_traits
 
#define __glibcxx_constexpr_complex
 
#define __glibcxx_constexpr_dynamic_alloc
 
#define __glibcxx_constexpr_functional
 
#define __glibcxx_constexpr_iterator
 
#define __glibcxx_constexpr_memory
 
#define __glibcxx_constexpr_numeric
 
#define __glibcxx_constexpr_string
 
#define __glibcxx_constexpr_string_view
 
#define __glibcxx_constexpr_tuple
 
#define __glibcxx_constexpr_utility
 
#define __glibcxx_constexpr_vector
 
#define __glibcxx_constrained_equality
 
#define __glibcxx_coroutine
 
#define __glibcxx_enable_shared_from_this
 
#define __glibcxx_endian
 
#define __glibcxx_erase_if
 
#define __glibcxx_exchange_function
 
#define __glibcxx_execution
 
#define __glibcxx_filesystem
 
#define __glibcxx_format
 
#define __glibcxx_format_uchar
 
#define __glibcxx_gcd
 
#define __glibcxx_gcd_lcm
 
#define __glibcxx_generic_associative_lookup
 
#define __glibcxx_generic_unordered_lookup
 
#define __glibcxx_has_unique_object_representations
 
#define __glibcxx_hypot
 
#define __glibcxx_incomplete_container_elements
 
#define __glibcxx_int_pow2
 
#define __glibcxx_integer_comparison_functions
 
#define __glibcxx_integer_sequence
 
#define __glibcxx_integral_constant_callable
 
#define __glibcxx_interpolate
 
#define __glibcxx_invoke
 
#define __glibcxx_is_aggregate
 
#define __glibcxx_is_constant_evaluated
 
#define __glibcxx_is_final
 
#define __glibcxx_is_invocable
 
#define __glibcxx_is_layout_compatible
 
#define __glibcxx_is_nothrow_convertible
 
#define __glibcxx_is_null_pointer
 
#define __glibcxx_is_pointer_interconvertible
 
#define __glibcxx_is_swappable
 
#define __glibcxx_jthread
 
#define __glibcxx_latch
 
#define __glibcxx_launder
 
#define __glibcxx_lcm
 
#define __glibcxx_list_remove_return_type
 
#define __glibcxx_logical_traits
 
#define __glibcxx_make_from_tuple
 
#define __glibcxx_make_obj_using_allocator
 
#define __glibcxx_make_reverse_iterator
 
#define __glibcxx_make_unique
 
#define __glibcxx_map_try_emplace
 
#define __glibcxx_math_constants
 
#define __glibcxx_math_spec_funcs
 
#define __glibcxx_math_special_functions
 
#define __glibcxx_memory_resource
 
#define __glibcxx_move_iterator_concept
 
#define __glibcxx_node_extract
 
#define __glibcxx_nonmember_container_access
 
#define __glibcxx_not_fn
 
#define __glibcxx_null_iterators
 
#define __glibcxx_optional
 
#define __glibcxx_parallel_algorithm
 
#define __glibcxx_polymorphic_allocator
 
#define __glibcxx_quoted_string_io
 
#define __glibcxx_ranges
 
#define __glibcxx_raw_memory_algorithms
 
#define __glibcxx_remove_cvref
 
#define __glibcxx_result_of_sfinae
 
#define __glibcxx_robust_nonmodifying_seq_ops
 
#define __glibcxx_sample
 
#define __glibcxx_scoped_lock
 
#define __glibcxx_semaphore
 
#define __glibcxx_shared_mutex
 
#define __glibcxx_shared_ptr_arrays
 
#define __glibcxx_shared_ptr_weak_type
 
#define __glibcxx_shared_timed_mutex
 
#define __glibcxx_shift
 
#define __glibcxx_smart_ptr_for_overwrite
 
#define __glibcxx_source_location
 
#define __glibcxx_span
 
#define __glibcxx_ssize
 
#define __glibcxx_starts_ends_with
 
#define __glibcxx_string_udls
 
#define __glibcxx_string_view
 
#define __glibcxx_three_way_comparison
 
#define __glibcxx_to_address
 
#define __glibcxx_transformation_trait_aliases
 
#define __glibcxx_transparent_operators
 
#define __glibcxx_tuple_element_t
 
#define __glibcxx_tuples_by_type
 
#define __glibcxx_type_identity
 
#define __glibcxx_type_trait_variable_templates
 
#define __glibcxx_uncaught_exceptions
 
#define __glibcxx_unordered_map_try_emplace
 
#define __glibcxx_unwrap_ref
 
#define __glibcxx_variant
 
#define __glibcxx_void_t
 
│ │ │ │

Detailed Description

│ │ │ │ -

This is an internal header file, included by other library headers. Do not attempt to use it directly. Instead, include <sstream>.

│ │ │ │ +

This is an internal header file, included by other library headers. Do not attempt to use it directly. Instead, include <version>.

│ │ │ │ │ │ │ │ -

Definition in file sstream.tcc.

│ │ │ │ +

Definition in file version.h.

│ │ │ │

Macro Definition Documentation

│ │ │ │ - │ │ │ │ -

◆ _SSTREAM_TCC

│ │ │ │ + │ │ │ │ +

◆ __glibcxx_addressof_constexpr

│ │ │ │ │ │ │ │
│ │ │ │
│ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │
#define _SSTREAM_TCC#define __glibcxx_addressof_constexpr
│ │ │ │
│ │ │ │ │ │ │ │ -

Definition at line 35 of file sstream.tcc.

│ │ │ │ +

Definition at line 365 of file version.h.

│ │ │ │ + │ │ │ │ +
│ │ │ │ +
│ │ │ │ + │ │ │ │ +

◆ __glibcxx_allocator_traits_is_always_equal

│ │ │ │ + │ │ │ │ +
│ │ │ │ +
│ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ +
#define __glibcxx_allocator_traits_is_always_equal
│ │ │ │ +
│ │ │ │ + │ │ │ │ +

Definition at line 75 of file version.h.

│ │ │ │ + │ │ │ │ +
│ │ │ │ +
│ │ │ │ + │ │ │ │ +

◆ __glibcxx_any

│ │ │ │ + │ │ │ │ +
│ │ │ │ +
│ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ +
#define __glibcxx_any
│ │ │ │ +
│ │ │ │ + │ │ │ │ +

Definition at line 375 of file version.h.

│ │ │ │ + │ │ │ │ +
│ │ │ │ +
│ │ │ │ + │ │ │ │ +

◆ __glibcxx_apply

│ │ │ │ + │ │ │ │ +
│ │ │ │ +
│ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ +
#define __glibcxx_apply
│ │ │ │ +
│ │ │ │ + │ │ │ │ +

Definition at line 385 of file version.h.

│ │ │ │ + │ │ │ │ +
│ │ │ │ +
│ │ │ │ + │ │ │ │ +

◆ __glibcxx_array_constexpr

│ │ │ │ + │ │ │ │ +
│ │ │ │ +
│ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ +
#define __glibcxx_array_constexpr
│ │ │ │ +
│ │ │ │ + │ │ │ │ +

Definition at line 600 of file version.h.

│ │ │ │ + │ │ │ │ +
│ │ │ │ +
│ │ │ │ + │ │ │ │ +

◆ __glibcxx_as_const

│ │ │ │ + │ │ │ │ +
│ │ │ │ +
│ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ +
#define __glibcxx_as_const
│ │ │ │ +
│ │ │ │ + │ │ │ │ +

Definition at line 395 of file version.h.

│ │ │ │ + │ │ │ │ +
│ │ │ │ +
│ │ │ │ + │ │ │ │ +

◆ __glibcxx_assume_aligned

│ │ │ │ + │ │ │ │ +
│ │ │ │ +
│ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ +
#define __glibcxx_assume_aligned
│ │ │ │ +
│ │ │ │ + │ │ │ │ +

Definition at line 810 of file version.h.

│ │ │ │ + │ │ │ │ +
│ │ │ │ +
│ │ │ │ + │ │ │ │ +

◆ __glibcxx_atomic_flag_test

│ │ │ │ + │ │ │ │ +
│ │ │ │ +
│ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ +
#define __glibcxx_atomic_flag_test
│ │ │ │ +
│ │ │ │ + │ │ │ │ +

Definition at line 820 of file version.h.

│ │ │ │ + │ │ │ │ +
│ │ │ │ +
│ │ │ │ + │ │ │ │ +

◆ __glibcxx_atomic_float

│ │ │ │ + │ │ │ │ +
│ │ │ │ +
│ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ +
#define __glibcxx_atomic_float
│ │ │ │ +
│ │ │ │ + │ │ │ │ +

Definition at line 830 of file version.h.

│ │ │ │ + │ │ │ │ +
│ │ │ │ +
│ │ │ │ + │ │ │ │ +

◆ __glibcxx_atomic_is_always_lock_free

│ │ │ │ + │ │ │ │ +
│ │ │ │ +
│ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ +
#define __glibcxx_atomic_is_always_lock_free
│ │ │ │ +
│ │ │ │ + │ │ │ │ +

Definition at line 405 of file version.h.

│ │ │ │ + │ │ │ │ +
│ │ │ │ +
│ │ │ │ + │ │ │ │ +

◆ __glibcxx_atomic_ref

│ │ │ │ + │ │ │ │ +
│ │ │ │ +
│ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ +
#define __glibcxx_atomic_ref
│ │ │ │ +
│ │ │ │ + │ │ │ │ +

Definition at line 850 of file version.h.

│ │ │ │ + │ │ │ │ +
│ │ │ │ +
│ │ │ │ + │ │ │ │ +

◆ __glibcxx_atomic_shared_ptr

│ │ │ │ + │ │ │ │ +
│ │ │ │ +
│ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ +
#define __glibcxx_atomic_shared_ptr
│ │ │ │ +
│ │ │ │ + │ │ │ │ +

Definition at line 1300 of file version.h.

│ │ │ │ + │ │ │ │ +
│ │ │ │ +
│ │ │ │ + │ │ │ │ +

◆ __glibcxx_atomic_value_initialization

│ │ │ │ + │ │ │ │ +
│ │ │ │ +
│ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ +
#define __glibcxx_atomic_value_initialization
│ │ │ │ +
│ │ │ │ + │ │ │ │ +

Definition at line 860 of file version.h.

│ │ │ │ + │ │ │ │ +
│ │ │ │ +
│ │ │ │ + │ │ │ │ +

◆ __glibcxx_atomic_wait

│ │ │ │ + │ │ │ │ +
│ │ │ │ +
│ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ +
#define __glibcxx_atomic_wait
│ │ │ │ +
│ │ │ │ + │ │ │ │ +

Definition at line 1310 of file version.h.

│ │ │ │ + │ │ │ │ +
│ │ │ │ +
│ │ │ │ + │ │ │ │ +

◆ __glibcxx_barrier

│ │ │ │ + │ │ │ │ +
│ │ │ │ +
│ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ +
#define __glibcxx_barrier
│ │ │ │ +
│ │ │ │ + │ │ │ │ +

Definition at line 1325 of file version.h.

│ │ │ │ + │ │ │ │ +
│ │ │ │ +
│ │ │ │ + │ │ │ │ +

◆ __glibcxx_bind_front

│ │ │ │ + │ │ │ │ +
│ │ │ │ +
│ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ +
#define __glibcxx_bind_front
│ │ │ │ +
│ │ │ │ + │ │ │ │ +

Definition at line 870 of file version.h.

│ │ │ │ + │ │ │ │ +
│ │ │ │ +
│ │ │ │ + │ │ │ │ +

◆ __glibcxx_bit_cast

│ │ │ │ + │ │ │ │ +
│ │ │ │ +
│ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ +
#define __glibcxx_bit_cast
│ │ │ │ +
│ │ │ │ + │ │ │ │ +

Definition at line 900 of file version.h.

│ │ │ │ + │ │ │ │ +
│ │ │ │ +
│ │ │ │ + │ │ │ │ +

◆ __glibcxx_bitops

│ │ │ │ + │ │ │ │ +
│ │ │ │ +
│ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ +
#define __glibcxx_bitops
│ │ │ │ +
│ │ │ │ + │ │ │ │ +

Definition at line 910 of file version.h.

│ │ │ │ + │ │ │ │ +
│ │ │ │ +
│ │ │ │ + │ │ │ │ +

◆ __glibcxx_bool_constant

│ │ │ │ + │ │ │ │ +
│ │ │ │ +
│ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ +
#define __glibcxx_bool_constant
│ │ │ │ +
│ │ │ │ + │ │ │ │ +

Definition at line 415 of file version.h.

│ │ │ │ + │ │ │ │ +
│ │ │ │ +
│ │ │ │ + │ │ │ │ +

◆ __glibcxx_bounded_array_traits

│ │ │ │ + │ │ │ │ +
│ │ │ │ +
│ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ +
#define __glibcxx_bounded_array_traits
│ │ │ │ +
│ │ │ │ + │ │ │ │ +

Definition at line 920 of file version.h.

│ │ │ │ + │ │ │ │ +
│ │ │ │ +
│ │ │ │ + │ │ │ │ +

◆ __glibcxx_boyer_moore_searcher

│ │ │ │ + │ │ │ │ +
│ │ │ │ +
│ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ +
#define __glibcxx_boyer_moore_searcher
│ │ │ │ +
│ │ │ │ + │ │ │ │ +

Definition at line 645 of file version.h.

│ │ │ │ + │ │ │ │ +
│ │ │ │ +
│ │ │ │ + │ │ │ │ +

◆ __glibcxx_byte

│ │ │ │ + │ │ │ │ +
│ │ │ │ +
│ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ +
#define __glibcxx_byte
│ │ │ │ +
│ │ │ │ + │ │ │ │ +

Definition at line 425 of file version.h.

│ │ │ │ + │ │ │ │ +
│ │ │ │ +
│ │ │ │ + │ │ │ │ +

◆ __glibcxx_chrono

│ │ │ │ + │ │ │ │ +
│ │ │ │ +
│ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ +
#define __glibcxx_chrono
│ │ │ │ +
│ │ │ │ + │ │ │ │ +

Definition at line 660 of file version.h.

│ │ │ │ + │ │ │ │ +
│ │ │ │ +
│ │ │ │ + │ │ │ │ +

◆ __glibcxx_chrono_udls

│ │ │ │ + │ │ │ │ +
│ │ │ │ +
│ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ +
#define __glibcxx_chrono_udls
│ │ │ │ +
│ │ │ │ + │ │ │ │ +

Definition at line 295 of file version.h.

│ │ │ │ + │ │ │ │ +
│ │ │ │ +
│ │ │ │ + │ │ │ │ +

◆ __glibcxx_clamp

│ │ │ │ + │ │ │ │ +
│ │ │ │ +
│ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ +
#define __glibcxx_clamp
│ │ │ │ +
│ │ │ │ + │ │ │ │ +

Definition at line 625 of file version.h.

│ │ │ │ + │ │ │ │ +
│ │ │ │ +
│ │ │ │ + │ │ │ │ +

◆ __glibcxx_complex_udls

│ │ │ │ + │ │ │ │ +
│ │ │ │ +
│ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ +
#define __glibcxx_complex_udls
│ │ │ │ +
│ │ │ │ + │ │ │ │ +

Definition at line 305 of file version.h.

│ │ │ │ + │ │ │ │ +
│ │ │ │ +
│ │ │ │ + │ │ │ │ +

◆ __glibcxx_concepts

│ │ │ │ + │ │ │ │ +
│ │ │ │ +
│ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ +
#define __glibcxx_concepts
│ │ │ │ +
│ │ │ │ + │ │ │ │ +

Definition at line 930 of file version.h.

│ │ │ │ + │ │ │ │ +
│ │ │ │ +
│ │ │ │ + │ │ │ │ +

◆ __glibcxx_constexpr_algorithms

│ │ │ │ + │ │ │ │ +
│ │ │ │ +
│ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ +
#define __glibcxx_constexpr_algorithms
│ │ │ │ +
│ │ │ │ + │ │ │ │ +

Definition at line 1265 of file version.h.

│ │ │ │ + │ │ │ │ +
│ │ │ │ +
│ │ │ │ + │ │ │ │ +

◆ __glibcxx_constexpr_char_traits

│ │ │ │ + │ │ │ │ +
│ │ │ │ +
│ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ +
#define __glibcxx_constexpr_char_traits
│ │ │ │ +
│ │ │ │ + │ │ │ │ +

Definition at line 1020 of file version.h.

│ │ │ │ + │ │ │ │ +
│ │ │ │ +
│ │ │ │ + │ │ │ │ +

◆ __glibcxx_constexpr_complex

│ │ │ │ + │ │ │ │ +
│ │ │ │ +
│ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ +
#define __glibcxx_constexpr_complex
│ │ │ │ +
│ │ │ │ + │ │ │ │ +

Definition at line 1360 of file version.h.

│ │ │ │ + │ │ │ │ +
│ │ │ │ +
│ │ │ │ + │ │ │ │ +

◆ __glibcxx_constexpr_dynamic_alloc

│ │ │ │ + │ │ │ │ +
│ │ │ │ +
│ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ +
#define __glibcxx_constexpr_dynamic_alloc
│ │ │ │ +
│ │ │ │ + │ │ │ │ +

Definition at line 1370 of file version.h.

│ │ │ │ + │ │ │ │ +
│ │ │ │ +
│ │ │ │ + │ │ │ │ +

◆ __glibcxx_constexpr_functional

│ │ │ │ + │ │ │ │ +
│ │ │ │ +
│ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ +
#define __glibcxx_constexpr_functional
│ │ │ │ +
│ │ │ │ + │ │ │ │ +

Definition at line 1250 of file version.h.

│ │ │ │ + │ │ │ │ +
│ │ │ │ +
│ │ │ │ + │ │ │ │ +

◆ __glibcxx_constexpr_iterator

│ │ │ │ + │ │ │ │ +
│ │ │ │ +
│ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ +
#define __glibcxx_constexpr_iterator
│ │ │ │ +
│ │ │ │ + │ │ │ │ +

Definition at line 1180 of file version.h.

│ │ │ │ + │ │ │ │ +
│ │ │ │ +
│ │ │ │ + │ │ │ │ +

◆ __glibcxx_constexpr_memory

│ │ │ │ + │ │ │ │ +
│ │ │ │ +
│ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ +
#define __glibcxx_constexpr_memory
│ │ │ │ +
│ │ │ │ + │ │ │ │ +

Definition at line 1290 of file version.h.

│ │ │ │ + │ │ │ │ +
│ │ │ │ +
│ │ │ │ + │ │ │ │ +

◆ __glibcxx_constexpr_numeric

│ │ │ │ + │ │ │ │ +
│ │ │ │ +
│ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ +
#define __glibcxx_constexpr_numeric
│ │ │ │ +
│ │ │ │ + │ │ │ │ +

Definition at line 1240 of file version.h.

│ │ │ │ + │ │ │ │ +
│ │ │ │ +
│ │ │ │ + │ │ │ │ +

◆ __glibcxx_constexpr_string

│ │ │ │ + │ │ │ │ +
│ │ │ │ +
│ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ +
#define __glibcxx_constexpr_string
│ │ │ │ +
│ │ │ │ + │ │ │ │ +

Definition at line 1385 of file version.h.

│ │ │ │ + │ │ │ │ +
│ │ │ │ +
│ │ │ │ + │ │ │ │ +

◆ __glibcxx_constexpr_string_view

│ │ │ │ + │ │ │ │ +
│ │ │ │ +
│ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ +
#define __glibcxx_constexpr_string_view
│ │ │ │ +
│ │ │ │ + │ │ │ │ +

Definition at line 970 of file version.h.

│ │ │ │ + │ │ │ │ +
│ │ │ │ +
│ │ │ │ + │ │ │ │ +

◆ __glibcxx_constexpr_tuple

│ │ │ │ + │ │ │ │ +
│ │ │ │ +
│ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ +
#define __glibcxx_constexpr_tuple
│ │ │ │ +
│ │ │ │ + │ │ │ │ +

Definition at line 1275 of file version.h.

│ │ │ │ + │ │ │ │ +
│ │ │ │ +
│ │ │ │ + │ │ │ │ +

◆ __glibcxx_constexpr_utility

│ │ │ │ + │ │ │ │ +
│ │ │ │ +
│ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ +
#define __glibcxx_constexpr_utility
│ │ │ │ +
│ │ │ │ + │ │ │ │ +

Definition at line 1200 of file version.h.

│ │ │ │ + │ │ │ │ +
│ │ │ │ +
│ │ │ │ + │ │ │ │ +

◆ __glibcxx_constexpr_vector

│ │ │ │ + │ │ │ │ +
│ │ │ │ +
│ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ +
#define __glibcxx_constexpr_vector
│ │ │ │ +
│ │ │ │ + │ │ │ │ +

Definition at line 1400 of file version.h.

│ │ │ │ + │ │ │ │ +
│ │ │ │ +
│ │ │ │ + │ │ │ │ +

◆ __glibcxx_constrained_equality

│ │ │ │ + │ │ │ │ +
│ │ │ │ +
│ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ +
#define __glibcxx_constrained_equality
│ │ │ │ +
│ │ │ │ + │ │ │ │ +

Definition at line 1410 of file version.h.

│ │ │ │ + │ │ │ │ +
│ │ │ │ +
│ │ │ │ + │ │ │ │ +

◆ __glibcxx_coroutine

│ │ │ │ + │ │ │ │ +
│ │ │ │ +
│ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ +
#define __glibcxx_coroutine
│ │ │ │ +
│ │ │ │ + │ │ │ │ +

Definition at line 160 of file version.h.

│ │ │ │ + │ │ │ │ +
│ │ │ │ +
│ │ │ │ + │ │ │ │ +

◆ __glibcxx_enable_shared_from_this

│ │ │ │ + │ │ │ │ +
│ │ │ │ +
│ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ +
#define __glibcxx_enable_shared_from_this
│ │ │ │ +
│ │ │ │ + │ │ │ │ +

Definition at line 140 of file version.h.

│ │ │ │ + │ │ │ │ +
│ │ │ │ +
│ │ │ │ + │ │ │ │ +

◆ __glibcxx_endian

│ │ │ │ + │ │ │ │ +
│ │ │ │ +
│ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ +
#define __glibcxx_endian
│ │ │ │ +
│ │ │ │ + │ │ │ │ +

Definition at line 980 of file version.h.

│ │ │ │ + │ │ │ │ +
│ │ │ │ +
│ │ │ │ + │ │ │ │ +

◆ __glibcxx_erase_if

│ │ │ │ + │ │ │ │ +
│ │ │ │ +
│ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ +
#define __glibcxx_erase_if
│ │ │ │ +
│ │ │ │ + │ │ │ │ +

Definition at line 1420 of file version.h.

│ │ │ │ + │ │ │ │ +
│ │ │ │ +
│ │ │ │ + │ │ │ │ +

◆ __glibcxx_exchange_function

│ │ │ │ + │ │ │ │ +
│ │ │ │ +
│ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ +
#define __glibcxx_exchange_function
│ │ │ │ +
│ │ │ │ + │ │ │ │ +

Definition at line 170 of file version.h.

│ │ │ │ + │ │ │ │ +
│ │ │ │ +
│ │ │ │ + │ │ │ │ +

◆ __glibcxx_execution

│ │ │ │ + │ │ │ │ +
│ │ │ │ +
│ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ +
#define __glibcxx_execution
│ │ │ │ +
│ │ │ │ + │ │ │ │ +

Definition at line 670 of file version.h.

│ │ │ │ + │ │ │ │ +
│ │ │ │ +
│ │ │ │ + │ │ │ │ +

◆ __glibcxx_filesystem

│ │ │ │ + │ │ │ │ +
│ │ │ │ +
│ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ +
#define __glibcxx_filesystem
│ │ │ │ +
│ │ │ │ + │ │ │ │ +

Definition at line 680 of file version.h.

│ │ │ │ + │ │ │ │ +
│ │ │ │ +
│ │ │ │ + │ │ │ │ +

◆ __glibcxx_format

│ │ │ │ + │ │ │ │ +
│ │ │ │ +
│ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ +
#define __glibcxx_format
│ │ │ │ +
│ │ │ │ + │ │ │ │ +

Definition at line 1340 of file version.h.

│ │ │ │ + │ │ │ │ +
│ │ │ │ +
│ │ │ │ + │ │ │ │ +

◆ __glibcxx_format_uchar

│ │ │ │ + │ │ │ │ +
│ │ │ │ +
│ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ +
#define __glibcxx_format_uchar
│ │ │ │ +
│ │ │ │ + │ │ │ │ +

Definition at line 1350 of file version.h.

│ │ │ │ + │ │ │ │ +
│ │ │ │ +
│ │ │ │ + │ │ │ │ +

◆ __glibcxx_gcd

│ │ │ │ + │ │ │ │ +
│ │ │ │ +
│ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ +
#define __glibcxx_gcd
│ │ │ │ +
│ │ │ │ + │ │ │ │ +

Definition at line 565 of file version.h.

│ │ │ │ + │ │ │ │ +
│ │ │ │ +
│ │ │ │ + │ │ │ │ +

◆ __glibcxx_gcd_lcm

│ │ │ │ + │ │ │ │ +
│ │ │ │ +
│ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ +
#define __glibcxx_gcd_lcm
│ │ │ │ +
│ │ │ │ + │ │ │ │ +

Definition at line 575 of file version.h.

│ │ │ │ + │ │ │ │ +
│ │ │ │ +
│ │ │ │ + │ │ │ │ +

◆ __glibcxx_generic_associative_lookup

│ │ │ │ + │ │ │ │ +
│ │ │ │ +
│ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ +
#define __glibcxx_generic_associative_lookup
│ │ │ │ +
│ │ │ │ + │ │ │ │ +

Definition at line 315 of file version.h.

│ │ │ │ + │ │ │ │ +
│ │ │ │ +
│ │ │ │ + │ │ │ │ +

◆ __glibcxx_generic_unordered_lookup

│ │ │ │ + │ │ │ │ +
│ │ │ │ +
│ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ +
#define __glibcxx_generic_unordered_lookup
│ │ │ │ +
│ │ │ │ + │ │ │ │ +

Definition at line 1430 of file version.h.

│ │ │ │ + │ │ │ │ +
│ │ │ │ +
│ │ │ │ + │ │ │ │ +

◆ __glibcxx_has_unique_object_representations

│ │ │ │ + │ │ │ │ +
│ │ │ │ +
│ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ +
#define __glibcxx_has_unique_object_representations
│ │ │ │ +
│ │ │ │ + │ │ │ │ +

Definition at line 435 of file version.h.

│ │ │ │ + │ │ │ │ +
│ │ │ │ +
│ │ │ │ + │ │ │ │ +

◆ __glibcxx_hypot

│ │ │ │ + │ │ │ │ +
│ │ │ │ +
│ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ +
#define __glibcxx_hypot
│ │ │ │ +
│ │ │ │ + │ │ │ │ +

Definition at line 690 of file version.h.

│ │ │ │ + │ │ │ │ +
│ │ │ │ +
│ │ │ │ + │ │ │ │ +

◆ __glibcxx_incomplete_container_elements

│ │ │ │ + │ │ │ │ +
│ │ │ │ +
│ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ +
#define __glibcxx_incomplete_container_elements
│ │ │ │ +
│ │ │ │ + │ │ │ │ +

Definition at line 55 of file version.h.

│ │ │ │ + │ │ │ │ +
│ │ │ │ +
│ │ │ │ + │ │ │ │ +

◆ __glibcxx_int_pow2

│ │ │ │ + │ │ │ │ +
│ │ │ │ +
│ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ +
#define __glibcxx_int_pow2
│ │ │ │ +
│ │ │ │ + │ │ │ │ +

Definition at line 990 of file version.h.

│ │ │ │ + │ │ │ │ +
│ │ │ │ +
│ │ │ │ + │ │ │ │ +

◆ __glibcxx_integer_comparison_functions

│ │ │ │ + │ │ │ │ +
│ │ │ │ +
│ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ +
#define __glibcxx_integer_comparison_functions
│ │ │ │ +
│ │ │ │ + │ │ │ │ +

Definition at line 1000 of file version.h.

│ │ │ │ + │ │ │ │ +
│ │ │ │ +
│ │ │ │ + │ │ │ │ +

◆ __glibcxx_integer_sequence

│ │ │ │ + │ │ │ │ +
│ │ │ │ +
│ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ +
#define __glibcxx_integer_sequence
│ │ │ │ +
│ │ │ │ + │ │ │ │ +

Definition at line 180 of file version.h.

│ │ │ │ + │ │ │ │ +
│ │ │ │ +
│ │ │ │ + │ │ │ │ +

◆ __glibcxx_integral_constant_callable

│ │ │ │ + │ │ │ │ +
│ │ │ │ +
│ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ +
#define __glibcxx_integral_constant_callable
│ │ │ │ +
│ │ │ │ + │ │ │ │ +

Definition at line 190 of file version.h.

│ │ │ │ + │ │ │ │ +
│ │ │ │ +
│ │ │ │ + │ │ │ │ +

◆ __glibcxx_interpolate

│ │ │ │ + │ │ │ │ +
│ │ │ │ +
│ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ +
#define __glibcxx_interpolate
│ │ │ │ +
│ │ │ │ + │ │ │ │ +

Definition at line 1190 of file version.h.

│ │ │ │ + │ │ │ │ +
│ │ │ │ +
│ │ │ │ + │ │ │ │ +

◆ __glibcxx_invoke

│ │ │ │ + │ │ │ │ +
│ │ │ │ +
│ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ +
#define __glibcxx_invoke
│ │ │ │ +
│ │ │ │ + │ │ │ │ +

Definition at line 455 of file version.h.

│ │ │ │ + │ │ │ │ +
│ │ │ │ +
│ │ │ │ + │ │ │ │ +

◆ __glibcxx_is_aggregate

│ │ │ │ + │ │ │ │ +
│ │ │ │ +
│ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ +
#define __glibcxx_is_aggregate
│ │ │ │ +
│ │ │ │ + │ │ │ │ +

Definition at line 465 of file version.h.

│ │ │ │ + │ │ │ │ +
│ │ │ │ +
│ │ │ │ + │ │ │ │ +

◆ __glibcxx_is_constant_evaluated

│ │ │ │ + │ │ │ │ +
│ │ │ │ +
│ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ +
#define __glibcxx_is_constant_evaluated
│ │ │ │ +
│ │ │ │ + │ │ │ │ +

Definition at line 1010 of file version.h.

│ │ │ │ + │ │ │ │ +
│ │ │ │ +
│ │ │ │ + │ │ │ │ +

◆ __glibcxx_is_final

│ │ │ │ + │ │ │ │ +
│ │ │ │ +
│ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ +
#define __glibcxx_is_final
│ │ │ │ +
│ │ │ │ + │ │ │ │ +

Definition at line 200 of file version.h.

│ │ │ │ + │ │ │ │ +
│ │ │ │ +
│ │ │ │ + │ │ │ │ +

◆ __glibcxx_is_invocable

│ │ │ │ + │ │ │ │ +
│ │ │ │ +
│ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ +
#define __glibcxx_is_invocable
│ │ │ │ +
│ │ │ │ + │ │ │ │ +

Definition at line 475 of file version.h.

│ │ │ │ + │ │ │ │ +
│ │ │ │ +
│ │ │ │ + │ │ │ │ +

◆ __glibcxx_is_layout_compatible

│ │ │ │ + │ │ │ │ +
│ │ │ │ +
│ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ +
#define __glibcxx_is_layout_compatible
│ │ │ │ +
│ │ │ │ + │ │ │ │ +

Definition at line 1035 of file version.h.

│ │ │ │ + │ │ │ │ +
│ │ │ │ +
│ │ │ │ + │ │ │ │ +

◆ __glibcxx_is_nothrow_convertible

│ │ │ │ + │ │ │ │ +
│ │ │ │ +
│ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ +
#define __glibcxx_is_nothrow_convertible
│ │ │ │ +
│ │ │ │ + │ │ │ │ +

Definition at line 1045 of file version.h.

│ │ │ │ + │ │ │ │ +
│ │ │ │ +
│ │ │ │ + │ │ │ │ +

◆ __glibcxx_is_null_pointer

│ │ │ │ + │ │ │ │ +
│ │ │ │ +
│ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ +
#define __glibcxx_is_null_pointer
│ │ │ │ +
│ │ │ │ + │ │ │ │ +

Definition at line 85 of file version.h.

│ │ │ │ + │ │ │ │ +
│ │ │ │ +
│ │ │ │ + │ │ │ │ +

◆ __glibcxx_is_pointer_interconvertible

│ │ │ │ + │ │ │ │ +
│ │ │ │ +
│ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ +
#define __glibcxx_is_pointer_interconvertible
│ │ │ │ +
│ │ │ │ + │ │ │ │ +

Definition at line 1055 of file version.h.

│ │ │ │ + │ │ │ │ +
│ │ │ │ +
│ │ │ │ + │ │ │ │ +

◆ __glibcxx_is_swappable

│ │ │ │ + │ │ │ │ +
│ │ │ │ +
│ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ +
#define __glibcxx_is_swappable
│ │ │ │ +
│ │ │ │ + │ │ │ │ +

Definition at line 120 of file version.h.

│ │ │ │ + │ │ │ │ +
│ │ │ │ +
│ │ │ │ + │ │ │ │ +

◆ __glibcxx_jthread

│ │ │ │ + │ │ │ │ +
│ │ │ │ +
│ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ +
#define __glibcxx_jthread
│ │ │ │ +
│ │ │ │ + │ │ │ │ +

Definition at line 1440 of file version.h.

│ │ │ │ + │ │ │ │ +
│ │ │ │ +
│ │ │ │ + │ │ │ │ +

◆ __glibcxx_latch

│ │ │ │ + │ │ │ │ +
│ │ │ │ +
│ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ +
#define __glibcxx_latch
│ │ │ │ +
│ │ │ │ + │ │ │ │ +

Definition at line 1450 of file version.h.

│ │ │ │ + │ │ │ │ +
│ │ │ │ +
│ │ │ │ + │ │ │ │ +

◆ __glibcxx_launder

│ │ │ │ + │ │ │ │ +
│ │ │ │ +
│ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ +
#define __glibcxx_launder
│ │ │ │ +
│ │ │ │ + │ │ │ │ +

Definition at line 485 of file version.h.

│ │ │ │ + │ │ │ │ +
│ │ │ │ +
│ │ │ │ + │ │ │ │ +

◆ __glibcxx_lcm

│ │ │ │ + │ │ │ │ +
│ │ │ │ +
│ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ +
#define __glibcxx_lcm
│ │ │ │ +
│ │ │ │ + │ │ │ │ +

Definition at line 555 of file version.h.

│ │ │ │ + │ │ │ │ +
│ │ │ │ +
│ │ │ │ + │ │ │ │ +

◆ __glibcxx_list_remove_return_type

│ │ │ │ + │ │ │ │ +
│ │ │ │ +
│ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ +
#define __glibcxx_list_remove_return_type
│ │ │ │ +
│ │ │ │ + │ │ │ │ +

Definition at line 1460 of file version.h.

│ │ │ │ + │ │ │ │ +
│ │ │ │ +
│ │ │ │ + │ │ │ │ +

◆ __glibcxx_logical_traits

│ │ │ │ + │ │ │ │ +
│ │ │ │ +
│ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ +
#define __glibcxx_logical_traits
│ │ │ │ +
│ │ │ │ + │ │ │ │ +

Definition at line 495 of file version.h.

│ │ │ │ + │ │ │ │ +
│ │ │ │ +
│ │ │ │ + │ │ │ │ +

◆ __glibcxx_make_from_tuple

│ │ │ │ + │ │ │ │ +
│ │ │ │ +
│ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ +
#define __glibcxx_make_from_tuple
│ │ │ │ +
│ │ │ │ + │ │ │ │ +

Definition at line 505 of file version.h.

│ │ │ │ + │ │ │ │ +
│ │ │ │ +
│ │ │ │ + │ │ │ │ +

◆ __glibcxx_make_obj_using_allocator

│ │ │ │ + │ │ │ │ +
│ │ │ │ +
│ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ +
#define __glibcxx_make_obj_using_allocator
│ │ │ │ +
│ │ │ │ + │ │ │ │ +

Definition at line 1075 of file version.h.

│ │ │ │ + │ │ │ │ +
│ │ │ │ +
│ │ │ │ + │ │ │ │ +

◆ __glibcxx_make_reverse_iterator

│ │ │ │ + │ │ │ │ +
│ │ │ │ +
│ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ +
#define __glibcxx_make_reverse_iterator
│ │ │ │ +
│ │ │ │ + │ │ │ │ +

Definition at line 210 of file version.h.

│ │ │ │ + │ │ │ │ +
│ │ │ │ +
│ │ │ │ + │ │ │ │ +

◆ __glibcxx_make_unique

│ │ │ │ + │ │ │ │ +
│ │ │ │ +
│ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ +
#define __glibcxx_make_unique
│ │ │ │ +
│ │ │ │ + │ │ │ │ +

Definition at line 325 of file version.h.

│ │ │ │ + │ │ │ │ +
│ │ │ │ +
│ │ │ │ + │ │ │ │ +

◆ __glibcxx_map_try_emplace

│ │ │ │ + │ │ │ │ +
│ │ │ │ +
│ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ +
#define __glibcxx_map_try_emplace
│ │ │ │ +
│ │ │ │ + │ │ │ │ +

Definition at line 700 of file version.h.

│ │ │ │ + │ │ │ │ +
│ │ │ │ +
│ │ │ │ + │ │ │ │ +

◆ __glibcxx_math_constants

│ │ │ │ + │ │ │ │ +
│ │ │ │ +
│ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ +
#define __glibcxx_math_constants
│ │ │ │ +
│ │ │ │ + │ │ │ │ +

Definition at line 1065 of file version.h.

│ │ │ │ + │ │ │ │ +
│ │ │ │ +
│ │ │ │ + │ │ │ │ +

◆ __glibcxx_math_spec_funcs

│ │ │ │ + │ │ │ │ +
│ │ │ │ +
│ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ +
#define __glibcxx_math_spec_funcs
│ │ │ │ +
│ │ │ │ + │ │ │ │ +

Definition at line 150 of file version.h.

│ │ │ │ + │ │ │ │ +
│ │ │ │ +
│ │ │ │ + │ │ │ │ +

◆ __glibcxx_math_special_functions

│ │ │ │ + │ │ │ │ +
│ │ │ │ +
│ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ +
#define __glibcxx_math_special_functions
│ │ │ │ +
│ │ │ │ + │ │ │ │ +

Definition at line 710 of file version.h.

│ │ │ │ + │ │ │ │ +
│ │ │ │ +
│ │ │ │ + │ │ │ │ +

◆ __glibcxx_memory_resource

│ │ │ │ + │ │ │ │ +
│ │ │ │ +
│ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ +
#define __glibcxx_memory_resource
│ │ │ │ +
│ │ │ │ + │ │ │ │ +

Definition at line 720 of file version.h.

│ │ │ │ + │ │ │ │ +
│ │ │ │ +
│ │ │ │ + │ │ │ │ +

◆ __glibcxx_move_iterator_concept

│ │ │ │ + │ │ │ │ +
│ │ │ │ +
│ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ +
#define __glibcxx_move_iterator_concept
│ │ │ │ +
│ │ │ │ + │ │ │ │ +

Definition at line 1480 of file version.h.

│ │ │ │ + │ │ │ │ +
│ │ │ │ +
│ │ │ │ + │ │ │ │ +

◆ __glibcxx_node_extract

│ │ │ │ + │ │ │ │ +
│ │ │ │ +
│ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ +
#define __glibcxx_node_extract
│ │ │ │ +
│ │ │ │ + │ │ │ │ +

Definition at line 735 of file version.h.

│ │ │ │ + │ │ │ │ +
│ │ │ │ +
│ │ │ │ + │ │ │ │ +

◆ __glibcxx_nonmember_container_access

│ │ │ │ + │ │ │ │ +
│ │ │ │ +
│ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ +
#define __glibcxx_nonmember_container_access
│ │ │ │ +
│ │ │ │ + │ │ │ │ +

Definition at line 615 of file version.h.

│ │ │ │ + │ │ │ │ +
│ │ │ │ +
│ │ │ │ + │ │ │ │ +

◆ __glibcxx_not_fn

│ │ │ │ + │ │ │ │ +
│ │ │ │ +
│ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ +
#define __glibcxx_not_fn
│ │ │ │ +
│ │ │ │ + │ │ │ │ +

Definition at line 515 of file version.h.

│ │ │ │ + │ │ │ │ +
│ │ │ │ +
│ │ │ │ + │ │ │ │ +

◆ __glibcxx_null_iterators

│ │ │ │ + │ │ │ │ +
│ │ │ │ +
│ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ +
#define __glibcxx_null_iterators
│ │ │ │ +
│ │ │ │ + │ │ │ │ +

Definition at line 220 of file version.h.

│ │ │ │ + │ │ │ │ +
│ │ │ │ +
│ │ │ │ + │ │ │ │ +

◆ __glibcxx_optional

│ │ │ │ + │ │ │ │ +
│ │ │ │ +
│ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ +
#define __glibcxx_optional
│ │ │ │ +
│ │ │ │ + │ │ │ │ +

Definition at line 945 of file version.h.

│ │ │ │ + │ │ │ │ +
│ │ │ │ +
│ │ │ │ + │ │ │ │ +

◆ __glibcxx_parallel_algorithm

│ │ │ │ + │ │ │ │ +
│ │ │ │ +
│ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ +
#define __glibcxx_parallel_algorithm
│ │ │ │ +
│ │ │ │ + │ │ │ │ +

Definition at line 745 of file version.h.

│ │ │ │ + │ │ │ │ +
│ │ │ │ +
│ │ │ │ + │ │ │ │ +

◆ __glibcxx_polymorphic_allocator

│ │ │ │ + │ │ │ │ +
│ │ │ │ +
│ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ +
#define __glibcxx_polymorphic_allocator
│ │ │ │ +
│ │ │ │ + │ │ │ │ +

Definition at line 1470 of file version.h.

│ │ │ │ + │ │ │ │ +
│ │ │ │ +
│ │ │ │ + │ │ │ │ +

◆ __glibcxx_quoted_string_io

│ │ │ │ + │ │ │ │ +
│ │ │ │ +
│ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ +
#define __glibcxx_quoted_string_io
│ │ │ │ +
│ │ │ │ + │ │ │ │ +

Definition at line 335 of file version.h.

│ │ │ │ + │ │ │ │ +
│ │ │ │ +
│ │ │ │ + │ │ │ │ +

◆ __glibcxx_ranges

│ │ │ │ + │ │ │ │ +
│ │ │ │ +
│ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ +
#define __glibcxx_ranges
│ │ │ │ +
│ │ │ │ + │ │ │ │ +

Definition at line 1230 of file version.h.

│ │ │ │ + │ │ │ │ +
│ │ │ │ +
│ │ │ │ + │ │ │ │ +

◆ __glibcxx_raw_memory_algorithms

│ │ │ │ + │ │ │ │ +
│ │ │ │ +
│ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ +
#define __glibcxx_raw_memory_algorithms
│ │ │ │ +
│ │ │ │ + │ │ │ │ +

Definition at line 590 of file version.h.

│ │ │ │ + │ │ │ │ +
│ │ │ │ +
│ │ │ │ + │ │ │ │ +

◆ __glibcxx_remove_cvref

│ │ │ │ + │ │ │ │ +
│ │ │ │ +
│ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ +
#define __glibcxx_remove_cvref
│ │ │ │ +
│ │ │ │ + │ │ │ │ +

Definition at line 1085 of file version.h.

│ │ │ │ + │ │ │ │ +
│ │ │ │ +
│ │ │ │ + │ │ │ │ +

◆ __glibcxx_result_of_sfinae

│ │ │ │ + │ │ │ │ +
│ │ │ │ +
│ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ +
#define __glibcxx_result_of_sfinae
│ │ │ │ +
│ │ │ │ + │ │ │ │ +

Definition at line 95 of file version.h.

│ │ │ │ + │ │ │ │ +
│ │ │ │ +
│ │ │ │ + │ │ │ │ +

◆ __glibcxx_robust_nonmodifying_seq_ops

│ │ │ │ + │ │ │ │ +
│ │ │ │ +
│ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ +
#define __glibcxx_robust_nonmodifying_seq_ops
│ │ │ │ +
│ │ │ │ + │ │ │ │ +

Definition at line 270 of file version.h.

│ │ │ │ + │ │ │ │ +
│ │ │ │ +
│ │ │ │ + │ │ │ │ +

◆ __glibcxx_sample

│ │ │ │ + │ │ │ │ +
│ │ │ │ +
│ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ +
#define __glibcxx_sample
│ │ │ │ +
│ │ │ │ + │ │ │ │ +

Definition at line 635 of file version.h.

│ │ │ │ + │ │ │ │ +
│ │ │ │ +
│ │ │ │ + │ │ │ │ +

◆ __glibcxx_scoped_lock

│ │ │ │ + │ │ │ │ +
│ │ │ │ +
│ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ +
#define __glibcxx_scoped_lock
│ │ │ │ +
│ │ │ │ + │ │ │ │ +

Definition at line 755 of file version.h.

│ │ │ │ + │ │ │ │ +
│ │ │ │ +
│ │ │ │ + │ │ │ │ +

◆ __glibcxx_semaphore

│ │ │ │ + │ │ │ │ +
│ │ │ │ +
│ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ +
#define __glibcxx_semaphore
│ │ │ │ +
│ │ │ │ + │ │ │ │ +

Definition at line 1490 of file version.h.

│ │ │ │ + │ │ │ │ +
│ │ │ │ +
│ │ │ │ + │ │ │ │ +

◆ __glibcxx_shared_mutex

│ │ │ │ + │ │ │ │ +
│ │ │ │ +
│ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ +
#define __glibcxx_shared_mutex
│ │ │ │ +
│ │ │ │ + │ │ │ │ +

Definition at line 765 of file version.h.

│ │ │ │ + │ │ │ │ +
│ │ │ │ +
│ │ │ │ + │ │ │ │ +

◆ __glibcxx_shared_ptr_arrays

│ │ │ │ + │ │ │ │ +
│ │ │ │ +
│ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ +
#define __glibcxx_shared_ptr_arrays
│ │ │ │ +
│ │ │ │ + │ │ │ │ +

Definition at line 105 of file version.h.

│ │ │ │ + │ │ │ │ +
│ │ │ │ +
│ │ │ │ + │ │ │ │ +

◆ __glibcxx_shared_ptr_weak_type

│ │ │ │ + │ │ │ │ +
│ │ │ │ +
│ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ +
#define __glibcxx_shared_ptr_weak_type
│ │ │ │ +
│ │ │ │ + │ │ │ │ +

Definition at line 775 of file version.h.

│ │ │ │ + │ │ │ │ +
│ │ │ │ +
│ │ │ │ + │ │ │ │ +

◆ __glibcxx_shared_timed_mutex

│ │ │ │ + │ │ │ │ +
│ │ │ │ +
│ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ +
#define __glibcxx_shared_timed_mutex
│ │ │ │ +
│ │ │ │ + │ │ │ │ +

Definition at line 345 of file version.h.

│ │ │ │ + │ │ │ │ +
│ │ │ │ +
│ │ │ │ + │ │ │ │ +

◆ __glibcxx_shift

│ │ │ │ + │ │ │ │ +
│ │ │ │ +
│ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ +
#define __glibcxx_shift
│ │ │ │ +
│ │ │ │ + │ │ │ │ +

Definition at line 1210 of file version.h.

│ │ │ │ + │ │ │ │ +
│ │ │ │ +
│ │ │ │ + │ │ │ │ +

◆ __glibcxx_smart_ptr_for_overwrite

│ │ │ │ + │ │ │ │ +
│ │ │ │ +
│ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ +
#define __glibcxx_smart_ptr_for_overwrite
│ │ │ │ +
│ │ │ │ + │ │ │ │ +

Definition at line 1500 of file version.h.

│ │ │ │ + │ │ │ │ +
│ │ │ │ +
│ │ │ │ + │ │ │ │ +

◆ __glibcxx_source_location

│ │ │ │ + │ │ │ │ +
│ │ │ │ +
│ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ +
#define __glibcxx_source_location
│ │ │ │ +
│ │ │ │ + │ │ │ │ +

Definition at line 1095 of file version.h.

│ │ │ │ + │ │ │ │ +
│ │ │ │ +
│ │ │ │ + │ │ │ │ +

◆ __glibcxx_span

│ │ │ │ + │ │ │ │ +
│ │ │ │ +
│ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ +
#define __glibcxx_span
│ │ │ │ +
│ │ │ │ + │ │ │ │ +

Definition at line 1110 of file version.h.

│ │ │ │ + │ │ │ │ +
│ │ │ │ +
│ │ │ │ + │ │ │ │ +

◆ __glibcxx_ssize

│ │ │ │ + │ │ │ │ +
│ │ │ │ +
│ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ +
#define __glibcxx_ssize
│ │ │ │ +
│ │ │ │ + │ │ │ │ +

Definition at line 1120 of file version.h.

│ │ │ │ + │ │ │ │ +
│ │ │ │ +
│ │ │ │ + │ │ │ │ +

◆ __glibcxx_starts_ends_with

│ │ │ │ + │ │ │ │ +
│ │ │ │ +
│ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ +
#define __glibcxx_starts_ends_with
│ │ │ │ +
│ │ │ │ + │ │ │ │ +

Definition at line 890 of file version.h.

│ │ │ │ + │ │ │ │ +
│ │ │ │ +
│ │ │ │ + │ │ │ │ +

◆ __glibcxx_string_udls

│ │ │ │ + │ │ │ │ +
│ │ │ │ +
│ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ +
#define __glibcxx_string_udls
│ │ │ │ +
│ │ │ │ + │ │ │ │ +

Definition at line 355 of file version.h.

│ │ │ │ + │ │ │ │ +
│ │ │ │ +
│ │ │ │ + │ │ │ │ +

◆ __glibcxx_string_view

│ │ │ │ + │ │ │ │ +
│ │ │ │ +
│ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ +
#define __glibcxx_string_view
│ │ │ │ +
│ │ │ │ + │ │ │ │ +

Definition at line 790 of file version.h.

│ │ │ │ + │ │ │ │ +
│ │ │ │ +
│ │ │ │ + │ │ │ │ +

◆ __glibcxx_three_way_comparison

│ │ │ │ + │ │ │ │ +
│ │ │ │ +
│ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ +
#define __glibcxx_three_way_comparison
│ │ │ │ +
│ │ │ │ + │ │ │ │ +

Definition at line 1130 of file version.h.

│ │ │ │ + │ │ │ │ +
│ │ │ │ +
│ │ │ │ + │ │ │ │ +

◆ __glibcxx_to_address

│ │ │ │ + │ │ │ │ +
│ │ │ │ +
│ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ +
#define __glibcxx_to_address
│ │ │ │ +
│ │ │ │ + │ │ │ │ +

Definition at line 1140 of file version.h.

│ │ │ │ + │ │ │ │ +
│ │ │ │ +
│ │ │ │ + │ │ │ │ +

◆ __glibcxx_transformation_trait_aliases

│ │ │ │ + │ │ │ │ +
│ │ │ │ +
│ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ +
#define __glibcxx_transformation_trait_aliases
│ │ │ │ +
│ │ │ │ + │ │ │ │ +

Definition at line 230 of file version.h.

│ │ │ │ + │ │ │ │ +
│ │ │ │ +
│ │ │ │ + │ │ │ │ +

◆ __glibcxx_transparent_operators

│ │ │ │ + │ │ │ │ +
│ │ │ │ +
│ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ +
#define __glibcxx_transparent_operators
│ │ │ │ +
│ │ │ │ + │ │ │ │ +

Definition at line 240 of file version.h.

│ │ │ │ + │ │ │ │ +
│ │ │ │ +
│ │ │ │ + │ │ │ │ +

◆ __glibcxx_tuple_element_t

│ │ │ │ + │ │ │ │ +
│ │ │ │ +
│ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ +
#define __glibcxx_tuple_element_t
│ │ │ │ +
│ │ │ │ + │ │ │ │ +

Definition at line 250 of file version.h.

│ │ │ │ + │ │ │ │ +
│ │ │ │ +
│ │ │ │ + │ │ │ │ +

◆ __glibcxx_tuples_by_type

│ │ │ │ + │ │ │ │ +
│ │ │ │ +
│ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ +
#define __glibcxx_tuples_by_type
│ │ │ │ +
│ │ │ │ + │ │ │ │ +

Definition at line 260 of file version.h.

│ │ │ │ + │ │ │ │ +
│ │ │ │ +
│ │ │ │ + │ │ │ │ +

◆ __glibcxx_type_identity

│ │ │ │ + │ │ │ │ +
│ │ │ │ +
│ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ +
#define __glibcxx_type_identity
│ │ │ │ +
│ │ │ │ + │ │ │ │ +

Definition at line 1160 of file version.h.

│ │ │ │ + │ │ │ │ +
│ │ │ │ +
│ │ │ │ + │ │ │ │ +

◆ __glibcxx_type_trait_variable_templates

│ │ │ │ + │ │ │ │ +
│ │ │ │ +
│ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ +
#define __glibcxx_type_trait_variable_templates
│ │ │ │ +
│ │ │ │ + │ │ │ │ +

Definition at line 525 of file version.h.

│ │ │ │ + │ │ │ │ +
│ │ │ │ +
│ │ │ │ + │ │ │ │ +

◆ __glibcxx_uncaught_exceptions

│ │ │ │ + │ │ │ │ +
│ │ │ │ +
│ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ +
#define __glibcxx_uncaught_exceptions
│ │ │ │ +
│ │ │ │ + │ │ │ │ +

Definition at line 65 of file version.h.

│ │ │ │ + │ │ │ │ +
│ │ │ │ +
│ │ │ │ + │ │ │ │ +

◆ __glibcxx_unordered_map_try_emplace

│ │ │ │ + │ │ │ │ +
│ │ │ │ +
│ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ +
#define __glibcxx_unordered_map_try_emplace
│ │ │ │ +
│ │ │ │ + │ │ │ │ +

Definition at line 800 of file version.h.

│ │ │ │ + │ │ │ │ +
│ │ │ │ +
│ │ │ │ + │ │ │ │ +

◆ __glibcxx_unwrap_ref

│ │ │ │ + │ │ │ │ +
│ │ │ │ +
│ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ +
#define __glibcxx_unwrap_ref
│ │ │ │ +
│ │ │ │ + │ │ │ │ +

Definition at line 1170 of file version.h.

│ │ │ │ + │ │ │ │ +
│ │ │ │ +
│ │ │ │ + │ │ │ │ +

◆ __glibcxx_variant

│ │ │ │ + │ │ │ │ +
│ │ │ │ +
│ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ +
#define __glibcxx_variant
│ │ │ │ +
│ │ │ │ + │ │ │ │ +

Definition at line 545 of file version.h.

│ │ │ │ + │ │ │ │ +
│ │ │ │ +
│ │ │ │ + │ │ │ │ +

◆ __glibcxx_void_t

│ │ │ │ + │ │ │ │ +
│ │ │ │ +
│ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ +
#define __glibcxx_void_t
│ │ │ │ +
│ │ │ │ + │ │ │ │ +

Definition at line 130 of file version.h.

│ │ │ │ │ │ │ │
│ │ │ │
│ │ │ │
│ │ │ │
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├── html2text {} │ │ │ │ │ @@ -1,21 +1,658 @@ │ │ │ │ │ libstdc++ │ │ │ │ │ -_N_a_m_e_s_p_a_c_e_s | _M_a_c_r_o_s │ │ │ │ │ -sstream.tcc File Reference │ │ │ │ │ +_M_a_c_r_o_s │ │ │ │ │ +version.h File Reference │ │ │ │ │ _G_o_ _t_o_ _t_h_e_ _s_o_u_r_c_e_ _c_o_d_e_ _o_f_ _t_h_i_s_ _f_i_l_e_. │ │ │ │ │ -NNaammeessppaacceess │ │ │ │ │ -namespace   _s_t_d │ │ │ │ │ -  │ │ │ │ │ MMaaccrrooss │ │ │ │ │ -#define  ___S_S_T_R_E_A_M___T_C_C │ │ │ │ │ +#define  _____g_l_i_b_c_x_x___a_d_d_r_e_s_s_o_f___c_o_n_s_t_e_x_p_r │ │ │ │ │ +  │ │ │ │ │ +#define  _____g_l_i_b_c_x_x___a_l_l_o_c_a_t_o_r___t_r_a_i_t_s___i_s___a_l_w_a_y_s___e_q_u_a_l │ │ │ │ │ +  │ │ │ │ │ +#define  _____g_l_i_b_c_x_x___a_n_y │ │ │ │ │ +  │ │ │ │ │ +#define  _____g_l_i_b_c_x_x___a_p_p_l_y │ │ │ │ │ +  │ │ │ │ │ +#define  _____g_l_i_b_c_x_x___a_r_r_a_y___c_o_n_s_t_e_x_p_r │ │ │ │ │ +  │ │ │ │ │ +#define  _____g_l_i_b_c_x_x___a_s___c_o_n_s_t │ │ │ │ │ +  │ │ │ │ │ +#define  _____g_l_i_b_c_x_x___a_s_s_u_m_e___a_l_i_g_n_e_d │ │ │ │ │ +  │ │ │ │ │ +#define  _____g_l_i_b_c_x_x___a_t_o_m_i_c___f_l_a_g___t_e_s_t │ │ │ │ │ +  │ │ │ │ │ +#define  _____g_l_i_b_c_x_x___a_t_o_m_i_c___f_l_o_a_t │ │ │ │ │ +  │ │ │ │ │ +#define  _____g_l_i_b_c_x_x___a_t_o_m_i_c___i_s___a_l_w_a_y_s___l_o_c_k___f_r_e_e │ │ │ │ │ +  │ │ │ │ │ +#define  _____g_l_i_b_c_x_x___a_t_o_m_i_c___r_e_f │ │ │ │ │ +  │ │ │ │ │ +#define  _____g_l_i_b_c_x_x___a_t_o_m_i_c___s_h_a_r_e_d___p_t_r │ │ │ │ │ +  │ │ │ │ │ +#define  _____g_l_i_b_c_x_x___a_t_o_m_i_c___v_a_l_u_e___i_n_i_t_i_a_l_i_z_a_t_i_o_n │ │ │ │ │ +  │ │ │ │ │ +#define  _____g_l_i_b_c_x_x___a_t_o_m_i_c___w_a_i_t │ │ │ │ │ +  │ │ │ │ │ +#define  _____g_l_i_b_c_x_x___b_a_r_r_i_e_r │ │ │ │ │ +  │ │ │ │ │ +#define  _____g_l_i_b_c_x_x___b_i_n_d___f_r_o_n_t │ │ │ │ │ +  │ │ │ │ │ +#define  _____g_l_i_b_c_x_x___b_i_t___c_a_s_t │ │ │ │ │ +  │ │ │ │ │ +#define  _____g_l_i_b_c_x_x___b_i_t_o_p_s │ │ │ │ │ +  │ │ │ │ │ +#define  _____g_l_i_b_c_x_x___b_o_o_l___c_o_n_s_t_a_n_t │ │ │ │ │ +  │ │ │ │ │ +#define  _____g_l_i_b_c_x_x___b_o_u_n_d_e_d___a_r_r_a_y___t_r_a_i_t_s │ │ │ │ │ +  │ │ │ │ │ +#define  _____g_l_i_b_c_x_x___b_o_y_e_r___m_o_o_r_e___s_e_a_r_c_h_e_r │ │ │ │ │ +  │ │ │ │ │ +#define  _____g_l_i_b_c_x_x___b_y_t_e │ │ │ │ │ +  │ │ │ │ │ +#define  _____g_l_i_b_c_x_x___c_h_r_o_n_o │ │ │ │ │ +  │ │ │ │ │ +#define  _____g_l_i_b_c_x_x___c_h_r_o_n_o___u_d_l_s │ │ │ │ │ +  │ │ │ │ │ +#define  _____g_l_i_b_c_x_x___c_l_a_m_p │ │ │ │ │ +  │ │ │ │ │ +#define  _____g_l_i_b_c_x_x___c_o_m_p_l_e_x___u_d_l_s │ │ │ │ │ +  │ │ │ │ │ +#define  _____g_l_i_b_c_x_x___c_o_n_c_e_p_t_s │ │ │ │ │ +  │ │ │ │ │ +#define  _____g_l_i_b_c_x_x___c_o_n_s_t_e_x_p_r___a_l_g_o_r_i_t_h_m_s │ │ │ │ │ +  │ │ │ │ │ +#define  _____g_l_i_b_c_x_x___c_o_n_s_t_e_x_p_r___c_h_a_r___t_r_a_i_t_s │ │ │ │ │ +  │ │ │ │ │ +#define  _____g_l_i_b_c_x_x___c_o_n_s_t_e_x_p_r___c_o_m_p_l_e_x │ │ │ │ │ +  │ │ │ │ │ +#define  _____g_l_i_b_c_x_x___c_o_n_s_t_e_x_p_r___d_y_n_a_m_i_c___a_l_l_o_c │ │ │ │ │ +  │ │ │ │ │ +#define  _____g_l_i_b_c_x_x___c_o_n_s_t_e_x_p_r___f_u_n_c_t_i_o_n_a_l │ │ │ │ │ +  │ │ │ │ │ +#define  _____g_l_i_b_c_x_x___c_o_n_s_t_e_x_p_r___i_t_e_r_a_t_o_r │ │ │ │ │ +  │ │ │ │ │ +#define  _____g_l_i_b_c_x_x___c_o_n_s_t_e_x_p_r___m_e_m_o_r_y │ │ │ │ │ +  │ │ │ │ │ +#define  _____g_l_i_b_c_x_x___c_o_n_s_t_e_x_p_r___n_u_m_e_r_i_c │ │ │ │ │ +  │ │ │ │ │ +#define  _____g_l_i_b_c_x_x___c_o_n_s_t_e_x_p_r___s_t_r_i_n_g │ │ │ │ │ +  │ │ │ │ │ +#define  _____g_l_i_b_c_x_x___c_o_n_s_t_e_x_p_r___s_t_r_i_n_g___v_i_e_w │ │ │ │ │ +  │ │ │ │ │ +#define  _____g_l_i_b_c_x_x___c_o_n_s_t_e_x_p_r___t_u_p_l_e │ │ │ │ │ +  │ │ │ │ │ +#define  _____g_l_i_b_c_x_x___c_o_n_s_t_e_x_p_r___u_t_i_l_i_t_y │ │ │ │ │ +  │ │ │ │ │ +#define  _____g_l_i_b_c_x_x___c_o_n_s_t_e_x_p_r___v_e_c_t_o_r │ │ │ │ │ +  │ │ │ │ │ +#define  _____g_l_i_b_c_x_x___c_o_n_s_t_r_a_i_n_e_d___e_q_u_a_l_i_t_y │ │ │ │ │ +  │ │ │ │ │ +#define  _____g_l_i_b_c_x_x___c_o_r_o_u_t_i_n_e │ │ │ │ │ +  │ │ │ │ │ +#define  _____g_l_i_b_c_x_x___e_n_a_b_l_e___s_h_a_r_e_d___f_r_o_m___t_h_i_s │ │ │ │ │ +  │ │ │ │ │ +#define  _____g_l_i_b_c_x_x___e_n_d_i_a_n │ │ │ │ │ +  │ │ │ │ │ +#define  _____g_l_i_b_c_x_x___e_r_a_s_e___i_f │ │ │ │ │ +  │ │ │ │ │ +#define  _____g_l_i_b_c_x_x___e_x_c_h_a_n_g_e___f_u_n_c_t_i_o_n │ │ │ │ │ +  │ │ │ │ │ +#define  _____g_l_i_b_c_x_x___e_x_e_c_u_t_i_o_n │ │ │ │ │ +  │ │ │ │ │ +#define  _____g_l_i_b_c_x_x___f_i_l_e_s_y_s_t_e_m │ │ │ │ │ +  │ │ │ │ │ +#define  _____g_l_i_b_c_x_x___f_o_r_m_a_t │ │ │ │ │ +  │ │ │ │ │ +#define  _____g_l_i_b_c_x_x___f_o_r_m_a_t___u_c_h_a_r │ │ │ │ │ +  │ │ │ │ │ +#define  _____g_l_i_b_c_x_x___g_c_d │ │ │ │ │ +  │ │ │ │ │ +#define  _____g_l_i_b_c_x_x___g_c_d___l_c_m │ │ │ │ │ +  │ │ │ │ │ +#define  _____g_l_i_b_c_x_x___g_e_n_e_r_i_c___a_s_s_o_c_i_a_t_i_v_e___l_o_o_k_u_p │ │ │ │ │ +  │ │ │ │ │ +#define  _____g_l_i_b_c_x_x___g_e_n_e_r_i_c___u_n_o_r_d_e_r_e_d___l_o_o_k_u_p │ │ │ │ │ +  │ │ │ │ │ +#define  _____g_l_i_b_c_x_x___h_a_s___u_n_i_q_u_e___o_b_j_e_c_t___r_e_p_r_e_s_e_n_t_a_t_i_o_n_s │ │ │ │ │ +  │ │ │ │ │ +#define  _____g_l_i_b_c_x_x___h_y_p_o_t │ │ │ │ │ +  │ │ │ │ │ +#define  _____g_l_i_b_c_x_x___i_n_c_o_m_p_l_e_t_e___c_o_n_t_a_i_n_e_r___e_l_e_m_e_n_t_s │ │ │ │ │ +  │ │ │ │ │ +#define  _____g_l_i_b_c_x_x___i_n_t___p_o_w_2 │ │ │ │ │ +  │ │ │ │ │ +#define  _____g_l_i_b_c_x_x___i_n_t_e_g_e_r___c_o_m_p_a_r_i_s_o_n___f_u_n_c_t_i_o_n_s │ │ │ │ │ +  │ │ │ │ │ +#define  _____g_l_i_b_c_x_x___i_n_t_e_g_e_r___s_e_q_u_e_n_c_e │ │ │ │ │ +  │ │ │ │ │ +#define  _____g_l_i_b_c_x_x___i_n_t_e_g_r_a_l___c_o_n_s_t_a_n_t___c_a_l_l_a_b_l_e │ │ │ │ │ +  │ │ │ │ │ +#define  _____g_l_i_b_c_x_x___i_n_t_e_r_p_o_l_a_t_e │ │ │ │ │ +  │ │ │ │ │ +#define  _____g_l_i_b_c_x_x___i_n_v_o_k_e │ │ │ │ │ +  │ │ │ │ │ +#define  _____g_l_i_b_c_x_x___i_s___a_g_g_r_e_g_a_t_e │ │ │ │ │ +  │ │ │ │ │ +#define  _____g_l_i_b_c_x_x___i_s___c_o_n_s_t_a_n_t___e_v_a_l_u_a_t_e_d │ │ │ │ │ +  │ │ │ │ │ +#define  _____g_l_i_b_c_x_x___i_s___f_i_n_a_l │ │ │ │ │ +  │ │ │ │ │ +#define  _____g_l_i_b_c_x_x___i_s___i_n_v_o_c_a_b_l_e │ │ │ │ │ +  │ │ │ │ │ +#define  _____g_l_i_b_c_x_x___i_s___l_a_y_o_u_t___c_o_m_p_a_t_i_b_l_e │ │ │ │ │ +  │ │ │ │ │ +#define  _____g_l_i_b_c_x_x___i_s___n_o_t_h_r_o_w___c_o_n_v_e_r_t_i_b_l_e │ │ │ │ │ +  │ │ │ │ │ +#define  _____g_l_i_b_c_x_x___i_s___n_u_l_l___p_o_i_n_t_e_r │ │ │ │ │ +  │ │ │ │ │ +#define  _____g_l_i_b_c_x_x___i_s___p_o_i_n_t_e_r___i_n_t_e_r_c_o_n_v_e_r_t_i_b_l_e │ │ │ │ │ +  │ │ │ │ │ +#define  _____g_l_i_b_c_x_x___i_s___s_w_a_p_p_a_b_l_e │ │ │ │ │ +  │ │ │ │ │ +#define  _____g_l_i_b_c_x_x___j_t_h_r_e_a_d │ │ │ │ │ +  │ │ │ │ │ +#define  _____g_l_i_b_c_x_x___l_a_t_c_h │ │ │ │ │ +  │ │ │ │ │ +#define  _____g_l_i_b_c_x_x___l_a_u_n_d_e_r │ │ │ │ │ +  │ │ │ │ │ +#define  _____g_l_i_b_c_x_x___l_c_m │ │ │ │ │ +  │ │ │ │ │ +#define  _____g_l_i_b_c_x_x___l_i_s_t___r_e_m_o_v_e___r_e_t_u_r_n___t_y_p_e │ │ │ │ │ +  │ │ │ │ │ +#define  _____g_l_i_b_c_x_x___l_o_g_i_c_a_l___t_r_a_i_t_s │ │ │ │ │ +  │ │ │ │ │ +#define  _____g_l_i_b_c_x_x___m_a_k_e___f_r_o_m___t_u_p_l_e │ │ │ │ │ +  │ │ │ │ │ +#define  _____g_l_i_b_c_x_x___m_a_k_e___o_b_j___u_s_i_n_g___a_l_l_o_c_a_t_o_r │ │ │ │ │ +  │ │ │ │ │ +#define  _____g_l_i_b_c_x_x___m_a_k_e___r_e_v_e_r_s_e___i_t_e_r_a_t_o_r │ │ │ │ │ +  │ │ │ │ │ +#define  _____g_l_i_b_c_x_x___m_a_k_e___u_n_i_q_u_e │ │ │ │ │ +  │ │ │ │ │ +#define  _____g_l_i_b_c_x_x___m_a_p___t_r_y___e_m_p_l_a_c_e │ │ │ │ │ +  │ │ │ │ │ +#define  _____g_l_i_b_c_x_x___m_a_t_h___c_o_n_s_t_a_n_t_s │ │ │ │ │ +  │ │ │ │ │ +#define  _____g_l_i_b_c_x_x___m_a_t_h___s_p_e_c___f_u_n_c_s │ │ │ │ │ +  │ │ │ │ │ +#define  _____g_l_i_b_c_x_x___m_a_t_h___s_p_e_c_i_a_l___f_u_n_c_t_i_o_n_s │ │ │ │ │ +  │ │ │ │ │ +#define  _____g_l_i_b_c_x_x___m_e_m_o_r_y___r_e_s_o_u_r_c_e │ │ │ │ │ +  │ │ │ │ │ +#define  _____g_l_i_b_c_x_x___m_o_v_e___i_t_e_r_a_t_o_r___c_o_n_c_e_p_t │ │ │ │ │ +  │ │ │ │ │ +#define  _____g_l_i_b_c_x_x___n_o_d_e___e_x_t_r_a_c_t │ │ │ │ │ +  │ │ │ │ │ +#define  _____g_l_i_b_c_x_x___n_o_n_m_e_m_b_e_r___c_o_n_t_a_i_n_e_r___a_c_c_e_s_s │ │ │ │ │ +  │ │ │ │ │ +#define  _____g_l_i_b_c_x_x___n_o_t___f_n │ │ │ │ │ +  │ │ │ │ │ +#define  _____g_l_i_b_c_x_x___n_u_l_l___i_t_e_r_a_t_o_r_s │ │ │ │ │ +  │ │ │ │ │ +#define  _____g_l_i_b_c_x_x___o_p_t_i_o_n_a_l │ │ │ │ │ +  │ │ │ │ │ +#define  _____g_l_i_b_c_x_x___p_a_r_a_l_l_e_l___a_l_g_o_r_i_t_h_m │ │ │ │ │ +  │ │ │ │ │ +#define  _____g_l_i_b_c_x_x___p_o_l_y_m_o_r_p_h_i_c___a_l_l_o_c_a_t_o_r │ │ │ │ │ +  │ │ │ │ │ +#define  _____g_l_i_b_c_x_x___q_u_o_t_e_d___s_t_r_i_n_g___i_o │ │ │ │ │ +  │ │ │ │ │ +#define  _____g_l_i_b_c_x_x___r_a_n_g_e_s │ │ │ │ │ +  │ │ │ │ │ +#define  _____g_l_i_b_c_x_x___r_a_w___m_e_m_o_r_y___a_l_g_o_r_i_t_h_m_s │ │ │ │ │ +  │ │ │ │ │ +#define  _____g_l_i_b_c_x_x___r_e_m_o_v_e___c_v_r_e_f │ │ │ │ │ +  │ │ │ │ │ +#define  _____g_l_i_b_c_x_x___r_e_s_u_l_t___o_f___s_f_i_n_a_e │ │ │ │ │ +  │ │ │ │ │ +#define  _____g_l_i_b_c_x_x___r_o_b_u_s_t___n_o_n_m_o_d_i_f_y_i_n_g___s_e_q___o_p_s │ │ │ │ │ +  │ │ │ │ │ +#define  _____g_l_i_b_c_x_x___s_a_m_p_l_e │ │ │ │ │ +  │ │ │ │ │ +#define  _____g_l_i_b_c_x_x___s_c_o_p_e_d___l_o_c_k │ │ │ │ │ +  │ │ │ │ │ +#define  _____g_l_i_b_c_x_x___s_e_m_a_p_h_o_r_e │ │ │ │ │ +  │ │ │ │ │ +#define  _____g_l_i_b_c_x_x___s_h_a_r_e_d___m_u_t_e_x │ │ │ │ │ +  │ │ │ │ │ +#define  _____g_l_i_b_c_x_x___s_h_a_r_e_d___p_t_r___a_r_r_a_y_s │ │ │ │ │ +  │ │ │ │ │ +#define  _____g_l_i_b_c_x_x___s_h_a_r_e_d___p_t_r___w_e_a_k___t_y_p_e │ │ │ │ │ +  │ │ │ │ │ +#define  _____g_l_i_b_c_x_x___s_h_a_r_e_d___t_i_m_e_d___m_u_t_e_x │ │ │ │ │ +  │ │ │ │ │ +#define  _____g_l_i_b_c_x_x___s_h_i_f_t │ │ │ │ │ +  │ │ │ │ │ +#define  _____g_l_i_b_c_x_x___s_m_a_r_t___p_t_r___f_o_r___o_v_e_r_w_r_i_t_e │ │ │ │ │ +  │ │ │ │ │ +#define  _____g_l_i_b_c_x_x___s_o_u_r_c_e___l_o_c_a_t_i_o_n │ │ │ │ │ +  │ │ │ │ │ +#define  _____g_l_i_b_c_x_x___s_p_a_n │ │ │ │ │ +  │ │ │ │ │ +#define  _____g_l_i_b_c_x_x___s_s_i_z_e │ │ │ │ │ +  │ │ │ │ │ +#define  _____g_l_i_b_c_x_x___s_t_a_r_t_s___e_n_d_s___w_i_t_h │ │ │ │ │ +  │ │ │ │ │ +#define  _____g_l_i_b_c_x_x___s_t_r_i_n_g___u_d_l_s │ │ │ │ │ +  │ │ │ │ │ +#define  _____g_l_i_b_c_x_x___s_t_r_i_n_g___v_i_e_w │ │ │ │ │ +  │ │ │ │ │ +#define  _____g_l_i_b_c_x_x___t_h_r_e_e___w_a_y___c_o_m_p_a_r_i_s_o_n │ │ │ │ │ +  │ │ │ │ │ +#define  _____g_l_i_b_c_x_x___t_o___a_d_d_r_e_s_s │ │ │ │ │ +  │ │ │ │ │ +#define  _____g_l_i_b_c_x_x___t_r_a_n_s_f_o_r_m_a_t_i_o_n___t_r_a_i_t___a_l_i_a_s_e_s │ │ │ │ │ +  │ │ │ │ │ +#define  _____g_l_i_b_c_x_x___t_r_a_n_s_p_a_r_e_n_t___o_p_e_r_a_t_o_r_s │ │ │ │ │ +  │ │ │ │ │ +#define  _____g_l_i_b_c_x_x___t_u_p_l_e___e_l_e_m_e_n_t___t │ │ │ │ │ +  │ │ │ │ │ +#define  _____g_l_i_b_c_x_x___t_u_p_l_e_s___b_y___t_y_p_e │ │ │ │ │ +  │ │ │ │ │ +#define  _____g_l_i_b_c_x_x___t_y_p_e___i_d_e_n_t_i_t_y │ │ │ │ │ +  │ │ │ │ │ +#define  _____g_l_i_b_c_x_x___t_y_p_e___t_r_a_i_t___v_a_r_i_a_b_l_e___t_e_m_p_l_a_t_e_s │ │ │ │ │ +  │ │ │ │ │ +#define  _____g_l_i_b_c_x_x___u_n_c_a_u_g_h_t___e_x_c_e_p_t_i_o_n_s │ │ │ │ │ +  │ │ │ │ │ +#define  _____g_l_i_b_c_x_x___u_n_o_r_d_e_r_e_d___m_a_p___t_r_y___e_m_p_l_a_c_e │ │ │ │ │ +  │ │ │ │ │ +#define  _____g_l_i_b_c_x_x___u_n_w_r_a_p___r_e_f │ │ │ │ │ +  │ │ │ │ │ +#define  _____g_l_i_b_c_x_x___v_a_r_i_a_n_t │ │ │ │ │ +  │ │ │ │ │ +#define  _____g_l_i_b_c_x_x___v_o_i_d___t │ │ │ │ │   │ │ │ │ │ ********** DDeettaaiilleedd DDeessccrriippttiioonn ********** │ │ │ │ │ This is an internal header file, included by other library headers. Do not │ │ │ │ │ -attempt to use it directly. Instead, include . │ │ │ │ │ -Definition in file _s_s_t_r_e_a_m_._t_c_c. │ │ │ │ │ +attempt to use it directly. Instead, include . │ │ │ │ │ +Definition in file _v_e_r_s_i_o_n_._h. │ │ │ │ │ ********** MMaaccrroo DDeeffiinniittiioonn DDooccuummeennttaattiioonn ********** │ │ │ │ │ -********** _?◆_? __SSSSTTRREEAAMM__TTCCCC ********** │ │ │ │ │ -#define _SSTREAM_TCC │ │ │ │ │ -Definition at line _3_5 of file _s_s_t_r_e_a_m_._t_c_c. │ │ │ │ │ +********** _?◆_? ____gglliibbccxxxx__aaddddrreessssooff__ccoonnsstteexxpprr ********** │ │ │ │ │ +#define __glibcxx_addressof_constexpr │ │ │ │ │ +Definition at line _3_6_5 of file _v_e_r_s_i_o_n_._h. │ │ │ │ │ +********** _?◆_? ____gglliibbccxxxx__aallllooccaattoorr__ttrraaiittss__iiss__aallwwaayyss__eeqquuaall ********** │ │ │ │ │ +#define __glibcxx_allocator_traits_is_always_equal │ │ │ │ │ +Definition at line _7_5 of file _v_e_r_s_i_o_n_._h. │ │ │ │ │ +********** _?◆_? ____gglliibbccxxxx__aannyy ********** │ │ │ │ │ +#define __glibcxx_any │ │ │ │ │ +Definition at line _3_7_5 of file _v_e_r_s_i_o_n_._h. │ │ │ │ │ +********** _?◆_? ____gglliibbccxxxx__aappppllyy ********** │ │ │ │ │ +#define __glibcxx_apply │ │ │ │ │ +Definition at line _3_8_5 of file _v_e_r_s_i_o_n_._h. │ │ │ │ │ +********** _?◆_? ____gglliibbccxxxx__aarrrraayy__ccoonnsstteexxpprr ********** │ │ │ │ │ +#define __glibcxx_array_constexpr │ │ │ │ │ +Definition at line _6_0_0 of file _v_e_r_s_i_o_n_._h. │ │ │ │ │ +********** _?◆_? ____gglliibbccxxxx__aass__ccoonnsstt ********** │ │ │ │ │ +#define __glibcxx_as_const │ │ │ │ │ +Definition at line _3_9_5 of file _v_e_r_s_i_o_n_._h. │ │ │ │ │ +********** _?◆_? ____gglliibbccxxxx__aassssuummee__aalliiggnneedd ********** │ │ │ │ │ +#define __glibcxx_assume_aligned │ │ │ │ │ +Definition at line _8_1_0 of file _v_e_r_s_i_o_n_._h. │ │ │ │ │ +********** _?◆_? ____gglliibbccxxxx__aattoommiicc__ffllaagg__tteesstt ********** │ │ │ │ │ +#define __glibcxx_atomic_flag_test │ │ │ │ │ +Definition at line _8_2_0 of file _v_e_r_s_i_o_n_._h. │ │ │ │ │ +********** _?◆_? ____gglliibbccxxxx__aattoommiicc__ffllooaatt ********** │ │ │ │ │ +#define __glibcxx_atomic_float │ │ │ │ │ +Definition at line _8_3_0 of file _v_e_r_s_i_o_n_._h. │ │ │ │ │ +********** _?◆_? ____gglliibbccxxxx__aattoommiicc__iiss__aallwwaayyss__lloocckk__ffrreeee ********** │ │ │ │ │ +#define __glibcxx_atomic_is_always_lock_free │ │ │ │ │ +Definition at line _4_0_5 of file _v_e_r_s_i_o_n_._h. │ │ │ │ │ +********** _?◆_? ____gglliibbccxxxx__aattoommiicc__rreeff ********** │ │ │ │ │ +#define __glibcxx_atomic_ref │ │ │ │ │ +Definition at line _8_5_0 of file _v_e_r_s_i_o_n_._h. │ │ │ │ │ +********** _?◆_? ____gglliibbccxxxx__aattoommiicc__sshhaarreedd__ppttrr ********** │ │ │ │ │ +#define __glibcxx_atomic_shared_ptr │ │ │ │ │ +Definition at line _1_3_0_0 of file _v_e_r_s_i_o_n_._h. │ │ │ │ │ +********** _?◆_? ____gglliibbccxxxx__aattoommiicc__vvaalluuee__iinniittiiaalliizzaattiioonn ********** │ │ │ │ │ +#define __glibcxx_atomic_value_initialization │ │ │ │ │ +Definition at line _8_6_0 of file _v_e_r_s_i_o_n_._h. │ │ │ │ │ +********** _?◆_? ____gglliibbccxxxx__aattoommiicc__wwaaiitt ********** │ │ │ │ │ +#define __glibcxx_atomic_wait │ │ │ │ │ +Definition at line _1_3_1_0 of file _v_e_r_s_i_o_n_._h. │ │ │ │ │ +********** _?◆_? ____gglliibbccxxxx__bbaarrrriieerr ********** │ │ │ │ │ +#define __glibcxx_barrier │ │ │ │ │ +Definition at line _1_3_2_5 of file _v_e_r_s_i_o_n_._h. │ │ │ │ │ +********** _?◆_? ____gglliibbccxxxx__bbiinndd__ffrroonntt ********** │ │ │ │ │ +#define __glibcxx_bind_front │ │ │ │ │ +Definition at line _8_7_0 of file _v_e_r_s_i_o_n_._h. │ │ │ │ │ +********** _?◆_? ____gglliibbccxxxx__bbiitt__ccaasstt ********** │ │ │ │ │ +#define __glibcxx_bit_cast │ │ │ │ │ +Definition at line _9_0_0 of file _v_e_r_s_i_o_n_._h. │ │ │ │ │ +********** _?◆_? ____gglliibbccxxxx__bbiittooppss ********** │ │ │ │ │ +#define __glibcxx_bitops │ │ │ │ │ +Definition at line _9_1_0 of file _v_e_r_s_i_o_n_._h. │ │ │ │ │ +********** _?◆_? ____gglliibbccxxxx__bbooooll__ccoonnssttaanntt ********** │ │ │ │ │ +#define __glibcxx_bool_constant │ │ │ │ │ +Definition at line _4_1_5 of file _v_e_r_s_i_o_n_._h. │ │ │ │ │ +********** _?◆_? ____gglliibbccxxxx__bboouunnddeedd__aarrrraayy__ttrraaiittss ********** │ │ │ │ │ +#define __glibcxx_bounded_array_traits │ │ │ │ │ +Definition at line _9_2_0 of file _v_e_r_s_i_o_n_._h. │ │ │ │ │ +********** _?◆_? ____gglliibbccxxxx__bbooyyeerr__mmoooorree__sseeaarrcchheerr ********** │ │ │ │ │ +#define __glibcxx_boyer_moore_searcher │ │ │ │ │ +Definition at line _6_4_5 of file _v_e_r_s_i_o_n_._h. │ │ │ │ │ +********** _?◆_? ____gglliibbccxxxx__bbyyttee ********** │ │ │ │ │ +#define __glibcxx_byte │ │ │ │ │ +Definition at line _4_2_5 of file _v_e_r_s_i_o_n_._h. │ │ │ │ │ +********** _?◆_? ____gglliibbccxxxx__cchhrroonnoo ********** │ │ │ │ │ +#define __glibcxx_chrono │ │ │ │ │ +Definition at line _6_6_0 of file _v_e_r_s_i_o_n_._h. │ │ │ │ │ +********** _?◆_? ____gglliibbccxxxx__cchhrroonnoo__uuddllss ********** │ │ │ │ │ +#define __glibcxx_chrono_udls │ │ │ │ │ +Definition at line _2_9_5 of file _v_e_r_s_i_o_n_._h. │ │ │ │ │ +********** _?◆_? ____gglliibbccxxxx__ccllaammpp ********** │ │ │ │ │ +#define __glibcxx_clamp │ │ │ │ │ +Definition at line _6_2_5 of file _v_e_r_s_i_o_n_._h. │ │ │ │ │ +********** _?◆_? ____gglliibbccxxxx__ccoommpplleexx__uuddllss ********** │ │ │ │ │ +#define __glibcxx_complex_udls │ │ │ │ │ +Definition at line _3_0_5 of file _v_e_r_s_i_o_n_._h. │ │ │ │ │ +********** _?◆_? ____gglliibbccxxxx__ccoonncceeppttss ********** │ │ │ │ │ +#define __glibcxx_concepts │ │ │ │ │ +Definition at line _9_3_0 of file _v_e_r_s_i_o_n_._h. │ │ │ │ │ +********** _?◆_? ____gglliibbccxxxx__ccoonnsstteexxpprr__aallggoorriitthhmmss ********** │ │ │ │ │ +#define __glibcxx_constexpr_algorithms │ │ │ │ │ +Definition at line _1_2_6_5 of file _v_e_r_s_i_o_n_._h. │ │ │ │ │ +********** _?◆_? ____gglliibbccxxxx__ccoonnsstteexxpprr__cchhaarr__ttrraaiittss ********** │ │ │ │ │ +#define __glibcxx_constexpr_char_traits │ │ │ │ │ +Definition at line _1_0_2_0 of file _v_e_r_s_i_o_n_._h. │ │ │ │ │ +********** _?◆_? ____gglliibbccxxxx__ccoonnsstteexxpprr__ccoommpplleexx ********** │ │ │ │ │ +#define __glibcxx_constexpr_complex │ │ │ │ │ +Definition at line _1_3_6_0 of file _v_e_r_s_i_o_n_._h. │ │ │ │ │ +********** _?◆_? ____gglliibbccxxxx__ccoonnsstteexxpprr__ddyynnaammiicc__aalllloocc ********** │ │ │ │ │ +#define __glibcxx_constexpr_dynamic_alloc │ │ │ │ │ +Definition at line _1_3_7_0 of file _v_e_r_s_i_o_n_._h. │ │ │ │ │ +********** _?◆_? ____gglliibbccxxxx__ccoonnsstteexxpprr__ffuunnccttiioonnaall ********** │ │ │ │ │ +#define __glibcxx_constexpr_functional │ │ │ │ │ +Definition at line _1_2_5_0 of file _v_e_r_s_i_o_n_._h. │ │ │ │ │ +********** _?◆_? ____gglliibbccxxxx__ccoonnsstteexxpprr__iitteerraattoorr ********** │ │ │ │ │ +#define __glibcxx_constexpr_iterator │ │ │ │ │ +Definition at line _1_1_8_0 of file _v_e_r_s_i_o_n_._h. │ │ │ │ │ +********** _?◆_? ____gglliibbccxxxx__ccoonnsstteexxpprr__mmeemmoorryy ********** │ │ │ │ │ +#define __glibcxx_constexpr_memory │ │ │ │ │ +Definition at line _1_2_9_0 of file _v_e_r_s_i_o_n_._h. │ │ │ │ │ +********** _?◆_? ____gglliibbccxxxx__ccoonnsstteexxpprr__nnuummeerriicc ********** │ │ │ │ │ +#define __glibcxx_constexpr_numeric │ │ │ │ │ +Definition at line _1_2_4_0 of file _v_e_r_s_i_o_n_._h. │ │ │ │ │ +********** _?◆_? ____gglliibbccxxxx__ccoonnsstteexxpprr__ssttrriinngg ********** │ │ │ │ │ +#define __glibcxx_constexpr_string │ │ │ │ │ +Definition at line _1_3_8_5 of file _v_e_r_s_i_o_n_._h. │ │ │ │ │ +********** _?◆_? ____gglliibbccxxxx__ccoonnsstteexxpprr__ssttrriinngg__vviieeww ********** │ │ │ │ │ +#define __glibcxx_constexpr_string_view │ │ │ │ │ +Definition at line _9_7_0 of file _v_e_r_s_i_o_n_._h. │ │ │ │ │ +********** _?◆_? ____gglliibbccxxxx__ccoonnsstteexxpprr__ttuuppllee ********** │ │ │ │ │ +#define __glibcxx_constexpr_tuple │ │ │ │ │ +Definition at line _1_2_7_5 of file _v_e_r_s_i_o_n_._h. │ │ │ │ │ +********** _?◆_? ____gglliibbccxxxx__ccoonnsstteexxpprr__uuttiilliittyy ********** │ │ │ │ │ +#define __glibcxx_constexpr_utility │ │ │ │ │ +Definition at line _1_2_0_0 of file _v_e_r_s_i_o_n_._h. │ │ │ │ │ +********** _?◆_? ____gglliibbccxxxx__ccoonnsstteexxpprr__vveeccttoorr ********** │ │ │ │ │ +#define __glibcxx_constexpr_vector │ │ │ │ │ +Definition at line _1_4_0_0 of file _v_e_r_s_i_o_n_._h. │ │ │ │ │ +********** _?◆_? ____gglliibbccxxxx__ccoonnssttrraaiinneedd__eeqquuaalliittyy ********** │ │ │ │ │ +#define __glibcxx_constrained_equality │ │ │ │ │ +Definition at line _1_4_1_0 of file _v_e_r_s_i_o_n_._h. │ │ │ │ │ +********** _?◆_? ____gglliibbccxxxx__ccoorroouuttiinnee ********** │ │ │ │ │ +#define __glibcxx_coroutine │ │ │ │ │ +Definition at line _1_6_0 of file _v_e_r_s_i_o_n_._h. │ │ │ │ │ +********** _?◆_? ____gglliibbccxxxx__eennaabbllee__sshhaarreedd__ffrroomm__tthhiiss ********** │ │ │ │ │ +#define __glibcxx_enable_shared_from_this │ │ │ │ │ +Definition at line _1_4_0 of file _v_e_r_s_i_o_n_._h. │ │ │ │ │ +********** _?◆_? ____gglliibbccxxxx__eennddiiaann ********** │ │ │ │ │ +#define __glibcxx_endian │ │ │ │ │ +Definition at line _9_8_0 of file _v_e_r_s_i_o_n_._h. │ │ │ │ │ +********** _?◆_? ____gglliibbccxxxx__eerraassee__iiff ********** │ │ │ │ │ +#define __glibcxx_erase_if │ │ │ │ │ +Definition at line _1_4_2_0 of file _v_e_r_s_i_o_n_._h. │ │ │ │ │ +********** _?◆_? ____gglliibbccxxxx__eexxcchhaannggee__ffuunnccttiioonn ********** │ │ │ │ │ +#define __glibcxx_exchange_function │ │ │ │ │ +Definition at line _1_7_0 of file _v_e_r_s_i_o_n_._h. │ │ │ │ │ +********** _?◆_? ____gglliibbccxxxx__eexxeeccuuttiioonn ********** │ │ │ │ │ +#define __glibcxx_execution │ │ │ │ │ +Definition at line _6_7_0 of file _v_e_r_s_i_o_n_._h. │ │ │ │ │ +********** _?◆_? ____gglliibbccxxxx__ffiilleessyysstteemm ********** │ │ │ │ │ +#define __glibcxx_filesystem │ │ │ │ │ +Definition at line _6_8_0 of file _v_e_r_s_i_o_n_._h. │ │ │ │ │ +********** _?◆_? ____gglliibbccxxxx__ffoorrmmaatt ********** │ │ │ │ │ +#define __glibcxx_format │ │ │ │ │ +Definition at line _1_3_4_0 of file _v_e_r_s_i_o_n_._h. │ │ │ │ │ +********** _?◆_? ____gglliibbccxxxx__ffoorrmmaatt__uucchhaarr ********** │ │ │ │ │ +#define __glibcxx_format_uchar │ │ │ │ │ +Definition at line _1_3_5_0 of file _v_e_r_s_i_o_n_._h. │ │ │ │ │ +********** _?◆_? ____gglliibbccxxxx__ggccdd ********** │ │ │ │ │ +#define __glibcxx_gcd │ │ │ │ │ +Definition at line _5_6_5 of file _v_e_r_s_i_o_n_._h. │ │ │ │ │ +********** _?◆_? ____gglliibbccxxxx__ggccdd__llccmm ********** │ │ │ │ │ +#define __glibcxx_gcd_lcm │ │ │ │ │ +Definition at line _5_7_5 of file _v_e_r_s_i_o_n_._h. │ │ │ │ │ +********** _?◆_? ____gglliibbccxxxx__ggeenneerriicc__aassssoocciiaattiivvee__llooookkuupp ********** │ │ │ │ │ +#define __glibcxx_generic_associative_lookup │ │ │ │ │ +Definition at line _3_1_5 of file _v_e_r_s_i_o_n_._h. │ │ │ │ │ +********** _?◆_? ____gglliibbccxxxx__ggeenneerriicc__uunnoorrddeerreedd__llooookkuupp ********** │ │ │ │ │ +#define __glibcxx_generic_unordered_lookup │ │ │ │ │ +Definition at line _1_4_3_0 of file _v_e_r_s_i_o_n_._h. │ │ │ │ │ +********** _?◆_? ____gglliibbccxxxx__hhaass__uunniiqquuee__oobbjjeecctt__rreepprreesseennttaattiioonnss ********** │ │ │ │ │ +#define __glibcxx_has_unique_object_representations │ │ │ │ │ +Definition at line _4_3_5 of file _v_e_r_s_i_o_n_._h. │ │ │ │ │ +********** _?◆_? ____gglliibbccxxxx__hhyyppoott ********** │ │ │ │ │ +#define __glibcxx_hypot │ │ │ │ │ +Definition at line _6_9_0 of file _v_e_r_s_i_o_n_._h. │ │ │ │ │ +********** _?◆_? ____gglliibbccxxxx__iinnccoommpplleettee__ccoonnttaaiinneerr__eelleemmeennttss ********** │ │ │ │ │ +#define __glibcxx_incomplete_container_elements │ │ │ │ │ +Definition at line _5_5 of file _v_e_r_s_i_o_n_._h. │ │ │ │ │ +********** _?◆_? ____gglliibbccxxxx__iinntt__ppooww22 ********** │ │ │ │ │ +#define __glibcxx_int_pow2 │ │ │ │ │ +Definition at line _9_9_0 of file _v_e_r_s_i_o_n_._h. │ │ │ │ │ +********** _?◆_? ____gglliibbccxxxx__iinntteeggeerr__ccoommppaarriissoonn__ffuunnccttiioonnss ********** │ │ │ │ │ +#define __glibcxx_integer_comparison_functions │ │ │ │ │ +Definition at line _1_0_0_0 of file _v_e_r_s_i_o_n_._h. │ │ │ │ │ +********** _?◆_? ____gglliibbccxxxx__iinntteeggeerr__sseeqquueennccee ********** │ │ │ │ │ +#define __glibcxx_integer_sequence │ │ │ │ │ +Definition at line _1_8_0 of file _v_e_r_s_i_o_n_._h. │ │ │ │ │ +********** _?◆_? ____gglliibbccxxxx__iinntteeggrraall__ccoonnssttaanntt__ccaallllaabbllee ********** │ │ │ │ │ +#define __glibcxx_integral_constant_callable │ │ │ │ │ +Definition at line _1_9_0 of file _v_e_r_s_i_o_n_._h. │ │ │ │ │ +********** _?◆_? ____gglliibbccxxxx__iinntteerrppoollaattee ********** │ │ │ │ │ +#define __glibcxx_interpolate │ │ │ │ │ +Definition at line _1_1_9_0 of file _v_e_r_s_i_o_n_._h. │ │ │ │ │ +********** _?◆_? ____gglliibbccxxxx__iinnvvookkee ********** │ │ │ │ │ +#define __glibcxx_invoke │ │ │ │ │ +Definition at line _4_5_5 of file _v_e_r_s_i_o_n_._h. │ │ │ │ │ +********** _?◆_? ____gglliibbccxxxx__iiss__aaggggrreeggaattee ********** │ │ │ │ │ +#define __glibcxx_is_aggregate │ │ │ │ │ +Definition at line _4_6_5 of file _v_e_r_s_i_o_n_._h. │ │ │ │ │ +********** _?◆_? ____gglliibbccxxxx__iiss__ccoonnssttaanntt__eevvaalluuaatteedd ********** │ │ │ │ │ +#define __glibcxx_is_constant_evaluated │ │ │ │ │ +Definition at line _1_0_1_0 of file _v_e_r_s_i_o_n_._h. │ │ │ │ │ +********** _?◆_? ____gglliibbccxxxx__iiss__ffiinnaall ********** │ │ │ │ │ +#define __glibcxx_is_final │ │ │ │ │ +Definition at line _2_0_0 of file _v_e_r_s_i_o_n_._h. │ │ │ │ │ +********** _?◆_? ____gglliibbccxxxx__iiss__iinnvvooccaabbllee ********** │ │ │ │ │ +#define __glibcxx_is_invocable │ │ │ │ │ +Definition at line _4_7_5 of file _v_e_r_s_i_o_n_._h. │ │ │ │ │ +********** _?◆_? ____gglliibbccxxxx__iiss__llaayyoouutt__ccoommppaattiibbllee ********** │ │ │ │ │ +#define __glibcxx_is_layout_compatible │ │ │ │ │ +Definition at line _1_0_3_5 of file _v_e_r_s_i_o_n_._h. │ │ │ │ │ +********** _?◆_? ____gglliibbccxxxx__iiss__nnootthhrrooww__ccoonnvveerrttiibbllee ********** │ │ │ │ │ +#define __glibcxx_is_nothrow_convertible │ │ │ │ │ +Definition at line _1_0_4_5 of file _v_e_r_s_i_o_n_._h. │ │ │ │ │ +********** _?◆_? ____gglliibbccxxxx__iiss__nnuullll__ppooiinntteerr ********** │ │ │ │ │ +#define __glibcxx_is_null_pointer │ │ │ │ │ +Definition at line _8_5 of file _v_e_r_s_i_o_n_._h. │ │ │ │ │ +********** _?◆_? ____gglliibbccxxxx__iiss__ppooiinntteerr__iinntteerrccoonnvveerrttiibbllee ********** │ │ │ │ │ +#define __glibcxx_is_pointer_interconvertible │ │ │ │ │ +Definition at line _1_0_5_5 of file _v_e_r_s_i_o_n_._h. │ │ │ │ │ +********** _?◆_? ____gglliibbccxxxx__iiss__sswwaappppaabbllee ********** │ │ │ │ │ +#define __glibcxx_is_swappable │ │ │ │ │ +Definition at line _1_2_0 of file _v_e_r_s_i_o_n_._h. │ │ │ │ │ +********** _?◆_? ____gglliibbccxxxx__jjtthhrreeaadd ********** │ │ │ │ │ +#define __glibcxx_jthread │ │ │ │ │ +Definition at line _1_4_4_0 of file _v_e_r_s_i_o_n_._h. │ │ │ │ │ +********** _?◆_? ____gglliibbccxxxx__llaattcchh ********** │ │ │ │ │ +#define __glibcxx_latch │ │ │ │ │ +Definition at line _1_4_5_0 of file _v_e_r_s_i_o_n_._h. │ │ │ │ │ +********** _?◆_? ____gglliibbccxxxx__llaauunnddeerr ********** │ │ │ │ │ +#define __glibcxx_launder │ │ │ │ │ +Definition at line _4_8_5 of file _v_e_r_s_i_o_n_._h. │ │ │ │ │ +********** _?◆_? ____gglliibbccxxxx__llccmm ********** │ │ │ │ │ +#define __glibcxx_lcm │ │ │ │ │ +Definition at line _5_5_5 of file _v_e_r_s_i_o_n_._h. │ │ │ │ │ +********** _?◆_? ____gglliibbccxxxx__lliisstt__rreemmoovvee__rreettuurrnn__ttyyppee ********** │ │ │ │ │ +#define __glibcxx_list_remove_return_type │ │ │ │ │ +Definition at line _1_4_6_0 of file _v_e_r_s_i_o_n_._h. │ │ │ │ │ +********** _?◆_? ____gglliibbccxxxx__llooggiiccaall__ttrraaiittss ********** │ │ │ │ │ +#define __glibcxx_logical_traits │ │ │ │ │ +Definition at line _4_9_5 of file _v_e_r_s_i_o_n_._h. │ │ │ │ │ +********** _?◆_? ____gglliibbccxxxx__mmaakkee__ffrroomm__ttuuppllee ********** │ │ │ │ │ +#define __glibcxx_make_from_tuple │ │ │ │ │ +Definition at line _5_0_5 of file _v_e_r_s_i_o_n_._h. │ │ │ │ │ +********** _?◆_? ____gglliibbccxxxx__mmaakkee__oobbjj__uussiinngg__aallllooccaattoorr ********** │ │ │ │ │ +#define __glibcxx_make_obj_using_allocator │ │ │ │ │ +Definition at line _1_0_7_5 of file _v_e_r_s_i_o_n_._h. │ │ │ │ │ +********** _?◆_? ____gglliibbccxxxx__mmaakkee__rreevveerrssee__iitteerraattoorr ********** │ │ │ │ │ +#define __glibcxx_make_reverse_iterator │ │ │ │ │ +Definition at line _2_1_0 of file _v_e_r_s_i_o_n_._h. │ │ │ │ │ +********** _?◆_? ____gglliibbccxxxx__mmaakkee__uunniiqquuee ********** │ │ │ │ │ +#define __glibcxx_make_unique │ │ │ │ │ +Definition at line _3_2_5 of file _v_e_r_s_i_o_n_._h. │ │ │ │ │ +********** _?◆_? ____gglliibbccxxxx__mmaapp__ttrryy__eemmppllaaccee ********** │ │ │ │ │ +#define __glibcxx_map_try_emplace │ │ │ │ │ +Definition at line _7_0_0 of file _v_e_r_s_i_o_n_._h. │ │ │ │ │ +********** _?◆_? ____gglliibbccxxxx__mmaatthh__ccoonnssttaannttss ********** │ │ │ │ │ +#define __glibcxx_math_constants │ │ │ │ │ +Definition at line _1_0_6_5 of file _v_e_r_s_i_o_n_._h. │ │ │ │ │ +********** _?◆_? ____gglliibbccxxxx__mmaatthh__ssppeecc__ffuunnccss ********** │ │ │ │ │ +#define __glibcxx_math_spec_funcs │ │ │ │ │ +Definition at line _1_5_0 of file _v_e_r_s_i_o_n_._h. │ │ │ │ │ +********** _?◆_? ____gglliibbccxxxx__mmaatthh__ssppeecciiaall__ffuunnccttiioonnss ********** │ │ │ │ │ +#define __glibcxx_math_special_functions │ │ │ │ │ +Definition at line _7_1_0 of file _v_e_r_s_i_o_n_._h. │ │ │ │ │ +********** _?◆_? ____gglliibbccxxxx__mmeemmoorryy__rreessoouurrccee ********** │ │ │ │ │ +#define __glibcxx_memory_resource │ │ │ │ │ +Definition at line _7_2_0 of file _v_e_r_s_i_o_n_._h. │ │ │ │ │ +********** _?◆_? ____gglliibbccxxxx__mmoovvee__iitteerraattoorr__ccoonncceepptt ********** │ │ │ │ │ +#define __glibcxx_move_iterator_concept │ │ │ │ │ +Definition at line _1_4_8_0 of file _v_e_r_s_i_o_n_._h. │ │ │ │ │ +********** _?◆_? ____gglliibbccxxxx__nnooddee__eexxttrraacctt ********** │ │ │ │ │ +#define __glibcxx_node_extract │ │ │ │ │ +Definition at line _7_3_5 of file _v_e_r_s_i_o_n_._h. │ │ │ │ │ +********** _?◆_? ____gglliibbccxxxx__nnoonnmmeemmbbeerr__ccoonnttaaiinneerr__aacccceessss ********** │ │ │ │ │ +#define __glibcxx_nonmember_container_access │ │ │ │ │ +Definition at line _6_1_5 of file _v_e_r_s_i_o_n_._h. │ │ │ │ │ +********** _?◆_? ____gglliibbccxxxx__nnoott__ffnn ********** │ │ │ │ │ +#define __glibcxx_not_fn │ │ │ │ │ +Definition at line _5_1_5 of file _v_e_r_s_i_o_n_._h. │ │ │ │ │ +********** _?◆_? ____gglliibbccxxxx__nnuullll__iitteerraattoorrss ********** │ │ │ │ │ +#define __glibcxx_null_iterators │ │ │ │ │ +Definition at line _2_2_0 of file _v_e_r_s_i_o_n_._h. │ │ │ │ │ +********** _?◆_? ____gglliibbccxxxx__ooppttiioonnaall ********** │ │ │ │ │ +#define __glibcxx_optional │ │ │ │ │ +Definition at line _9_4_5 of file _v_e_r_s_i_o_n_._h. │ │ │ │ │ +********** _?◆_? ____gglliibbccxxxx__ppaarraalllleell__aallggoorriitthhmm ********** │ │ │ │ │ +#define __glibcxx_parallel_algorithm │ │ │ │ │ +Definition at line _7_4_5 of file _v_e_r_s_i_o_n_._h. │ │ │ │ │ +********** _?◆_? ____gglliibbccxxxx__ppoollyymmoorrpphhiicc__aallllooccaattoorr ********** │ │ │ │ │ +#define __glibcxx_polymorphic_allocator │ │ │ │ │ +Definition at line _1_4_7_0 of file _v_e_r_s_i_o_n_._h. │ │ │ │ │ +********** _?◆_? ____gglliibbccxxxx__qquuootteedd__ssttrriinngg__iioo ********** │ │ │ │ │ +#define __glibcxx_quoted_string_io │ │ │ │ │ +Definition at line _3_3_5 of file _v_e_r_s_i_o_n_._h. │ │ │ │ │ +********** _?◆_? ____gglliibbccxxxx__rraannggeess ********** │ │ │ │ │ +#define __glibcxx_ranges │ │ │ │ │ +Definition at line _1_2_3_0 of file _v_e_r_s_i_o_n_._h. │ │ │ │ │ +********** _?◆_? ____gglliibbccxxxx__rraaww__mmeemmoorryy__aallggoorriitthhmmss ********** │ │ │ │ │ +#define __glibcxx_raw_memory_algorithms │ │ │ │ │ +Definition at line _5_9_0 of file _v_e_r_s_i_o_n_._h. │ │ │ │ │ +********** _?◆_? ____gglliibbccxxxx__rreemmoovvee__ccvvrreeff ********** │ │ │ │ │ +#define __glibcxx_remove_cvref │ │ │ │ │ +Definition at line _1_0_8_5 of file _v_e_r_s_i_o_n_._h. │ │ │ │ │ +********** _?◆_? ____gglliibbccxxxx__rreessuulltt__ooff__ssffiinnaaee ********** │ │ │ │ │ +#define __glibcxx_result_of_sfinae │ │ │ │ │ +Definition at line _9_5 of file _v_e_r_s_i_o_n_._h. │ │ │ │ │ +********** _?◆_? ____gglliibbccxxxx__rroobbuusstt__nnoonnmmooddiiffyyiinngg__sseeqq__ooppss ********** │ │ │ │ │ +#define __glibcxx_robust_nonmodifying_seq_ops │ │ │ │ │ +Definition at line _2_7_0 of file _v_e_r_s_i_o_n_._h. │ │ │ │ │ +********** _?◆_? ____gglliibbccxxxx__ssaammppllee ********** │ │ │ │ │ +#define __glibcxx_sample │ │ │ │ │ +Definition at line _6_3_5 of file _v_e_r_s_i_o_n_._h. │ │ │ │ │ +********** _?◆_? ____gglliibbccxxxx__ssccooppeedd__lloocckk ********** │ │ │ │ │ +#define __glibcxx_scoped_lock │ │ │ │ │ +Definition at line _7_5_5 of file _v_e_r_s_i_o_n_._h. │ │ │ │ │ +********** _?◆_? ____gglliibbccxxxx__sseemmaapphhoorree ********** │ │ │ │ │ +#define __glibcxx_semaphore │ │ │ │ │ +Definition at line _1_4_9_0 of file _v_e_r_s_i_o_n_._h. │ │ │ │ │ +********** _?◆_? ____gglliibbccxxxx__sshhaarreedd__mmuutteexx ********** │ │ │ │ │ +#define __glibcxx_shared_mutex │ │ │ │ │ +Definition at line _7_6_5 of file _v_e_r_s_i_o_n_._h. │ │ │ │ │ +********** _?◆_? ____gglliibbccxxxx__sshhaarreedd__ppttrr__aarrrraayyss ********** │ │ │ │ │ +#define __glibcxx_shared_ptr_arrays │ │ │ │ │ +Definition at line _1_0_5 of file _v_e_r_s_i_o_n_._h. │ │ │ │ │ +********** _?◆_? ____gglliibbccxxxx__sshhaarreedd__ppttrr__wweeaakk__ttyyppee ********** │ │ │ │ │ +#define __glibcxx_shared_ptr_weak_type │ │ │ │ │ +Definition at line _7_7_5 of file _v_e_r_s_i_o_n_._h. │ │ │ │ │ +********** _?◆_? ____gglliibbccxxxx__sshhaarreedd__ttiimmeedd__mmuutteexx ********** │ │ │ │ │ +#define __glibcxx_shared_timed_mutex │ │ │ │ │ +Definition at line _3_4_5 of file _v_e_r_s_i_o_n_._h. │ │ │ │ │ +********** _?◆_? ____gglliibbccxxxx__sshhiifftt ********** │ │ │ │ │ +#define __glibcxx_shift │ │ │ │ │ +Definition at line _1_2_1_0 of file _v_e_r_s_i_o_n_._h. │ │ │ │ │ +********** _?◆_? ____gglliibbccxxxx__ssmmaarrtt__ppttrr__ffoorr__oovveerrwwrriittee ********** │ │ │ │ │ +#define __glibcxx_smart_ptr_for_overwrite │ │ │ │ │ +Definition at line _1_5_0_0 of file _v_e_r_s_i_o_n_._h. │ │ │ │ │ +********** _?◆_? ____gglliibbccxxxx__ssoouurrccee__llooccaattiioonn ********** │ │ │ │ │ +#define __glibcxx_source_location │ │ │ │ │ +Definition at line _1_0_9_5 of file _v_e_r_s_i_o_n_._h. │ │ │ │ │ +********** _?◆_? ____gglliibbccxxxx__ssppaann ********** │ │ │ │ │ +#define __glibcxx_span │ │ │ │ │ +Definition at line _1_1_1_0 of file _v_e_r_s_i_o_n_._h. │ │ │ │ │ +********** _?◆_? ____gglliibbccxxxx__ssssiizzee ********** │ │ │ │ │ +#define __glibcxx_ssize │ │ │ │ │ +Definition at line _1_1_2_0 of file _v_e_r_s_i_o_n_._h. │ │ │ │ │ +********** _?◆_? ____gglliibbccxxxx__ssttaarrttss__eennddss__wwiitthh ********** │ │ │ │ │ +#define __glibcxx_starts_ends_with │ │ │ │ │ +Definition at line _8_9_0 of file _v_e_r_s_i_o_n_._h. │ │ │ │ │ +********** _?◆_? ____gglliibbccxxxx__ssttrriinngg__uuddllss ********** │ │ │ │ │ +#define __glibcxx_string_udls │ │ │ │ │ +Definition at line _3_5_5 of file _v_e_r_s_i_o_n_._h. │ │ │ │ │ +********** _?◆_? ____gglliibbccxxxx__ssttrriinngg__vviieeww ********** │ │ │ │ │ +#define __glibcxx_string_view │ │ │ │ │ +Definition at line _7_9_0 of file _v_e_r_s_i_o_n_._h. │ │ │ │ │ +********** _?◆_? ____gglliibbccxxxx__tthhrreeee__wwaayy__ccoommppaarriissoonn ********** │ │ │ │ │ +#define __glibcxx_three_way_comparison │ │ │ │ │ +Definition at line _1_1_3_0 of file _v_e_r_s_i_o_n_._h. │ │ │ │ │ +********** _?◆_? ____gglliibbccxxxx__ttoo__aaddddrreessss ********** │ │ │ │ │ +#define __glibcxx_to_address │ │ │ │ │ +Definition at line _1_1_4_0 of file _v_e_r_s_i_o_n_._h. │ │ │ │ │ +********** _?◆_? ____gglliibbccxxxx__ttrraannssffoorrmmaattiioonn__ttrraaiitt__aalliiaasseess ********** │ │ │ │ │ +#define __glibcxx_transformation_trait_aliases │ │ │ │ │ +Definition at line _2_3_0 of file _v_e_r_s_i_o_n_._h. │ │ │ │ │ +********** _?◆_? ____gglliibbccxxxx__ttrraannssppaarreenntt__ooppeerraattoorrss ********** │ │ │ │ │ +#define __glibcxx_transparent_operators │ │ │ │ │ +Definition at line _2_4_0 of file _v_e_r_s_i_o_n_._h. │ │ │ │ │ +********** _?◆_? ____gglliibbccxxxx__ttuuppllee__eelleemmeenntt__tt ********** │ │ │ │ │ +#define __glibcxx_tuple_element_t │ │ │ │ │ +Definition at line _2_5_0 of file _v_e_r_s_i_o_n_._h. │ │ │ │ │ +********** _?◆_? ____gglliibbccxxxx__ttuupplleess__bbyy__ttyyppee ********** │ │ │ │ │ +#define __glibcxx_tuples_by_type │ │ │ │ │ +Definition at line _2_6_0 of file _v_e_r_s_i_o_n_._h. │ │ │ │ │ +********** _?◆_? ____gglliibbccxxxx__ttyyppee__iiddeennttiittyy ********** │ │ │ │ │ +#define __glibcxx_type_identity │ │ │ │ │ +Definition at line _1_1_6_0 of file _v_e_r_s_i_o_n_._h. │ │ │ │ │ +********** _?◆_? ____gglliibbccxxxx__ttyyppee__ttrraaiitt__vvaarriiaabbllee__tteemmppllaatteess ********** │ │ │ │ │ +#define __glibcxx_type_trait_variable_templates │ │ │ │ │ +Definition at line _5_2_5 of file _v_e_r_s_i_o_n_._h. │ │ │ │ │ +********** _?◆_? ____gglliibbccxxxx__uunnccaauugghhtt__eexxcceeppttiioonnss ********** │ │ │ │ │ +#define __glibcxx_uncaught_exceptions │ │ │ │ │ +Definition at line _6_5 of file _v_e_r_s_i_o_n_._h. │ │ │ │ │ +********** _?◆_? ____gglliibbccxxxx__uunnoorrddeerreedd__mmaapp__ttrryy__eemmppllaaccee ********** │ │ │ │ │ +#define __glibcxx_unordered_map_try_emplace │ │ │ │ │ +Definition at line _8_0_0 of file _v_e_r_s_i_o_n_._h. │ │ │ │ │ +********** _?◆_? ____gglliibbccxxxx__uunnwwrraapp__rreeff ********** │ │ │ │ │ +#define __glibcxx_unwrap_ref │ │ │ │ │ +Definition at line _1_1_7_0 of file _v_e_r_s_i_o_n_._h. │ │ │ │ │ +********** _?◆_? ____gglliibbccxxxx__vvaarriiaanntt ********** │ │ │ │ │ +#define __glibcxx_variant │ │ │ │ │ +Definition at line _5_4_5 of file _v_e_r_s_i_o_n_._h. │ │ │ │ │ +********** _?◆_? ____gglliibbccxxxx__vvooiidd__tt ********** │ │ │ │ │ +#define __glibcxx_void_t │ │ │ │ │ +Definition at line _1_3_0 of file _v_e_r_s_i_o_n_._h. │ │ │ │ │ * _b_i_t_s │ │ │ │ │ - * _s_s_t_r_e_a_m_._t_c_c │ │ │ │ │ + * _v_e_r_s_i_o_n_._h │ │ │ │ │ * Generated by _[_d_o_x_y_g_e_n_]1.9.8 │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a00386_source.html │ │ │ │ @@ -1,15 +1,15 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ -libstdc++: sstream.tcc Source File │ │ │ │ +libstdc++: version.h Source File │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ @@ -45,360 +45,2175 @@ │ │ │ │ │ │ │ │
│ │ │ │
│ │ │ │ -
sstream.tcc
│ │ │ │ +
version.h
│ │ │ │
│ │ │ │
│ │ │ │ -Go to the documentation of this file.
1// String based streams -*- C++ -*-
│ │ │ │ +Go to the documentation of this file.
1// Copyright (C) 2023-2025 Free Software Foundation, Inc.
│ │ │ │
2
│ │ │ │ -
3// Copyright (C) 1997-2025 Free Software Foundation, Inc.
│ │ │ │ -
4//
│ │ │ │ -
5// This file is part of the GNU ISO C++ Library. This library is free
│ │ │ │ -
6// software; you can redistribute it and/or modify it under the
│ │ │ │ -
7// terms of the GNU General Public License as published by the
│ │ │ │ -
8// Free Software Foundation; either version 3, or (at your option)
│ │ │ │ -
9// any later version.
│ │ │ │ -
10
│ │ │ │ -
11// This library is distributed in the hope that it will be useful,
│ │ │ │ -
12// but WITHOUT ANY WARRANTY; without even the implied warranty of
│ │ │ │ -
13// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
│ │ │ │ -
14// GNU General Public License for more details.
│ │ │ │ -
15
│ │ │ │ -
16// Under Section 7 of GPL version 3, you are granted additional
│ │ │ │ -
17// permissions described in the GCC Runtime Library Exception, version
│ │ │ │ -
18// 3.1, as published by the Free Software Foundation.
│ │ │ │ -
19
│ │ │ │ -
20// You should have received a copy of the GNU General Public License and
│ │ │ │ -
21// a copy of the GCC Runtime Library Exception along with this program;
│ │ │ │ -
22// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
│ │ │ │ -
23// <http://www.gnu.org/licenses/>.
│ │ │ │ -
24
│ │ │ │ -
25/** @file bits/sstream.tcc
│ │ │ │ -
26 * This is an internal header file, included by other library headers.
│ │ │ │ -
27 * Do not attempt to use it directly. @headername{sstream}
│ │ │ │ -
28 */
│ │ │ │ -
29
│ │ │ │ -
30//
│ │ │ │ -
31// ISO C++ 14882: 27.7 String-based streams
│ │ │ │ -
32//
│ │ │ │ +
3// This file is part of the GNU ISO C++ Library. This library is free
│ │ │ │ +
4// software; you can redistribute it and/or modify it under the
│ │ │ │ +
5// terms of the GNU General Public License as published by the
│ │ │ │ +
6// Free Software Foundation; either version 3, or (at your option)
│ │ │ │ +
7// any later version.
│ │ │ │ +
8
│ │ │ │ +
9// This library is distributed in the hope that it will be useful,
│ │ │ │ +
10// but WITHOUT ANY WARRANTY; without even the implied warranty of
│ │ │ │ +
11// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
│ │ │ │ +
12// GNU General Public License for more details.
│ │ │ │ +
13
│ │ │ │ +
14// Under Section 7 of GPL version 3, you are granted additional
│ │ │ │ +
15// permissions described in the GCC Runtime Library Exception, version
│ │ │ │ +
16// 3.1, as published by the Free Software Foundation.
│ │ │ │ +
17
│ │ │ │ +
18// You should have received a copy of the GNU General Public License and
│ │ │ │ +
19// a copy of the GCC Runtime Library Exception along with this program;
│ │ │ │ +
20// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
│ │ │ │ +
21// <http://www.gnu.org/licenses/>.
│ │ │ │ +
22
│ │ │ │ +
23// DO NOT EDIT THIS FILE (version.h)
│ │ │ │ +
24//
│ │ │ │ +
25// It has been AutoGen-ed
│ │ │ │ +
26// From the definitions version.def
│ │ │ │ +
27// and the template file version.tpl
│ │ │ │ +
28
│ │ │ │ +
29/** @file bits/version.h
│ │ │ │ +
30 * This is an internal header file, included by other library headers.
│ │ │ │ +
31 * Do not attempt to use it directly. @headername{version}
│ │ │ │ +
32 */
│ │ │ │
33
│ │ │ │ -
34#ifndef _SSTREAM_TCC
│ │ │ │ -
35#define _SSTREAM_TCC 1
│ │ │ │ -
36
│ │ │ │ -
37#ifdef _GLIBCXX_SYSHDR
│ │ │ │ -
38#pragma GCC system_header
│ │ │ │ -
39#endif
│ │ │ │ -
40#pragma GCC diagnostic push
│ │ │ │ -
41#pragma GCC diagnostic ignored "-Wc++11-extensions" // extern template
│ │ │ │ -
42
│ │ │ │ -
43namespace std _GLIBCXX_VISIBILITY(default)
│ │ │ │ -
44{
│ │ │ │ -
45_GLIBCXX_BEGIN_NAMESPACE_VERSION
│ │ │ │ +
34// Usage guide:
│ │ │ │ +
35//
│ │ │ │ +
36// In your usual header, do something like:
│ │ │ │ +
37//
│ │ │ │ +
38// #define __glibcxx_want_ranges
│ │ │ │ +
39// #define __glibcxx_want_concepts
│ │ │ │ +
40// #include <bits/version.h>
│ │ │ │ +
41//
│ │ │ │ +
42// This will generate the FTMs you named, and let you use them in your code as
│ │ │ │ +
43// if it was user code. All macros are also exposed under __glibcxx_NAME even
│ │ │ │ +
44// if unwanted, to permit bits and other FTMs to depend on them for condtional
│ │ │ │ +
45// computation without exposing extra FTMs to user code.
│ │ │ │
46
│ │ │ │ -
47 template <class _CharT, class _Traits, class _Alloc>
│ │ │ │ -
48 typename basic_stringbuf<_CharT, _Traits, _Alloc>::int_type
│ │ │ │ -
│ │ │ │ - │ │ │ │ -
50 pbackfail(int_type __c)
│ │ │ │ -
51 {
│ │ │ │ -
52 int_type __ret = traits_type::eof();
│ │ │ │ -
53 if (this->eback() < this->gptr())
│ │ │ │ -
54 {
│ │ │ │ -
55 // Try to put back __c into input sequence in one of three ways.
│ │ │ │ -
56 // Order these tests done in is unspecified by the standard.
│ │ │ │ -
57 const bool __testeof = traits_type::eq_int_type(__c, __ret);
│ │ │ │ -
58 if (!__testeof)
│ │ │ │ -
59 {
│ │ │ │ -
60 const bool __testeq = traits_type::eq(traits_type::
│ │ │ │ -
61 to_char_type(__c),
│ │ │ │ -
62 this->gptr()[-1]);
│ │ │ │ -
63 const bool __testout = this->_M_mode & ios_base::out;
│ │ │ │ -
64 if (__testeq || __testout)
│ │ │ │ -
65 {
│ │ │ │ -
66 this->gbump(-1);
│ │ │ │ -
67 if (!__testeq)
│ │ │ │ -
68 *this->gptr() = traits_type::to_char_type(__c);
│ │ │ │ -
69 __ret = __c;
│ │ │ │ -
70 }
│ │ │ │ -
71 }
│ │ │ │ -
72 else
│ │ │ │ -
73 {
│ │ │ │ -
74 this->gbump(-1);
│ │ │ │ -
75 __ret = traits_type::not_eof(__c);
│ │ │ │ -
76 }
│ │ │ │ -
77 }
│ │ │ │ -
78 return __ret;
│ │ │ │ -
79 }
│ │ │ │ -
│ │ │ │ -
80
│ │ │ │ -
81 template <class _CharT, class _Traits, class _Alloc>
│ │ │ │ -
82 typename basic_stringbuf<_CharT, _Traits, _Alloc>::int_type
│ │ │ │ -
│ │ │ │ - │ │ │ │ -
84 overflow(int_type __c)
│ │ │ │ -
85 {
│ │ │ │ -
86 const bool __testout = this->_M_mode & ios_base::out;
│ │ │ │ -
87 if (__builtin_expect(!__testout, false))
│ │ │ │ -
88 return traits_type::eof();
│ │ │ │ -
89
│ │ │ │ -
90 const bool __testeof = traits_type::eq_int_type(__c, traits_type::eof());
│ │ │ │ -
91 if (__builtin_expect(__testeof, false))
│ │ │ │ -
92 return traits_type::not_eof(__c);
│ │ │ │ -
93
│ │ │ │ -
94 const __size_type __capacity = _M_string.capacity();
│ │ │ │ -
95
│ │ │ │ -
96#if _GLIBCXX_USE_CXX11_ABI
│ │ │ │ -
97 if (size_t(this->epptr() - this->pbase()) < __capacity)
│ │ │ │ -
98 {
│ │ │ │ -
99 // There is additional capacity in _M_string that can be used.
│ │ │ │ -
100 char_type* __base = const_cast<char_type*>(_M_string.data());
│ │ │ │ -
101 _M_pbump(__base, __base + __capacity, this->pptr() - this->pbase());
│ │ │ │ -
102 if (_M_mode & ios_base::in)
│ │ │ │ -
103 {
│ │ │ │ -
104 const __size_type __nget = this->gptr() - this->eback();
│ │ │ │ -
105 const __size_type __eget = this->egptr() - this->eback();
│ │ │ │ -
106 this->setg(__base, __base + __nget, __base + __eget + 1);
│ │ │ │ -
107 }
│ │ │ │ -
108 *this->pptr() = traits_type::to_char_type(__c);
│ │ │ │ -
109 this->pbump(1);
│ │ │ │ -
110 return __c;
│ │ │ │ -
111 }
│ │ │ │ -
112#endif
│ │ │ │ -
113
│ │ │ │ -
114 const __size_type __max_size = _M_string.max_size();
│ │ │ │ -
115 const bool __testput = this->pptr() < this->epptr();
│ │ │ │ -
116 if (__builtin_expect(!__testput && __capacity == __max_size, false))
│ │ │ │ -
117 return traits_type::eof();
│ │ │ │ -
118
│ │ │ │ -
119 // Try to append __c into output sequence in one of two ways.
│ │ │ │ -
120 // Order these tests done in is unspecified by the standard.
│ │ │ │ -
121 const char_type __conv = traits_type::to_char_type(__c);
│ │ │ │ -
122 if (!__testput)
│ │ │ │ -
123 {
│ │ │ │ -
124 // NB: Start ostringstream buffers at 512 chars. This is an
│ │ │ │ -
125 // experimental value (pronounced "arbitrary" in some of the
│ │ │ │ -
126 // hipper English-speaking countries), and can be changed to
│ │ │ │ -
127 // suit particular needs.
│ │ │ │ -
128 //
│ │ │ │ -
129 // _GLIBCXX_RESOLVE_LIB_DEFECTS
│ │ │ │ -
130 // 169. Bad efficiency of overflow() mandated
│ │ │ │ -
131 // 432. stringbuf::overflow() makes only one write position
│ │ │ │ -
132 // available
│ │ │ │ -
133 const __size_type __opt_len = std::max(__size_type(2 * __capacity),
│ │ │ │ -
134 __size_type(512));
│ │ │ │ -
135 const __size_type __len = std::min(__opt_len, __max_size);
│ │ │ │ -
136 __string_type __tmp(_M_string.get_allocator());
│ │ │ │ -
137 __tmp.reserve(__len);
│ │ │ │ -
138 if (this->pbase())
│ │ │ │ -
139 __tmp.assign(this->pbase(), this->epptr() - this->pbase());
│ │ │ │ -
140 __tmp.push_back(__conv);
│ │ │ │ -
141 _M_string.swap(__tmp);
│ │ │ │ -
142 _M_sync(const_cast<char_type*>(_M_string.data()),
│ │ │ │ -
143 this->gptr() - this->eback(), this->pptr() - this->pbase());
│ │ │ │ -
144 }
│ │ │ │ -
145 else
│ │ │ │ -
146 *this->pptr() = __conv;
│ │ │ │ -
147 this->pbump(1);
│ │ │ │ -
148 return __c;
│ │ │ │ -
149 }
│ │ │ │ -
│ │ │ │ -
150
│ │ │ │ -
151 template <class _CharT, class _Traits, class _Alloc>
│ │ │ │ -
152 typename basic_stringbuf<_CharT, _Traits, _Alloc>::int_type
│ │ │ │ -
│ │ │ │ - │ │ │ │ - │ │ │ │ -
155 {
│ │ │ │ -
156 int_type __ret = traits_type::eof();
│ │ │ │ -
157 const bool __testin = this->_M_mode & ios_base::in;
│ │ │ │ -
158 if (__testin)
│ │ │ │ -
159 {
│ │ │ │ -
160 // Update egptr() to match the actual string end.
│ │ │ │ -
161 _M_update_egptr();
│ │ │ │ -
162
│ │ │ │ -
163 if (this->gptr() < this->egptr())
│ │ │ │ -
164 __ret = traits_type::to_int_type(*this->gptr());
│ │ │ │ -
165 }
│ │ │ │ -
166 return __ret;
│ │ │ │ -
167 }
│ │ │ │ -
│ │ │ │ -
168
│ │ │ │ -
169 template <class _CharT, class _Traits, class _Alloc>
│ │ │ │ -
170 typename basic_stringbuf<_CharT, _Traits, _Alloc>::pos_type
│ │ │ │ -
│ │ │ │ - │ │ │ │ -
172 seekoff(off_type __off, ios_base::seekdir __way, ios_base::openmode __mode)
│ │ │ │ -
173 {
│ │ │ │ -
174 pos_type __ret = pos_type(off_type(-1));
│ │ │ │ -
175 bool __testin = (ios_base::in & this->_M_mode & __mode) != 0;
│ │ │ │ -
176 bool __testout = (ios_base::out & this->_M_mode & __mode) != 0;
│ │ │ │ -
177 const bool __testboth = __testin && __testout && __way != ios_base::cur;
│ │ │ │ -
178 __testin &= !(__mode & ios_base::out);
│ │ │ │ -
179 __testout &= !(__mode & ios_base::in);
│ │ │ │ -
180
│ │ │ │ -
181 // _GLIBCXX_RESOLVE_LIB_DEFECTS
│ │ │ │ -
182 // 453. basic_stringbuf::seekoff need not always fail for an empty stream.
│ │ │ │ -
183 const char_type* __beg = __testin ? this->eback() : this->pbase();
│ │ │ │ -
184 if ((__beg || !__off) && (__testin || __testout || __testboth))
│ │ │ │ -
185 {
│ │ │ │ -
186 _M_update_egptr();
│ │ │ │ +
47#ifdef _GLIBCXX_SYSHDR
│ │ │ │ +
48#pragma GCC system_header
│ │ │ │ +
49#endif
│ │ │ │ +
50
│ │ │ │ +
51#include <bits/c++config.h>
│ │ │ │ +
52
│ │ │ │ +
53#if !defined(__cpp_lib_incomplete_container_elements)
│ │ │ │ +
54# if _GLIBCXX_HOSTED
│ │ │ │ +
55# define __glibcxx_incomplete_container_elements 201505L
│ │ │ │ +
56# if defined(__glibcxx_want_all) || defined(__glibcxx_want_incomplete_container_elements)
│ │ │ │ +
57# define __cpp_lib_incomplete_container_elements 201505L
│ │ │ │ +
58# endif
│ │ │ │ +
59# endif
│ │ │ │ +
60#endif /* !defined(__cpp_lib_incomplete_container_elements) && defined(__glibcxx_want_incomplete_container_elements) */
│ │ │ │ +
61#undef __glibcxx_want_incomplete_container_elements
│ │ │ │ +
62
│ │ │ │ +
63#if !defined(__cpp_lib_uncaught_exceptions)
│ │ │ │ +
64# if ((defined(__STRICT_ANSI__) && __cplusplus >= 201703L) || (!defined(__STRICT_ANSI__) && __cplusplus >= 199711L))
│ │ │ │ +
65# define __glibcxx_uncaught_exceptions 201411L
│ │ │ │ +
66# if defined(__glibcxx_want_all) || defined(__glibcxx_want_uncaught_exceptions)
│ │ │ │ +
67# define __cpp_lib_uncaught_exceptions 201411L
│ │ │ │ +
68# endif
│ │ │ │ +
69# endif
│ │ │ │ +
70#endif /* !defined(__cpp_lib_uncaught_exceptions) && defined(__glibcxx_want_uncaught_exceptions) */
│ │ │ │ +
71#undef __glibcxx_want_uncaught_exceptions
│ │ │ │ +
72
│ │ │ │ +
73#if !defined(__cpp_lib_allocator_traits_is_always_equal)
│ │ │ │ +
74# if (__cplusplus >= 201103L)
│ │ │ │ +
75# define __glibcxx_allocator_traits_is_always_equal 201411L
│ │ │ │ +
76# if defined(__glibcxx_want_all) || defined(__glibcxx_want_allocator_traits_is_always_equal)
│ │ │ │ +
77# define __cpp_lib_allocator_traits_is_always_equal 201411L
│ │ │ │ +
78# endif
│ │ │ │ +
79# endif
│ │ │ │ +
80#endif /* !defined(__cpp_lib_allocator_traits_is_always_equal) && defined(__glibcxx_want_allocator_traits_is_always_equal) */
│ │ │ │ +
81#undef __glibcxx_want_allocator_traits_is_always_equal
│ │ │ │ +
82
│ │ │ │ +
83#if !defined(__cpp_lib_is_null_pointer)
│ │ │ │ +
84# if (__cplusplus >= 201103L)
│ │ │ │ +
85# define __glibcxx_is_null_pointer 201309L
│ │ │ │ +
86# if defined(__glibcxx_want_all) || defined(__glibcxx_want_is_null_pointer)
│ │ │ │ +
87# define __cpp_lib_is_null_pointer 201309L
│ │ │ │ +
88# endif
│ │ │ │ +
89# endif
│ │ │ │ +
90#endif /* !defined(__cpp_lib_is_null_pointer) && defined(__glibcxx_want_is_null_pointer) */
│ │ │ │ +
91#undef __glibcxx_want_is_null_pointer
│ │ │ │ +
92
│ │ │ │ +
93#if !defined(__cpp_lib_result_of_sfinae)
│ │ │ │ +
94# if (__cplusplus >= 201103L)
│ │ │ │ +
95# define __glibcxx_result_of_sfinae 201210L
│ │ │ │ +
96# if defined(__glibcxx_want_all) || defined(__glibcxx_want_result_of_sfinae)
│ │ │ │ +
97# define __cpp_lib_result_of_sfinae 201210L
│ │ │ │ +
98# endif
│ │ │ │ +
99# endif
│ │ │ │ +
100#endif /* !defined(__cpp_lib_result_of_sfinae) && defined(__glibcxx_want_result_of_sfinae) */
│ │ │ │ +
101#undef __glibcxx_want_result_of_sfinae
│ │ │ │ +
102
│ │ │ │ +
103#if !defined(__cpp_lib_shared_ptr_arrays)
│ │ │ │ +
104# if (__cplusplus >= 202002L) && _GLIBCXX_HOSTED
│ │ │ │ +
105# define __glibcxx_shared_ptr_arrays 201707L
│ │ │ │ +
106# if defined(__glibcxx_want_all) || defined(__glibcxx_want_shared_ptr_arrays)
│ │ │ │ +
107# define __cpp_lib_shared_ptr_arrays 201707L
│ │ │ │ +
108# endif
│ │ │ │ +
109# elif (__cplusplus >= 201103L) && _GLIBCXX_HOSTED
│ │ │ │ +
110# define __glibcxx_shared_ptr_arrays 201611L
│ │ │ │ +
111# if defined(__glibcxx_want_all) || defined(__glibcxx_want_shared_ptr_arrays)
│ │ │ │ +
112# define __cpp_lib_shared_ptr_arrays 201611L
│ │ │ │ +
113# endif
│ │ │ │ +
114# endif
│ │ │ │ +
115#endif /* !defined(__cpp_lib_shared_ptr_arrays) && defined(__glibcxx_want_shared_ptr_arrays) */
│ │ │ │ +
116#undef __glibcxx_want_shared_ptr_arrays
│ │ │ │ +
117
│ │ │ │ +
118#if !defined(__cpp_lib_is_swappable)
│ │ │ │ +
119# if ((defined(__STRICT_ANSI__) && __cplusplus >= 201703L) || (!defined(__STRICT_ANSI__) && __cplusplus >= 201103L))
│ │ │ │ +
120# define __glibcxx_is_swappable 201603L
│ │ │ │ +
121# if defined(__glibcxx_want_all) || defined(__glibcxx_want_is_swappable)
│ │ │ │ +
122# define __cpp_lib_is_swappable 201603L
│ │ │ │ +
123# endif
│ │ │ │ +
124# endif
│ │ │ │ +
125#endif /* !defined(__cpp_lib_is_swappable) && defined(__glibcxx_want_is_swappable) */
│ │ │ │ +
126#undef __glibcxx_want_is_swappable
│ │ │ │ +
127
│ │ │ │ +
128#if !defined(__cpp_lib_void_t)
│ │ │ │ +
129# if ((defined(__STRICT_ANSI__) && __cplusplus >= 201703L) || (!defined(__STRICT_ANSI__) && __cplusplus >= 201103L))
│ │ │ │ +
130# define __glibcxx_void_t 201411L
│ │ │ │ +
131# if defined(__glibcxx_want_all) || defined(__glibcxx_want_void_t)
│ │ │ │ +
132# define __cpp_lib_void_t 201411L
│ │ │ │ +
133# endif
│ │ │ │ +
134# endif
│ │ │ │ +
135#endif /* !defined(__cpp_lib_void_t) && defined(__glibcxx_want_void_t) */
│ │ │ │ +
136#undef __glibcxx_want_void_t
│ │ │ │ +
137
│ │ │ │ +
138#if !defined(__cpp_lib_enable_shared_from_this)
│ │ │ │ +
139# if ((defined(__STRICT_ANSI__) && __cplusplus >= 201703L) || (!defined(__STRICT_ANSI__) && __cplusplus >= 201103L)) && _GLIBCXX_HOSTED
│ │ │ │ +
140# define __glibcxx_enable_shared_from_this 201603L
│ │ │ │ +
141# if defined(__glibcxx_want_all) || defined(__glibcxx_want_enable_shared_from_this)
│ │ │ │ +
142# define __cpp_lib_enable_shared_from_this 201603L
│ │ │ │ +
143# endif
│ │ │ │ +
144# endif
│ │ │ │ +
145#endif /* !defined(__cpp_lib_enable_shared_from_this) && defined(__glibcxx_want_enable_shared_from_this) */
│ │ │ │ +
146#undef __glibcxx_want_enable_shared_from_this
│ │ │ │ +
147
│ │ │ │ +
148#if !defined(__cpp_lib_math_spec_funcs)
│ │ │ │ +
149# if (__cplusplus >= 201103L)
│ │ │ │ +
150# define __glibcxx_math_spec_funcs 201003L
│ │ │ │ +
151# if defined(__glibcxx_want_all) || defined(__glibcxx_want_math_spec_funcs)
│ │ │ │ +
152# define __STDCPP_MATH_SPEC_FUNCS__ 201003L
│ │ │ │ +
153# endif
│ │ │ │ +
154# endif
│ │ │ │ +
155#endif /* !defined(__cpp_lib_math_spec_funcs) && defined(__glibcxx_want_math_spec_funcs) */
│ │ │ │ +
156#undef __glibcxx_want_math_spec_funcs
│ │ │ │ +
157
│ │ │ │ +
158#if !defined(__cpp_lib_coroutine)
│ │ │ │ +
159# if (__cplusplus >= 201402L) && (__cpp_impl_coroutine)
│ │ │ │ +
160# define __glibcxx_coroutine 201902L
│ │ │ │ +
161# if defined(__glibcxx_want_all) || defined(__glibcxx_want_coroutine)
│ │ │ │ +
162# define __cpp_lib_coroutine 201902L
│ │ │ │ +
163# endif
│ │ │ │ +
164# endif
│ │ │ │ +
165#endif /* !defined(__cpp_lib_coroutine) && defined(__glibcxx_want_coroutine) */
│ │ │ │ +
166#undef __glibcxx_want_coroutine
│ │ │ │ +
167
│ │ │ │ +
168#if !defined(__cpp_lib_exchange_function)
│ │ │ │ +
169# if (__cplusplus >= 201402L)
│ │ │ │ +
170# define __glibcxx_exchange_function 201304L
│ │ │ │ +
171# if defined(__glibcxx_want_all) || defined(__glibcxx_want_exchange_function)
│ │ │ │ +
172# define __cpp_lib_exchange_function 201304L
│ │ │ │ +
173# endif
│ │ │ │ +
174# endif
│ │ │ │ +
175#endif /* !defined(__cpp_lib_exchange_function) && defined(__glibcxx_want_exchange_function) */
│ │ │ │ +
176#undef __glibcxx_want_exchange_function
│ │ │ │ +
177
│ │ │ │ +
178#if !defined(__cpp_lib_integer_sequence)
│ │ │ │ +
179# if (__cplusplus >= 201402L)
│ │ │ │ +
180# define __glibcxx_integer_sequence 201304L
│ │ │ │ +
181# if defined(__glibcxx_want_all) || defined(__glibcxx_want_integer_sequence)
│ │ │ │ +
182# define __cpp_lib_integer_sequence 201304L
│ │ │ │ +
183# endif
│ │ │ │ +
184# endif
│ │ │ │ +
185#endif /* !defined(__cpp_lib_integer_sequence) && defined(__glibcxx_want_integer_sequence) */
│ │ │ │ +
186#undef __glibcxx_want_integer_sequence
│ │ │ │
187
│ │ │ │ -
188 off_type __newoffi = __off;
│ │ │ │ -
189 off_type __newoffo = __newoffi;
│ │ │ │ -
190 if (__way == ios_base::cur)
│ │ │ │ -
191 {
│ │ │ │ -
192 __newoffi += this->gptr() - __beg;
│ │ │ │ -
193 __newoffo += this->pptr() - __beg;
│ │ │ │ -
194 }
│ │ │ │ -
195 else if (__way == ios_base::end)
│ │ │ │ -
196 __newoffo = __newoffi += this->egptr() - __beg;
│ │ │ │ +
188#if !defined(__cpp_lib_integral_constant_callable)
│ │ │ │ +
189# if (__cplusplus >= 201402L)
│ │ │ │ +
190# define __glibcxx_integral_constant_callable 201304L
│ │ │ │ +
191# if defined(__glibcxx_want_all) || defined(__glibcxx_want_integral_constant_callable)
│ │ │ │ +
192# define __cpp_lib_integral_constant_callable 201304L
│ │ │ │ +
193# endif
│ │ │ │ +
194# endif
│ │ │ │ +
195#endif /* !defined(__cpp_lib_integral_constant_callable) && defined(__glibcxx_want_integral_constant_callable) */
│ │ │ │ +
196#undef __glibcxx_want_integral_constant_callable
│ │ │ │
197
│ │ │ │ -
198 if ((__testin || __testboth)
│ │ │ │ -
199 && __newoffi >= 0
│ │ │ │ -
200 && this->egptr() - __beg >= __newoffi)
│ │ │ │ -
201 {
│ │ │ │ -
202 this->setg(this->eback(), this->eback() + __newoffi,
│ │ │ │ -
203 this->egptr());
│ │ │ │ -
204 __ret = pos_type(__newoffi);
│ │ │ │ -
205 }
│ │ │ │ -
206 if ((__testout || __testboth)
│ │ │ │ -
207 && __newoffo >= 0
│ │ │ │ -
208 && this->egptr() - __beg >= __newoffo)
│ │ │ │ -
209 {
│ │ │ │ -
210 _M_pbump(this->pbase(), this->epptr(), __newoffo);
│ │ │ │ -
211 __ret = pos_type(__newoffo);
│ │ │ │ -
212 }
│ │ │ │ -
213 }
│ │ │ │ -
214 return __ret;
│ │ │ │ -
215 }
│ │ │ │ -
│ │ │ │ -
216
│ │ │ │ -
217 template <class _CharT, class _Traits, class _Alloc>
│ │ │ │ -
218 typename basic_stringbuf<_CharT, _Traits, _Alloc>::pos_type
│ │ │ │ -
│ │ │ │ - │ │ │ │ -
220 seekpos(pos_type __sp, ios_base::openmode __mode)
│ │ │ │ -
221 {
│ │ │ │ -
222 pos_type __ret = pos_type(off_type(-1));
│ │ │ │ -
223 const bool __testin = (ios_base::in & this->_M_mode & __mode) != 0;
│ │ │ │ -
224 const bool __testout = (ios_base::out & this->_M_mode & __mode) != 0;
│ │ │ │ -
225
│ │ │ │ -
226 const char_type* __beg = __testin ? this->eback() : this->pbase();
│ │ │ │ -
227 if ((__beg || !off_type(__sp)) && (__testin || __testout))
│ │ │ │ -
228 {
│ │ │ │ -
229 _M_update_egptr();
│ │ │ │ -
230
│ │ │ │ -
231 const off_type __pos(__sp);
│ │ │ │ -
232 const bool __testpos = (0 <= __pos
│ │ │ │ -
233 && __pos <= this->egptr() - __beg);
│ │ │ │ -
234 if (__testpos)
│ │ │ │ -
235 {
│ │ │ │ -
236 if (__testin)
│ │ │ │ -
237 this->setg(this->eback(), this->eback() + __pos,
│ │ │ │ -
238 this->egptr());
│ │ │ │ -
239 if (__testout)
│ │ │ │ -
240 _M_pbump(this->pbase(), this->epptr(), __pos);
│ │ │ │ -
241 __ret = __sp;
│ │ │ │ -
242 }
│ │ │ │ -
243 }
│ │ │ │ -
244 return __ret;
│ │ │ │ -
245 }
│ │ │ │ -
│ │ │ │ -
246
│ │ │ │ -
247 template <class _CharT, class _Traits, class _Alloc>
│ │ │ │ -
248 void
│ │ │ │ - │ │ │ │ -
250 _M_sync(char_type* __base, __size_type __i, __size_type __o)
│ │ │ │ -
251 {
│ │ │ │ -
252 const bool __testin = _M_mode & ios_base::in;
│ │ │ │ -
253 const bool __testout = _M_mode & ios_base::out;
│ │ │ │ -
254 char_type* __endg = __base + _M_string.size();
│ │ │ │ -
255 char_type* __endp = __base + _M_string.capacity();
│ │ │ │ -
256
│ │ │ │ -
257 if (__base != _M_string.data())
│ │ │ │ -
258 {
│ │ │ │ -
259 // setbuf: __i == size of buffer area (_M_string.size() == 0).
│ │ │ │ -
260 __endg += __i;
│ │ │ │ -
261 __i = 0;
│ │ │ │ -
262 __endp = __endg;
│ │ │ │ -
263 }
│ │ │ │ -
264
│ │ │ │ -
265 if (__testin)
│ │ │ │ -
266 this->setg(__base, __base + __i, __endg);
│ │ │ │ -
267 if (__testout)
│ │ │ │ -
268 {
│ │ │ │ -
269 _M_pbump(__base, __endp, __o);
│ │ │ │ -
270 // egptr() always tracks the string end. When !__testin,
│ │ │ │ -
271 // for the correct functioning of the streambuf inlines
│ │ │ │ -
272 // the other get area pointers are identical.
│ │ │ │ -
273 if (!__testin)
│ │ │ │ -
274 this->setg(__endg, __endg, __endg);
│ │ │ │ -
275 }
│ │ │ │ -
276 }
│ │ │ │ +
198#if !defined(__cpp_lib_is_final)
│ │ │ │ +
199# if (__cplusplus >= 201402L)
│ │ │ │ +
200# define __glibcxx_is_final 201402L
│ │ │ │ +
201# if defined(__glibcxx_want_all) || defined(__glibcxx_want_is_final)
│ │ │ │ +
202# define __cpp_lib_is_final 201402L
│ │ │ │ +
203# endif
│ │ │ │ +
204# endif
│ │ │ │ +
205#endif /* !defined(__cpp_lib_is_final) && defined(__glibcxx_want_is_final) */
│ │ │ │ +
206#undef __glibcxx_want_is_final
│ │ │ │ +
207
│ │ │ │ +
208#if !defined(__cpp_lib_make_reverse_iterator)
│ │ │ │ +
209# if (__cplusplus >= 201402L)
│ │ │ │ +
210# define __glibcxx_make_reverse_iterator 201402L
│ │ │ │ +
211# if defined(__glibcxx_want_all) || defined(__glibcxx_want_make_reverse_iterator)
│ │ │ │ +
212# define __cpp_lib_make_reverse_iterator 201402L
│ │ │ │ +
213# endif
│ │ │ │ +
214# endif
│ │ │ │ +
215#endif /* !defined(__cpp_lib_make_reverse_iterator) && defined(__glibcxx_want_make_reverse_iterator) */
│ │ │ │ +
216#undef __glibcxx_want_make_reverse_iterator
│ │ │ │ +
217
│ │ │ │ +
218#if !defined(__cpp_lib_null_iterators)
│ │ │ │ +
219# if (__cplusplus >= 201402L)
│ │ │ │ +
220# define __glibcxx_null_iterators 201304L
│ │ │ │ +
221# if defined(__glibcxx_want_all) || defined(__glibcxx_want_null_iterators)
│ │ │ │ +
222# define __cpp_lib_null_iterators 201304L
│ │ │ │ +
223# endif
│ │ │ │ +
224# endif
│ │ │ │ +
225#endif /* !defined(__cpp_lib_null_iterators) && defined(__glibcxx_want_null_iterators) */
│ │ │ │ +
226#undef __glibcxx_want_null_iterators
│ │ │ │ +
227
│ │ │ │ +
228#if !defined(__cpp_lib_transformation_trait_aliases)
│ │ │ │ +
229# if (__cplusplus >= 201402L)
│ │ │ │ +
230# define __glibcxx_transformation_trait_aliases 201304L
│ │ │ │ +
231# if defined(__glibcxx_want_all) || defined(__glibcxx_want_transformation_trait_aliases)
│ │ │ │ +
232# define __cpp_lib_transformation_trait_aliases 201304L
│ │ │ │ +
233# endif
│ │ │ │ +
234# endif
│ │ │ │ +
235#endif /* !defined(__cpp_lib_transformation_trait_aliases) && defined(__glibcxx_want_transformation_trait_aliases) */
│ │ │ │ +
236#undef __glibcxx_want_transformation_trait_aliases
│ │ │ │ +
237
│ │ │ │ +
238#if !defined(__cpp_lib_transparent_operators)
│ │ │ │ +
239# if (__cplusplus >= 201402L)
│ │ │ │ +
240# define __glibcxx_transparent_operators 201510L
│ │ │ │ +
241# if defined(__glibcxx_want_all) || defined(__glibcxx_want_transparent_operators)
│ │ │ │ +
242# define __cpp_lib_transparent_operators 201510L
│ │ │ │ +
243# endif
│ │ │ │ +
244# endif
│ │ │ │ +
245#endif /* !defined(__cpp_lib_transparent_operators) && defined(__glibcxx_want_transparent_operators) */
│ │ │ │ +
246#undef __glibcxx_want_transparent_operators
│ │ │ │ +
247
│ │ │ │ +
248#if !defined(__cpp_lib_tuple_element_t)
│ │ │ │ +
249# if (__cplusplus >= 201402L)
│ │ │ │ +
250# define __glibcxx_tuple_element_t 201402L
│ │ │ │ +
251# if defined(__glibcxx_want_all) || defined(__glibcxx_want_tuple_element_t)
│ │ │ │ +
252# define __cpp_lib_tuple_element_t 201402L
│ │ │ │ +
253# endif
│ │ │ │ +
254# endif
│ │ │ │ +
255#endif /* !defined(__cpp_lib_tuple_element_t) && defined(__glibcxx_want_tuple_element_t) */
│ │ │ │ +
256#undef __glibcxx_want_tuple_element_t
│ │ │ │ +
257
│ │ │ │ +
258#if !defined(__cpp_lib_tuples_by_type)
│ │ │ │ +
259# if (__cplusplus >= 201402L)
│ │ │ │ +
260# define __glibcxx_tuples_by_type 201304L
│ │ │ │ +
261# if defined(__glibcxx_want_all) || defined(__glibcxx_want_tuples_by_type)
│ │ │ │ +
262# define __cpp_lib_tuples_by_type 201304L
│ │ │ │ +
263# endif
│ │ │ │ +
264# endif
│ │ │ │ +
265#endif /* !defined(__cpp_lib_tuples_by_type) && defined(__glibcxx_want_tuples_by_type) */
│ │ │ │ +
266#undef __glibcxx_want_tuples_by_type
│ │ │ │ +
267
│ │ │ │ +
268#if !defined(__cpp_lib_robust_nonmodifying_seq_ops)
│ │ │ │ +
269# if (__cplusplus >= 201402L)
│ │ │ │ +
270# define __glibcxx_robust_nonmodifying_seq_ops 201304L
│ │ │ │ +
271# if defined(__glibcxx_want_all) || defined(__glibcxx_want_robust_nonmodifying_seq_ops)
│ │ │ │ +
272# define __cpp_lib_robust_nonmodifying_seq_ops 201304L
│ │ │ │ +
273# endif
│ │ │ │ +
274# endif
│ │ │ │ +
275#endif /* !defined(__cpp_lib_robust_nonmodifying_seq_ops) && defined(__glibcxx_want_robust_nonmodifying_seq_ops) */
│ │ │ │ +
276#undef __glibcxx_want_robust_nonmodifying_seq_ops
│ │ │ │
277
│ │ │ │ -
278 template <class _CharT, class _Traits, class _Alloc>
│ │ │ │ -
279 void
│ │ │ │ -
280 basic_stringbuf<_CharT, _Traits, _Alloc>::
│ │ │ │ -
281 _M_pbump(char_type* __pbeg, char_type* __pend, off_type __off)
│ │ │ │ -
282 {
│ │ │ │ -
283 this->setp(__pbeg, __pend);
│ │ │ │ -
284 while (__off > __gnu_cxx::__numeric_traits<int>::__max)
│ │ │ │ -
285 {
│ │ │ │ -
286 this->pbump(__gnu_cxx::__numeric_traits<int>::__max);
│ │ │ │ -
287 __off -= __gnu_cxx::__numeric_traits<int>::__max;
│ │ │ │ -
288 }
│ │ │ │ -
289 this->pbump(__off);
│ │ │ │ -
290 }
│ │ │ │ -
291
│ │ │ │ -
292 // Inhibit implicit instantiations for required instantiations,
│ │ │ │ -
293 // which are defined via explicit instantiations elsewhere.
│ │ │ │ -
294#if _GLIBCXX_EXTERN_TEMPLATE
│ │ │ │ -
295 extern template class basic_stringbuf<char>;
│ │ │ │ -
296 extern template class basic_istringstream<char>;
│ │ │ │ -
297 extern template class basic_ostringstream<char>;
│ │ │ │ -
298 extern template class basic_stringstream<char>;
│ │ │ │ -
299
│ │ │ │ -
300#ifdef _GLIBCXX_USE_WCHAR_T
│ │ │ │ -
301 extern template class basic_stringbuf<wchar_t>;
│ │ │ │ -
302 extern template class basic_istringstream<wchar_t>;
│ │ │ │ -
303 extern template class basic_ostringstream<wchar_t>;
│ │ │ │ -
304 extern template class basic_stringstream<wchar_t>;
│ │ │ │ -
305#endif
│ │ │ │ -
306#endif
│ │ │ │ -
307
│ │ │ │ -
308_GLIBCXX_END_NAMESPACE_VERSION
│ │ │ │ -
309} // namespace std
│ │ │ │ -
310
│ │ │ │ -
311#pragma GCC diagnostic pop
│ │ │ │ -
312#endif
│ │ │ │ -
constexpr const _Tp & max(const _Tp &, const _Tp &)
This does what you think it does.
│ │ │ │ -
constexpr const _Tp & min(const _Tp &, const _Tp &)
This does what you think it does.
│ │ │ │ -
ISO C++ entities toplevel namespace is std.
│ │ │ │ -
The actual work of input and output (for std::string).
Definition sstream:82
│ │ │ │ -
virtual int_type underflow()
Fetches more data from the controlled sequence.
Definition sstream.tcc:154
│ │ │ │ -
virtual pos_type seekpos(pos_type __sp, ios_base::openmode __mode=ios_base::in|ios_base::out)
Alters the stream positions.
Definition sstream.tcc:220
│ │ │ │ -
virtual pos_type seekoff(off_type __off, ios_base::seekdir __way, ios_base::openmode __mode=ios_base::in|ios_base::out)
Alters the stream positions.
Definition sstream.tcc:172
│ │ │ │ -
virtual int_type overflow(int_type __c=traits_type::eof())
Consumes data from the buffer; writes to the controlled sequence.
Definition sstream.tcc:84
│ │ │ │ -
virtual int_type pbackfail(int_type __c=traits_type::eof())
Tries to back up the input sequence.
Definition sstream.tcc:50
│ │ │ │ - │ │ │ │ -
void push_back(_CharT __c)
Append a single character.
│ │ │ │ -
void reserve(size_type __res_arg)
Attempt to preallocate enough memory for specified number of characters.
│ │ │ │ -
basic_string & assign(const basic_string &__str)
Set value to contents of another string.
│ │ │ │ -
static const seekdir cur
Request a seek relative to the current position within the sequence.
Definition ios_base.h:529
│ │ │ │ -
static const seekdir end
Request a seek relative to the current end of the sequence.
Definition ios_base.h:532
│ │ │ │ -
static const openmode in
Open for input. Default for ifstream and fstream.
Definition ios_base.h:498
│ │ │ │ -
static const openmode out
Open for output. Default for ofstream and fstream.
Definition ios_base.h:501
│ │ │ │ +
278#if !defined(__cpp_lib_to_chars)
│ │ │ │ +
279# if (__cplusplus > 202302L) && (_GLIBCXX_FLOAT_IS_IEEE_BINARY32 && _GLIBCXX_DOUBLE_IS_IEEE_BINARY64 && __SIZE_WIDTH__ >= 32)
│ │ │ │ +
280# define __glibcxx_to_chars 202306L
│ │ │ │ +
281# if defined(__glibcxx_want_all) || defined(__glibcxx_want_to_chars)
│ │ │ │ +
282# define __cpp_lib_to_chars 202306L
│ │ │ │ +
283# endif
│ │ │ │ +
284# elif (__cplusplus >= 201402L) && (_GLIBCXX_FLOAT_IS_IEEE_BINARY32 && _GLIBCXX_DOUBLE_IS_IEEE_BINARY64 && __SIZE_WIDTH__ >= 32)
│ │ │ │ +
285# define __glibcxx_to_chars 201611L
│ │ │ │ +
286# if defined(__glibcxx_want_all) || defined(__glibcxx_want_to_chars)
│ │ │ │ +
287# define __cpp_lib_to_chars 201611L
│ │ │ │ +
288# endif
│ │ │ │ +
289# endif
│ │ │ │ +
290#endif /* !defined(__cpp_lib_to_chars) && defined(__glibcxx_want_to_chars) */
│ │ │ │ +
291#undef __glibcxx_want_to_chars
│ │ │ │ +
292
│ │ │ │ +
293#if !defined(__cpp_lib_chrono_udls)
│ │ │ │ +
294# if (__cplusplus >= 201402L)
│ │ │ │ +
295# define __glibcxx_chrono_udls 201304L
│ │ │ │ +
296# if defined(__glibcxx_want_all) || defined(__glibcxx_want_chrono_udls)
│ │ │ │ +
297# define __cpp_lib_chrono_udls 201304L
│ │ │ │ +
298# endif
│ │ │ │ +
299# endif
│ │ │ │ +
300#endif /* !defined(__cpp_lib_chrono_udls) && defined(__glibcxx_want_chrono_udls) */
│ │ │ │ +
301#undef __glibcxx_want_chrono_udls
│ │ │ │ +
302
│ │ │ │ +
303#if !defined(__cpp_lib_complex_udls)
│ │ │ │ +
304# if (__cplusplus >= 201402L) && _GLIBCXX_HOSTED
│ │ │ │ +
305# define __glibcxx_complex_udls 201309L
│ │ │ │ +
306# if defined(__glibcxx_want_all) || defined(__glibcxx_want_complex_udls)
│ │ │ │ +
307# define __cpp_lib_complex_udls 201309L
│ │ │ │ +
308# endif
│ │ │ │ +
309# endif
│ │ │ │ +
310#endif /* !defined(__cpp_lib_complex_udls) && defined(__glibcxx_want_complex_udls) */
│ │ │ │ +
311#undef __glibcxx_want_complex_udls
│ │ │ │ +
312
│ │ │ │ +
313#if !defined(__cpp_lib_generic_associative_lookup)
│ │ │ │ +
314# if (__cplusplus >= 201402L) && _GLIBCXX_HOSTED
│ │ │ │ +
315# define __glibcxx_generic_associative_lookup 201304L
│ │ │ │ +
316# if defined(__glibcxx_want_all) || defined(__glibcxx_want_generic_associative_lookup)
│ │ │ │ +
317# define __cpp_lib_generic_associative_lookup 201304L
│ │ │ │ +
318# endif
│ │ │ │ +
319# endif
│ │ │ │ +
320#endif /* !defined(__cpp_lib_generic_associative_lookup) && defined(__glibcxx_want_generic_associative_lookup) */
│ │ │ │ +
321#undef __glibcxx_want_generic_associative_lookup
│ │ │ │ +
322
│ │ │ │ +
323#if !defined(__cpp_lib_make_unique)
│ │ │ │ +
324# if (__cplusplus >= 201402L) && _GLIBCXX_HOSTED
│ │ │ │ +
325# define __glibcxx_make_unique 201304L
│ │ │ │ +
326# if defined(__glibcxx_want_all) || defined(__glibcxx_want_make_unique)
│ │ │ │ +
327# define __cpp_lib_make_unique 201304L
│ │ │ │ +
328# endif
│ │ │ │ +
329# endif
│ │ │ │ +
330#endif /* !defined(__cpp_lib_make_unique) && defined(__glibcxx_want_make_unique) */
│ │ │ │ +
331#undef __glibcxx_want_make_unique
│ │ │ │ +
332
│ │ │ │ +
333#if !defined(__cpp_lib_quoted_string_io)
│ │ │ │ +
334# if (__cplusplus >= 201402L) && _GLIBCXX_HOSTED
│ │ │ │ +
335# define __glibcxx_quoted_string_io 201304L
│ │ │ │ +
336# if defined(__glibcxx_want_all) || defined(__glibcxx_want_quoted_string_io)
│ │ │ │ +
337# define __cpp_lib_quoted_string_io 201304L
│ │ │ │ +
338# endif
│ │ │ │ +
339# endif
│ │ │ │ +
340#endif /* !defined(__cpp_lib_quoted_string_io) && defined(__glibcxx_want_quoted_string_io) */
│ │ │ │ +
341#undef __glibcxx_want_quoted_string_io
│ │ │ │ +
342
│ │ │ │ +
343#if !defined(__cpp_lib_shared_timed_mutex)
│ │ │ │ +
344# if (__cplusplus >= 201402L) && defined(_GLIBCXX_HAS_GTHREADS) && _GLIBCXX_HOSTED
│ │ │ │ +
345# define __glibcxx_shared_timed_mutex 201402L
│ │ │ │ +
346# if defined(__glibcxx_want_all) || defined(__glibcxx_want_shared_timed_mutex)
│ │ │ │ +
347# define __cpp_lib_shared_timed_mutex 201402L
│ │ │ │ +
348# endif
│ │ │ │ +
349# endif
│ │ │ │ +
350#endif /* !defined(__cpp_lib_shared_timed_mutex) && defined(__glibcxx_want_shared_timed_mutex) */
│ │ │ │ +
351#undef __glibcxx_want_shared_timed_mutex
│ │ │ │ +
352
│ │ │ │ +
353#if !defined(__cpp_lib_string_udls)
│ │ │ │ +
354# if (__cplusplus >= 201402L) && _GLIBCXX_HOSTED
│ │ │ │ +
355# define __glibcxx_string_udls 201304L
│ │ │ │ +
356# if defined(__glibcxx_want_all) || defined(__glibcxx_want_string_udls)
│ │ │ │ +
357# define __cpp_lib_string_udls 201304L
│ │ │ │ +
358# endif
│ │ │ │ +
359# endif
│ │ │ │ +
360#endif /* !defined(__cpp_lib_string_udls) && defined(__glibcxx_want_string_udls) */
│ │ │ │ +
361#undef __glibcxx_want_string_udls
│ │ │ │ +
362
│ │ │ │ +
363#if !defined(__cpp_lib_addressof_constexpr)
│ │ │ │ +
364# if (__cplusplus >= 201703L)
│ │ │ │ +
365# define __glibcxx_addressof_constexpr 201603L
│ │ │ │ +
366# if defined(__glibcxx_want_all) || defined(__glibcxx_want_addressof_constexpr)
│ │ │ │ +
367# define __cpp_lib_addressof_constexpr 201603L
│ │ │ │ +
368# endif
│ │ │ │ +
369# endif
│ │ │ │ +
370#endif /* !defined(__cpp_lib_addressof_constexpr) && defined(__glibcxx_want_addressof_constexpr) */
│ │ │ │ +
371#undef __glibcxx_want_addressof_constexpr
│ │ │ │ +
372
│ │ │ │ +
373#if !defined(__cpp_lib_any)
│ │ │ │ +
374# if (__cplusplus >= 201703L)
│ │ │ │ +
375# define __glibcxx_any 201606L
│ │ │ │ +
376# if defined(__glibcxx_want_all) || defined(__glibcxx_want_any)
│ │ │ │ +
377# define __cpp_lib_any 201606L
│ │ │ │ +
378# endif
│ │ │ │ +
379# endif
│ │ │ │ +
380#endif /* !defined(__cpp_lib_any) && defined(__glibcxx_want_any) */
│ │ │ │ +
381#undef __glibcxx_want_any
│ │ │ │ +
382
│ │ │ │ +
383#if !defined(__cpp_lib_apply)
│ │ │ │ +
384# if (__cplusplus >= 201703L)
│ │ │ │ +
385# define __glibcxx_apply 201603L
│ │ │ │ +
386# if defined(__glibcxx_want_all) || defined(__glibcxx_want_apply)
│ │ │ │ +
387# define __cpp_lib_apply 201603L
│ │ │ │ +
388# endif
│ │ │ │ +
389# endif
│ │ │ │ +
390#endif /* !defined(__cpp_lib_apply) && defined(__glibcxx_want_apply) */
│ │ │ │ +
391#undef __glibcxx_want_apply
│ │ │ │ +
392
│ │ │ │ +
393#if !defined(__cpp_lib_as_const)
│ │ │ │ +
394# if (__cplusplus >= 201703L)
│ │ │ │ +
395# define __glibcxx_as_const 201510L
│ │ │ │ +
396# if defined(__glibcxx_want_all) || defined(__glibcxx_want_as_const)
│ │ │ │ +
397# define __cpp_lib_as_const 201510L
│ │ │ │ +
398# endif
│ │ │ │ +
399# endif
│ │ │ │ +
400#endif /* !defined(__cpp_lib_as_const) && defined(__glibcxx_want_as_const) */
│ │ │ │ +
401#undef __glibcxx_want_as_const
│ │ │ │ +
402
│ │ │ │ +
403#if !defined(__cpp_lib_atomic_is_always_lock_free)
│ │ │ │ +
404# if (__cplusplus >= 201703L)
│ │ │ │ +
405# define __glibcxx_atomic_is_always_lock_free 201603L
│ │ │ │ +
406# if defined(__glibcxx_want_all) || defined(__glibcxx_want_atomic_is_always_lock_free)
│ │ │ │ +
407# define __cpp_lib_atomic_is_always_lock_free 201603L
│ │ │ │ +
408# endif
│ │ │ │ +
409# endif
│ │ │ │ +
410#endif /* !defined(__cpp_lib_atomic_is_always_lock_free) && defined(__glibcxx_want_atomic_is_always_lock_free) */
│ │ │ │ +
411#undef __glibcxx_want_atomic_is_always_lock_free
│ │ │ │ +
412
│ │ │ │ +
413#if !defined(__cpp_lib_bool_constant)
│ │ │ │ +
414# if (__cplusplus >= 201703L)
│ │ │ │ +
415# define __glibcxx_bool_constant 201505L
│ │ │ │ +
416# if defined(__glibcxx_want_all) || defined(__glibcxx_want_bool_constant)
│ │ │ │ +
417# define __cpp_lib_bool_constant 201505L
│ │ │ │ +
418# endif
│ │ │ │ +
419# endif
│ │ │ │ +
420#endif /* !defined(__cpp_lib_bool_constant) && defined(__glibcxx_want_bool_constant) */
│ │ │ │ +
421#undef __glibcxx_want_bool_constant
│ │ │ │ +
422
│ │ │ │ +
423#if !defined(__cpp_lib_byte)
│ │ │ │ +
424# if (__cplusplus >= 201703L)
│ │ │ │ +
425# define __glibcxx_byte 201603L
│ │ │ │ +
426# if defined(__glibcxx_want_all) || defined(__glibcxx_want_byte)
│ │ │ │ +
427# define __cpp_lib_byte 201603L
│ │ │ │ +
428# endif
│ │ │ │ +
429# endif
│ │ │ │ +
430#endif /* !defined(__cpp_lib_byte) && defined(__glibcxx_want_byte) */
│ │ │ │ +
431#undef __glibcxx_want_byte
│ │ │ │ +
432
│ │ │ │ +
433#if !defined(__cpp_lib_has_unique_object_representations)
│ │ │ │ +
434# if (__cplusplus >= 201703L) && (defined(_GLIBCXX_HAVE_BUILTIN_HAS_UNIQ_OBJ_REP))
│ │ │ │ +
435# define __glibcxx_has_unique_object_representations 201606L
│ │ │ │ +
436# if defined(__glibcxx_want_all) || defined(__glibcxx_want_has_unique_object_representations)
│ │ │ │ +
437# define __cpp_lib_has_unique_object_representations 201606L
│ │ │ │ +
438# endif
│ │ │ │ +
439# endif
│ │ │ │ +
440#endif /* !defined(__cpp_lib_has_unique_object_representations) && defined(__glibcxx_want_has_unique_object_representations) */
│ │ │ │ +
441#undef __glibcxx_want_has_unique_object_representations
│ │ │ │ +
442
│ │ │ │ +
443#if !defined(__cpp_lib_hardware_interference_size)
│ │ │ │ +
444# if (__cplusplus >= 201703L) && (defined(__GCC_DESTRUCTIVE_SIZE))
│ │ │ │ +
445# define __glibcxx_hardware_interference_size 201703L
│ │ │ │ +
446# if defined(__glibcxx_want_all) || defined(__glibcxx_want_hardware_interference_size)
│ │ │ │ +
447# define __cpp_lib_hardware_interference_size 201703L
│ │ │ │ +
448# endif
│ │ │ │ +
449# endif
│ │ │ │ +
450#endif /* !defined(__cpp_lib_hardware_interference_size) && defined(__glibcxx_want_hardware_interference_size) */
│ │ │ │ +
451#undef __glibcxx_want_hardware_interference_size
│ │ │ │ +
452
│ │ │ │ +
453#if !defined(__cpp_lib_invoke)
│ │ │ │ +
454# if (__cplusplus >= 201703L)
│ │ │ │ +
455# define __glibcxx_invoke 201411L
│ │ │ │ +
456# if defined(__glibcxx_want_all) || defined(__glibcxx_want_invoke)
│ │ │ │ +
457# define __cpp_lib_invoke 201411L
│ │ │ │ +
458# endif
│ │ │ │ +
459# endif
│ │ │ │ +
460#endif /* !defined(__cpp_lib_invoke) && defined(__glibcxx_want_invoke) */
│ │ │ │ +
461#undef __glibcxx_want_invoke
│ │ │ │ +
462
│ │ │ │ +
463#if !defined(__cpp_lib_is_aggregate)
│ │ │ │ +
464# if (__cplusplus >= 201703L) && (defined(_GLIBCXX_HAVE_BUILTIN_IS_AGGREGATE))
│ │ │ │ +
465# define __glibcxx_is_aggregate 201703L
│ │ │ │ +
466# if defined(__glibcxx_want_all) || defined(__glibcxx_want_is_aggregate)
│ │ │ │ +
467# define __cpp_lib_is_aggregate 201703L
│ │ │ │ +
468# endif
│ │ │ │ +
469# endif
│ │ │ │ +
470#endif /* !defined(__cpp_lib_is_aggregate) && defined(__glibcxx_want_is_aggregate) */
│ │ │ │ +
471#undef __glibcxx_want_is_aggregate
│ │ │ │ +
472
│ │ │ │ +
473#if !defined(__cpp_lib_is_invocable)
│ │ │ │ +
474# if (__cplusplus >= 201703L)
│ │ │ │ +
475# define __glibcxx_is_invocable 201703L
│ │ │ │ +
476# if defined(__glibcxx_want_all) || defined(__glibcxx_want_is_invocable)
│ │ │ │ +
477# define __cpp_lib_is_invocable 201703L
│ │ │ │ +
478# endif
│ │ │ │ +
479# endif
│ │ │ │ +
480#endif /* !defined(__cpp_lib_is_invocable) && defined(__glibcxx_want_is_invocable) */
│ │ │ │ +
481#undef __glibcxx_want_is_invocable
│ │ │ │ +
482
│ │ │ │ +
483#if !defined(__cpp_lib_launder)
│ │ │ │ +
484# if (__cplusplus >= 201703L) && (defined(_GLIBCXX_HAVE_BUILTIN_LAUNDER))
│ │ │ │ +
485# define __glibcxx_launder 201606L
│ │ │ │ +
486# if defined(__glibcxx_want_all) || defined(__glibcxx_want_launder)
│ │ │ │ +
487# define __cpp_lib_launder 201606L
│ │ │ │ +
488# endif
│ │ │ │ +
489# endif
│ │ │ │ +
490#endif /* !defined(__cpp_lib_launder) && defined(__glibcxx_want_launder) */
│ │ │ │ +
491#undef __glibcxx_want_launder
│ │ │ │ +
492
│ │ │ │ +
493#if !defined(__cpp_lib_logical_traits)
│ │ │ │ +
494# if (__cplusplus >= 201703L)
│ │ │ │ +
495# define __glibcxx_logical_traits 201510L
│ │ │ │ +
496# if defined(__glibcxx_want_all) || defined(__glibcxx_want_logical_traits)
│ │ │ │ +
497# define __cpp_lib_logical_traits 201510L
│ │ │ │ +
498# endif
│ │ │ │ +
499# endif
│ │ │ │ +
500#endif /* !defined(__cpp_lib_logical_traits) && defined(__glibcxx_want_logical_traits) */
│ │ │ │ +
501#undef __glibcxx_want_logical_traits
│ │ │ │ +
502
│ │ │ │ +
503#if !defined(__cpp_lib_make_from_tuple)
│ │ │ │ +
504# if (__cplusplus >= 201703L)
│ │ │ │ +
505# define __glibcxx_make_from_tuple 201606L
│ │ │ │ +
506# if defined(__glibcxx_want_all) || defined(__glibcxx_want_make_from_tuple)
│ │ │ │ +
507# define __cpp_lib_make_from_tuple 201606L
│ │ │ │ +
508# endif
│ │ │ │ +
509# endif
│ │ │ │ +
510#endif /* !defined(__cpp_lib_make_from_tuple) && defined(__glibcxx_want_make_from_tuple) */
│ │ │ │ +
511#undef __glibcxx_want_make_from_tuple
│ │ │ │ +
512
│ │ │ │ +
513#if !defined(__cpp_lib_not_fn)
│ │ │ │ +
514# if (__cplusplus >= 201703L)
│ │ │ │ +
515# define __glibcxx_not_fn 201603L
│ │ │ │ +
516# if defined(__glibcxx_want_all) || defined(__glibcxx_want_not_fn)
│ │ │ │ +
517# define __cpp_lib_not_fn 201603L
│ │ │ │ +
518# endif
│ │ │ │ +
519# endif
│ │ │ │ +
520#endif /* !defined(__cpp_lib_not_fn) && defined(__glibcxx_want_not_fn) */
│ │ │ │ +
521#undef __glibcxx_want_not_fn
│ │ │ │ +
522
│ │ │ │ +
523#if !defined(__cpp_lib_type_trait_variable_templates)
│ │ │ │ +
524# if (__cplusplus >= 201703L)
│ │ │ │ +
525# define __glibcxx_type_trait_variable_templates 201510L
│ │ │ │ +
526# if defined(__glibcxx_want_all) || defined(__glibcxx_want_type_trait_variable_templates)
│ │ │ │ +
527# define __cpp_lib_type_trait_variable_templates 201510L
│ │ │ │ +
528# endif
│ │ │ │ +
529# endif
│ │ │ │ +
530#endif /* !defined(__cpp_lib_type_trait_variable_templates) && defined(__glibcxx_want_type_trait_variable_templates) */
│ │ │ │ +
531#undef __glibcxx_want_type_trait_variable_templates
│ │ │ │ +
532
│ │ │ │ +
533#if !defined(__cpp_lib_variant)
│ │ │ │ +
534# if (__cplusplus > 202302L) && (__cpp_concepts >= 202002L && __cpp_constexpr >= 201811L && __cpp_explicit_this_parameter)
│ │ │ │ +
535# define __glibcxx_variant 202306L
│ │ │ │ +
536# if defined(__glibcxx_want_all) || defined(__glibcxx_want_variant)
│ │ │ │ +
537# define __cpp_lib_variant 202306L
│ │ │ │ +
538# endif
│ │ │ │ +
539# elif (__cplusplus >= 202002L) && (__cpp_concepts >= 202002L && __cpp_constexpr >= 201811L)
│ │ │ │ +
540# define __glibcxx_variant 202106L
│ │ │ │ +
541# if defined(__glibcxx_want_all) || defined(__glibcxx_want_variant)
│ │ │ │ +
542# define __cpp_lib_variant 202106L
│ │ │ │ +
543# endif
│ │ │ │ +
544# elif (__cplusplus >= 201703L)
│ │ │ │ +
545# define __glibcxx_variant 202102L
│ │ │ │ +
546# if defined(__glibcxx_want_all) || defined(__glibcxx_want_variant)
│ │ │ │ +
547# define __cpp_lib_variant 202102L
│ │ │ │ +
548# endif
│ │ │ │ +
549# endif
│ │ │ │ +
550#endif /* !defined(__cpp_lib_variant) && defined(__glibcxx_want_variant) */
│ │ │ │ +
551#undef __glibcxx_want_variant
│ │ │ │ +
552
│ │ │ │ +
553#if !defined(__cpp_lib_lcm)
│ │ │ │ +
554# if (__cplusplus >= 201703L)
│ │ │ │ +
555# define __glibcxx_lcm 201606L
│ │ │ │ +
556# if defined(__glibcxx_want_all) || defined(__glibcxx_want_lcm)
│ │ │ │ +
557# define __cpp_lib_lcm 201606L
│ │ │ │ +
558# endif
│ │ │ │ +
559# endif
│ │ │ │ +
560#endif /* !defined(__cpp_lib_lcm) && defined(__glibcxx_want_lcm) */
│ │ │ │ +
561#undef __glibcxx_want_lcm
│ │ │ │ +
562
│ │ │ │ +
563#if !defined(__cpp_lib_gcd)
│ │ │ │ +
564# if (__cplusplus >= 201703L)
│ │ │ │ +
565# define __glibcxx_gcd 201606L
│ │ │ │ +
566# if defined(__glibcxx_want_all) || defined(__glibcxx_want_gcd)
│ │ │ │ +
567# define __cpp_lib_gcd 201606L
│ │ │ │ +
568# endif
│ │ │ │ +
569# endif
│ │ │ │ +
570#endif /* !defined(__cpp_lib_gcd) && defined(__glibcxx_want_gcd) */
│ │ │ │ +
571#undef __glibcxx_want_gcd
│ │ │ │ +
572
│ │ │ │ +
573#if !defined(__cpp_lib_gcd_lcm)
│ │ │ │ +
574# if (__cplusplus >= 201703L)
│ │ │ │ +
575# define __glibcxx_gcd_lcm 201606L
│ │ │ │ +
576# if defined(__glibcxx_want_all) || defined(__glibcxx_want_gcd_lcm)
│ │ │ │ +
577# define __cpp_lib_gcd_lcm 201606L
│ │ │ │ +
578# endif
│ │ │ │ +
579# endif
│ │ │ │ +
580#endif /* !defined(__cpp_lib_gcd_lcm) && defined(__glibcxx_want_gcd_lcm) */
│ │ │ │ +
581#undef __glibcxx_want_gcd_lcm
│ │ │ │ +
582
│ │ │ │ +
583#if !defined(__cpp_lib_raw_memory_algorithms)
│ │ │ │ +
584# if (__cplusplus > 202302L) && (__cpp_constexpr >= 202406L)
│ │ │ │ +
585# define __glibcxx_raw_memory_algorithms 202411L
│ │ │ │ +
586# if defined(__glibcxx_want_all) || defined(__glibcxx_want_raw_memory_algorithms)
│ │ │ │ +
587# define __cpp_lib_raw_memory_algorithms 202411L
│ │ │ │ +
588# endif
│ │ │ │ +
589# elif (__cplusplus >= 201703L)
│ │ │ │ +
590# define __glibcxx_raw_memory_algorithms 201606L
│ │ │ │ +
591# if defined(__glibcxx_want_all) || defined(__glibcxx_want_raw_memory_algorithms)
│ │ │ │ +
592# define __cpp_lib_raw_memory_algorithms 201606L
│ │ │ │ +
593# endif
│ │ │ │ +
594# endif
│ │ │ │ +
595#endif /* !defined(__cpp_lib_raw_memory_algorithms) && defined(__glibcxx_want_raw_memory_algorithms) */
│ │ │ │ +
596#undef __glibcxx_want_raw_memory_algorithms
│ │ │ │ +
597
│ │ │ │ +
598#if !defined(__cpp_lib_array_constexpr)
│ │ │ │ +
599# if (__cplusplus >= 202002L)
│ │ │ │ +
600# define __glibcxx_array_constexpr 201811L
│ │ │ │ +
601# if defined(__glibcxx_want_all) || defined(__glibcxx_want_array_constexpr)
│ │ │ │ +
602# define __cpp_lib_array_constexpr 201811L
│ │ │ │ +
603# endif
│ │ │ │ +
604# elif (__cplusplus >= 201703L)
│ │ │ │ +
605# define __glibcxx_array_constexpr 201803L
│ │ │ │ +
606# if defined(__glibcxx_want_all) || defined(__glibcxx_want_array_constexpr)
│ │ │ │ +
607# define __cpp_lib_array_constexpr 201803L
│ │ │ │ +
608# endif
│ │ │ │ +
609# endif
│ │ │ │ +
610#endif /* !defined(__cpp_lib_array_constexpr) && defined(__glibcxx_want_array_constexpr) */
│ │ │ │ +
611#undef __glibcxx_want_array_constexpr
│ │ │ │ +
612
│ │ │ │ +
613#if !defined(__cpp_lib_nonmember_container_access)
│ │ │ │ +
614# if (__cplusplus >= 201703L)
│ │ │ │ +
615# define __glibcxx_nonmember_container_access 201411L
│ │ │ │ +
616# if defined(__glibcxx_want_all) || defined(__glibcxx_want_nonmember_container_access)
│ │ │ │ +
617# define __cpp_lib_nonmember_container_access 201411L
│ │ │ │ +
618# endif
│ │ │ │ +
619# endif
│ │ │ │ +
620#endif /* !defined(__cpp_lib_nonmember_container_access) && defined(__glibcxx_want_nonmember_container_access) */
│ │ │ │ +
621#undef __glibcxx_want_nonmember_container_access
│ │ │ │ +
622
│ │ │ │ +
623#if !defined(__cpp_lib_clamp)
│ │ │ │ +
624# if (__cplusplus >= 201703L)
│ │ │ │ +
625# define __glibcxx_clamp 201603L
│ │ │ │ +
626# if defined(__glibcxx_want_all) || defined(__glibcxx_want_clamp)
│ │ │ │ +
627# define __cpp_lib_clamp 201603L
│ │ │ │ +
628# endif
│ │ │ │ +
629# endif
│ │ │ │ +
630#endif /* !defined(__cpp_lib_clamp) && defined(__glibcxx_want_clamp) */
│ │ │ │ +
631#undef __glibcxx_want_clamp
│ │ │ │ +
632
│ │ │ │ +
633#if !defined(__cpp_lib_sample)
│ │ │ │ +
634# if (__cplusplus >= 201703L)
│ │ │ │ +
635# define __glibcxx_sample 201603L
│ │ │ │ +
636# if defined(__glibcxx_want_all) || defined(__glibcxx_want_sample)
│ │ │ │ +
637# define __cpp_lib_sample 201603L
│ │ │ │ +
638# endif
│ │ │ │ +
639# endif
│ │ │ │ +
640#endif /* !defined(__cpp_lib_sample) && defined(__glibcxx_want_sample) */
│ │ │ │ +
641#undef __glibcxx_want_sample
│ │ │ │ +
642
│ │ │ │ +
643#if !defined(__cpp_lib_boyer_moore_searcher)
│ │ │ │ +
644# if (__cplusplus >= 201703L) && _GLIBCXX_HOSTED
│ │ │ │ +
645# define __glibcxx_boyer_moore_searcher 201603L
│ │ │ │ +
646# if defined(__glibcxx_want_all) || defined(__glibcxx_want_boyer_moore_searcher)
│ │ │ │ +
647# define __cpp_lib_boyer_moore_searcher 201603L
│ │ │ │ +
648# endif
│ │ │ │ +
649# endif
│ │ │ │ +
650#endif /* !defined(__cpp_lib_boyer_moore_searcher) && defined(__glibcxx_want_boyer_moore_searcher) */
│ │ │ │ +
651#undef __glibcxx_want_boyer_moore_searcher
│ │ │ │ +
652
│ │ │ │ +
653#if !defined(__cpp_lib_chrono)
│ │ │ │ +
654# if (__cplusplus >= 202002L) && _GLIBCXX_USE_CXX11_ABI && _GLIBCXX_HOSTED
│ │ │ │ +
655# define __glibcxx_chrono 201907L
│ │ │ │ +
656# if defined(__glibcxx_want_all) || defined(__glibcxx_want_chrono)
│ │ │ │ +
657# define __cpp_lib_chrono 201907L
│ │ │ │ +
658# endif
│ │ │ │ +
659# elif (__cplusplus >= 201703L) && _GLIBCXX_HOSTED
│ │ │ │ +
660# define __glibcxx_chrono 201611L
│ │ │ │ +
661# if defined(__glibcxx_want_all) || defined(__glibcxx_want_chrono)
│ │ │ │ +
662# define __cpp_lib_chrono 201611L
│ │ │ │ +
663# endif
│ │ │ │ +
664# endif
│ │ │ │ +
665#endif /* !defined(__cpp_lib_chrono) && defined(__glibcxx_want_chrono) */
│ │ │ │ +
666#undef __glibcxx_want_chrono
│ │ │ │ +
667
│ │ │ │ +
668#if !defined(__cpp_lib_execution)
│ │ │ │ +
669# if (__cplusplus >= 201703L) && _GLIBCXX_HOSTED
│ │ │ │ +
670# define __glibcxx_execution 201902L
│ │ │ │ +
671# if defined(__glibcxx_want_all) || defined(__glibcxx_want_execution)
│ │ │ │ +
672# define __cpp_lib_execution 201902L
│ │ │ │ +
673# endif
│ │ │ │ +
674# endif
│ │ │ │ +
675#endif /* !defined(__cpp_lib_execution) && defined(__glibcxx_want_execution) */
│ │ │ │ +
676#undef __glibcxx_want_execution
│ │ │ │ +
677
│ │ │ │ +
678#if !defined(__cpp_lib_filesystem)
│ │ │ │ +
679# if (__cplusplus >= 201703L) && _GLIBCXX_HOSTED
│ │ │ │ +
680# define __glibcxx_filesystem 201703L
│ │ │ │ +
681# if defined(__glibcxx_want_all) || defined(__glibcxx_want_filesystem)
│ │ │ │ +
682# define __cpp_lib_filesystem 201703L
│ │ │ │ +
683# endif
│ │ │ │ +
684# endif
│ │ │ │ +
685#endif /* !defined(__cpp_lib_filesystem) && defined(__glibcxx_want_filesystem) */
│ │ │ │ +
686#undef __glibcxx_want_filesystem
│ │ │ │ +
687
│ │ │ │ +
688#if !defined(__cpp_lib_hypot)
│ │ │ │ +
689# if (__cplusplus >= 201703L) && _GLIBCXX_HOSTED
│ │ │ │ +
690# define __glibcxx_hypot 201603L
│ │ │ │ +
691# if defined(__glibcxx_want_all) || defined(__glibcxx_want_hypot)
│ │ │ │ +
692# define __cpp_lib_hypot 201603L
│ │ │ │ +
693# endif
│ │ │ │ +
694# endif
│ │ │ │ +
695#endif /* !defined(__cpp_lib_hypot) && defined(__glibcxx_want_hypot) */
│ │ │ │ +
696#undef __glibcxx_want_hypot
│ │ │ │ +
697
│ │ │ │ +
698#if !defined(__cpp_lib_map_try_emplace)
│ │ │ │ +
699# if (__cplusplus >= 201703L) && _GLIBCXX_HOSTED
│ │ │ │ +
700# define __glibcxx_map_try_emplace 201411L
│ │ │ │ +
701# if defined(__glibcxx_want_all) || defined(__glibcxx_want_map_try_emplace)
│ │ │ │ +
702# define __cpp_lib_map_try_emplace 201411L
│ │ │ │ +
703# endif
│ │ │ │ +
704# endif
│ │ │ │ +
705#endif /* !defined(__cpp_lib_map_try_emplace) && defined(__glibcxx_want_map_try_emplace) */
│ │ │ │ +
706#undef __glibcxx_want_map_try_emplace
│ │ │ │ +
707
│ │ │ │ +
708#if !defined(__cpp_lib_math_special_functions)
│ │ │ │ +
709# if (__cplusplus >= 201703L) && _GLIBCXX_HOSTED
│ │ │ │ +
710# define __glibcxx_math_special_functions 201603L
│ │ │ │ +
711# if defined(__glibcxx_want_all) || defined(__glibcxx_want_math_special_functions)
│ │ │ │ +
712# define __cpp_lib_math_special_functions 201603L
│ │ │ │ +
713# endif
│ │ │ │ +
714# endif
│ │ │ │ +
715#endif /* !defined(__cpp_lib_math_special_functions) && defined(__glibcxx_want_math_special_functions) */
│ │ │ │ +
716#undef __glibcxx_want_math_special_functions
│ │ │ │ +
717
│ │ │ │ +
718#if !defined(__cpp_lib_memory_resource)
│ │ │ │ +
719# if (__cplusplus >= 201703L) && defined(_GLIBCXX_HAS_GTHREADS) && _GLIBCXX_HOSTED
│ │ │ │ +
720# define __glibcxx_memory_resource 201603L
│ │ │ │ +
721# if defined(__glibcxx_want_all) || defined(__glibcxx_want_memory_resource)
│ │ │ │ +
722# define __cpp_lib_memory_resource 201603L
│ │ │ │ +
723# endif
│ │ │ │ +
724# elif (__cplusplus >= 201703L) && !defined(_GLIBCXX_HAS_GTHREADS) && _GLIBCXX_HOSTED
│ │ │ │ +
725# define __glibcxx_memory_resource 1L
│ │ │ │ +
726# if defined(__glibcxx_want_all) || defined(__glibcxx_want_memory_resource)
│ │ │ │ +
727# define __cpp_lib_memory_resource 1L
│ │ │ │ +
728# endif
│ │ │ │ +
729# endif
│ │ │ │ +
730#endif /* !defined(__cpp_lib_memory_resource) && defined(__glibcxx_want_memory_resource) */
│ │ │ │ +
731#undef __glibcxx_want_memory_resource
│ │ │ │ +
732
│ │ │ │ +
733#if !defined(__cpp_lib_node_extract)
│ │ │ │ +
734# if (__cplusplus >= 201703L) && _GLIBCXX_HOSTED
│ │ │ │ +
735# define __glibcxx_node_extract 201606L
│ │ │ │ +
736# if defined(__glibcxx_want_all) || defined(__glibcxx_want_node_extract)
│ │ │ │ +
737# define __cpp_lib_node_extract 201606L
│ │ │ │ +
738# endif
│ │ │ │ +
739# endif
│ │ │ │ +
740#endif /* !defined(__cpp_lib_node_extract) && defined(__glibcxx_want_node_extract) */
│ │ │ │ +
741#undef __glibcxx_want_node_extract
│ │ │ │ +
742
│ │ │ │ +
743#if !defined(__cpp_lib_parallel_algorithm)
│ │ │ │ +
744# if (__cplusplus >= 201703L) && _GLIBCXX_HOSTED
│ │ │ │ +
745# define __glibcxx_parallel_algorithm 201603L
│ │ │ │ +
746# if defined(__glibcxx_want_all) || defined(__glibcxx_want_parallel_algorithm)
│ │ │ │ +
747# define __cpp_lib_parallel_algorithm 201603L
│ │ │ │ +
748# endif
│ │ │ │ +
749# endif
│ │ │ │ +
750#endif /* !defined(__cpp_lib_parallel_algorithm) && defined(__glibcxx_want_parallel_algorithm) */
│ │ │ │ +
751#undef __glibcxx_want_parallel_algorithm
│ │ │ │ +
752
│ │ │ │ +
753#if !defined(__cpp_lib_scoped_lock)
│ │ │ │ +
754# if (__cplusplus >= 201703L) && defined(_GLIBCXX_HAS_GTHREADS) && _GLIBCXX_HOSTED
│ │ │ │ +
755# define __glibcxx_scoped_lock 201703L
│ │ │ │ +
756# if defined(__glibcxx_want_all) || defined(__glibcxx_want_scoped_lock)
│ │ │ │ +
757# define __cpp_lib_scoped_lock 201703L
│ │ │ │ +
758# endif
│ │ │ │ +
759# endif
│ │ │ │ +
760#endif /* !defined(__cpp_lib_scoped_lock) && defined(__glibcxx_want_scoped_lock) */
│ │ │ │ +
761#undef __glibcxx_want_scoped_lock
│ │ │ │ +
762
│ │ │ │ +
763#if !defined(__cpp_lib_shared_mutex)
│ │ │ │ +
764# if (__cplusplus >= 201703L) && defined(_GLIBCXX_HAS_GTHREADS) && _GLIBCXX_HOSTED
│ │ │ │ +
765# define __glibcxx_shared_mutex 201505L
│ │ │ │ +
766# if defined(__glibcxx_want_all) || defined(__glibcxx_want_shared_mutex)
│ │ │ │ +
767# define __cpp_lib_shared_mutex 201505L
│ │ │ │ +
768# endif
│ │ │ │ +
769# endif
│ │ │ │ +
770#endif /* !defined(__cpp_lib_shared_mutex) && defined(__glibcxx_want_shared_mutex) */
│ │ │ │ +
771#undef __glibcxx_want_shared_mutex
│ │ │ │ +
772
│ │ │ │ +
773#if !defined(__cpp_lib_shared_ptr_weak_type)
│ │ │ │ +
774# if (__cplusplus >= 201703L) && _GLIBCXX_HOSTED
│ │ │ │ +
775# define __glibcxx_shared_ptr_weak_type 201606L
│ │ │ │ +
776# if defined(__glibcxx_want_all) || defined(__glibcxx_want_shared_ptr_weak_type)
│ │ │ │ +
777# define __cpp_lib_shared_ptr_weak_type 201606L
│ │ │ │ +
778# endif
│ │ │ │ +
779# endif
│ │ │ │ +
780#endif /* !defined(__cpp_lib_shared_ptr_weak_type) && defined(__glibcxx_want_shared_ptr_weak_type) */
│ │ │ │ +
781#undef __glibcxx_want_shared_ptr_weak_type
│ │ │ │ +
782
│ │ │ │ +
783#if !defined(__cpp_lib_string_view)
│ │ │ │ +
784# if (__cplusplus > 202302L) && _GLIBCXX_HOSTED
│ │ │ │ +
785# define __glibcxx_string_view 202403L
│ │ │ │ +
786# if defined(__glibcxx_want_all) || defined(__glibcxx_want_string_view)
│ │ │ │ +
787# define __cpp_lib_string_view 202403L
│ │ │ │ +
788# endif
│ │ │ │ +
789# elif (__cplusplus >= 201703L) && _GLIBCXX_HOSTED
│ │ │ │ +
790# define __glibcxx_string_view 201803L
│ │ │ │ +
791# if defined(__glibcxx_want_all) || defined(__glibcxx_want_string_view)
│ │ │ │ +
792# define __cpp_lib_string_view 201803L
│ │ │ │ +
793# endif
│ │ │ │ +
794# endif
│ │ │ │ +
795#endif /* !defined(__cpp_lib_string_view) && defined(__glibcxx_want_string_view) */
│ │ │ │ +
796#undef __glibcxx_want_string_view
│ │ │ │ +
797
│ │ │ │ +
798#if !defined(__cpp_lib_unordered_map_try_emplace)
│ │ │ │ +
799# if (__cplusplus >= 201703L) && _GLIBCXX_HOSTED
│ │ │ │ +
800# define __glibcxx_unordered_map_try_emplace 201411L
│ │ │ │ +
801# if defined(__glibcxx_want_all) || defined(__glibcxx_want_unordered_map_try_emplace)
│ │ │ │ +
802# define __cpp_lib_unordered_map_try_emplace 201411L
│ │ │ │ +
803# endif
│ │ │ │ +
804# endif
│ │ │ │ +
805#endif /* !defined(__cpp_lib_unordered_map_try_emplace) && defined(__glibcxx_want_unordered_map_try_emplace) */
│ │ │ │ +
806#undef __glibcxx_want_unordered_map_try_emplace
│ │ │ │ +
807
│ │ │ │ +
808#if !defined(__cpp_lib_assume_aligned)
│ │ │ │ +
809# if (__cplusplus >= 202002L)
│ │ │ │ +
810# define __glibcxx_assume_aligned 201811L
│ │ │ │ +
811# if defined(__glibcxx_want_all) || defined(__glibcxx_want_assume_aligned)
│ │ │ │ +
812# define __cpp_lib_assume_aligned 201811L
│ │ │ │ +
813# endif
│ │ │ │ +
814# endif
│ │ │ │ +
815#endif /* !defined(__cpp_lib_assume_aligned) && defined(__glibcxx_want_assume_aligned) */
│ │ │ │ +
816#undef __glibcxx_want_assume_aligned
│ │ │ │ +
817
│ │ │ │ +
818#if !defined(__cpp_lib_atomic_flag_test)
│ │ │ │ +
819# if (__cplusplus >= 202002L)
│ │ │ │ +
820# define __glibcxx_atomic_flag_test 201907L
│ │ │ │ +
821# if defined(__glibcxx_want_all) || defined(__glibcxx_want_atomic_flag_test)
│ │ │ │ +
822# define __cpp_lib_atomic_flag_test 201907L
│ │ │ │ +
823# endif
│ │ │ │ +
824# endif
│ │ │ │ +
825#endif /* !defined(__cpp_lib_atomic_flag_test) && defined(__glibcxx_want_atomic_flag_test) */
│ │ │ │ +
826#undef __glibcxx_want_atomic_flag_test
│ │ │ │ +
827
│ │ │ │ +
828#if !defined(__cpp_lib_atomic_float)
│ │ │ │ +
829# if (__cplusplus >= 202002L)
│ │ │ │ +
830# define __glibcxx_atomic_float 201711L
│ │ │ │ +
831# if defined(__glibcxx_want_all) || defined(__glibcxx_want_atomic_float)
│ │ │ │ +
832# define __cpp_lib_atomic_float 201711L
│ │ │ │ +
833# endif
│ │ │ │ +
834# endif
│ │ │ │ +
835#endif /* !defined(__cpp_lib_atomic_float) && defined(__glibcxx_want_atomic_float) */
│ │ │ │ +
836#undef __glibcxx_want_atomic_float
│ │ │ │ +
837
│ │ │ │ +
838#if !defined(__cpp_lib_atomic_lock_free_type_aliases)
│ │ │ │ +
839# if (__cplusplus >= 202002L) && ((__GCC_ATOMIC_INT_LOCK_FREE | __GCC_ATOMIC_LONG_LOCK_FREE | __GCC_ATOMIC_CHAR_LOCK_FREE) & 2)
│ │ │ │ +
840# define __glibcxx_atomic_lock_free_type_aliases 201907L
│ │ │ │ +
841# if defined(__glibcxx_want_all) || defined(__glibcxx_want_atomic_lock_free_type_aliases)
│ │ │ │ +
842# define __cpp_lib_atomic_lock_free_type_aliases 201907L
│ │ │ │ +
843# endif
│ │ │ │ +
844# endif
│ │ │ │ +
845#endif /* !defined(__cpp_lib_atomic_lock_free_type_aliases) && defined(__glibcxx_want_atomic_lock_free_type_aliases) */
│ │ │ │ +
846#undef __glibcxx_want_atomic_lock_free_type_aliases
│ │ │ │ +
847
│ │ │ │ +
848#if !defined(__cpp_lib_atomic_ref)
│ │ │ │ +
849# if (__cplusplus >= 202002L)
│ │ │ │ +
850# define __glibcxx_atomic_ref 201806L
│ │ │ │ +
851# if defined(__glibcxx_want_all) || defined(__glibcxx_want_atomic_ref)
│ │ │ │ +
852# define __cpp_lib_atomic_ref 201806L
│ │ │ │ +
853# endif
│ │ │ │ +
854# endif
│ │ │ │ +
855#endif /* !defined(__cpp_lib_atomic_ref) && defined(__glibcxx_want_atomic_ref) */
│ │ │ │ +
856#undef __glibcxx_want_atomic_ref
│ │ │ │ +
857
│ │ │ │ +
858#if !defined(__cpp_lib_atomic_value_initialization)
│ │ │ │ +
859# if (__cplusplus >= 202002L) && (__cpp_concepts >= 201907L)
│ │ │ │ +
860# define __glibcxx_atomic_value_initialization 201911L
│ │ │ │ +
861# if defined(__glibcxx_want_all) || defined(__glibcxx_want_atomic_value_initialization)
│ │ │ │ +
862# define __cpp_lib_atomic_value_initialization 201911L
│ │ │ │ +
863# endif
│ │ │ │ +
864# endif
│ │ │ │ +
865#endif /* !defined(__cpp_lib_atomic_value_initialization) && defined(__glibcxx_want_atomic_value_initialization) */
│ │ │ │ +
866#undef __glibcxx_want_atomic_value_initialization
│ │ │ │ +
867
│ │ │ │ +
868#if !defined(__cpp_lib_bind_front)
│ │ │ │ +
869# if (__cplusplus >= 202002L)
│ │ │ │ +
870# define __glibcxx_bind_front 201907L
│ │ │ │ +
871# if defined(__glibcxx_want_all) || defined(__glibcxx_want_bind_front)
│ │ │ │ +
872# define __cpp_lib_bind_front 201907L
│ │ │ │ +
873# endif
│ │ │ │ +
874# endif
│ │ │ │ +
875#endif /* !defined(__cpp_lib_bind_front) && defined(__glibcxx_want_bind_front) */
│ │ │ │ +
876#undef __glibcxx_want_bind_front
│ │ │ │ +
877
│ │ │ │ +
878#if !defined(__cpp_lib_bind_back)
│ │ │ │ +
879# if (__cplusplus >= 202100L) && (__cpp_explicit_this_parameter)
│ │ │ │ +
880# define __glibcxx_bind_back 202202L
│ │ │ │ +
881# if defined(__glibcxx_want_all) || defined(__glibcxx_want_bind_back)
│ │ │ │ +
882# define __cpp_lib_bind_back 202202L
│ │ │ │ +
883# endif
│ │ │ │ +
884# endif
│ │ │ │ +
885#endif /* !defined(__cpp_lib_bind_back) && defined(__glibcxx_want_bind_back) */
│ │ │ │ +
886#undef __glibcxx_want_bind_back
│ │ │ │ +
887
│ │ │ │ +
888#if !defined(__cpp_lib_starts_ends_with)
│ │ │ │ +
889# if (__cplusplus >= 202002L)
│ │ │ │ +
890# define __glibcxx_starts_ends_with 201711L
│ │ │ │ +
891# if defined(__glibcxx_want_all) || defined(__glibcxx_want_starts_ends_with)
│ │ │ │ +
892# define __cpp_lib_starts_ends_with 201711L
│ │ │ │ +
893# endif
│ │ │ │ +
894# endif
│ │ │ │ +
895#endif /* !defined(__cpp_lib_starts_ends_with) && defined(__glibcxx_want_starts_ends_with) */
│ │ │ │ +
896#undef __glibcxx_want_starts_ends_with
│ │ │ │ +
897
│ │ │ │ +
898#if !defined(__cpp_lib_bit_cast)
│ │ │ │ +
899# if (__cplusplus >= 202002L) && (__has_builtin(__builtin_bit_cast))
│ │ │ │ +
900# define __glibcxx_bit_cast 201806L
│ │ │ │ +
901# if defined(__glibcxx_want_all) || defined(__glibcxx_want_bit_cast)
│ │ │ │ +
902# define __cpp_lib_bit_cast 201806L
│ │ │ │ +
903# endif
│ │ │ │ +
904# endif
│ │ │ │ +
905#endif /* !defined(__cpp_lib_bit_cast) && defined(__glibcxx_want_bit_cast) */
│ │ │ │ +
906#undef __glibcxx_want_bit_cast
│ │ │ │ +
907
│ │ │ │ +
908#if !defined(__cpp_lib_bitops)
│ │ │ │ +
909# if (__cplusplus >= 202002L)
│ │ │ │ +
910# define __glibcxx_bitops 201907L
│ │ │ │ +
911# if defined(__glibcxx_want_all) || defined(__glibcxx_want_bitops)
│ │ │ │ +
912# define __cpp_lib_bitops 201907L
│ │ │ │ +
913# endif
│ │ │ │ +
914# endif
│ │ │ │ +
915#endif /* !defined(__cpp_lib_bitops) && defined(__glibcxx_want_bitops) */
│ │ │ │ +
916#undef __glibcxx_want_bitops
│ │ │ │ +
917
│ │ │ │ +
918#if !defined(__cpp_lib_bounded_array_traits)
│ │ │ │ +
919# if (__cplusplus >= 202002L)
│ │ │ │ +
920# define __glibcxx_bounded_array_traits 201902L
│ │ │ │ +
921# if defined(__glibcxx_want_all) || defined(__glibcxx_want_bounded_array_traits)
│ │ │ │ +
922# define __cpp_lib_bounded_array_traits 201902L
│ │ │ │ +
923# endif
│ │ │ │ +
924# endif
│ │ │ │ +
925#endif /* !defined(__cpp_lib_bounded_array_traits) && defined(__glibcxx_want_bounded_array_traits) */
│ │ │ │ +
926#undef __glibcxx_want_bounded_array_traits
│ │ │ │ +
927
│ │ │ │ +
928#if !defined(__cpp_lib_concepts)
│ │ │ │ +
929# if (__cplusplus >= 202002L) && (__cpp_concepts >= 201907L)
│ │ │ │ +
930# define __glibcxx_concepts 202002L
│ │ │ │ +
931# if defined(__glibcxx_want_all) || defined(__glibcxx_want_concepts)
│ │ │ │ +
932# define __cpp_lib_concepts 202002L
│ │ │ │ +
933# endif
│ │ │ │ +
934# endif
│ │ │ │ +
935#endif /* !defined(__cpp_lib_concepts) && defined(__glibcxx_want_concepts) */
│ │ │ │ +
936#undef __glibcxx_want_concepts
│ │ │ │ +
937
│ │ │ │ +
938#if !defined(__cpp_lib_optional)
│ │ │ │ +
939# if (__cplusplus >= 202100L) && (__glibcxx_concepts)
│ │ │ │ +
940# define __glibcxx_optional 202110L
│ │ │ │ +
941# if defined(__glibcxx_want_all) || defined(__glibcxx_want_optional)
│ │ │ │ +
942# define __cpp_lib_optional 202110L
│ │ │ │ +
943# endif
│ │ │ │ +
944# elif (__cplusplus >= 202002L)
│ │ │ │ +
945# define __glibcxx_optional 202106L
│ │ │ │ +
946# if defined(__glibcxx_want_all) || defined(__glibcxx_want_optional)
│ │ │ │ +
947# define __cpp_lib_optional 202106L
│ │ │ │ +
948# endif
│ │ │ │ +
949# elif (__cplusplus >= 201703L)
│ │ │ │ +
950# define __glibcxx_optional 201606L
│ │ │ │ +
951# if defined(__glibcxx_want_all) || defined(__glibcxx_want_optional)
│ │ │ │ +
952# define __cpp_lib_optional 201606L
│ │ │ │ +
953# endif
│ │ │ │ +
954# endif
│ │ │ │ +
955#endif /* !defined(__cpp_lib_optional) && defined(__glibcxx_want_optional) */
│ │ │ │ +
956#undef __glibcxx_want_optional
│ │ │ │ +
957
│ │ │ │ +
958#if !defined(__cpp_lib_destroying_delete)
│ │ │ │ +
959# if (__cplusplus >= 202002L) && (__cpp_impl_destroying_delete)
│ │ │ │ +
960# define __glibcxx_destroying_delete 201806L
│ │ │ │ +
961# if defined(__glibcxx_want_all) || defined(__glibcxx_want_destroying_delete)
│ │ │ │ +
962# define __cpp_lib_destroying_delete 201806L
│ │ │ │ +
963# endif
│ │ │ │ +
964# endif
│ │ │ │ +
965#endif /* !defined(__cpp_lib_destroying_delete) && defined(__glibcxx_want_destroying_delete) */
│ │ │ │ +
966#undef __glibcxx_want_destroying_delete
│ │ │ │ +
967
│ │ │ │ +
968#if !defined(__cpp_lib_constexpr_string_view)
│ │ │ │ +
969# if (__cplusplus >= 202002L)
│ │ │ │ +
970# define __glibcxx_constexpr_string_view 201811L
│ │ │ │ +
971# if defined(__glibcxx_want_all) || defined(__glibcxx_want_constexpr_string_view)
│ │ │ │ +
972# define __cpp_lib_constexpr_string_view 201811L
│ │ │ │ +
973# endif
│ │ │ │ +
974# endif
│ │ │ │ +
975#endif /* !defined(__cpp_lib_constexpr_string_view) && defined(__glibcxx_want_constexpr_string_view) */
│ │ │ │ +
976#undef __glibcxx_want_constexpr_string_view
│ │ │ │ +
977
│ │ │ │ +
978#if !defined(__cpp_lib_endian)
│ │ │ │ +
979# if (__cplusplus >= 202002L)
│ │ │ │ +
980# define __glibcxx_endian 201907L
│ │ │ │ +
981# if defined(__glibcxx_want_all) || defined(__glibcxx_want_endian)
│ │ │ │ +
982# define __cpp_lib_endian 201907L
│ │ │ │ +
983# endif
│ │ │ │ +
984# endif
│ │ │ │ +
985#endif /* !defined(__cpp_lib_endian) && defined(__glibcxx_want_endian) */
│ │ │ │ +
986#undef __glibcxx_want_endian
│ │ │ │ +
987
│ │ │ │ +
988#if !defined(__cpp_lib_int_pow2)
│ │ │ │ +
989# if (__cplusplus >= 202002L)
│ │ │ │ +
990# define __glibcxx_int_pow2 202002L
│ │ │ │ +
991# if defined(__glibcxx_want_all) || defined(__glibcxx_want_int_pow2)
│ │ │ │ +
992# define __cpp_lib_int_pow2 202002L
│ │ │ │ +
993# endif
│ │ │ │ +
994# endif
│ │ │ │ +
995#endif /* !defined(__cpp_lib_int_pow2) && defined(__glibcxx_want_int_pow2) */
│ │ │ │ +
996#undef __glibcxx_want_int_pow2
│ │ │ │ +
997
│ │ │ │ +
998#if !defined(__cpp_lib_integer_comparison_functions)
│ │ │ │ +
999# if (__cplusplus >= 202002L)
│ │ │ │ +
1000# define __glibcxx_integer_comparison_functions 202002L
│ │ │ │ +
1001# if defined(__glibcxx_want_all) || defined(__glibcxx_want_integer_comparison_functions)
│ │ │ │ +
1002# define __cpp_lib_integer_comparison_functions 202002L
│ │ │ │ +
1003# endif
│ │ │ │ +
1004# endif
│ │ │ │ +
1005#endif /* !defined(__cpp_lib_integer_comparison_functions) && defined(__glibcxx_want_integer_comparison_functions) */
│ │ │ │ +
1006#undef __glibcxx_want_integer_comparison_functions
│ │ │ │ +
1007
│ │ │ │ +
1008#if !defined(__cpp_lib_is_constant_evaluated)
│ │ │ │ +
1009# if (__cplusplus >= 202002L) && (defined(_GLIBCXX_HAVE_IS_CONSTANT_EVALUATED))
│ │ │ │ +
1010# define __glibcxx_is_constant_evaluated 201811L
│ │ │ │ +
1011# if defined(__glibcxx_want_all) || defined(__glibcxx_want_is_constant_evaluated)
│ │ │ │ +
1012# define __cpp_lib_is_constant_evaluated 201811L
│ │ │ │ +
1013# endif
│ │ │ │ +
1014# endif
│ │ │ │ +
1015#endif /* !defined(__cpp_lib_is_constant_evaluated) && defined(__glibcxx_want_is_constant_evaluated) */
│ │ │ │ +
1016#undef __glibcxx_want_is_constant_evaluated
│ │ │ │ +
1017
│ │ │ │ +
1018#if !defined(__cpp_lib_constexpr_char_traits)
│ │ │ │ +
1019# if (__cplusplus >= 202002L) && (defined(__glibcxx_is_constant_evaluated))
│ │ │ │ +
1020# define __glibcxx_constexpr_char_traits 201811L
│ │ │ │ +
1021# if defined(__glibcxx_want_all) || defined(__glibcxx_want_constexpr_char_traits)
│ │ │ │ +
1022# define __cpp_lib_constexpr_char_traits 201811L
│ │ │ │ +
1023# endif
│ │ │ │ +
1024# elif (__cplusplus >= 201703L) && (_GLIBCXX_HAVE_IS_CONSTANT_EVALUATED)
│ │ │ │ +
1025# define __glibcxx_constexpr_char_traits 201611L
│ │ │ │ +
1026# if defined(__glibcxx_want_all) || defined(__glibcxx_want_constexpr_char_traits)
│ │ │ │ +
1027# define __cpp_lib_constexpr_char_traits 201611L
│ │ │ │ +
1028# endif
│ │ │ │ +
1029# endif
│ │ │ │ +
1030#endif /* !defined(__cpp_lib_constexpr_char_traits) && defined(__glibcxx_want_constexpr_char_traits) */
│ │ │ │ +
1031#undef __glibcxx_want_constexpr_char_traits
│ │ │ │ +
1032
│ │ │ │ +
1033#if !defined(__cpp_lib_is_layout_compatible)
│ │ │ │ +
1034# if (__cplusplus >= 202002L) && (__has_builtin(__is_layout_compatible) && __has_builtin(__builtin_is_corresponding_member))
│ │ │ │ +
1035# define __glibcxx_is_layout_compatible 201907L
│ │ │ │ +
1036# if defined(__glibcxx_want_all) || defined(__glibcxx_want_is_layout_compatible)
│ │ │ │ +
1037# define __cpp_lib_is_layout_compatible 201907L
│ │ │ │ +
1038# endif
│ │ │ │ +
1039# endif
│ │ │ │ +
1040#endif /* !defined(__cpp_lib_is_layout_compatible) && defined(__glibcxx_want_is_layout_compatible) */
│ │ │ │ +
1041#undef __glibcxx_want_is_layout_compatible
│ │ │ │ +
1042
│ │ │ │ +
1043#if !defined(__cpp_lib_is_nothrow_convertible)
│ │ │ │ +
1044# if (__cplusplus >= 202002L)
│ │ │ │ +
1045# define __glibcxx_is_nothrow_convertible 201806L
│ │ │ │ +
1046# if defined(__glibcxx_want_all) || defined(__glibcxx_want_is_nothrow_convertible)
│ │ │ │ +
1047# define __cpp_lib_is_nothrow_convertible 201806L
│ │ │ │ +
1048# endif
│ │ │ │ +
1049# endif
│ │ │ │ +
1050#endif /* !defined(__cpp_lib_is_nothrow_convertible) && defined(__glibcxx_want_is_nothrow_convertible) */
│ │ │ │ +
1051#undef __glibcxx_want_is_nothrow_convertible
│ │ │ │ +
1052
│ │ │ │ +
1053#if !defined(__cpp_lib_is_pointer_interconvertible)
│ │ │ │ +
1054# if (__cplusplus >= 202002L) && (__has_builtin(__is_pointer_interconvertible_base_of) && __has_builtin(__builtin_is_pointer_interconvertible_with_class))
│ │ │ │ +
1055# define __glibcxx_is_pointer_interconvertible 201907L
│ │ │ │ +
1056# if defined(__glibcxx_want_all) || defined(__glibcxx_want_is_pointer_interconvertible)
│ │ │ │ +
1057# define __cpp_lib_is_pointer_interconvertible 201907L
│ │ │ │ +
1058# endif
│ │ │ │ +
1059# endif
│ │ │ │ +
1060#endif /* !defined(__cpp_lib_is_pointer_interconvertible) && defined(__glibcxx_want_is_pointer_interconvertible) */
│ │ │ │ +
1061#undef __glibcxx_want_is_pointer_interconvertible
│ │ │ │ +
1062
│ │ │ │ +
1063#if !defined(__cpp_lib_math_constants)
│ │ │ │ +
1064# if (__cplusplus >= 202002L)
│ │ │ │ +
1065# define __glibcxx_math_constants 201907L
│ │ │ │ +
1066# if defined(__glibcxx_want_all) || defined(__glibcxx_want_math_constants)
│ │ │ │ +
1067# define __cpp_lib_math_constants 201907L
│ │ │ │ +
1068# endif
│ │ │ │ +
1069# endif
│ │ │ │ +
1070#endif /* !defined(__cpp_lib_math_constants) && defined(__glibcxx_want_math_constants) */
│ │ │ │ +
1071#undef __glibcxx_want_math_constants
│ │ │ │ +
1072
│ │ │ │ +
1073#if !defined(__cpp_lib_make_obj_using_allocator)
│ │ │ │ +
1074# if (__cplusplus >= 202002L) && (__cpp_concepts)
│ │ │ │ +
1075# define __glibcxx_make_obj_using_allocator 201811L
│ │ │ │ +
1076# if defined(__glibcxx_want_all) || defined(__glibcxx_want_make_obj_using_allocator)
│ │ │ │ +
1077# define __cpp_lib_make_obj_using_allocator 201811L
│ │ │ │ +
1078# endif
│ │ │ │ +
1079# endif
│ │ │ │ +
1080#endif /* !defined(__cpp_lib_make_obj_using_allocator) && defined(__glibcxx_want_make_obj_using_allocator) */
│ │ │ │ +
1081#undef __glibcxx_want_make_obj_using_allocator
│ │ │ │ +
1082
│ │ │ │ +
1083#if !defined(__cpp_lib_remove_cvref)
│ │ │ │ +
1084# if (__cplusplus >= 202002L)
│ │ │ │ +
1085# define __glibcxx_remove_cvref 201711L
│ │ │ │ +
1086# if defined(__glibcxx_want_all) || defined(__glibcxx_want_remove_cvref)
│ │ │ │ +
1087# define __cpp_lib_remove_cvref 201711L
│ │ │ │ +
1088# endif
│ │ │ │ +
1089# endif
│ │ │ │ +
1090#endif /* !defined(__cpp_lib_remove_cvref) && defined(__glibcxx_want_remove_cvref) */
│ │ │ │ +
1091#undef __glibcxx_want_remove_cvref
│ │ │ │ +
1092
│ │ │ │ +
1093#if !defined(__cpp_lib_source_location)
│ │ │ │ +
1094# if (__cplusplus >= 202002L) && (__has_builtin(__builtin_source_location))
│ │ │ │ +
1095# define __glibcxx_source_location 201907L
│ │ │ │ +
1096# if defined(__glibcxx_want_all) || defined(__glibcxx_want_source_location)
│ │ │ │ +
1097# define __cpp_lib_source_location 201907L
│ │ │ │ +
1098# endif
│ │ │ │ +
1099# endif
│ │ │ │ +
1100#endif /* !defined(__cpp_lib_source_location) && defined(__glibcxx_want_source_location) */
│ │ │ │ +
1101#undef __glibcxx_want_source_location
│ │ │ │ +
1102
│ │ │ │ +
1103#if !defined(__cpp_lib_span)
│ │ │ │ +
1104# if (__cplusplus > 202302L) && (__glibcxx_concepts)
│ │ │ │ +
1105# define __glibcxx_span 202311L
│ │ │ │ +
1106# if defined(__glibcxx_want_all) || defined(__glibcxx_want_span)
│ │ │ │ +
1107# define __cpp_lib_span 202311L
│ │ │ │ +
1108# endif
│ │ │ │ +
1109# elif (__cplusplus >= 202002L) && (__glibcxx_concepts)
│ │ │ │ +
1110# define __glibcxx_span 202002L
│ │ │ │ +
1111# if defined(__glibcxx_want_all) || defined(__glibcxx_want_span)
│ │ │ │ +
1112# define __cpp_lib_span 202002L
│ │ │ │ +
1113# endif
│ │ │ │ +
1114# endif
│ │ │ │ +
1115#endif /* !defined(__cpp_lib_span) && defined(__glibcxx_want_span) */
│ │ │ │ +
1116#undef __glibcxx_want_span
│ │ │ │ +
1117
│ │ │ │ +
1118#if !defined(__cpp_lib_ssize)
│ │ │ │ +
1119# if (__cplusplus >= 202002L)
│ │ │ │ +
1120# define __glibcxx_ssize 201902L
│ │ │ │ +
1121# if defined(__glibcxx_want_all) || defined(__glibcxx_want_ssize)
│ │ │ │ +
1122# define __cpp_lib_ssize 201902L
│ │ │ │ +
1123# endif
│ │ │ │ +
1124# endif
│ │ │ │ +
1125#endif /* !defined(__cpp_lib_ssize) && defined(__glibcxx_want_ssize) */
│ │ │ │ +
1126#undef __glibcxx_want_ssize
│ │ │ │ +
1127
│ │ │ │ +
1128#if !defined(__cpp_lib_three_way_comparison)
│ │ │ │ +
1129# if (__cplusplus >= 202002L) && (__cpp_impl_three_way_comparison >= 201907L && __glibcxx_concepts)
│ │ │ │ +
1130# define __glibcxx_three_way_comparison 201907L
│ │ │ │ +
1131# if defined(__glibcxx_want_all) || defined(__glibcxx_want_three_way_comparison)
│ │ │ │ +
1132# define __cpp_lib_three_way_comparison 201907L
│ │ │ │ +
1133# endif
│ │ │ │ +
1134# endif
│ │ │ │ +
1135#endif /* !defined(__cpp_lib_three_way_comparison) && defined(__glibcxx_want_three_way_comparison) */
│ │ │ │ +
1136#undef __glibcxx_want_three_way_comparison
│ │ │ │ +
1137
│ │ │ │ +
1138#if !defined(__cpp_lib_to_address)
│ │ │ │ +
1139# if (__cplusplus >= 202002L)
│ │ │ │ +
1140# define __glibcxx_to_address 201711L
│ │ │ │ +
1141# if defined(__glibcxx_want_all) || defined(__glibcxx_want_to_address)
│ │ │ │ +
1142# define __cpp_lib_to_address 201711L
│ │ │ │ +
1143# endif
│ │ │ │ +
1144# endif
│ │ │ │ +
1145#endif /* !defined(__cpp_lib_to_address) && defined(__glibcxx_want_to_address) */
│ │ │ │ +
1146#undef __glibcxx_want_to_address
│ │ │ │ +
1147
│ │ │ │ +
1148#if !defined(__cpp_lib_to_array)
│ │ │ │ +
1149# if (__cplusplus >= 202002L) && (__cpp_generic_lambdas >= 201707L)
│ │ │ │ +
1150# define __glibcxx_to_array 201907L
│ │ │ │ +
1151# if defined(__glibcxx_want_all) || defined(__glibcxx_want_to_array)
│ │ │ │ +
1152# define __cpp_lib_to_array 201907L
│ │ │ │ +
1153# endif
│ │ │ │ +
1154# endif
│ │ │ │ +
1155#endif /* !defined(__cpp_lib_to_array) && defined(__glibcxx_want_to_array) */
│ │ │ │ +
1156#undef __glibcxx_want_to_array
│ │ │ │ +
1157
│ │ │ │ +
1158#if !defined(__cpp_lib_type_identity)
│ │ │ │ +
1159# if (__cplusplus >= 202002L)
│ │ │ │ +
1160# define __glibcxx_type_identity 201806L
│ │ │ │ +
1161# if defined(__glibcxx_want_all) || defined(__glibcxx_want_type_identity)
│ │ │ │ +
1162# define __cpp_lib_type_identity 201806L
│ │ │ │ +
1163# endif
│ │ │ │ +
1164# endif
│ │ │ │ +
1165#endif /* !defined(__cpp_lib_type_identity) && defined(__glibcxx_want_type_identity) */
│ │ │ │ +
1166#undef __glibcxx_want_type_identity
│ │ │ │ +
1167
│ │ │ │ +
1168#if !defined(__cpp_lib_unwrap_ref)
│ │ │ │ +
1169# if (__cplusplus >= 202002L)
│ │ │ │ +
1170# define __glibcxx_unwrap_ref 201811L
│ │ │ │ +
1171# if defined(__glibcxx_want_all) || defined(__glibcxx_want_unwrap_ref)
│ │ │ │ +
1172# define __cpp_lib_unwrap_ref 201811L
│ │ │ │ +
1173# endif
│ │ │ │ +
1174# endif
│ │ │ │ +
1175#endif /* !defined(__cpp_lib_unwrap_ref) && defined(__glibcxx_want_unwrap_ref) */
│ │ │ │ +
1176#undef __glibcxx_want_unwrap_ref
│ │ │ │ +
1177
│ │ │ │ +
1178#if !defined(__cpp_lib_constexpr_iterator)
│ │ │ │ +
1179# if (__cplusplus >= 202002L)
│ │ │ │ +
1180# define __glibcxx_constexpr_iterator 201811L
│ │ │ │ +
1181# if defined(__glibcxx_want_all) || defined(__glibcxx_want_constexpr_iterator)
│ │ │ │ +
1182# define __cpp_lib_constexpr_iterator 201811L
│ │ │ │ +
1183# endif
│ │ │ │ +
1184# endif
│ │ │ │ +
1185#endif /* !defined(__cpp_lib_constexpr_iterator) && defined(__glibcxx_want_constexpr_iterator) */
│ │ │ │ +
1186#undef __glibcxx_want_constexpr_iterator
│ │ │ │ +
1187
│ │ │ │ +
1188#if !defined(__cpp_lib_interpolate)
│ │ │ │ +
1189# if (__cplusplus >= 202002L)
│ │ │ │ +
1190# define __glibcxx_interpolate 201902L
│ │ │ │ +
1191# if defined(__glibcxx_want_all) || defined(__glibcxx_want_interpolate)
│ │ │ │ +
1192# define __cpp_lib_interpolate 201902L
│ │ │ │ +
1193# endif
│ │ │ │ +
1194# endif
│ │ │ │ +
1195#endif /* !defined(__cpp_lib_interpolate) && defined(__glibcxx_want_interpolate) */
│ │ │ │ +
1196#undef __glibcxx_want_interpolate
│ │ │ │ +
1197
│ │ │ │ +
1198#if !defined(__cpp_lib_constexpr_utility)
│ │ │ │ +
1199# if (__cplusplus >= 202002L)
│ │ │ │ +
1200# define __glibcxx_constexpr_utility 201811L
│ │ │ │ +
1201# if defined(__glibcxx_want_all) || defined(__glibcxx_want_constexpr_utility)
│ │ │ │ +
1202# define __cpp_lib_constexpr_utility 201811L
│ │ │ │ +
1203# endif
│ │ │ │ +
1204# endif
│ │ │ │ +
1205#endif /* !defined(__cpp_lib_constexpr_utility) && defined(__glibcxx_want_constexpr_utility) */
│ │ │ │ +
1206#undef __glibcxx_want_constexpr_utility
│ │ │ │ +
1207
│ │ │ │ +
1208#if !defined(__cpp_lib_shift)
│ │ │ │ +
1209# if (__cplusplus >= 202002L)
│ │ │ │ +
1210# define __glibcxx_shift 201806L
│ │ │ │ +
1211# if defined(__glibcxx_want_all) || defined(__glibcxx_want_shift)
│ │ │ │ +
1212# define __cpp_lib_shift 201806L
│ │ │ │ +
1213# endif
│ │ │ │ +
1214# endif
│ │ │ │ +
1215#endif /* !defined(__cpp_lib_shift) && defined(__glibcxx_want_shift) */
│ │ │ │ +
1216#undef __glibcxx_want_shift
│ │ │ │ +
1217
│ │ │ │ +
1218#if !defined(__cpp_lib_ranges)
│ │ │ │ +
1219# if (__cplusplus > 202302L) && (__glibcxx_concepts)
│ │ │ │ +
1220# define __glibcxx_ranges 202406L
│ │ │ │ +
1221# if defined(__glibcxx_want_all) || defined(__glibcxx_want_ranges)
│ │ │ │ +
1222# define __cpp_lib_ranges 202406L
│ │ │ │ +
1223# endif
│ │ │ │ +
1224# elif (__cplusplus >= 202100L) && (__glibcxx_concepts)
│ │ │ │ +
1225# define __glibcxx_ranges 202302L
│ │ │ │ +
1226# if defined(__glibcxx_want_all) || defined(__glibcxx_want_ranges)
│ │ │ │ +
1227# define __cpp_lib_ranges 202302L
│ │ │ │ +
1228# endif
│ │ │ │ +
1229# elif (__cplusplus >= 202002L) && (__glibcxx_concepts)
│ │ │ │ +
1230# define __glibcxx_ranges 202110L
│ │ │ │ +
1231# if defined(__glibcxx_want_all) || defined(__glibcxx_want_ranges)
│ │ │ │ +
1232# define __cpp_lib_ranges 202110L
│ │ │ │ +
1233# endif
│ │ │ │ +
1234# endif
│ │ │ │ +
1235#endif /* !defined(__cpp_lib_ranges) && defined(__glibcxx_want_ranges) */
│ │ │ │ +
1236#undef __glibcxx_want_ranges
│ │ │ │ +
1237
│ │ │ │ +
1238#if !defined(__cpp_lib_constexpr_numeric)
│ │ │ │ +
1239# if (__cplusplus >= 202002L)
│ │ │ │ +
1240# define __glibcxx_constexpr_numeric 201911L
│ │ │ │ +
1241# if defined(__glibcxx_want_all) || defined(__glibcxx_want_constexpr_numeric)
│ │ │ │ +
1242# define __cpp_lib_constexpr_numeric 201911L
│ │ │ │ +
1243# endif
│ │ │ │ +
1244# endif
│ │ │ │ +
1245#endif /* !defined(__cpp_lib_constexpr_numeric) && defined(__glibcxx_want_constexpr_numeric) */
│ │ │ │ +
1246#undef __glibcxx_want_constexpr_numeric
│ │ │ │ +
1247
│ │ │ │ +
1248#if !defined(__cpp_lib_constexpr_functional)
│ │ │ │ +
1249# if (__cplusplus >= 202002L)
│ │ │ │ +
1250# define __glibcxx_constexpr_functional 201907L
│ │ │ │ +
1251# if defined(__glibcxx_want_all) || defined(__glibcxx_want_constexpr_functional)
│ │ │ │ +
1252# define __cpp_lib_constexpr_functional 201907L
│ │ │ │ +
1253# endif
│ │ │ │ +
1254# endif
│ │ │ │ +
1255#endif /* !defined(__cpp_lib_constexpr_functional) && defined(__glibcxx_want_constexpr_functional) */
│ │ │ │ +
1256#undef __glibcxx_want_constexpr_functional
│ │ │ │ +
1257
│ │ │ │ +
1258#if !defined(__cpp_lib_constexpr_algorithms)
│ │ │ │ +
1259# if (__cplusplus > 202302L)
│ │ │ │ +
1260# define __glibcxx_constexpr_algorithms 202306L
│ │ │ │ +
1261# if defined(__glibcxx_want_all) || defined(__glibcxx_want_constexpr_algorithms)
│ │ │ │ +
1262# define __cpp_lib_constexpr_algorithms 202306L
│ │ │ │ +
1263# endif
│ │ │ │ +
1264# elif (__cplusplus >= 202002L)
│ │ │ │ +
1265# define __glibcxx_constexpr_algorithms 201806L
│ │ │ │ +
1266# if defined(__glibcxx_want_all) || defined(__glibcxx_want_constexpr_algorithms)
│ │ │ │ +
1267# define __cpp_lib_constexpr_algorithms 201806L
│ │ │ │ +
1268# endif
│ │ │ │ +
1269# endif
│ │ │ │ +
1270#endif /* !defined(__cpp_lib_constexpr_algorithms) && defined(__glibcxx_want_constexpr_algorithms) */
│ │ │ │ +
1271#undef __glibcxx_want_constexpr_algorithms
│ │ │ │ +
1272
│ │ │ │ +
1273#if !defined(__cpp_lib_constexpr_tuple)
│ │ │ │ +
1274# if (__cplusplus >= 202002L)
│ │ │ │ +
1275# define __glibcxx_constexpr_tuple 201811L
│ │ │ │ +
1276# if defined(__glibcxx_want_all) || defined(__glibcxx_want_constexpr_tuple)
│ │ │ │ +
1277# define __cpp_lib_constexpr_tuple 201811L
│ │ │ │ +
1278# endif
│ │ │ │ +
1279# endif
│ │ │ │ +
1280#endif /* !defined(__cpp_lib_constexpr_tuple) && defined(__glibcxx_want_constexpr_tuple) */
│ │ │ │ +
1281#undef __glibcxx_want_constexpr_tuple
│ │ │ │ +
1282
│ │ │ │ +
1283#if !defined(__cpp_lib_constexpr_memory)
│ │ │ │ +
1284# if (__cplusplus >= 202100L) && (__cpp_constexpr_dynamic_alloc)
│ │ │ │ +
1285# define __glibcxx_constexpr_memory 202202L
│ │ │ │ +
1286# if defined(__glibcxx_want_all) || defined(__glibcxx_want_constexpr_memory)
│ │ │ │ +
1287# define __cpp_lib_constexpr_memory 202202L
│ │ │ │ +
1288# endif
│ │ │ │ +
1289# elif (__cplusplus >= 202002L)
│ │ │ │ +
1290# define __glibcxx_constexpr_memory 201811L
│ │ │ │ +
1291# if defined(__glibcxx_want_all) || defined(__glibcxx_want_constexpr_memory)
│ │ │ │ +
1292# define __cpp_lib_constexpr_memory 201811L
│ │ │ │ +
1293# endif
│ │ │ │ +
1294# endif
│ │ │ │ +
1295#endif /* !defined(__cpp_lib_constexpr_memory) && defined(__glibcxx_want_constexpr_memory) */
│ │ │ │ +
1296#undef __glibcxx_want_constexpr_memory
│ │ │ │ +
1297
│ │ │ │ +
1298#if !defined(__cpp_lib_atomic_shared_ptr)
│ │ │ │ +
1299# if (__cplusplus >= 202002L) && _GLIBCXX_HOSTED
│ │ │ │ +
1300# define __glibcxx_atomic_shared_ptr 201711L
│ │ │ │ +
1301# if defined(__glibcxx_want_all) || defined(__glibcxx_want_atomic_shared_ptr)
│ │ │ │ +
1302# define __cpp_lib_atomic_shared_ptr 201711L
│ │ │ │ +
1303# endif
│ │ │ │ +
1304# endif
│ │ │ │ +
1305#endif /* !defined(__cpp_lib_atomic_shared_ptr) && defined(__glibcxx_want_atomic_shared_ptr) */
│ │ │ │ +
1306#undef __glibcxx_want_atomic_shared_ptr
│ │ │ │ +
1307
│ │ │ │ +
1308#if !defined(__cpp_lib_atomic_wait)
│ │ │ │ +
1309# if (__cplusplus >= 202002L) && defined(_GLIBCXX_HAS_GTHREADS) && _GLIBCXX_HOSTED
│ │ │ │ +
1310# define __glibcxx_atomic_wait 201907L
│ │ │ │ +
1311# if defined(__glibcxx_want_all) || defined(__glibcxx_want_atomic_wait)
│ │ │ │ +
1312# define __cpp_lib_atomic_wait 201907L
│ │ │ │ +
1313# endif
│ │ │ │ +
1314# elif (__cplusplus >= 202002L) && !defined(_GLIBCXX_HAS_GTHREADS) && _GLIBCXX_HOSTED && (defined(_GLIBCXX_HAVE_LINUX_FUTEX))
│ │ │ │ +
1315# define __glibcxx_atomic_wait 201907L
│ │ │ │ +
1316# if defined(__glibcxx_want_all) || defined(__glibcxx_want_atomic_wait)
│ │ │ │ +
1317# define __cpp_lib_atomic_wait 201907L
│ │ │ │ +
1318# endif
│ │ │ │ +
1319# endif
│ │ │ │ +
1320#endif /* !defined(__cpp_lib_atomic_wait) && defined(__glibcxx_want_atomic_wait) */
│ │ │ │ +
1321#undef __glibcxx_want_atomic_wait
│ │ │ │ +
1322
│ │ │ │ +
1323#if !defined(__cpp_lib_barrier)
│ │ │ │ +
1324# if (__cplusplus >= 202002L) && (__cpp_aligned_new && __glibcxx_atomic_wait)
│ │ │ │ +
1325# define __glibcxx_barrier 201907L
│ │ │ │ +
1326# if defined(__glibcxx_want_all) || defined(__glibcxx_want_barrier)
│ │ │ │ +
1327# define __cpp_lib_barrier 201907L
│ │ │ │ +
1328# endif
│ │ │ │ +
1329# endif
│ │ │ │ +
1330#endif /* !defined(__cpp_lib_barrier) && defined(__glibcxx_want_barrier) */
│ │ │ │ +
1331#undef __glibcxx_want_barrier
│ │ │ │ +
1332
│ │ │ │ +
1333#if !defined(__cpp_lib_format)
│ │ │ │ +
1334# if (__cplusplus > 202302L) && _GLIBCXX_HOSTED
│ │ │ │ +
1335# define __glibcxx_format 202311L
│ │ │ │ +
1336# if defined(__glibcxx_want_all) || defined(__glibcxx_want_format)
│ │ │ │ +
1337# define __cpp_lib_format 202311L
│ │ │ │ +
1338# endif
│ │ │ │ +
1339# elif (__cplusplus >= 202002L) && _GLIBCXX_HOSTED
│ │ │ │ +
1340# define __glibcxx_format 202304L
│ │ │ │ +
1341# if defined(__glibcxx_want_all) || defined(__glibcxx_want_format)
│ │ │ │ +
1342# define __cpp_lib_format 202304L
│ │ │ │ +
1343# endif
│ │ │ │ +
1344# endif
│ │ │ │ +
1345#endif /* !defined(__cpp_lib_format) && defined(__glibcxx_want_format) */
│ │ │ │ +
1346#undef __glibcxx_want_format
│ │ │ │ +
1347
│ │ │ │ +
1348#if !defined(__cpp_lib_format_uchar)
│ │ │ │ +
1349# if (__cplusplus >= 202002L) && _GLIBCXX_HOSTED
│ │ │ │ +
1350# define __glibcxx_format_uchar 202311L
│ │ │ │ +
1351# if defined(__glibcxx_want_all) || defined(__glibcxx_want_format_uchar)
│ │ │ │ +
1352# define __cpp_lib_format_uchar 202311L
│ │ │ │ +
1353# endif
│ │ │ │ +
1354# endif
│ │ │ │ +
1355#endif /* !defined(__cpp_lib_format_uchar) && defined(__glibcxx_want_format_uchar) */
│ │ │ │ +
1356#undef __glibcxx_want_format_uchar
│ │ │ │ +
1357
│ │ │ │ +
1358#if !defined(__cpp_lib_constexpr_complex)
│ │ │ │ +
1359# if (__cplusplus >= 202002L) && _GLIBCXX_HOSTED
│ │ │ │ +
1360# define __glibcxx_constexpr_complex 201711L
│ │ │ │ +
1361# if defined(__glibcxx_want_all) || defined(__glibcxx_want_constexpr_complex)
│ │ │ │ +
1362# define __cpp_lib_constexpr_complex 201711L
│ │ │ │ +
1363# endif
│ │ │ │ +
1364# endif
│ │ │ │ +
1365#endif /* !defined(__cpp_lib_constexpr_complex) && defined(__glibcxx_want_constexpr_complex) */
│ │ │ │ +
1366#undef __glibcxx_want_constexpr_complex
│ │ │ │ +
1367
│ │ │ │ +
1368#if !defined(__cpp_lib_constexpr_dynamic_alloc)
│ │ │ │ +
1369# if (__cplusplus >= 202002L) && _GLIBCXX_HOSTED
│ │ │ │ +
1370# define __glibcxx_constexpr_dynamic_alloc 201907L
│ │ │ │ +
1371# if defined(__glibcxx_want_all) || defined(__glibcxx_want_constexpr_dynamic_alloc)
│ │ │ │ +
1372# define __cpp_lib_constexpr_dynamic_alloc 201907L
│ │ │ │ +
1373# endif
│ │ │ │ +
1374# endif
│ │ │ │ +
1375#endif /* !defined(__cpp_lib_constexpr_dynamic_alloc) && defined(__glibcxx_want_constexpr_dynamic_alloc) */
│ │ │ │ +
1376#undef __glibcxx_want_constexpr_dynamic_alloc
│ │ │ │ +
1377
│ │ │ │ +
1378#if !defined(__cpp_lib_constexpr_string)
│ │ │ │ +
1379# if (__cplusplus >= 202002L) && _GLIBCXX_USE_CXX11_ABI && _GLIBCXX_HOSTED && (defined(__glibcxx_is_constant_evaluated))
│ │ │ │ +
1380# define __glibcxx_constexpr_string 201907L
│ │ │ │ +
1381# if defined(__glibcxx_want_all) || defined(__glibcxx_want_constexpr_string)
│ │ │ │ +
1382# define __cpp_lib_constexpr_string 201907L
│ │ │ │ +
1383# endif
│ │ │ │ +
1384# elif (__cplusplus >= 202002L) && !_GLIBCXX_USE_CXX11_ABI && _GLIBCXX_HOSTED && (defined(__glibcxx_is_constant_evaluated))
│ │ │ │ +
1385# define __glibcxx_constexpr_string 201811L
│ │ │ │ +
1386# if defined(__glibcxx_want_all) || defined(__glibcxx_want_constexpr_string)
│ │ │ │ +
1387# define __cpp_lib_constexpr_string 201811L
│ │ │ │ +
1388# endif
│ │ │ │ +
1389# elif (__cplusplus >= 201703L) && _GLIBCXX_HOSTED && (_GLIBCXX_HAVE_IS_CONSTANT_EVALUATED)
│ │ │ │ +
1390# define __glibcxx_constexpr_string 201611L
│ │ │ │ +
1391# if defined(__glibcxx_want_all) || defined(__glibcxx_want_constexpr_string)
│ │ │ │ +
1392# define __cpp_lib_constexpr_string 201611L
│ │ │ │ +
1393# endif
│ │ │ │ +
1394# endif
│ │ │ │ +
1395#endif /* !defined(__cpp_lib_constexpr_string) && defined(__glibcxx_want_constexpr_string) */
│ │ │ │ +
1396#undef __glibcxx_want_constexpr_string
│ │ │ │ +
1397
│ │ │ │ +
1398#if !defined(__cpp_lib_constexpr_vector)
│ │ │ │ +
1399# if (__cplusplus >= 202002L) && _GLIBCXX_HOSTED
│ │ │ │ +
1400# define __glibcxx_constexpr_vector 201907L
│ │ │ │ +
1401# if defined(__glibcxx_want_all) || defined(__glibcxx_want_constexpr_vector)
│ │ │ │ +
1402# define __cpp_lib_constexpr_vector 201907L
│ │ │ │ +
1403# endif
│ │ │ │ +
1404# endif
│ │ │ │ +
1405#endif /* !defined(__cpp_lib_constexpr_vector) && defined(__glibcxx_want_constexpr_vector) */
│ │ │ │ +
1406#undef __glibcxx_want_constexpr_vector
│ │ │ │ +
1407
│ │ │ │ +
1408#if !defined(__cpp_lib_constrained_equality)
│ │ │ │ +
1409# if (__cplusplus >= 202002L) && (__glibcxx_three_way_comparison)
│ │ │ │ +
1410# define __glibcxx_constrained_equality 202411L
│ │ │ │ +
1411# if defined(__glibcxx_want_all) || defined(__glibcxx_want_constrained_equality)
│ │ │ │ +
1412# define __cpp_lib_constrained_equality 202411L
│ │ │ │ +
1413# endif
│ │ │ │ +
1414# endif
│ │ │ │ +
1415#endif /* !defined(__cpp_lib_constrained_equality) && defined(__glibcxx_want_constrained_equality) */
│ │ │ │ +
1416#undef __glibcxx_want_constrained_equality
│ │ │ │ +
1417
│ │ │ │ +
1418#if !defined(__cpp_lib_erase_if)
│ │ │ │ +
1419# if (__cplusplus >= 202002L) && _GLIBCXX_HOSTED
│ │ │ │ +
1420# define __glibcxx_erase_if 202002L
│ │ │ │ +
1421# if defined(__glibcxx_want_all) || defined(__glibcxx_want_erase_if)
│ │ │ │ +
1422# define __cpp_lib_erase_if 202002L
│ │ │ │ +
1423# endif
│ │ │ │ +
1424# endif
│ │ │ │ +
1425#endif /* !defined(__cpp_lib_erase_if) && defined(__glibcxx_want_erase_if) */
│ │ │ │ +
1426#undef __glibcxx_want_erase_if
│ │ │ │ +
1427
│ │ │ │ +
1428#if !defined(__cpp_lib_generic_unordered_lookup)
│ │ │ │ +
1429# if (__cplusplus >= 202002L) && _GLIBCXX_HOSTED
│ │ │ │ +
1430# define __glibcxx_generic_unordered_lookup 201811L
│ │ │ │ +
1431# if defined(__glibcxx_want_all) || defined(__glibcxx_want_generic_unordered_lookup)
│ │ │ │ +
1432# define __cpp_lib_generic_unordered_lookup 201811L
│ │ │ │ +
1433# endif
│ │ │ │ +
1434# endif
│ │ │ │ +
1435#endif /* !defined(__cpp_lib_generic_unordered_lookup) && defined(__glibcxx_want_generic_unordered_lookup) */
│ │ │ │ +
1436#undef __glibcxx_want_generic_unordered_lookup
│ │ │ │ +
1437
│ │ │ │ +
1438#if !defined(__cpp_lib_jthread)
│ │ │ │ +
1439# if (__cplusplus >= 202002L) && defined(_GLIBCXX_HAS_GTHREADS) && _GLIBCXX_HOSTED
│ │ │ │ +
1440# define __glibcxx_jthread 201911L
│ │ │ │ +
1441# if defined(__glibcxx_want_all) || defined(__glibcxx_want_jthread)
│ │ │ │ +
1442# define __cpp_lib_jthread 201911L
│ │ │ │ +
1443# endif
│ │ │ │ +
1444# endif
│ │ │ │ +
1445#endif /* !defined(__cpp_lib_jthread) && defined(__glibcxx_want_jthread) */
│ │ │ │ +
1446#undef __glibcxx_want_jthread
│ │ │ │ +
1447
│ │ │ │ +
1448#if !defined(__cpp_lib_latch)
│ │ │ │ +
1449# if (__cplusplus >= 202002L) && (__glibcxx_atomic_wait)
│ │ │ │ +
1450# define __glibcxx_latch 201907L
│ │ │ │ +
1451# if defined(__glibcxx_want_all) || defined(__glibcxx_want_latch)
│ │ │ │ +
1452# define __cpp_lib_latch 201907L
│ │ │ │ +
1453# endif
│ │ │ │ +
1454# endif
│ │ │ │ +
1455#endif /* !defined(__cpp_lib_latch) && defined(__glibcxx_want_latch) */
│ │ │ │ +
1456#undef __glibcxx_want_latch
│ │ │ │ +
1457
│ │ │ │ +
1458#if !defined(__cpp_lib_list_remove_return_type)
│ │ │ │ +
1459# if (__cplusplus >= 202002L) && _GLIBCXX_HOSTED
│ │ │ │ +
1460# define __glibcxx_list_remove_return_type 201806L
│ │ │ │ +
1461# if defined(__glibcxx_want_all) || defined(__glibcxx_want_list_remove_return_type)
│ │ │ │ +
1462# define __cpp_lib_list_remove_return_type 201806L
│ │ │ │ +
1463# endif
│ │ │ │ +
1464# endif
│ │ │ │ +
1465#endif /* !defined(__cpp_lib_list_remove_return_type) && defined(__glibcxx_want_list_remove_return_type) */
│ │ │ │ +
1466#undef __glibcxx_want_list_remove_return_type
│ │ │ │ +
1467
│ │ │ │ +
1468#if !defined(__cpp_lib_polymorphic_allocator)
│ │ │ │ +
1469# if (__cplusplus >= 202002L) && _GLIBCXX_HOSTED
│ │ │ │ +
1470# define __glibcxx_polymorphic_allocator 201902L
│ │ │ │ +
1471# if defined(__glibcxx_want_all) || defined(__glibcxx_want_polymorphic_allocator)
│ │ │ │ +
1472# define __cpp_lib_polymorphic_allocator 201902L
│ │ │ │ +
1473# endif
│ │ │ │ +
1474# endif
│ │ │ │ +
1475#endif /* !defined(__cpp_lib_polymorphic_allocator) && defined(__glibcxx_want_polymorphic_allocator) */
│ │ │ │ +
1476#undef __glibcxx_want_polymorphic_allocator
│ │ │ │ +
1477
│ │ │ │ +
1478#if !defined(__cpp_lib_move_iterator_concept)
│ │ │ │ +
1479# if (__cplusplus >= 202002L) && (__glibcxx_concepts)
│ │ │ │ +
1480# define __glibcxx_move_iterator_concept 202207L
│ │ │ │ +
1481# if defined(__glibcxx_want_all) || defined(__glibcxx_want_move_iterator_concept)
│ │ │ │ +
1482# define __cpp_lib_move_iterator_concept 202207L
│ │ │ │ +
1483# endif
│ │ │ │ +
1484# endif
│ │ │ │ +
1485#endif /* !defined(__cpp_lib_move_iterator_concept) && defined(__glibcxx_want_move_iterator_concept) */
│ │ │ │ +
1486#undef __glibcxx_want_move_iterator_concept
│ │ │ │ +
1487
│ │ │ │ +
1488#if !defined(__cpp_lib_semaphore)
│ │ │ │ +
1489# if (__cplusplus >= 202002L) && _GLIBCXX_HOSTED && (__glibcxx_atomic_wait || _GLIBCXX_HAVE_POSIX_SEMAPHORE)
│ │ │ │ +
1490# define __glibcxx_semaphore 201907L
│ │ │ │ +
1491# if defined(__glibcxx_want_all) || defined(__glibcxx_want_semaphore)
│ │ │ │ +
1492# define __cpp_lib_semaphore 201907L
│ │ │ │ +
1493# endif
│ │ │ │ +
1494# endif
│ │ │ │ +
1495#endif /* !defined(__cpp_lib_semaphore) && defined(__glibcxx_want_semaphore) */
│ │ │ │ +
1496#undef __glibcxx_want_semaphore
│ │ │ │ +
1497
│ │ │ │ +
1498#if !defined(__cpp_lib_smart_ptr_for_overwrite)
│ │ │ │ +
1499# if (__cplusplus >= 202002L) && _GLIBCXX_HOSTED
│ │ │ │ +
1500# define __glibcxx_smart_ptr_for_overwrite 202002L
│ │ │ │ +
1501# if defined(__glibcxx_want_all) || defined(__glibcxx_want_smart_ptr_for_overwrite)
│ │ │ │ +
1502# define __cpp_lib_smart_ptr_for_overwrite 202002L
│ │ │ │ +
1503# endif
│ │ │ │ +
1504# endif
│ │ │ │ +
1505#endif /* !defined(__cpp_lib_smart_ptr_for_overwrite) && defined(__glibcxx_want_smart_ptr_for_overwrite) */
│ │ │ │ +
1506#undef __glibcxx_want_smart_ptr_for_overwrite
│ │ │ │ +
1507
│ │ │ │ +
1508#if !defined(__cpp_lib_syncbuf)
│ │ │ │ +
1509# if (__cplusplus >= 202002L) && _GLIBCXX_USE_CXX11_ABI && _GLIBCXX_HOSTED
│ │ │ │ +
1510# define __glibcxx_syncbuf 201803L
│ │ │ │ +
1511# if defined(__glibcxx_want_all) || defined(__glibcxx_want_syncbuf)
│ │ │ │ +
1512# define __cpp_lib_syncbuf 201803L
│ │ │ │ +
1513# endif
│ │ │ │ +
1514# endif
│ │ │ │ +
1515#endif /* !defined(__cpp_lib_syncbuf) && defined(__glibcxx_want_syncbuf) */
│ │ │ │ +
1516#undef __glibcxx_want_syncbuf
│ │ │ │ +
1517
│ │ │ │ +
1518#if !defined(__cpp_lib_byteswap)
│ │ │ │ +
1519# if (__cplusplus >= 202100L)
│ │ │ │ +
1520# define __glibcxx_byteswap 202110L
│ │ │ │ +
1521# if defined(__glibcxx_want_all) || defined(__glibcxx_want_byteswap)
│ │ │ │ +
1522# define __cpp_lib_byteswap 202110L
│ │ │ │ +
1523# endif
│ │ │ │ +
1524# endif
│ │ │ │ +
1525#endif /* !defined(__cpp_lib_byteswap) && defined(__glibcxx_want_byteswap) */
│ │ │ │ +
1526#undef __glibcxx_want_byteswap
│ │ │ │ +
1527
│ │ │ │ +
1528#if !defined(__cpp_lib_constexpr_charconv)
│ │ │ │ +
1529# if (__cplusplus >= 202100L)
│ │ │ │ +
1530# define __glibcxx_constexpr_charconv 202207L
│ │ │ │ +
1531# if defined(__glibcxx_want_all) || defined(__glibcxx_want_constexpr_charconv)
│ │ │ │ +
1532# define __cpp_lib_constexpr_charconv 202207L
│ │ │ │ +
1533# endif
│ │ │ │ +
1534# endif
│ │ │ │ +
1535#endif /* !defined(__cpp_lib_constexpr_charconv) && defined(__glibcxx_want_constexpr_charconv) */
│ │ │ │ +
1536#undef __glibcxx_want_constexpr_charconv
│ │ │ │ +
1537
│ │ │ │ +
1538#if !defined(__cpp_lib_constexpr_typeinfo)
│ │ │ │ +
1539# if (__cplusplus >= 202100L)
│ │ │ │ +
1540# define __glibcxx_constexpr_typeinfo 202106L
│ │ │ │ +
1541# if defined(__glibcxx_want_all) || defined(__glibcxx_want_constexpr_typeinfo)
│ │ │ │ +
1542# define __cpp_lib_constexpr_typeinfo 202106L
│ │ │ │ +
1543# endif
│ │ │ │ +
1544# endif
│ │ │ │ +
1545#endif /* !defined(__cpp_lib_constexpr_typeinfo) && defined(__glibcxx_want_constexpr_typeinfo) */
│ │ │ │ +
1546#undef __glibcxx_want_constexpr_typeinfo
│ │ │ │ +
1547
│ │ │ │ +
1548#if !defined(__cpp_lib_expected)
│ │ │ │ +
1549# if (__cplusplus >= 202100L) && (__cpp_concepts >= 202002L)
│ │ │ │ +
1550# define __glibcxx_expected 202211L
│ │ │ │ +
1551# if defined(__glibcxx_want_all) || defined(__glibcxx_want_expected)
│ │ │ │ +
1552# define __cpp_lib_expected 202211L
│ │ │ │ +
1553# endif
│ │ │ │ +
1554# endif
│ │ │ │ +
1555#endif /* !defined(__cpp_lib_expected) && defined(__glibcxx_want_expected) */
│ │ │ │ +
1556#undef __glibcxx_want_expected
│ │ │ │ +
1557
│ │ │ │ +
1558#if !defined(__cpp_lib_freestanding_algorithm)
│ │ │ │ +
1559# if (__cplusplus >= 202100L)
│ │ │ │ +
1560# define __glibcxx_freestanding_algorithm 202311L
│ │ │ │ +
1561# if defined(__glibcxx_want_all) || defined(__glibcxx_want_freestanding_algorithm)
│ │ │ │ +
1562# define __cpp_lib_freestanding_algorithm 202311L
│ │ │ │ +
1563# endif
│ │ │ │ +
1564# endif
│ │ │ │ +
1565#endif /* !defined(__cpp_lib_freestanding_algorithm) && defined(__glibcxx_want_freestanding_algorithm) */
│ │ │ │ +
1566#undef __glibcxx_want_freestanding_algorithm
│ │ │ │ +
1567
│ │ │ │ +
1568#if !defined(__cpp_lib_freestanding_array)
│ │ │ │ +
1569# if (__cplusplus >= 202100L)
│ │ │ │ +
1570# define __glibcxx_freestanding_array 202311L
│ │ │ │ +
1571# if defined(__glibcxx_want_all) || defined(__glibcxx_want_freestanding_array)
│ │ │ │ +
1572# define __cpp_lib_freestanding_array 202311L
│ │ │ │ +
1573# endif
│ │ │ │ +
1574# endif
│ │ │ │ +
1575#endif /* !defined(__cpp_lib_freestanding_array) && defined(__glibcxx_want_freestanding_array) */
│ │ │ │ +
1576#undef __glibcxx_want_freestanding_array
│ │ │ │ +
1577
│ │ │ │ +
1578#if !defined(__cpp_lib_freestanding_cstring)
│ │ │ │ +
1579# if (__cplusplus >= 202100L)
│ │ │ │ +
1580# define __glibcxx_freestanding_cstring 202311L
│ │ │ │ +
1581# if defined(__glibcxx_want_all) || defined(__glibcxx_want_freestanding_cstring)
│ │ │ │ +
1582# define __cpp_lib_freestanding_cstring 202311L
│ │ │ │ +
1583# endif
│ │ │ │ +
1584# endif
│ │ │ │ +
1585#endif /* !defined(__cpp_lib_freestanding_cstring) && defined(__glibcxx_want_freestanding_cstring) */
│ │ │ │ +
1586#undef __glibcxx_want_freestanding_cstring
│ │ │ │ +
1587
│ │ │ │ +
1588#if !defined(__cpp_lib_freestanding_expected)
│ │ │ │ +
1589# if (__cplusplus >= 202100L) && (__cpp_lib_expected)
│ │ │ │ +
1590# define __glibcxx_freestanding_expected 202311L
│ │ │ │ +
1591# if defined(__glibcxx_want_all) || defined(__glibcxx_want_freestanding_expected)
│ │ │ │ +
1592# define __cpp_lib_freestanding_expected 202311L
│ │ │ │ +
1593# endif
│ │ │ │ +
1594# endif
│ │ │ │ +
1595#endif /* !defined(__cpp_lib_freestanding_expected) && defined(__glibcxx_want_freestanding_expected) */
│ │ │ │ +
1596#undef __glibcxx_want_freestanding_expected
│ │ │ │ +
1597
│ │ │ │ +
1598#if !defined(__cpp_lib_freestanding_optional)
│ │ │ │ +
1599# if (__cplusplus >= 202100L)
│ │ │ │ +
1600# define __glibcxx_freestanding_optional 202311L
│ │ │ │ +
1601# if defined(__glibcxx_want_all) || defined(__glibcxx_want_freestanding_optional)
│ │ │ │ +
1602# define __cpp_lib_freestanding_optional 202311L
│ │ │ │ +
1603# endif
│ │ │ │ +
1604# endif
│ │ │ │ +
1605#endif /* !defined(__cpp_lib_freestanding_optional) && defined(__glibcxx_want_freestanding_optional) */
│ │ │ │ +
1606#undef __glibcxx_want_freestanding_optional
│ │ │ │ +
1607
│ │ │ │ +
1608#if !defined(__cpp_lib_freestanding_string_view)
│ │ │ │ +
1609# if (__cplusplus >= 202100L)
│ │ │ │ +
1610# define __glibcxx_freestanding_string_view 202311L
│ │ │ │ +
1611# if defined(__glibcxx_want_all) || defined(__glibcxx_want_freestanding_string_view)
│ │ │ │ +
1612# define __cpp_lib_freestanding_string_view 202311L
│ │ │ │ +
1613# endif
│ │ │ │ +
1614# endif
│ │ │ │ +
1615#endif /* !defined(__cpp_lib_freestanding_string_view) && defined(__glibcxx_want_freestanding_string_view) */
│ │ │ │ +
1616#undef __glibcxx_want_freestanding_string_view
│ │ │ │ +
1617
│ │ │ │ +
1618#if !defined(__cpp_lib_freestanding_variant)
│ │ │ │ +
1619# if (__cplusplus >= 202100L)
│ │ │ │ +
1620# define __glibcxx_freestanding_variant 202311L
│ │ │ │ +
1621# if defined(__glibcxx_want_all) || defined(__glibcxx_want_freestanding_variant)
│ │ │ │ +
1622# define __cpp_lib_freestanding_variant 202311L
│ │ │ │ +
1623# endif
│ │ │ │ +
1624# endif
│ │ │ │ +
1625#endif /* !defined(__cpp_lib_freestanding_variant) && defined(__glibcxx_want_freestanding_variant) */
│ │ │ │ +
1626#undef __glibcxx_want_freestanding_variant
│ │ │ │ +
1627
│ │ │ │ +
1628#if !defined(__cpp_lib_invoke_r)
│ │ │ │ +
1629# if (__cplusplus >= 202100L)
│ │ │ │ +
1630# define __glibcxx_invoke_r 202106L
│ │ │ │ +
1631# if defined(__glibcxx_want_all) || defined(__glibcxx_want_invoke_r)
│ │ │ │ +
1632# define __cpp_lib_invoke_r 202106L
│ │ │ │ +
1633# endif
│ │ │ │ +
1634# endif
│ │ │ │ +
1635#endif /* !defined(__cpp_lib_invoke_r) && defined(__glibcxx_want_invoke_r) */
│ │ │ │ +
1636#undef __glibcxx_want_invoke_r
│ │ │ │ +
1637
│ │ │ │ +
1638#if !defined(__cpp_lib_is_scoped_enum)
│ │ │ │ +
1639# if (__cplusplus >= 202100L)
│ │ │ │ +
1640# define __glibcxx_is_scoped_enum 202011L
│ │ │ │ +
1641# if defined(__glibcxx_want_all) || defined(__glibcxx_want_is_scoped_enum)
│ │ │ │ +
1642# define __cpp_lib_is_scoped_enum 202011L
│ │ │ │ +
1643# endif
│ │ │ │ +
1644# endif
│ │ │ │ +
1645#endif /* !defined(__cpp_lib_is_scoped_enum) && defined(__glibcxx_want_is_scoped_enum) */
│ │ │ │ +
1646#undef __glibcxx_want_is_scoped_enum
│ │ │ │ +
1647
│ │ │ │ +
1648#if !defined(__cpp_lib_reference_from_temporary)
│ │ │ │ +
1649# if (__cplusplus >= 202100L) && (__has_builtin(__reference_constructs_from_temporary) && __has_builtin(__reference_converts_from_temporary))
│ │ │ │ +
1650# define __glibcxx_reference_from_temporary 202202L
│ │ │ │ +
1651# if defined(__glibcxx_want_all) || defined(__glibcxx_want_reference_from_temporary)
│ │ │ │ +
1652# define __cpp_lib_reference_from_temporary 202202L
│ │ │ │ +
1653# endif
│ │ │ │ +
1654# endif
│ │ │ │ +
1655#endif /* !defined(__cpp_lib_reference_from_temporary) && defined(__glibcxx_want_reference_from_temporary) */
│ │ │ │ +
1656#undef __glibcxx_want_reference_from_temporary
│ │ │ │ +
1657
│ │ │ │ +
1658#if !defined(__cpp_lib_ranges_to_container)
│ │ │ │ +
1659# if (__cplusplus >= 202100L) && _GLIBCXX_HOSTED
│ │ │ │ +
1660# define __glibcxx_ranges_to_container 202202L
│ │ │ │ +
1661# if defined(__glibcxx_want_all) || defined(__glibcxx_want_ranges_to_container)
│ │ │ │ +
1662# define __cpp_lib_ranges_to_container 202202L
│ │ │ │ +
1663# endif
│ │ │ │ +
1664# endif
│ │ │ │ +
1665#endif /* !defined(__cpp_lib_ranges_to_container) && defined(__glibcxx_want_ranges_to_container) */
│ │ │ │ +
1666#undef __glibcxx_want_ranges_to_container
│ │ │ │ +
1667
│ │ │ │ +
1668#if !defined(__cpp_lib_ranges_zip)
│ │ │ │ +
1669# if (__cplusplus >= 202100L)
│ │ │ │ +
1670# define __glibcxx_ranges_zip 202110L
│ │ │ │ +
1671# if defined(__glibcxx_want_all) || defined(__glibcxx_want_ranges_zip)
│ │ │ │ +
1672# define __cpp_lib_ranges_zip 202110L
│ │ │ │ +
1673# endif
│ │ │ │ +
1674# endif
│ │ │ │ +
1675#endif /* !defined(__cpp_lib_ranges_zip) && defined(__glibcxx_want_ranges_zip) */
│ │ │ │ +
1676#undef __glibcxx_want_ranges_zip
│ │ │ │ +
1677
│ │ │ │ +
1678#if !defined(__cpp_lib_ranges_chunk)
│ │ │ │ +
1679# if (__cplusplus >= 202100L)
│ │ │ │ +
1680# define __glibcxx_ranges_chunk 202202L
│ │ │ │ +
1681# if defined(__glibcxx_want_all) || defined(__glibcxx_want_ranges_chunk)
│ │ │ │ +
1682# define __cpp_lib_ranges_chunk 202202L
│ │ │ │ +
1683# endif
│ │ │ │ +
1684# endif
│ │ │ │ +
1685#endif /* !defined(__cpp_lib_ranges_chunk) && defined(__glibcxx_want_ranges_chunk) */
│ │ │ │ +
1686#undef __glibcxx_want_ranges_chunk
│ │ │ │ +
1687
│ │ │ │ +
1688#if !defined(__cpp_lib_ranges_slide)
│ │ │ │ +
1689# if (__cplusplus >= 202100L)
│ │ │ │ +
1690# define __glibcxx_ranges_slide 202202L
│ │ │ │ +
1691# if defined(__glibcxx_want_all) || defined(__glibcxx_want_ranges_slide)
│ │ │ │ +
1692# define __cpp_lib_ranges_slide 202202L
│ │ │ │ +
1693# endif
│ │ │ │ +
1694# endif
│ │ │ │ +
1695#endif /* !defined(__cpp_lib_ranges_slide) && defined(__glibcxx_want_ranges_slide) */
│ │ │ │ +
1696#undef __glibcxx_want_ranges_slide
│ │ │ │ +
1697
│ │ │ │ +
1698#if !defined(__cpp_lib_ranges_chunk_by)
│ │ │ │ +
1699# if (__cplusplus >= 202100L)
│ │ │ │ +
1700# define __glibcxx_ranges_chunk_by 202202L
│ │ │ │ +
1701# if defined(__glibcxx_want_all) || defined(__glibcxx_want_ranges_chunk_by)
│ │ │ │ +
1702# define __cpp_lib_ranges_chunk_by 202202L
│ │ │ │ +
1703# endif
│ │ │ │ +
1704# endif
│ │ │ │ +
1705#endif /* !defined(__cpp_lib_ranges_chunk_by) && defined(__glibcxx_want_ranges_chunk_by) */
│ │ │ │ +
1706#undef __glibcxx_want_ranges_chunk_by
│ │ │ │ +
1707
│ │ │ │ +
1708#if !defined(__cpp_lib_ranges_join_with)
│ │ │ │ +
1709# if (__cplusplus >= 202100L)
│ │ │ │ +
1710# define __glibcxx_ranges_join_with 202202L
│ │ │ │ +
1711# if defined(__glibcxx_want_all) || defined(__glibcxx_want_ranges_join_with)
│ │ │ │ +
1712# define __cpp_lib_ranges_join_with 202202L
│ │ │ │ +
1713# endif
│ │ │ │ +
1714# endif
│ │ │ │ +
1715#endif /* !defined(__cpp_lib_ranges_join_with) && defined(__glibcxx_want_ranges_join_with) */
│ │ │ │ +
1716#undef __glibcxx_want_ranges_join_with
│ │ │ │ +
1717
│ │ │ │ +
1718#if !defined(__cpp_lib_ranges_repeat)
│ │ │ │ +
1719# if (__cplusplus >= 202100L)
│ │ │ │ +
1720# define __glibcxx_ranges_repeat 202207L
│ │ │ │ +
1721# if defined(__glibcxx_want_all) || defined(__glibcxx_want_ranges_repeat)
│ │ │ │ +
1722# define __cpp_lib_ranges_repeat 202207L
│ │ │ │ +
1723# endif
│ │ │ │ +
1724# endif
│ │ │ │ +
1725#endif /* !defined(__cpp_lib_ranges_repeat) && defined(__glibcxx_want_ranges_repeat) */
│ │ │ │ +
1726#undef __glibcxx_want_ranges_repeat
│ │ │ │ +
1727
│ │ │ │ +
1728#if !defined(__cpp_lib_ranges_stride)
│ │ │ │ +
1729# if (__cplusplus >= 202100L)
│ │ │ │ +
1730# define __glibcxx_ranges_stride 202207L
│ │ │ │ +
1731# if defined(__glibcxx_want_all) || defined(__glibcxx_want_ranges_stride)
│ │ │ │ +
1732# define __cpp_lib_ranges_stride 202207L
│ │ │ │ +
1733# endif
│ │ │ │ +
1734# endif
│ │ │ │ +
1735#endif /* !defined(__cpp_lib_ranges_stride) && defined(__glibcxx_want_ranges_stride) */
│ │ │ │ +
1736#undef __glibcxx_want_ranges_stride
│ │ │ │ +
1737
│ │ │ │ +
1738#if !defined(__cpp_lib_ranges_cartesian_product)
│ │ │ │ +
1739# if (__cplusplus >= 202100L)
│ │ │ │ +
1740# define __glibcxx_ranges_cartesian_product 202207L
│ │ │ │ +
1741# if defined(__glibcxx_want_all) || defined(__glibcxx_want_ranges_cartesian_product)
│ │ │ │ +
1742# define __cpp_lib_ranges_cartesian_product 202207L
│ │ │ │ +
1743# endif
│ │ │ │ +
1744# endif
│ │ │ │ +
1745#endif /* !defined(__cpp_lib_ranges_cartesian_product) && defined(__glibcxx_want_ranges_cartesian_product) */
│ │ │ │ +
1746#undef __glibcxx_want_ranges_cartesian_product
│ │ │ │ +
1747
│ │ │ │ +
1748#if !defined(__cpp_lib_ranges_as_rvalue)
│ │ │ │ +
1749# if (__cplusplus >= 202100L)
│ │ │ │ +
1750# define __glibcxx_ranges_as_rvalue 202207L
│ │ │ │ +
1751# if defined(__glibcxx_want_all) || defined(__glibcxx_want_ranges_as_rvalue)
│ │ │ │ +
1752# define __cpp_lib_ranges_as_rvalue 202207L
│ │ │ │ +
1753# endif
│ │ │ │ +
1754# endif
│ │ │ │ +
1755#endif /* !defined(__cpp_lib_ranges_as_rvalue) && defined(__glibcxx_want_ranges_as_rvalue) */
│ │ │ │ +
1756#undef __glibcxx_want_ranges_as_rvalue
│ │ │ │ +
1757
│ │ │ │ +
1758#if !defined(__cpp_lib_ranges_as_const)
│ │ │ │ +
1759# if (__cplusplus >= 202100L)
│ │ │ │ +
1760# define __glibcxx_ranges_as_const 202311L
│ │ │ │ +
1761# if defined(__glibcxx_want_all) || defined(__glibcxx_want_ranges_as_const)
│ │ │ │ +
1762# define __cpp_lib_ranges_as_const 202311L
│ │ │ │ +
1763# endif
│ │ │ │ +
1764# endif
│ │ │ │ +
1765#endif /* !defined(__cpp_lib_ranges_as_const) && defined(__glibcxx_want_ranges_as_const) */
│ │ │ │ +
1766#undef __glibcxx_want_ranges_as_const
│ │ │ │ +
1767
│ │ │ │ +
1768#if !defined(__cpp_lib_ranges_enumerate)
│ │ │ │ +
1769# if (__cplusplus >= 202100L)
│ │ │ │ +
1770# define __glibcxx_ranges_enumerate 202302L
│ │ │ │ +
1771# if defined(__glibcxx_want_all) || defined(__glibcxx_want_ranges_enumerate)
│ │ │ │ +
1772# define __cpp_lib_ranges_enumerate 202302L
│ │ │ │ +
1773# endif
│ │ │ │ +
1774# endif
│ │ │ │ +
1775#endif /* !defined(__cpp_lib_ranges_enumerate) && defined(__glibcxx_want_ranges_enumerate) */
│ │ │ │ +
1776#undef __glibcxx_want_ranges_enumerate
│ │ │ │ +
1777
│ │ │ │ +
1778#if !defined(__cpp_lib_ranges_fold)
│ │ │ │ +
1779# if (__cplusplus >= 202100L)
│ │ │ │ +
1780# define __glibcxx_ranges_fold 202207L
│ │ │ │ +
1781# if defined(__glibcxx_want_all) || defined(__glibcxx_want_ranges_fold)
│ │ │ │ +
1782# define __cpp_lib_ranges_fold 202207L
│ │ │ │ +
1783# endif
│ │ │ │ +
1784# endif
│ │ │ │ +
1785#endif /* !defined(__cpp_lib_ranges_fold) && defined(__glibcxx_want_ranges_fold) */
│ │ │ │ +
1786#undef __glibcxx_want_ranges_fold
│ │ │ │ +
1787
│ │ │ │ +
1788#if !defined(__cpp_lib_ranges_contains)
│ │ │ │ +
1789# if (__cplusplus >= 202100L)
│ │ │ │ +
1790# define __glibcxx_ranges_contains 202207L
│ │ │ │ +
1791# if defined(__glibcxx_want_all) || defined(__glibcxx_want_ranges_contains)
│ │ │ │ +
1792# define __cpp_lib_ranges_contains 202207L
│ │ │ │ +
1793# endif
│ │ │ │ +
1794# endif
│ │ │ │ +
1795#endif /* !defined(__cpp_lib_ranges_contains) && defined(__glibcxx_want_ranges_contains) */
│ │ │ │ +
1796#undef __glibcxx_want_ranges_contains
│ │ │ │ +
1797
│ │ │ │ +
1798#if !defined(__cpp_lib_ranges_iota)
│ │ │ │ +
1799# if (__cplusplus >= 202100L)
│ │ │ │ +
1800# define __glibcxx_ranges_iota 202202L
│ │ │ │ +
1801# if defined(__glibcxx_want_all) || defined(__glibcxx_want_ranges_iota)
│ │ │ │ +
1802# define __cpp_lib_ranges_iota 202202L
│ │ │ │ +
1803# endif
│ │ │ │ +
1804# endif
│ │ │ │ +
1805#endif /* !defined(__cpp_lib_ranges_iota) && defined(__glibcxx_want_ranges_iota) */
│ │ │ │ +
1806#undef __glibcxx_want_ranges_iota
│ │ │ │ +
1807
│ │ │ │ +
1808#if !defined(__cpp_lib_ranges_find_last)
│ │ │ │ +
1809# if (__cplusplus >= 202100L)
│ │ │ │ +
1810# define __glibcxx_ranges_find_last 202207L
│ │ │ │ +
1811# if defined(__glibcxx_want_all) || defined(__glibcxx_want_ranges_find_last)
│ │ │ │ +
1812# define __cpp_lib_ranges_find_last 202207L
│ │ │ │ +
1813# endif
│ │ │ │ +
1814# endif
│ │ │ │ +
1815#endif /* !defined(__cpp_lib_ranges_find_last) && defined(__glibcxx_want_ranges_find_last) */
│ │ │ │ +
1816#undef __glibcxx_want_ranges_find_last
│ │ │ │ +
1817
│ │ │ │ +
1818#if !defined(__cpp_lib_constexpr_bitset)
│ │ │ │ +
1819# if (__cplusplus >= 202100L) && _GLIBCXX_HOSTED && (__cpp_constexpr_dynamic_alloc)
│ │ │ │ +
1820# define __glibcxx_constexpr_bitset 202202L
│ │ │ │ +
1821# if defined(__glibcxx_want_all) || defined(__glibcxx_want_constexpr_bitset)
│ │ │ │ +
1822# define __cpp_lib_constexpr_bitset 202202L
│ │ │ │ +
1823# endif
│ │ │ │ +
1824# endif
│ │ │ │ +
1825#endif /* !defined(__cpp_lib_constexpr_bitset) && defined(__glibcxx_want_constexpr_bitset) */
│ │ │ │ +
1826#undef __glibcxx_want_constexpr_bitset
│ │ │ │ +
1827
│ │ │ │ +
1828#if !defined(__cpp_lib_stdatomic_h)
│ │ │ │ +
1829# if (__cplusplus >= 202100L)
│ │ │ │ +
1830# define __glibcxx_stdatomic_h 202011L
│ │ │ │ +
1831# if defined(__glibcxx_want_all) || defined(__glibcxx_want_stdatomic_h)
│ │ │ │ +
1832# define __cpp_lib_stdatomic_h 202011L
│ │ │ │ +
1833# endif
│ │ │ │ +
1834# endif
│ │ │ │ +
1835#endif /* !defined(__cpp_lib_stdatomic_h) && defined(__glibcxx_want_stdatomic_h) */
│ │ │ │ +
1836#undef __glibcxx_want_stdatomic_h
│ │ │ │ +
1837
│ │ │ │ +
1838#if !defined(__cpp_lib_adaptor_iterator_pair_constructor)
│ │ │ │ +
1839# if (__cplusplus >= 202100L) && _GLIBCXX_HOSTED
│ │ │ │ +
1840# define __glibcxx_adaptor_iterator_pair_constructor 202106L
│ │ │ │ +
1841# if defined(__glibcxx_want_all) || defined(__glibcxx_want_adaptor_iterator_pair_constructor)
│ │ │ │ +
1842# define __cpp_lib_adaptor_iterator_pair_constructor 202106L
│ │ │ │ +
1843# endif
│ │ │ │ +
1844# endif
│ │ │ │ +
1845#endif /* !defined(__cpp_lib_adaptor_iterator_pair_constructor) && defined(__glibcxx_want_adaptor_iterator_pair_constructor) */
│ │ │ │ +
1846#undef __glibcxx_want_adaptor_iterator_pair_constructor
│ │ │ │ +
1847
│ │ │ │ +
1848#if !defined(__cpp_lib_flat_map)
│ │ │ │ +
1849# if (__cplusplus >= 202100L)
│ │ │ │ +
1850# define __glibcxx_flat_map 202207L
│ │ │ │ +
1851# if defined(__glibcxx_want_all) || defined(__glibcxx_want_flat_map)
│ │ │ │ +
1852# define __cpp_lib_flat_map 202207L
│ │ │ │ +
1853# endif
│ │ │ │ +
1854# endif
│ │ │ │ +
1855#endif /* !defined(__cpp_lib_flat_map) && defined(__glibcxx_want_flat_map) */
│ │ │ │ +
1856#undef __glibcxx_want_flat_map
│ │ │ │ +
1857
│ │ │ │ +
1858#if !defined(__cpp_lib_flat_set)
│ │ │ │ +
1859# if (__cplusplus >= 202100L)
│ │ │ │ +
1860# define __glibcxx_flat_set 202207L
│ │ │ │ +
1861# if defined(__glibcxx_want_all) || defined(__glibcxx_want_flat_set)
│ │ │ │ +
1862# define __cpp_lib_flat_set 202207L
│ │ │ │ +
1863# endif
│ │ │ │ +
1864# endif
│ │ │ │ +
1865#endif /* !defined(__cpp_lib_flat_set) && defined(__glibcxx_want_flat_set) */
│ │ │ │ +
1866#undef __glibcxx_want_flat_set
│ │ │ │ +
1867
│ │ │ │ +
1868#if !defined(__cpp_lib_formatters)
│ │ │ │ +
1869# if (__cplusplus >= 202100L) && _GLIBCXX_HOSTED
│ │ │ │ +
1870# define __glibcxx_formatters 202302L
│ │ │ │ +
1871# if defined(__glibcxx_want_all) || defined(__glibcxx_want_formatters)
│ │ │ │ +
1872# define __cpp_lib_formatters 202302L
│ │ │ │ +
1873# endif
│ │ │ │ +
1874# endif
│ │ │ │ +
1875#endif /* !defined(__cpp_lib_formatters) && defined(__glibcxx_want_formatters) */
│ │ │ │ +
1876#undef __glibcxx_want_formatters
│ │ │ │ +
1877
│ │ │ │ +
1878#if !defined(__cpp_lib_forward_like)
│ │ │ │ +
1879# if (__cplusplus >= 202100L)
│ │ │ │ +
1880# define __glibcxx_forward_like 202207L
│ │ │ │ +
1881# if defined(__glibcxx_want_all) || defined(__glibcxx_want_forward_like)
│ │ │ │ +
1882# define __cpp_lib_forward_like 202207L
│ │ │ │ +
1883# endif
│ │ │ │ +
1884# endif
│ │ │ │ +
1885#endif /* !defined(__cpp_lib_forward_like) && defined(__glibcxx_want_forward_like) */
│ │ │ │ +
1886#undef __glibcxx_want_forward_like
│ │ │ │ +
1887
│ │ │ │ +
1888#if !defined(__cpp_lib_generator)
│ │ │ │ +
1889# if (__cplusplus >= 202100L) && (__glibcxx_coroutine && __cpp_sized_deallocation)
│ │ │ │ +
1890# define __glibcxx_generator 202207L
│ │ │ │ +
1891# if defined(__glibcxx_want_all) || defined(__glibcxx_want_generator)
│ │ │ │ +
1892# define __cpp_lib_generator 202207L
│ │ │ │ +
1893# endif
│ │ │ │ +
1894# endif
│ │ │ │ +
1895#endif /* !defined(__cpp_lib_generator) && defined(__glibcxx_want_generator) */
│ │ │ │ +
1896#undef __glibcxx_want_generator
│ │ │ │ +
1897
│ │ │ │ +
1898#if !defined(__cpp_lib_ios_noreplace)
│ │ │ │ +
1899# if (__cplusplus >= 202100L) && _GLIBCXX_HOSTED
│ │ │ │ +
1900# define __glibcxx_ios_noreplace 202207L
│ │ │ │ +
1901# if defined(__glibcxx_want_all) || defined(__glibcxx_want_ios_noreplace)
│ │ │ │ +
1902# define __cpp_lib_ios_noreplace 202207L
│ │ │ │ +
1903# endif
│ │ │ │ +
1904# endif
│ │ │ │ +
1905#endif /* !defined(__cpp_lib_ios_noreplace) && defined(__glibcxx_want_ios_noreplace) */
│ │ │ │ +
1906#undef __glibcxx_want_ios_noreplace
│ │ │ │ +
1907
│ │ │ │ +
1908#if !defined(__cpp_lib_move_only_function)
│ │ │ │ +
1909# if (__cplusplus >= 202100L) && _GLIBCXX_HOSTED
│ │ │ │ +
1910# define __glibcxx_move_only_function 202110L
│ │ │ │ +
1911# if defined(__glibcxx_want_all) || defined(__glibcxx_want_move_only_function)
│ │ │ │ +
1912# define __cpp_lib_move_only_function 202110L
│ │ │ │ +
1913# endif
│ │ │ │ +
1914# endif
│ │ │ │ +
1915#endif /* !defined(__cpp_lib_move_only_function) && defined(__glibcxx_want_move_only_function) */
│ │ │ │ +
1916#undef __glibcxx_want_move_only_function
│ │ │ │ +
1917
│ │ │ │ +
1918#if !defined(__cpp_lib_out_ptr)
│ │ │ │ +
1919# if (__cplusplus >= 202100L)
│ │ │ │ +
1920# define __glibcxx_out_ptr 202311L
│ │ │ │ +
1921# if defined(__glibcxx_want_all) || defined(__glibcxx_want_out_ptr)
│ │ │ │ +
1922# define __cpp_lib_out_ptr 202311L
│ │ │ │ +
1923# endif
│ │ │ │ +
1924# endif
│ │ │ │ +
1925#endif /* !defined(__cpp_lib_out_ptr) && defined(__glibcxx_want_out_ptr) */
│ │ │ │ +
1926#undef __glibcxx_want_out_ptr
│ │ │ │ +
1927
│ │ │ │ +
1928#if !defined(__cpp_lib_print)
│ │ │ │ +
1929# if (__cplusplus >= 202100L) && _GLIBCXX_HOSTED
│ │ │ │ +
1930# define __glibcxx_print 202211L
│ │ │ │ +
1931# if defined(__glibcxx_want_all) || defined(__glibcxx_want_print)
│ │ │ │ +
1932# define __cpp_lib_print 202211L
│ │ │ │ +
1933# endif
│ │ │ │ +
1934# endif
│ │ │ │ +
1935#endif /* !defined(__cpp_lib_print) && defined(__glibcxx_want_print) */
│ │ │ │ +
1936#undef __glibcxx_want_print
│ │ │ │ +
1937
│ │ │ │ +
1938#if !defined(__cpp_lib_spanstream)
│ │ │ │ +
1939# if (__cplusplus >= 202100L) && _GLIBCXX_HOSTED && (__glibcxx_span)
│ │ │ │ +
1940# define __glibcxx_spanstream 202106L
│ │ │ │ +
1941# if defined(__glibcxx_want_all) || defined(__glibcxx_want_spanstream)
│ │ │ │ +
1942# define __cpp_lib_spanstream 202106L
│ │ │ │ +
1943# endif
│ │ │ │ +
1944# endif
│ │ │ │ +
1945#endif /* !defined(__cpp_lib_spanstream) && defined(__glibcxx_want_spanstream) */
│ │ │ │ +
1946#undef __glibcxx_want_spanstream
│ │ │ │ +
1947
│ │ │ │ +
1948#if !defined(__cpp_lib_stacktrace)
│ │ │ │ +
1949# if (__cplusplus >= 202100L) && _GLIBCXX_HOSTED && (_GLIBCXX_HAVE_STACKTRACE)
│ │ │ │ +
1950# define __glibcxx_stacktrace 202011L
│ │ │ │ +
1951# if defined(__glibcxx_want_all) || defined(__glibcxx_want_stacktrace)
│ │ │ │ +
1952# define __cpp_lib_stacktrace 202011L
│ │ │ │ +
1953# endif
│ │ │ │ +
1954# endif
│ │ │ │ +
1955#endif /* !defined(__cpp_lib_stacktrace) && defined(__glibcxx_want_stacktrace) */
│ │ │ │ +
1956#undef __glibcxx_want_stacktrace
│ │ │ │ +
1957
│ │ │ │ +
1958#if !defined(__cpp_lib_string_contains)
│ │ │ │ +
1959# if (__cplusplus >= 202100L) && _GLIBCXX_HOSTED
│ │ │ │ +
1960# define __glibcxx_string_contains 202011L
│ │ │ │ +
1961# if defined(__glibcxx_want_all) || defined(__glibcxx_want_string_contains)
│ │ │ │ +
1962# define __cpp_lib_string_contains 202011L
│ │ │ │ +
1963# endif
│ │ │ │ +
1964# endif
│ │ │ │ +
1965#endif /* !defined(__cpp_lib_string_contains) && defined(__glibcxx_want_string_contains) */
│ │ │ │ +
1966#undef __glibcxx_want_string_contains
│ │ │ │ +
1967
│ │ │ │ +
1968#if !defined(__cpp_lib_string_resize_and_overwrite)
│ │ │ │ +
1969# if (__cplusplus >= 202100L) && _GLIBCXX_HOSTED
│ │ │ │ +
1970# define __glibcxx_string_resize_and_overwrite 202110L
│ │ │ │ +
1971# if defined(__glibcxx_want_all) || defined(__glibcxx_want_string_resize_and_overwrite)
│ │ │ │ +
1972# define __cpp_lib_string_resize_and_overwrite 202110L
│ │ │ │ +
1973# endif
│ │ │ │ +
1974# endif
│ │ │ │ +
1975#endif /* !defined(__cpp_lib_string_resize_and_overwrite) && defined(__glibcxx_want_string_resize_and_overwrite) */
│ │ │ │ +
1976#undef __glibcxx_want_string_resize_and_overwrite
│ │ │ │ +
1977
│ │ │ │ +
1978#if !defined(__cpp_lib_to_underlying)
│ │ │ │ +
1979# if (__cplusplus >= 202100L)
│ │ │ │ +
1980# define __glibcxx_to_underlying 202102L
│ │ │ │ +
1981# if defined(__glibcxx_want_all) || defined(__glibcxx_want_to_underlying)
│ │ │ │ +
1982# define __cpp_lib_to_underlying 202102L
│ │ │ │ +
1983# endif
│ │ │ │ +
1984# endif
│ │ │ │ +
1985#endif /* !defined(__cpp_lib_to_underlying) && defined(__glibcxx_want_to_underlying) */
│ │ │ │ +
1986#undef __glibcxx_want_to_underlying
│ │ │ │ +
1987
│ │ │ │ +
1988#if !defined(__cpp_lib_tuple_like)
│ │ │ │ +
1989# if (__cplusplus > 202302L) && (__cpp_explicit_this_parameter >= 202110L)
│ │ │ │ +
1990# define __glibcxx_tuple_like 202311L
│ │ │ │ +
1991# if defined(__glibcxx_want_all) || defined(__glibcxx_want_tuple_like)
│ │ │ │ +
1992# define __cpp_lib_tuple_like 202311L
│ │ │ │ +
1993# endif
│ │ │ │ +
1994# elif (__cplusplus >= 202100L)
│ │ │ │ +
1995# define __glibcxx_tuple_like 202207L
│ │ │ │ +
1996# if defined(__glibcxx_want_all) || defined(__glibcxx_want_tuple_like)
│ │ │ │ +
1997# define __cpp_lib_tuple_like 202207L
│ │ │ │ +
1998# endif
│ │ │ │ +
1999# endif
│ │ │ │ +
2000#endif /* !defined(__cpp_lib_tuple_like) && defined(__glibcxx_want_tuple_like) */
│ │ │ │ +
2001#undef __glibcxx_want_tuple_like
│ │ │ │ +
2002
│ │ │ │ +
2003#if !defined(__cpp_lib_unreachable)
│ │ │ │ +
2004# if (__cplusplus >= 202100L)
│ │ │ │ +
2005# define __glibcxx_unreachable 202202L
│ │ │ │ +
2006# if defined(__glibcxx_want_all) || defined(__glibcxx_want_unreachable)
│ │ │ │ +
2007# define __cpp_lib_unreachable 202202L
│ │ │ │ +
2008# endif
│ │ │ │ +
2009# endif
│ │ │ │ +
2010#endif /* !defined(__cpp_lib_unreachable) && defined(__glibcxx_want_unreachable) */
│ │ │ │ +
2011#undef __glibcxx_want_unreachable
│ │ │ │ +
2012
│ │ │ │ +
2013#if !defined(__cpp_lib_algorithm_default_value_type)
│ │ │ │ +
2014# if (__cplusplus > 202302L)
│ │ │ │ +
2015# define __glibcxx_algorithm_default_value_type 202403L
│ │ │ │ +
2016# if defined(__glibcxx_want_all) || defined(__glibcxx_want_algorithm_default_value_type)
│ │ │ │ +
2017# define __cpp_lib_algorithm_default_value_type 202403L
│ │ │ │ +
2018# endif
│ │ │ │ +
2019# endif
│ │ │ │ +
2020#endif /* !defined(__cpp_lib_algorithm_default_value_type) && defined(__glibcxx_want_algorithm_default_value_type) */
│ │ │ │ +
2021#undef __glibcxx_want_algorithm_default_value_type
│ │ │ │ +
2022
│ │ │ │ +
2023#if !defined(__cpp_lib_constexpr_new)
│ │ │ │ +
2024# if (__cplusplus > 202302L) && (__cpp_constexpr >= 202406L)
│ │ │ │ +
2025# define __glibcxx_constexpr_new 202406L
│ │ │ │ +
2026# if defined(__glibcxx_want_all) || defined(__glibcxx_want_constexpr_new)
│ │ │ │ +
2027# define __cpp_lib_constexpr_new 202406L
│ │ │ │ +
2028# endif
│ │ │ │ +
2029# endif
│ │ │ │ +
2030#endif /* !defined(__cpp_lib_constexpr_new) && defined(__glibcxx_want_constexpr_new) */
│ │ │ │ +
2031#undef __glibcxx_want_constexpr_new
│ │ │ │ +
2032
│ │ │ │ +
2033#if !defined(__cpp_lib_fstream_native_handle)
│ │ │ │ +
2034# if (__cplusplus > 202302L) && _GLIBCXX_HOSTED
│ │ │ │ +
2035# define __glibcxx_fstream_native_handle 202306L
│ │ │ │ +
2036# if defined(__glibcxx_want_all) || defined(__glibcxx_want_fstream_native_handle)
│ │ │ │ +
2037# define __cpp_lib_fstream_native_handle 202306L
│ │ │ │ +
2038# endif
│ │ │ │ +
2039# endif
│ │ │ │ +
2040#endif /* !defined(__cpp_lib_fstream_native_handle) && defined(__glibcxx_want_fstream_native_handle) */
│ │ │ │ +
2041#undef __glibcxx_want_fstream_native_handle
│ │ │ │ +
2042
│ │ │ │ +
2043#if !defined(__cpp_lib_is_virtual_base_of)
│ │ │ │ +
2044# if (__cplusplus > 202302L) && (__has_builtin(__builtin_is_virtual_base_of))
│ │ │ │ +
2045# define __glibcxx_is_virtual_base_of 202406L
│ │ │ │ +
2046# if defined(__glibcxx_want_all) || defined(__glibcxx_want_is_virtual_base_of)
│ │ │ │ +
2047# define __cpp_lib_is_virtual_base_of 202406L
│ │ │ │ +
2048# endif
│ │ │ │ +
2049# endif
│ │ │ │ +
2050#endif /* !defined(__cpp_lib_is_virtual_base_of) && defined(__glibcxx_want_is_virtual_base_of) */
│ │ │ │ +
2051#undef __glibcxx_want_is_virtual_base_of
│ │ │ │ +
2052
│ │ │ │ +
2053#if !defined(__cpp_lib_ranges_cache_latest)
│ │ │ │ +
2054# if (__cplusplus > 202302L)
│ │ │ │ +
2055# define __glibcxx_ranges_cache_latest 202411L
│ │ │ │ +
2056# if defined(__glibcxx_want_all) || defined(__glibcxx_want_ranges_cache_latest)
│ │ │ │ +
2057# define __cpp_lib_ranges_cache_latest 202411L
│ │ │ │ +
2058# endif
│ │ │ │ +
2059# endif
│ │ │ │ +
2060#endif /* !defined(__cpp_lib_ranges_cache_latest) && defined(__glibcxx_want_ranges_cache_latest) */
│ │ │ │ +
2061#undef __glibcxx_want_ranges_cache_latest
│ │ │ │ +
2062
│ │ │ │ +
2063#if !defined(__cpp_lib_ranges_concat)
│ │ │ │ +
2064# if (__cplusplus > 202302L) && (__cpp_pack_indexing)
│ │ │ │ +
2065# define __glibcxx_ranges_concat 202403L
│ │ │ │ +
2066# if defined(__glibcxx_want_all) || defined(__glibcxx_want_ranges_concat)
│ │ │ │ +
2067# define __cpp_lib_ranges_concat 202403L
│ │ │ │ +
2068# endif
│ │ │ │ +
2069# endif
│ │ │ │ +
2070#endif /* !defined(__cpp_lib_ranges_concat) && defined(__glibcxx_want_ranges_concat) */
│ │ │ │ +
2071#undef __glibcxx_want_ranges_concat
│ │ │ │ +
2072
│ │ │ │ +
2073#if !defined(__cpp_lib_ratio)
│ │ │ │ +
2074# if (__cplusplus > 202302L)
│ │ │ │ +
2075# define __glibcxx_ratio 202306L
│ │ │ │ +
2076# if defined(__glibcxx_want_all) || defined(__glibcxx_want_ratio)
│ │ │ │ +
2077# define __cpp_lib_ratio 202306L
│ │ │ │ +
2078# endif
│ │ │ │ +
2079# endif
│ │ │ │ +
2080#endif /* !defined(__cpp_lib_ratio) && defined(__glibcxx_want_ratio) */
│ │ │ │ +
2081#undef __glibcxx_want_ratio
│ │ │ │ +
2082
│ │ │ │ +
2083#if !defined(__cpp_lib_reference_wrapper)
│ │ │ │ +
2084# if (__cplusplus > 202302L)
│ │ │ │ +
2085# define __glibcxx_reference_wrapper 202403L
│ │ │ │ +
2086# if defined(__glibcxx_want_all) || defined(__glibcxx_want_reference_wrapper)
│ │ │ │ +
2087# define __cpp_lib_reference_wrapper 202403L
│ │ │ │ +
2088# endif
│ │ │ │ +
2089# endif
│ │ │ │ +
2090#endif /* !defined(__cpp_lib_reference_wrapper) && defined(__glibcxx_want_reference_wrapper) */
│ │ │ │ +
2091#undef __glibcxx_want_reference_wrapper
│ │ │ │ +
2092
│ │ │ │ +
2093#if !defined(__cpp_lib_saturation_arithmetic)
│ │ │ │ +
2094# if (__cplusplus > 202302L)
│ │ │ │ +
2095# define __glibcxx_saturation_arithmetic 202311L
│ │ │ │ +
2096# if defined(__glibcxx_want_all) || defined(__glibcxx_want_saturation_arithmetic)
│ │ │ │ +
2097# define __cpp_lib_saturation_arithmetic 202311L
│ │ │ │ +
2098# endif
│ │ │ │ +
2099# endif
│ │ │ │ +
2100#endif /* !defined(__cpp_lib_saturation_arithmetic) && defined(__glibcxx_want_saturation_arithmetic) */
│ │ │ │ +
2101#undef __glibcxx_want_saturation_arithmetic
│ │ │ │ +
2102
│ │ │ │ +
2103#if !defined(__cpp_lib_span_initializer_list)
│ │ │ │ +
2104# if (__cplusplus > 202302L)
│ │ │ │ +
2105# define __glibcxx_span_initializer_list 202311L
│ │ │ │ +
2106# if defined(__glibcxx_want_all) || defined(__glibcxx_want_span_initializer_list)
│ │ │ │ +
2107# define __cpp_lib_span_initializer_list 202311L
│ │ │ │ +
2108# endif
│ │ │ │ +
2109# endif
│ │ │ │ +
2110#endif /* !defined(__cpp_lib_span_initializer_list) && defined(__glibcxx_want_span_initializer_list) */
│ │ │ │ +
2111#undef __glibcxx_want_span_initializer_list
│ │ │ │ +
2112
│ │ │ │ +
2113#if !defined(__cpp_lib_text_encoding)
│ │ │ │ +
2114# if (__cplusplus > 202302L) && _GLIBCXX_HOSTED && (_GLIBCXX_USE_NL_LANGINFO_L)
│ │ │ │ +
2115# define __glibcxx_text_encoding 202306L
│ │ │ │ +
2116# if defined(__glibcxx_want_all) || defined(__glibcxx_want_text_encoding)
│ │ │ │ +
2117# define __cpp_lib_text_encoding 202306L
│ │ │ │ +
2118# endif
│ │ │ │ +
2119# endif
│ │ │ │ +
2120#endif /* !defined(__cpp_lib_text_encoding) && defined(__glibcxx_want_text_encoding) */
│ │ │ │ +
2121#undef __glibcxx_want_text_encoding
│ │ │ │ +
2122
│ │ │ │ +
2123#if !defined(__cpp_lib_ranges_to_input)
│ │ │ │ +
2124# if (__cplusplus > 202302L)
│ │ │ │ +
2125# define __glibcxx_ranges_to_input 202502L
│ │ │ │ +
2126# if defined(__glibcxx_want_all) || defined(__glibcxx_want_ranges_to_input)
│ │ │ │ +
2127# define __cpp_lib_ranges_to_input 202502L
│ │ │ │ +
2128# endif
│ │ │ │ +
2129# endif
│ │ │ │ +
2130#endif /* !defined(__cpp_lib_ranges_to_input) && defined(__glibcxx_want_ranges_to_input) */
│ │ │ │ +
2131#undef __glibcxx_want_ranges_to_input
│ │ │ │ +
2132
│ │ │ │ +
2133#if !defined(__cpp_lib_to_string)
│ │ │ │ +
2134# if (__cplusplus > 202302L) && _GLIBCXX_HOSTED && (__glibcxx_to_chars)
│ │ │ │ +
2135# define __glibcxx_to_string 202306L
│ │ │ │ +
2136# if defined(__glibcxx_want_all) || defined(__glibcxx_want_to_string)
│ │ │ │ +
2137# define __cpp_lib_to_string 202306L
│ │ │ │ +
2138# endif
│ │ │ │ +
2139# endif
│ │ │ │ +
2140#endif /* !defined(__cpp_lib_to_string) && defined(__glibcxx_want_to_string) */
│ │ │ │ +
2141#undef __glibcxx_want_to_string
│ │ │ │ +
2142
│ │ │ │ +
2143#if !defined(__cpp_lib_modules)
│ │ │ │ +
2144# if (__cplusplus >= 202002L) && (__cpp_modules)
│ │ │ │ +
2145# define __glibcxx_modules 202207L
│ │ │ │ +
2146# if defined(__glibcxx_want_all) || defined(__glibcxx_want_modules)
│ │ │ │ +
2147# define __cpp_lib_modules 202207L
│ │ │ │ +
2148# endif
│ │ │ │ +
2149# endif
│ │ │ │ +
2150#endif /* !defined(__cpp_lib_modules) && defined(__glibcxx_want_modules) */
│ │ │ │ +
2151#undef __glibcxx_want_modules
│ │ │ │ +
2152
│ │ │ │ +
2153#undef __glibcxx_want_all
│ │ │ │ + │ │ │ │
│ │ │ │
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├── html2text {} │ │ │ │ │ @@ -1,382 +1,2456 @@ │ │ │ │ │ libstdc++ │ │ │ │ │ -sstream.tcc │ │ │ │ │ +version.h │ │ │ │ │ _G_o_ _t_o_ _t_h_e_ _d_o_c_u_m_e_n_t_a_t_i_o_n_ _o_f_ _t_h_i_s_ _f_i_l_e_. │ │ │ │ │ -1// String based streams -*- C++ -*- │ │ │ │ │ +1// Copyright (C) 2023-2025 Free Software Foundation, Inc. │ │ │ │ │ 2 │ │ │ │ │ -3// Copyright (C) 1997-2025 Free Software Foundation, Inc. │ │ │ │ │ -4// │ │ │ │ │ -5// This file is part of the GNU ISO C++ Library. This library is free │ │ │ │ │ -6// software; you can redistribute it and/or modify it under the │ │ │ │ │ -7// terms of the GNU General Public License as published by the │ │ │ │ │ -8// Free Software Foundation; either version 3, or (at your option) │ │ │ │ │ -9// any later version. │ │ │ │ │ -10 │ │ │ │ │ -11// This library is distributed in the hope that it will be useful, │ │ │ │ │ -12// but WITHOUT ANY WARRANTY; without even the implied warranty of │ │ │ │ │ -13// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the │ │ │ │ │ -14// GNU General Public License for more details. │ │ │ │ │ -15 │ │ │ │ │ -16// Under Section 7 of GPL version 3, you are granted additional │ │ │ │ │ -17// permissions described in the GCC Runtime Library Exception, version │ │ │ │ │ -18// 3.1, as published by the Free Software Foundation. │ │ │ │ │ -19 │ │ │ │ │ -20// You should have received a copy of the GNU General Public License and │ │ │ │ │ -21// a copy of the GCC Runtime Library Exception along with this program; │ │ │ │ │ -22// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see │ │ │ │ │ -23// . │ │ │ │ │ -24 │ │ │ │ │ -25/** @file bits/sstream.tcc │ │ │ │ │ -26 * This is an internal header file, included by other library headers. │ │ │ │ │ -27 * Do not attempt to use it directly. @headername{sstream} │ │ │ │ │ -28 */ │ │ │ │ │ -29 │ │ │ │ │ -30// │ │ │ │ │ -31// ISO C++ 14882: 27.7 String-based streams │ │ │ │ │ -32// │ │ │ │ │ +3// This file is part of the GNU ISO C++ Library. This library is free │ │ │ │ │ +4// software; you can redistribute it and/or modify it under the │ │ │ │ │ +5// terms of the GNU General Public License as published by the │ │ │ │ │ +6// Free Software Foundation; either version 3, or (at your option) │ │ │ │ │ +7// any later version. │ │ │ │ │ +8 │ │ │ │ │ +9// This library is distributed in the hope that it will be useful, │ │ │ │ │ +10// but WITHOUT ANY WARRANTY; without even the implied warranty of │ │ │ │ │ +11// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the │ │ │ │ │ +12// GNU General Public License for more details. │ │ │ │ │ +13 │ │ │ │ │ +14// Under Section 7 of GPL version 3, you are granted additional │ │ │ │ │ +15// permissions described in the GCC Runtime Library Exception, version │ │ │ │ │ +16// 3.1, as published by the Free Software Foundation. │ │ │ │ │ +17 │ │ │ │ │ +18// You should have received a copy of the GNU General Public License and │ │ │ │ │ +19// a copy of the GCC Runtime Library Exception along with this program; │ │ │ │ │ +20// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see │ │ │ │ │ +21// . │ │ │ │ │ +22 │ │ │ │ │ +23// DO NOT EDIT THIS FILE (version.h) │ │ │ │ │ +24// │ │ │ │ │ +25// It has been AutoGen-ed │ │ │ │ │ +26// From the definitions version.def │ │ │ │ │ +27// and the template file version.tpl │ │ │ │ │ +28 │ │ │ │ │ +29/** @file bits/version.h │ │ │ │ │ +30 * This is an internal header file, included by other library headers. │ │ │ │ │ +31 * Do not attempt to use it directly. @headername{version} │ │ │ │ │ +32 */ │ │ │ │ │ 33 │ │ │ │ │ -34#ifndef _SSTREAM_TCC │ │ │ │ │ -35#define _SSTREAM_TCC 1 │ │ │ │ │ -36 │ │ │ │ │ -37#ifdef _GLIBCXX_SYSHDR │ │ │ │ │ -38#pragma GCC system_header │ │ │ │ │ -39#endif │ │ │ │ │ -40#pragma GCC diagnostic push │ │ │ │ │ -41#pragma GCC diagnostic ignored "-Wc++11-extensions" // extern template │ │ │ │ │ -42 │ │ │ │ │ -43namespace _s_t_d _GLIBCXX_VISIBILITY(default) │ │ │ │ │ -44{ │ │ │ │ │ -45_GLIBCXX_BEGIN_NAMESPACE_VERSION │ │ │ │ │ +34// Usage guide: │ │ │ │ │ +35// │ │ │ │ │ +36// In your usual header, do something like: │ │ │ │ │ +37// │ │ │ │ │ +38// #define __glibcxx_want_ranges │ │ │ │ │ +39// #define __glibcxx_want_concepts │ │ │ │ │ +40// #include │ │ │ │ │ +41// │ │ │ │ │ +42// This will generate the FTMs you named, and let you use them in your code │ │ │ │ │ +as │ │ │ │ │ +43// if it was user code. All macros are also exposed under __glibcxx_NAME even │ │ │ │ │ +44// if unwanted, to permit bits and other FTMs to depend on them for │ │ │ │ │ +condtional │ │ │ │ │ +45// computation without exposing extra FTMs to user code. │ │ │ │ │ 46 │ │ │ │ │ -47 template │ │ │ │ │ -48 typename basic_stringbuf<_CharT, _Traits, _Alloc>::int_type │ │ │ │ │ -_4_9 _b_a_s_i_c___s_t_r_i_n_g_b_u_f_<___C_h_a_r_T_,_ ___T_r_a_i_t_s_,_ ___A_l_l_o_c_>_:_: │ │ │ │ │ -50_ _p_b_a_c_k_f_a_i_l(int_type __c) │ │ │ │ │ -51 { │ │ │ │ │ -52 int_type __ret = traits_type::eof(); │ │ │ │ │ -53 if (this->eback() < this->gptr()) │ │ │ │ │ -54 { │ │ │ │ │ -55 // Try to put back __c into input sequence in one of three ways. │ │ │ │ │ -56 // Order these tests done in is unspecified by the standard. │ │ │ │ │ -57 const bool __testeof = traits_type::eq_int_type(__c, __ret); │ │ │ │ │ -58 if (!__testeof) │ │ │ │ │ -59 { │ │ │ │ │ -60 const bool __testeq = traits_type::eq(traits_type:: │ │ │ │ │ -61 to_char_type(__c), │ │ │ │ │ -62 this->gptr()[-1]); │ │ │ │ │ -63 const bool __testout = this->_M_mode & _i_o_s___b_a_s_e_:_:_o_u_t; │ │ │ │ │ -64 if (__testeq || __testout) │ │ │ │ │ -65 { │ │ │ │ │ -66 this->gbump(-1); │ │ │ │ │ -67 if (!__testeq) │ │ │ │ │ -68 *this->gptr() = traits_type::to_char_type(__c); │ │ │ │ │ -69 __ret = __c; │ │ │ │ │ -70 } │ │ │ │ │ -71 } │ │ │ │ │ -72 else │ │ │ │ │ -73 { │ │ │ │ │ -74 this->gbump(-1); │ │ │ │ │ -75 __ret = traits_type::not_eof(__c); │ │ │ │ │ -76 } │ │ │ │ │ -77 } │ │ │ │ │ -78 return __ret; │ │ │ │ │ -79 } │ │ │ │ │ -80 │ │ │ │ │ -81 template │ │ │ │ │ -82 typename basic_stringbuf<_CharT, _Traits, _Alloc>::int_type │ │ │ │ │ -_8_3 _b_a_s_i_c___s_t_r_i_n_g_b_u_f_<___C_h_a_r_T_,_ ___T_r_a_i_t_s_,_ ___A_l_l_o_c_>_:_: │ │ │ │ │ -84_ _o_v_e_r_f_l_o_w(int_type __c) │ │ │ │ │ -85 { │ │ │ │ │ -86 const bool __testout = this->_M_mode & _i_o_s___b_a_s_e_:_:_o_u_t; │ │ │ │ │ -87 if (__builtin_expect(!__testout, false)) │ │ │ │ │ -88 return traits_type::eof(); │ │ │ │ │ -89 │ │ │ │ │ -90 const bool __testeof = traits_type::eq_int_type(__c, traits_type::eof()); │ │ │ │ │ -91 if (__builtin_expect(__testeof, false)) │ │ │ │ │ -92 return traits_type::not_eof(__c); │ │ │ │ │ -93 │ │ │ │ │ -94 const __size_type __capacity = _M_string.capacity(); │ │ │ │ │ -95 │ │ │ │ │ -96#if _GLIBCXX_USE_CXX11_ABI │ │ │ │ │ -97 if (size_t(this->epptr() - this->pbase()) < __capacity) │ │ │ │ │ -98 { │ │ │ │ │ -99 // There is additional capacity in _M_string that can be used. │ │ │ │ │ -100 char_type* __base = const_cast(_M_string.data()); │ │ │ │ │ -101 _M_pbump(__base, __base + __capacity, this->pptr() - this->pbase()); │ │ │ │ │ -102 if (_M_mode & _i_o_s___b_a_s_e_:_:_i_n) │ │ │ │ │ -103 { │ │ │ │ │ -104 const __size_type __nget = this->gptr() - this->eback(); │ │ │ │ │ -105 const __size_type __eget = this->egptr() - this->eback(); │ │ │ │ │ -106 this->setg(__base, __base + __nget, __base + __eget + 1); │ │ │ │ │ -107 } │ │ │ │ │ -108 *this->pptr() = traits_type::to_char_type(__c); │ │ │ │ │ -109 this->pbump(1); │ │ │ │ │ -110 return __c; │ │ │ │ │ -111 } │ │ │ │ │ -112#endif │ │ │ │ │ -113 │ │ │ │ │ -114 const __size_type __max_size = _M_string.max_size(); │ │ │ │ │ -115 const bool __testput = this->pptr() < this->epptr(); │ │ │ │ │ -116 if (__builtin_expect(!__testput && __capacity == __max_size, false)) │ │ │ │ │ -117 return traits_type::eof(); │ │ │ │ │ -118 │ │ │ │ │ -119 // Try to append __c into output sequence in one of two ways. │ │ │ │ │ -120 // Order these tests done in is unspecified by the standard. │ │ │ │ │ -121 const char_type __conv = traits_type::to_char_type(__c); │ │ │ │ │ -122 if (!__testput) │ │ │ │ │ -123 { │ │ │ │ │ -124 // NB: Start ostringstream buffers at 512 chars. This is an │ │ │ │ │ -125 // experimental value (pronounced "arbitrary" in some of the │ │ │ │ │ -126 // hipper English-speaking countries), and can be changed to │ │ │ │ │ -127 // suit particular needs. │ │ │ │ │ -128 // │ │ │ │ │ -129 // _GLIBCXX_RESOLVE_LIB_DEFECTS │ │ │ │ │ -130 // 169. Bad efficiency of overflow() mandated │ │ │ │ │ -131 // 432. stringbuf::overflow() makes only one write position │ │ │ │ │ -132 // available │ │ │ │ │ -133 const __size_type __opt_len = _s_t_d_:_:_m_a_x(__size_type(2 * __capacity), │ │ │ │ │ -134 __size_type(512)); │ │ │ │ │ -135 const __size_type __len = _s_t_d_:_:_m_i_n(__opt_len, __max_size); │ │ │ │ │ -136 _____s_t_r_i_n_g___t_y_p_e __tmp(_M_string.get_allocator()); │ │ │ │ │ -137 __tmp._r_e_s_e_r_v_e(__len); │ │ │ │ │ -138 if (this->pbase()) │ │ │ │ │ -139 __tmp._a_s_s_i_g_n(this->pbase(), this->epptr() - this->pbase()); │ │ │ │ │ -140 __tmp._p_u_s_h___b_a_c_k(__conv); │ │ │ │ │ -141 _M_string.swap(__tmp); │ │ │ │ │ -142 _M_sync(const_cast(_M_string.data()), │ │ │ │ │ -143 this->gptr() - this->eback(), this->pptr() - this->pbase()); │ │ │ │ │ -144 } │ │ │ │ │ -145 else │ │ │ │ │ -146 *this->pptr() = __conv; │ │ │ │ │ -147 this->pbump(1); │ │ │ │ │ -148 return __c; │ │ │ │ │ -149 } │ │ │ │ │ -150 │ │ │ │ │ -151 template │ │ │ │ │ -152 typename basic_stringbuf<_CharT, _Traits, _Alloc>::int_type │ │ │ │ │ -_1_5_3 _b_a_s_i_c___s_t_r_i_n_g_b_u_f_<___C_h_a_r_T_,_ ___T_r_a_i_t_s_,_ ___A_l_l_o_c_>_:_: │ │ │ │ │ -154_ _u_n_d_e_r_f_l_o_w() │ │ │ │ │ -155 { │ │ │ │ │ -156 int_type __ret = traits_type::eof(); │ │ │ │ │ -157 const bool __testin = this->_M_mode & _i_o_s___b_a_s_e_:_:_i_n; │ │ │ │ │ -158 if (__testin) │ │ │ │ │ -159 { │ │ │ │ │ -160 // Update egptr() to match the actual string end. │ │ │ │ │ -161 _M_update_egptr(); │ │ │ │ │ -162 │ │ │ │ │ -163 if (this->gptr() < this->egptr()) │ │ │ │ │ -164 __ret = traits_type::to_int_type(*this->gptr()); │ │ │ │ │ -165 } │ │ │ │ │ -166 return __ret; │ │ │ │ │ -167 } │ │ │ │ │ -168 │ │ │ │ │ -169 template │ │ │ │ │ -170 typename basic_stringbuf<_CharT, _Traits, _Alloc>::pos_type │ │ │ │ │ -_1_7_1 _b_a_s_i_c___s_t_r_i_n_g_b_u_f_<___C_h_a_r_T_,_ ___T_r_a_i_t_s_,_ ___A_l_l_o_c_>_:_: │ │ │ │ │ -172_ _s_e_e_k_o_f_f(off_type __off, ios_base::seekdir __way, ios_base::openmode __mode) │ │ │ │ │ -173 { │ │ │ │ │ -174 pos_type __ret = pos_type(off_type(-1)); │ │ │ │ │ -175 bool __testin = (_i_o_s___b_a_s_e_:_:_i_n & this->_M_mode & __mode) != 0; │ │ │ │ │ -176 bool __testout = (_i_o_s___b_a_s_e_:_:_o_u_t & this->_M_mode & __mode) != 0; │ │ │ │ │ -177 const bool __testboth = __testin && __testout && __way != _i_o_s___b_a_s_e_:_:_c_u_r; │ │ │ │ │ -178 __testin &= !(__mode & _i_o_s___b_a_s_e_:_:_o_u_t); │ │ │ │ │ -179 __testout &= !(__mode & _i_o_s___b_a_s_e_:_:_i_n); │ │ │ │ │ -180 │ │ │ │ │ -181 // _GLIBCXX_RESOLVE_LIB_DEFECTS │ │ │ │ │ -182 // 453. basic_stringbuf::seekoff need not always fail for an empty stream. │ │ │ │ │ -183 const char_type* __beg = __testin ? this->eback() : this->pbase(); │ │ │ │ │ -184 if ((__beg || !__off) && (__testin || __testout || __testboth)) │ │ │ │ │ -185 { │ │ │ │ │ -186 _M_update_egptr(); │ │ │ │ │ +47#ifdef _GLIBCXX_SYSHDR │ │ │ │ │ +48#pragma GCC system_header │ │ │ │ │ +49#endif │ │ │ │ │ +50 │ │ │ │ │ +51#include <_b_i_t_s_/_c_+_+_c_o_n_f_i_g_._h> │ │ │ │ │ +52 │ │ │ │ │ +53#if !defined(__cpp_lib_incomplete_container_elements) │ │ │ │ │ +54# if _GLIBCXX_HOSTED │ │ │ │ │ +55# define __glibcxx_incomplete_container_elements 201505L │ │ │ │ │ +56# if defined(__glibcxx_want_all) || defined │ │ │ │ │ +(__glibcxx_want_incomplete_container_elements) │ │ │ │ │ +57# define __cpp_lib_incomplete_container_elements 201505L │ │ │ │ │ +58# endif │ │ │ │ │ +59# endif │ │ │ │ │ +60#endif /* !defined(__cpp_lib_incomplete_container_elements) && defined │ │ │ │ │ +(__glibcxx_want_incomplete_container_elements) */ │ │ │ │ │ +61#undef __glibcxx_want_incomplete_container_elements │ │ │ │ │ +62 │ │ │ │ │ +63#if !defined(__cpp_lib_uncaught_exceptions) │ │ │ │ │ +64# if ((defined(__STRICT_ANSI__) && __cplusplus >= 201703L) || (!defined │ │ │ │ │ +(__STRICT_ANSI__) && __cplusplus >= 199711L)) │ │ │ │ │ +65# define __glibcxx_uncaught_exceptions 201411L │ │ │ │ │ +66# if defined(__glibcxx_want_all) || defined │ │ │ │ │ +(__glibcxx_want_uncaught_exceptions) │ │ │ │ │ +67# define __cpp_lib_uncaught_exceptions 201411L │ │ │ │ │ +68# endif │ │ │ │ │ +69# endif │ │ │ │ │ +70#endif /* !defined(__cpp_lib_uncaught_exceptions) && defined │ │ │ │ │ +(__glibcxx_want_uncaught_exceptions) */ │ │ │ │ │ +71#undef __glibcxx_want_uncaught_exceptions │ │ │ │ │ +72 │ │ │ │ │ +73#if !defined(__cpp_lib_allocator_traits_is_always_equal) │ │ │ │ │ +74# if (__cplusplus >= 201103L) │ │ │ │ │ +75# define __glibcxx_allocator_traits_is_always_equal 201411L │ │ │ │ │ +76# if defined(__glibcxx_want_all) || defined │ │ │ │ │ +(__glibcxx_want_allocator_traits_is_always_equal) │ │ │ │ │ +77# define __cpp_lib_allocator_traits_is_always_equal 201411L │ │ │ │ │ +78# endif │ │ │ │ │ +79# endif │ │ │ │ │ +80#endif /* !defined(__cpp_lib_allocator_traits_is_always_equal) && defined │ │ │ │ │ +(__glibcxx_want_allocator_traits_is_always_equal) */ │ │ │ │ │ +81#undef __glibcxx_want_allocator_traits_is_always_equal │ │ │ │ │ +82 │ │ │ │ │ +83#if !defined(__cpp_lib_is_null_pointer) │ │ │ │ │ +84# if (__cplusplus >= 201103L) │ │ │ │ │ +85# define __glibcxx_is_null_pointer 201309L │ │ │ │ │ +86# if defined(__glibcxx_want_all) || defined(__glibcxx_want_is_null_pointer) │ │ │ │ │ +87# define __cpp_lib_is_null_pointer 201309L │ │ │ │ │ +88# endif │ │ │ │ │ +89# endif │ │ │ │ │ +90#endif /* !defined(__cpp_lib_is_null_pointer) && defined │ │ │ │ │ +(__glibcxx_want_is_null_pointer) */ │ │ │ │ │ +91#undef __glibcxx_want_is_null_pointer │ │ │ │ │ +92 │ │ │ │ │ +93#if !defined(__cpp_lib_result_of_sfinae) │ │ │ │ │ +94# if (__cplusplus >= 201103L) │ │ │ │ │ +95# define __glibcxx_result_of_sfinae 201210L │ │ │ │ │ +96# if defined(__glibcxx_want_all) || defined(__glibcxx_want_result_of_sfinae) │ │ │ │ │ +97# define __cpp_lib_result_of_sfinae 201210L │ │ │ │ │ +98# endif │ │ │ │ │ +99# endif │ │ │ │ │ +100#endif /* !defined(__cpp_lib_result_of_sfinae) && defined │ │ │ │ │ +(__glibcxx_want_result_of_sfinae) */ │ │ │ │ │ +101#undef __glibcxx_want_result_of_sfinae │ │ │ │ │ +102 │ │ │ │ │ +103#if !defined(__cpp_lib_shared_ptr_arrays) │ │ │ │ │ +104# if (__cplusplus >= 202002L) && _GLIBCXX_HOSTED │ │ │ │ │ +105# define __glibcxx_shared_ptr_arrays 201707L │ │ │ │ │ +106# if defined(__glibcxx_want_all) || defined │ │ │ │ │ +(__glibcxx_want_shared_ptr_arrays) │ │ │ │ │ +107# define __cpp_lib_shared_ptr_arrays 201707L │ │ │ │ │ +108# endif │ │ │ │ │ +109# elif (__cplusplus >= 201103L) && _GLIBCXX_HOSTED │ │ │ │ │ +110# define __glibcxx_shared_ptr_arrays 201611L │ │ │ │ │ +111# if defined(__glibcxx_want_all) || defined │ │ │ │ │ +(__glibcxx_want_shared_ptr_arrays) │ │ │ │ │ +112# define __cpp_lib_shared_ptr_arrays 201611L │ │ │ │ │ +113# endif │ │ │ │ │ +114# endif │ │ │ │ │ +115#endif /* !defined(__cpp_lib_shared_ptr_arrays) && defined │ │ │ │ │ +(__glibcxx_want_shared_ptr_arrays) */ │ │ │ │ │ +116#undef __glibcxx_want_shared_ptr_arrays │ │ │ │ │ +117 │ │ │ │ │ +118#if !defined(__cpp_lib_is_swappable) │ │ │ │ │ +119# if ((defined(__STRICT_ANSI__) && __cplusplus >= 201703L) || (!defined │ │ │ │ │ +(__STRICT_ANSI__) && __cplusplus >= 201103L)) │ │ │ │ │ +120# define __glibcxx_is_swappable 201603L │ │ │ │ │ +121# if defined(__glibcxx_want_all) || defined(__glibcxx_want_is_swappable) │ │ │ │ │ +122# define __cpp_lib_is_swappable 201603L │ │ │ │ │ +123# endif │ │ │ │ │ +124# endif │ │ │ │ │ +125#endif /* !defined(__cpp_lib_is_swappable) && defined │ │ │ │ │ +(__glibcxx_want_is_swappable) */ │ │ │ │ │ +126#undef __glibcxx_want_is_swappable │ │ │ │ │ +127 │ │ │ │ │ +128#if !defined(__cpp_lib_void_t) │ │ │ │ │ +129# if ((defined(__STRICT_ANSI__) && __cplusplus >= 201703L) || (!defined │ │ │ │ │ +(__STRICT_ANSI__) && __cplusplus >= 201103L)) │ │ │ │ │ +130# define __glibcxx_void_t 201411L │ │ │ │ │ +131# if defined(__glibcxx_want_all) || defined(__glibcxx_want_void_t) │ │ │ │ │ +132# define __cpp_lib_void_t 201411L │ │ │ │ │ +133# endif │ │ │ │ │ +134# endif │ │ │ │ │ +135#endif /* !defined(__cpp_lib_void_t) && defined(__glibcxx_want_void_t) */ │ │ │ │ │ +136#undef __glibcxx_want_void_t │ │ │ │ │ +137 │ │ │ │ │ +138#if !defined(__cpp_lib_enable_shared_from_this) │ │ │ │ │ +139# if ((defined(__STRICT_ANSI__) && __cplusplus >= 201703L) || (!defined │ │ │ │ │ +(__STRICT_ANSI__) && __cplusplus >= 201103L)) && _GLIBCXX_HOSTED │ │ │ │ │ +140# define __glibcxx_enable_shared_from_this 201603L │ │ │ │ │ +141# if defined(__glibcxx_want_all) || defined │ │ │ │ │ +(__glibcxx_want_enable_shared_from_this) │ │ │ │ │ +142# define __cpp_lib_enable_shared_from_this 201603L │ │ │ │ │ +143# endif │ │ │ │ │ +144# endif │ │ │ │ │ +145#endif /* !defined(__cpp_lib_enable_shared_from_this) && defined │ │ │ │ │ +(__glibcxx_want_enable_shared_from_this) */ │ │ │ │ │ +146#undef __glibcxx_want_enable_shared_from_this │ │ │ │ │ +147 │ │ │ │ │ +148#if !defined(__cpp_lib_math_spec_funcs) │ │ │ │ │ +149# if (__cplusplus >= 201103L) │ │ │ │ │ +150# define __glibcxx_math_spec_funcs 201003L │ │ │ │ │ +151# if defined(__glibcxx_want_all) || defined(__glibcxx_want_math_spec_funcs) │ │ │ │ │ +152# define __STDCPP_MATH_SPEC_FUNCS__ 201003L │ │ │ │ │ +153# endif │ │ │ │ │ +154# endif │ │ │ │ │ +155#endif /* !defined(__cpp_lib_math_spec_funcs) && defined │ │ │ │ │ +(__glibcxx_want_math_spec_funcs) */ │ │ │ │ │ +156#undef __glibcxx_want_math_spec_funcs │ │ │ │ │ +157 │ │ │ │ │ +158#if !defined(__cpp_lib_coroutine) │ │ │ │ │ +159# if (__cplusplus >= 201402L) && (__cpp_impl_coroutine) │ │ │ │ │ +160# define __glibcxx_coroutine 201902L │ │ │ │ │ +161# if defined(__glibcxx_want_all) || defined(__glibcxx_want_coroutine) │ │ │ │ │ +162# define __cpp_lib_coroutine 201902L │ │ │ │ │ +163# endif │ │ │ │ │ +164# endif │ │ │ │ │ +165#endif /* !defined(__cpp_lib_coroutine) && defined(__glibcxx_want_coroutine) │ │ │ │ │ +*/ │ │ │ │ │ +166#undef __glibcxx_want_coroutine │ │ │ │ │ +167 │ │ │ │ │ +168#if !defined(__cpp_lib_exchange_function) │ │ │ │ │ +169# if (__cplusplus >= 201402L) │ │ │ │ │ +170# define __glibcxx_exchange_function 201304L │ │ │ │ │ +171# if defined(__glibcxx_want_all) || defined │ │ │ │ │ +(__glibcxx_want_exchange_function) │ │ │ │ │ +172# define __cpp_lib_exchange_function 201304L │ │ │ │ │ +173# endif │ │ │ │ │ +174# endif │ │ │ │ │ +175#endif /* !defined(__cpp_lib_exchange_function) && defined │ │ │ │ │ +(__glibcxx_want_exchange_function) */ │ │ │ │ │ +176#undef __glibcxx_want_exchange_function │ │ │ │ │ +177 │ │ │ │ │ +178#if !defined(__cpp_lib_integer_sequence) │ │ │ │ │ +179# if (__cplusplus >= 201402L) │ │ │ │ │ +180# define __glibcxx_integer_sequence 201304L │ │ │ │ │ +181# if defined(__glibcxx_want_all) || defined(__glibcxx_want_integer_sequence) │ │ │ │ │ +182# define __cpp_lib_integer_sequence 201304L │ │ │ │ │ +183# endif │ │ │ │ │ +184# endif │ │ │ │ │ +185#endif /* !defined(__cpp_lib_integer_sequence) && defined │ │ │ │ │ +(__glibcxx_want_integer_sequence) */ │ │ │ │ │ +186#undef __glibcxx_want_integer_sequence │ │ │ │ │ 187 │ │ │ │ │ -188 off_type __newoffi = __off; │ │ │ │ │ -189 off_type __newoffo = __newoffi; │ │ │ │ │ -190 if (__way == _i_o_s___b_a_s_e_:_:_c_u_r) │ │ │ │ │ -191 { │ │ │ │ │ -192 __newoffi += this->gptr() - __beg; │ │ │ │ │ -193 __newoffo += this->pptr() - __beg; │ │ │ │ │ -194 } │ │ │ │ │ -195 else if (__way == _i_o_s___b_a_s_e_:_:_e_n_d) │ │ │ │ │ -196 __newoffo = __newoffi += this->egptr() - __beg; │ │ │ │ │ +188#if !defined(__cpp_lib_integral_constant_callable) │ │ │ │ │ +189# if (__cplusplus >= 201402L) │ │ │ │ │ +190# define __glibcxx_integral_constant_callable 201304L │ │ │ │ │ +191# if defined(__glibcxx_want_all) || defined │ │ │ │ │ +(__glibcxx_want_integral_constant_callable) │ │ │ │ │ +192# define __cpp_lib_integral_constant_callable 201304L │ │ │ │ │ +193# endif │ │ │ │ │ +194# endif │ │ │ │ │ +195#endif /* !defined(__cpp_lib_integral_constant_callable) && defined │ │ │ │ │ +(__glibcxx_want_integral_constant_callable) */ │ │ │ │ │ +196#undef __glibcxx_want_integral_constant_callable │ │ │ │ │ 197 │ │ │ │ │ -198 if ((__testin || __testboth) │ │ │ │ │ -199 && __newoffi >= 0 │ │ │ │ │ -200 && this->egptr() - __beg >= __newoffi) │ │ │ │ │ -201 { │ │ │ │ │ -202 this->setg(this->eback(), this->eback() + __newoffi, │ │ │ │ │ -203 this->egptr()); │ │ │ │ │ -204 __ret = pos_type(__newoffi); │ │ │ │ │ -205 } │ │ │ │ │ -206 if ((__testout || __testboth) │ │ │ │ │ -207 && __newoffo >= 0 │ │ │ │ │ -208 && this->egptr() - __beg >= __newoffo) │ │ │ │ │ -209 { │ │ │ │ │ -210 _M_pbump(this->pbase(), this->epptr(), __newoffo); │ │ │ │ │ -211 __ret = pos_type(__newoffo); │ │ │ │ │ -212 } │ │ │ │ │ -213 } │ │ │ │ │ -214 return __ret; │ │ │ │ │ -215 } │ │ │ │ │ -216 │ │ │ │ │ -217 template │ │ │ │ │ -218 typename basic_stringbuf<_CharT, _Traits, _Alloc>::pos_type │ │ │ │ │ -_2_1_9 _b_a_s_i_c___s_t_r_i_n_g_b_u_f_<___C_h_a_r_T_,_ ___T_r_a_i_t_s_,_ ___A_l_l_o_c_>_:_: │ │ │ │ │ -220_ _s_e_e_k_p_o_s(pos_type __sp, ios_base::openmode __mode) │ │ │ │ │ -221 { │ │ │ │ │ -222 pos_type __ret = pos_type(off_type(-1)); │ │ │ │ │ -223 const bool __testin = (_i_o_s___b_a_s_e_:_:_i_n & this->_M_mode & __mode) != 0; │ │ │ │ │ -224 const bool __testout = (_i_o_s___b_a_s_e_:_:_o_u_t & this->_M_mode & __mode) != 0; │ │ │ │ │ -225 │ │ │ │ │ -226 const char_type* __beg = __testin ? this->eback() : this->pbase(); │ │ │ │ │ -227 if ((__beg || !off_type(__sp)) && (__testin || __testout)) │ │ │ │ │ -228 { │ │ │ │ │ -229 _M_update_egptr(); │ │ │ │ │ -230 │ │ │ │ │ -231 const off_type __pos(__sp); │ │ │ │ │ -232 const bool __testpos = (0 <= __pos │ │ │ │ │ -233 && __pos <= this->egptr() - __beg); │ │ │ │ │ -234 if (__testpos) │ │ │ │ │ -235 { │ │ │ │ │ -236 if (__testin) │ │ │ │ │ -237 this->setg(this->eback(), this->eback() + __pos, │ │ │ │ │ -238 this->egptr()); │ │ │ │ │ -239 if (__testout) │ │ │ │ │ -240 _M_pbump(this->pbase(), this->epptr(), __pos); │ │ │ │ │ -241 __ret = __sp; │ │ │ │ │ -242 } │ │ │ │ │ -243 } │ │ │ │ │ -244 return __ret; │ │ │ │ │ -245 } │ │ │ │ │ -246 │ │ │ │ │ -247 template │ │ │ │ │ -248 void │ │ │ │ │ -249 _b_a_s_i_c___s_t_r_i_n_g_b_u_f_<___C_h_a_r_T_,_ ___T_r_a_i_t_s_,_ ___A_l_l_o_c_>_:_: │ │ │ │ │ -250_ ___M___s_y_n_c(char_type* __base, __size_type __i, __size_type __o) │ │ │ │ │ -251 { │ │ │ │ │ -252 const bool __testin = _M_mode & _i_o_s___b_a_s_e_:_:_i_n; │ │ │ │ │ -253 const bool __testout = _M_mode & _i_o_s___b_a_s_e_:_:_o_u_t; │ │ │ │ │ -254 char_type* __endg = __base + _M_string.size(); │ │ │ │ │ -255 char_type* __endp = __base + _M_string.capacity(); │ │ │ │ │ -256 │ │ │ │ │ -257 if (__base != _M_string.data()) │ │ │ │ │ -258 { │ │ │ │ │ -259 // setbuf: __i == size of buffer area (_M_string.size() == 0). │ │ │ │ │ -260 __endg += __i; │ │ │ │ │ -261 __i = 0; │ │ │ │ │ -262 __endp = __endg; │ │ │ │ │ -263 } │ │ │ │ │ -264 │ │ │ │ │ -265 if (__testin) │ │ │ │ │ -266 this->setg(__base, __base + __i, __endg); │ │ │ │ │ -267 if (__testout) │ │ │ │ │ -268 { │ │ │ │ │ -269 _M_pbump(__base, __endp, __o); │ │ │ │ │ -270 // egptr() always tracks the string end. When !__testin, │ │ │ │ │ -271 // for the correct functioning of the streambuf inlines │ │ │ │ │ -272 // the other get area pointers are identical. │ │ │ │ │ -273 if (!__testin) │ │ │ │ │ -274 this->setg(__endg, __endg, __endg); │ │ │ │ │ -275 } │ │ │ │ │ -276 } │ │ │ │ │ +198#if !defined(__cpp_lib_is_final) │ │ │ │ │ +199# if (__cplusplus >= 201402L) │ │ │ │ │ +200# define __glibcxx_is_final 201402L │ │ │ │ │ +201# if defined(__glibcxx_want_all) || defined(__glibcxx_want_is_final) │ │ │ │ │ +202# define __cpp_lib_is_final 201402L │ │ │ │ │ +203# endif │ │ │ │ │ +204# endif │ │ │ │ │ +205#endif /* !defined(__cpp_lib_is_final) && defined(__glibcxx_want_is_final) │ │ │ │ │ +*/ │ │ │ │ │ +206#undef __glibcxx_want_is_final │ │ │ │ │ +207 │ │ │ │ │ +208#if !defined(__cpp_lib_make_reverse_iterator) │ │ │ │ │ +209# if (__cplusplus >= 201402L) │ │ │ │ │ +210# define __glibcxx_make_reverse_iterator 201402L │ │ │ │ │ +211# if defined(__glibcxx_want_all) || defined │ │ │ │ │ +(__glibcxx_want_make_reverse_iterator) │ │ │ │ │ +212# define __cpp_lib_make_reverse_iterator 201402L │ │ │ │ │ +213# endif │ │ │ │ │ +214# endif │ │ │ │ │ +215#endif /* !defined(__cpp_lib_make_reverse_iterator) && defined │ │ │ │ │ +(__glibcxx_want_make_reverse_iterator) */ │ │ │ │ │ +216#undef __glibcxx_want_make_reverse_iterator │ │ │ │ │ +217 │ │ │ │ │ +218#if !defined(__cpp_lib_null_iterators) │ │ │ │ │ +219# if (__cplusplus >= 201402L) │ │ │ │ │ +220# define __glibcxx_null_iterators 201304L │ │ │ │ │ +221# if defined(__glibcxx_want_all) || defined(__glibcxx_want_null_iterators) │ │ │ │ │ +222# define __cpp_lib_null_iterators 201304L │ │ │ │ │ +223# endif │ │ │ │ │ +224# endif │ │ │ │ │ +225#endif /* !defined(__cpp_lib_null_iterators) && defined │ │ │ │ │ +(__glibcxx_want_null_iterators) */ │ │ │ │ │ +226#undef __glibcxx_want_null_iterators │ │ │ │ │ +227 │ │ │ │ │ +228#if !defined(__cpp_lib_transformation_trait_aliases) │ │ │ │ │ +229# if (__cplusplus >= 201402L) │ │ │ │ │ +230# define __glibcxx_transformation_trait_aliases 201304L │ │ │ │ │ +231# if defined(__glibcxx_want_all) || defined │ │ │ │ │ +(__glibcxx_want_transformation_trait_aliases) │ │ │ │ │ +232# define __cpp_lib_transformation_trait_aliases 201304L │ │ │ │ │ +233# endif │ │ │ │ │ +234# endif │ │ │ │ │ +235#endif /* !defined(__cpp_lib_transformation_trait_aliases) && defined │ │ │ │ │ +(__glibcxx_want_transformation_trait_aliases) */ │ │ │ │ │ +236#undef __glibcxx_want_transformation_trait_aliases │ │ │ │ │ +237 │ │ │ │ │ +238#if !defined(__cpp_lib_transparent_operators) │ │ │ │ │ +239# if (__cplusplus >= 201402L) │ │ │ │ │ +240# define __glibcxx_transparent_operators 201510L │ │ │ │ │ +241# if defined(__glibcxx_want_all) || defined │ │ │ │ │ +(__glibcxx_want_transparent_operators) │ │ │ │ │ +242# define __cpp_lib_transparent_operators 201510L │ │ │ │ │ +243# endif │ │ │ │ │ +244# endif │ │ │ │ │ +245#endif /* !defined(__cpp_lib_transparent_operators) && defined │ │ │ │ │ +(__glibcxx_want_transparent_operators) */ │ │ │ │ │ +246#undef __glibcxx_want_transparent_operators │ │ │ │ │ +247 │ │ │ │ │ +248#if !defined(__cpp_lib_tuple_element_t) │ │ │ │ │ +249# if (__cplusplus >= 201402L) │ │ │ │ │ +250# define __glibcxx_tuple_element_t 201402L │ │ │ │ │ +251# if defined(__glibcxx_want_all) || defined(__glibcxx_want_tuple_element_t) │ │ │ │ │ +252# define __cpp_lib_tuple_element_t 201402L │ │ │ │ │ +253# endif │ │ │ │ │ +254# endif │ │ │ │ │ +255#endif /* !defined(__cpp_lib_tuple_element_t) && defined │ │ │ │ │ +(__glibcxx_want_tuple_element_t) */ │ │ │ │ │ +256#undef __glibcxx_want_tuple_element_t │ │ │ │ │ +257 │ │ │ │ │ +258#if !defined(__cpp_lib_tuples_by_type) │ │ │ │ │ +259# if (__cplusplus >= 201402L) │ │ │ │ │ +260# define __glibcxx_tuples_by_type 201304L │ │ │ │ │ +261# if defined(__glibcxx_want_all) || defined(__glibcxx_want_tuples_by_type) │ │ │ │ │ +262# define __cpp_lib_tuples_by_type 201304L │ │ │ │ │ +263# endif │ │ │ │ │ +264# endif │ │ │ │ │ +265#endif /* !defined(__cpp_lib_tuples_by_type) && defined │ │ │ │ │ +(__glibcxx_want_tuples_by_type) */ │ │ │ │ │ +266#undef __glibcxx_want_tuples_by_type │ │ │ │ │ +267 │ │ │ │ │ +268#if !defined(__cpp_lib_robust_nonmodifying_seq_ops) │ │ │ │ │ +269# if (__cplusplus >= 201402L) │ │ │ │ │ +270# define __glibcxx_robust_nonmodifying_seq_ops 201304L │ │ │ │ │ +271# if defined(__glibcxx_want_all) || defined │ │ │ │ │ +(__glibcxx_want_robust_nonmodifying_seq_ops) │ │ │ │ │ +272# define __cpp_lib_robust_nonmodifying_seq_ops 201304L │ │ │ │ │ +273# endif │ │ │ │ │ +274# endif │ │ │ │ │ +275#endif /* !defined(__cpp_lib_robust_nonmodifying_seq_ops) && defined │ │ │ │ │ +(__glibcxx_want_robust_nonmodifying_seq_ops) */ │ │ │ │ │ +276#undef __glibcxx_want_robust_nonmodifying_seq_ops │ │ │ │ │ 277 │ │ │ │ │ -278 template │ │ │ │ │ -279 void │ │ │ │ │ -280 basic_stringbuf<_CharT, _Traits, _Alloc>:: │ │ │ │ │ -281 _M_pbump(char_type* __pbeg, char_type* __pend, off_type __off) │ │ │ │ │ -282 { │ │ │ │ │ -283 this->setp(__pbeg, __pend); │ │ │ │ │ -284 while (__off > __gnu_cxx::__numeric_traits::__max) │ │ │ │ │ -285 { │ │ │ │ │ -286 this->pbump(__gnu_cxx::__numeric_traits::__max); │ │ │ │ │ -287 __off -= __gnu_cxx::__numeric_traits::__max; │ │ │ │ │ -288 } │ │ │ │ │ -289 this->pbump(__off); │ │ │ │ │ -290 } │ │ │ │ │ -291 │ │ │ │ │ -292 // Inhibit implicit instantiations for required instantiations, │ │ │ │ │ -293 // which are defined via explicit instantiations elsewhere. │ │ │ │ │ -294#if _GLIBCXX_EXTERN_TEMPLATE │ │ │ │ │ -295 extern template class basic_stringbuf; │ │ │ │ │ -296 extern template class basic_istringstream; │ │ │ │ │ -297 extern template class basic_ostringstream; │ │ │ │ │ -298 extern template class basic_stringstream; │ │ │ │ │ -299 │ │ │ │ │ -300#ifdef _GLIBCXX_USE_WCHAR_T │ │ │ │ │ -301 extern template class basic_stringbuf; │ │ │ │ │ -302 extern template class basic_istringstream; │ │ │ │ │ -303 extern template class basic_ostringstream; │ │ │ │ │ -304 extern template class basic_stringstream; │ │ │ │ │ -305#endif │ │ │ │ │ -306#endif │ │ │ │ │ -307 │ │ │ │ │ -308_GLIBCXX_END_NAMESPACE_VERSION │ │ │ │ │ -309} // namespace std │ │ │ │ │ -310 │ │ │ │ │ -311#pragma GCC diagnostic pop │ │ │ │ │ -312#endif │ │ │ │ │ -_s_t_d_:_:_m_a_x │ │ │ │ │ -constexpr const _Tp & max(const _Tp &, const _Tp &) │ │ │ │ │ -This does what you think it does. │ │ │ │ │ -DDeeffiinniittiioonn _s_t_l___a_l_g_o_b_a_s_e_._h_:_2_5_8 │ │ │ │ │ -_s_t_d_:_:_m_i_n │ │ │ │ │ -constexpr const _Tp & min(const _Tp &, const _Tp &) │ │ │ │ │ -This does what you think it does. │ │ │ │ │ -DDeeffiinniittiioonn _s_t_l___a_l_g_o_b_a_s_e_._h_:_2_3_4 │ │ │ │ │ -_s_t_d │ │ │ │ │ -ISO C++ entities toplevel namespace is std. │ │ │ │ │ -_s_t_d_:_:_b_a_s_i_c___s_t_r_i_n_g_b_u_f │ │ │ │ │ -The actual work of input and output (for std::string). │ │ │ │ │ -DDeeffiinniittiioonn _s_s_t_r_e_a_m_:_8_2 │ │ │ │ │ -_s_t_d_:_:_b_a_s_i_c___s_t_r_i_n_g_b_u_f_:_:_u_n_d_e_r_f_l_o_w │ │ │ │ │ -virtual int_type underflow() │ │ │ │ │ -Fetches more data from the controlled sequence. │ │ │ │ │ -DDeeffiinniittiioonn _s_s_t_r_e_a_m_._t_c_c_:_1_5_4 │ │ │ │ │ -_s_t_d_:_:_b_a_s_i_c___s_t_r_i_n_g_b_u_f_:_:_s_e_e_k_p_o_s │ │ │ │ │ -virtual pos_type seekpos(pos_type __sp, ios_base::openmode __mode=ios_base:: │ │ │ │ │ -in|ios_base::out) │ │ │ │ │ -Alters the stream positions. │ │ │ │ │ -DDeeffiinniittiioonn _s_s_t_r_e_a_m_._t_c_c_:_2_2_0 │ │ │ │ │ -_s_t_d_:_:_b_a_s_i_c___s_t_r_i_n_g_b_u_f_:_:_s_e_e_k_o_f_f │ │ │ │ │ -virtual pos_type seekoff(off_type __off, ios_base::seekdir __way, ios_base:: │ │ │ │ │ -openmode __mode=ios_base::in|ios_base::out) │ │ │ │ │ -Alters the stream positions. │ │ │ │ │ -DDeeffiinniittiioonn _s_s_t_r_e_a_m_._t_c_c_:_1_7_2 │ │ │ │ │ -_s_t_d_:_:_b_a_s_i_c___s_t_r_i_n_g_b_u_f_:_:_o_v_e_r_f_l_o_w │ │ │ │ │ -virtual int_type overflow(int_type __c=traits_type::eof()) │ │ │ │ │ -Consumes data from the buffer; writes to the controlled sequence. │ │ │ │ │ -DDeeffiinniittiioonn _s_s_t_r_e_a_m_._t_c_c_:_8_4 │ │ │ │ │ -_s_t_d_:_:_b_a_s_i_c___s_t_r_i_n_g_b_u_f_:_:_p_b_a_c_k_f_a_i_l │ │ │ │ │ -virtual int_type pbackfail(int_type __c=traits_type::eof()) │ │ │ │ │ -Tries to back up the input sequence. │ │ │ │ │ -DDeeffiinniittiioonn _s_s_t_r_e_a_m_._t_c_c_:_5_0 │ │ │ │ │ -_s_t_d_:_:_b_a_s_i_c___s_t_r_i_n_g_<_ _c_h_a_r___t_y_p_e_,_ ___T_r_a_i_t_s_,_ ___A_l_l_o_c_ _> │ │ │ │ │ -_s_t_d_:_:_b_a_s_i_c___s_t_r_i_n_g_:_:_p_u_s_h___b_a_c_k │ │ │ │ │ -void push_back(_CharT __c) │ │ │ │ │ -Append a single character. │ │ │ │ │ -DDeeffiinniittiioonn _c_o_w___s_t_r_i_n_g_._h_:_1_3_7_9 │ │ │ │ │ -_s_t_d_:_:_b_a_s_i_c___s_t_r_i_n_g_:_:_r_e_s_e_r_v_e │ │ │ │ │ -void reserve(size_type __res_arg) │ │ │ │ │ -Attempt to preallocate enough memory for specified number of characters. │ │ │ │ │ -DDeeffiinniittiioonn _c_o_w___s_t_r_i_n_g_._h_:_3_5_3_1 │ │ │ │ │ -_s_t_d_:_:_b_a_s_i_c___s_t_r_i_n_g_:_:_a_s_s_i_g_n │ │ │ │ │ -basic_string & assign(const basic_string &__str) │ │ │ │ │ -Set value to contents of another string. │ │ │ │ │ -DDeeffiinniittiioonn _c_o_w___s_t_r_i_n_g_._h_:_3_2_6_9 │ │ │ │ │ -_s_t_d_:_:_i_o_s___b_a_s_e_:_:_c_u_r │ │ │ │ │ -static const seekdir cur │ │ │ │ │ -Request a seek relative to the current position within the sequence. │ │ │ │ │ -DDeeffiinniittiioonn _i_o_s___b_a_s_e_._h_:_5_2_9 │ │ │ │ │ -_s_t_d_:_:_i_o_s___b_a_s_e_:_:_e_n_d │ │ │ │ │ -static const seekdir end │ │ │ │ │ -Request a seek relative to the current end of the sequence. │ │ │ │ │ -DDeeffiinniittiioonn _i_o_s___b_a_s_e_._h_:_5_3_2 │ │ │ │ │ -_s_t_d_:_:_i_o_s___b_a_s_e_:_:_i_n │ │ │ │ │ -static const openmode in │ │ │ │ │ -Open for input. Default for ifstream and fstream. │ │ │ │ │ -DDeeffiinniittiioonn _i_o_s___b_a_s_e_._h_:_4_9_8 │ │ │ │ │ -_s_t_d_:_:_i_o_s___b_a_s_e_:_:_o_u_t │ │ │ │ │ -static const openmode out │ │ │ │ │ -Open for output. Default for ofstream and fstream. │ │ │ │ │ -DDeeffiinniittiioonn _i_o_s___b_a_s_e_._h_:_5_0_1 │ │ │ │ │ +278#if !defined(__cpp_lib_to_chars) │ │ │ │ │ +279# if (__cplusplus > 202302L) && (_GLIBCXX_FLOAT_IS_IEEE_BINARY32 && │ │ │ │ │ +_GLIBCXX_DOUBLE_IS_IEEE_BINARY64 && __SIZE_WIDTH__ >= 32) │ │ │ │ │ +280# define __glibcxx_to_chars 202306L │ │ │ │ │ +281# if defined(__glibcxx_want_all) || defined(__glibcxx_want_to_chars) │ │ │ │ │ +282# define __cpp_lib_to_chars 202306L │ │ │ │ │ +283# endif │ │ │ │ │ +284# elif (__cplusplus >= 201402L) && (_GLIBCXX_FLOAT_IS_IEEE_BINARY32 && │ │ │ │ │ +_GLIBCXX_DOUBLE_IS_IEEE_BINARY64 && __SIZE_WIDTH__ >= 32) │ │ │ │ │ +285# define __glibcxx_to_chars 201611L │ │ │ │ │ +286# if defined(__glibcxx_want_all) || defined(__glibcxx_want_to_chars) │ │ │ │ │ +287# define __cpp_lib_to_chars 201611L │ │ │ │ │ +288# endif │ │ │ │ │ +289# endif │ │ │ │ │ +290#endif /* !defined(__cpp_lib_to_chars) && defined(__glibcxx_want_to_chars) │ │ │ │ │ +*/ │ │ │ │ │ +291#undef __glibcxx_want_to_chars │ │ │ │ │ +292 │ │ │ │ │ +293#if !defined(__cpp_lib_chrono_udls) │ │ │ │ │ +294# if (__cplusplus >= 201402L) │ │ │ │ │ +295# define __glibcxx_chrono_udls 201304L │ │ │ │ │ +296# if defined(__glibcxx_want_all) || defined(__glibcxx_want_chrono_udls) │ │ │ │ │ +297# define __cpp_lib_chrono_udls 201304L │ │ │ │ │ +298# endif │ │ │ │ │ +299# endif │ │ │ │ │ +300#endif /* !defined(__cpp_lib_chrono_udls) && defined │ │ │ │ │ +(__glibcxx_want_chrono_udls) */ │ │ │ │ │ +301#undef __glibcxx_want_chrono_udls │ │ │ │ │ +302 │ │ │ │ │ +303#if !defined(__cpp_lib_complex_udls) │ │ │ │ │ +304# if (__cplusplus >= 201402L) && _GLIBCXX_HOSTED │ │ │ │ │ +305# define __glibcxx_complex_udls 201309L │ │ │ │ │ +306# if defined(__glibcxx_want_all) || defined(__glibcxx_want_complex_udls) │ │ │ │ │ +307# define __cpp_lib_complex_udls 201309L │ │ │ │ │ +308# endif │ │ │ │ │ +309# endif │ │ │ │ │ +310#endif /* !defined(__cpp_lib_complex_udls) && defined │ │ │ │ │ +(__glibcxx_want_complex_udls) */ │ │ │ │ │ +311#undef __glibcxx_want_complex_udls │ │ │ │ │ +312 │ │ │ │ │ +313#if !defined(__cpp_lib_generic_associative_lookup) │ │ │ │ │ +314# if (__cplusplus >= 201402L) && _GLIBCXX_HOSTED │ │ │ │ │ +315# define __glibcxx_generic_associative_lookup 201304L │ │ │ │ │ +316# if defined(__glibcxx_want_all) || defined │ │ │ │ │ +(__glibcxx_want_generic_associative_lookup) │ │ │ │ │ +317# define __cpp_lib_generic_associative_lookup 201304L │ │ │ │ │ +318# endif │ │ │ │ │ +319# endif │ │ │ │ │ +320#endif /* !defined(__cpp_lib_generic_associative_lookup) && defined │ │ │ │ │ +(__glibcxx_want_generic_associative_lookup) */ │ │ │ │ │ +321#undef __glibcxx_want_generic_associative_lookup │ │ │ │ │ +322 │ │ │ │ │ +323#if !defined(__cpp_lib_make_unique) │ │ │ │ │ +324# if (__cplusplus >= 201402L) && _GLIBCXX_HOSTED │ │ │ │ │ +325# define __glibcxx_make_unique 201304L │ │ │ │ │ +326# if defined(__glibcxx_want_all) || defined(__glibcxx_want_make_unique) │ │ │ │ │ +327# define __cpp_lib_make_unique 201304L │ │ │ │ │ +328# endif │ │ │ │ │ +329# endif │ │ │ │ │ +330#endif /* !defined(__cpp_lib_make_unique) && defined │ │ │ │ │ +(__glibcxx_want_make_unique) */ │ │ │ │ │ +331#undef __glibcxx_want_make_unique │ │ │ │ │ +332 │ │ │ │ │ +333#if !defined(__cpp_lib_quoted_string_io) │ │ │ │ │ +334# if (__cplusplus >= 201402L) && _GLIBCXX_HOSTED │ │ │ │ │ +335# define __glibcxx_quoted_string_io 201304L │ │ │ │ │ +336# if defined(__glibcxx_want_all) || defined(__glibcxx_want_quoted_string_io) │ │ │ │ │ +337# define __cpp_lib_quoted_string_io 201304L │ │ │ │ │ +338# endif │ │ │ │ │ +339# endif │ │ │ │ │ +340#endif /* !defined(__cpp_lib_quoted_string_io) && defined │ │ │ │ │ +(__glibcxx_want_quoted_string_io) */ │ │ │ │ │ +341#undef __glibcxx_want_quoted_string_io │ │ │ │ │ +342 │ │ │ │ │ +343#if !defined(__cpp_lib_shared_timed_mutex) │ │ │ │ │ +344# if (__cplusplus >= 201402L) && defined(_GLIBCXX_HAS_GTHREADS) && │ │ │ │ │ +_GLIBCXX_HOSTED │ │ │ │ │ +345# define __glibcxx_shared_timed_mutex 201402L │ │ │ │ │ +346# if defined(__glibcxx_want_all) || defined │ │ │ │ │ +(__glibcxx_want_shared_timed_mutex) │ │ │ │ │ +347# define __cpp_lib_shared_timed_mutex 201402L │ │ │ │ │ +348# endif │ │ │ │ │ +349# endif │ │ │ │ │ +350#endif /* !defined(__cpp_lib_shared_timed_mutex) && defined │ │ │ │ │ +(__glibcxx_want_shared_timed_mutex) */ │ │ │ │ │ +351#undef __glibcxx_want_shared_timed_mutex │ │ │ │ │ +352 │ │ │ │ │ +353#if !defined(__cpp_lib_string_udls) │ │ │ │ │ +354# if (__cplusplus >= 201402L) && _GLIBCXX_HOSTED │ │ │ │ │ +355# define __glibcxx_string_udls 201304L │ │ │ │ │ +356# if defined(__glibcxx_want_all) || defined(__glibcxx_want_string_udls) │ │ │ │ │ +357# define __cpp_lib_string_udls 201304L │ │ │ │ │ +358# endif │ │ │ │ │ +359# endif │ │ │ │ │ +360#endif /* !defined(__cpp_lib_string_udls) && defined │ │ │ │ │ +(__glibcxx_want_string_udls) */ │ │ │ │ │ +361#undef __glibcxx_want_string_udls │ │ │ │ │ +362 │ │ │ │ │ +363#if !defined(__cpp_lib_addressof_constexpr) │ │ │ │ │ +364# if (__cplusplus >= 201703L) │ │ │ │ │ +365# define __glibcxx_addressof_constexpr 201603L │ │ │ │ │ +366# if defined(__glibcxx_want_all) || defined │ │ │ │ │ +(__glibcxx_want_addressof_constexpr) │ │ │ │ │ +367# define __cpp_lib_addressof_constexpr 201603L │ │ │ │ │ +368# endif │ │ │ │ │ +369# endif │ │ │ │ │ +370#endif /* !defined(__cpp_lib_addressof_constexpr) && defined │ │ │ │ │ +(__glibcxx_want_addressof_constexpr) */ │ │ │ │ │ +371#undef __glibcxx_want_addressof_constexpr │ │ │ │ │ +372 │ │ │ │ │ +373#if !defined(__cpp_lib_any) │ │ │ │ │ +374# if (__cplusplus >= 201703L) │ │ │ │ │ +375# define __glibcxx_any 201606L │ │ │ │ │ +376# if defined(__glibcxx_want_all) || defined(__glibcxx_want_any) │ │ │ │ │ +377# define __cpp_lib_any 201606L │ │ │ │ │ +378# endif │ │ │ │ │ +379# endif │ │ │ │ │ +380#endif /* !defined(__cpp_lib_any) && defined(__glibcxx_want_any) */ │ │ │ │ │ +381#undef __glibcxx_want_any │ │ │ │ │ +382 │ │ │ │ │ +383#if !defined(__cpp_lib_apply) │ │ │ │ │ +384# if (__cplusplus >= 201703L) │ │ │ │ │ +385# define __glibcxx_apply 201603L │ │ │ │ │ +386# if defined(__glibcxx_want_all) || defined(__glibcxx_want_apply) │ │ │ │ │ +387# define __cpp_lib_apply 201603L │ │ │ │ │ +388# endif │ │ │ │ │ +389# endif │ │ │ │ │ +390#endif /* !defined(__cpp_lib_apply) && defined(__glibcxx_want_apply) */ │ │ │ │ │ +391#undef __glibcxx_want_apply │ │ │ │ │ +392 │ │ │ │ │ +393#if !defined(__cpp_lib_as_const) │ │ │ │ │ +394# if (__cplusplus >= 201703L) │ │ │ │ │ +395# define __glibcxx_as_const 201510L │ │ │ │ │ +396# if defined(__glibcxx_want_all) || defined(__glibcxx_want_as_const) │ │ │ │ │ +397# define __cpp_lib_as_const 201510L │ │ │ │ │ +398# endif │ │ │ │ │ +399# endif │ │ │ │ │ +400#endif /* !defined(__cpp_lib_as_const) && defined(__glibcxx_want_as_const) │ │ │ │ │ +*/ │ │ │ │ │ +401#undef __glibcxx_want_as_const │ │ │ │ │ +402 │ │ │ │ │ +403#if !defined(__cpp_lib_atomic_is_always_lock_free) │ │ │ │ │ +404# if (__cplusplus >= 201703L) │ │ │ │ │ +405# define __glibcxx_atomic_is_always_lock_free 201603L │ │ │ │ │ +406# if defined(__glibcxx_want_all) || defined │ │ │ │ │ +(__glibcxx_want_atomic_is_always_lock_free) │ │ │ │ │ +407# define __cpp_lib_atomic_is_always_lock_free 201603L │ │ │ │ │ +408# endif │ │ │ │ │ +409# endif │ │ │ │ │ +410#endif /* !defined(__cpp_lib_atomic_is_always_lock_free) && defined │ │ │ │ │ +(__glibcxx_want_atomic_is_always_lock_free) */ │ │ │ │ │ +411#undef __glibcxx_want_atomic_is_always_lock_free │ │ │ │ │ +412 │ │ │ │ │ +413#if !defined(__cpp_lib_bool_constant) │ │ │ │ │ +414# if (__cplusplus >= 201703L) │ │ │ │ │ +415# define __glibcxx_bool_constant 201505L │ │ │ │ │ +416# if defined(__glibcxx_want_all) || defined(__glibcxx_want_bool_constant) │ │ │ │ │ +417# define __cpp_lib_bool_constant 201505L │ │ │ │ │ +418# endif │ │ │ │ │ +419# endif │ │ │ │ │ +420#endif /* !defined(__cpp_lib_bool_constant) && defined │ │ │ │ │ +(__glibcxx_want_bool_constant) */ │ │ │ │ │ +421#undef __glibcxx_want_bool_constant │ │ │ │ │ +422 │ │ │ │ │ +423#if !defined(__cpp_lib_byte) │ │ │ │ │ +424# if (__cplusplus >= 201703L) │ │ │ │ │ +425# define __glibcxx_byte 201603L │ │ │ │ │ +426# if defined(__glibcxx_want_all) || defined(__glibcxx_want_byte) │ │ │ │ │ +427# define __cpp_lib_byte 201603L │ │ │ │ │ +428# endif │ │ │ │ │ +429# endif │ │ │ │ │ +430#endif /* !defined(__cpp_lib_byte) && defined(__glibcxx_want_byte) */ │ │ │ │ │ +431#undef __glibcxx_want_byte │ │ │ │ │ +432 │ │ │ │ │ +433#if !defined(__cpp_lib_has_unique_object_representations) │ │ │ │ │ +434# if (__cplusplus >= 201703L) && (defined │ │ │ │ │ +(_GLIBCXX_HAVE_BUILTIN_HAS_UNIQ_OBJ_REP)) │ │ │ │ │ +435# define __glibcxx_has_unique_object_representations 201606L │ │ │ │ │ +436# if defined(__glibcxx_want_all) || defined │ │ │ │ │ +(__glibcxx_want_has_unique_object_representations) │ │ │ │ │ +437# define __cpp_lib_has_unique_object_representations 201606L │ │ │ │ │ +438# endif │ │ │ │ │ +439# endif │ │ │ │ │ +440#endif /* !defined(__cpp_lib_has_unique_object_representations) && defined │ │ │ │ │ +(__glibcxx_want_has_unique_object_representations) */ │ │ │ │ │ +441#undef __glibcxx_want_has_unique_object_representations │ │ │ │ │ +442 │ │ │ │ │ +443#if !defined(__cpp_lib_hardware_interference_size) │ │ │ │ │ +444# if (__cplusplus >= 201703L) && (defined(__GCC_DESTRUCTIVE_SIZE)) │ │ │ │ │ +445# define __glibcxx_hardware_interference_size 201703L │ │ │ │ │ +446# if defined(__glibcxx_want_all) || defined │ │ │ │ │ +(__glibcxx_want_hardware_interference_size) │ │ │ │ │ +447# define __cpp_lib_hardware_interference_size 201703L │ │ │ │ │ +448# endif │ │ │ │ │ +449# endif │ │ │ │ │ +450#endif /* !defined(__cpp_lib_hardware_interference_size) && defined │ │ │ │ │ +(__glibcxx_want_hardware_interference_size) */ │ │ │ │ │ +451#undef __glibcxx_want_hardware_interference_size │ │ │ │ │ +452 │ │ │ │ │ +453#if !defined(__cpp_lib_invoke) │ │ │ │ │ +454# if (__cplusplus >= 201703L) │ │ │ │ │ +455# define __glibcxx_invoke 201411L │ │ │ │ │ +456# if defined(__glibcxx_want_all) || defined(__glibcxx_want_invoke) │ │ │ │ │ +457# define __cpp_lib_invoke 201411L │ │ │ │ │ +458# endif │ │ │ │ │ +459# endif │ │ │ │ │ +460#endif /* !defined(__cpp_lib_invoke) && defined(__glibcxx_want_invoke) */ │ │ │ │ │ +461#undef __glibcxx_want_invoke │ │ │ │ │ +462 │ │ │ │ │ +463#if !defined(__cpp_lib_is_aggregate) │ │ │ │ │ +464# if (__cplusplus >= 201703L) && (defined │ │ │ │ │ +(_GLIBCXX_HAVE_BUILTIN_IS_AGGREGATE)) │ │ │ │ │ +465# define __glibcxx_is_aggregate 201703L │ │ │ │ │ +466# if defined(__glibcxx_want_all) || defined(__glibcxx_want_is_aggregate) │ │ │ │ │ +467# define __cpp_lib_is_aggregate 201703L │ │ │ │ │ +468# endif │ │ │ │ │ +469# endif │ │ │ │ │ +470#endif /* !defined(__cpp_lib_is_aggregate) && defined │ │ │ │ │ +(__glibcxx_want_is_aggregate) */ │ │ │ │ │ +471#undef __glibcxx_want_is_aggregate │ │ │ │ │ +472 │ │ │ │ │ +473#if !defined(__cpp_lib_is_invocable) │ │ │ │ │ +474# if (__cplusplus >= 201703L) │ │ │ │ │ +475# define __glibcxx_is_invocable 201703L │ │ │ │ │ +476# if defined(__glibcxx_want_all) || defined(__glibcxx_want_is_invocable) │ │ │ │ │ +477# define __cpp_lib_is_invocable 201703L │ │ │ │ │ +478# endif │ │ │ │ │ +479# endif │ │ │ │ │ +480#endif /* !defined(__cpp_lib_is_invocable) && defined │ │ │ │ │ +(__glibcxx_want_is_invocable) */ │ │ │ │ │ +481#undef __glibcxx_want_is_invocable │ │ │ │ │ +482 │ │ │ │ │ +483#if !defined(__cpp_lib_launder) │ │ │ │ │ +484# if (__cplusplus >= 201703L) && (defined(_GLIBCXX_HAVE_BUILTIN_LAUNDER)) │ │ │ │ │ +485# define __glibcxx_launder 201606L │ │ │ │ │ +486# if defined(__glibcxx_want_all) || defined(__glibcxx_want_launder) │ │ │ │ │ +487# define __cpp_lib_launder 201606L │ │ │ │ │ +488# endif │ │ │ │ │ +489# endif │ │ │ │ │ +490#endif /* !defined(__cpp_lib_launder) && defined(__glibcxx_want_launder) */ │ │ │ │ │ +491#undef __glibcxx_want_launder │ │ │ │ │ +492 │ │ │ │ │ +493#if !defined(__cpp_lib_logical_traits) │ │ │ │ │ +494# if (__cplusplus >= 201703L) │ │ │ │ │ +495# define __glibcxx_logical_traits 201510L │ │ │ │ │ +496# if defined(__glibcxx_want_all) || defined(__glibcxx_want_logical_traits) │ │ │ │ │ +497# define __cpp_lib_logical_traits 201510L │ │ │ │ │ +498# endif │ │ │ │ │ +499# endif │ │ │ │ │ +500#endif /* !defined(__cpp_lib_logical_traits) && defined │ │ │ │ │ +(__glibcxx_want_logical_traits) */ │ │ │ │ │ +501#undef __glibcxx_want_logical_traits │ │ │ │ │ +502 │ │ │ │ │ +503#if !defined(__cpp_lib_make_from_tuple) │ │ │ │ │ +504# if (__cplusplus >= 201703L) │ │ │ │ │ +505# define __glibcxx_make_from_tuple 201606L │ │ │ │ │ +506# if defined(__glibcxx_want_all) || defined(__glibcxx_want_make_from_tuple) │ │ │ │ │ +507# define __cpp_lib_make_from_tuple 201606L │ │ │ │ │ +508# endif │ │ │ │ │ +509# endif │ │ │ │ │ +510#endif /* !defined(__cpp_lib_make_from_tuple) && defined │ │ │ │ │ +(__glibcxx_want_make_from_tuple) */ │ │ │ │ │ +511#undef __glibcxx_want_make_from_tuple │ │ │ │ │ +512 │ │ │ │ │ +513#if !defined(__cpp_lib_not_fn) │ │ │ │ │ +514# if (__cplusplus >= 201703L) │ │ │ │ │ +515# define __glibcxx_not_fn 201603L │ │ │ │ │ +516# if defined(__glibcxx_want_all) || defined(__glibcxx_want_not_fn) │ │ │ │ │ +517# define __cpp_lib_not_fn 201603L │ │ │ │ │ +518# endif │ │ │ │ │ +519# endif │ │ │ │ │ +520#endif /* !defined(__cpp_lib_not_fn) && defined(__glibcxx_want_not_fn) */ │ │ │ │ │ +521#undef __glibcxx_want_not_fn │ │ │ │ │ +522 │ │ │ │ │ +523#if !defined(__cpp_lib_type_trait_variable_templates) │ │ │ │ │ +524# if (__cplusplus >= 201703L) │ │ │ │ │ +525# define __glibcxx_type_trait_variable_templates 201510L │ │ │ │ │ +526# if defined(__glibcxx_want_all) || defined │ │ │ │ │ +(__glibcxx_want_type_trait_variable_templates) │ │ │ │ │ +527# define __cpp_lib_type_trait_variable_templates 201510L │ │ │ │ │ +528# endif │ │ │ │ │ +529# endif │ │ │ │ │ +530#endif /* !defined(__cpp_lib_type_trait_variable_templates) && defined │ │ │ │ │ +(__glibcxx_want_type_trait_variable_templates) */ │ │ │ │ │ +531#undef __glibcxx_want_type_trait_variable_templates │ │ │ │ │ +532 │ │ │ │ │ +533#if !defined(__cpp_lib_variant) │ │ │ │ │ +534# if (__cplusplus > 202302L) && (__cpp_concepts >= 202002L && │ │ │ │ │ +__cpp_constexpr >= 201811L && __cpp_explicit_this_parameter) │ │ │ │ │ +535# define __glibcxx_variant 202306L │ │ │ │ │ +536# if defined(__glibcxx_want_all) || defined(__glibcxx_want_variant) │ │ │ │ │ +537# define __cpp_lib_variant 202306L │ │ │ │ │ +538# endif │ │ │ │ │ +539# elif (__cplusplus >= 202002L) && (__cpp_concepts >= 202002L && │ │ │ │ │ +__cpp_constexpr >= 201811L) │ │ │ │ │ +540# define __glibcxx_variant 202106L │ │ │ │ │ +541# if defined(__glibcxx_want_all) || defined(__glibcxx_want_variant) │ │ │ │ │ +542# define __cpp_lib_variant 202106L │ │ │ │ │ +543# endif │ │ │ │ │ +544# elif (__cplusplus >= 201703L) │ │ │ │ │ +545# define __glibcxx_variant 202102L │ │ │ │ │ +546# if defined(__glibcxx_want_all) || defined(__glibcxx_want_variant) │ │ │ │ │ +547# define __cpp_lib_variant 202102L │ │ │ │ │ +548# endif │ │ │ │ │ +549# endif │ │ │ │ │ +550#endif /* !defined(__cpp_lib_variant) && defined(__glibcxx_want_variant) */ │ │ │ │ │ +551#undef __glibcxx_want_variant │ │ │ │ │ +552 │ │ │ │ │ +553#if !defined(__cpp_lib_lcm) │ │ │ │ │ +554# if (__cplusplus >= 201703L) │ │ │ │ │ +555# define __glibcxx_lcm 201606L │ │ │ │ │ +556# if defined(__glibcxx_want_all) || defined(__glibcxx_want_lcm) │ │ │ │ │ +557# define __cpp_lib_lcm 201606L │ │ │ │ │ +558# endif │ │ │ │ │ +559# endif │ │ │ │ │ +560#endif /* !defined(__cpp_lib_lcm) && defined(__glibcxx_want_lcm) */ │ │ │ │ │ +561#undef __glibcxx_want_lcm │ │ │ │ │ +562 │ │ │ │ │ +563#if !defined(__cpp_lib_gcd) │ │ │ │ │ +564# if (__cplusplus >= 201703L) │ │ │ │ │ +565# define __glibcxx_gcd 201606L │ │ │ │ │ +566# if defined(__glibcxx_want_all) || defined(__glibcxx_want_gcd) │ │ │ │ │ +567# define __cpp_lib_gcd 201606L │ │ │ │ │ +568# endif │ │ │ │ │ +569# endif │ │ │ │ │ +570#endif /* !defined(__cpp_lib_gcd) && defined(__glibcxx_want_gcd) */ │ │ │ │ │ +571#undef __glibcxx_want_gcd │ │ │ │ │ +572 │ │ │ │ │ +573#if !defined(__cpp_lib_gcd_lcm) │ │ │ │ │ +574# if (__cplusplus >= 201703L) │ │ │ │ │ +575# define __glibcxx_gcd_lcm 201606L │ │ │ │ │ +576# if defined(__glibcxx_want_all) || defined(__glibcxx_want_gcd_lcm) │ │ │ │ │ +577# define __cpp_lib_gcd_lcm 201606L │ │ │ │ │ +578# endif │ │ │ │ │ +579# endif │ │ │ │ │ +580#endif /* !defined(__cpp_lib_gcd_lcm) && defined(__glibcxx_want_gcd_lcm) */ │ │ │ │ │ +581#undef __glibcxx_want_gcd_lcm │ │ │ │ │ +582 │ │ │ │ │ +583#if !defined(__cpp_lib_raw_memory_algorithms) │ │ │ │ │ +584# if (__cplusplus > 202302L) && (__cpp_constexpr >= 202406L) │ │ │ │ │ +585# define __glibcxx_raw_memory_algorithms 202411L │ │ │ │ │ +586# if defined(__glibcxx_want_all) || defined │ │ │ │ │ +(__glibcxx_want_raw_memory_algorithms) │ │ │ │ │ +587# define __cpp_lib_raw_memory_algorithms 202411L │ │ │ │ │ +588# endif │ │ │ │ │ +589# elif (__cplusplus >= 201703L) │ │ │ │ │ +590# define __glibcxx_raw_memory_algorithms 201606L │ │ │ │ │ +591# if defined(__glibcxx_want_all) || defined │ │ │ │ │ +(__glibcxx_want_raw_memory_algorithms) │ │ │ │ │ +592# define __cpp_lib_raw_memory_algorithms 201606L │ │ │ │ │ +593# endif │ │ │ │ │ +594# endif │ │ │ │ │ +595#endif /* !defined(__cpp_lib_raw_memory_algorithms) && defined │ │ │ │ │ +(__glibcxx_want_raw_memory_algorithms) */ │ │ │ │ │ +596#undef __glibcxx_want_raw_memory_algorithms │ │ │ │ │ +597 │ │ │ │ │ +598#if !defined(__cpp_lib_array_constexpr) │ │ │ │ │ +599# if (__cplusplus >= 202002L) │ │ │ │ │ +600# define __glibcxx_array_constexpr 201811L │ │ │ │ │ +601# if defined(__glibcxx_want_all) || defined(__glibcxx_want_array_constexpr) │ │ │ │ │ +602# define __cpp_lib_array_constexpr 201811L │ │ │ │ │ +603# endif │ │ │ │ │ +604# elif (__cplusplus >= 201703L) │ │ │ │ │ +605# define __glibcxx_array_constexpr 201803L │ │ │ │ │ +606# if defined(__glibcxx_want_all) || defined(__glibcxx_want_array_constexpr) │ │ │ │ │ +607# define __cpp_lib_array_constexpr 201803L │ │ │ │ │ +608# endif │ │ │ │ │ +609# endif │ │ │ │ │ +610#endif /* !defined(__cpp_lib_array_constexpr) && defined │ │ │ │ │ +(__glibcxx_want_array_constexpr) */ │ │ │ │ │ +611#undef __glibcxx_want_array_constexpr │ │ │ │ │ +612 │ │ │ │ │ +613#if !defined(__cpp_lib_nonmember_container_access) │ │ │ │ │ +614# if (__cplusplus >= 201703L) │ │ │ │ │ +615# define __glibcxx_nonmember_container_access 201411L │ │ │ │ │ +616# if defined(__glibcxx_want_all) || defined │ │ │ │ │ +(__glibcxx_want_nonmember_container_access) │ │ │ │ │ +617# define __cpp_lib_nonmember_container_access 201411L │ │ │ │ │ +618# endif │ │ │ │ │ +619# endif │ │ │ │ │ +620#endif /* !defined(__cpp_lib_nonmember_container_access) && defined │ │ │ │ │ +(__glibcxx_want_nonmember_container_access) */ │ │ │ │ │ +621#undef __glibcxx_want_nonmember_container_access │ │ │ │ │ +622 │ │ │ │ │ +623#if !defined(__cpp_lib_clamp) │ │ │ │ │ +624# if (__cplusplus >= 201703L) │ │ │ │ │ +625# define __glibcxx_clamp 201603L │ │ │ │ │ +626# if defined(__glibcxx_want_all) || defined(__glibcxx_want_clamp) │ │ │ │ │ +627# define __cpp_lib_clamp 201603L │ │ │ │ │ +628# endif │ │ │ │ │ +629# endif │ │ │ │ │ +630#endif /* !defined(__cpp_lib_clamp) && defined(__glibcxx_want_clamp) */ │ │ │ │ │ +631#undef __glibcxx_want_clamp │ │ │ │ │ +632 │ │ │ │ │ +633#if !defined(__cpp_lib_sample) │ │ │ │ │ +634# if (__cplusplus >= 201703L) │ │ │ │ │ +635# define __glibcxx_sample 201603L │ │ │ │ │ +636# if defined(__glibcxx_want_all) || defined(__glibcxx_want_sample) │ │ │ │ │ +637# define __cpp_lib_sample 201603L │ │ │ │ │ +638# endif │ │ │ │ │ +639# endif │ │ │ │ │ +640#endif /* !defined(__cpp_lib_sample) && defined(__glibcxx_want_sample) */ │ │ │ │ │ +641#undef __glibcxx_want_sample │ │ │ │ │ +642 │ │ │ │ │ +643#if !defined(__cpp_lib_boyer_moore_searcher) │ │ │ │ │ +644# if (__cplusplus >= 201703L) && _GLIBCXX_HOSTED │ │ │ │ │ +645# define __glibcxx_boyer_moore_searcher 201603L │ │ │ │ │ +646# if defined(__glibcxx_want_all) || defined │ │ │ │ │ +(__glibcxx_want_boyer_moore_searcher) │ │ │ │ │ +647# define __cpp_lib_boyer_moore_searcher 201603L │ │ │ │ │ +648# endif │ │ │ │ │ +649# endif │ │ │ │ │ +650#endif /* !defined(__cpp_lib_boyer_moore_searcher) && defined │ │ │ │ │ +(__glibcxx_want_boyer_moore_searcher) */ │ │ │ │ │ +651#undef __glibcxx_want_boyer_moore_searcher │ │ │ │ │ +652 │ │ │ │ │ +653#if !defined(__cpp_lib_chrono) │ │ │ │ │ +654# if (__cplusplus >= 202002L) && _GLIBCXX_USE_CXX11_ABI && _GLIBCXX_HOSTED │ │ │ │ │ +655# define __glibcxx_chrono 201907L │ │ │ │ │ +656# if defined(__glibcxx_want_all) || defined(__glibcxx_want_chrono) │ │ │ │ │ +657# define __cpp_lib_chrono 201907L │ │ │ │ │ +658# endif │ │ │ │ │ +659# elif (__cplusplus >= 201703L) && _GLIBCXX_HOSTED │ │ │ │ │ +660# define __glibcxx_chrono 201611L │ │ │ │ │ +661# if defined(__glibcxx_want_all) || defined(__glibcxx_want_chrono) │ │ │ │ │ +662# define __cpp_lib_chrono 201611L │ │ │ │ │ +663# endif │ │ │ │ │ +664# endif │ │ │ │ │ +665#endif /* !defined(__cpp_lib_chrono) && defined(__glibcxx_want_chrono) */ │ │ │ │ │ +666#undef __glibcxx_want_chrono │ │ │ │ │ +667 │ │ │ │ │ +668#if !defined(__cpp_lib_execution) │ │ │ │ │ +669# if (__cplusplus >= 201703L) && _GLIBCXX_HOSTED │ │ │ │ │ +670# define __glibcxx_execution 201902L │ │ │ │ │ +671# if defined(__glibcxx_want_all) || defined(__glibcxx_want_execution) │ │ │ │ │ +672# define __cpp_lib_execution 201902L │ │ │ │ │ +673# endif │ │ │ │ │ +674# endif │ │ │ │ │ +675#endif /* !defined(__cpp_lib_execution) && defined(__glibcxx_want_execution) │ │ │ │ │ +*/ │ │ │ │ │ +676#undef __glibcxx_want_execution │ │ │ │ │ +677 │ │ │ │ │ +678#if !defined(__cpp_lib_filesystem) │ │ │ │ │ +679# if (__cplusplus >= 201703L) && _GLIBCXX_HOSTED │ │ │ │ │ +680# define __glibcxx_filesystem 201703L │ │ │ │ │ +681# if defined(__glibcxx_want_all) || defined(__glibcxx_want_filesystem) │ │ │ │ │ +682# define __cpp_lib_filesystem 201703L │ │ │ │ │ +683# endif │ │ │ │ │ +684# endif │ │ │ │ │ +685#endif /* !defined(__cpp_lib_filesystem) && defined │ │ │ │ │ +(__glibcxx_want_filesystem) */ │ │ │ │ │ +686#undef __glibcxx_want_filesystem │ │ │ │ │ +687 │ │ │ │ │ +688#if !defined(__cpp_lib_hypot) │ │ │ │ │ +689# if (__cplusplus >= 201703L) && _GLIBCXX_HOSTED │ │ │ │ │ +690# define __glibcxx_hypot 201603L │ │ │ │ │ +691# if defined(__glibcxx_want_all) || defined(__glibcxx_want_hypot) │ │ │ │ │ +692# define __cpp_lib_hypot 201603L │ │ │ │ │ +693# endif │ │ │ │ │ +694# endif │ │ │ │ │ +695#endif /* !defined(__cpp_lib_hypot) && defined(__glibcxx_want_hypot) */ │ │ │ │ │ +696#undef __glibcxx_want_hypot │ │ │ │ │ +697 │ │ │ │ │ +698#if !defined(__cpp_lib_map_try_emplace) │ │ │ │ │ +699# if (__cplusplus >= 201703L) && _GLIBCXX_HOSTED │ │ │ │ │ +700# define __glibcxx_map_try_emplace 201411L │ │ │ │ │ +701# if defined(__glibcxx_want_all) || defined(__glibcxx_want_map_try_emplace) │ │ │ │ │ +702# define __cpp_lib_map_try_emplace 201411L │ │ │ │ │ +703# endif │ │ │ │ │ +704# endif │ │ │ │ │ +705#endif /* !defined(__cpp_lib_map_try_emplace) && defined │ │ │ │ │ +(__glibcxx_want_map_try_emplace) */ │ │ │ │ │ +706#undef __glibcxx_want_map_try_emplace │ │ │ │ │ +707 │ │ │ │ │ +708#if !defined(__cpp_lib_math_special_functions) │ │ │ │ │ +709# if (__cplusplus >= 201703L) && _GLIBCXX_HOSTED │ │ │ │ │ +710# define __glibcxx_math_special_functions 201603L │ │ │ │ │ +711# if defined(__glibcxx_want_all) || defined │ │ │ │ │ +(__glibcxx_want_math_special_functions) │ │ │ │ │ +712# define __cpp_lib_math_special_functions 201603L │ │ │ │ │ +713# endif │ │ │ │ │ +714# endif │ │ │ │ │ +715#endif /* !defined(__cpp_lib_math_special_functions) && defined │ │ │ │ │ +(__glibcxx_want_math_special_functions) */ │ │ │ │ │ +716#undef __glibcxx_want_math_special_functions │ │ │ │ │ +717 │ │ │ │ │ +718#if !defined(__cpp_lib_memory_resource) │ │ │ │ │ +719# if (__cplusplus >= 201703L) && defined(_GLIBCXX_HAS_GTHREADS) && │ │ │ │ │ +_GLIBCXX_HOSTED │ │ │ │ │ +720# define __glibcxx_memory_resource 201603L │ │ │ │ │ +721# if defined(__glibcxx_want_all) || defined(__glibcxx_want_memory_resource) │ │ │ │ │ +722# define __cpp_lib_memory_resource 201603L │ │ │ │ │ +723# endif │ │ │ │ │ +724# elif (__cplusplus >= 201703L) && !defined(_GLIBCXX_HAS_GTHREADS) && │ │ │ │ │ +_GLIBCXX_HOSTED │ │ │ │ │ +725# define __glibcxx_memory_resource 1L │ │ │ │ │ +726# if defined(__glibcxx_want_all) || defined(__glibcxx_want_memory_resource) │ │ │ │ │ +727# define __cpp_lib_memory_resource 1L │ │ │ │ │ +728# endif │ │ │ │ │ +729# endif │ │ │ │ │ +730#endif /* !defined(__cpp_lib_memory_resource) && defined │ │ │ │ │ +(__glibcxx_want_memory_resource) */ │ │ │ │ │ +731#undef __glibcxx_want_memory_resource │ │ │ │ │ +732 │ │ │ │ │ +733#if !defined(__cpp_lib_node_extract) │ │ │ │ │ +734# if (__cplusplus >= 201703L) && _GLIBCXX_HOSTED │ │ │ │ │ +735# define __glibcxx_node_extract 201606L │ │ │ │ │ +736# if defined(__glibcxx_want_all) || defined(__glibcxx_want_node_extract) │ │ │ │ │ +737# define __cpp_lib_node_extract 201606L │ │ │ │ │ +738# endif │ │ │ │ │ +739# endif │ │ │ │ │ +740#endif /* !defined(__cpp_lib_node_extract) && defined │ │ │ │ │ +(__glibcxx_want_node_extract) */ │ │ │ │ │ +741#undef __glibcxx_want_node_extract │ │ │ │ │ +742 │ │ │ │ │ +743#if !defined(__cpp_lib_parallel_algorithm) │ │ │ │ │ +744# if (__cplusplus >= 201703L) && _GLIBCXX_HOSTED │ │ │ │ │ +745# define __glibcxx_parallel_algorithm 201603L │ │ │ │ │ +746# if defined(__glibcxx_want_all) || defined │ │ │ │ │ +(__glibcxx_want_parallel_algorithm) │ │ │ │ │ +747# define __cpp_lib_parallel_algorithm 201603L │ │ │ │ │ +748# endif │ │ │ │ │ +749# endif │ │ │ │ │ +750#endif /* !defined(__cpp_lib_parallel_algorithm) && defined │ │ │ │ │ +(__glibcxx_want_parallel_algorithm) */ │ │ │ │ │ +751#undef __glibcxx_want_parallel_algorithm │ │ │ │ │ +752 │ │ │ │ │ +753#if !defined(__cpp_lib_scoped_lock) │ │ │ │ │ +754# if (__cplusplus >= 201703L) && defined(_GLIBCXX_HAS_GTHREADS) && │ │ │ │ │ +_GLIBCXX_HOSTED │ │ │ │ │ +755# define __glibcxx_scoped_lock 201703L │ │ │ │ │ +756# if defined(__glibcxx_want_all) || defined(__glibcxx_want_scoped_lock) │ │ │ │ │ +757# define __cpp_lib_scoped_lock 201703L │ │ │ │ │ +758# endif │ │ │ │ │ +759# endif │ │ │ │ │ +760#endif /* !defined(__cpp_lib_scoped_lock) && defined │ │ │ │ │ +(__glibcxx_want_scoped_lock) */ │ │ │ │ │ +761#undef __glibcxx_want_scoped_lock │ │ │ │ │ +762 │ │ │ │ │ +763#if !defined(__cpp_lib_shared_mutex) │ │ │ │ │ +764# if (__cplusplus >= 201703L) && defined(_GLIBCXX_HAS_GTHREADS) && │ │ │ │ │ +_GLIBCXX_HOSTED │ │ │ │ │ +765# define __glibcxx_shared_mutex 201505L │ │ │ │ │ +766# if defined(__glibcxx_want_all) || defined(__glibcxx_want_shared_mutex) │ │ │ │ │ +767# define __cpp_lib_shared_mutex 201505L │ │ │ │ │ +768# endif │ │ │ │ │ +769# endif │ │ │ │ │ +770#endif /* !defined(__cpp_lib_shared_mutex) && defined │ │ │ │ │ +(__glibcxx_want_shared_mutex) */ │ │ │ │ │ +771#undef __glibcxx_want_shared_mutex │ │ │ │ │ +772 │ │ │ │ │ +773#if !defined(__cpp_lib_shared_ptr_weak_type) │ │ │ │ │ +774# if (__cplusplus >= 201703L) && _GLIBCXX_HOSTED │ │ │ │ │ +775# define __glibcxx_shared_ptr_weak_type 201606L │ │ │ │ │ +776# if defined(__glibcxx_want_all) || defined │ │ │ │ │ +(__glibcxx_want_shared_ptr_weak_type) │ │ │ │ │ +777# define __cpp_lib_shared_ptr_weak_type 201606L │ │ │ │ │ +778# endif │ │ │ │ │ +779# endif │ │ │ │ │ +780#endif /* !defined(__cpp_lib_shared_ptr_weak_type) && defined │ │ │ │ │ +(__glibcxx_want_shared_ptr_weak_type) */ │ │ │ │ │ +781#undef __glibcxx_want_shared_ptr_weak_type │ │ │ │ │ +782 │ │ │ │ │ +783#if !defined(__cpp_lib_string_view) │ │ │ │ │ +784# if (__cplusplus > 202302L) && _GLIBCXX_HOSTED │ │ │ │ │ +785# define __glibcxx_string_view 202403L │ │ │ │ │ +786# if defined(__glibcxx_want_all) || defined(__glibcxx_want_string_view) │ │ │ │ │ +787# define __cpp_lib_string_view 202403L │ │ │ │ │ +788# endif │ │ │ │ │ +789# elif (__cplusplus >= 201703L) && _GLIBCXX_HOSTED │ │ │ │ │ +790# define __glibcxx_string_view 201803L │ │ │ │ │ +791# if defined(__glibcxx_want_all) || defined(__glibcxx_want_string_view) │ │ │ │ │ +792# define __cpp_lib_string_view 201803L │ │ │ │ │ +793# endif │ │ │ │ │ +794# endif │ │ │ │ │ +795#endif /* !defined(__cpp_lib_string_view) && defined │ │ │ │ │ +(__glibcxx_want_string_view) */ │ │ │ │ │ +796#undef __glibcxx_want_string_view │ │ │ │ │ +797 │ │ │ │ │ +798#if !defined(__cpp_lib_unordered_map_try_emplace) │ │ │ │ │ +799# if (__cplusplus >= 201703L) && _GLIBCXX_HOSTED │ │ │ │ │ +800# define __glibcxx_unordered_map_try_emplace 201411L │ │ │ │ │ +801# if defined(__glibcxx_want_all) || defined │ │ │ │ │ +(__glibcxx_want_unordered_map_try_emplace) │ │ │ │ │ +802# define __cpp_lib_unordered_map_try_emplace 201411L │ │ │ │ │ +803# endif │ │ │ │ │ +804# endif │ │ │ │ │ +805#endif /* !defined(__cpp_lib_unordered_map_try_emplace) && defined │ │ │ │ │ +(__glibcxx_want_unordered_map_try_emplace) */ │ │ │ │ │ +806#undef __glibcxx_want_unordered_map_try_emplace │ │ │ │ │ +807 │ │ │ │ │ +808#if !defined(__cpp_lib_assume_aligned) │ │ │ │ │ +809# if (__cplusplus >= 202002L) │ │ │ │ │ +810# define __glibcxx_assume_aligned 201811L │ │ │ │ │ +811# if defined(__glibcxx_want_all) || defined(__glibcxx_want_assume_aligned) │ │ │ │ │ +812# define __cpp_lib_assume_aligned 201811L │ │ │ │ │ +813# endif │ │ │ │ │ +814# endif │ │ │ │ │ +815#endif /* !defined(__cpp_lib_assume_aligned) && defined │ │ │ │ │ +(__glibcxx_want_assume_aligned) */ │ │ │ │ │ +816#undef __glibcxx_want_assume_aligned │ │ │ │ │ +817 │ │ │ │ │ +818#if !defined(__cpp_lib_atomic_flag_test) │ │ │ │ │ +819# if (__cplusplus >= 202002L) │ │ │ │ │ +820# define __glibcxx_atomic_flag_test 201907L │ │ │ │ │ +821# if defined(__glibcxx_want_all) || defined(__glibcxx_want_atomic_flag_test) │ │ │ │ │ +822# define __cpp_lib_atomic_flag_test 201907L │ │ │ │ │ +823# endif │ │ │ │ │ +824# endif │ │ │ │ │ +825#endif /* !defined(__cpp_lib_atomic_flag_test) && defined │ │ │ │ │ +(__glibcxx_want_atomic_flag_test) */ │ │ │ │ │ +826#undef __glibcxx_want_atomic_flag_test │ │ │ │ │ +827 │ │ │ │ │ +828#if !defined(__cpp_lib_atomic_float) │ │ │ │ │ +829# if (__cplusplus >= 202002L) │ │ │ │ │ +830# define __glibcxx_atomic_float 201711L │ │ │ │ │ +831# if defined(__glibcxx_want_all) || defined(__glibcxx_want_atomic_float) │ │ │ │ │ +832# define __cpp_lib_atomic_float 201711L │ │ │ │ │ +833# endif │ │ │ │ │ +834# endif │ │ │ │ │ +835#endif /* !defined(__cpp_lib_atomic_float) && defined │ │ │ │ │ +(__glibcxx_want_atomic_float) */ │ │ │ │ │ +836#undef __glibcxx_want_atomic_float │ │ │ │ │ +837 │ │ │ │ │ +838#if !defined(__cpp_lib_atomic_lock_free_type_aliases) │ │ │ │ │ +839# if (__cplusplus >= 202002L) && ((__GCC_ATOMIC_INT_LOCK_FREE | │ │ │ │ │ +__GCC_ATOMIC_LONG_LOCK_FREE | __GCC_ATOMIC_CHAR_LOCK_FREE) & 2) │ │ │ │ │ +840# define __glibcxx_atomic_lock_free_type_aliases 201907L │ │ │ │ │ +841# if defined(__glibcxx_want_all) || defined │ │ │ │ │ +(__glibcxx_want_atomic_lock_free_type_aliases) │ │ │ │ │ +842# define __cpp_lib_atomic_lock_free_type_aliases 201907L │ │ │ │ │ +843# endif │ │ │ │ │ +844# endif │ │ │ │ │ +845#endif /* !defined(__cpp_lib_atomic_lock_free_type_aliases) && defined │ │ │ │ │ +(__glibcxx_want_atomic_lock_free_type_aliases) */ │ │ │ │ │ +846#undef __glibcxx_want_atomic_lock_free_type_aliases │ │ │ │ │ +847 │ │ │ │ │ +848#if !defined(__cpp_lib_atomic_ref) │ │ │ │ │ +849# if (__cplusplus >= 202002L) │ │ │ │ │ +850# define __glibcxx_atomic_ref 201806L │ │ │ │ │ +851# if defined(__glibcxx_want_all) || defined(__glibcxx_want_atomic_ref) │ │ │ │ │ +852# define __cpp_lib_atomic_ref 201806L │ │ │ │ │ +853# endif │ │ │ │ │ +854# endif │ │ │ │ │ +855#endif /* !defined(__cpp_lib_atomic_ref) && defined │ │ │ │ │ +(__glibcxx_want_atomic_ref) */ │ │ │ │ │ +856#undef __glibcxx_want_atomic_ref │ │ │ │ │ +857 │ │ │ │ │ +858#if !defined(__cpp_lib_atomic_value_initialization) │ │ │ │ │ +859# if (__cplusplus >= 202002L) && (__cpp_concepts >= 201907L) │ │ │ │ │ +860# define __glibcxx_atomic_value_initialization 201911L │ │ │ │ │ +861# if defined(__glibcxx_want_all) || defined │ │ │ │ │ +(__glibcxx_want_atomic_value_initialization) │ │ │ │ │ +862# define __cpp_lib_atomic_value_initialization 201911L │ │ │ │ │ +863# endif │ │ │ │ │ +864# endif │ │ │ │ │ +865#endif /* !defined(__cpp_lib_atomic_value_initialization) && defined │ │ │ │ │ +(__glibcxx_want_atomic_value_initialization) */ │ │ │ │ │ +866#undef __glibcxx_want_atomic_value_initialization │ │ │ │ │ +867 │ │ │ │ │ +868#if !defined(__cpp_lib_bind_front) │ │ │ │ │ +869# if (__cplusplus >= 202002L) │ │ │ │ │ +870# define __glibcxx_bind_front 201907L │ │ │ │ │ +871# if defined(__glibcxx_want_all) || defined(__glibcxx_want_bind_front) │ │ │ │ │ +872# define __cpp_lib_bind_front 201907L │ │ │ │ │ +873# endif │ │ │ │ │ +874# endif │ │ │ │ │ +875#endif /* !defined(__cpp_lib_bind_front) && defined │ │ │ │ │ +(__glibcxx_want_bind_front) */ │ │ │ │ │ +876#undef __glibcxx_want_bind_front │ │ │ │ │ +877 │ │ │ │ │ +878#if !defined(__cpp_lib_bind_back) │ │ │ │ │ +879# if (__cplusplus >= 202100L) && (__cpp_explicit_this_parameter) │ │ │ │ │ +880# define __glibcxx_bind_back 202202L │ │ │ │ │ +881# if defined(__glibcxx_want_all) || defined(__glibcxx_want_bind_back) │ │ │ │ │ +882# define __cpp_lib_bind_back 202202L │ │ │ │ │ +883# endif │ │ │ │ │ +884# endif │ │ │ │ │ +885#endif /* !defined(__cpp_lib_bind_back) && defined(__glibcxx_want_bind_back) │ │ │ │ │ +*/ │ │ │ │ │ +886#undef __glibcxx_want_bind_back │ │ │ │ │ +887 │ │ │ │ │ +888#if !defined(__cpp_lib_starts_ends_with) │ │ │ │ │ +889# if (__cplusplus >= 202002L) │ │ │ │ │ +890# define __glibcxx_starts_ends_with 201711L │ │ │ │ │ +891# if defined(__glibcxx_want_all) || defined(__glibcxx_want_starts_ends_with) │ │ │ │ │ +892# define __cpp_lib_starts_ends_with 201711L │ │ │ │ │ +893# endif │ │ │ │ │ +894# endif │ │ │ │ │ +895#endif /* !defined(__cpp_lib_starts_ends_with) && defined │ │ │ │ │ +(__glibcxx_want_starts_ends_with) */ │ │ │ │ │ +896#undef __glibcxx_want_starts_ends_with │ │ │ │ │ +897 │ │ │ │ │ +898#if !defined(__cpp_lib_bit_cast) │ │ │ │ │ +899# if (__cplusplus >= 202002L) && (__has_builtin(__builtin_bit_cast)) │ │ │ │ │ +900# define __glibcxx_bit_cast 201806L │ │ │ │ │ +901# if defined(__glibcxx_want_all) || defined(__glibcxx_want_bit_cast) │ │ │ │ │ +902# define __cpp_lib_bit_cast 201806L │ │ │ │ │ +903# endif │ │ │ │ │ +904# endif │ │ │ │ │ +905#endif /* !defined(__cpp_lib_bit_cast) && defined(__glibcxx_want_bit_cast) │ │ │ │ │ +*/ │ │ │ │ │ +906#undef __glibcxx_want_bit_cast │ │ │ │ │ +907 │ │ │ │ │ +908#if !defined(__cpp_lib_bitops) │ │ │ │ │ +909# if (__cplusplus >= 202002L) │ │ │ │ │ +910# define __glibcxx_bitops 201907L │ │ │ │ │ +911# if defined(__glibcxx_want_all) || defined(__glibcxx_want_bitops) │ │ │ │ │ +912# define __cpp_lib_bitops 201907L │ │ │ │ │ +913# endif │ │ │ │ │ +914# endif │ │ │ │ │ +915#endif /* !defined(__cpp_lib_bitops) && defined(__glibcxx_want_bitops) */ │ │ │ │ │ +916#undef __glibcxx_want_bitops │ │ │ │ │ +917 │ │ │ │ │ +918#if !defined(__cpp_lib_bounded_array_traits) │ │ │ │ │ +919# if (__cplusplus >= 202002L) │ │ │ │ │ +920# define __glibcxx_bounded_array_traits 201902L │ │ │ │ │ +921# if defined(__glibcxx_want_all) || defined │ │ │ │ │ +(__glibcxx_want_bounded_array_traits) │ │ │ │ │ +922# define __cpp_lib_bounded_array_traits 201902L │ │ │ │ │ +923# endif │ │ │ │ │ +924# endif │ │ │ │ │ +925#endif /* !defined(__cpp_lib_bounded_array_traits) && defined │ │ │ │ │ +(__glibcxx_want_bounded_array_traits) */ │ │ │ │ │ +926#undef __glibcxx_want_bounded_array_traits │ │ │ │ │ +927 │ │ │ │ │ +928#if !defined(__cpp_lib_concepts) │ │ │ │ │ +929# if (__cplusplus >= 202002L) && (__cpp_concepts >= 201907L) │ │ │ │ │ +930# define __glibcxx_concepts 202002L │ │ │ │ │ +931# if defined(__glibcxx_want_all) || defined(__glibcxx_want_concepts) │ │ │ │ │ +932# define __cpp_lib_concepts 202002L │ │ │ │ │ +933# endif │ │ │ │ │ +934# endif │ │ │ │ │ +935#endif /* !defined(__cpp_lib_concepts) && defined(__glibcxx_want_concepts) │ │ │ │ │ +*/ │ │ │ │ │ +936#undef __glibcxx_want_concepts │ │ │ │ │ +937 │ │ │ │ │ +938#if !defined(__cpp_lib_optional) │ │ │ │ │ +939# if (__cplusplus >= 202100L) && (__glibcxx_concepts) │ │ │ │ │ +940# define __glibcxx_optional 202110L │ │ │ │ │ +941# if defined(__glibcxx_want_all) || defined(__glibcxx_want_optional) │ │ │ │ │ +942# define __cpp_lib_optional 202110L │ │ │ │ │ +943# endif │ │ │ │ │ +944# elif (__cplusplus >= 202002L) │ │ │ │ │ +945# define __glibcxx_optional 202106L │ │ │ │ │ +946# if defined(__glibcxx_want_all) || defined(__glibcxx_want_optional) │ │ │ │ │ +947# define __cpp_lib_optional 202106L │ │ │ │ │ +948# endif │ │ │ │ │ +949# elif (__cplusplus >= 201703L) │ │ │ │ │ +950# define __glibcxx_optional 201606L │ │ │ │ │ +951# if defined(__glibcxx_want_all) || defined(__glibcxx_want_optional) │ │ │ │ │ +952# define __cpp_lib_optional 201606L │ │ │ │ │ +953# endif │ │ │ │ │ +954# endif │ │ │ │ │ +955#endif /* !defined(__cpp_lib_optional) && defined(__glibcxx_want_optional) │ │ │ │ │ +*/ │ │ │ │ │ +956#undef __glibcxx_want_optional │ │ │ │ │ +957 │ │ │ │ │ +958#if !defined(__cpp_lib_destroying_delete) │ │ │ │ │ +959# if (__cplusplus >= 202002L) && (__cpp_impl_destroying_delete) │ │ │ │ │ +960# define __glibcxx_destroying_delete 201806L │ │ │ │ │ +961# if defined(__glibcxx_want_all) || defined │ │ │ │ │ +(__glibcxx_want_destroying_delete) │ │ │ │ │ +962# define __cpp_lib_destroying_delete 201806L │ │ │ │ │ +963# endif │ │ │ │ │ +964# endif │ │ │ │ │ +965#endif /* !defined(__cpp_lib_destroying_delete) && defined │ │ │ │ │ +(__glibcxx_want_destroying_delete) */ │ │ │ │ │ +966#undef __glibcxx_want_destroying_delete │ │ │ │ │ +967 │ │ │ │ │ +968#if !defined(__cpp_lib_constexpr_string_view) │ │ │ │ │ +969# if (__cplusplus >= 202002L) │ │ │ │ │ +970# define __glibcxx_constexpr_string_view 201811L │ │ │ │ │ +971# if defined(__glibcxx_want_all) || defined │ │ │ │ │ +(__glibcxx_want_constexpr_string_view) │ │ │ │ │ +972# define __cpp_lib_constexpr_string_view 201811L │ │ │ │ │ +973# endif │ │ │ │ │ +974# endif │ │ │ │ │ +975#endif /* !defined(__cpp_lib_constexpr_string_view) && defined │ │ │ │ │ +(__glibcxx_want_constexpr_string_view) */ │ │ │ │ │ +976#undef __glibcxx_want_constexpr_string_view │ │ │ │ │ +977 │ │ │ │ │ +978#if !defined(__cpp_lib_endian) │ │ │ │ │ +979# if (__cplusplus >= 202002L) │ │ │ │ │ +980# define __glibcxx_endian 201907L │ │ │ │ │ +981# if defined(__glibcxx_want_all) || defined(__glibcxx_want_endian) │ │ │ │ │ +982# define __cpp_lib_endian 201907L │ │ │ │ │ +983# endif │ │ │ │ │ +984# endif │ │ │ │ │ +985#endif /* !defined(__cpp_lib_endian) && defined(__glibcxx_want_endian) */ │ │ │ │ │ +986#undef __glibcxx_want_endian │ │ │ │ │ +987 │ │ │ │ │ +988#if !defined(__cpp_lib_int_pow2) │ │ │ │ │ +989# if (__cplusplus >= 202002L) │ │ │ │ │ +990# define __glibcxx_int_pow2 202002L │ │ │ │ │ +991# if defined(__glibcxx_want_all) || defined(__glibcxx_want_int_pow2) │ │ │ │ │ +992# define __cpp_lib_int_pow2 202002L │ │ │ │ │ +993# endif │ │ │ │ │ +994# endif │ │ │ │ │ +995#endif /* !defined(__cpp_lib_int_pow2) && defined(__glibcxx_want_int_pow2) │ │ │ │ │ +*/ │ │ │ │ │ +996#undef __glibcxx_want_int_pow2 │ │ │ │ │ +997 │ │ │ │ │ +998#if !defined(__cpp_lib_integer_comparison_functions) │ │ │ │ │ +999# if (__cplusplus >= 202002L) │ │ │ │ │ +1000# define __glibcxx_integer_comparison_functions 202002L │ │ │ │ │ +1001# if defined(__glibcxx_want_all) || defined │ │ │ │ │ +(__glibcxx_want_integer_comparison_functions) │ │ │ │ │ +1002# define __cpp_lib_integer_comparison_functions 202002L │ │ │ │ │ +1003# endif │ │ │ │ │ +1004# endif │ │ │ │ │ +1005#endif /* !defined(__cpp_lib_integer_comparison_functions) && defined │ │ │ │ │ +(__glibcxx_want_integer_comparison_functions) */ │ │ │ │ │ +1006#undef __glibcxx_want_integer_comparison_functions │ │ │ │ │ +1007 │ │ │ │ │ +1008#if !defined(__cpp_lib_is_constant_evaluated) │ │ │ │ │ +1009# if (__cplusplus >= 202002L) && (defined │ │ │ │ │ +(_GLIBCXX_HAVE_IS_CONSTANT_EVALUATED)) │ │ │ │ │ +1010# define __glibcxx_is_constant_evaluated 201811L │ │ │ │ │ +1011# if defined(__glibcxx_want_all) || defined │ │ │ │ │ +(__glibcxx_want_is_constant_evaluated) │ │ │ │ │ +1012# define __cpp_lib_is_constant_evaluated 201811L │ │ │ │ │ +1013# endif │ │ │ │ │ +1014# endif │ │ │ │ │ +1015#endif /* !defined(__cpp_lib_is_constant_evaluated) && defined │ │ │ │ │ +(__glibcxx_want_is_constant_evaluated) */ │ │ │ │ │ +1016#undef __glibcxx_want_is_constant_evaluated │ │ │ │ │ +1017 │ │ │ │ │ +1018#if !defined(__cpp_lib_constexpr_char_traits) │ │ │ │ │ +1019# if (__cplusplus >= 202002L) && (defined(__glibcxx_is_constant_evaluated)) │ │ │ │ │ +1020# define __glibcxx_constexpr_char_traits 201811L │ │ │ │ │ +1021# if defined(__glibcxx_want_all) || defined │ │ │ │ │ +(__glibcxx_want_constexpr_char_traits) │ │ │ │ │ +1022# define __cpp_lib_constexpr_char_traits 201811L │ │ │ │ │ +1023# endif │ │ │ │ │ +1024# elif (__cplusplus >= 201703L) && (_GLIBCXX_HAVE_IS_CONSTANT_EVALUATED) │ │ │ │ │ +1025# define __glibcxx_constexpr_char_traits 201611L │ │ │ │ │ +1026# if defined(__glibcxx_want_all) || defined │ │ │ │ │ +(__glibcxx_want_constexpr_char_traits) │ │ │ │ │ +1027# define __cpp_lib_constexpr_char_traits 201611L │ │ │ │ │ +1028# endif │ │ │ │ │ +1029# endif │ │ │ │ │ +1030#endif /* !defined(__cpp_lib_constexpr_char_traits) && defined │ │ │ │ │ +(__glibcxx_want_constexpr_char_traits) */ │ │ │ │ │ +1031#undef __glibcxx_want_constexpr_char_traits │ │ │ │ │ +1032 │ │ │ │ │ +1033#if !defined(__cpp_lib_is_layout_compatible) │ │ │ │ │ +1034# if (__cplusplus >= 202002L) && (__has_builtin(__is_layout_compatible) && │ │ │ │ │ +__has_builtin(__builtin_is_corresponding_member)) │ │ │ │ │ +1035# define __glibcxx_is_layout_compatible 201907L │ │ │ │ │ +1036# if defined(__glibcxx_want_all) || defined │ │ │ │ │ +(__glibcxx_want_is_layout_compatible) │ │ │ │ │ +1037# define __cpp_lib_is_layout_compatible 201907L │ │ │ │ │ +1038# endif │ │ │ │ │ +1039# endif │ │ │ │ │ +1040#endif /* !defined(__cpp_lib_is_layout_compatible) && defined │ │ │ │ │ +(__glibcxx_want_is_layout_compatible) */ │ │ │ │ │ +1041#undef __glibcxx_want_is_layout_compatible │ │ │ │ │ +1042 │ │ │ │ │ +1043#if !defined(__cpp_lib_is_nothrow_convertible) │ │ │ │ │ +1044# if (__cplusplus >= 202002L) │ │ │ │ │ +1045# define __glibcxx_is_nothrow_convertible 201806L │ │ │ │ │ +1046# if defined(__glibcxx_want_all) || defined │ │ │ │ │ +(__glibcxx_want_is_nothrow_convertible) │ │ │ │ │ +1047# define __cpp_lib_is_nothrow_convertible 201806L │ │ │ │ │ +1048# endif │ │ │ │ │ +1049# endif │ │ │ │ │ +1050#endif /* !defined(__cpp_lib_is_nothrow_convertible) && defined │ │ │ │ │ +(__glibcxx_want_is_nothrow_convertible) */ │ │ │ │ │ +1051#undef __glibcxx_want_is_nothrow_convertible │ │ │ │ │ +1052 │ │ │ │ │ +1053#if !defined(__cpp_lib_is_pointer_interconvertible) │ │ │ │ │ +1054# if (__cplusplus >= 202002L) && (__has_builtin │ │ │ │ │ +(__is_pointer_interconvertible_base_of) && __has_builtin │ │ │ │ │ +(__builtin_is_pointer_interconvertible_with_class)) │ │ │ │ │ +1055# define __glibcxx_is_pointer_interconvertible 201907L │ │ │ │ │ +1056# if defined(__glibcxx_want_all) || defined │ │ │ │ │ +(__glibcxx_want_is_pointer_interconvertible) │ │ │ │ │ +1057# define __cpp_lib_is_pointer_interconvertible 201907L │ │ │ │ │ +1058# endif │ │ │ │ │ +1059# endif │ │ │ │ │ +1060#endif /* !defined(__cpp_lib_is_pointer_interconvertible) && defined │ │ │ │ │ +(__glibcxx_want_is_pointer_interconvertible) */ │ │ │ │ │ +1061#undef __glibcxx_want_is_pointer_interconvertible │ │ │ │ │ +1062 │ │ │ │ │ +1063#if !defined(__cpp_lib_math_constants) │ │ │ │ │ +1064# if (__cplusplus >= 202002L) │ │ │ │ │ +1065# define __glibcxx_math_constants 201907L │ │ │ │ │ +1066# if defined(__glibcxx_want_all) || defined(__glibcxx_want_math_constants) │ │ │ │ │ +1067# define __cpp_lib_math_constants 201907L │ │ │ │ │ +1068# endif │ │ │ │ │ +1069# endif │ │ │ │ │ +1070#endif /* !defined(__cpp_lib_math_constants) && defined │ │ │ │ │ +(__glibcxx_want_math_constants) */ │ │ │ │ │ +1071#undef __glibcxx_want_math_constants │ │ │ │ │ +1072 │ │ │ │ │ +1073#if !defined(__cpp_lib_make_obj_using_allocator) │ │ │ │ │ +1074# if (__cplusplus >= 202002L) && (__cpp_concepts) │ │ │ │ │ +1075# define __glibcxx_make_obj_using_allocator 201811L │ │ │ │ │ +1076# if defined(__glibcxx_want_all) || defined │ │ │ │ │ +(__glibcxx_want_make_obj_using_allocator) │ │ │ │ │ +1077# define __cpp_lib_make_obj_using_allocator 201811L │ │ │ │ │ +1078# endif │ │ │ │ │ +1079# endif │ │ │ │ │ +1080#endif /* !defined(__cpp_lib_make_obj_using_allocator) && defined │ │ │ │ │ +(__glibcxx_want_make_obj_using_allocator) */ │ │ │ │ │ +1081#undef __glibcxx_want_make_obj_using_allocator │ │ │ │ │ +1082 │ │ │ │ │ +1083#if !defined(__cpp_lib_remove_cvref) │ │ │ │ │ +1084# if (__cplusplus >= 202002L) │ │ │ │ │ +1085# define __glibcxx_remove_cvref 201711L │ │ │ │ │ +1086# if defined(__glibcxx_want_all) || defined(__glibcxx_want_remove_cvref) │ │ │ │ │ +1087# define __cpp_lib_remove_cvref 201711L │ │ │ │ │ +1088# endif │ │ │ │ │ +1089# endif │ │ │ │ │ +1090#endif /* !defined(__cpp_lib_remove_cvref) && defined │ │ │ │ │ +(__glibcxx_want_remove_cvref) */ │ │ │ │ │ +1091#undef __glibcxx_want_remove_cvref │ │ │ │ │ +1092 │ │ │ │ │ +1093#if !defined(__cpp_lib_source_location) │ │ │ │ │ +1094# if (__cplusplus >= 202002L) && (__has_builtin(__builtin_source_location)) │ │ │ │ │ +1095# define __glibcxx_source_location 201907L │ │ │ │ │ +1096# if defined(__glibcxx_want_all) || defined(__glibcxx_want_source_location) │ │ │ │ │ +1097# define __cpp_lib_source_location 201907L │ │ │ │ │ +1098# endif │ │ │ │ │ +1099# endif │ │ │ │ │ +1100#endif /* !defined(__cpp_lib_source_location) && defined │ │ │ │ │ +(__glibcxx_want_source_location) */ │ │ │ │ │ +1101#undef __glibcxx_want_source_location │ │ │ │ │ +1102 │ │ │ │ │ +1103#if !defined(__cpp_lib_span) │ │ │ │ │ +1104# if (__cplusplus > 202302L) && (__glibcxx_concepts) │ │ │ │ │ +1105# define __glibcxx_span 202311L │ │ │ │ │ +1106# if defined(__glibcxx_want_all) || defined(__glibcxx_want_span) │ │ │ │ │ +1107# define __cpp_lib_span 202311L │ │ │ │ │ +1108# endif │ │ │ │ │ +1109# elif (__cplusplus >= 202002L) && (__glibcxx_concepts) │ │ │ │ │ +1110# define __glibcxx_span 202002L │ │ │ │ │ +1111# if defined(__glibcxx_want_all) || defined(__glibcxx_want_span) │ │ │ │ │ +1112# define __cpp_lib_span 202002L │ │ │ │ │ +1113# endif │ │ │ │ │ +1114# endif │ │ │ │ │ +1115#endif /* !defined(__cpp_lib_span) && defined(__glibcxx_want_span) */ │ │ │ │ │ +1116#undef __glibcxx_want_span │ │ │ │ │ +1117 │ │ │ │ │ +1118#if !defined(__cpp_lib_ssize) │ │ │ │ │ +1119# if (__cplusplus >= 202002L) │ │ │ │ │ +1120# define __glibcxx_ssize 201902L │ │ │ │ │ +1121# if defined(__glibcxx_want_all) || defined(__glibcxx_want_ssize) │ │ │ │ │ +1122# define __cpp_lib_ssize 201902L │ │ │ │ │ +1123# endif │ │ │ │ │ +1124# endif │ │ │ │ │ +1125#endif /* !defined(__cpp_lib_ssize) && defined(__glibcxx_want_ssize) */ │ │ │ │ │ +1126#undef __glibcxx_want_ssize │ │ │ │ │ +1127 │ │ │ │ │ +1128#if !defined(__cpp_lib_three_way_comparison) │ │ │ │ │ +1129# if (__cplusplus >= 202002L) && (__cpp_impl_three_way_comparison >= │ │ │ │ │ +201907L && __glibcxx_concepts) │ │ │ │ │ +1130# define __glibcxx_three_way_comparison 201907L │ │ │ │ │ +1131# if defined(__glibcxx_want_all) || defined │ │ │ │ │ +(__glibcxx_want_three_way_comparison) │ │ │ │ │ +1132# define __cpp_lib_three_way_comparison 201907L │ │ │ │ │ +1133# endif │ │ │ │ │ +1134# endif │ │ │ │ │ +1135#endif /* !defined(__cpp_lib_three_way_comparison) && defined │ │ │ │ │ +(__glibcxx_want_three_way_comparison) */ │ │ │ │ │ +1136#undef __glibcxx_want_three_way_comparison │ │ │ │ │ +1137 │ │ │ │ │ +1138#if !defined(__cpp_lib_to_address) │ │ │ │ │ +1139# if (__cplusplus >= 202002L) │ │ │ │ │ +1140# define __glibcxx_to_address 201711L │ │ │ │ │ +1141# if defined(__glibcxx_want_all) || defined(__glibcxx_want_to_address) │ │ │ │ │ +1142# define __cpp_lib_to_address 201711L │ │ │ │ │ +1143# endif │ │ │ │ │ +1144# endif │ │ │ │ │ +1145#endif /* !defined(__cpp_lib_to_address) && defined │ │ │ │ │ +(__glibcxx_want_to_address) */ │ │ │ │ │ +1146#undef __glibcxx_want_to_address │ │ │ │ │ +1147 │ │ │ │ │ +1148#if !defined(__cpp_lib_to_array) │ │ │ │ │ +1149# if (__cplusplus >= 202002L) && (__cpp_generic_lambdas >= 201707L) │ │ │ │ │ +1150# define __glibcxx_to_array 201907L │ │ │ │ │ +1151# if defined(__glibcxx_want_all) || defined(__glibcxx_want_to_array) │ │ │ │ │ +1152# define __cpp_lib_to_array 201907L │ │ │ │ │ +1153# endif │ │ │ │ │ +1154# endif │ │ │ │ │ +1155#endif /* !defined(__cpp_lib_to_array) && defined(__glibcxx_want_to_array) │ │ │ │ │ +*/ │ │ │ │ │ +1156#undef __glibcxx_want_to_array │ │ │ │ │ +1157 │ │ │ │ │ +1158#if !defined(__cpp_lib_type_identity) │ │ │ │ │ +1159# if (__cplusplus >= 202002L) │ │ │ │ │ +1160# define __glibcxx_type_identity 201806L │ │ │ │ │ +1161# if defined(__glibcxx_want_all) || defined(__glibcxx_want_type_identity) │ │ │ │ │ +1162# define __cpp_lib_type_identity 201806L │ │ │ │ │ +1163# endif │ │ │ │ │ +1164# endif │ │ │ │ │ +1165#endif /* !defined(__cpp_lib_type_identity) && defined │ │ │ │ │ +(__glibcxx_want_type_identity) */ │ │ │ │ │ +1166#undef __glibcxx_want_type_identity │ │ │ │ │ +1167 │ │ │ │ │ +1168#if !defined(__cpp_lib_unwrap_ref) │ │ │ │ │ +1169# if (__cplusplus >= 202002L) │ │ │ │ │ +1170# define __glibcxx_unwrap_ref 201811L │ │ │ │ │ +1171# if defined(__glibcxx_want_all) || defined(__glibcxx_want_unwrap_ref) │ │ │ │ │ +1172# define __cpp_lib_unwrap_ref 201811L │ │ │ │ │ +1173# endif │ │ │ │ │ +1174# endif │ │ │ │ │ +1175#endif /* !defined(__cpp_lib_unwrap_ref) && defined │ │ │ │ │ +(__glibcxx_want_unwrap_ref) */ │ │ │ │ │ +1176#undef __glibcxx_want_unwrap_ref │ │ │ │ │ +1177 │ │ │ │ │ +1178#if !defined(__cpp_lib_constexpr_iterator) │ │ │ │ │ +1179# if (__cplusplus >= 202002L) │ │ │ │ │ +1180# define __glibcxx_constexpr_iterator 201811L │ │ │ │ │ +1181# if defined(__glibcxx_want_all) || defined │ │ │ │ │ +(__glibcxx_want_constexpr_iterator) │ │ │ │ │ +1182# define __cpp_lib_constexpr_iterator 201811L │ │ │ │ │ +1183# endif │ │ │ │ │ +1184# endif │ │ │ │ │ +1185#endif /* !defined(__cpp_lib_constexpr_iterator) && defined │ │ │ │ │ +(__glibcxx_want_constexpr_iterator) */ │ │ │ │ │ +1186#undef __glibcxx_want_constexpr_iterator │ │ │ │ │ +1187 │ │ │ │ │ +1188#if !defined(__cpp_lib_interpolate) │ │ │ │ │ +1189# if (__cplusplus >= 202002L) │ │ │ │ │ +1190# define __glibcxx_interpolate 201902L │ │ │ │ │ +1191# if defined(__glibcxx_want_all) || defined(__glibcxx_want_interpolate) │ │ │ │ │ +1192# define __cpp_lib_interpolate 201902L │ │ │ │ │ +1193# endif │ │ │ │ │ +1194# endif │ │ │ │ │ +1195#endif /* !defined(__cpp_lib_interpolate) && defined │ │ │ │ │ +(__glibcxx_want_interpolate) */ │ │ │ │ │ +1196#undef __glibcxx_want_interpolate │ │ │ │ │ +1197 │ │ │ │ │ +1198#if !defined(__cpp_lib_constexpr_utility) │ │ │ │ │ +1199# if (__cplusplus >= 202002L) │ │ │ │ │ +1200# define __glibcxx_constexpr_utility 201811L │ │ │ │ │ +1201# if defined(__glibcxx_want_all) || defined │ │ │ │ │ +(__glibcxx_want_constexpr_utility) │ │ │ │ │ +1202# define __cpp_lib_constexpr_utility 201811L │ │ │ │ │ +1203# endif │ │ │ │ │ +1204# endif │ │ │ │ │ +1205#endif /* !defined(__cpp_lib_constexpr_utility) && defined │ │ │ │ │ +(__glibcxx_want_constexpr_utility) */ │ │ │ │ │ +1206#undef __glibcxx_want_constexpr_utility │ │ │ │ │ +1207 │ │ │ │ │ +1208#if !defined(__cpp_lib_shift) │ │ │ │ │ +1209# if (__cplusplus >= 202002L) │ │ │ │ │ +1210# define __glibcxx_shift 201806L │ │ │ │ │ +1211# if defined(__glibcxx_want_all) || defined(__glibcxx_want_shift) │ │ │ │ │ +1212# define __cpp_lib_shift 201806L │ │ │ │ │ +1213# endif │ │ │ │ │ +1214# endif │ │ │ │ │ +1215#endif /* !defined(__cpp_lib_shift) && defined(__glibcxx_want_shift) */ │ │ │ │ │ +1216#undef __glibcxx_want_shift │ │ │ │ │ +1217 │ │ │ │ │ +1218#if !defined(__cpp_lib_ranges) │ │ │ │ │ +1219# if (__cplusplus > 202302L) && (__glibcxx_concepts) │ │ │ │ │ +1220# define __glibcxx_ranges 202406L │ │ │ │ │ +1221# if defined(__glibcxx_want_all) || defined(__glibcxx_want_ranges) │ │ │ │ │ +1222# define __cpp_lib_ranges 202406L │ │ │ │ │ +1223# endif │ │ │ │ │ +1224# elif (__cplusplus >= 202100L) && (__glibcxx_concepts) │ │ │ │ │ +1225# define __glibcxx_ranges 202302L │ │ │ │ │ +1226# if defined(__glibcxx_want_all) || defined(__glibcxx_want_ranges) │ │ │ │ │ +1227# define __cpp_lib_ranges 202302L │ │ │ │ │ +1228# endif │ │ │ │ │ +1229# elif (__cplusplus >= 202002L) && (__glibcxx_concepts) │ │ │ │ │ +1230# define __glibcxx_ranges 202110L │ │ │ │ │ +1231# if defined(__glibcxx_want_all) || defined(__glibcxx_want_ranges) │ │ │ │ │ +1232# define __cpp_lib_ranges 202110L │ │ │ │ │ +1233# endif │ │ │ │ │ +1234# endif │ │ │ │ │ +1235#endif /* !defined(__cpp_lib_ranges) && defined(__glibcxx_want_ranges) */ │ │ │ │ │ +1236#undef __glibcxx_want_ranges │ │ │ │ │ +1237 │ │ │ │ │ +1238#if !defined(__cpp_lib_constexpr_numeric) │ │ │ │ │ +1239# if (__cplusplus >= 202002L) │ │ │ │ │ +1240# define __glibcxx_constexpr_numeric 201911L │ │ │ │ │ +1241# if defined(__glibcxx_want_all) || defined │ │ │ │ │ +(__glibcxx_want_constexpr_numeric) │ │ │ │ │ +1242# define __cpp_lib_constexpr_numeric 201911L │ │ │ │ │ +1243# endif │ │ │ │ │ +1244# endif │ │ │ │ │ +1245#endif /* !defined(__cpp_lib_constexpr_numeric) && defined │ │ │ │ │ +(__glibcxx_want_constexpr_numeric) */ │ │ │ │ │ +1246#undef __glibcxx_want_constexpr_numeric │ │ │ │ │ +1247 │ │ │ │ │ +1248#if !defined(__cpp_lib_constexpr_functional) │ │ │ │ │ +1249# if (__cplusplus >= 202002L) │ │ │ │ │ +1250# define __glibcxx_constexpr_functional 201907L │ │ │ │ │ +1251# if defined(__glibcxx_want_all) || defined │ │ │ │ │ +(__glibcxx_want_constexpr_functional) │ │ │ │ │ +1252# define __cpp_lib_constexpr_functional 201907L │ │ │ │ │ +1253# endif │ │ │ │ │ +1254# endif │ │ │ │ │ +1255#endif /* !defined(__cpp_lib_constexpr_functional) && defined │ │ │ │ │ +(__glibcxx_want_constexpr_functional) */ │ │ │ │ │ +1256#undef __glibcxx_want_constexpr_functional │ │ │ │ │ +1257 │ │ │ │ │ +1258#if !defined(__cpp_lib_constexpr_algorithms) │ │ │ │ │ +1259# if (__cplusplus > 202302L) │ │ │ │ │ +1260# define __glibcxx_constexpr_algorithms 202306L │ │ │ │ │ +1261# if defined(__glibcxx_want_all) || defined │ │ │ │ │ +(__glibcxx_want_constexpr_algorithms) │ │ │ │ │ +1262# define __cpp_lib_constexpr_algorithms 202306L │ │ │ │ │ +1263# endif │ │ │ │ │ +1264# elif (__cplusplus >= 202002L) │ │ │ │ │ +1265# define __glibcxx_constexpr_algorithms 201806L │ │ │ │ │ +1266# if defined(__glibcxx_want_all) || defined │ │ │ │ │ +(__glibcxx_want_constexpr_algorithms) │ │ │ │ │ +1267# define __cpp_lib_constexpr_algorithms 201806L │ │ │ │ │ +1268# endif │ │ │ │ │ +1269# endif │ │ │ │ │ +1270#endif /* !defined(__cpp_lib_constexpr_algorithms) && defined │ │ │ │ │ +(__glibcxx_want_constexpr_algorithms) */ │ │ │ │ │ +1271#undef __glibcxx_want_constexpr_algorithms │ │ │ │ │ +1272 │ │ │ │ │ +1273#if !defined(__cpp_lib_constexpr_tuple) │ │ │ │ │ +1274# if (__cplusplus >= 202002L) │ │ │ │ │ +1275# define __glibcxx_constexpr_tuple 201811L │ │ │ │ │ +1276# if defined(__glibcxx_want_all) || defined(__glibcxx_want_constexpr_tuple) │ │ │ │ │ +1277# define __cpp_lib_constexpr_tuple 201811L │ │ │ │ │ +1278# endif │ │ │ │ │ +1279# endif │ │ │ │ │ +1280#endif /* !defined(__cpp_lib_constexpr_tuple) && defined │ │ │ │ │ +(__glibcxx_want_constexpr_tuple) */ │ │ │ │ │ +1281#undef __glibcxx_want_constexpr_tuple │ │ │ │ │ +1282 │ │ │ │ │ +1283#if !defined(__cpp_lib_constexpr_memory) │ │ │ │ │ +1284# if (__cplusplus >= 202100L) && (__cpp_constexpr_dynamic_alloc) │ │ │ │ │ +1285# define __glibcxx_constexpr_memory 202202L │ │ │ │ │ +1286# if defined(__glibcxx_want_all) || defined │ │ │ │ │ +(__glibcxx_want_constexpr_memory) │ │ │ │ │ +1287# define __cpp_lib_constexpr_memory 202202L │ │ │ │ │ +1288# endif │ │ │ │ │ +1289# elif (__cplusplus >= 202002L) │ │ │ │ │ +1290# define __glibcxx_constexpr_memory 201811L │ │ │ │ │ +1291# if defined(__glibcxx_want_all) || defined │ │ │ │ │ +(__glibcxx_want_constexpr_memory) │ │ │ │ │ +1292# define __cpp_lib_constexpr_memory 201811L │ │ │ │ │ +1293# endif │ │ │ │ │ +1294# endif │ │ │ │ │ +1295#endif /* !defined(__cpp_lib_constexpr_memory) && defined │ │ │ │ │ +(__glibcxx_want_constexpr_memory) */ │ │ │ │ │ +1296#undef __glibcxx_want_constexpr_memory │ │ │ │ │ +1297 │ │ │ │ │ +1298#if !defined(__cpp_lib_atomic_shared_ptr) │ │ │ │ │ +1299# if (__cplusplus >= 202002L) && _GLIBCXX_HOSTED │ │ │ │ │ +1300# define __glibcxx_atomic_shared_ptr 201711L │ │ │ │ │ +1301# if defined(__glibcxx_want_all) || defined │ │ │ │ │ +(__glibcxx_want_atomic_shared_ptr) │ │ │ │ │ +1302# define __cpp_lib_atomic_shared_ptr 201711L │ │ │ │ │ +1303# endif │ │ │ │ │ +1304# endif │ │ │ │ │ +1305#endif /* !defined(__cpp_lib_atomic_shared_ptr) && defined │ │ │ │ │ +(__glibcxx_want_atomic_shared_ptr) */ │ │ │ │ │ +1306#undef __glibcxx_want_atomic_shared_ptr │ │ │ │ │ +1307 │ │ │ │ │ +1308#if !defined(__cpp_lib_atomic_wait) │ │ │ │ │ +1309# if (__cplusplus >= 202002L) && defined(_GLIBCXX_HAS_GTHREADS) && │ │ │ │ │ +_GLIBCXX_HOSTED │ │ │ │ │ +1310# define __glibcxx_atomic_wait 201907L │ │ │ │ │ +1311# if defined(__glibcxx_want_all) || defined(__glibcxx_want_atomic_wait) │ │ │ │ │ +1312# define __cpp_lib_atomic_wait 201907L │ │ │ │ │ +1313# endif │ │ │ │ │ +1314# elif (__cplusplus >= 202002L) && !defined(_GLIBCXX_HAS_GTHREADS) && │ │ │ │ │ +_GLIBCXX_HOSTED && (defined(_GLIBCXX_HAVE_LINUX_FUTEX)) │ │ │ │ │ +1315# define __glibcxx_atomic_wait 201907L │ │ │ │ │ +1316# if defined(__glibcxx_want_all) || defined(__glibcxx_want_atomic_wait) │ │ │ │ │ +1317# define __cpp_lib_atomic_wait 201907L │ │ │ │ │ +1318# endif │ │ │ │ │ +1319# endif │ │ │ │ │ +1320#endif /* !defined(__cpp_lib_atomic_wait) && defined │ │ │ │ │ +(__glibcxx_want_atomic_wait) */ │ │ │ │ │ +1321#undef __glibcxx_want_atomic_wait │ │ │ │ │ +1322 │ │ │ │ │ +1323#if !defined(__cpp_lib_barrier) │ │ │ │ │ +1324# if (__cplusplus >= 202002L) && (__cpp_aligned_new && │ │ │ │ │ +__glibcxx_atomic_wait) │ │ │ │ │ +1325# define __glibcxx_barrier 201907L │ │ │ │ │ +1326# if defined(__glibcxx_want_all) || defined(__glibcxx_want_barrier) │ │ │ │ │ +1327# define __cpp_lib_barrier 201907L │ │ │ │ │ +1328# endif │ │ │ │ │ +1329# endif │ │ │ │ │ +1330#endif /* !defined(__cpp_lib_barrier) && defined(__glibcxx_want_barrier) */ │ │ │ │ │ +1331#undef __glibcxx_want_barrier │ │ │ │ │ +1332 │ │ │ │ │ +1333#if !defined(__cpp_lib_format) │ │ │ │ │ +1334# if (__cplusplus > 202302L) && _GLIBCXX_HOSTED │ │ │ │ │ +1335# define __glibcxx_format 202311L │ │ │ │ │ +1336# if defined(__glibcxx_want_all) || defined(__glibcxx_want_format) │ │ │ │ │ +1337# define __cpp_lib_format 202311L │ │ │ │ │ +1338# endif │ │ │ │ │ +1339# elif (__cplusplus >= 202002L) && _GLIBCXX_HOSTED │ │ │ │ │ +1340# define __glibcxx_format 202304L │ │ │ │ │ +1341# if defined(__glibcxx_want_all) || defined(__glibcxx_want_format) │ │ │ │ │ +1342# define __cpp_lib_format 202304L │ │ │ │ │ +1343# endif │ │ │ │ │ +1344# endif │ │ │ │ │ +1345#endif /* !defined(__cpp_lib_format) && defined(__glibcxx_want_format) */ │ │ │ │ │ +1346#undef __glibcxx_want_format │ │ │ │ │ +1347 │ │ │ │ │ +1348#if !defined(__cpp_lib_format_uchar) │ │ │ │ │ +1349# if (__cplusplus >= 202002L) && _GLIBCXX_HOSTED │ │ │ │ │ +1350# define __glibcxx_format_uchar 202311L │ │ │ │ │ +1351# if defined(__glibcxx_want_all) || defined(__glibcxx_want_format_uchar) │ │ │ │ │ +1352# define __cpp_lib_format_uchar 202311L │ │ │ │ │ +1353# endif │ │ │ │ │ +1354# endif │ │ │ │ │ +1355#endif /* !defined(__cpp_lib_format_uchar) && defined │ │ │ │ │ +(__glibcxx_want_format_uchar) */ │ │ │ │ │ +1356#undef __glibcxx_want_format_uchar │ │ │ │ │ +1357 │ │ │ │ │ +1358#if !defined(__cpp_lib_constexpr_complex) │ │ │ │ │ +1359# if (__cplusplus >= 202002L) && _GLIBCXX_HOSTED │ │ │ │ │ +1360# define __glibcxx_constexpr_complex 201711L │ │ │ │ │ +1361# if defined(__glibcxx_want_all) || defined │ │ │ │ │ +(__glibcxx_want_constexpr_complex) │ │ │ │ │ +1362# define __cpp_lib_constexpr_complex 201711L │ │ │ │ │ +1363# endif │ │ │ │ │ +1364# endif │ │ │ │ │ +1365#endif /* !defined(__cpp_lib_constexpr_complex) && defined │ │ │ │ │ +(__glibcxx_want_constexpr_complex) */ │ │ │ │ │ +1366#undef __glibcxx_want_constexpr_complex │ │ │ │ │ +1367 │ │ │ │ │ +1368#if !defined(__cpp_lib_constexpr_dynamic_alloc) │ │ │ │ │ +1369# if (__cplusplus >= 202002L) && _GLIBCXX_HOSTED │ │ │ │ │ +1370# define __glibcxx_constexpr_dynamic_alloc 201907L │ │ │ │ │ +1371# if defined(__glibcxx_want_all) || defined │ │ │ │ │ +(__glibcxx_want_constexpr_dynamic_alloc) │ │ │ │ │ +1372# define __cpp_lib_constexpr_dynamic_alloc 201907L │ │ │ │ │ +1373# endif │ │ │ │ │ +1374# endif │ │ │ │ │ +1375#endif /* !defined(__cpp_lib_constexpr_dynamic_alloc) && defined │ │ │ │ │ +(__glibcxx_want_constexpr_dynamic_alloc) */ │ │ │ │ │ +1376#undef __glibcxx_want_constexpr_dynamic_alloc │ │ │ │ │ +1377 │ │ │ │ │ +1378#if !defined(__cpp_lib_constexpr_string) │ │ │ │ │ +1379# if (__cplusplus >= 202002L) && _GLIBCXX_USE_CXX11_ABI && _GLIBCXX_HOSTED │ │ │ │ │ +&& (defined(__glibcxx_is_constant_evaluated)) │ │ │ │ │ +1380# define __glibcxx_constexpr_string 201907L │ │ │ │ │ +1381# if defined(__glibcxx_want_all) || defined │ │ │ │ │ +(__glibcxx_want_constexpr_string) │ │ │ │ │ +1382# define __cpp_lib_constexpr_string 201907L │ │ │ │ │ +1383# endif │ │ │ │ │ +1384# elif (__cplusplus >= 202002L) && !_GLIBCXX_USE_CXX11_ABI && │ │ │ │ │ +_GLIBCXX_HOSTED && (defined(__glibcxx_is_constant_evaluated)) │ │ │ │ │ +1385# define __glibcxx_constexpr_string 201811L │ │ │ │ │ +1386# if defined(__glibcxx_want_all) || defined │ │ │ │ │ +(__glibcxx_want_constexpr_string) │ │ │ │ │ +1387# define __cpp_lib_constexpr_string 201811L │ │ │ │ │ +1388# endif │ │ │ │ │ +1389# elif (__cplusplus >= 201703L) && _GLIBCXX_HOSTED && │ │ │ │ │ +(_GLIBCXX_HAVE_IS_CONSTANT_EVALUATED) │ │ │ │ │ +1390# define __glibcxx_constexpr_string 201611L │ │ │ │ │ +1391# if defined(__glibcxx_want_all) || defined │ │ │ │ │ +(__glibcxx_want_constexpr_string) │ │ │ │ │ +1392# define __cpp_lib_constexpr_string 201611L │ │ │ │ │ +1393# endif │ │ │ │ │ +1394# endif │ │ │ │ │ +1395#endif /* !defined(__cpp_lib_constexpr_string) && defined │ │ │ │ │ +(__glibcxx_want_constexpr_string) */ │ │ │ │ │ +1396#undef __glibcxx_want_constexpr_string │ │ │ │ │ +1397 │ │ │ │ │ +1398#if !defined(__cpp_lib_constexpr_vector) │ │ │ │ │ +1399# if (__cplusplus >= 202002L) && _GLIBCXX_HOSTED │ │ │ │ │ +1400# define __glibcxx_constexpr_vector 201907L │ │ │ │ │ +1401# if defined(__glibcxx_want_all) || defined │ │ │ │ │ +(__glibcxx_want_constexpr_vector) │ │ │ │ │ +1402# define __cpp_lib_constexpr_vector 201907L │ │ │ │ │ +1403# endif │ │ │ │ │ +1404# endif │ │ │ │ │ +1405#endif /* !defined(__cpp_lib_constexpr_vector) && defined │ │ │ │ │ +(__glibcxx_want_constexpr_vector) */ │ │ │ │ │ +1406#undef __glibcxx_want_constexpr_vector │ │ │ │ │ +1407 │ │ │ │ │ +1408#if !defined(__cpp_lib_constrained_equality) │ │ │ │ │ +1409# if (__cplusplus >= 202002L) && (__glibcxx_three_way_comparison) │ │ │ │ │ +1410# define __glibcxx_constrained_equality 202411L │ │ │ │ │ +1411# if defined(__glibcxx_want_all) || defined │ │ │ │ │ +(__glibcxx_want_constrained_equality) │ │ │ │ │ +1412# define __cpp_lib_constrained_equality 202411L │ │ │ │ │ +1413# endif │ │ │ │ │ +1414# endif │ │ │ │ │ +1415#endif /* !defined(__cpp_lib_constrained_equality) && defined │ │ │ │ │ +(__glibcxx_want_constrained_equality) */ │ │ │ │ │ +1416#undef __glibcxx_want_constrained_equality │ │ │ │ │ +1417 │ │ │ │ │ +1418#if !defined(__cpp_lib_erase_if) │ │ │ │ │ +1419# if (__cplusplus >= 202002L) && _GLIBCXX_HOSTED │ │ │ │ │ +1420# define __glibcxx_erase_if 202002L │ │ │ │ │ +1421# if defined(__glibcxx_want_all) || defined(__glibcxx_want_erase_if) │ │ │ │ │ +1422# define __cpp_lib_erase_if 202002L │ │ │ │ │ +1423# endif │ │ │ │ │ +1424# endif │ │ │ │ │ +1425#endif /* !defined(__cpp_lib_erase_if) && defined(__glibcxx_want_erase_if) │ │ │ │ │ +*/ │ │ │ │ │ +1426#undef __glibcxx_want_erase_if │ │ │ │ │ +1427 │ │ │ │ │ +1428#if !defined(__cpp_lib_generic_unordered_lookup) │ │ │ │ │ +1429# if (__cplusplus >= 202002L) && _GLIBCXX_HOSTED │ │ │ │ │ +1430# define __glibcxx_generic_unordered_lookup 201811L │ │ │ │ │ +1431# if defined(__glibcxx_want_all) || defined │ │ │ │ │ +(__glibcxx_want_generic_unordered_lookup) │ │ │ │ │ +1432# define __cpp_lib_generic_unordered_lookup 201811L │ │ │ │ │ +1433# endif │ │ │ │ │ +1434# endif │ │ │ │ │ +1435#endif /* !defined(__cpp_lib_generic_unordered_lookup) && defined │ │ │ │ │ +(__glibcxx_want_generic_unordered_lookup) */ │ │ │ │ │ +1436#undef __glibcxx_want_generic_unordered_lookup │ │ │ │ │ +1437 │ │ │ │ │ +1438#if !defined(__cpp_lib_jthread) │ │ │ │ │ +1439# if (__cplusplus >= 202002L) && defined(_GLIBCXX_HAS_GTHREADS) && │ │ │ │ │ +_GLIBCXX_HOSTED │ │ │ │ │ +1440# define __glibcxx_jthread 201911L │ │ │ │ │ +1441# if defined(__glibcxx_want_all) || defined(__glibcxx_want_jthread) │ │ │ │ │ +1442# define __cpp_lib_jthread 201911L │ │ │ │ │ +1443# endif │ │ │ │ │ +1444# endif │ │ │ │ │ +1445#endif /* !defined(__cpp_lib_jthread) && defined(__glibcxx_want_jthread) */ │ │ │ │ │ +1446#undef __glibcxx_want_jthread │ │ │ │ │ +1447 │ │ │ │ │ +1448#if !defined(__cpp_lib_latch) │ │ │ │ │ +1449# if (__cplusplus >= 202002L) && (__glibcxx_atomic_wait) │ │ │ │ │ +1450# define __glibcxx_latch 201907L │ │ │ │ │ +1451# if defined(__glibcxx_want_all) || defined(__glibcxx_want_latch) │ │ │ │ │ +1452# define __cpp_lib_latch 201907L │ │ │ │ │ +1453# endif │ │ │ │ │ +1454# endif │ │ │ │ │ +1455#endif /* !defined(__cpp_lib_latch) && defined(__glibcxx_want_latch) */ │ │ │ │ │ +1456#undef __glibcxx_want_latch │ │ │ │ │ +1457 │ │ │ │ │ +1458#if !defined(__cpp_lib_list_remove_return_type) │ │ │ │ │ +1459# if (__cplusplus >= 202002L) && _GLIBCXX_HOSTED │ │ │ │ │ +1460# define __glibcxx_list_remove_return_type 201806L │ │ │ │ │ +1461# if defined(__glibcxx_want_all) || defined │ │ │ │ │ +(__glibcxx_want_list_remove_return_type) │ │ │ │ │ +1462# define __cpp_lib_list_remove_return_type 201806L │ │ │ │ │ +1463# endif │ │ │ │ │ +1464# endif │ │ │ │ │ +1465#endif /* !defined(__cpp_lib_list_remove_return_type) && defined │ │ │ │ │ +(__glibcxx_want_list_remove_return_type) */ │ │ │ │ │ +1466#undef __glibcxx_want_list_remove_return_type │ │ │ │ │ +1467 │ │ │ │ │ +1468#if !defined(__cpp_lib_polymorphic_allocator) │ │ │ │ │ +1469# if (__cplusplus >= 202002L) && _GLIBCXX_HOSTED │ │ │ │ │ +1470# define __glibcxx_polymorphic_allocator 201902L │ │ │ │ │ +1471# if defined(__glibcxx_want_all) || defined │ │ │ │ │ +(__glibcxx_want_polymorphic_allocator) │ │ │ │ │ +1472# define __cpp_lib_polymorphic_allocator 201902L │ │ │ │ │ +1473# endif │ │ │ │ │ +1474# endif │ │ │ │ │ +1475#endif /* !defined(__cpp_lib_polymorphic_allocator) && defined │ │ │ │ │ +(__glibcxx_want_polymorphic_allocator) */ │ │ │ │ │ +1476#undef __glibcxx_want_polymorphic_allocator │ │ │ │ │ +1477 │ │ │ │ │ +1478#if !defined(__cpp_lib_move_iterator_concept) │ │ │ │ │ +1479# if (__cplusplus >= 202002L) && (__glibcxx_concepts) │ │ │ │ │ +1480# define __glibcxx_move_iterator_concept 202207L │ │ │ │ │ +1481# if defined(__glibcxx_want_all) || defined │ │ │ │ │ +(__glibcxx_want_move_iterator_concept) │ │ │ │ │ +1482# define __cpp_lib_move_iterator_concept 202207L │ │ │ │ │ +1483# endif │ │ │ │ │ +1484# endif │ │ │ │ │ +1485#endif /* !defined(__cpp_lib_move_iterator_concept) && defined │ │ │ │ │ +(__glibcxx_want_move_iterator_concept) */ │ │ │ │ │ +1486#undef __glibcxx_want_move_iterator_concept │ │ │ │ │ +1487 │ │ │ │ │ +1488#if !defined(__cpp_lib_semaphore) │ │ │ │ │ +1489# if (__cplusplus >= 202002L) && _GLIBCXX_HOSTED && (__glibcxx_atomic_wait │ │ │ │ │ +|| _GLIBCXX_HAVE_POSIX_SEMAPHORE) │ │ │ │ │ +1490# define __glibcxx_semaphore 201907L │ │ │ │ │ +1491# if defined(__glibcxx_want_all) || defined(__glibcxx_want_semaphore) │ │ │ │ │ +1492# define __cpp_lib_semaphore 201907L │ │ │ │ │ +1493# endif │ │ │ │ │ +1494# endif │ │ │ │ │ +1495#endif /* !defined(__cpp_lib_semaphore) && defined │ │ │ │ │ +(__glibcxx_want_semaphore) */ │ │ │ │ │ +1496#undef __glibcxx_want_semaphore │ │ │ │ │ +1497 │ │ │ │ │ +1498#if !defined(__cpp_lib_smart_ptr_for_overwrite) │ │ │ │ │ +1499# if (__cplusplus >= 202002L) && _GLIBCXX_HOSTED │ │ │ │ │ +1500# define __glibcxx_smart_ptr_for_overwrite 202002L │ │ │ │ │ +1501# if defined(__glibcxx_want_all) || defined │ │ │ │ │ +(__glibcxx_want_smart_ptr_for_overwrite) │ │ │ │ │ +1502# define __cpp_lib_smart_ptr_for_overwrite 202002L │ │ │ │ │ +1503# endif │ │ │ │ │ +1504# endif │ │ │ │ │ +1505#endif /* !defined(__cpp_lib_smart_ptr_for_overwrite) && defined │ │ │ │ │ +(__glibcxx_want_smart_ptr_for_overwrite) */ │ │ │ │ │ +1506#undef __glibcxx_want_smart_ptr_for_overwrite │ │ │ │ │ +1507 │ │ │ │ │ +1508#if !defined(__cpp_lib_syncbuf) │ │ │ │ │ +1509# if (__cplusplus >= 202002L) && _GLIBCXX_USE_CXX11_ABI && _GLIBCXX_HOSTED │ │ │ │ │ +1510# define __glibcxx_syncbuf 201803L │ │ │ │ │ +1511# if defined(__glibcxx_want_all) || defined(__glibcxx_want_syncbuf) │ │ │ │ │ +1512# define __cpp_lib_syncbuf 201803L │ │ │ │ │ +1513# endif │ │ │ │ │ +1514# endif │ │ │ │ │ +1515#endif /* !defined(__cpp_lib_syncbuf) && defined(__glibcxx_want_syncbuf) */ │ │ │ │ │ +1516#undef __glibcxx_want_syncbuf │ │ │ │ │ +1517 │ │ │ │ │ +1518#if !defined(__cpp_lib_byteswap) │ │ │ │ │ +1519# if (__cplusplus >= 202100L) │ │ │ │ │ +1520# define __glibcxx_byteswap 202110L │ │ │ │ │ +1521# if defined(__glibcxx_want_all) || defined(__glibcxx_want_byteswap) │ │ │ │ │ +1522# define __cpp_lib_byteswap 202110L │ │ │ │ │ +1523# endif │ │ │ │ │ +1524# endif │ │ │ │ │ +1525#endif /* !defined(__cpp_lib_byteswap) && defined(__glibcxx_want_byteswap) │ │ │ │ │ +*/ │ │ │ │ │ +1526#undef __glibcxx_want_byteswap │ │ │ │ │ +1527 │ │ │ │ │ +1528#if !defined(__cpp_lib_constexpr_charconv) │ │ │ │ │ +1529# if (__cplusplus >= 202100L) │ │ │ │ │ +1530# define __glibcxx_constexpr_charconv 202207L │ │ │ │ │ +1531# if defined(__glibcxx_want_all) || defined │ │ │ │ │ +(__glibcxx_want_constexpr_charconv) │ │ │ │ │ +1532# define __cpp_lib_constexpr_charconv 202207L │ │ │ │ │ +1533# endif │ │ │ │ │ +1534# endif │ │ │ │ │ +1535#endif /* !defined(__cpp_lib_constexpr_charconv) && defined │ │ │ │ │ +(__glibcxx_want_constexpr_charconv) */ │ │ │ │ │ +1536#undef __glibcxx_want_constexpr_charconv │ │ │ │ │ +1537 │ │ │ │ │ +1538#if !defined(__cpp_lib_constexpr_typeinfo) │ │ │ │ │ +1539# if (__cplusplus >= 202100L) │ │ │ │ │ +1540# define __glibcxx_constexpr_typeinfo 202106L │ │ │ │ │ +1541# if defined(__glibcxx_want_all) || defined │ │ │ │ │ +(__glibcxx_want_constexpr_typeinfo) │ │ │ │ │ +1542# define __cpp_lib_constexpr_typeinfo 202106L │ │ │ │ │ +1543# endif │ │ │ │ │ +1544# endif │ │ │ │ │ +1545#endif /* !defined(__cpp_lib_constexpr_typeinfo) && defined │ │ │ │ │ +(__glibcxx_want_constexpr_typeinfo) */ │ │ │ │ │ +1546#undef __glibcxx_want_constexpr_typeinfo │ │ │ │ │ +1547 │ │ │ │ │ +1548#if !defined(__cpp_lib_expected) │ │ │ │ │ +1549# if (__cplusplus >= 202100L) && (__cpp_concepts >= 202002L) │ │ │ │ │ +1550# define __glibcxx_expected 202211L │ │ │ │ │ +1551# if defined(__glibcxx_want_all) || defined(__glibcxx_want_expected) │ │ │ │ │ +1552# define __cpp_lib_expected 202211L │ │ │ │ │ +1553# endif │ │ │ │ │ +1554# endif │ │ │ │ │ +1555#endif /* !defined(__cpp_lib_expected) && defined(__glibcxx_want_expected) │ │ │ │ │ +*/ │ │ │ │ │ +1556#undef __glibcxx_want_expected │ │ │ │ │ +1557 │ │ │ │ │ +1558#if !defined(__cpp_lib_freestanding_algorithm) │ │ │ │ │ +1559# if (__cplusplus >= 202100L) │ │ │ │ │ +1560# define __glibcxx_freestanding_algorithm 202311L │ │ │ │ │ +1561# if defined(__glibcxx_want_all) || defined │ │ │ │ │ +(__glibcxx_want_freestanding_algorithm) │ │ │ │ │ +1562# define __cpp_lib_freestanding_algorithm 202311L │ │ │ │ │ +1563# endif │ │ │ │ │ +1564# endif │ │ │ │ │ +1565#endif /* !defined(__cpp_lib_freestanding_algorithm) && defined │ │ │ │ │ +(__glibcxx_want_freestanding_algorithm) */ │ │ │ │ │ +1566#undef __glibcxx_want_freestanding_algorithm │ │ │ │ │ +1567 │ │ │ │ │ +1568#if !defined(__cpp_lib_freestanding_array) │ │ │ │ │ +1569# if (__cplusplus >= 202100L) │ │ │ │ │ +1570# define __glibcxx_freestanding_array 202311L │ │ │ │ │ +1571# if defined(__glibcxx_want_all) || defined │ │ │ │ │ +(__glibcxx_want_freestanding_array) │ │ │ │ │ +1572# define __cpp_lib_freestanding_array 202311L │ │ │ │ │ +1573# endif │ │ │ │ │ +1574# endif │ │ │ │ │ +1575#endif /* !defined(__cpp_lib_freestanding_array) && defined │ │ │ │ │ +(__glibcxx_want_freestanding_array) */ │ │ │ │ │ +1576#undef __glibcxx_want_freestanding_array │ │ │ │ │ +1577 │ │ │ │ │ +1578#if !defined(__cpp_lib_freestanding_cstring) │ │ │ │ │ +1579# if (__cplusplus >= 202100L) │ │ │ │ │ +1580# define __glibcxx_freestanding_cstring 202311L │ │ │ │ │ +1581# if defined(__glibcxx_want_all) || defined │ │ │ │ │ +(__glibcxx_want_freestanding_cstring) │ │ │ │ │ +1582# define __cpp_lib_freestanding_cstring 202311L │ │ │ │ │ +1583# endif │ │ │ │ │ +1584# endif │ │ │ │ │ +1585#endif /* !defined(__cpp_lib_freestanding_cstring) && defined │ │ │ │ │ +(__glibcxx_want_freestanding_cstring) */ │ │ │ │ │ +1586#undef __glibcxx_want_freestanding_cstring │ │ │ │ │ +1587 │ │ │ │ │ +1588#if !defined(__cpp_lib_freestanding_expected) │ │ │ │ │ +1589# if (__cplusplus >= 202100L) && (__cpp_lib_expected) │ │ │ │ │ +1590# define __glibcxx_freestanding_expected 202311L │ │ │ │ │ +1591# if defined(__glibcxx_want_all) || defined │ │ │ │ │ +(__glibcxx_want_freestanding_expected) │ │ │ │ │ +1592# define __cpp_lib_freestanding_expected 202311L │ │ │ │ │ +1593# endif │ │ │ │ │ +1594# endif │ │ │ │ │ +1595#endif /* !defined(__cpp_lib_freestanding_expected) && defined │ │ │ │ │ +(__glibcxx_want_freestanding_expected) */ │ │ │ │ │ +1596#undef __glibcxx_want_freestanding_expected │ │ │ │ │ +1597 │ │ │ │ │ +1598#if !defined(__cpp_lib_freestanding_optional) │ │ │ │ │ +1599# if (__cplusplus >= 202100L) │ │ │ │ │ +1600# define __glibcxx_freestanding_optional 202311L │ │ │ │ │ +1601# if defined(__glibcxx_want_all) || defined │ │ │ │ │ +(__glibcxx_want_freestanding_optional) │ │ │ │ │ +1602# define __cpp_lib_freestanding_optional 202311L │ │ │ │ │ +1603# endif │ │ │ │ │ +1604# endif │ │ │ │ │ +1605#endif /* !defined(__cpp_lib_freestanding_optional) && defined │ │ │ │ │ +(__glibcxx_want_freestanding_optional) */ │ │ │ │ │ +1606#undef __glibcxx_want_freestanding_optional │ │ │ │ │ +1607 │ │ │ │ │ +1608#if !defined(__cpp_lib_freestanding_string_view) │ │ │ │ │ +1609# if (__cplusplus >= 202100L) │ │ │ │ │ +1610# define __glibcxx_freestanding_string_view 202311L │ │ │ │ │ +1611# if defined(__glibcxx_want_all) || defined │ │ │ │ │ +(__glibcxx_want_freestanding_string_view) │ │ │ │ │ +1612# define __cpp_lib_freestanding_string_view 202311L │ │ │ │ │ +1613# endif │ │ │ │ │ +1614# endif │ │ │ │ │ +1615#endif /* !defined(__cpp_lib_freestanding_string_view) && defined │ │ │ │ │ +(__glibcxx_want_freestanding_string_view) */ │ │ │ │ │ +1616#undef __glibcxx_want_freestanding_string_view │ │ │ │ │ +1617 │ │ │ │ │ +1618#if !defined(__cpp_lib_freestanding_variant) │ │ │ │ │ +1619# if (__cplusplus >= 202100L) │ │ │ │ │ +1620# define __glibcxx_freestanding_variant 202311L │ │ │ │ │ +1621# if defined(__glibcxx_want_all) || defined │ │ │ │ │ +(__glibcxx_want_freestanding_variant) │ │ │ │ │ +1622# define __cpp_lib_freestanding_variant 202311L │ │ │ │ │ +1623# endif │ │ │ │ │ +1624# endif │ │ │ │ │ +1625#endif /* !defined(__cpp_lib_freestanding_variant) && defined │ │ │ │ │ +(__glibcxx_want_freestanding_variant) */ │ │ │ │ │ +1626#undef __glibcxx_want_freestanding_variant │ │ │ │ │ +1627 │ │ │ │ │ +1628#if !defined(__cpp_lib_invoke_r) │ │ │ │ │ +1629# if (__cplusplus >= 202100L) │ │ │ │ │ +1630# define __glibcxx_invoke_r 202106L │ │ │ │ │ +1631# if defined(__glibcxx_want_all) || defined(__glibcxx_want_invoke_r) │ │ │ │ │ +1632# define __cpp_lib_invoke_r 202106L │ │ │ │ │ +1633# endif │ │ │ │ │ +1634# endif │ │ │ │ │ +1635#endif /* !defined(__cpp_lib_invoke_r) && defined(__glibcxx_want_invoke_r) │ │ │ │ │ +*/ │ │ │ │ │ +1636#undef __glibcxx_want_invoke_r │ │ │ │ │ +1637 │ │ │ │ │ +1638#if !defined(__cpp_lib_is_scoped_enum) │ │ │ │ │ +1639# if (__cplusplus >= 202100L) │ │ │ │ │ +1640# define __glibcxx_is_scoped_enum 202011L │ │ │ │ │ +1641# if defined(__glibcxx_want_all) || defined(__glibcxx_want_is_scoped_enum) │ │ │ │ │ +1642# define __cpp_lib_is_scoped_enum 202011L │ │ │ │ │ +1643# endif │ │ │ │ │ +1644# endif │ │ │ │ │ +1645#endif /* !defined(__cpp_lib_is_scoped_enum) && defined │ │ │ │ │ +(__glibcxx_want_is_scoped_enum) */ │ │ │ │ │ +1646#undef __glibcxx_want_is_scoped_enum │ │ │ │ │ +1647 │ │ │ │ │ +1648#if !defined(__cpp_lib_reference_from_temporary) │ │ │ │ │ +1649# if (__cplusplus >= 202100L) && (__has_builtin │ │ │ │ │ +(__reference_constructs_from_temporary) && __has_builtin │ │ │ │ │ +(__reference_converts_from_temporary)) │ │ │ │ │ +1650# define __glibcxx_reference_from_temporary 202202L │ │ │ │ │ +1651# if defined(__glibcxx_want_all) || defined │ │ │ │ │ +(__glibcxx_want_reference_from_temporary) │ │ │ │ │ +1652# define __cpp_lib_reference_from_temporary 202202L │ │ │ │ │ +1653# endif │ │ │ │ │ +1654# endif │ │ │ │ │ +1655#endif /* !defined(__cpp_lib_reference_from_temporary) && defined │ │ │ │ │ +(__glibcxx_want_reference_from_temporary) */ │ │ │ │ │ +1656#undef __glibcxx_want_reference_from_temporary │ │ │ │ │ +1657 │ │ │ │ │ +1658#if !defined(__cpp_lib_ranges_to_container) │ │ │ │ │ +1659# if (__cplusplus >= 202100L) && _GLIBCXX_HOSTED │ │ │ │ │ +1660# define __glibcxx_ranges_to_container 202202L │ │ │ │ │ +1661# if defined(__glibcxx_want_all) || defined │ │ │ │ │ +(__glibcxx_want_ranges_to_container) │ │ │ │ │ +1662# define __cpp_lib_ranges_to_container 202202L │ │ │ │ │ +1663# endif │ │ │ │ │ +1664# endif │ │ │ │ │ +1665#endif /* !defined(__cpp_lib_ranges_to_container) && defined │ │ │ │ │ +(__glibcxx_want_ranges_to_container) */ │ │ │ │ │ +1666#undef __glibcxx_want_ranges_to_container │ │ │ │ │ +1667 │ │ │ │ │ +1668#if !defined(__cpp_lib_ranges_zip) │ │ │ │ │ +1669# if (__cplusplus >= 202100L) │ │ │ │ │ +1670# define __glibcxx_ranges_zip 202110L │ │ │ │ │ +1671# if defined(__glibcxx_want_all) || defined(__glibcxx_want_ranges_zip) │ │ │ │ │ +1672# define __cpp_lib_ranges_zip 202110L │ │ │ │ │ +1673# endif │ │ │ │ │ +1674# endif │ │ │ │ │ +1675#endif /* !defined(__cpp_lib_ranges_zip) && defined │ │ │ │ │ +(__glibcxx_want_ranges_zip) */ │ │ │ │ │ +1676#undef __glibcxx_want_ranges_zip │ │ │ │ │ +1677 │ │ │ │ │ +1678#if !defined(__cpp_lib_ranges_chunk) │ │ │ │ │ +1679# if (__cplusplus >= 202100L) │ │ │ │ │ +1680# define __glibcxx_ranges_chunk 202202L │ │ │ │ │ +1681# if defined(__glibcxx_want_all) || defined(__glibcxx_want_ranges_chunk) │ │ │ │ │ +1682# define __cpp_lib_ranges_chunk 202202L │ │ │ │ │ +1683# endif │ │ │ │ │ +1684# endif │ │ │ │ │ +1685#endif /* !defined(__cpp_lib_ranges_chunk) && defined │ │ │ │ │ +(__glibcxx_want_ranges_chunk) */ │ │ │ │ │ +1686#undef __glibcxx_want_ranges_chunk │ │ │ │ │ +1687 │ │ │ │ │ +1688#if !defined(__cpp_lib_ranges_slide) │ │ │ │ │ +1689# if (__cplusplus >= 202100L) │ │ │ │ │ +1690# define __glibcxx_ranges_slide 202202L │ │ │ │ │ +1691# if defined(__glibcxx_want_all) || defined(__glibcxx_want_ranges_slide) │ │ │ │ │ +1692# define __cpp_lib_ranges_slide 202202L │ │ │ │ │ +1693# endif │ │ │ │ │ +1694# endif │ │ │ │ │ +1695#endif /* !defined(__cpp_lib_ranges_slide) && defined │ │ │ │ │ +(__glibcxx_want_ranges_slide) */ │ │ │ │ │ +1696#undef __glibcxx_want_ranges_slide │ │ │ │ │ +1697 │ │ │ │ │ +1698#if !defined(__cpp_lib_ranges_chunk_by) │ │ │ │ │ +1699# if (__cplusplus >= 202100L) │ │ │ │ │ +1700# define __glibcxx_ranges_chunk_by 202202L │ │ │ │ │ +1701# if defined(__glibcxx_want_all) || defined(__glibcxx_want_ranges_chunk_by) │ │ │ │ │ +1702# define __cpp_lib_ranges_chunk_by 202202L │ │ │ │ │ +1703# endif │ │ │ │ │ +1704# endif │ │ │ │ │ +1705#endif /* !defined(__cpp_lib_ranges_chunk_by) && defined │ │ │ │ │ +(__glibcxx_want_ranges_chunk_by) */ │ │ │ │ │ +1706#undef __glibcxx_want_ranges_chunk_by │ │ │ │ │ +1707 │ │ │ │ │ +1708#if !defined(__cpp_lib_ranges_join_with) │ │ │ │ │ +1709# if (__cplusplus >= 202100L) │ │ │ │ │ +1710# define __glibcxx_ranges_join_with 202202L │ │ │ │ │ +1711# if defined(__glibcxx_want_all) || defined │ │ │ │ │ +(__glibcxx_want_ranges_join_with) │ │ │ │ │ +1712# define __cpp_lib_ranges_join_with 202202L │ │ │ │ │ +1713# endif │ │ │ │ │ +1714# endif │ │ │ │ │ +1715#endif /* !defined(__cpp_lib_ranges_join_with) && defined │ │ │ │ │ +(__glibcxx_want_ranges_join_with) */ │ │ │ │ │ +1716#undef __glibcxx_want_ranges_join_with │ │ │ │ │ +1717 │ │ │ │ │ +1718#if !defined(__cpp_lib_ranges_repeat) │ │ │ │ │ +1719# if (__cplusplus >= 202100L) │ │ │ │ │ +1720# define __glibcxx_ranges_repeat 202207L │ │ │ │ │ +1721# if defined(__glibcxx_want_all) || defined(__glibcxx_want_ranges_repeat) │ │ │ │ │ +1722# define __cpp_lib_ranges_repeat 202207L │ │ │ │ │ +1723# endif │ │ │ │ │ +1724# endif │ │ │ │ │ +1725#endif /* !defined(__cpp_lib_ranges_repeat) && defined │ │ │ │ │ +(__glibcxx_want_ranges_repeat) */ │ │ │ │ │ +1726#undef __glibcxx_want_ranges_repeat │ │ │ │ │ +1727 │ │ │ │ │ +1728#if !defined(__cpp_lib_ranges_stride) │ │ │ │ │ +1729# if (__cplusplus >= 202100L) │ │ │ │ │ +1730# define __glibcxx_ranges_stride 202207L │ │ │ │ │ +1731# if defined(__glibcxx_want_all) || defined(__glibcxx_want_ranges_stride) │ │ │ │ │ +1732# define __cpp_lib_ranges_stride 202207L │ │ │ │ │ +1733# endif │ │ │ │ │ +1734# endif │ │ │ │ │ +1735#endif /* !defined(__cpp_lib_ranges_stride) && defined │ │ │ │ │ +(__glibcxx_want_ranges_stride) */ │ │ │ │ │ +1736#undef __glibcxx_want_ranges_stride │ │ │ │ │ +1737 │ │ │ │ │ +1738#if !defined(__cpp_lib_ranges_cartesian_product) │ │ │ │ │ +1739# if (__cplusplus >= 202100L) │ │ │ │ │ +1740# define __glibcxx_ranges_cartesian_product 202207L │ │ │ │ │ +1741# if defined(__glibcxx_want_all) || defined │ │ │ │ │ +(__glibcxx_want_ranges_cartesian_product) │ │ │ │ │ +1742# define __cpp_lib_ranges_cartesian_product 202207L │ │ │ │ │ +1743# endif │ │ │ │ │ +1744# endif │ │ │ │ │ +1745#endif /* !defined(__cpp_lib_ranges_cartesian_product) && defined │ │ │ │ │ +(__glibcxx_want_ranges_cartesian_product) */ │ │ │ │ │ +1746#undef __glibcxx_want_ranges_cartesian_product │ │ │ │ │ +1747 │ │ │ │ │ +1748#if !defined(__cpp_lib_ranges_as_rvalue) │ │ │ │ │ +1749# if (__cplusplus >= 202100L) │ │ │ │ │ +1750# define __glibcxx_ranges_as_rvalue 202207L │ │ │ │ │ +1751# if defined(__glibcxx_want_all) || defined │ │ │ │ │ +(__glibcxx_want_ranges_as_rvalue) │ │ │ │ │ +1752# define __cpp_lib_ranges_as_rvalue 202207L │ │ │ │ │ +1753# endif │ │ │ │ │ +1754# endif │ │ │ │ │ +1755#endif /* !defined(__cpp_lib_ranges_as_rvalue) && defined │ │ │ │ │ +(__glibcxx_want_ranges_as_rvalue) */ │ │ │ │ │ +1756#undef __glibcxx_want_ranges_as_rvalue │ │ │ │ │ +1757 │ │ │ │ │ +1758#if !defined(__cpp_lib_ranges_as_const) │ │ │ │ │ +1759# if (__cplusplus >= 202100L) │ │ │ │ │ +1760# define __glibcxx_ranges_as_const 202311L │ │ │ │ │ +1761# if defined(__glibcxx_want_all) || defined(__glibcxx_want_ranges_as_const) │ │ │ │ │ +1762# define __cpp_lib_ranges_as_const 202311L │ │ │ │ │ +1763# endif │ │ │ │ │ +1764# endif │ │ │ │ │ +1765#endif /* !defined(__cpp_lib_ranges_as_const) && defined │ │ │ │ │ +(__glibcxx_want_ranges_as_const) */ │ │ │ │ │ +1766#undef __glibcxx_want_ranges_as_const │ │ │ │ │ +1767 │ │ │ │ │ +1768#if !defined(__cpp_lib_ranges_enumerate) │ │ │ │ │ +1769# if (__cplusplus >= 202100L) │ │ │ │ │ +1770# define __glibcxx_ranges_enumerate 202302L │ │ │ │ │ +1771# if defined(__glibcxx_want_all) || defined │ │ │ │ │ +(__glibcxx_want_ranges_enumerate) │ │ │ │ │ +1772# define __cpp_lib_ranges_enumerate 202302L │ │ │ │ │ +1773# endif │ │ │ │ │ +1774# endif │ │ │ │ │ +1775#endif /* !defined(__cpp_lib_ranges_enumerate) && defined │ │ │ │ │ +(__glibcxx_want_ranges_enumerate) */ │ │ │ │ │ +1776#undef __glibcxx_want_ranges_enumerate │ │ │ │ │ +1777 │ │ │ │ │ +1778#if !defined(__cpp_lib_ranges_fold) │ │ │ │ │ +1779# if (__cplusplus >= 202100L) │ │ │ │ │ +1780# define __glibcxx_ranges_fold 202207L │ │ │ │ │ +1781# if defined(__glibcxx_want_all) || defined(__glibcxx_want_ranges_fold) │ │ │ │ │ +1782# define __cpp_lib_ranges_fold 202207L │ │ │ │ │ +1783# endif │ │ │ │ │ +1784# endif │ │ │ │ │ +1785#endif /* !defined(__cpp_lib_ranges_fold) && defined │ │ │ │ │ +(__glibcxx_want_ranges_fold) */ │ │ │ │ │ +1786#undef __glibcxx_want_ranges_fold │ │ │ │ │ +1787 │ │ │ │ │ +1788#if !defined(__cpp_lib_ranges_contains) │ │ │ │ │ +1789# if (__cplusplus >= 202100L) │ │ │ │ │ +1790# define __glibcxx_ranges_contains 202207L │ │ │ │ │ +1791# if defined(__glibcxx_want_all) || defined(__glibcxx_want_ranges_contains) │ │ │ │ │ +1792# define __cpp_lib_ranges_contains 202207L │ │ │ │ │ +1793# endif │ │ │ │ │ +1794# endif │ │ │ │ │ +1795#endif /* !defined(__cpp_lib_ranges_contains) && defined │ │ │ │ │ +(__glibcxx_want_ranges_contains) */ │ │ │ │ │ +1796#undef __glibcxx_want_ranges_contains │ │ │ │ │ +1797 │ │ │ │ │ +1798#if !defined(__cpp_lib_ranges_iota) │ │ │ │ │ +1799# if (__cplusplus >= 202100L) │ │ │ │ │ +1800# define __glibcxx_ranges_iota 202202L │ │ │ │ │ +1801# if defined(__glibcxx_want_all) || defined(__glibcxx_want_ranges_iota) │ │ │ │ │ +1802# define __cpp_lib_ranges_iota 202202L │ │ │ │ │ +1803# endif │ │ │ │ │ +1804# endif │ │ │ │ │ +1805#endif /* !defined(__cpp_lib_ranges_iota) && defined │ │ │ │ │ +(__glibcxx_want_ranges_iota) */ │ │ │ │ │ +1806#undef __glibcxx_want_ranges_iota │ │ │ │ │ +1807 │ │ │ │ │ +1808#if !defined(__cpp_lib_ranges_find_last) │ │ │ │ │ +1809# if (__cplusplus >= 202100L) │ │ │ │ │ +1810# define __glibcxx_ranges_find_last 202207L │ │ │ │ │ +1811# if defined(__glibcxx_want_all) || defined │ │ │ │ │ +(__glibcxx_want_ranges_find_last) │ │ │ │ │ +1812# define __cpp_lib_ranges_find_last 202207L │ │ │ │ │ +1813# endif │ │ │ │ │ +1814# endif │ │ │ │ │ +1815#endif /* !defined(__cpp_lib_ranges_find_last) && defined │ │ │ │ │ +(__glibcxx_want_ranges_find_last) */ │ │ │ │ │ +1816#undef __glibcxx_want_ranges_find_last │ │ │ │ │ +1817 │ │ │ │ │ +1818#if !defined(__cpp_lib_constexpr_bitset) │ │ │ │ │ +1819# if (__cplusplus >= 202100L) && _GLIBCXX_HOSTED && │ │ │ │ │ +(__cpp_constexpr_dynamic_alloc) │ │ │ │ │ +1820# define __glibcxx_constexpr_bitset 202202L │ │ │ │ │ +1821# if defined(__glibcxx_want_all) || defined │ │ │ │ │ +(__glibcxx_want_constexpr_bitset) │ │ │ │ │ +1822# define __cpp_lib_constexpr_bitset 202202L │ │ │ │ │ +1823# endif │ │ │ │ │ +1824# endif │ │ │ │ │ +1825#endif /* !defined(__cpp_lib_constexpr_bitset) && defined │ │ │ │ │ +(__glibcxx_want_constexpr_bitset) */ │ │ │ │ │ +1826#undef __glibcxx_want_constexpr_bitset │ │ │ │ │ +1827 │ │ │ │ │ +1828#if !defined(__cpp_lib_stdatomic_h) │ │ │ │ │ +1829# if (__cplusplus >= 202100L) │ │ │ │ │ +1830# define __glibcxx_stdatomic_h 202011L │ │ │ │ │ +1831# if defined(__glibcxx_want_all) || defined(__glibcxx_want_stdatomic_h) │ │ │ │ │ +1832# define __cpp_lib_stdatomic_h 202011L │ │ │ │ │ +1833# endif │ │ │ │ │ +1834# endif │ │ │ │ │ +1835#endif /* !defined(__cpp_lib_stdatomic_h) && defined │ │ │ │ │ +(__glibcxx_want_stdatomic_h) */ │ │ │ │ │ +1836#undef __glibcxx_want_stdatomic_h │ │ │ │ │ +1837 │ │ │ │ │ +1838#if !defined(__cpp_lib_adaptor_iterator_pair_constructor) │ │ │ │ │ +1839# if (__cplusplus >= 202100L) && _GLIBCXX_HOSTED │ │ │ │ │ +1840# define __glibcxx_adaptor_iterator_pair_constructor 202106L │ │ │ │ │ +1841# if defined(__glibcxx_want_all) || defined │ │ │ │ │ +(__glibcxx_want_adaptor_iterator_pair_constructor) │ │ │ │ │ +1842# define __cpp_lib_adaptor_iterator_pair_constructor 202106L │ │ │ │ │ +1843# endif │ │ │ │ │ +1844# endif │ │ │ │ │ +1845#endif /* !defined(__cpp_lib_adaptor_iterator_pair_constructor) && defined │ │ │ │ │ +(__glibcxx_want_adaptor_iterator_pair_constructor) */ │ │ │ │ │ +1846#undef __glibcxx_want_adaptor_iterator_pair_constructor │ │ │ │ │ +1847 │ │ │ │ │ +1848#if !defined(__cpp_lib_flat_map) │ │ │ │ │ +1849# if (__cplusplus >= 202100L) │ │ │ │ │ +1850# define __glibcxx_flat_map 202207L │ │ │ │ │ +1851# if defined(__glibcxx_want_all) || defined(__glibcxx_want_flat_map) │ │ │ │ │ +1852# define __cpp_lib_flat_map 202207L │ │ │ │ │ +1853# endif │ │ │ │ │ +1854# endif │ │ │ │ │ +1855#endif /* !defined(__cpp_lib_flat_map) && defined(__glibcxx_want_flat_map) │ │ │ │ │ +*/ │ │ │ │ │ +1856#undef __glibcxx_want_flat_map │ │ │ │ │ +1857 │ │ │ │ │ +1858#if !defined(__cpp_lib_flat_set) │ │ │ │ │ +1859# if (__cplusplus >= 202100L) │ │ │ │ │ +1860# define __glibcxx_flat_set 202207L │ │ │ │ │ +1861# if defined(__glibcxx_want_all) || defined(__glibcxx_want_flat_set) │ │ │ │ │ +1862# define __cpp_lib_flat_set 202207L │ │ │ │ │ +1863# endif │ │ │ │ │ +1864# endif │ │ │ │ │ +1865#endif /* !defined(__cpp_lib_flat_set) && defined(__glibcxx_want_flat_set) │ │ │ │ │ +*/ │ │ │ │ │ +1866#undef __glibcxx_want_flat_set │ │ │ │ │ +1867 │ │ │ │ │ +1868#if !defined(__cpp_lib_formatters) │ │ │ │ │ +1869# if (__cplusplus >= 202100L) && _GLIBCXX_HOSTED │ │ │ │ │ +1870# define __glibcxx_formatters 202302L │ │ │ │ │ +1871# if defined(__glibcxx_want_all) || defined(__glibcxx_want_formatters) │ │ │ │ │ +1872# define __cpp_lib_formatters 202302L │ │ │ │ │ +1873# endif │ │ │ │ │ +1874# endif │ │ │ │ │ +1875#endif /* !defined(__cpp_lib_formatters) && defined │ │ │ │ │ +(__glibcxx_want_formatters) */ │ │ │ │ │ +1876#undef __glibcxx_want_formatters │ │ │ │ │ +1877 │ │ │ │ │ +1878#if !defined(__cpp_lib_forward_like) │ │ │ │ │ +1879# if (__cplusplus >= 202100L) │ │ │ │ │ +1880# define __glibcxx_forward_like 202207L │ │ │ │ │ +1881# if defined(__glibcxx_want_all) || defined(__glibcxx_want_forward_like) │ │ │ │ │ +1882# define __cpp_lib_forward_like 202207L │ │ │ │ │ +1883# endif │ │ │ │ │ +1884# endif │ │ │ │ │ +1885#endif /* !defined(__cpp_lib_forward_like) && defined │ │ │ │ │ +(__glibcxx_want_forward_like) */ │ │ │ │ │ +1886#undef __glibcxx_want_forward_like │ │ │ │ │ +1887 │ │ │ │ │ +1888#if !defined(__cpp_lib_generator) │ │ │ │ │ +1889# if (__cplusplus >= 202100L) && (__glibcxx_coroutine && │ │ │ │ │ +__cpp_sized_deallocation) │ │ │ │ │ +1890# define __glibcxx_generator 202207L │ │ │ │ │ +1891# if defined(__glibcxx_want_all) || defined(__glibcxx_want_generator) │ │ │ │ │ +1892# define __cpp_lib_generator 202207L │ │ │ │ │ +1893# endif │ │ │ │ │ +1894# endif │ │ │ │ │ +1895#endif /* !defined(__cpp_lib_generator) && defined │ │ │ │ │ +(__glibcxx_want_generator) */ │ │ │ │ │ +1896#undef __glibcxx_want_generator │ │ │ │ │ +1897 │ │ │ │ │ +1898#if !defined(__cpp_lib_ios_noreplace) │ │ │ │ │ +1899# if (__cplusplus >= 202100L) && _GLIBCXX_HOSTED │ │ │ │ │ +1900# define __glibcxx_ios_noreplace 202207L │ │ │ │ │ +1901# if defined(__glibcxx_want_all) || defined(__glibcxx_want_ios_noreplace) │ │ │ │ │ +1902# define __cpp_lib_ios_noreplace 202207L │ │ │ │ │ +1903# endif │ │ │ │ │ +1904# endif │ │ │ │ │ +1905#endif /* !defined(__cpp_lib_ios_noreplace) && defined │ │ │ │ │ +(__glibcxx_want_ios_noreplace) */ │ │ │ │ │ +1906#undef __glibcxx_want_ios_noreplace │ │ │ │ │ +1907 │ │ │ │ │ +1908#if !defined(__cpp_lib_move_only_function) │ │ │ │ │ +1909# if (__cplusplus >= 202100L) && _GLIBCXX_HOSTED │ │ │ │ │ +1910# define __glibcxx_move_only_function 202110L │ │ │ │ │ +1911# if defined(__glibcxx_want_all) || defined │ │ │ │ │ +(__glibcxx_want_move_only_function) │ │ │ │ │ +1912# define __cpp_lib_move_only_function 202110L │ │ │ │ │ +1913# endif │ │ │ │ │ +1914# endif │ │ │ │ │ +1915#endif /* !defined(__cpp_lib_move_only_function) && defined │ │ │ │ │ +(__glibcxx_want_move_only_function) */ │ │ │ │ │ +1916#undef __glibcxx_want_move_only_function │ │ │ │ │ +1917 │ │ │ │ │ +1918#if !defined(__cpp_lib_out_ptr) │ │ │ │ │ +1919# if (__cplusplus >= 202100L) │ │ │ │ │ +1920# define __glibcxx_out_ptr 202311L │ │ │ │ │ +1921# if defined(__glibcxx_want_all) || defined(__glibcxx_want_out_ptr) │ │ │ │ │ +1922# define __cpp_lib_out_ptr 202311L │ │ │ │ │ +1923# endif │ │ │ │ │ +1924# endif │ │ │ │ │ +1925#endif /* !defined(__cpp_lib_out_ptr) && defined(__glibcxx_want_out_ptr) */ │ │ │ │ │ +1926#undef __glibcxx_want_out_ptr │ │ │ │ │ +1927 │ │ │ │ │ +1928#if !defined(__cpp_lib_print) │ │ │ │ │ +1929# if (__cplusplus >= 202100L) && _GLIBCXX_HOSTED │ │ │ │ │ +1930# define __glibcxx_print 202211L │ │ │ │ │ +1931# if defined(__glibcxx_want_all) || defined(__glibcxx_want_print) │ │ │ │ │ +1932# define __cpp_lib_print 202211L │ │ │ │ │ +1933# endif │ │ │ │ │ +1934# endif │ │ │ │ │ +1935#endif /* !defined(__cpp_lib_print) && defined(__glibcxx_want_print) */ │ │ │ │ │ +1936#undef __glibcxx_want_print │ │ │ │ │ +1937 │ │ │ │ │ +1938#if !defined(__cpp_lib_spanstream) │ │ │ │ │ +1939# if (__cplusplus >= 202100L) && _GLIBCXX_HOSTED && (__glibcxx_span) │ │ │ │ │ +1940# define __glibcxx_spanstream 202106L │ │ │ │ │ +1941# if defined(__glibcxx_want_all) || defined(__glibcxx_want_spanstream) │ │ │ │ │ +1942# define __cpp_lib_spanstream 202106L │ │ │ │ │ +1943# endif │ │ │ │ │ +1944# endif │ │ │ │ │ +1945#endif /* !defined(__cpp_lib_spanstream) && defined │ │ │ │ │ +(__glibcxx_want_spanstream) */ │ │ │ │ │ +1946#undef __glibcxx_want_spanstream │ │ │ │ │ +1947 │ │ │ │ │ +1948#if !defined(__cpp_lib_stacktrace) │ │ │ │ │ +1949# if (__cplusplus >= 202100L) && _GLIBCXX_HOSTED && │ │ │ │ │ +(_GLIBCXX_HAVE_STACKTRACE) │ │ │ │ │ +1950# define __glibcxx_stacktrace 202011L │ │ │ │ │ +1951# if defined(__glibcxx_want_all) || defined(__glibcxx_want_stacktrace) │ │ │ │ │ +1952# define __cpp_lib_stacktrace 202011L │ │ │ │ │ +1953# endif │ │ │ │ │ +1954# endif │ │ │ │ │ +1955#endif /* !defined(__cpp_lib_stacktrace) && defined │ │ │ │ │ +(__glibcxx_want_stacktrace) */ │ │ │ │ │ +1956#undef __glibcxx_want_stacktrace │ │ │ │ │ +1957 │ │ │ │ │ +1958#if !defined(__cpp_lib_string_contains) │ │ │ │ │ +1959# if (__cplusplus >= 202100L) && _GLIBCXX_HOSTED │ │ │ │ │ +1960# define __glibcxx_string_contains 202011L │ │ │ │ │ +1961# if defined(__glibcxx_want_all) || defined(__glibcxx_want_string_contains) │ │ │ │ │ +1962# define __cpp_lib_string_contains 202011L │ │ │ │ │ +1963# endif │ │ │ │ │ +1964# endif │ │ │ │ │ +1965#endif /* !defined(__cpp_lib_string_contains) && defined │ │ │ │ │ +(__glibcxx_want_string_contains) */ │ │ │ │ │ +1966#undef __glibcxx_want_string_contains │ │ │ │ │ +1967 │ │ │ │ │ +1968#if !defined(__cpp_lib_string_resize_and_overwrite) │ │ │ │ │ +1969# if (__cplusplus >= 202100L) && _GLIBCXX_HOSTED │ │ │ │ │ +1970# define __glibcxx_string_resize_and_overwrite 202110L │ │ │ │ │ +1971# if defined(__glibcxx_want_all) || defined │ │ │ │ │ +(__glibcxx_want_string_resize_and_overwrite) │ │ │ │ │ +1972# define __cpp_lib_string_resize_and_overwrite 202110L │ │ │ │ │ +1973# endif │ │ │ │ │ +1974# endif │ │ │ │ │ +1975#endif /* !defined(__cpp_lib_string_resize_and_overwrite) && defined │ │ │ │ │ +(__glibcxx_want_string_resize_and_overwrite) */ │ │ │ │ │ +1976#undef __glibcxx_want_string_resize_and_overwrite │ │ │ │ │ +1977 │ │ │ │ │ +1978#if !defined(__cpp_lib_to_underlying) │ │ │ │ │ +1979# if (__cplusplus >= 202100L) │ │ │ │ │ +1980# define __glibcxx_to_underlying 202102L │ │ │ │ │ +1981# if defined(__glibcxx_want_all) || defined(__glibcxx_want_to_underlying) │ │ │ │ │ +1982# define __cpp_lib_to_underlying 202102L │ │ │ │ │ +1983# endif │ │ │ │ │ +1984# endif │ │ │ │ │ +1985#endif /* !defined(__cpp_lib_to_underlying) && defined │ │ │ │ │ +(__glibcxx_want_to_underlying) */ │ │ │ │ │ +1986#undef __glibcxx_want_to_underlying │ │ │ │ │ +1987 │ │ │ │ │ +1988#if !defined(__cpp_lib_tuple_like) │ │ │ │ │ +1989# if (__cplusplus > 202302L) && (__cpp_explicit_this_parameter >= 202110L) │ │ │ │ │ +1990# define __glibcxx_tuple_like 202311L │ │ │ │ │ +1991# if defined(__glibcxx_want_all) || defined(__glibcxx_want_tuple_like) │ │ │ │ │ +1992# define __cpp_lib_tuple_like 202311L │ │ │ │ │ +1993# endif │ │ │ │ │ +1994# elif (__cplusplus >= 202100L) │ │ │ │ │ +1995# define __glibcxx_tuple_like 202207L │ │ │ │ │ +1996# if defined(__glibcxx_want_all) || defined(__glibcxx_want_tuple_like) │ │ │ │ │ +1997# define __cpp_lib_tuple_like 202207L │ │ │ │ │ +1998# endif │ │ │ │ │ +1999# endif │ │ │ │ │ +2000#endif /* !defined(__cpp_lib_tuple_like) && defined │ │ │ │ │ +(__glibcxx_want_tuple_like) */ │ │ │ │ │ +2001#undef __glibcxx_want_tuple_like │ │ │ │ │ +2002 │ │ │ │ │ +2003#if !defined(__cpp_lib_unreachable) │ │ │ │ │ +2004# if (__cplusplus >= 202100L) │ │ │ │ │ +2005# define __glibcxx_unreachable 202202L │ │ │ │ │ +2006# if defined(__glibcxx_want_all) || defined(__glibcxx_want_unreachable) │ │ │ │ │ +2007# define __cpp_lib_unreachable 202202L │ │ │ │ │ +2008# endif │ │ │ │ │ +2009# endif │ │ │ │ │ +2010#endif /* !defined(__cpp_lib_unreachable) && defined │ │ │ │ │ +(__glibcxx_want_unreachable) */ │ │ │ │ │ +2011#undef __glibcxx_want_unreachable │ │ │ │ │ +2012 │ │ │ │ │ +2013#if !defined(__cpp_lib_algorithm_default_value_type) │ │ │ │ │ +2014# if (__cplusplus > 202302L) │ │ │ │ │ +2015# define __glibcxx_algorithm_default_value_type 202403L │ │ │ │ │ +2016# if defined(__glibcxx_want_all) || defined │ │ │ │ │ +(__glibcxx_want_algorithm_default_value_type) │ │ │ │ │ +2017# define __cpp_lib_algorithm_default_value_type 202403L │ │ │ │ │ +2018# endif │ │ │ │ │ +2019# endif │ │ │ │ │ +2020#endif /* !defined(__cpp_lib_algorithm_default_value_type) && defined │ │ │ │ │ +(__glibcxx_want_algorithm_default_value_type) */ │ │ │ │ │ +2021#undef __glibcxx_want_algorithm_default_value_type │ │ │ │ │ +2022 │ │ │ │ │ +2023#if !defined(__cpp_lib_constexpr_new) │ │ │ │ │ +2024# if (__cplusplus > 202302L) && (__cpp_constexpr >= 202406L) │ │ │ │ │ +2025# define __glibcxx_constexpr_new 202406L │ │ │ │ │ +2026# if defined(__glibcxx_want_all) || defined(__glibcxx_want_constexpr_new) │ │ │ │ │ +2027# define __cpp_lib_constexpr_new 202406L │ │ │ │ │ +2028# endif │ │ │ │ │ +2029# endif │ │ │ │ │ +2030#endif /* !defined(__cpp_lib_constexpr_new) && defined │ │ │ │ │ +(__glibcxx_want_constexpr_new) */ │ │ │ │ │ +2031#undef __glibcxx_want_constexpr_new │ │ │ │ │ +2032 │ │ │ │ │ +2033#if !defined(__cpp_lib_fstream_native_handle) │ │ │ │ │ +2034# if (__cplusplus > 202302L) && _GLIBCXX_HOSTED │ │ │ │ │ +2035# define __glibcxx_fstream_native_handle 202306L │ │ │ │ │ +2036# if defined(__glibcxx_want_all) || defined │ │ │ │ │ +(__glibcxx_want_fstream_native_handle) │ │ │ │ │ +2037# define __cpp_lib_fstream_native_handle 202306L │ │ │ │ │ +2038# endif │ │ │ │ │ +2039# endif │ │ │ │ │ +2040#endif /* !defined(__cpp_lib_fstream_native_handle) && defined │ │ │ │ │ +(__glibcxx_want_fstream_native_handle) */ │ │ │ │ │ +2041#undef __glibcxx_want_fstream_native_handle │ │ │ │ │ +2042 │ │ │ │ │ +2043#if !defined(__cpp_lib_is_virtual_base_of) │ │ │ │ │ +2044# if (__cplusplus > 202302L) && (__has_builtin │ │ │ │ │ +(__builtin_is_virtual_base_of)) │ │ │ │ │ +2045# define __glibcxx_is_virtual_base_of 202406L │ │ │ │ │ +2046# if defined(__glibcxx_want_all) || defined │ │ │ │ │ +(__glibcxx_want_is_virtual_base_of) │ │ │ │ │ +2047# define __cpp_lib_is_virtual_base_of 202406L │ │ │ │ │ +2048# endif │ │ │ │ │ +2049# endif │ │ │ │ │ +2050#endif /* !defined(__cpp_lib_is_virtual_base_of) && defined │ │ │ │ │ +(__glibcxx_want_is_virtual_base_of) */ │ │ │ │ │ +2051#undef __glibcxx_want_is_virtual_base_of │ │ │ │ │ +2052 │ │ │ │ │ +2053#if !defined(__cpp_lib_ranges_cache_latest) │ │ │ │ │ +2054# if (__cplusplus > 202302L) │ │ │ │ │ +2055# define __glibcxx_ranges_cache_latest 202411L │ │ │ │ │ +2056# if defined(__glibcxx_want_all) || defined │ │ │ │ │ +(__glibcxx_want_ranges_cache_latest) │ │ │ │ │ +2057# define __cpp_lib_ranges_cache_latest 202411L │ │ │ │ │ +2058# endif │ │ │ │ │ +2059# endif │ │ │ │ │ +2060#endif /* !defined(__cpp_lib_ranges_cache_latest) && defined │ │ │ │ │ +(__glibcxx_want_ranges_cache_latest) */ │ │ │ │ │ +2061#undef __glibcxx_want_ranges_cache_latest │ │ │ │ │ +2062 │ │ │ │ │ +2063#if !defined(__cpp_lib_ranges_concat) │ │ │ │ │ +2064# if (__cplusplus > 202302L) && (__cpp_pack_indexing) │ │ │ │ │ +2065# define __glibcxx_ranges_concat 202403L │ │ │ │ │ +2066# if defined(__glibcxx_want_all) || defined(__glibcxx_want_ranges_concat) │ │ │ │ │ +2067# define __cpp_lib_ranges_concat 202403L │ │ │ │ │ +2068# endif │ │ │ │ │ +2069# endif │ │ │ │ │ +2070#endif /* !defined(__cpp_lib_ranges_concat) && defined │ │ │ │ │ +(__glibcxx_want_ranges_concat) */ │ │ │ │ │ +2071#undef __glibcxx_want_ranges_concat │ │ │ │ │ +2072 │ │ │ │ │ +2073#if !defined(__cpp_lib_ratio) │ │ │ │ │ +2074# if (__cplusplus > 202302L) │ │ │ │ │ +2075# define __glibcxx_ratio 202306L │ │ │ │ │ +2076# if defined(__glibcxx_want_all) || defined(__glibcxx_want_ratio) │ │ │ │ │ +2077# define __cpp_lib_ratio 202306L │ │ │ │ │ +2078# endif │ │ │ │ │ +2079# endif │ │ │ │ │ +2080#endif /* !defined(__cpp_lib_ratio) && defined(__glibcxx_want_ratio) */ │ │ │ │ │ +2081#undef __glibcxx_want_ratio │ │ │ │ │ +2082 │ │ │ │ │ +2083#if !defined(__cpp_lib_reference_wrapper) │ │ │ │ │ +2084# if (__cplusplus > 202302L) │ │ │ │ │ +2085# define __glibcxx_reference_wrapper 202403L │ │ │ │ │ +2086# if defined(__glibcxx_want_all) || defined │ │ │ │ │ +(__glibcxx_want_reference_wrapper) │ │ │ │ │ +2087# define __cpp_lib_reference_wrapper 202403L │ │ │ │ │ +2088# endif │ │ │ │ │ +2089# endif │ │ │ │ │ +2090#endif /* !defined(__cpp_lib_reference_wrapper) && defined │ │ │ │ │ +(__glibcxx_want_reference_wrapper) */ │ │ │ │ │ +2091#undef __glibcxx_want_reference_wrapper │ │ │ │ │ +2092 │ │ │ │ │ +2093#if !defined(__cpp_lib_saturation_arithmetic) │ │ │ │ │ +2094# if (__cplusplus > 202302L) │ │ │ │ │ +2095# define __glibcxx_saturation_arithmetic 202311L │ │ │ │ │ +2096# if defined(__glibcxx_want_all) || defined │ │ │ │ │ +(__glibcxx_want_saturation_arithmetic) │ │ │ │ │ +2097# define __cpp_lib_saturation_arithmetic 202311L │ │ │ │ │ +2098# endif │ │ │ │ │ +2099# endif │ │ │ │ │ +2100#endif /* !defined(__cpp_lib_saturation_arithmetic) && defined │ │ │ │ │ +(__glibcxx_want_saturation_arithmetic) */ │ │ │ │ │ +2101#undef __glibcxx_want_saturation_arithmetic │ │ │ │ │ +2102 │ │ │ │ │ +2103#if !defined(__cpp_lib_span_initializer_list) │ │ │ │ │ +2104# if (__cplusplus > 202302L) │ │ │ │ │ +2105# define __glibcxx_span_initializer_list 202311L │ │ │ │ │ +2106# if defined(__glibcxx_want_all) || defined │ │ │ │ │ +(__glibcxx_want_span_initializer_list) │ │ │ │ │ +2107# define __cpp_lib_span_initializer_list 202311L │ │ │ │ │ +2108# endif │ │ │ │ │ +2109# endif │ │ │ │ │ +2110#endif /* !defined(__cpp_lib_span_initializer_list) && defined │ │ │ │ │ +(__glibcxx_want_span_initializer_list) */ │ │ │ │ │ +2111#undef __glibcxx_want_span_initializer_list │ │ │ │ │ +2112 │ │ │ │ │ +2113#if !defined(__cpp_lib_text_encoding) │ │ │ │ │ +2114# if (__cplusplus > 202302L) && _GLIBCXX_HOSTED && │ │ │ │ │ +(_GLIBCXX_USE_NL_LANGINFO_L) │ │ │ │ │ +2115# define __glibcxx_text_encoding 202306L │ │ │ │ │ +2116# if defined(__glibcxx_want_all) || defined(__glibcxx_want_text_encoding) │ │ │ │ │ +2117# define __cpp_lib_text_encoding 202306L │ │ │ │ │ +2118# endif │ │ │ │ │ +2119# endif │ │ │ │ │ +2120#endif /* !defined(__cpp_lib_text_encoding) && defined │ │ │ │ │ +(__glibcxx_want_text_encoding) */ │ │ │ │ │ +2121#undef __glibcxx_want_text_encoding │ │ │ │ │ +2122 │ │ │ │ │ +2123#if !defined(__cpp_lib_ranges_to_input) │ │ │ │ │ +2124# if (__cplusplus > 202302L) │ │ │ │ │ +2125# define __glibcxx_ranges_to_input 202502L │ │ │ │ │ +2126# if defined(__glibcxx_want_all) || defined(__glibcxx_want_ranges_to_input) │ │ │ │ │ +2127# define __cpp_lib_ranges_to_input 202502L │ │ │ │ │ +2128# endif │ │ │ │ │ +2129# endif │ │ │ │ │ +2130#endif /* !defined(__cpp_lib_ranges_to_input) && defined │ │ │ │ │ +(__glibcxx_want_ranges_to_input) */ │ │ │ │ │ +2131#undef __glibcxx_want_ranges_to_input │ │ │ │ │ +2132 │ │ │ │ │ +2133#if !defined(__cpp_lib_to_string) │ │ │ │ │ +2134# if (__cplusplus > 202302L) && _GLIBCXX_HOSTED && (__glibcxx_to_chars) │ │ │ │ │ +2135# define __glibcxx_to_string 202306L │ │ │ │ │ +2136# if defined(__glibcxx_want_all) || defined(__glibcxx_want_to_string) │ │ │ │ │ +2137# define __cpp_lib_to_string 202306L │ │ │ │ │ +2138# endif │ │ │ │ │ +2139# endif │ │ │ │ │ +2140#endif /* !defined(__cpp_lib_to_string) && defined │ │ │ │ │ +(__glibcxx_want_to_string) */ │ │ │ │ │ +2141#undef __glibcxx_want_to_string │ │ │ │ │ +2142 │ │ │ │ │ +2143#if !defined(__cpp_lib_modules) │ │ │ │ │ +2144# if (__cplusplus >= 202002L) && (__cpp_modules) │ │ │ │ │ +2145# define __glibcxx_modules 202207L │ │ │ │ │ +2146# if defined(__glibcxx_want_all) || defined(__glibcxx_want_modules) │ │ │ │ │ +2147# define __cpp_lib_modules 202207L │ │ │ │ │ +2148# endif │ │ │ │ │ +2149# endif │ │ │ │ │ +2150#endif /* !defined(__cpp_lib_modules) && defined(__glibcxx_want_modules) */ │ │ │ │ │ +2151#undef __glibcxx_want_modules │ │ │ │ │ +2152 │ │ │ │ │ +2153#undef __glibcxx_want_all │ │ │ │ │ +_c_+_+_c_o_n_f_i_g_._h │ │ │ │ │ * _b_i_t_s │ │ │ │ │ - * _s_s_t_r_e_a_m_._t_c_c │ │ │ │ │ + * _v_e_r_s_i_o_n_._h │ │ │ │ │ * Generated by _[_d_o_x_y_g_e_n_]1.9.8 │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a00389.html │ │ │ │ @@ -1,15 +1,15 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ -libstdc++: exception_defines.h File Reference │ │ │ │ +libstdc++: memoryfwd.h File Reference │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ @@ -46,91 +46,34 @@ │ │ │ │ /* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */ │ │ │ │ $(document).ready(function(){initNavTree('a00389.html',''); initResizable(); }); │ │ │ │ /* @license-end */ │ │ │ │ │ │ │ │
│ │ │ │
│ │ │ │
│ │ │ │ -Macros
│ │ │ │ -
exception_defines.h File Reference
│ │ │ │ +Namespaces
│ │ │ │ +
memoryfwd.h File Reference
│ │ │ │
│ │ │ │
│ │ │ │ │ │ │ │

Go to the source code of this file.

│ │ │ │ │ │ │ │ - │ │ │ │ - │ │ │ │ - │ │ │ │ - │ │ │ │ - │ │ │ │ - │ │ │ │ - │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │

│ │ │ │ -Macros

#define __catch(X)
 
#define __throw_exception_again
 
#define __try
 

│ │ │ │ +Namespaces

namespace  std
 
│ │ │ │

Detailed Description

│ │ │ │ -

This is an internal header file, included by other library headers. Do not attempt to use it directly. Instead, include <exception>.

│ │ │ │ +

This is an internal header file, included by other library headers. Do not attempt to use it directly. Instead, include <memory>.

│ │ │ │ │ │ │ │ -

Definition in file exception_defines.h.

│ │ │ │ -

Macro Definition Documentation

│ │ │ │ - │ │ │ │ -

◆ __catch

│ │ │ │ - │ │ │ │ -
│ │ │ │ -
│ │ │ │ - │ │ │ │ - │ │ │ │ - │ │ │ │ - │ │ │ │ - │ │ │ │ - │ │ │ │ - │ │ │ │ - │ │ │ │ -
#define __catch( X)
│ │ │ │ -
│ │ │ │ - │ │ │ │ -

Definition at line 41 of file exception_defines.h.

│ │ │ │ - │ │ │ │ -
│ │ │ │ -
│ │ │ │ - │ │ │ │ -

◆ __throw_exception_again

│ │ │ │ - │ │ │ │ -
│ │ │ │ -
│ │ │ │ - │ │ │ │ - │ │ │ │ - │ │ │ │ - │ │ │ │ -
#define __throw_exception_again
│ │ │ │ -
│ │ │ │ - │ │ │ │ -

Definition at line 42 of file exception_defines.h.

│ │ │ │ - │ │ │ │ -
│ │ │ │ -
│ │ │ │ - │ │ │ │ -

◆ __try

│ │ │ │ - │ │ │ │ -
│ │ │ │ -
│ │ │ │ - │ │ │ │ - │ │ │ │ - │ │ │ │ - │ │ │ │ -
#define __try
│ │ │ │ -
│ │ │ │ - │ │ │ │ -

Definition at line 40 of file exception_defines.h.

│ │ │ │ - │ │ │ │ -
│ │ │ │ -
│ │ │ │ -
│ │ │ │ +

Definition in file memoryfwd.h.

│ │ │ │ +
│ │ │ │
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├── html2text {} │ │ │ │ │ @@ -1,28 +1,14 @@ │ │ │ │ │ libstdc++ │ │ │ │ │ -_M_a_c_r_o_s │ │ │ │ │ -exception_defines.h File Reference │ │ │ │ │ +_N_a_m_e_s_p_a_c_e_s │ │ │ │ │ +memoryfwd.h File Reference │ │ │ │ │ _G_o_ _t_o_ _t_h_e_ _s_o_u_r_c_e_ _c_o_d_e_ _o_f_ _t_h_i_s_ _f_i_l_e_. │ │ │ │ │ -MMaaccrrooss │ │ │ │ │ -#define  _____c_a_t_c_h(X) │ │ │ │ │ -  │ │ │ │ │ -#define  _____t_h_r_o_w___e_x_c_e_p_t_i_o_n___a_g_a_i_n │ │ │ │ │ -  │ │ │ │ │ -#define  _____t_r_y │ │ │ │ │ +NNaammeessppaacceess │ │ │ │ │ +namespace   _s_t_d │ │ │ │ │   │ │ │ │ │ ********** DDeettaaiilleedd DDeessccrriippttiioonn ********** │ │ │ │ │ This is an internal header file, included by other library headers. Do not │ │ │ │ │ -attempt to use it directly. Instead, include . │ │ │ │ │ -Definition in file _e_x_c_e_p_t_i_o_n___d_e_f_i_n_e_s_._h. │ │ │ │ │ -********** MMaaccrroo DDeeffiinniittiioonn DDooccuummeennttaattiioonn ********** │ │ │ │ │ -********** _?◆_? ____ccaattcchh ********** │ │ │ │ │ -#define __catch (   X ) │ │ │ │ │ -Definition at line _4_1 of file _e_x_c_e_p_t_i_o_n___d_e_f_i_n_e_s_._h. │ │ │ │ │ -********** _?◆_? ____tthhrrooww__eexxcceeppttiioonn__aaggaaiinn ********** │ │ │ │ │ -#define __throw_exception_again │ │ │ │ │ -Definition at line _4_2 of file _e_x_c_e_p_t_i_o_n___d_e_f_i_n_e_s_._h. │ │ │ │ │ -********** _?◆_? ____ttrryy ********** │ │ │ │ │ -#define __try │ │ │ │ │ -Definition at line _4_0 of file _e_x_c_e_p_t_i_o_n___d_e_f_i_n_e_s_._h. │ │ │ │ │ +attempt to use it directly. Instead, include . │ │ │ │ │ +Definition in file _m_e_m_o_r_y_f_w_d_._h. │ │ │ │ │ * _b_i_t_s │ │ │ │ │ - * _e_x_c_e_p_t_i_o_n___d_e_f_i_n_e_s_._h │ │ │ │ │ + * _m_e_m_o_r_y_f_w_d_._h │ │ │ │ │ * Generated by _[_d_o_x_y_g_e_n_]1.9.8 │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a00389_source.html │ │ │ │ @@ -1,15 +1,15 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ -libstdc++: exception_defines.h Source File │ │ │ │ +libstdc++: memoryfwd.h Source File │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ @@ -45,18 +45,18 @@ │ │ │ │ │ │ │ │
│ │ │ │
│ │ │ │ -
exception_defines.h
│ │ │ │ +
memoryfwd.h
│ │ │ │
│ │ │ │
│ │ │ │ -Go to the documentation of this file.
1// -fno-exceptions Support -*- C++ -*-
│ │ │ │ +Go to the documentation of this file.
1// <memory> Forward declarations -*- C++ -*-
│ │ │ │
2
│ │ │ │
3// Copyright (C) 2001-2025 Free Software Foundation, Inc.
│ │ │ │
4//
│ │ │ │
5// This file is part of the GNU ISO C++ Library. This library is free
│ │ │ │
6// software; you can redistribute it and/or modify it under the
│ │ │ │
7// terms of the GNU General Public License as published by the
│ │ │ │
8// Free Software Foundation; either version 3, or (at your option)
│ │ │ │ @@ -71,40 +71,85 @@ │ │ │ │
17// permissions described in the GCC Runtime Library Exception, version
│ │ │ │
18// 3.1, as published by the Free Software Foundation.
│ │ │ │
19
│ │ │ │
20// You should have received a copy of the GNU General Public License and
│ │ │ │
21// a copy of the GCC Runtime Library Exception along with this program;
│ │ │ │
22// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
│ │ │ │
23// <http://www.gnu.org/licenses/>.
│ │ │ │ -
24
│ │ │ │ -
25/** @file bits/exception_defines.h
│ │ │ │ -
26 * This is an internal header file, included by other library headers.
│ │ │ │ -
27 * Do not attempt to use it directly. @headername{exception}
│ │ │ │ -
28 */
│ │ │ │ -
29
│ │ │ │ -
30#ifndef _EXCEPTION_DEFINES_H
│ │ │ │ -
31#define _EXCEPTION_DEFINES_H 1
│ │ │ │ -
32
│ │ │ │ -
33#if ! __cpp_exceptions
│ │ │ │ -
34// Iff -fno-exceptions, transform error handling code to work without it.
│ │ │ │ -
35# define __try if (true)
│ │ │ │ -
36# define __catch(X) if (false)
│ │ │ │ -
37# define __throw_exception_again
│ │ │ │ -
38#else
│ │ │ │ -
39// Else proceed normally.
│ │ │ │ -
40# define __try try
│ │ │ │ -
41# define __catch(X) catch(X)
│ │ │ │ -
42# define __throw_exception_again throw
│ │ │ │ -
43#endif
│ │ │ │ -
44
│ │ │ │ -
45#endif
│ │ │ │ +
24
│ │ │ │ +
25/*
│ │ │ │ +
26 * Copyright (c) 1996-1997
│ │ │ │ +
27 * Silicon Graphics Computer Systems, Inc.
│ │ │ │ +
28 *
│ │ │ │ +
29 * Permission to use, copy, modify, distribute and sell this software
│ │ │ │ +
30 * and its documentation for any purpose is hereby granted without fee,
│ │ │ │ +
31 * provided that the above copyright notice appear in all copies and
│ │ │ │ +
32 * that both that copyright notice and this permission notice appear
│ │ │ │ +
33 * in supporting documentation. Silicon Graphics makes no
│ │ │ │ +
34 * representations about the suitability of this software for any
│ │ │ │ +
35 * purpose. It is provided "as is" without express or implied warranty.
│ │ │ │ +
36 */
│ │ │ │ +
37
│ │ │ │ +
38/** @file bits/memoryfwd.h
│ │ │ │ +
39 * This is an internal header file, included by other library headers.
│ │ │ │ +
40 * Do not attempt to use it directly. @headername{memory}
│ │ │ │ +
41 */
│ │ │ │ +
42
│ │ │ │ +
43#ifndef _MEMORYFWD_H
│ │ │ │ +
44#define _MEMORYFWD_H 1
│ │ │ │ +
45
│ │ │ │ +
46#ifdef _GLIBCXX_SYSHDR
│ │ │ │ +
47#pragma GCC system_header
│ │ │ │ +
48#endif
│ │ │ │ +
49
│ │ │ │ +
50#include <bits/c++config.h>
│ │ │ │ +
51
│ │ │ │ +
52namespace std _GLIBCXX_VISIBILITY(default)
│ │ │ │ +
53{
│ │ │ │ +
54_GLIBCXX_BEGIN_NAMESPACE_VERSION
│ │ │ │ +
55
│ │ │ │ +
56 /**
│ │ │ │ +
57 * @defgroup allocators Allocators
│ │ │ │ +
58 * @ingroup memory
│ │ │ │ +
59 *
│ │ │ │ +
60 * Classes encapsulating memory operations.
│ │ │ │ +
61 *
│ │ │ │ +
62 * @{
│ │ │ │ +
63 */
│ │ │ │ +
64
│ │ │ │ +
65 // Included in freestanding as a libstdc++ extension.
│ │ │ │ +
66 template<typename>
│ │ │ │ +
67 class allocator;
│ │ │ │ +
68
│ │ │ │ +
69 template<>
│ │ │ │ +
70 class allocator<void>;
│ │ │ │ +
71
│ │ │ │ +
72#if __cplusplus >= 201103L
│ │ │ │ +
73 /// Declare uses_allocator so it can be specialized in `<queue>` etc.
│ │ │ │ +
74 template<typename, typename>
│ │ │ │ + │ │ │ │ +
76
│ │ │ │ +
77 template<typename>
│ │ │ │ +
78 struct allocator_traits;
│ │ │ │ +
79#endif
│ │ │ │ +
80
│ │ │ │ +
81 /// @} group memory
│ │ │ │ +
82
│ │ │ │ +
83_GLIBCXX_END_NAMESPACE_VERSION
│ │ │ │ +
84} // namespace std
│ │ │ │ +
85
│ │ │ │ +
86#endif
│ │ │ │ + │ │ │ │ +
ISO C++ entities toplevel namespace is std.
│ │ │ │ +
Uniform interface to all allocator types.
│ │ │ │ +
Declare uses_allocator so it can be specialized in <queue> etc.
Definition memoryfwd.h:75
│ │ │ │
│ │ │ │
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├── html2text {} │ │ │ │ │ @@ -1,11 +1,11 @@ │ │ │ │ │ libstdc++ │ │ │ │ │ -exception_defines.h │ │ │ │ │ +memoryfwd.h │ │ │ │ │ _G_o_ _t_o_ _t_h_e_ _d_o_c_u_m_e_n_t_a_t_i_o_n_ _o_f_ _t_h_i_s_ _f_i_l_e_. │ │ │ │ │ -1// -fno-exceptions Support -*- C++ -*- │ │ │ │ │ +1// Forward declarations -*- C++ -*- │ │ │ │ │ 2 │ │ │ │ │ 3// Copyright (C) 2001-2025 Free Software Foundation, Inc. │ │ │ │ │ 4// │ │ │ │ │ 5// This file is part of the GNU ISO C++ Library. This library is free │ │ │ │ │ 6// software; you can redistribute it and/or modify it under the │ │ │ │ │ 7// terms of the GNU General Public License as published by the │ │ │ │ │ 8// Free Software Foundation; either version 3, or (at your option) │ │ │ │ │ @@ -21,31 +21,81 @@ │ │ │ │ │ 18// 3.1, as published by the Free Software Foundation. │ │ │ │ │ 19 │ │ │ │ │ 20// You should have received a copy of the GNU General Public License and │ │ │ │ │ 21// a copy of the GCC Runtime Library Exception along with this program; │ │ │ │ │ 22// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see │ │ │ │ │ 23// . │ │ │ │ │ 24 │ │ │ │ │ -25/** @file bits/exception_defines.h │ │ │ │ │ -26 * This is an internal header file, included by other library headers. │ │ │ │ │ -27 * Do not attempt to use it directly. @headername{exception} │ │ │ │ │ -28 */ │ │ │ │ │ -29 │ │ │ │ │ -30#ifndef _EXCEPTION_DEFINES_H │ │ │ │ │ -31#define _EXCEPTION_DEFINES_H 1 │ │ │ │ │ -32 │ │ │ │ │ -33#if ! __cpp_exceptions │ │ │ │ │ -34// Iff -fno-exceptions, transform error handling code to work without it. │ │ │ │ │ -35# define __try if (true) │ │ │ │ │ -36# define __catch(X) if (false) │ │ │ │ │ -37# define __throw_exception_again │ │ │ │ │ -38#else │ │ │ │ │ -39// Else proceed normally. │ │ │ │ │ -40# define __try try │ │ │ │ │ -41# define __catch(X) catch(X) │ │ │ │ │ -42# define __throw_exception_again throw │ │ │ │ │ -43#endif │ │ │ │ │ -44 │ │ │ │ │ -45#endif │ │ │ │ │ +25/* │ │ │ │ │ +26 * Copyright (c) 1996-1997 │ │ │ │ │ +27 * Silicon Graphics Computer Systems, Inc. │ │ │ │ │ +28 * │ │ │ │ │ +29 * Permission to use, copy, modify, distribute and sell this software │ │ │ │ │ +30 * and its documentation for any purpose is hereby granted without fee, │ │ │ │ │ +31 * provided that the above copyright notice appear in all copies and │ │ │ │ │ +32 * that both that copyright notice and this permission notice appear │ │ │ │ │ +33 * in supporting documentation. Silicon Graphics makes no │ │ │ │ │ +34 * representations about the suitability of this software for any │ │ │ │ │ +35 * purpose. It is provided "as is" without express or implied warranty. │ │ │ │ │ +36 */ │ │ │ │ │ +37 │ │ │ │ │ +38/** @file bits/memoryfwd.h │ │ │ │ │ +39 * This is an internal header file, included by other library headers. │ │ │ │ │ +40 * Do not attempt to use it directly. @headername{memory} │ │ │ │ │ +41 */ │ │ │ │ │ +42 │ │ │ │ │ +43#ifndef _MEMORYFWD_H │ │ │ │ │ +44#define _MEMORYFWD_H 1 │ │ │ │ │ +45 │ │ │ │ │ +46#ifdef _GLIBCXX_SYSHDR │ │ │ │ │ +47#pragma GCC system_header │ │ │ │ │ +48#endif │ │ │ │ │ +49 │ │ │ │ │ +50#include <_b_i_t_s_/_c_+_+_c_o_n_f_i_g_._h> │ │ │ │ │ +51 │ │ │ │ │ +52namespace _s_t_d _GLIBCXX_VISIBILITY(default) │ │ │ │ │ +53{ │ │ │ │ │ +54_GLIBCXX_BEGIN_NAMESPACE_VERSION │ │ │ │ │ +55 │ │ │ │ │ +56 /** │ │ │ │ │ +57 * @defgroup allocators Allocators │ │ │ │ │ +58 * @ingroup memory │ │ │ │ │ +59 * │ │ │ │ │ +60 * Classes encapsulating memory operations. │ │ │ │ │ +61 * │ │ │ │ │ +62 * @{ │ │ │ │ │ +63 */ │ │ │ │ │ +64 │ │ │ │ │ +65 // Included in freestanding as a libstdc++ extension. │ │ │ │ │ +66 template │ │ │ │ │ +67 class allocator; │ │ │ │ │ +68 │ │ │ │ │ +69 template<> │ │ │ │ │ +70 class allocator; │ │ │ │ │ +71 │ │ │ │ │ +72#if __cplusplus >= 201103L │ │ │ │ │ +73 /// Declare uses_allocator so it can be specialized in `` etc. │ │ │ │ │ +74 template │ │ │ │ │ +_7_5 struct _u_s_e_s___a_l_l_o_c_a_t_o_r; │ │ │ │ │ +76 │ │ │ │ │ +77 template │ │ │ │ │ +78 struct _a_l_l_o_c_a_t_o_r___t_r_a_i_t_s; │ │ │ │ │ +79#endif │ │ │ │ │ +80 │ │ │ │ │ +81 /// @} group memory │ │ │ │ │ +82 │ │ │ │ │ +83_GLIBCXX_END_NAMESPACE_VERSION │ │ │ │ │ +84} // namespace std │ │ │ │ │ +85 │ │ │ │ │ +86#endif │ │ │ │ │ +_c_+_+_c_o_n_f_i_g_._h │ │ │ │ │ +_s_t_d │ │ │ │ │ +ISO C++ entities toplevel namespace is std. │ │ │ │ │ +_s_t_d_:_:_a_l_l_o_c_a_t_o_r___t_r_a_i_t_s │ │ │ │ │ +Uniform interface to all allocator types. │ │ │ │ │ +DDeeffiinniittiioonn _b_i_t_s_/_a_l_l_o_c___t_r_a_i_t_s_._h_:_2_5_0 │ │ │ │ │ +_s_t_d_:_:_u_s_e_s___a_l_l_o_c_a_t_o_r │ │ │ │ │ +Declare uses_allocator so it can be specialized in etc. │ │ │ │ │ +DDeeffiinniittiioonn _m_e_m_o_r_y_f_w_d_._h_:_7_5 │ │ │ │ │ * _b_i_t_s │ │ │ │ │ - * _e_x_c_e_p_t_i_o_n___d_e_f_i_n_e_s_._h │ │ │ │ │ + * _m_e_m_o_r_y_f_w_d_._h │ │ │ │ │ * Generated by _[_d_o_x_y_g_e_n_]1.9.8 │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a00392.html │ │ │ │ @@ -1,15 +1,15 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ -libstdc++: stl_construct.h File Reference │ │ │ │ +libstdc++: ranges_algo.h File Reference │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ @@ -47,65 +47,2464 @@ │ │ │ │ $(document).ready(function(){initNavTree('a00392.html',''); initResizable(); }); │ │ │ │ /* @license-end */ │ │ │ │ │ │ │ │
│ │ │ │
│ │ │ │
│ │ │ │ Namespaces | │ │ │ │ -Functions
│ │ │ │ -
stl_construct.h File Reference
│ │ │ │ +Typedefs | │ │ │ │ +Functions | │ │ │ │ +Variables
│ │ │ │ +
ranges_algo.h File Reference
│ │ │ │
│ │ │ │
│ │ │ │ │ │ │ │

Go to the source code of this file.

│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │

│ │ │ │ Namespaces

namespace  std
 
│ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ +

│ │ │ │ +Typedefs

template<typename _Iter1 , typename _Iter2 , typename _Out >
using std::ranges::binary_transform_result = in_in_out_result< _Iter1, _Iter2, _Out >
 
template<typename _Iter , typename _Out >
using std::ranges::copy_if_result = in_out_result< _Iter, _Out >
 
template<typename _Iter , typename _Fp >
using std::ranges::for_each_n_result = in_fun_result< _Iter, _Fp >
 
template<typename _Iter , typename _Fp >
using std::ranges::for_each_result = in_fun_result< _Iter, _Fp >
 
template<typename _Iter1 , typename _Iter2 , typename _Out >
using std::ranges::merge_result = in_in_out_result< _Iter1, _Iter2, _Out >
 
template<typename _Iter >
using std::ranges::minmax_element_result = min_max_result< _Iter >
 
template<typename _Tp >
using std::ranges::minmax_result = min_max_result< _Tp >
 
template<typename _Iter >
using std::ranges::next_permutation_result = in_found_result< _Iter >
 
template<typename _Iter , typename _Out >
using std::ranges::partial_sort_copy_result = in_out_result< _Iter, _Out >
 
template<typename _Iter , typename _Out1 , typename _Out2 >
using std::ranges::partition_copy_result = in_out_out_result< _Iter, _Out1, _Out2 >
 
template<typename _Iter >
using std::ranges::prev_permutation_result = in_found_result< _Iter >
 
template<typename _Iter , typename _Out >
using std::ranges::remove_copy_if_result = in_out_result< _Iter, _Out >
 
template<typename _Iter , typename _Out >
using std::ranges::remove_copy_result = in_out_result< _Iter, _Out >
 
template<typename _Iter , typename _Out >
using std::ranges::replace_copy_if_result = in_out_result< _Iter, _Out >
 
template<typename _Iter , typename _Out >
using std::ranges::replace_copy_result = in_out_result< _Iter, _Out >
 
template<typename _Iter , typename _Out >
using std::ranges::reverse_copy_result = in_out_result< _Iter, _Out >
 
template<typename _Iter , typename _Out >
using std::ranges::rotate_copy_result = in_out_result< _Iter, _Out >
 
template<typename _Iter , typename _Out >
using std::ranges::set_difference_result = in_out_result< _Iter, _Out >
 
template<typename _Iter1 , typename _Iter2 , typename _Out >
using std::ranges::set_intersection_result = in_in_out_result< _Iter1, _Iter2, _Out >
 
template<typename _Iter1 , typename _Iter2 , typename _Out >
using std::ranges::set_symmetric_difference_result = in_in_out_result< _Iter1, _Iter2, _Out >
 
template<typename _Iter1 , typename _Iter2 , typename _Out >
using std::ranges::set_union_result = in_in_out_result< _Iter1, _Iter2, _Out >
 
template<typename _Iter1 , typename _Iter2 >
using std::ranges::swap_ranges_result = in_in_result< _Iter1, _Iter2 >
 
template<typename _Iter , typename _Out >
using std::ranges::unary_transform_result = in_out_result< _Iter, _Out >
 
template<typename _Iter , typename _Out >
using std::ranges::unique_copy_result = in_out_result< _Iter, _Out >
 
│ │ │ │ │ │ │ │ - │ │ │ │ - │ │ │ │ - │ │ │ │ - │ │ │ │ - │ │ │ │ - │ │ │ │ - │ │ │ │ - │ │ │ │ - │ │ │ │ - │ │ │ │ - │ │ │ │ - │ │ │ │ - │ │ │ │ - │ │ │ │ - │ │ │ │ - │ │ │ │ - │ │ │ │ - │ │ │ │ - │ │ │ │ - │ │ │ │ - │ │ │ │ - │ │ │ │ - │ │ │ │ - │ │ │ │ - │ │ │ │ - │ │ │ │ - │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ +

│ │ │ │ Functions

template<typename _Tp , typename... _Args>
constexpr void std::_Construct (_Tp *__p, _Args &&... __args)
 
template<typename _T1 >
_GLIBCXX26_CONSTEXPR void std::_Construct_novalue (_T1 *__p)
 
template<typename _ForwardIterator >
constexpr void std::_Destroy (_ForwardIterator __first, _ForwardIterator __last)
 
template<typename _Tp >
constexpr void std::_Destroy (_Tp *__pointer)
 
template<typename _ForwardIterator , typename _Size >
constexpr _ForwardIterator std::_Destroy_n (_ForwardIterator __first, _Size __count)
 
template<typename _Tp , typename... _Args>
│ │ │ │ -requires (!is_unbounded_array_v<_Tp>) && requires { ::new((void*)0) _Tp(std::declval<_Args>()...); }
constexpr _Tp * std::construct_at (_Tp *__location, _Args &&... __args) noexcept(noexcept(::new((void *) 0) _Tp(std::declval< _Args >()...)))
 
template<typename _ForwardIterator >
constexpr void std::destroy (_ForwardIterator __first, _ForwardIterator __last)
 
template<typename _Tp >
constexpr void std::destroy_at (_Tp *__location)
 
template<typename _ForwardIterator , typename _Size >
constexpr _ForwardIterator std::destroy_n (_ForwardIterator __first, _Size __count)
 
template<typename _Comp , typename _Proj >
constexpr auto std::ranges::__detail::__make_comp_proj (_Comp &__comp, _Proj &__proj)
 
template<typename _Pred , typename _Proj >
constexpr auto std::ranges::__detail::__make_pred_proj (_Pred &__pred, _Proj &__proj)
 
template<typename _ForwardIterator >
constexpr _ForwardIterator std::shift_left (_ForwardIterator __first, _ForwardIterator __last, typename iterator_traits< _ForwardIterator >::difference_type __n)
 
template<typename _ForwardIterator >
constexpr _ForwardIterator std::shift_right (_ForwardIterator __first, _ForwardIterator __last, typename iterator_traits< _ForwardIterator >::difference_type __n)
 
│ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │

│ │ │ │ +Variables

constexpr __all_of_fn std::ranges::all_of
 
constexpr __any_of_fn std::ranges::any_of
 
constexpr __binary_search_fn std::ranges::binary_search
 
constexpr __clamp_fn std::ranges::clamp
 
constexpr __copy_if_fn std::ranges::copy_if
 
constexpr __count_fn std::ranges::count
 
constexpr __count_if_fn std::ranges::count_if
 
constexpr __equal_range_fn std::ranges::equal_range
 
constexpr __find_end_fn std::ranges::find_end
 
constexpr __find_first_of_fn std::ranges::find_first_of
 
constexpr __for_each_fn std::ranges::for_each
 
constexpr __for_each_n_fn std::ranges::for_each_n
 
constexpr __generate_fn std::ranges::generate
 
constexpr __generate_n_fn std::ranges::generate_n
 
constexpr __includes_fn std::ranges::includes
 
constexpr __inplace_merge_fn std::ranges::inplace_merge
 
constexpr __is_heap_fn std::ranges::is_heap
 
constexpr __is_heap_until_fn std::ranges::is_heap_until
 
constexpr __is_partitioned_fn std::ranges::is_partitioned
 
constexpr __is_permutation_fn std::ranges::is_permutation
 
constexpr __is_sorted_fn std::ranges::is_sorted
 
constexpr __is_sorted_until_fn std::ranges::is_sorted_until
 
constexpr __lexicographical_compare_fn std::ranges::lexicographical_compare
 
constexpr __lower_bound_fn std::ranges::lower_bound
 
constexpr __make_heap_fn std::ranges::make_heap
 
constexpr __max_fn std::ranges::max
 
constexpr __max_element_fn std::ranges::max_element
 
constexpr __merge_fn std::ranges::merge
 
constexpr __min_element_fn std::ranges::min_element
 
constexpr __minmax_fn std::ranges::minmax
 
constexpr __minmax_element_fn std::ranges::minmax_element
 
constexpr __next_permutation_fn std::ranges::next_permutation
 
constexpr __none_of_fn std::ranges::none_of
 
constexpr __nth_element_fn std::ranges::nth_element
 
constexpr __partial_sort_fn std::ranges::partial_sort
 
constexpr __partial_sort_copy_fn std::ranges::partial_sort_copy
 
constexpr __partition_fn std::ranges::partition
 
constexpr __partition_copy_fn std::ranges::partition_copy
 
constexpr __partition_point_fn std::ranges::partition_point
 
constexpr __pop_heap_fn std::ranges::pop_heap
 
constexpr __prev_permutation_fn std::ranges::prev_permutation
 
constexpr __push_heap_fn std::ranges::push_heap
 
constexpr __remove_fn std::ranges::remove
 
constexpr __remove_copy_fn std::ranges::remove_copy
 
constexpr __remove_copy_if_fn std::ranges::remove_copy_if
 
constexpr __remove_if_fn std::ranges::remove_if
 
constexpr __replace_fn std::ranges::replace
 
constexpr __replace_copy_fn std::ranges::replace_copy
 
constexpr __replace_copy_if_fn std::ranges::replace_copy_if
 
constexpr __replace_if_fn std::ranges::replace_if
 
constexpr __reverse_fn std::ranges::reverse
 
constexpr __reverse_copy_fn std::ranges::reverse_copy
 
constexpr __rotate_fn std::ranges::rotate
 
constexpr __rotate_copy_fn std::ranges::rotate_copy
 
constexpr __sample_fn std::ranges::sample
 
constexpr __search_n_fn std::ranges::search_n
 
constexpr __set_difference_fn std::ranges::set_difference
 
constexpr __set_intersection_fn std::ranges::set_intersection
 
constexpr __set_symmetric_difference_fn std::ranges::set_symmetric_difference
 
constexpr __set_union_fn std::ranges::set_union
 
constexpr __shuffle_fn std::ranges::shuffle
 
constexpr __sort_fn std::ranges::sort
 
constexpr __sort_heap_fn std::ranges::sort_heap
 
constexpr __stable_partition_fn std::ranges::stable_partition
 
constexpr __stable_sort_fn std::ranges::stable_sort
 
constexpr __swap_ranges_fn std::ranges::swap_ranges
 
constexpr __transform_fn std::ranges::transform
 
constexpr __unique_fn std::ranges::unique
 
constexpr __unique_copy_fn std::ranges::unique_copy
 
constexpr __upper_bound_fn std::ranges::upper_bound
 
│ │ │ │

Detailed Description

│ │ │ │ -

This is an internal header file, included by other library headers. Do not attempt to use it directly. Instead, include <memory>.

│ │ │ │ +

This is an internal header file, included by other library headers. Do not attempt to use it directly. Instead, include <algorithm>.

│ │ │ │ + │ │ │ │ +

Definition in file ranges_algo.h.

│ │ │ │ +

Typedef Documentation

│ │ │ │ + │ │ │ │ +

◆ binary_transform_result

│ │ │ │ + │ │ │ │ +
│ │ │ │ +
│ │ │ │ +
│ │ │ │ +template<typename _Iter1 , typename _Iter2 , typename _Out >
│ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ +
using std::ranges::binary_transform_result = typedef in_in_out_result<_Iter1, _Iter2, _Out>
│ │ │ │ +
│ │ │ │ + │ │ │ │ +

Definition at line 715 of file ranges_algo.h.

│ │ │ │ + │ │ │ │ +
│ │ │ │ +
│ │ │ │ + │ │ │ │ +

◆ copy_if_result

│ │ │ │ + │ │ │ │ +
│ │ │ │ +
│ │ │ │ +
│ │ │ │ +template<typename _Iter , typename _Out >
│ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ +
using std::ranges::copy_if_result = typedef in_out_result<_Iter, _Out>
│ │ │ │ +
│ │ │ │ + │ │ │ │ +

Definition at line 618 of file ranges_algo.h.

│ │ │ │ + │ │ │ │ +
│ │ │ │ +
│ │ │ │ + │ │ │ │ +

◆ for_each_n_result

│ │ │ │ + │ │ │ │ +
│ │ │ │ +
│ │ │ │ +
│ │ │ │ +template<typename _Iter , typename _Fp >
│ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ +
using std::ranges::for_each_n_result = typedef in_fun_result<_Iter, _Fp>
│ │ │ │ +
│ │ │ │ + │ │ │ │ +

Definition at line 208 of file ranges_algo.h.

│ │ │ │ + │ │ │ │ +
│ │ │ │ +
│ │ │ │ + │ │ │ │ +

◆ for_each_result

│ │ │ │ + │ │ │ │ +
│ │ │ │ +
│ │ │ │ +
│ │ │ │ +template<typename _Iter , typename _Fp >
│ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ +
using std::ranges::for_each_result = typedef in_fun_result<_Iter, _Fp>
│ │ │ │ +
│ │ │ │ + │ │ │ │ +

Definition at line 179 of file ranges_algo.h.

│ │ │ │ + │ │ │ │ +
│ │ │ │ +
│ │ │ │ + │ │ │ │ +

◆ merge_result

│ │ │ │ + │ │ │ │ +
│ │ │ │ +
│ │ │ │ +
│ │ │ │ +template<typename _Iter1 , typename _Iter2 , typename _Out >
│ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ +
using std::ranges::merge_result = typedef in_in_out_result<_Iter1, _Iter2, _Out>
│ │ │ │ +
│ │ │ │ + │ │ │ │ +

Definition at line 2535 of file ranges_algo.h.

│ │ │ │ + │ │ │ │ +
│ │ │ │ +
│ │ │ │ + │ │ │ │ +

◆ minmax_element_result

│ │ │ │ + │ │ │ │ +
│ │ │ │ +
│ │ │ │ +
│ │ │ │ +template<typename _Iter >
│ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ +
using std::ranges::minmax_element_result = typedef min_max_result<_Iter>
│ │ │ │ +
│ │ │ │ + │ │ │ │ +

Definition at line 3199 of file ranges_algo.h.

│ │ │ │ + │ │ │ │ +
│ │ │ │ +
│ │ │ │ + │ │ │ │ +

◆ minmax_result

│ │ │ │ + │ │ │ │ +
│ │ │ │ +
│ │ │ │ +
│ │ │ │ +template<typename _Tp >
│ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ +
using std::ranges::minmax_result = typedef min_max_result<_Tp>
│ │ │ │ +
│ │ │ │ + │ │ │ │ +

Definition at line 3031 of file ranges_algo.h.

│ │ │ │ + │ │ │ │ +
│ │ │ │ +
│ │ │ │ + │ │ │ │ +

◆ next_permutation_result

│ │ │ │ + │ │ │ │ +
│ │ │ │ +
│ │ │ │ +
│ │ │ │ +template<typename _Iter >
│ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ +
using std::ranges::next_permutation_result = typedef in_found_result<_Iter>
│ │ │ │ +
│ │ │ │ + │ │ │ │ +

Definition at line 3404 of file ranges_algo.h.

│ │ │ │ + │ │ │ │ +
│ │ │ │ +
│ │ │ │ + │ │ │ │ +

◆ partial_sort_copy_result

│ │ │ │ + │ │ │ │ +
│ │ │ │ +
│ │ │ │ +
│ │ │ │ +template<typename _Iter , typename _Out >
│ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ +
using std::ranges::partial_sort_copy_result = typedef in_out_result<_Iter, _Out>
│ │ │ │ +
│ │ │ │ + │ │ │ │ +

Definition at line 1914 of file ranges_algo.h.

│ │ │ │ + │ │ │ │ +
│ │ │ │ +
│ │ │ │ + │ │ │ │ +

◆ partition_copy_result

│ │ │ │ + │ │ │ │ +
│ │ │ │ +
│ │ │ │ +
│ │ │ │ +template<typename _Iter , typename _Out1 , typename _Out2 >
│ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ +
using std::ranges::partition_copy_result = typedef in_out_out_result<_Iter, _Out1, _Out2>
│ │ │ │ +
│ │ │ │ + │ │ │ │ +

Definition at line 2443 of file ranges_algo.h.

│ │ │ │ + │ │ │ │ +
│ │ │ │ +
│ │ │ │ + │ │ │ │ +

◆ prev_permutation_result

│ │ │ │ + │ │ │ │ +
│ │ │ │ +
│ │ │ │ +
│ │ │ │ +template<typename _Iter >
│ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ +
using std::ranges::prev_permutation_result = typedef in_found_result<_Iter>
│ │ │ │ +
│ │ │ │ + │ │ │ │ +

Definition at line 3466 of file ranges_algo.h.

│ │ │ │ + │ │ │ │ +
│ │ │ │ +
│ │ │ │ + │ │ │ │ +

◆ remove_copy_if_result

│ │ │ │ + │ │ │ │ +
│ │ │ │ +
│ │ │ │ +
│ │ │ │ +template<typename _Iter , typename _Out >
│ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ +
using std::ranges::remove_copy_if_result = typedef in_out_result<_Iter, _Out>
│ │ │ │ +
│ │ │ │ + │ │ │ │ +

Definition at line 1074 of file ranges_algo.h.

│ │ │ │ + │ │ │ │ +
│ │ │ │ +
│ │ │ │ + │ │ │ │ +

◆ remove_copy_result

│ │ │ │ + │ │ │ │ +
│ │ │ │ +
│ │ │ │ +
│ │ │ │ +template<typename _Iter , typename _Out >
│ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ +
using std::ranges::remove_copy_result = typedef in_out_result<_Iter, _Out>
│ │ │ │ +
│ │ │ │ + │ │ │ │ +

Definition at line 1113 of file ranges_algo.h.

│ │ │ │ + │ │ │ │ +
│ │ │ │ +
│ │ │ │ + │ │ │ │ +

◆ replace_copy_if_result

│ │ │ │ + │ │ │ │ +
│ │ │ │ +
│ │ │ │ +
│ │ │ │ +template<typename _Iter , typename _Out >
│ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ +
using std::ranges::replace_copy_if_result = typedef in_out_result<_Iter, _Out>
│ │ │ │ +
│ │ │ │ + │ │ │ │ +

Definition at line 914 of file ranges_algo.h.

│ │ │ │ + │ │ │ │ +
│ │ │ │ +
│ │ │ │ + │ │ │ │ +

◆ replace_copy_result

│ │ │ │ + │ │ │ │ +
│ │ │ │ +
│ │ │ │ +
│ │ │ │ +template<typename _Iter , typename _Out >
│ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ +
using std::ranges::replace_copy_result = typedef in_out_result<_Iter, _Out>
│ │ │ │ +
│ │ │ │ + │ │ │ │ +

Definition at line 865 of file ranges_algo.h.

│ │ │ │ + │ │ │ │ +
│ │ │ │ +
│ │ │ │ + │ │ │ │ +

◆ reverse_copy_result

│ │ │ │ + │ │ │ │ +
│ │ │ │ +
│ │ │ │ +
│ │ │ │ +template<typename _Iter , typename _Out >
│ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ +
using std::ranges::reverse_copy_result = typedef in_out_result<_Iter, _Out>
│ │ │ │ +
│ │ │ │ + │ │ │ │ +

Definition at line 1334 of file ranges_algo.h.

│ │ │ │ + │ │ │ │ +
│ │ │ │ +
│ │ │ │ + │ │ │ │ +

◆ rotate_copy_result

│ │ │ │ + │ │ │ │ +
│ │ │ │ +
│ │ │ │ +
│ │ │ │ +template<typename _Iter , typename _Out >
│ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ +
using std::ranges::rotate_copy_result = typedef in_out_result<_Iter, _Out>
│ │ │ │ +
│ │ │ │ + │ │ │ │ +

Definition at line 1515 of file ranges_algo.h.

│ │ │ │ + │ │ │ │ +
│ │ │ │ +
│ │ │ │ + │ │ │ │ +

◆ set_difference_result

│ │ │ │ + │ │ │ │ +
│ │ │ │ +
│ │ │ │ +
│ │ │ │ +template<typename _Iter , typename _Out >
│ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ +
using std::ranges::set_difference_result = typedef in_out_result<_Iter, _Out>
│ │ │ │ +
│ │ │ │ + │ │ │ │ +

Definition at line 2803 of file ranges_algo.h.

│ │ │ │ + │ │ │ │ +
│ │ │ │ +
│ │ │ │ + │ │ │ │ +

◆ set_intersection_result

│ │ │ │ + │ │ │ │ +
│ │ │ │ +
│ │ │ │ +
│ │ │ │ +template<typename _Iter1 , typename _Iter2 , typename _Out >
│ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ +
using std::ranges::set_intersection_result = typedef in_in_out_result<_Iter1, _Iter2, _Out>
│ │ │ │ +
│ │ │ │ + │ │ │ │ +

Definition at line 2745 of file ranges_algo.h.

│ │ │ │ + │ │ │ │ +
│ │ │ │ +
│ │ │ │ + │ │ │ │ +

◆ set_symmetric_difference_result

│ │ │ │ + │ │ │ │ +
│ │ │ │ +
│ │ │ │ +
│ │ │ │ +template<typename _Iter1 , typename _Iter2 , typename _Out >
│ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ +
using std::ranges::set_symmetric_difference_result = typedef in_in_out_result<_Iter1, _Iter2, _Out>
│ │ │ │ +
│ │ │ │ + │ │ │ │ +

Definition at line 2860 of file ranges_algo.h.

│ │ │ │ + │ │ │ │ +
│ │ │ │ +
│ │ │ │ + │ │ │ │ +

◆ set_union_result

│ │ │ │ + │ │ │ │ +
│ │ │ │ +
│ │ │ │ +
│ │ │ │ +template<typename _Iter1 , typename _Iter2 , typename _Out >
│ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ +
using std::ranges::set_union_result = typedef in_in_out_result<_Iter1, _Iter2, _Out>
│ │ │ │ +
│ │ │ │ + │ │ │ │ +

Definition at line 2677 of file ranges_algo.h.

│ │ │ │ + │ │ │ │ +
│ │ │ │ +
│ │ │ │ + │ │ │ │ +

◆ swap_ranges_result

│ │ │ │ + │ │ │ │ +
│ │ │ │ +
│ │ │ │ +
│ │ │ │ +template<typename _Iter1 , typename _Iter2 >
│ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ +
using std::ranges::swap_ranges_result = typedef in_in_result<_Iter1, _Iter2>
│ │ │ │ +
│ │ │ │ + │ │ │ │ +

Definition at line 657 of file ranges_algo.h.

│ │ │ │ + │ │ │ │ +
│ │ │ │ +
│ │ │ │ + │ │ │ │ +

◆ unary_transform_result

│ │ │ │ + │ │ │ │ +
│ │ │ │ +
│ │ │ │ +
│ │ │ │ +template<typename _Iter , typename _Out >
│ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ +
using std::ranges::unary_transform_result = typedef in_out_result<_Iter, _Out>
│ │ │ │ +
│ │ │ │ + │ │ │ │ +

Definition at line 688 of file ranges_algo.h.

│ │ │ │ + │ │ │ │ +
│ │ │ │ +
│ │ │ │ + │ │ │ │ +

◆ unique_copy_result

│ │ │ │ + │ │ │ │ +
│ │ │ │ +
│ │ │ │ +
│ │ │ │ +template<typename _Iter , typename _Out >
│ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ +
using std::ranges::unique_copy_result = typedef in_out_result<_Iter, _Out>
│ │ │ │ +
│ │ │ │ + │ │ │ │ +

Definition at line 1202 of file ranges_algo.h.

│ │ │ │ + │ │ │ │ +
│ │ │ │ +
│ │ │ │ +

Function Documentation

│ │ │ │ + │ │ │ │ +

◆ __make_comp_proj()

│ │ │ │ + │ │ │ │ +
│ │ │ │ +
│ │ │ │ +
│ │ │ │ +template<typename _Comp , typename _Proj >
│ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ +
│ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ +
constexpr auto std::ranges::__detail::__make_comp_proj (_Comp & __comp,
_Proj & __proj 
)
│ │ │ │ +
│ │ │ │ +constexpr
│ │ │ │ +
│ │ │ │ + │ │ │ │ +

Definition at line 52 of file ranges_algo.h.

│ │ │ │ + │ │ │ │ +
│ │ │ │ +
│ │ │ │ + │ │ │ │ +

◆ __make_pred_proj()

│ │ │ │ + │ │ │ │ +
│ │ │ │ +
│ │ │ │ +
│ │ │ │ +template<typename _Pred , typename _Proj >
│ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ +
│ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ +
constexpr auto std::ranges::__detail::__make_pred_proj (_Pred & __pred,
_Proj & __proj 
)
│ │ │ │ +
│ │ │ │ +constexpr
│ │ │ │ +
│ │ │ │ + │ │ │ │ +

Definition at line 65 of file ranges_algo.h.

│ │ │ │ + │ │ │ │ +
│ │ │ │ +
│ │ │ │ +

Variable Documentation

│ │ │ │ + │ │ │ │ +

◆ all_of

│ │ │ │ + │ │ │ │ +
│ │ │ │ +
│ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ +
│ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ +
constexpr __all_of_fn std::ranges::all_of
│ │ │ │ +
│ │ │ │ +inlineconstexpr
│ │ │ │ +
│ │ │ │ + │ │ │ │ +

Definition at line 100 of file ranges_algo.h.

│ │ │ │ + │ │ │ │ +
│ │ │ │ +
│ │ │ │ + │ │ │ │ +

◆ any_of

│ │ │ │ + │ │ │ │ +
│ │ │ │ +
│ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ +
│ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ +
constexpr __any_of_fn std::ranges::any_of
│ │ │ │ +
│ │ │ │ +inlineconstexpr
│ │ │ │ +
│ │ │ │ + │ │ │ │ +

Definition at line 128 of file ranges_algo.h.

│ │ │ │ + │ │ │ │ +
│ │ │ │ +
│ │ │ │ + │ │ │ │ +

◆ binary_search

│ │ │ │ + │ │ │ │ +
│ │ │ │ +
│ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ +
│ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ +
constexpr __binary_search_fn std::ranges::binary_search
│ │ │ │ +
│ │ │ │ +inlineconstexpr
│ │ │ │ +
│ │ │ │ + │ │ │ │ +

Definition at line 2281 of file ranges_algo.h.

│ │ │ │ + │ │ │ │ +
│ │ │ │ +
│ │ │ │ + │ │ │ │ +

◆ clamp

│ │ │ │ + │ │ │ │ +
│ │ │ │ +
│ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ +
│ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ +
constexpr __clamp_fn std::ranges::clamp
│ │ │ │ +
│ │ │ │ +inlineconstexpr
│ │ │ │ +
│ │ │ │ + │ │ │ │ +

Definition at line 3009 of file ranges_algo.h.

│ │ │ │ + │ │ │ │ +
│ │ │ │ +
│ │ │ │ + │ │ │ │ +

◆ copy_if

│ │ │ │ + │ │ │ │ +
│ │ │ │ +
│ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ +
│ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ +
constexpr __copy_if_fn std::ranges::copy_if
│ │ │ │ +
│ │ │ │ +inlineconstexpr
│ │ │ │ +
│ │ │ │ + │ │ │ │ +

Definition at line 654 of file ranges_algo.h.

│ │ │ │ + │ │ │ │ +
│ │ │ │ +
│ │ │ │ + │ │ │ │ +

◆ count

│ │ │ │ + │ │ │ │ +
│ │ │ │ +
│ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ +
│ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ +
constexpr __count_fn std::ranges::count
│ │ │ │ +
│ │ │ │ +inlineconstexpr
│ │ │ │ +
│ │ │ │ + │ │ │ │ +

Definition at line 314 of file ranges_algo.h.

│ │ │ │ + │ │ │ │ +
│ │ │ │ +
│ │ │ │ + │ │ │ │ +

◆ count_if

│ │ │ │ + │ │ │ │ +
│ │ │ │ +
│ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ +
│ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ +
constexpr __count_if_fn std::ranges::count_if
│ │ │ │ +
│ │ │ │ +inlineconstexpr
│ │ │ │ +
│ │ │ │ + │ │ │ │ +

Definition at line 344 of file ranges_algo.h.

│ │ │ │ + │ │ │ │ +
│ │ │ │ +
│ │ │ │ + │ │ │ │ +

◆ equal_range

│ │ │ │ + │ │ │ │ +
│ │ │ │ +
│ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ +
│ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ +
constexpr __equal_range_fn std::ranges::equal_range
│ │ │ │ +
│ │ │ │ +inlineconstexpr
│ │ │ │ +
│ │ │ │ + │ │ │ │ +

Definition at line 2245 of file ranges_algo.h.

│ │ │ │ + │ │ │ │ +
│ │ │ │ +
│ │ │ │ + │ │ │ │ +

◆ find_end

│ │ │ │ + │ │ │ │ +
│ │ │ │ +
│ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ +
│ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ +
constexpr __find_end_fn std::ranges::find_end
│ │ │ │ +
│ │ │ │ +inlineconstexpr
│ │ │ │ +
│ │ │ │ + │ │ │ │ +

Definition at line 516 of file ranges_algo.h.

│ │ │ │ + │ │ │ │ +
│ │ │ │ +
│ │ │ │ + │ │ │ │ +

◆ find_first_of

│ │ │ │ + │ │ │ │ +
│ │ │ │ +
│ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ +
│ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ +
constexpr __find_first_of_fn std::ranges::find_first_of
│ │ │ │ +
│ │ │ │ +inlineconstexpr
│ │ │ │ +
│ │ │ │ + │ │ │ │ +

Definition at line 279 of file ranges_algo.h.

│ │ │ │ + │ │ │ │ +
│ │ │ │ +
│ │ │ │ + │ │ │ │ +

◆ for_each

│ │ │ │ + │ │ │ │ +
│ │ │ │ +
│ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ +
│ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ +
constexpr __for_each_fn std::ranges::for_each
│ │ │ │ +
│ │ │ │ +inlineconstexpr
│ │ │ │ +
│ │ │ │ + │ │ │ │ +

Definition at line 205 of file ranges_algo.h.

│ │ │ │ + │ │ │ │ +
│ │ │ │ +
│ │ │ │ + │ │ │ │ +

◆ for_each_n

│ │ │ │ + │ │ │ │ +
│ │ │ │ +
│ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ +
│ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ +
constexpr __for_each_n_fn std::ranges::for_each_n
│ │ │ │ +
│ │ │ │ +inlineconstexpr
│ │ │ │ +
│ │ │ │ + │ │ │ │ +

Definition at line 238 of file ranges_algo.h.

│ │ │ │ + │ │ │ │ +
│ │ │ │ +
│ │ │ │ + │ │ │ │ +

◆ generate

│ │ │ │ + │ │ │ │ +
│ │ │ │ +
│ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ +
│ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ +
constexpr __generate_fn std::ranges::generate
│ │ │ │ +
│ │ │ │ +inlineconstexpr
│ │ │ │ +
│ │ │ │ + │ │ │ │ +

Definition at line 996 of file ranges_algo.h.

│ │ │ │ + │ │ │ │ +
│ │ │ │ +
│ │ │ │ + │ │ │ │ +

◆ generate_n

│ │ │ │ + │ │ │ │ +
│ │ │ │ +
│ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ +
│ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ +
constexpr __generate_n_fn std::ranges::generate_n
│ │ │ │ +
│ │ │ │ +inlineconstexpr
│ │ │ │ +
│ │ │ │ + │ │ │ │ +

Definition at line 971 of file ranges_algo.h.

│ │ │ │ + │ │ │ │ +
│ │ │ │ +
│ │ │ │ + │ │ │ │ +

◆ includes

│ │ │ │ + │ │ │ │ +
│ │ │ │ +
│ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ +
│ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ +
constexpr __includes_fn std::ranges::includes
│ │ │ │ +
│ │ │ │ +inlineconstexpr
│ │ │ │ +
│ │ │ │ + │ │ │ │ +

Definition at line 2674 of file ranges_algo.h.

│ │ │ │ + │ │ │ │ +
│ │ │ │ +
│ │ │ │ + │ │ │ │ +

◆ inplace_merge

│ │ │ │ + │ │ │ │ +
│ │ │ │ +
│ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ +
│ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ +
constexpr __inplace_merge_fn std::ranges::inplace_merge
│ │ │ │ +
│ │ │ │ +inlineconstexpr
│ │ │ │ +
│ │ │ │ + │ │ │ │ +

Definition at line 2624 of file ranges_algo.h.

│ │ │ │ + │ │ │ │ +
│ │ │ │ +
│ │ │ │ + │ │ │ │ +

◆ is_heap

│ │ │ │ + │ │ │ │ +
│ │ │ │ +
│ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ +
│ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ +
constexpr __is_heap_fn std::ranges::is_heap
│ │ │ │ +
│ │ │ │ +inlineconstexpr
│ │ │ │ +
│ │ │ │ + │ │ │ │ +

Definition at line 1810 of file ranges_algo.h.

│ │ │ │ + │ │ │ │ +
│ │ │ │ +
│ │ │ │ + │ │ │ │ +

◆ is_heap_until

│ │ │ │ + │ │ │ │ +
│ │ │ │ +
│ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ +
│ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ +
constexpr __is_heap_until_fn std::ranges::is_heap_until
│ │ │ │ +
│ │ │ │ +inlineconstexpr
│ │ │ │ +
│ │ │ │ + │ │ │ │ +

Definition at line 1780 of file ranges_algo.h.

│ │ │ │ + │ │ │ │ +
│ │ │ │ +
│ │ │ │ + │ │ │ │ +

◆ is_partitioned

│ │ │ │ + │ │ │ │ +
│ │ │ │ +
│ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ +
│ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ +
constexpr __is_partitioned_fn std::ranges::is_partitioned
│ │ │ │ +
│ │ │ │ +inlineconstexpr
│ │ │ │ +
│ │ │ │ + │ │ │ │ +

Definition at line 2312 of file ranges_algo.h.

│ │ │ │ + │ │ │ │ +
│ │ │ │ +
│ │ │ │ + │ │ │ │ +

◆ is_permutation

│ │ │ │ + │ │ │ │ +
│ │ │ │ +
│ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ +
│ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ +
constexpr __is_permutation_fn std::ranges::is_permutation
│ │ │ │ +
│ │ │ │ +inlineconstexpr
│ │ │ │ +
│ │ │ │ + │ │ │ │ +

Definition at line 615 of file ranges_algo.h.

│ │ │ │ + │ │ │ │ +
│ │ │ │ +
│ │ │ │ + │ │ │ │ +

◆ is_sorted

│ │ │ │ + │ │ │ │ +
│ │ │ │ +
│ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ +
│ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ +
constexpr __is_sorted_fn std::ranges::is_sorted
│ │ │ │ +
│ │ │ │ +inlineconstexpr
│ │ │ │ +
│ │ │ │ + │ │ │ │ +

Definition at line 2056 of file ranges_algo.h.

│ │ │ │ + │ │ │ │ +
│ │ │ │ +
│ │ │ │ + │ │ │ │ +

◆ is_sorted_until

│ │ │ │ + │ │ │ │ +
│ │ │ │ +
│ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ +
│ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ +
constexpr __is_sorted_until_fn std::ranges::is_sorted_until
│ │ │ │ +
│ │ │ │ +inlineconstexpr
│ │ │ │ +
│ │ │ │ + │ │ │ │ +

Definition at line 2021 of file ranges_algo.h.

│ │ │ │ + │ │ │ │ +
│ │ │ │ +
│ │ │ │ + │ │ │ │ +

◆ lexicographical_compare

│ │ │ │ + │ │ │ │ +
│ │ │ │ +
│ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ +
│ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ +
constexpr __lexicographical_compare_fn std::ranges::lexicographical_compare
│ │ │ │ +
│ │ │ │ +inlineconstexpr
│ │ │ │ +
│ │ │ │ + │ │ │ │ +

Definition at line 3382 of file ranges_algo.h.

│ │ │ │ + │ │ │ │ +
│ │ │ │ +
│ │ │ │ + │ │ │ │ +

◆ lower_bound

│ │ │ │ + │ │ │ │ +
│ │ │ │ +
│ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ +
│ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ +
constexpr __lower_bound_fn std::ranges::lower_bound
│ │ │ │ +
│ │ │ │ +inlineconstexpr
│ │ │ │ +
│ │ │ │ + │ │ │ │ +

Definition at line 2134 of file ranges_algo.h.

│ │ │ │ + │ │ │ │ +
│ │ │ │ +
│ │ │ │ + │ │ │ │ +

◆ make_heap

│ │ │ │ + │ │ │ │ +
│ │ │ │ +
│ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ +
│ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ +
constexpr __make_heap_fn std::ranges::make_heap
│ │ │ │ +
│ │ │ │ +inlineconstexpr
│ │ │ │ +
│ │ │ │ + │ │ │ │ +

Definition at line 1715 of file ranges_algo.h.

│ │ │ │ + │ │ │ │ +
│ │ │ │ +
│ │ │ │ + │ │ │ │ +

◆ max

│ │ │ │ + │ │ │ │ +
│ │ │ │ +
│ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ +
│ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ +
constexpr __max_fn std::ranges::max
│ │ │ │ +
│ │ │ │ +inlineconstexpr
│ │ │ │ +
│ │ │ │ + │ │ │ │ +

Definition at line 2981 of file ranges_algo.h.

│ │ │ │ + │ │ │ │ +
│ │ │ │ +
│ │ │ │ + │ │ │ │ +

◆ max_element

│ │ │ │ + │ │ │ │ +
│ │ │ │ +
│ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ +
│ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ +
constexpr __max_element_fn std::ranges::max_element
│ │ │ │ +
│ │ │ │ +inlineconstexpr
│ │ │ │ +
│ │ │ │ + │ │ │ │ +

Definition at line 3196 of file ranges_algo.h.

│ │ │ │ + │ │ │ │ +
│ │ │ │ +
│ │ │ │ + │ │ │ │ +

◆ merge

│ │ │ │ + │ │ │ │ +
│ │ │ │ +
│ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ +
│ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ +
constexpr __merge_fn std::ranges::merge
│ │ │ │ +
│ │ │ │ +inlineconstexpr
│ │ │ │ +
│ │ │ │ + │ │ │ │ +

Definition at line 2593 of file ranges_algo.h.

│ │ │ │ + │ │ │ │ +
│ │ │ │ +
│ │ │ │ + │ │ │ │ +

◆ min_element

│ │ │ │ + │ │ │ │ +
│ │ │ │ +
│ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ +
│ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ +
constexpr __min_element_fn std::ranges::min_element
│ │ │ │ +
│ │ │ │ +inlineconstexpr
│ │ │ │ +
│ │ │ │ + │ │ │ │ +

Definition at line 3159 of file ranges_algo.h.

│ │ │ │ + │ │ │ │ +
│ │ │ │ +
│ │ │ │ + │ │ │ │ +

◆ minmax

│ │ │ │ + │ │ │ │ +
│ │ │ │ +
│ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ +
│ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ +
constexpr __minmax_fn std::ranges::minmax
│ │ │ │ +
│ │ │ │ +inlineconstexpr
│ │ │ │ +
│ │ │ │ + │ │ │ │ +

Definition at line 3122 of file ranges_algo.h.

│ │ │ │ + │ │ │ │ +
│ │ │ │ +
│ │ │ │ + │ │ │ │ +

◆ minmax_element

│ │ │ │ + │ │ │ │ +
│ │ │ │ +
│ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ +
│ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ +
constexpr __minmax_element_fn std::ranges::minmax_element
│ │ │ │ +
│ │ │ │ +inlineconstexpr
│ │ │ │ +
│ │ │ │ + │ │ │ │ +

Definition at line 3270 of file ranges_algo.h.

│ │ │ │ + │ │ │ │ +
│ │ │ │ +
│ │ │ │ + │ │ │ │ +

◆ next_permutation

│ │ │ │ + │ │ │ │ +
│ │ │ │ +
│ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ +
│ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ +
constexpr __next_permutation_fn std::ranges::next_permutation
│ │ │ │ +
│ │ │ │ +inlineconstexpr
│ │ │ │ +
│ │ │ │ + │ │ │ │ +

Definition at line 3463 of file ranges_algo.h.

│ │ │ │ + │ │ │ │ +
│ │ │ │ +
│ │ │ │ + │ │ │ │ +

◆ none_of

│ │ │ │ + │ │ │ │ +
│ │ │ │ +
│ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ +
│ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ +
constexpr __none_of_fn std::ranges::none_of
│ │ │ │ +
│ │ │ │ +inlineconstexpr
│ │ │ │ +
│ │ │ │ + │ │ │ │ +

Definition at line 156 of file ranges_algo.h.

│ │ │ │ + │ │ │ │ +
│ │ │ │ +
│ │ │ │ + │ │ │ │ +

◆ nth_element

│ │ │ │ + │ │ │ │ +
│ │ │ │ +
│ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ +
│ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ +
constexpr __nth_element_fn std::ranges::nth_element
│ │ │ │ +
│ │ │ │ +inlineconstexpr
│ │ │ │ +
│ │ │ │ + │ │ │ │ +

Definition at line 2086 of file ranges_algo.h.

│ │ │ │ + │ │ │ │ +
│ │ │ │ +
│ │ │ │ + │ │ │ │ +

◆ partial_sort

│ │ │ │ + │ │ │ │ +
│ │ │ │ +
│ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ +
│ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ +
constexpr __partial_sort_fn std::ranges::partial_sort
│ │ │ │ +
│ │ │ │ +inlineconstexpr
│ │ │ │ +
│ │ │ │ + │ │ │ │ +

Definition at line 1911 of file ranges_algo.h.

│ │ │ │ + │ │ │ │ +
│ │ │ │ +
│ │ │ │ + │ │ │ │ +

◆ partial_sort_copy

│ │ │ │ + │ │ │ │ +
│ │ │ │ +
│ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ +
│ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ +
constexpr __partial_sort_copy_fn std::ranges::partial_sort_copy
│ │ │ │ +
│ │ │ │ +inlineconstexpr
│ │ │ │ +
│ │ │ │ + │ │ │ │ +

Definition at line 1986 of file ranges_algo.h.

│ │ │ │ + │ │ │ │ +
│ │ │ │ +
│ │ │ │ + │ │ │ │ +

◆ partition

│ │ │ │ + │ │ │ │ +
│ │ │ │ +
│ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ +
│ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ +
constexpr __partition_fn std::ranges::partition
│ │ │ │ +
│ │ │ │ +inlineconstexpr
│ │ │ │ +
│ │ │ │ + │ │ │ │ +

Definition at line 2383 of file ranges_algo.h.

│ │ │ │ + │ │ │ │ +
│ │ │ │ +
│ │ │ │ + │ │ │ │ +

◆ partition_copy

│ │ │ │ + │ │ │ │ +
│ │ │ │ +
│ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ +
│ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ +
constexpr __partition_copy_fn std::ranges::partition_copy
│ │ │ │ +
│ │ │ │ +inlineconstexpr
│ │ │ │ +
│ │ │ │ + │ │ │ │ +

Definition at line 2491 of file ranges_algo.h.

│ │ │ │ + │ │ │ │ +
│ │ │ │ +
│ │ │ │ + │ │ │ │ +

◆ partition_point

│ │ │ │ + │ │ │ │ +
│ │ │ │ +
│ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ +
│ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ +
constexpr __partition_point_fn std::ranges::partition_point
│ │ │ │ +
│ │ │ │ +inlineconstexpr
│ │ │ │ +
│ │ │ │ + │ │ │ │ +

Definition at line 2532 of file ranges_algo.h.

│ │ │ │ + │ │ │ │ +
│ │ │ │ +
│ │ │ │ + │ │ │ │ +

◆ pop_heap

│ │ │ │ + │ │ │ │ +
│ │ │ │ +
│ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ +
│ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ +
constexpr __pop_heap_fn std::ranges::pop_heap
│ │ │ │ +
│ │ │ │ +inlineconstexpr
│ │ │ │ +
│ │ │ │ + │ │ │ │ +

Definition at line 1687 of file ranges_algo.h.

│ │ │ │ + │ │ │ │ +
│ │ │ │ +
│ │ │ │ + │ │ │ │ +

◆ prev_permutation

│ │ │ │ + │ │ │ │ +
│ │ │ │ +
│ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ +
│ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ +
constexpr __prev_permutation_fn std::ranges::prev_permutation
│ │ │ │ +
│ │ │ │ +inlineconstexpr
│ │ │ │ +
│ │ │ │ + │ │ │ │ +

Definition at line 3525 of file ranges_algo.h.

│ │ │ │ + │ │ │ │ +
│ │ │ │ +
│ │ │ │ + │ │ │ │ +

◆ push_heap

│ │ │ │ + │ │ │ │ +
│ │ │ │ +
│ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ +
│ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ +
constexpr __push_heap_fn std::ranges::push_heap
│ │ │ │ +
│ │ │ │ +inlineconstexpr
│ │ │ │ +
│ │ │ │ + │ │ │ │ +

Definition at line 1659 of file ranges_algo.h.

│ │ │ │ + │ │ │ │ +
│ │ │ │ +
│ │ │ │ + │ │ │ │ +

◆ remove

│ │ │ │ + │ │ │ │ +
│ │ │ │ +
│ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ +
│ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ +
constexpr __remove_fn std::ranges::remove
│ │ │ │ +
│ │ │ │ +inlineconstexpr
│ │ │ │ +
│ │ │ │ + │ │ │ │ +

Definition at line 1071 of file ranges_algo.h.

│ │ │ │ + │ │ │ │ +
│ │ │ │ +
│ │ │ │ + │ │ │ │ +

◆ remove_copy

│ │ │ │ + │ │ │ │ +
│ │ │ │ +
│ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ +
│ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ +
constexpr __remove_copy_fn std::ranges::remove_copy
│ │ │ │ +
│ │ │ │ +inlineconstexpr
│ │ │ │ +
│ │ │ │ + │ │ │ │ +

Definition at line 1154 of file ranges_algo.h.

│ │ │ │ + │ │ │ │ +
│ │ │ │ +
│ │ │ │ + │ │ │ │ +

◆ remove_copy_if

│ │ │ │ + │ │ │ │ +
│ │ │ │ +
│ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ +
│ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ +
constexpr __remove_copy_if_fn std::ranges::remove_copy_if
│ │ │ │ +
│ │ │ │ +inlineconstexpr
│ │ │ │ +
│ │ │ │ + │ │ │ │ +

Definition at line 1110 of file ranges_algo.h.

│ │ │ │ + │ │ │ │ +
│ │ │ │ +
│ │ │ │ + │ │ │ │ +

◆ remove_if

│ │ │ │ + │ │ │ │ +
│ │ │ │ +
│ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ +
│ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ +
constexpr __remove_if_fn std::ranges::remove_if
│ │ │ │ +
│ │ │ │ +inlineconstexpr
│ │ │ │ +
│ │ │ │ + │ │ │ │ +

Definition at line 1035 of file ranges_algo.h.

│ │ │ │ + │ │ │ │ +
│ │ │ │ +
│ │ │ │ + │ │ │ │ +

◆ replace

│ │ │ │ + │ │ │ │ +
│ │ │ │ +
│ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ +
│ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ +
constexpr __replace_fn std::ranges::replace
│ │ │ │ +
│ │ │ │ +inlineconstexpr
│ │ │ │ +
│ │ │ │ + │ │ │ │ +

Definition at line 828 of file ranges_algo.h.

│ │ │ │ + │ │ │ │ +
│ │ │ │ +
│ │ │ │ + │ │ │ │ +

◆ replace_copy

│ │ │ │ + │ │ │ │ +
│ │ │ │ +
│ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ +
│ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ +
constexpr __replace_copy_fn std::ranges::replace_copy
│ │ │ │ +
│ │ │ │ +inlineconstexpr
│ │ │ │ +
│ │ │ │ + │ │ │ │ +

Definition at line 911 of file ranges_algo.h.

│ │ │ │ │ │ │ │ -

Definition in file stl_construct.h.

│ │ │ │ -
│ │ │ │ +
│ │ │ │ +
│ │ │ │ + │ │ │ │ +

◆ replace_copy_if

│ │ │ │ + │ │ │ │ +
│ │ │ │ +
│ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ +
│ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ +
constexpr __replace_copy_if_fn std::ranges::replace_copy_if
│ │ │ │ +
│ │ │ │ +inlineconstexpr
│ │ │ │ +
│ │ │ │ + │ │ │ │ +

Definition at line 955 of file ranges_algo.h.

│ │ │ │ + │ │ │ │ +
│ │ │ │ +
│ │ │ │ + │ │ │ │ +

◆ replace_if

│ │ │ │ + │ │ │ │ +
│ │ │ │ +
│ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ +
│ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ +
constexpr __replace_if_fn std::ranges::replace_if
│ │ │ │ +
│ │ │ │ +inlineconstexpr
│ │ │ │ +
│ │ │ │ + │ │ │ │ +

Definition at line 862 of file ranges_algo.h.

│ │ │ │ + │ │ │ │ +
│ │ │ │ +
│ │ │ │ + │ │ │ │ +

◆ reverse

│ │ │ │ + │ │ │ │ +
│ │ │ │ +
│ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ +
│ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ +
constexpr __reverse_fn std::ranges::reverse
│ │ │ │ +
│ │ │ │ +inlineconstexpr
│ │ │ │ +
│ │ │ │ + │ │ │ │ +

Definition at line 1331 of file ranges_algo.h.

│ │ │ │ + │ │ │ │ +
│ │ │ │ +
│ │ │ │ + │ │ │ │ +

◆ reverse_copy

│ │ │ │ + │ │ │ │ +
│ │ │ │ +
│ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ +
│ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ +
constexpr __reverse_copy_fn std::ranges::reverse_copy
│ │ │ │ +
│ │ │ │ +inlineconstexpr
│ │ │ │ +
│ │ │ │ + │ │ │ │ +

Definition at line 1365 of file ranges_algo.h.

│ │ │ │ + │ │ │ │ +
│ │ │ │ +
│ │ │ │ + │ │ │ │ +

◆ rotate

│ │ │ │ + │ │ │ │ +
│ │ │ │ +
│ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ +
│ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ +
constexpr __rotate_fn std::ranges::rotate
│ │ │ │ +
│ │ │ │ +inlineconstexpr
│ │ │ │ +
│ │ │ │ + │ │ │ │ +

Definition at line 1512 of file ranges_algo.h.

│ │ │ │ + │ │ │ │ +
│ │ │ │ +
│ │ │ │ + │ │ │ │ +

◆ rotate_copy

│ │ │ │ + │ │ │ │ +
│ │ │ │ +
│ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ +
│ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ +
constexpr __rotate_copy_fn std::ranges::rotate_copy
│ │ │ │ +
│ │ │ │ +inlineconstexpr
│ │ │ │ +
│ │ │ │ + │ │ │ │ +

Definition at line 1545 of file ranges_algo.h.

│ │ │ │ + │ │ │ │ +
│ │ │ │ +
│ │ │ │ + │ │ │ │ +

◆ sample

│ │ │ │ + │ │ │ │ +
│ │ │ │ +
│ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ +
│ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ +
constexpr __sample_fn std::ranges::sample
│ │ │ │ +
│ │ │ │ +inlineconstexpr
│ │ │ │ +
│ │ │ │ + │ │ │ │ +

Definition at line 1604 of file ranges_algo.h.

│ │ │ │ + │ │ │ │ +
│ │ │ │ +
│ │ │ │ + │ │ │ │ +

◆ search_n

│ │ │ │ + │ │ │ │ +
│ │ │ │ +
│ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ +
│ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ +
constexpr __search_n_fn std::ranges::search_n
│ │ │ │ +
│ │ │ │ +inlineconstexpr
│ │ │ │ +
│ │ │ │ + │ │ │ │ +

Definition at line 439 of file ranges_algo.h.

│ │ │ │ + │ │ │ │ +
│ │ │ │ +
│ │ │ │ + │ │ │ │ +

◆ set_difference

│ │ │ │ + │ │ │ │ +
│ │ │ │ +
│ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ +
│ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ +
constexpr __set_difference_fn std::ranges::set_difference
│ │ │ │ +
│ │ │ │ +inlineconstexpr
│ │ │ │ +
│ │ │ │ + │ │ │ │ +

Definition at line 2857 of file ranges_algo.h.

│ │ │ │ + │ │ │ │ +
│ │ │ │ +
│ │ │ │ + │ │ │ │ +

◆ set_intersection

│ │ │ │ + │ │ │ │ +
│ │ │ │ +
│ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ +
│ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ +
constexpr __set_intersection_fn std::ranges::set_intersection
│ │ │ │ +
│ │ │ │ +inlineconstexpr
│ │ │ │ +
│ │ │ │ + │ │ │ │ +

Definition at line 2800 of file ranges_algo.h.

│ │ │ │ + │ │ │ │ +
│ │ │ │ +
│ │ │ │ + │ │ │ │ +

◆ set_symmetric_difference

│ │ │ │ + │ │ │ │ +
│ │ │ │ +
│ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ +
│ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ +
constexpr __set_symmetric_difference_fn std::ranges::set_symmetric_difference
│ │ │ │ +
│ │ │ │ +inlineconstexpr
│ │ │ │ +
│ │ │ │ + │ │ │ │ +

Definition at line 2925 of file ranges_algo.h.

│ │ │ │ + │ │ │ │ +
│ │ │ │ +
│ │ │ │ + │ │ │ │ +

◆ set_union

│ │ │ │ + │ │ │ │ +
│ │ │ │ +
│ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ +
│ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ +
constexpr __set_union_fn std::ranges::set_union
│ │ │ │ +
│ │ │ │ +inlineconstexpr
│ │ │ │ +
│ │ │ │ + │ │ │ │ +

Definition at line 2742 of file ranges_algo.h.

│ │ │ │ + │ │ │ │ +
│ │ │ │ +
│ │ │ │ + │ │ │ │ +

◆ shuffle

│ │ │ │ + │ │ │ │ +
│ │ │ │ +
│ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ +
│ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ +
constexpr __shuffle_fn std::ranges::shuffle
│ │ │ │ +
│ │ │ │ +inlineconstexpr
│ │ │ │ +
│ │ │ │ + │ │ │ │ +

Definition at line 1631 of file ranges_algo.h.

│ │ │ │ + │ │ │ │ +
│ │ │ │ +
│ │ │ │ + │ │ │ │ +

◆ sort

│ │ │ │ + │ │ │ │ +
│ │ │ │ +
│ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ +
│ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ +
constexpr __sort_fn std::ranges::sort
│ │ │ │ +
│ │ │ │ +inlineconstexpr
│ │ │ │ +
│ │ │ │ + │ │ │ │ +

Definition at line 1838 of file ranges_algo.h.

│ │ │ │ + │ │ │ │ +
│ │ │ │ +
│ │ │ │ + │ │ │ │ +

◆ sort_heap

│ │ │ │ + │ │ │ │ +
│ │ │ │ +
│ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ +
│ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ +
constexpr __sort_heap_fn std::ranges::sort_heap
│ │ │ │ +
│ │ │ │ +inlineconstexpr
│ │ │ │ +
│ │ │ │ + │ │ │ │ +

Definition at line 1743 of file ranges_algo.h.

│ │ │ │ + │ │ │ │ +
│ │ │ │ +
│ │ │ │ + │ │ │ │ +

◆ stable_partition

│ │ │ │ + │ │ │ │ +
│ │ │ │ +
│ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ +
│ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ +
constexpr __stable_partition_fn std::ranges::stable_partition
│ │ │ │ +
│ │ │ │ +inlineconstexpr
│ │ │ │ +
│ │ │ │ + │ │ │ │ +

Definition at line 2415 of file ranges_algo.h.

│ │ │ │ + │ │ │ │ +
│ │ │ │ +
│ │ │ │ + │ │ │ │ +

◆ stable_sort

│ │ │ │ + │ │ │ │ +
│ │ │ │ +
│ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ +
│ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ +
constexpr __stable_sort_fn std::ranges::stable_sort
│ │ │ │ +
│ │ │ │ +inlineconstexpr
│ │ │ │ +
│ │ │ │ + │ │ │ │ +

Definition at line 1868 of file ranges_algo.h.

│ │ │ │ + │ │ │ │ +
│ │ │ │ +
│ │ │ │ + │ │ │ │ +

◆ swap_ranges

│ │ │ │ + │ │ │ │ +
│ │ │ │ +
│ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ +
│ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ +
constexpr __swap_ranges_fn std::ranges::swap_ranges
│ │ │ │ +
│ │ │ │ +inlineconstexpr
│ │ │ │ +
│ │ │ │ + │ │ │ │ +

Definition at line 685 of file ranges_algo.h.

│ │ │ │ + │ │ │ │ +
│ │ │ │ +
│ │ │ │ + │ │ │ │ +

◆ transform

│ │ │ │ + │ │ │ │ +
│ │ │ │ +
│ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ +
│ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ +
constexpr __transform_fn std::ranges::transform
│ │ │ │ +
│ │ │ │ +inlineconstexpr
│ │ │ │ +
│ │ │ │ + │ │ │ │ +

Definition at line 788 of file ranges_algo.h.

│ │ │ │ + │ │ │ │ +
│ │ │ │ +
│ │ │ │ + │ │ │ │ +

◆ unique

│ │ │ │ + │ │ │ │ +
│ │ │ │ +
│ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ +
│ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ +
constexpr __unique_fn std::ranges::unique
│ │ │ │ +
│ │ │ │ +inlineconstexpr
│ │ │ │ +
│ │ │ │ + │ │ │ │ +

Definition at line 1192 of file ranges_algo.h.

│ │ │ │ + │ │ │ │ +
│ │ │ │ +
│ │ │ │ + │ │ │ │ +

◆ unique_copy

│ │ │ │ + │ │ │ │ +
│ │ │ │ +
│ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ +
│ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ +
constexpr __unique_copy_fn std::ranges::unique_copy
│ │ │ │ +
│ │ │ │ +inlineconstexpr
│ │ │ │ +
│ │ │ │ + │ │ │ │ +

Definition at line 1282 of file ranges_algo.h.

│ │ │ │ + │ │ │ │ +
│ │ │ │ +
│ │ │ │ + │ │ │ │ +

◆ upper_bound

│ │ │ │ + │ │ │ │ +
│ │ │ │ +
│ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ +
│ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ +
constexpr __upper_bound_fn std::ranges::upper_bound
│ │ │ │ +
│ │ │ │ +inlineconstexpr
│ │ │ │ +
│ │ │ │ + │ │ │ │ +

Definition at line 2182 of file ranges_algo.h.

│ │ │ │ + │ │ │ │ +
│ │ │ │ +
│ │ │ │ +
│ │ │ │
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├── html2text {} │ │ │ │ │ @@ -1,50 +1,583 @@ │ │ │ │ │ libstdc++ │ │ │ │ │ -_N_a_m_e_s_p_a_c_e_s | _F_u_n_c_t_i_o_n_s │ │ │ │ │ -stl_construct.h File Reference │ │ │ │ │ +_N_a_m_e_s_p_a_c_e_s | _T_y_p_e_d_e_f_s | _F_u_n_c_t_i_o_n_s | _V_a_r_i_a_b_l_e_s │ │ │ │ │ +ranges_algo.h File Reference │ │ │ │ │ _G_o_ _t_o_ _t_h_e_ _s_o_u_r_c_e_ _c_o_d_e_ _o_f_ _t_h_i_s_ _f_i_l_e_. │ │ │ │ │ NNaammeessppaacceess │ │ │ │ │ namespace   _s_t_d │ │ │ │ │   │ │ │ │ │ -FFuunnccttiioonnss │ │ │ │ │ -template │ │ │ │ │ - constexpr void  _s_t_d_:_:___C_o_n_s_t_r_u_c_t (_Tp *__p, _Args &&... __args) │ │ │ │ │ +TTyyppeeddeeffss │ │ │ │ │ +template │ │ │ │ │ +using  _s_t_d_:_:_r_a_n_g_e_s_:_:_b_i_n_a_r_y___t_r_a_n_s_f_o_r_m___r_e_s_u_l_t = in_in_out_result< _Iter1, _Iter2, │ │ │ │ │ + _Out > │ │ │ │ │   │ │ │ │ │ -template │ │ │ │ │ - _GLIBCXX26_CONSTEXPR void  _s_t_d_:_:___C_o_n_s_t_r_u_c_t___n_o_v_a_l_u_e (_T1 *__p) │ │ │ │ │ +template │ │ │ │ │ +using  _s_t_d_:_:_r_a_n_g_e_s_:_:_c_o_p_y___i_f___r_e_s_u_l_t = in_out_result< _Iter, _Out > │ │ │ │ │   │ │ │ │ │ -template │ │ │ │ │ - constexpr void  _s_t_d_:_:___D_e_s_t_r_o_y (_ForwardIterator __first, │ │ │ │ │ - _ForwardIterator __last) │ │ │ │ │ +template │ │ │ │ │ +using  _s_t_d_:_:_r_a_n_g_e_s_:_:_f_o_r___e_a_c_h___n___r_e_s_u_l_t = in_fun_result< _Iter, _Fp > │ │ │ │ │ +  │ │ │ │ │ +template │ │ │ │ │ +using  _s_t_d_:_:_r_a_n_g_e_s_:_:_f_o_r___e_a_c_h___r_e_s_u_l_t = in_fun_result< _Iter, _Fp > │ │ │ │ │ +  │ │ │ │ │ +template │ │ │ │ │ +using  _s_t_d_:_:_r_a_n_g_e_s_:_:_m_e_r_g_e___r_e_s_u_l_t = in_in_out_result< _Iter1, _Iter2, _Out > │ │ │ │ │ +  │ │ │ │ │ +template │ │ │ │ │ +using  _s_t_d_:_:_r_a_n_g_e_s_:_:_m_i_n_m_a_x___e_l_e_m_e_n_t___r_e_s_u_l_t = min_max_result< _Iter > │ │ │ │ │   │ │ │ │ │ template │ │ │ │ │ - constexpr void  _s_t_d_:_:___D_e_s_t_r_o_y (_Tp *__pointer) │ │ │ │ │ +using  _s_t_d_:_:_r_a_n_g_e_s_:_:_m_i_n_m_a_x___r_e_s_u_l_t = min_max_result< _Tp > │ │ │ │ │ +  │ │ │ │ │ +template │ │ │ │ │ +using  _s_t_d_:_:_r_a_n_g_e_s_:_:_n_e_x_t___p_e_r_m_u_t_a_t_i_o_n___r_e_s_u_l_t = in_found_result< _Iter > │ │ │ │ │ +  │ │ │ │ │ +template │ │ │ │ │ +using  _s_t_d_:_:_r_a_n_g_e_s_:_:_p_a_r_t_i_a_l___s_o_r_t___c_o_p_y___r_e_s_u_l_t = in_out_result< _Iter, _Out > │ │ │ │ │ +  │ │ │ │ │ +template │ │ │ │ │ +using  _s_t_d_:_:_r_a_n_g_e_s_:_:_p_a_r_t_i_t_i_o_n___c_o_p_y___r_e_s_u_l_t = in_out_out_result< _Iter, _Out1, │ │ │ │ │ + _Out2 > │ │ │ │ │ +  │ │ │ │ │ +template │ │ │ │ │ +using  _s_t_d_:_:_r_a_n_g_e_s_:_:_p_r_e_v___p_e_r_m_u_t_a_t_i_o_n___r_e_s_u_l_t = in_found_result< _Iter > │ │ │ │ │ +  │ │ │ │ │ +template │ │ │ │ │ +using  _s_t_d_:_:_r_a_n_g_e_s_:_:_r_e_m_o_v_e___c_o_p_y___i_f___r_e_s_u_l_t = in_out_result< _Iter, _Out > │ │ │ │ │ +  │ │ │ │ │ +template │ │ │ │ │ +using  _s_t_d_:_:_r_a_n_g_e_s_:_:_r_e_m_o_v_e___c_o_p_y___r_e_s_u_l_t = in_out_result< _Iter, _Out > │ │ │ │ │ +  │ │ │ │ │ +template │ │ │ │ │ +using  _s_t_d_:_:_r_a_n_g_e_s_:_:_r_e_p_l_a_c_e___c_o_p_y___i_f___r_e_s_u_l_t = in_out_result< _Iter, _Out > │ │ │ │ │ +  │ │ │ │ │ +template │ │ │ │ │ +using  _s_t_d_:_:_r_a_n_g_e_s_:_:_r_e_p_l_a_c_e___c_o_p_y___r_e_s_u_l_t = in_out_result< _Iter, _Out > │ │ │ │ │ +  │ │ │ │ │ +template │ │ │ │ │ +using  _s_t_d_:_:_r_a_n_g_e_s_:_:_r_e_v_e_r_s_e___c_o_p_y___r_e_s_u_l_t = in_out_result< _Iter, _Out > │ │ │ │ │ +  │ │ │ │ │ +template │ │ │ │ │ +using  _s_t_d_:_:_r_a_n_g_e_s_:_:_r_o_t_a_t_e___c_o_p_y___r_e_s_u_l_t = in_out_result< _Iter, _Out > │ │ │ │ │ +  │ │ │ │ │ +template │ │ │ │ │ +using  _s_t_d_:_:_r_a_n_g_e_s_:_:_s_e_t___d_i_f_f_e_r_e_n_c_e___r_e_s_u_l_t = in_out_result< _Iter, _Out > │ │ │ │ │ +  │ │ │ │ │ +template │ │ │ │ │ +using  _s_t_d_:_:_r_a_n_g_e_s_:_:_s_e_t___i_n_t_e_r_s_e_c_t_i_o_n___r_e_s_u_l_t = in_in_out_result< _Iter1, _Iter2, │ │ │ │ │ + _Out > │ │ │ │ │ +  │ │ │ │ │ +template │ │ │ │ │ +using  _s_t_d_:_:_r_a_n_g_e_s_:_:_s_e_t___s_y_m_m_e_t_r_i_c___d_i_f_f_e_r_e_n_c_e___r_e_s_u_l_t = in_in_out_result< _Iter1, │ │ │ │ │ + _Iter2, _Out > │ │ │ │ │ +  │ │ │ │ │ +template │ │ │ │ │ +using  _s_t_d_:_:_r_a_n_g_e_s_:_:_s_e_t___u_n_i_o_n___r_e_s_u_l_t = in_in_out_result< _Iter1, _Iter2, _Out > │ │ │ │ │ +  │ │ │ │ │ +template │ │ │ │ │ +using  _s_t_d_:_:_r_a_n_g_e_s_:_:_s_w_a_p___r_a_n_g_e_s___r_e_s_u_l_t = in_in_result< _Iter1, _Iter2 > │ │ │ │ │ +  │ │ │ │ │ +template │ │ │ │ │ +using  _s_t_d_:_:_r_a_n_g_e_s_:_:_u_n_a_r_y___t_r_a_n_s_f_o_r_m___r_e_s_u_l_t = in_out_result< _Iter, _Out > │ │ │ │ │ +  │ │ │ │ │ +template │ │ │ │ │ +using  _s_t_d_:_:_r_a_n_g_e_s_:_:_u_n_i_q_u_e___c_o_p_y___r_e_s_u_l_t = in_out_result< _Iter, _Out > │ │ │ │ │ +  │ │ │ │ │ +FFuunnccttiioonnss │ │ │ │ │ +template │ │ │ │ │ + constexpr auto  _s_t_d_:_:_r_a_n_g_e_s_:_:_____d_e_t_a_i_l_:_:_____m_a_k_e___c_o_m_p___p_r_o_j (_Comp │ │ │ │ │ + &__comp, _Proj &__proj) │ │ │ │ │   │ │ │ │ │ -template │ │ │ │ │ -constexpr _ForwardIterator  _s_t_d_:_:___D_e_s_t_r_o_y___n (_ForwardIterator __first, _Size │ │ │ │ │ - __count) │ │ │ │ │ -  │ │ │ │ │ -template │ │ │ │ │ -requires (!is_unbounded_array_v<_Tp>) && requires { ::new((void*)0) _Tp(_s_t_d_:_: │ │ │ │ │ -_d_e_c_l_v_a_l<_Args>()...); } │ │ │ │ │ - constexpr _Tp *  _s_t_d_:_:_c_o_n_s_t_r_u_c_t___a_t (_Tp *__location, _Args &&... │ │ │ │ │ - __args) noexcept(noexcept(::new((void *) 0) _Tp │ │ │ │ │ - (_s_t_d_:_:_d_e_c_l_v_a_l< _Args >()...))) │ │ │ │ │ +template │ │ │ │ │ + constexpr auto  _s_t_d_:_:_r_a_n_g_e_s_:_:_____d_e_t_a_i_l_:_:_____m_a_k_e___p_r_e_d___p_r_o_j (_Pred │ │ │ │ │ + &__pred, _Proj &__proj) │ │ │ │ │   │ │ │ │ │ template │ │ │ │ │ - constexpr void  _s_t_d_:_:_d_e_s_t_r_o_y (_ForwardIterator __first, │ │ │ │ │ - _ForwardIterator __last) │ │ │ │ │ +constexpr _ForwardIterator  _s_t_d_:_:_s_h_i_f_t___l_e_f_t (_ForwardIterator __first, │ │ │ │ │ + _ForwardIterator __last, typename _i_t_e_r_a_t_o_r___t_r_a_i_t_s< │ │ │ │ │ + _ForwardIterator >::difference_type __n) │ │ │ │ │   │ │ │ │ │ -template │ │ │ │ │ - constexpr void  _s_t_d_:_:_d_e_s_t_r_o_y___a_t (_Tp *__location) │ │ │ │ │ +template │ │ │ │ │ +constexpr _ForwardIterator  _s_t_d_:_:_s_h_i_f_t___r_i_g_h_t (_ForwardIterator __first, │ │ │ │ │ + _ForwardIterator __last, typename _i_t_e_r_a_t_o_r___t_r_a_i_t_s< │ │ │ │ │ + _ForwardIterator >::difference_type __n) │ │ │ │ │ +  │ │ │ │ │ +VVaarriiaabblleess │ │ │ │ │ + constexpr __all_of_fn  _s_t_d_:_:_r_a_n_g_e_s_:_:_a_l_l___o_f │ │ │ │ │ +  │ │ │ │ │ + constexpr __any_of_fn  _s_t_d_:_:_r_a_n_g_e_s_:_:_a_n_y___o_f │ │ │ │ │ +  │ │ │ │ │ + constexpr __binary_search_fn  _s_t_d_:_:_r_a_n_g_e_s_:_:_b_i_n_a_r_y___s_e_a_r_c_h │ │ │ │ │ +  │ │ │ │ │ + constexpr __clamp_fn  _s_t_d_:_:_r_a_n_g_e_s_:_:_c_l_a_m_p │ │ │ │ │ +  │ │ │ │ │ + constexpr __copy_if_fn  _s_t_d_:_:_r_a_n_g_e_s_:_:_c_o_p_y___i_f │ │ │ │ │ +  │ │ │ │ │ + constexpr __count_fn  _s_t_d_:_:_r_a_n_g_e_s_:_:_c_o_u_n_t │ │ │ │ │ +  │ │ │ │ │ + constexpr __count_if_fn  _s_t_d_:_:_r_a_n_g_e_s_:_:_c_o_u_n_t___i_f │ │ │ │ │ +  │ │ │ │ │ + constexpr __equal_range_fn  _s_t_d_:_:_r_a_n_g_e_s_:_:_e_q_u_a_l___r_a_n_g_e │ │ │ │ │ +  │ │ │ │ │ + constexpr __find_end_fn  _s_t_d_:_:_r_a_n_g_e_s_:_:_f_i_n_d___e_n_d │ │ │ │ │ +  │ │ │ │ │ + constexpr __find_first_of_fn  _s_t_d_:_:_r_a_n_g_e_s_:_:_f_i_n_d___f_i_r_s_t___o_f │ │ │ │ │ +  │ │ │ │ │ + constexpr __for_each_fn  _s_t_d_:_:_r_a_n_g_e_s_:_:_f_o_r___e_a_c_h │ │ │ │ │ +  │ │ │ │ │ + constexpr __for_each_n_fn  _s_t_d_:_:_r_a_n_g_e_s_:_:_f_o_r___e_a_c_h___n │ │ │ │ │ +  │ │ │ │ │ + constexpr __generate_fn  _s_t_d_:_:_r_a_n_g_e_s_:_:_g_e_n_e_r_a_t_e │ │ │ │ │ +  │ │ │ │ │ + constexpr __generate_n_fn  _s_t_d_:_:_r_a_n_g_e_s_:_:_g_e_n_e_r_a_t_e___n │ │ │ │ │ +  │ │ │ │ │ + constexpr __includes_fn  _s_t_d_:_:_r_a_n_g_e_s_:_:_i_n_c_l_u_d_e_s │ │ │ │ │ +  │ │ │ │ │ + constexpr __inplace_merge_fn  _s_t_d_:_:_r_a_n_g_e_s_:_:_i_n_p_l_a_c_e___m_e_r_g_e │ │ │ │ │ +  │ │ │ │ │ + constexpr __is_heap_fn  _s_t_d_:_:_r_a_n_g_e_s_:_:_i_s___h_e_a_p │ │ │ │ │ +  │ │ │ │ │ + constexpr __is_heap_until_fn  _s_t_d_:_:_r_a_n_g_e_s_:_:_i_s___h_e_a_p___u_n_t_i_l │ │ │ │ │ +  │ │ │ │ │ + constexpr __is_partitioned_fn  _s_t_d_:_:_r_a_n_g_e_s_:_:_i_s___p_a_r_t_i_t_i_o_n_e_d │ │ │ │ │ +  │ │ │ │ │ + constexpr __is_permutation_fn  _s_t_d_:_:_r_a_n_g_e_s_:_:_i_s___p_e_r_m_u_t_a_t_i_o_n │ │ │ │ │ +  │ │ │ │ │ + constexpr __is_sorted_fn  _s_t_d_:_:_r_a_n_g_e_s_:_:_i_s___s_o_r_t_e_d │ │ │ │ │ +  │ │ │ │ │ + constexpr __is_sorted_until_fn  _s_t_d_:_:_r_a_n_g_e_s_:_:_i_s___s_o_r_t_e_d___u_n_t_i_l │ │ │ │ │   │ │ │ │ │ -template │ │ │ │ │ -constexpr _ForwardIterator  _s_t_d_:_:_d_e_s_t_r_o_y___n (_ForwardIterator __first, _Size │ │ │ │ │ - __count) │ │ │ │ │ + constexpr __lexicographical_compare_fn  _s_t_d_:_:_r_a_n_g_e_s_:_:_l_e_x_i_c_o_g_r_a_p_h_i_c_a_l___c_o_m_p_a_r_e │ │ │ │ │ +  │ │ │ │ │ + constexpr __lower_bound_fn  _s_t_d_:_:_r_a_n_g_e_s_:_:_l_o_w_e_r___b_o_u_n_d │ │ │ │ │ +  │ │ │ │ │ + constexpr __make_heap_fn  _s_t_d_:_:_r_a_n_g_e_s_:_:_m_a_k_e___h_e_a_p │ │ │ │ │ +  │ │ │ │ │ + constexpr __max_fn  _s_t_d_:_:_r_a_n_g_e_s_:_:_m_a_x │ │ │ │ │ +  │ │ │ │ │ + constexpr __max_element_fn  _s_t_d_:_:_r_a_n_g_e_s_:_:_m_a_x___e_l_e_m_e_n_t │ │ │ │ │ +  │ │ │ │ │ + constexpr __merge_fn  _s_t_d_:_:_r_a_n_g_e_s_:_:_m_e_r_g_e │ │ │ │ │ +  │ │ │ │ │ + constexpr __min_element_fn  _s_t_d_:_:_r_a_n_g_e_s_:_:_m_i_n___e_l_e_m_e_n_t │ │ │ │ │ +  │ │ │ │ │ + constexpr __minmax_fn  _s_t_d_:_:_r_a_n_g_e_s_:_:_m_i_n_m_a_x │ │ │ │ │ +  │ │ │ │ │ + constexpr __minmax_element_fn  _s_t_d_:_:_r_a_n_g_e_s_:_:_m_i_n_m_a_x___e_l_e_m_e_n_t │ │ │ │ │ +  │ │ │ │ │ + constexpr __next_permutation_fn  _s_t_d_:_:_r_a_n_g_e_s_:_:_n_e_x_t___p_e_r_m_u_t_a_t_i_o_n │ │ │ │ │ +  │ │ │ │ │ + constexpr __none_of_fn  _s_t_d_:_:_r_a_n_g_e_s_:_:_n_o_n_e___o_f │ │ │ │ │ +  │ │ │ │ │ + constexpr __nth_element_fn  _s_t_d_:_:_r_a_n_g_e_s_:_:_n_t_h___e_l_e_m_e_n_t │ │ │ │ │ +  │ │ │ │ │ + constexpr __partial_sort_fn  _s_t_d_:_:_r_a_n_g_e_s_:_:_p_a_r_t_i_a_l___s_o_r_t │ │ │ │ │ +  │ │ │ │ │ + constexpr __partial_sort_copy_fn  _s_t_d_:_:_r_a_n_g_e_s_:_:_p_a_r_t_i_a_l___s_o_r_t___c_o_p_y │ │ │ │ │ +  │ │ │ │ │ + constexpr __partition_fn  _s_t_d_:_:_r_a_n_g_e_s_:_:_p_a_r_t_i_t_i_o_n │ │ │ │ │ +  │ │ │ │ │ + constexpr __partition_copy_fn  _s_t_d_:_:_r_a_n_g_e_s_:_:_p_a_r_t_i_t_i_o_n___c_o_p_y │ │ │ │ │ +  │ │ │ │ │ + constexpr __partition_point_fn  _s_t_d_:_:_r_a_n_g_e_s_:_:_p_a_r_t_i_t_i_o_n___p_o_i_n_t │ │ │ │ │ +  │ │ │ │ │ + constexpr __pop_heap_fn  _s_t_d_:_:_r_a_n_g_e_s_:_:_p_o_p___h_e_a_p │ │ │ │ │ +  │ │ │ │ │ + constexpr __prev_permutation_fn  _s_t_d_:_:_r_a_n_g_e_s_:_:_p_r_e_v___p_e_r_m_u_t_a_t_i_o_n │ │ │ │ │ +  │ │ │ │ │ + constexpr __push_heap_fn  _s_t_d_:_:_r_a_n_g_e_s_:_:_p_u_s_h___h_e_a_p │ │ │ │ │ +  │ │ │ │ │ + constexpr __remove_fn  _s_t_d_:_:_r_a_n_g_e_s_:_:_r_e_m_o_v_e │ │ │ │ │ +  │ │ │ │ │ + constexpr __remove_copy_fn  _s_t_d_:_:_r_a_n_g_e_s_:_:_r_e_m_o_v_e___c_o_p_y │ │ │ │ │ +  │ │ │ │ │ + constexpr __remove_copy_if_fn  _s_t_d_:_:_r_a_n_g_e_s_:_:_r_e_m_o_v_e___c_o_p_y___i_f │ │ │ │ │ +  │ │ │ │ │ + constexpr __remove_if_fn  _s_t_d_:_:_r_a_n_g_e_s_:_:_r_e_m_o_v_e___i_f │ │ │ │ │ +  │ │ │ │ │ + constexpr __replace_fn  _s_t_d_:_:_r_a_n_g_e_s_:_:_r_e_p_l_a_c_e │ │ │ │ │ +  │ │ │ │ │ + constexpr __replace_copy_fn  _s_t_d_:_:_r_a_n_g_e_s_:_:_r_e_p_l_a_c_e___c_o_p_y │ │ │ │ │ +  │ │ │ │ │ + constexpr __replace_copy_if_fn  _s_t_d_:_:_r_a_n_g_e_s_:_:_r_e_p_l_a_c_e___c_o_p_y___i_f │ │ │ │ │ +  │ │ │ │ │ + constexpr __replace_if_fn  _s_t_d_:_:_r_a_n_g_e_s_:_:_r_e_p_l_a_c_e___i_f │ │ │ │ │ +  │ │ │ │ │ + constexpr __reverse_fn  _s_t_d_:_:_r_a_n_g_e_s_:_:_r_e_v_e_r_s_e │ │ │ │ │ +  │ │ │ │ │ + constexpr __reverse_copy_fn  _s_t_d_:_:_r_a_n_g_e_s_:_:_r_e_v_e_r_s_e___c_o_p_y │ │ │ │ │ +  │ │ │ │ │ + constexpr __rotate_fn  _s_t_d_:_:_r_a_n_g_e_s_:_:_r_o_t_a_t_e │ │ │ │ │ +  │ │ │ │ │ + constexpr __rotate_copy_fn  _s_t_d_:_:_r_a_n_g_e_s_:_:_r_o_t_a_t_e___c_o_p_y │ │ │ │ │ +  │ │ │ │ │ + constexpr __sample_fn  _s_t_d_:_:_r_a_n_g_e_s_:_:_s_a_m_p_l_e │ │ │ │ │ +  │ │ │ │ │ + constexpr __search_n_fn  _s_t_d_:_:_r_a_n_g_e_s_:_:_s_e_a_r_c_h___n │ │ │ │ │ +  │ │ │ │ │ + constexpr __set_difference_fn  _s_t_d_:_:_r_a_n_g_e_s_:_:_s_e_t___d_i_f_f_e_r_e_n_c_e │ │ │ │ │ +  │ │ │ │ │ + constexpr __set_intersection_fn  _s_t_d_:_:_r_a_n_g_e_s_:_:_s_e_t___i_n_t_e_r_s_e_c_t_i_o_n │ │ │ │ │ +  │ │ │ │ │ +constexpr __set_symmetric_difference_fn  _s_t_d_:_:_r_a_n_g_e_s_:_:_s_e_t___s_y_m_m_e_t_r_i_c___d_i_f_f_e_r_e_n_c_e │ │ │ │ │ +  │ │ │ │ │ + constexpr __set_union_fn  _s_t_d_:_:_r_a_n_g_e_s_:_:_s_e_t___u_n_i_o_n │ │ │ │ │ +  │ │ │ │ │ + constexpr __shuffle_fn  _s_t_d_:_:_r_a_n_g_e_s_:_:_s_h_u_f_f_l_e │ │ │ │ │ +  │ │ │ │ │ + constexpr __sort_fn  _s_t_d_:_:_r_a_n_g_e_s_:_:_s_o_r_t │ │ │ │ │ +  │ │ │ │ │ + constexpr __sort_heap_fn  _s_t_d_:_:_r_a_n_g_e_s_:_:_s_o_r_t___h_e_a_p │ │ │ │ │ +  │ │ │ │ │ + constexpr __stable_partition_fn  _s_t_d_:_:_r_a_n_g_e_s_:_:_s_t_a_b_l_e___p_a_r_t_i_t_i_o_n │ │ │ │ │ +  │ │ │ │ │ + constexpr __stable_sort_fn  _s_t_d_:_:_r_a_n_g_e_s_:_:_s_t_a_b_l_e___s_o_r_t │ │ │ │ │ +  │ │ │ │ │ + constexpr __swap_ranges_fn  _s_t_d_:_:_r_a_n_g_e_s_:_:_s_w_a_p___r_a_n_g_e_s │ │ │ │ │ +  │ │ │ │ │ + constexpr __transform_fn  _s_t_d_:_:_r_a_n_g_e_s_:_:_t_r_a_n_s_f_o_r_m │ │ │ │ │ +  │ │ │ │ │ + constexpr __unique_fn  _s_t_d_:_:_r_a_n_g_e_s_:_:_u_n_i_q_u_e │ │ │ │ │ +  │ │ │ │ │ + constexpr __unique_copy_fn  _s_t_d_:_:_r_a_n_g_e_s_:_:_u_n_i_q_u_e___c_o_p_y │ │ │ │ │ +  │ │ │ │ │ + constexpr __upper_bound_fn  _s_t_d_:_:_r_a_n_g_e_s_:_:_u_p_p_e_r___b_o_u_n_d │ │ │ │ │   │ │ │ │ │ ********** DDeettaaiilleedd DDeessccrriippttiioonn ********** │ │ │ │ │ This is an internal header file, included by other library headers. Do not │ │ │ │ │ -attempt to use it directly. Instead, include . │ │ │ │ │ -Definition in file _s_t_l___c_o_n_s_t_r_u_c_t_._h. │ │ │ │ │ +attempt to use it directly. Instead, include . │ │ │ │ │ +Definition in file _r_a_n_g_e_s___a_l_g_o_._h. │ │ │ │ │ +********** TTyyppeeddeeff DDooccuummeennttaattiioonn ********** │ │ │ │ │ +********** _?◆_? bbiinnaarryy__ttrraannssffoorrmm__rreessuulltt ********** │ │ │ │ │ +template │ │ │ │ │ +using std::ranges::binary_transform_result = typedef in_in_out_result<_Iter1, │ │ │ │ │ +_Iter2, _Out> │ │ │ │ │ +Definition at line _7_1_5 of file _r_a_n_g_e_s___a_l_g_o_._h. │ │ │ │ │ +********** _?◆_? ccooppyy__iiff__rreessuulltt ********** │ │ │ │ │ +template │ │ │ │ │ +using std::ranges::copy_if_result = typedef in_out_result<_Iter, _Out> │ │ │ │ │ +Definition at line _6_1_8 of file _r_a_n_g_e_s___a_l_g_o_._h. │ │ │ │ │ +********** _?◆_? ffoorr__eeaacchh__nn__rreessuulltt ********** │ │ │ │ │ +template │ │ │ │ │ +using std::ranges::for_each_n_result = typedef in_fun_result<_Iter, _Fp> │ │ │ │ │ +Definition at line _2_0_8 of file _r_a_n_g_e_s___a_l_g_o_._h. │ │ │ │ │ +********** _?◆_? ffoorr__eeaacchh__rreessuulltt ********** │ │ │ │ │ +template │ │ │ │ │ +using std::ranges::for_each_result = typedef in_fun_result<_Iter, _Fp> │ │ │ │ │ +Definition at line _1_7_9 of file _r_a_n_g_e_s___a_l_g_o_._h. │ │ │ │ │ +********** _?◆_? mmeerrggee__rreessuulltt ********** │ │ │ │ │ +template │ │ │ │ │ +using std::ranges::merge_result = typedef in_in_out_result<_Iter1, _Iter2, │ │ │ │ │ +_Out> │ │ │ │ │ +Definition at line _2_5_3_5 of file _r_a_n_g_e_s___a_l_g_o_._h. │ │ │ │ │ +********** _?◆_? mmiinnmmaaxx__eelleemmeenntt__rreessuulltt ********** │ │ │ │ │ +template │ │ │ │ │ +using std::ranges::minmax_element_result = typedef min_max_result<_Iter> │ │ │ │ │ +Definition at line _3_1_9_9 of file _r_a_n_g_e_s___a_l_g_o_._h. │ │ │ │ │ +********** _?◆_? mmiinnmmaaxx__rreessuulltt ********** │ │ │ │ │ +template │ │ │ │ │ +using std::ranges::minmax_result = typedef min_max_result<_Tp> │ │ │ │ │ +Definition at line _3_0_3_1 of file _r_a_n_g_e_s___a_l_g_o_._h. │ │ │ │ │ +********** _?◆_? nneexxtt__ppeerrmmuuttaattiioonn__rreessuulltt ********** │ │ │ │ │ +template │ │ │ │ │ +using std::ranges::next_permutation_result = typedef in_found_result<_Iter> │ │ │ │ │ +Definition at line _3_4_0_4 of file _r_a_n_g_e_s___a_l_g_o_._h. │ │ │ │ │ +********** _?◆_? ppaarrttiiaall__ssoorrtt__ccooppyy__rreessuulltt ********** │ │ │ │ │ +template │ │ │ │ │ +using std::ranges::partial_sort_copy_result = typedef in_out_result<_Iter, │ │ │ │ │ +_Out> │ │ │ │ │ +Definition at line _1_9_1_4 of file _r_a_n_g_e_s___a_l_g_o_._h. │ │ │ │ │ +********** _?◆_? ppaarrttiittiioonn__ccooppyy__rreessuulltt ********** │ │ │ │ │ +template │ │ │ │ │ +using std::ranges::partition_copy_result = typedef in_out_out_result<_Iter, │ │ │ │ │ +_Out1, _Out2> │ │ │ │ │ +Definition at line _2_4_4_3 of file _r_a_n_g_e_s___a_l_g_o_._h. │ │ │ │ │ +********** _?◆_? pprreevv__ppeerrmmuuttaattiioonn__rreessuulltt ********** │ │ │ │ │ +template │ │ │ │ │ +using std::ranges::prev_permutation_result = typedef in_found_result<_Iter> │ │ │ │ │ +Definition at line _3_4_6_6 of file _r_a_n_g_e_s___a_l_g_o_._h. │ │ │ │ │ +********** _?◆_? rreemmoovvee__ccooppyy__iiff__rreessuulltt ********** │ │ │ │ │ +template │ │ │ │ │ +using std::ranges::remove_copy_if_result = typedef in_out_result<_Iter, _Out> │ │ │ │ │ +Definition at line _1_0_7_4 of file _r_a_n_g_e_s___a_l_g_o_._h. │ │ │ │ │ +********** _?◆_? rreemmoovvee__ccooppyy__rreessuulltt ********** │ │ │ │ │ +template │ │ │ │ │ +using std::ranges::remove_copy_result = typedef in_out_result<_Iter, _Out> │ │ │ │ │ +Definition at line _1_1_1_3 of file _r_a_n_g_e_s___a_l_g_o_._h. │ │ │ │ │ +********** _?◆_? rreeppllaaccee__ccooppyy__iiff__rreessuulltt ********** │ │ │ │ │ +template │ │ │ │ │ +using std::ranges::replace_copy_if_result = typedef in_out_result<_Iter, _Out> │ │ │ │ │ +Definition at line _9_1_4 of file _r_a_n_g_e_s___a_l_g_o_._h. │ │ │ │ │ +********** _?◆_? rreeppllaaccee__ccooppyy__rreessuulltt ********** │ │ │ │ │ +template │ │ │ │ │ +using std::ranges::replace_copy_result = typedef in_out_result<_Iter, _Out> │ │ │ │ │ +Definition at line _8_6_5 of file _r_a_n_g_e_s___a_l_g_o_._h. │ │ │ │ │ +********** _?◆_? rreevveerrssee__ccooppyy__rreessuulltt ********** │ │ │ │ │ +template │ │ │ │ │ +using std::ranges::reverse_copy_result = typedef in_out_result<_Iter, _Out> │ │ │ │ │ +Definition at line _1_3_3_4 of file _r_a_n_g_e_s___a_l_g_o_._h. │ │ │ │ │ +********** _?◆_? rroottaattee__ccooppyy__rreessuulltt ********** │ │ │ │ │ +template │ │ │ │ │ +using std::ranges::rotate_copy_result = typedef in_out_result<_Iter, _Out> │ │ │ │ │ +Definition at line _1_5_1_5 of file _r_a_n_g_e_s___a_l_g_o_._h. │ │ │ │ │ +********** _?◆_? sseett__ddiiffffeerreennccee__rreessuulltt ********** │ │ │ │ │ +template │ │ │ │ │ +using std::ranges::set_difference_result = typedef in_out_result<_Iter, _Out> │ │ │ │ │ +Definition at line _2_8_0_3 of file _r_a_n_g_e_s___a_l_g_o_._h. │ │ │ │ │ +********** _?◆_? sseett__iinntteerrsseeccttiioonn__rreessuulltt ********** │ │ │ │ │ +template │ │ │ │ │ +using std::ranges::set_intersection_result = typedef in_in_out_result<_Iter1, │ │ │ │ │ +_Iter2, _Out> │ │ │ │ │ +Definition at line _2_7_4_5 of file _r_a_n_g_e_s___a_l_g_o_._h. │ │ │ │ │ +********** _?◆_? sseett__ssyymmmmeettrriicc__ddiiffffeerreennccee__rreessuulltt ********** │ │ │ │ │ +template │ │ │ │ │ +using std::ranges::set_symmetric_difference_result = typedef │ │ │ │ │ +in_in_out_result<_Iter1, _Iter2, _Out> │ │ │ │ │ +Definition at line _2_8_6_0 of file _r_a_n_g_e_s___a_l_g_o_._h. │ │ │ │ │ +********** _?◆_? sseett__uunniioonn__rreessuulltt ********** │ │ │ │ │ +template │ │ │ │ │ +using std::ranges::set_union_result = typedef in_in_out_result<_Iter1, _Iter2, │ │ │ │ │ +_Out> │ │ │ │ │ +Definition at line _2_6_7_7 of file _r_a_n_g_e_s___a_l_g_o_._h. │ │ │ │ │ +********** _?◆_? sswwaapp__rraannggeess__rreessuulltt ********** │ │ │ │ │ +template │ │ │ │ │ +using std::ranges::swap_ranges_result = typedef in_in_result<_Iter1, _Iter2> │ │ │ │ │ +Definition at line _6_5_7 of file _r_a_n_g_e_s___a_l_g_o_._h. │ │ │ │ │ +********** _?◆_? uunnaarryy__ttrraannssffoorrmm__rreessuulltt ********** │ │ │ │ │ +template │ │ │ │ │ +using std::ranges::unary_transform_result = typedef in_out_result<_Iter, _Out> │ │ │ │ │ +Definition at line _6_8_8 of file _r_a_n_g_e_s___a_l_g_o_._h. │ │ │ │ │ +********** _?◆_? uunniiqquuee__ccooppyy__rreessuulltt ********** │ │ │ │ │ +template │ │ │ │ │ +using std::ranges::unique_copy_result = typedef in_out_result<_Iter, _Out> │ │ │ │ │ +Definition at line _1_2_0_2 of file _r_a_n_g_e_s___a_l_g_o_._h. │ │ │ │ │ +********** FFuunnccttiioonn DDooccuummeennttaattiioonn ********** │ │ │ │ │ +********** _?◆_? ____mmaakkee__ccoommpp__pprroojj(()) ********** │ │ │ │ │ +template │ │ │ │ │ +constexpr auto std::ranges::__detail:: ( _Comp &  ____ccoommpp, │ │ │ │ │ +__make_comp_proj constexpr │ │ │ │ │ + _Proj &  ____pprroojj  │ │ │ │ │ + ) │ │ │ │ │ +Definition at line _5_2 of file _r_a_n_g_e_s___a_l_g_o_._h. │ │ │ │ │ +********** _?◆_? ____mmaakkee__pprreedd__pprroojj(()) ********** │ │ │ │ │ +template │ │ │ │ │ +constexpr auto std::ranges::__detail:: ( _Pred &  ____pprreedd, │ │ │ │ │ +__make_pred_proj constexpr │ │ │ │ │ + _Proj &  ____pprroojj  │ │ │ │ │ + ) │ │ │ │ │ +Definition at line _6_5 of file _r_a_n_g_e_s___a_l_g_o_._h. │ │ │ │ │ +********** VVaarriiaabbllee DDooccuummeennttaattiioonn ********** │ │ │ │ │ +********** _?◆_? aallll__ooff ********** │ │ │ │ │ +constexpr __all_of_fn std::ranges::all_of inlineconstexpr │ │ │ │ │ +Definition at line _1_0_0 of file _r_a_n_g_e_s___a_l_g_o_._h. │ │ │ │ │ +********** _?◆_? aannyy__ooff ********** │ │ │ │ │ +constexpr __any_of_fn std::ranges::any_of inlineconstexpr │ │ │ │ │ +Definition at line _1_2_8 of file _r_a_n_g_e_s___a_l_g_o_._h. │ │ │ │ │ +********** _?◆_? bbiinnaarryy__sseeaarrcchh ********** │ │ │ │ │ +constexpr __binary_search_fn std::ranges::binary_search inlineconstexpr │ │ │ │ │ +Definition at line _2_2_8_1 of file _r_a_n_g_e_s___a_l_g_o_._h. │ │ │ │ │ +********** _?◆_? ccllaammpp ********** │ │ │ │ │ +constexpr __clamp_fn std::ranges::clamp inlineconstexpr │ │ │ │ │ +Definition at line _3_0_0_9 of file _r_a_n_g_e_s___a_l_g_o_._h. │ │ │ │ │ +********** _?◆_? ccooppyy__iiff ********** │ │ │ │ │ +constexpr __copy_if_fn std::ranges::copy_if inlineconstexpr │ │ │ │ │ +Definition at line _6_5_4 of file _r_a_n_g_e_s___a_l_g_o_._h. │ │ │ │ │ +********** _?◆_? ccoouunntt ********** │ │ │ │ │ +constexpr __count_fn std::ranges::count inlineconstexpr │ │ │ │ │ +Definition at line _3_1_4 of file _r_a_n_g_e_s___a_l_g_o_._h. │ │ │ │ │ +********** _?◆_? ccoouunntt__iiff ********** │ │ │ │ │ +constexpr __count_if_fn std::ranges::count_if inlineconstexpr │ │ │ │ │ +Definition at line _3_4_4 of file _r_a_n_g_e_s___a_l_g_o_._h. │ │ │ │ │ +********** _?◆_? eeqquuaall__rraannggee ********** │ │ │ │ │ +constexpr __equal_range_fn std::ranges::equal_range inlineconstexpr │ │ │ │ │ +Definition at line _2_2_4_5 of file _r_a_n_g_e_s___a_l_g_o_._h. │ │ │ │ │ +********** _?◆_? ffiinndd__eenndd ********** │ │ │ │ │ +constexpr __find_end_fn std::ranges::find_end inlineconstexpr │ │ │ │ │ +Definition at line _5_1_6 of file _r_a_n_g_e_s___a_l_g_o_._h. │ │ │ │ │ +********** _?◆_? ffiinndd__ffiirrsstt__ooff ********** │ │ │ │ │ +constexpr __find_first_of_fn std::ranges::find_first_of inlineconstexpr │ │ │ │ │ +Definition at line _2_7_9 of file _r_a_n_g_e_s___a_l_g_o_._h. │ │ │ │ │ +********** _?◆_? ffoorr__eeaacchh ********** │ │ │ │ │ +constexpr __for_each_fn std::ranges::for_each inlineconstexpr │ │ │ │ │ +Definition at line _2_0_5 of file _r_a_n_g_e_s___a_l_g_o_._h. │ │ │ │ │ +********** _?◆_? ffoorr__eeaacchh__nn ********** │ │ │ │ │ +constexpr __for_each_n_fn std::ranges::for_each_n inlineconstexpr │ │ │ │ │ +Definition at line _2_3_8 of file _r_a_n_g_e_s___a_l_g_o_._h. │ │ │ │ │ +********** _?◆_? ggeenneerraattee ********** │ │ │ │ │ +constexpr __generate_fn std::ranges::generate inlineconstexpr │ │ │ │ │ +Definition at line _9_9_6 of file _r_a_n_g_e_s___a_l_g_o_._h. │ │ │ │ │ +********** _?◆_? ggeenneerraattee__nn ********** │ │ │ │ │ +constexpr __generate_n_fn std::ranges::generate_n inlineconstexpr │ │ │ │ │ +Definition at line _9_7_1 of file _r_a_n_g_e_s___a_l_g_o_._h. │ │ │ │ │ +********** _?◆_? iinncclluuddeess ********** │ │ │ │ │ +constexpr __includes_fn std::ranges::includes inlineconstexpr │ │ │ │ │ +Definition at line _2_6_7_4 of file _r_a_n_g_e_s___a_l_g_o_._h. │ │ │ │ │ +********** _?◆_? iinnppllaaccee__mmeerrggee ********** │ │ │ │ │ +constexpr __inplace_merge_fn std::ranges::inplace_merge inlineconstexpr │ │ │ │ │ +Definition at line _2_6_2_4 of file _r_a_n_g_e_s___a_l_g_o_._h. │ │ │ │ │ +********** _?◆_? iiss__hheeaapp ********** │ │ │ │ │ +constexpr __is_heap_fn std::ranges::is_heap inlineconstexpr │ │ │ │ │ +Definition at line _1_8_1_0 of file _r_a_n_g_e_s___a_l_g_o_._h. │ │ │ │ │ +********** _?◆_? iiss__hheeaapp__uunnttiill ********** │ │ │ │ │ +constexpr __is_heap_until_fn std::ranges::is_heap_until inlineconstexpr │ │ │ │ │ +Definition at line _1_7_8_0 of file _r_a_n_g_e_s___a_l_g_o_._h. │ │ │ │ │ +********** _?◆_? iiss__ppaarrttiittiioonneedd ********** │ │ │ │ │ +constexpr __is_partitioned_fn std::ranges::is_partitioned inlineconstexpr │ │ │ │ │ +Definition at line _2_3_1_2 of file _r_a_n_g_e_s___a_l_g_o_._h. │ │ │ │ │ +********** _?◆_? iiss__ppeerrmmuuttaattiioonn ********** │ │ │ │ │ +constexpr __is_permutation_fn std::ranges::is_permutation inlineconstexpr │ │ │ │ │ +Definition at line _6_1_5 of file _r_a_n_g_e_s___a_l_g_o_._h. │ │ │ │ │ +********** _?◆_? iiss__ssoorrtteedd ********** │ │ │ │ │ +constexpr __is_sorted_fn std::ranges::is_sorted inlineconstexpr │ │ │ │ │ +Definition at line _2_0_5_6 of file _r_a_n_g_e_s___a_l_g_o_._h. │ │ │ │ │ +********** _?◆_? iiss__ssoorrtteedd__uunnttiill ********** │ │ │ │ │ +constexpr __is_sorted_until_fn std::ranges::is_sorted_until inlineconstexpr │ │ │ │ │ +Definition at line _2_0_2_1 of file _r_a_n_g_e_s___a_l_g_o_._h. │ │ │ │ │ +********** _?◆_? lleexxiiccooggrraapphhiiccaall__ccoommppaarree ********** │ │ │ │ │ +constexpr __lexicographical_compare_fn std::ranges:: inlineconstexpr │ │ │ │ │ +lexicographical_compare │ │ │ │ │ +Definition at line _3_3_8_2 of file _r_a_n_g_e_s___a_l_g_o_._h. │ │ │ │ │ +********** _?◆_? lloowweerr__bboouunndd ********** │ │ │ │ │ +constexpr __lower_bound_fn std::ranges::lower_bound inlineconstexpr │ │ │ │ │ +Definition at line _2_1_3_4 of file _r_a_n_g_e_s___a_l_g_o_._h. │ │ │ │ │ +********** _?◆_? mmaakkee__hheeaapp ********** │ │ │ │ │ +constexpr __make_heap_fn std::ranges::make_heap inlineconstexpr │ │ │ │ │ +Definition at line _1_7_1_5 of file _r_a_n_g_e_s___a_l_g_o_._h. │ │ │ │ │ +********** _?◆_? mmaaxx ********** │ │ │ │ │ +constexpr __max_fn std::ranges::max inlineconstexpr │ │ │ │ │ +Definition at line _2_9_8_1 of file _r_a_n_g_e_s___a_l_g_o_._h. │ │ │ │ │ +********** _?◆_? mmaaxx__eelleemmeenntt ********** │ │ │ │ │ +constexpr __max_element_fn std::ranges::max_element inlineconstexpr │ │ │ │ │ +Definition at line _3_1_9_6 of file _r_a_n_g_e_s___a_l_g_o_._h. │ │ │ │ │ +********** _?◆_? mmeerrggee ********** │ │ │ │ │ +constexpr __merge_fn std::ranges::merge inlineconstexpr │ │ │ │ │ +Definition at line _2_5_9_3 of file _r_a_n_g_e_s___a_l_g_o_._h. │ │ │ │ │ +********** _?◆_? mmiinn__eelleemmeenntt ********** │ │ │ │ │ +constexpr __min_element_fn std::ranges::min_element inlineconstexpr │ │ │ │ │ +Definition at line _3_1_5_9 of file _r_a_n_g_e_s___a_l_g_o_._h. │ │ │ │ │ +********** _?◆_? mmiinnmmaaxx ********** │ │ │ │ │ +constexpr __minmax_fn std::ranges::minmax inlineconstexpr │ │ │ │ │ +Definition at line _3_1_2_2 of file _r_a_n_g_e_s___a_l_g_o_._h. │ │ │ │ │ +********** _?◆_? mmiinnmmaaxx__eelleemmeenntt ********** │ │ │ │ │ +constexpr __minmax_element_fn std::ranges::minmax_element inlineconstexpr │ │ │ │ │ +Definition at line _3_2_7_0 of file _r_a_n_g_e_s___a_l_g_o_._h. │ │ │ │ │ +********** _?◆_? nneexxtt__ppeerrmmuuttaattiioonn ********** │ │ │ │ │ +constexpr __next_permutation_fn std::ranges::next_permutation inlineconstexpr │ │ │ │ │ +Definition at line _3_4_6_3 of file _r_a_n_g_e_s___a_l_g_o_._h. │ │ │ │ │ +********** _?◆_? nnoonnee__ooff ********** │ │ │ │ │ +constexpr __none_of_fn std::ranges::none_of inlineconstexpr │ │ │ │ │ +Definition at line _1_5_6 of file _r_a_n_g_e_s___a_l_g_o_._h. │ │ │ │ │ +********** _?◆_? nntthh__eelleemmeenntt ********** │ │ │ │ │ +constexpr __nth_element_fn std::ranges::nth_element inlineconstexpr │ │ │ │ │ +Definition at line _2_0_8_6 of file _r_a_n_g_e_s___a_l_g_o_._h. │ │ │ │ │ +********** _?◆_? ppaarrttiiaall__ssoorrtt ********** │ │ │ │ │ +constexpr __partial_sort_fn std::ranges::partial_sort inlineconstexpr │ │ │ │ │ +Definition at line _1_9_1_1 of file _r_a_n_g_e_s___a_l_g_o_._h. │ │ │ │ │ +********** _?◆_? ppaarrttiiaall__ssoorrtt__ccooppyy ********** │ │ │ │ │ +constexpr __partial_sort_copy_fn std::ranges::partial_sort_copy inlineconstexpr │ │ │ │ │ +Definition at line _1_9_8_6 of file _r_a_n_g_e_s___a_l_g_o_._h. │ │ │ │ │ +********** _?◆_? ppaarrttiittiioonn ********** │ │ │ │ │ +constexpr __partition_fn std::ranges::partition inlineconstexpr │ │ │ │ │ +Definition at line _2_3_8_3 of file _r_a_n_g_e_s___a_l_g_o_._h. │ │ │ │ │ +********** _?◆_? ppaarrttiittiioonn__ccooppyy ********** │ │ │ │ │ +constexpr __partition_copy_fn std::ranges::partition_copy inlineconstexpr │ │ │ │ │ +Definition at line _2_4_9_1 of file _r_a_n_g_e_s___a_l_g_o_._h. │ │ │ │ │ +********** _?◆_? ppaarrttiittiioonn__ppooiinntt ********** │ │ │ │ │ +constexpr __partition_point_fn std::ranges::partition_point inlineconstexpr │ │ │ │ │ +Definition at line _2_5_3_2 of file _r_a_n_g_e_s___a_l_g_o_._h. │ │ │ │ │ +********** _?◆_? ppoopp__hheeaapp ********** │ │ │ │ │ +constexpr __pop_heap_fn std::ranges::pop_heap inlineconstexpr │ │ │ │ │ +Definition at line _1_6_8_7 of file _r_a_n_g_e_s___a_l_g_o_._h. │ │ │ │ │ +********** _?◆_? pprreevv__ppeerrmmuuttaattiioonn ********** │ │ │ │ │ +constexpr __prev_permutation_fn std::ranges::prev_permutation inlineconstexpr │ │ │ │ │ +Definition at line _3_5_2_5 of file _r_a_n_g_e_s___a_l_g_o_._h. │ │ │ │ │ +********** _?◆_? ppuusshh__hheeaapp ********** │ │ │ │ │ +constexpr __push_heap_fn std::ranges::push_heap inlineconstexpr │ │ │ │ │ +Definition at line _1_6_5_9 of file _r_a_n_g_e_s___a_l_g_o_._h. │ │ │ │ │ +********** _?◆_? rreemmoovvee ********** │ │ │ │ │ +constexpr __remove_fn std::ranges::remove inlineconstexpr │ │ │ │ │ +Definition at line _1_0_7_1 of file _r_a_n_g_e_s___a_l_g_o_._h. │ │ │ │ │ +********** _?◆_? rreemmoovvee__ccooppyy ********** │ │ │ │ │ +constexpr __remove_copy_fn std::ranges::remove_copy inlineconstexpr │ │ │ │ │ +Definition at line _1_1_5_4 of file _r_a_n_g_e_s___a_l_g_o_._h. │ │ │ │ │ +********** _?◆_? rreemmoovvee__ccooppyy__iiff ********** │ │ │ │ │ +constexpr __remove_copy_if_fn std::ranges::remove_copy_if inlineconstexpr │ │ │ │ │ +Definition at line _1_1_1_0 of file _r_a_n_g_e_s___a_l_g_o_._h. │ │ │ │ │ +********** _?◆_? rreemmoovvee__iiff ********** │ │ │ │ │ +constexpr __remove_if_fn std::ranges::remove_if inlineconstexpr │ │ │ │ │ +Definition at line _1_0_3_5 of file _r_a_n_g_e_s___a_l_g_o_._h. │ │ │ │ │ +********** _?◆_? rreeppllaaccee ********** │ │ │ │ │ +constexpr __replace_fn std::ranges::replace inlineconstexpr │ │ │ │ │ +Definition at line _8_2_8 of file _r_a_n_g_e_s___a_l_g_o_._h. │ │ │ │ │ +********** _?◆_? rreeppllaaccee__ccooppyy ********** │ │ │ │ │ +constexpr __replace_copy_fn std::ranges::replace_copy inlineconstexpr │ │ │ │ │ +Definition at line _9_1_1 of file _r_a_n_g_e_s___a_l_g_o_._h. │ │ │ │ │ +********** _?◆_? rreeppllaaccee__ccooppyy__iiff ********** │ │ │ │ │ +constexpr __replace_copy_if_fn std::ranges::replace_copy_if inlineconstexpr │ │ │ │ │ +Definition at line _9_5_5 of file _r_a_n_g_e_s___a_l_g_o_._h. │ │ │ │ │ +********** _?◆_? rreeppllaaccee__iiff ********** │ │ │ │ │ +constexpr __replace_if_fn std::ranges::replace_if inlineconstexpr │ │ │ │ │ +Definition at line _8_6_2 of file _r_a_n_g_e_s___a_l_g_o_._h. │ │ │ │ │ +********** _?◆_? rreevveerrssee ********** │ │ │ │ │ +constexpr __reverse_fn std::ranges::reverse inlineconstexpr │ │ │ │ │ +Definition at line _1_3_3_1 of file _r_a_n_g_e_s___a_l_g_o_._h. │ │ │ │ │ +********** _?◆_? rreevveerrssee__ccooppyy ********** │ │ │ │ │ +constexpr __reverse_copy_fn std::ranges::reverse_copy inlineconstexpr │ │ │ │ │ +Definition at line _1_3_6_5 of file _r_a_n_g_e_s___a_l_g_o_._h. │ │ │ │ │ +********** _?◆_? rroottaattee ********** │ │ │ │ │ +constexpr __rotate_fn std::ranges::rotate inlineconstexpr │ │ │ │ │ +Definition at line _1_5_1_2 of file _r_a_n_g_e_s___a_l_g_o_._h. │ │ │ │ │ +********** _?◆_? rroottaattee__ccooppyy ********** │ │ │ │ │ +constexpr __rotate_copy_fn std::ranges::rotate_copy inlineconstexpr │ │ │ │ │ +Definition at line _1_5_4_5 of file _r_a_n_g_e_s___a_l_g_o_._h. │ │ │ │ │ +********** _?◆_? ssaammppllee ********** │ │ │ │ │ +constexpr __sample_fn std::ranges::sample inlineconstexpr │ │ │ │ │ +Definition at line _1_6_0_4 of file _r_a_n_g_e_s___a_l_g_o_._h. │ │ │ │ │ +********** _?◆_? sseeaarrcchh__nn ********** │ │ │ │ │ +constexpr __search_n_fn std::ranges::search_n inlineconstexpr │ │ │ │ │ +Definition at line _4_3_9 of file _r_a_n_g_e_s___a_l_g_o_._h. │ │ │ │ │ +********** _?◆_? sseett__ddiiffffeerreennccee ********** │ │ │ │ │ +constexpr __set_difference_fn std::ranges::set_difference inlineconstexpr │ │ │ │ │ +Definition at line _2_8_5_7 of file _r_a_n_g_e_s___a_l_g_o_._h. │ │ │ │ │ +********** _?◆_? sseett__iinntteerrsseeccttiioonn ********** │ │ │ │ │ +constexpr __set_intersection_fn std::ranges::set_intersection inlineconstexpr │ │ │ │ │ +Definition at line _2_8_0_0 of file _r_a_n_g_e_s___a_l_g_o_._h. │ │ │ │ │ +********** _?◆_? sseett__ssyymmmmeettrriicc__ddiiffffeerreennccee ********** │ │ │ │ │ +constexpr __set_symmetric_difference_fn std::ranges:: inlineconstexpr │ │ │ │ │ +set_symmetric_difference │ │ │ │ │ +Definition at line _2_9_2_5 of file _r_a_n_g_e_s___a_l_g_o_._h. │ │ │ │ │ +********** _?◆_? sseett__uunniioonn ********** │ │ │ │ │ +constexpr __set_union_fn std::ranges::set_union inlineconstexpr │ │ │ │ │ +Definition at line _2_7_4_2 of file _r_a_n_g_e_s___a_l_g_o_._h. │ │ │ │ │ +********** _?◆_? sshhuuffffllee ********** │ │ │ │ │ +constexpr __shuffle_fn std::ranges::shuffle inlineconstexpr │ │ │ │ │ +Definition at line _1_6_3_1 of file _r_a_n_g_e_s___a_l_g_o_._h. │ │ │ │ │ +********** _?◆_? ssoorrtt ********** │ │ │ │ │ +constexpr __sort_fn std::ranges::sort inlineconstexpr │ │ │ │ │ +Definition at line _1_8_3_8 of file _r_a_n_g_e_s___a_l_g_o_._h. │ │ │ │ │ +********** _?◆_? ssoorrtt__hheeaapp ********** │ │ │ │ │ +constexpr __sort_heap_fn std::ranges::sort_heap inlineconstexpr │ │ │ │ │ +Definition at line _1_7_4_3 of file _r_a_n_g_e_s___a_l_g_o_._h. │ │ │ │ │ +********** _?◆_? ssttaabbllee__ppaarrttiittiioonn ********** │ │ │ │ │ +constexpr __stable_partition_fn std::ranges::stable_partition inlineconstexpr │ │ │ │ │ +Definition at line _2_4_1_5 of file _r_a_n_g_e_s___a_l_g_o_._h. │ │ │ │ │ +********** _?◆_? ssttaabbllee__ssoorrtt ********** │ │ │ │ │ +constexpr __stable_sort_fn std::ranges::stable_sort inlineconstexpr │ │ │ │ │ +Definition at line _1_8_6_8 of file _r_a_n_g_e_s___a_l_g_o_._h. │ │ │ │ │ +********** _?◆_? sswwaapp__rraannggeess ********** │ │ │ │ │ +constexpr __swap_ranges_fn std::ranges::swap_ranges inlineconstexpr │ │ │ │ │ +Definition at line _6_8_5 of file _r_a_n_g_e_s___a_l_g_o_._h. │ │ │ │ │ +********** _?◆_? ttrraannssffoorrmm ********** │ │ │ │ │ +constexpr __transform_fn std::ranges::transform inlineconstexpr │ │ │ │ │ +Definition at line _7_8_8 of file _r_a_n_g_e_s___a_l_g_o_._h. │ │ │ │ │ +********** _?◆_? uunniiqquuee ********** │ │ │ │ │ +constexpr __unique_fn std::ranges::unique inlineconstexpr │ │ │ │ │ +Definition at line _1_1_9_2 of file _r_a_n_g_e_s___a_l_g_o_._h. │ │ │ │ │ +********** _?◆_? uunniiqquuee__ccooppyy ********** │ │ │ │ │ +constexpr __unique_copy_fn std::ranges::unique_copy inlineconstexpr │ │ │ │ │ +Definition at line _1_2_8_2 of file _r_a_n_g_e_s___a_l_g_o_._h. │ │ │ │ │ +********** _?◆_? uuppppeerr__bboouunndd ********** │ │ │ │ │ +constexpr __upper_bound_fn std::ranges::upper_bound inlineconstexpr │ │ │ │ │ +Definition at line _2_1_8_2 of file _r_a_n_g_e_s___a_l_g_o_._h. │ │ │ │ │ * _b_i_t_s │ │ │ │ │ - * _s_t_l___c_o_n_s_t_r_u_c_t_._h │ │ │ │ │ + * _r_a_n_g_e_s___a_l_g_o_._h │ │ │ │ │ * Generated by _[_d_o_x_y_g_e_n_]1.9.8 │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a00392_source.html │ │ │ │ @@ -1,15 +1,15 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ -libstdc++: stl_construct.h Source File │ │ │ │ +libstdc++: ranges_algo.h Source File │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ @@ -45,20 +45,20 @@ │ │ │ │ │ │ │ │
│ │ │ │
│ │ │ │ -
stl_construct.h
│ │ │ │ +
ranges_algo.h
│ │ │ │
│ │ │ │
│ │ │ │ -Go to the documentation of this file.
1// nonstandard construct and destroy functions -*- C++ -*-
│ │ │ │ +Go to the documentation of this file.
1// Core algorithmic facilities -*- C++ -*-
│ │ │ │
2
│ │ │ │ -
3// Copyright (C) 2001-2025 Free Software Foundation, Inc.
│ │ │ │ +
3// Copyright (C) 2020-2025 Free Software Foundation, Inc.
│ │ │ │
4//
│ │ │ │
5// This file is part of the GNU ISO C++ Library. This library is free
│ │ │ │
6// software; you can redistribute it and/or modify it under the
│ │ │ │
7// terms of the GNU General Public License as published by the
│ │ │ │
8// Free Software Foundation; either version 3, or (at your option)
│ │ │ │
9// any later version.
│ │ │ │
10
│ │ │ │ @@ -71,318 +71,4076 @@ │ │ │ │
17// permissions described in the GCC Runtime Library Exception, version
│ │ │ │
18// 3.1, as published by the Free Software Foundation.
│ │ │ │
19
│ │ │ │
20// You should have received a copy of the GNU General Public License and
│ │ │ │
21// a copy of the GCC Runtime Library Exception along with this program;
│ │ │ │
22// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
│ │ │ │
23// <http://www.gnu.org/licenses/>.
│ │ │ │ -
24
│ │ │ │ -
25/*
│ │ │ │ -
26 *
│ │ │ │ -
27 * Copyright (c) 1994
│ │ │ │ -
28 * Hewlett-Packard Company
│ │ │ │ -
29 *
│ │ │ │ -
30 * Permission to use, copy, modify, distribute and sell this software
│ │ │ │ -
31 * and its documentation for any purpose is hereby granted without fee,
│ │ │ │ -
32 * provided that the above copyright notice appear in all copies and
│ │ │ │ -
33 * that both that copyright notice and this permission notice appear
│ │ │ │ -
34 * in supporting documentation. Hewlett-Packard Company makes no
│ │ │ │ -
35 * representations about the suitability of this software for any
│ │ │ │ -
36 * purpose. It is provided "as is" without express or implied warranty.
│ │ │ │ -
37 *
│ │ │ │ -
38 *
│ │ │ │ -
39 * Copyright (c) 1996,1997
│ │ │ │ -
40 * Silicon Graphics Computer Systems, Inc.
│ │ │ │ -
41 *
│ │ │ │ -
42 * Permission to use, copy, modify, distribute and sell this software
│ │ │ │ -
43 * and its documentation for any purpose is hereby granted without fee,
│ │ │ │ -
44 * provided that the above copyright notice appear in all copies and
│ │ │ │ -
45 * that both that copyright notice and this permission notice appear
│ │ │ │ -
46 * in supporting documentation. Silicon Graphics makes no
│ │ │ │ -
47 * representations about the suitability of this software for any
│ │ │ │ -
48 * purpose. It is provided "as is" without express or implied warranty.
│ │ │ │ -
49 */
│ │ │ │ -
50
│ │ │ │ -
51/** @file bits/stl_construct.h
│ │ │ │ -
52 * This is an internal header file, included by other library headers.
│ │ │ │ -
53 * Do not attempt to use it directly. @headername{memory}
│ │ │ │ -
54 */
│ │ │ │ -
55
│ │ │ │ -
56#ifndef _STL_CONSTRUCT_H
│ │ │ │ -
57#define _STL_CONSTRUCT_H 1
│ │ │ │ -
58
│ │ │ │ -
59#include <new>
│ │ │ │ -
60#include <bits/move.h>
│ │ │ │ -
61#include <bits/stl_iterator_base_types.h> // for iterator_traits
│ │ │ │ -
62#include <bits/stl_iterator_base_funcs.h> // for advance
│ │ │ │ -
63
│ │ │ │ -
64/* This file provides the C++17 functions std::destroy_at, std::destroy, and
│ │ │ │ -
65 * std::destroy_n, and the C++20 function std::construct_at.
│ │ │ │ -
66 * It also provides std::_Construct, std::_Destroy,and std::_Destroy_n functions
│ │ │ │ -
67 * which are defined in all standard modes and so can be used in C++98-14 code.
│ │ │ │ -
68 * The _Destroy functions will dispatch to destroy_at during constant
│ │ │ │ -
69 * evaluation, because calls to that function are intercepted by the compiler
│ │ │ │ -
70 * to allow use in constant expressions.
│ │ │ │ -
71 */
│ │ │ │ -
72
│ │ │ │ -
73namespace std _GLIBCXX_VISIBILITY(default)
│ │ │ │ -
74{
│ │ │ │ -
75_GLIBCXX_BEGIN_NAMESPACE_VERSION
│ │ │ │ -
76
│ │ │ │ -
77#if __glibcxx_raw_memory_algorithms // >= C++17
│ │ │ │ -
78 template <typename _Tp>
│ │ │ │ -
79 _GLIBCXX20_CONSTEXPR inline void
│ │ │ │ -
80 destroy_at(_Tp* __location)
│ │ │ │ -
81 {
│ │ │ │ -
82 if constexpr (__cplusplus > 201703L && is_array_v<_Tp>)
│ │ │ │ -
83 {
│ │ │ │ -
84 for (auto& __x : *__location)
│ │ │ │ -
85 std::destroy_at(std::__addressof(__x));
│ │ │ │ -
86 }
│ │ │ │ -
87 else
│ │ │ │ -
88 __location->~_Tp();
│ │ │ │ -
89 }
│ │ │ │ -
90
│ │ │ │ -
91#if __cpp_constexpr_dynamic_alloc // >= C++20
│ │ │ │ -
92 template<typename _Tp, typename... _Args>
│ │ │ │ -
93 requires (!is_unbounded_array_v<_Tp>)
│ │ │ │ -
94 && requires { ::new((void*)0) _Tp(std::declval<_Args>()...); }
│ │ │ │ -
95 constexpr _Tp*
│ │ │ │ -
96 construct_at(_Tp* __location, _Args&&... __args)
│ │ │ │ -
97 noexcept(noexcept(::new((void*)0) _Tp(std::declval<_Args>()...)))
│ │ │ │ -
98 {
│ │ │ │ -
99 void* __loc = __location;
│ │ │ │ -
100 // _GLIBCXX_RESOLVE_LIB_DEFECTS
│ │ │ │ -
101 // 3436. std::construct_at should support arrays
│ │ │ │ -
102 if constexpr (is_array_v<_Tp>)
│ │ │ │ -
103 {
│ │ │ │ -
104 static_assert(sizeof...(_Args) == 0, "std::construct_at for array "
│ │ │ │ -
105 "types must not use any arguments to initialize the "
│ │ │ │ -
106 "array");
│ │ │ │ -
107 return ::new(__loc) _Tp[1]();
│ │ │ │ -
108 }
│ │ │ │ -
109 else
│ │ │ │ -
110 return ::new(__loc) _Tp(std::forward<_Args>(__args)...);
│ │ │ │ -
111 }
│ │ │ │ -
112#endif // C++20
│ │ │ │ -
113#endif// C++17
│ │ │ │ -
114
│ │ │ │ -
115 /**
│ │ │ │ -
116 * Constructs an object in existing memory by invoking an allocated
│ │ │ │ -
117 * object's constructor with an initializer.
│ │ │ │ -
118 */
│ │ │ │ -
119#if __cplusplus >= 201103L
│ │ │ │ -
120 template<typename _Tp, typename... _Args>
│ │ │ │ -
121 _GLIBCXX20_CONSTEXPR
│ │ │ │ -
122 inline void
│ │ │ │ -
│ │ │ │ -
123 _Construct(_Tp* __p, _Args&&... __args)
│ │ │ │ -
124 {
│ │ │ │ -
125#if __cpp_constexpr_dynamic_alloc // >= C++20
│ │ │ │ -
126 if (std::__is_constant_evaluated())
│ │ │ │ -
127 {
│ │ │ │ -
128 // Allow std::_Construct to be used in constant expressions.
│ │ │ │ -
129 std::construct_at(__p, std::forward<_Args>(__args)...);
│ │ │ │ -
130 return;
│ │ │ │ -
131 }
│ │ │ │ -
132#endif
│ │ │ │ -
133 ::new(static_cast<void*>(__p)) _Tp(std::forward<_Args>(__args)...);
│ │ │ │ -
134 }
│ │ │ │ -
│ │ │ │ -
135#else
│ │ │ │ -
136 template<typename _T1, typename _T2>
│ │ │ │ -
137 inline void
│ │ │ │ -
138 _Construct(_T1* __p, const _T2& __value)
│ │ │ │ -
139 {
│ │ │ │ -
140 // _GLIBCXX_RESOLVE_LIB_DEFECTS
│ │ │ │ -
141 // 402. wrong new expression in [some_]allocator::construct
│ │ │ │ -
142 ::new(static_cast<void*>(__p)) _T1(__value);
│ │ │ │ -
143 }
│ │ │ │ -
144#endif
│ │ │ │ -
145
│ │ │ │ -
146 template<typename _T1>
│ │ │ │ -
147 _GLIBCXX26_CONSTEXPR
│ │ │ │ -
148 inline void
│ │ │ │ -
149 _Construct_novalue(_T1* __p)
│ │ │ │ -
150 { ::new(static_cast<void*>(__p)) _T1; }
│ │ │ │ -
151
│ │ │ │ -
152 template<typename _ForwardIterator>
│ │ │ │ -
153 _GLIBCXX20_CONSTEXPR void
│ │ │ │ -
154 _Destroy(_ForwardIterator __first, _ForwardIterator __last);
│ │ │ │ -
155
│ │ │ │ -
156 /**
│ │ │ │ -
157 * Destroy the object pointed to by a pointer type.
│ │ │ │ -
158 */
│ │ │ │ -
159 template<typename _Tp>
│ │ │ │ -
160 _GLIBCXX14_CONSTEXPR inline void
│ │ │ │ -
│ │ │ │ -
161 _Destroy(_Tp* __pointer)
│ │ │ │ -
162 {
│ │ │ │ -
163#if __cpp_constexpr_dynamic_alloc // >= C++20
│ │ │ │ -
164 std::destroy_at(__pointer);
│ │ │ │ -
165#else
│ │ │ │ -
166 __pointer->~_Tp();
│ │ │ │ -
167#endif
│ │ │ │ -
168 }
│ │ │ │ -
│ │ │ │ -
169
│ │ │ │ -
170#pragma GCC diagnostic push
│ │ │ │ -
171#pragma GCC diagnostic ignored "-Wc++17-extensions" // for if-constexpr
│ │ │ │ -
172
│ │ │ │ -
173#if __cplusplus < 201103L
│ │ │ │ -
174 template<bool>
│ │ │ │ -
175 struct _Destroy_aux
│ │ │ │ -
176 {
│ │ │ │ -
177 template<typename _ForwardIterator>
│ │ │ │ -
178 static _GLIBCXX20_CONSTEXPR void
│ │ │ │ -
179 __destroy(_ForwardIterator __first, _ForwardIterator __last)
│ │ │ │ -
180 {
│ │ │ │ -
181 for (; __first != __last; ++__first)
│ │ │ │ - │ │ │ │ -
183 }
│ │ │ │ -
184 };
│ │ │ │ -
185
│ │ │ │ -
186 template<>
│ │ │ │ -
187 struct _Destroy_aux<true>
│ │ │ │ -
188 {
│ │ │ │ -
189 template<typename _ForwardIterator>
│ │ │ │ -
190 static void
│ │ │ │ -
191 __destroy(_ForwardIterator, _ForwardIterator) { }
│ │ │ │ -
192 };
│ │ │ │ -
193#endif
│ │ │ │ -
194
│ │ │ │ -
195 /**
│ │ │ │ -
196 * Destroy a range of objects. If the value_type of the object has
│ │ │ │ -
197 * a trivial destructor, the compiler should optimize all of this
│ │ │ │ -
198 * away, otherwise the objects' destructors must be invoked.
│ │ │ │ -
199 */
│ │ │ │ -
200 template<typename _ForwardIterator>
│ │ │ │ -
201 _GLIBCXX20_CONSTEXPR inline void
│ │ │ │ -
│ │ │ │ -
202 _Destroy(_ForwardIterator __first, _ForwardIterator __last)
│ │ │ │ -
203 {
│ │ │ │ - │ │ │ │ -
205 _Value_type;
│ │ │ │ -
206#if __cplusplus >= 201103L
│ │ │ │ -
207 // A deleted destructor is trivial, this ensures we reject such types:
│ │ │ │ - │ │ │ │ -
209 "value type is destructible");
│ │ │ │ -
210 if constexpr (!__has_trivial_destructor(_Value_type))
│ │ │ │ -
211 for (; __first != __last; ++__first)
│ │ │ │ - │ │ │ │ -
213#if __cpp_constexpr_dynamic_alloc // >= C++20
│ │ │ │ -
214 else if (std::__is_constant_evaluated())
│ │ │ │ -
215 for (; __first != __last; ++__first)
│ │ │ │ -
216 std::destroy_at(std::__addressof(*__first));
│ │ │ │ -
217#endif
│ │ │ │ -
218#else
│ │ │ │ -
219 std::_Destroy_aux<__has_trivial_destructor(_Value_type)>::
│ │ │ │ -
220 __destroy(__first, __last);
│ │ │ │ -
221#endif
│ │ │ │ -
222 }
│ │ │ │ -
│ │ │ │ -
223
│ │ │ │ -
224#if __cplusplus < 201103L
│ │ │ │ -
225 template<bool>
│ │ │ │ -
226 struct _Destroy_n_aux
│ │ │ │ -
227 {
│ │ │ │ -
228 template<typename _ForwardIterator, typename _Size>
│ │ │ │ -
229 static _GLIBCXX20_CONSTEXPR _ForwardIterator
│ │ │ │ -
230 __destroy_n(_ForwardIterator __first, _Size __count)
│ │ │ │ -
231 {
│ │ │ │ -
232 for (; __count > 0; (void)++__first, --__count)
│ │ │ │ - │ │ │ │ -
234 return __first;
│ │ │ │ -
235 }
│ │ │ │ -
236 };
│ │ │ │ +
24
│ │ │ │ +
25/** @file bits/ranges_algo.h
│ │ │ │ +
26 * This is an internal header file, included by other library headers.
│ │ │ │ +
27 * Do not attempt to use it directly. @headername{algorithm}
│ │ │ │ +
28 */
│ │ │ │ +
29
│ │ │ │ +
30#ifndef _RANGES_ALGO_H
│ │ │ │ +
31#define _RANGES_ALGO_H 1
│ │ │ │ +
32
│ │ │ │ +
33#if __cplusplus > 201703L
│ │ │ │ +
34
│ │ │ │ +
35#if __cplusplus > 202002L
│ │ │ │ +
36#include <optional>
│ │ │ │ +
37#endif
│ │ │ │ + │ │ │ │ +
39#include <bits/ranges_util.h>
│ │ │ │ +
40#include <bits/uniform_int_dist.h> // concept uniform_random_bit_generator
│ │ │ │ +
41
│ │ │ │ +
42#if __glibcxx_concepts
│ │ │ │ +
43namespace std _GLIBCXX_VISIBILITY(default)
│ │ │ │ +
44{
│ │ │ │ +
45_GLIBCXX_BEGIN_NAMESPACE_VERSION
│ │ │ │ +
46namespace ranges
│ │ │ │ +
47{
│ │ │ │ +
48 namespace __detail
│ │ │ │ +
49 {
│ │ │ │ +
50 template<typename _Comp, typename _Proj>
│ │ │ │ +
51 constexpr auto
│ │ │ │ +
52 __make_comp_proj(_Comp& __comp, _Proj& __proj)
│ │ │ │ +
53 {
│ │ │ │ +
54 return [&] (auto&& __lhs, auto&& __rhs) -> bool {
│ │ │ │ +
55 using _TL = decltype(__lhs);
│ │ │ │ +
56 using _TR = decltype(__rhs);
│ │ │ │ +
57 return std::__invoke(__comp,
│ │ │ │ +
58 std::__invoke(__proj, std::forward<_TL>(__lhs)),
│ │ │ │ +
59 std::__invoke(__proj, std::forward<_TR>(__rhs)));
│ │ │ │ +
60 };
│ │ │ │ +
61 }
│ │ │ │ +
62
│ │ │ │ +
63 template<typename _Pred, typename _Proj>
│ │ │ │ +
64 constexpr auto
│ │ │ │ +
65 __make_pred_proj(_Pred& __pred, _Proj& __proj)
│ │ │ │ +
66 {
│ │ │ │ +
67 return [&] <typename _Tp> (_Tp&& __arg) -> bool {
│ │ │ │ +
68 return std::__invoke(__pred,
│ │ │ │ +
69 std::__invoke(__proj, std::forward<_Tp>(__arg)));
│ │ │ │ +
70 };
│ │ │ │ +
71 }
│ │ │ │ +
72 } // namespace __detail
│ │ │ │ +
73
│ │ │ │ +
74 struct __all_of_fn
│ │ │ │ +
75 {
│ │ │ │ +
76 template<input_iterator _Iter, sentinel_for<_Iter> _Sent,
│ │ │ │ +
77 typename _Proj = identity,
│ │ │ │ +
78 indirect_unary_predicate<projected<_Iter, _Proj>> _Pred>
│ │ │ │ +
79 constexpr bool
│ │ │ │ +
80 operator()(_Iter __first, _Sent __last,
│ │ │ │ +
81 _Pred __pred, _Proj __proj = {}) const
│ │ │ │ +
82 {
│ │ │ │ +
83 for (; __first != __last; ++__first)
│ │ │ │ +
84 if (!(bool)std::__invoke(__pred, std::__invoke(__proj, *__first)))
│ │ │ │ +
85 return false;
│ │ │ │ +
86 return true;
│ │ │ │ +
87 }
│ │ │ │ +
88
│ │ │ │ +
89 template<input_range _Range, typename _Proj = identity,
│ │ │ │ +
90 indirect_unary_predicate<projected<iterator_t<_Range>, _Proj>>
│ │ │ │ +
91 _Pred>
│ │ │ │ +
92 constexpr bool
│ │ │ │ +
93 operator()(_Range&& __r, _Pred __pred, _Proj __proj = {}) const
│ │ │ │ +
94 {
│ │ │ │ +
95 return (*this)(ranges::begin(__r), ranges::end(__r),
│ │ │ │ +
96 std::move(__pred), std::move(__proj));
│ │ │ │ +
97 }
│ │ │ │ +
98 };
│ │ │ │ +
99
│ │ │ │ +
100 inline constexpr __all_of_fn all_of{};
│ │ │ │ +
101
│ │ │ │ +
102 struct __any_of_fn
│ │ │ │ +
103 {
│ │ │ │ +
104 template<input_iterator _Iter, sentinel_for<_Iter> _Sent,
│ │ │ │ +
105 typename _Proj = identity,
│ │ │ │ +
106 indirect_unary_predicate<projected<_Iter, _Proj>> _Pred>
│ │ │ │ +
107 constexpr bool
│ │ │ │ +
108 operator()(_Iter __first, _Sent __last,
│ │ │ │ +
109 _Pred __pred, _Proj __proj = {}) const
│ │ │ │ +
110 {
│ │ │ │ +
111 for (; __first != __last; ++__first)
│ │ │ │ +
112 if (std::__invoke(__pred, std::__invoke(__proj, *__first)))
│ │ │ │ +
113 return true;
│ │ │ │ +
114 return false;
│ │ │ │ +
115 }
│ │ │ │ +
116
│ │ │ │ +
117 template<input_range _Range, typename _Proj = identity,
│ │ │ │ +
118 indirect_unary_predicate<projected<iterator_t<_Range>, _Proj>>
│ │ │ │ +
119 _Pred>
│ │ │ │ +
120 constexpr bool
│ │ │ │ +
121 operator()(_Range&& __r, _Pred __pred, _Proj __proj = {}) const
│ │ │ │ +
122 {
│ │ │ │ +
123 return (*this)(ranges::begin(__r), ranges::end(__r),
│ │ │ │ +
124 std::move(__pred), std::move(__proj));
│ │ │ │ +
125 }
│ │ │ │ +
126 };
│ │ │ │ +
127
│ │ │ │ +
128 inline constexpr __any_of_fn any_of{};
│ │ │ │ +
129
│ │ │ │ +
130 struct __none_of_fn
│ │ │ │ +
131 {
│ │ │ │ +
132 template<input_iterator _Iter, sentinel_for<_Iter> _Sent,
│ │ │ │ +
133 typename _Proj = identity,
│ │ │ │ +
134 indirect_unary_predicate<projected<_Iter, _Proj>> _Pred>
│ │ │ │ +
135 constexpr bool
│ │ │ │ +
136 operator()(_Iter __first, _Sent __last,
│ │ │ │ +
137 _Pred __pred, _Proj __proj = {}) const
│ │ │ │ +
138 {
│ │ │ │ +
139 for (; __first != __last; ++__first)
│ │ │ │ +
140 if (std::__invoke(__pred, std::__invoke(__proj, *__first)))
│ │ │ │ +
141 return false;
│ │ │ │ +
142 return true;
│ │ │ │ +
143 }
│ │ │ │ +
144
│ │ │ │ +
145 template<input_range _Range, typename _Proj = identity,
│ │ │ │ +
146 indirect_unary_predicate<projected<iterator_t<_Range>, _Proj>>
│ │ │ │ +
147 _Pred>
│ │ │ │ +
148 constexpr bool
│ │ │ │ +
149 operator()(_Range&& __r, _Pred __pred, _Proj __proj = {}) const
│ │ │ │ +
150 {
│ │ │ │ +
151 return (*this)(ranges::begin(__r), ranges::end(__r),
│ │ │ │ +
152 std::move(__pred), std::move(__proj));
│ │ │ │ +
153 }
│ │ │ │ +
154 };
│ │ │ │ +
155
│ │ │ │ +
156 inline constexpr __none_of_fn none_of{};
│ │ │ │ +
157
│ │ │ │ +
158 template<typename _Iter, typename _Fp>
│ │ │ │ +
159 struct in_fun_result
│ │ │ │ +
160 {
│ │ │ │ +
161 [[no_unique_address]] _Iter in;
│ │ │ │ +
162 [[no_unique_address]] _Fp fun;
│ │ │ │ +
163
│ │ │ │ +
164 template<typename _Iter2, typename _F2p>
│ │ │ │ +
165 requires convertible_to<const _Iter&, _Iter2>
│ │ │ │ +
166 && convertible_to<const _Fp&, _F2p>
│ │ │ │ +
167 constexpr
│ │ │ │ +
168 operator in_fun_result<_Iter2, _F2p>() const &
│ │ │ │ +
169 { return {in, fun}; }
│ │ │ │ +
170
│ │ │ │ +
171 template<typename _Iter2, typename _F2p>
│ │ │ │ +
172 requires convertible_to<_Iter, _Iter2> && convertible_to<_Fp, _F2p>
│ │ │ │ +
173 constexpr
│ │ │ │ +
174 operator in_fun_result<_Iter2, _F2p>() &&
│ │ │ │ +
175 { return {std::move(in), std::move(fun)}; }
│ │ │ │ +
176 };
│ │ │ │ +
177
│ │ │ │ +
178 template<typename _Iter, typename _Fp>
│ │ │ │ +
179 using for_each_result = in_fun_result<_Iter, _Fp>;
│ │ │ │ +
180
│ │ │ │ +
181 struct __for_each_fn
│ │ │ │ +
182 {
│ │ │ │ +
183 template<input_iterator _Iter, sentinel_for<_Iter> _Sent,
│ │ │ │ +
184 typename _Proj = identity,
│ │ │ │ +
185 indirectly_unary_invocable<projected<_Iter, _Proj>> _Fun>
│ │ │ │ +
186 constexpr for_each_result<_Iter, _Fun>
│ │ │ │ +
187 operator()(_Iter __first, _Sent __last, _Fun __f, _Proj __proj = {}) const
│ │ │ │ +
188 {
│ │ │ │ +
189 for (; __first != __last; ++__first)
│ │ │ │ +
190 std::__invoke(__f, std::__invoke(__proj, *__first));
│ │ │ │ +
191 return { std::move(__first), std::move(__f) };
│ │ │ │ +
192 }
│ │ │ │ +
193
│ │ │ │ +
194 template<input_range _Range, typename _Proj = identity,
│ │ │ │ +
195 indirectly_unary_invocable<projected<iterator_t<_Range>, _Proj>>
│ │ │ │ +
196 _Fun>
│ │ │ │ +
197 constexpr for_each_result<borrowed_iterator_t<_Range>, _Fun>
│ │ │ │ +
198 operator()(_Range&& __r, _Fun __f, _Proj __proj = {}) const
│ │ │ │ +
199 {
│ │ │ │ +
200 return (*this)(ranges::begin(__r), ranges::end(__r),
│ │ │ │ +
201 std::move(__f), std::move(__proj));
│ │ │ │ +
202 }
│ │ │ │ +
203 };
│ │ │ │ +
204
│ │ │ │ +
205 inline constexpr __for_each_fn for_each{};
│ │ │ │ +
206
│ │ │ │ +
207 template<typename _Iter, typename _Fp>
│ │ │ │ +
208 using for_each_n_result = in_fun_result<_Iter, _Fp>;
│ │ │ │ +
209
│ │ │ │ +
210 struct __for_each_n_fn
│ │ │ │ +
211 {
│ │ │ │ +
212 template<input_iterator _Iter, typename _Proj = identity,
│ │ │ │ +
213 indirectly_unary_invocable<projected<_Iter, _Proj>> _Fun>
│ │ │ │ +
214 constexpr for_each_n_result<_Iter, _Fun>
│ │ │ │ +
215 operator()(_Iter __first, iter_difference_t<_Iter> __n,
│ │ │ │ +
216 _Fun __f, _Proj __proj = {}) const
│ │ │ │ +
217 {
│ │ │ │ +
218 if constexpr (random_access_iterator<_Iter>)
│ │ │ │ +
219 {
│ │ │ │ +
220 if (__n <= 0)
│ │ │ │ +
221 return {std::move(__first), std::move(__f)};
│ │ │ │ +
222 auto __last = __first + __n;
│ │ │ │ +
223 return ranges::for_each(std::move(__first), std::move(__last),
│ │ │ │ +
224 std::move(__f), std::move(__proj));
│ │ │ │ +
225 }
│ │ │ │ +
226 else
│ │ │ │ +
227 {
│ │ │ │ +
228 while (__n-- > 0)
│ │ │ │ +
229 {
│ │ │ │ +
230 std::__invoke(__f, std::__invoke(__proj, *__first));
│ │ │ │ +
231 ++__first;
│ │ │ │ +
232 }
│ │ │ │ +
233 return {std::move(__first), std::move(__f)};
│ │ │ │ +
234 }
│ │ │ │ +
235 }
│ │ │ │ +
236 };
│ │ │ │
237
│ │ │ │ -
238 template<>
│ │ │ │ -
239 struct _Destroy_n_aux<true>
│ │ │ │ -
240 {
│ │ │ │ -
241 template<typename _ForwardIterator, typename _Size>
│ │ │ │ -
242 static _ForwardIterator
│ │ │ │ -
243 __destroy_n(_ForwardIterator __first, _Size __count)
│ │ │ │ -
244 {
│ │ │ │ -
245 std::advance(__first, __count);
│ │ │ │ -
246 return __first;
│ │ │ │ -
247 }
│ │ │ │ -
248 };
│ │ │ │ -
249#endif
│ │ │ │ -
250
│ │ │ │ -
251 /**
│ │ │ │ -
252 * Destroy a range of objects. If the value_type of the object has
│ │ │ │ -
253 * a trivial destructor, the compiler should optimize all of this
│ │ │ │ -
254 * away, otherwise the objects' destructors must be invoked.
│ │ │ │ -
255 */
│ │ │ │ -
256 template<typename _ForwardIterator, typename _Size>
│ │ │ │ -
257 _GLIBCXX20_CONSTEXPR inline _ForwardIterator
│ │ │ │ -
│ │ │ │ -
258 _Destroy_n(_ForwardIterator __first, _Size __count)
│ │ │ │ -
259 {
│ │ │ │ - │ │ │ │ -
261 _Value_type;
│ │ │ │ -
262#if __cplusplus >= 201103L
│ │ │ │ -
263 // A deleted destructor is trivial, this ensures we reject such types:
│ │ │ │ - │ │ │ │ -
265 "value type is destructible");
│ │ │ │ -
266 if constexpr (!__has_trivial_destructor(_Value_type))
│ │ │ │ -
267 for (; __count > 0; (void)++__first, --__count)
│ │ │ │ - │ │ │ │ -
269#if __cpp_constexpr_dynamic_alloc // >= C++20
│ │ │ │ -
270 else if (std::__is_constant_evaluated())
│ │ │ │ -
271 for (; __count > 0; (void)++__first, --__count)
│ │ │ │ -
272 std::destroy_at(std::__addressof(*__first));
│ │ │ │ -
273#endif
│ │ │ │ -
274 else
│ │ │ │ -
275 std::advance(__first, __count);
│ │ │ │ -
276 return __first;
│ │ │ │ -
277#else
│ │ │ │ -
278 return std::_Destroy_n_aux<__has_trivial_destructor(_Value_type)>::
│ │ │ │ -
279 __destroy_n(__first, __count);
│ │ │ │ -
280#endif
│ │ │ │ -
281 }
│ │ │ │ -
│ │ │ │ -
282#pragma GCC diagnostic pop
│ │ │ │ -
283
│ │ │ │ -
284#if __glibcxx_raw_memory_algorithms // >= C++17
│ │ │ │ -
285 template <typename _ForwardIterator>
│ │ │ │ -
286 _GLIBCXX20_CONSTEXPR inline void
│ │ │ │ -
287 destroy(_ForwardIterator __first, _ForwardIterator __last)
│ │ │ │ -
288 {
│ │ │ │ -
289 std::_Destroy(__first, __last);
│ │ │ │ -
290 }
│ │ │ │ -
291
│ │ │ │ -
292 template <typename _ForwardIterator, typename _Size>
│ │ │ │ -
293 _GLIBCXX20_CONSTEXPR inline _ForwardIterator
│ │ │ │ -
294 destroy_n(_ForwardIterator __first, _Size __count)
│ │ │ │ -
295 {
│ │ │ │ -
296 return std::_Destroy_n(__first, __count);
│ │ │ │ -
297 }
│ │ │ │ -
298#endif // C++17
│ │ │ │ +
238 inline constexpr __for_each_n_fn for_each_n{};
│ │ │ │ +
239
│ │ │ │ +
240 // find, find_if and find_if_not are defined in <bits/ranges_util.h>.
│ │ │ │ +
241
│ │ │ │ +
242 struct __find_first_of_fn
│ │ │ │ +
243 {
│ │ │ │ +
244 template<input_iterator _Iter1, sentinel_for<_Iter1> _Sent1,
│ │ │ │ +
245 forward_iterator _Iter2, sentinel_for<_Iter2> _Sent2,
│ │ │ │ +
246 typename _Pred = ranges::equal_to,
│ │ │ │ +
247 typename _Proj1 = identity, typename _Proj2 = identity>
│ │ │ │ +
248 requires indirectly_comparable<_Iter1, _Iter2, _Pred, _Proj1, _Proj2>
│ │ │ │ +
249 constexpr _Iter1
│ │ │ │ +
250 operator()(_Iter1 __first1, _Sent1 __last1,
│ │ │ │ +
251 _Iter2 __first2, _Sent2 __last2, _Pred __pred = {},
│ │ │ │ +
252 _Proj1 __proj1 = {}, _Proj2 __proj2 = {}) const
│ │ │ │ +
253 {
│ │ │ │ +
254 for (; __first1 != __last1; ++__first1)
│ │ │ │ +
255 for (auto __iter = __first2; __iter != __last2; ++__iter)
│ │ │ │ +
256 if (std::__invoke(__pred,
│ │ │ │ +
257 std::__invoke(__proj1, *__first1),
│ │ │ │ +
258 std::__invoke(__proj2, *__iter)))
│ │ │ │ +
259 return __first1;
│ │ │ │ +
260 return __first1;
│ │ │ │ +
261 }
│ │ │ │ +
262
│ │ │ │ +
263 template<input_range _Range1, forward_range _Range2,
│ │ │ │ +
264 typename _Pred = ranges::equal_to,
│ │ │ │ +
265 typename _Proj1 = identity, typename _Proj2 = identity>
│ │ │ │ +
266 requires indirectly_comparable<iterator_t<_Range1>, iterator_t<_Range2>,
│ │ │ │ +
267 _Pred, _Proj1, _Proj2>
│ │ │ │ +
268 constexpr borrowed_iterator_t<_Range1>
│ │ │ │ +
269 operator()(_Range1&& __r1, _Range2&& __r2, _Pred __pred = {},
│ │ │ │ +
270 _Proj1 __proj1 = {}, _Proj2 __proj2 = {}) const
│ │ │ │ +
271 {
│ │ │ │ +
272 return (*this)(ranges::begin(__r1), ranges::end(__r1),
│ │ │ │ +
273 ranges::begin(__r2), ranges::end(__r2),
│ │ │ │ +
274 std::move(__pred),
│ │ │ │ +
275 std::move(__proj1), std::move(__proj2));
│ │ │ │ +
276 }
│ │ │ │ +
277 };
│ │ │ │ +
278
│ │ │ │ +
279 inline constexpr __find_first_of_fn find_first_of{};
│ │ │ │ +
280
│ │ │ │ +
281 struct __count_fn
│ │ │ │ +
282 {
│ │ │ │ +
283 template<input_iterator _Iter, sentinel_for<_Iter> _Sent,
│ │ │ │ +
284 typename _Proj = identity,
│ │ │ │ +
285 typename _Tp _GLIBCXX26_RANGE_ALGO_DEF_VAL_T(_Iter, _Proj)>
│ │ │ │ +
286 requires indirect_binary_predicate<ranges::equal_to,
│ │ │ │ +
287 projected<_Iter, _Proj>,
│ │ │ │ +
288 const _Tp*>
│ │ │ │ +
289 constexpr iter_difference_t<_Iter>
│ │ │ │ +
290 operator()(_Iter __first, _Sent __last,
│ │ │ │ +
291 const _Tp& __value, _Proj __proj = {}) const
│ │ │ │ +
292 {
│ │ │ │ +
293 iter_difference_t<_Iter> __n = 0;
│ │ │ │ +
294 for (; __first != __last; ++__first)
│ │ │ │ +
295 if (std::__invoke(__proj, *__first) == __value)
│ │ │ │ +
296 ++__n;
│ │ │ │ +
297 return __n;
│ │ │ │ +
298 }
│ │ │ │
299
│ │ │ │ -
300_GLIBCXX_END_NAMESPACE_VERSION
│ │ │ │ -
301} // namespace std
│ │ │ │ -
302
│ │ │ │ -
303#endif /* _STL_CONSTRUCT_H */
│ │ │ │ - │ │ │ │ - │ │ │ │ - │ │ │ │ - │ │ │ │ -
constexpr _Tp * __addressof(_Tp &__r) noexcept
Same as C++11 std::addressof.
Definition move.h:52
│ │ │ │ +
300 template<input_range _Range, typename _Proj = identity,
│ │ │ │ +
301 typename _Tp
│ │ │ │ +
302 _GLIBCXX26_RANGE_ALGO_DEF_VAL_T(iterator_t<_Range>, _Proj)>
│ │ │ │ +
303 requires indirect_binary_predicate<ranges::equal_to,
│ │ │ │ +
304 projected<iterator_t<_Range>, _Proj>,
│ │ │ │ +
305 const _Tp*>
│ │ │ │ +
306 constexpr range_difference_t<_Range>
│ │ │ │ +
307 operator()(_Range&& __r, const _Tp& __value, _Proj __proj = {}) const
│ │ │ │ +
308 {
│ │ │ │ +
309 return (*this)(ranges::begin(__r), ranges::end(__r),
│ │ │ │ +
310 __value, std::move(__proj));
│ │ │ │ +
311 }
│ │ │ │ +
312 };
│ │ │ │ +
313
│ │ │ │ +
314 inline constexpr __count_fn count{};
│ │ │ │ +
315
│ │ │ │ +
316 struct __count_if_fn
│ │ │ │ +
317 {
│ │ │ │ +
318 template<input_iterator _Iter, sentinel_for<_Iter> _Sent,
│ │ │ │ +
319 typename _Proj = identity,
│ │ │ │ +
320 indirect_unary_predicate<projected<_Iter, _Proj>> _Pred>
│ │ │ │ +
321 constexpr iter_difference_t<_Iter>
│ │ │ │ +
322 operator()(_Iter __first, _Sent __last,
│ │ │ │ +
323 _Pred __pred, _Proj __proj = {}) const
│ │ │ │ +
324 {
│ │ │ │ +
325 iter_difference_t<_Iter> __n = 0;
│ │ │ │ +
326 for (; __first != __last; ++__first)
│ │ │ │ +
327 if (std::__invoke(__pred, std::__invoke(__proj, *__first)))
│ │ │ │ +
328 ++__n;
│ │ │ │ +
329 return __n;
│ │ │ │ +
330 }
│ │ │ │ +
331
│ │ │ │ +
332 template<input_range _Range,
│ │ │ │ +
333 typename _Proj = identity,
│ │ │ │ +
334 indirect_unary_predicate<projected<iterator_t<_Range>, _Proj>>
│ │ │ │ +
335 _Pred>
│ │ │ │ +
336 constexpr range_difference_t<_Range>
│ │ │ │ +
337 operator()(_Range&& __r, _Pred __pred, _Proj __proj = {}) const
│ │ │ │ +
338 {
│ │ │ │ +
339 return (*this)(ranges::begin(__r), ranges::end(__r),
│ │ │ │ +
340 std::move(__pred), std::move(__proj));
│ │ │ │ +
341 }
│ │ │ │ +
342 };
│ │ │ │ +
343
│ │ │ │ +
344 inline constexpr __count_if_fn count_if{};
│ │ │ │ +
345
│ │ │ │ +
346 // in_in_result, mismatch and search are defined in <bits/ranges_util.h>.
│ │ │ │ +
347
│ │ │ │ +
348 struct __search_n_fn
│ │ │ │ +
349 {
│ │ │ │ +
350 template<forward_iterator _Iter, sentinel_for<_Iter> _Sent,
│ │ │ │ +
351 typename _Pred = ranges::equal_to, typename _Proj = identity,
│ │ │ │ +
352 typename _Tp _GLIBCXX26_RANGE_ALGO_DEF_VAL_T(_Iter, _Proj)>
│ │ │ │ +
353 requires indirectly_comparable<_Iter, const _Tp*, _Pred, _Proj>
│ │ │ │ +
354 constexpr subrange<_Iter>
│ │ │ │ +
355 operator()(_Iter __first, _Sent __last, iter_difference_t<_Iter> __count,
│ │ │ │ +
356 const _Tp& __value, _Pred __pred = {}, _Proj __proj = {}) const
│ │ │ │ +
357 {
│ │ │ │ +
358 if (__count <= 0)
│ │ │ │ +
359 return {__first, __first};
│ │ │ │ +
360
│ │ │ │ +
361 auto __value_comp = [&] <typename _Rp> (_Rp&& __arg) -> bool {
│ │ │ │ +
362 return std::__invoke(__pred, std::forward<_Rp>(__arg), __value);
│ │ │ │ +
363 };
│ │ │ │ +
364 if (__count == 1)
│ │ │ │ +
365 {
│ │ │ │ +
366 __first = ranges::find_if(std::move(__first), __last,
│ │ │ │ +
367 std::move(__value_comp),
│ │ │ │ +
368 std::move(__proj));
│ │ │ │ +
369 if (__first == __last)
│ │ │ │ +
370 return {__first, __first};
│ │ │ │ +
371 else
│ │ │ │ +
372 {
│ │ │ │ +
373 auto __end = __first;
│ │ │ │ +
374 return {__first, ++__end};
│ │ │ │ +
375 }
│ │ │ │ +
376 }
│ │ │ │ +
377
│ │ │ │ +
378 if constexpr (sized_sentinel_for<_Sent, _Iter>
│ │ │ │ +
379 && random_access_iterator<_Iter>)
│ │ │ │ +
380 {
│ │ │ │ +
381 auto __tail_size = __last - __first;
│ │ │ │ +
382 auto __remainder = __count;
│ │ │ │ +
383
│ │ │ │ +
384 while (__remainder <= __tail_size)
│ │ │ │ +
385 {
│ │ │ │ +
386 __first += __remainder;
│ │ │ │ +
387 __tail_size -= __remainder;
│ │ │ │ +
388 auto __backtrack = __first;
│ │ │ │ +
389 while (__value_comp(std::__invoke(__proj, *--__backtrack)))
│ │ │ │ +
390 {
│ │ │ │ +
391 if (--__remainder == 0)
│ │ │ │ +
392 return {__first - __count, __first};
│ │ │ │ +
393 }
│ │ │ │ +
394 __remainder = __count + 1 - (__first - __backtrack);
│ │ │ │ +
395 }
│ │ │ │ +
396 auto __i = __first + __tail_size;
│ │ │ │ +
397 return {__i, __i};
│ │ │ │ +
398 }
│ │ │ │ +
399 else
│ │ │ │ +
400 {
│ │ │ │ +
401 __first = ranges::find_if(__first, __last, __value_comp, __proj);
│ │ │ │ +
402 while (__first != __last)
│ │ │ │ +
403 {
│ │ │ │ +
404 auto __n = __count;
│ │ │ │ +
405 auto __i = __first;
│ │ │ │ +
406 ++__i;
│ │ │ │ +
407 while (__i != __last && __n != 1
│ │ │ │ +
408 && __value_comp(std::__invoke(__proj, *__i)))
│ │ │ │ +
409 {
│ │ │ │ +
410 ++__i;
│ │ │ │ +
411 --__n;
│ │ │ │ +
412 }
│ │ │ │ +
413 if (__n == 1)
│ │ │ │ +
414 return {__first, __i};
│ │ │ │ +
415 if (__i == __last)
│ │ │ │ +
416 return {__i, __i};
│ │ │ │ +
417 __first = ranges::find_if(++__i, __last, __value_comp, __proj);
│ │ │ │ +
418 }
│ │ │ │ +
419 return {__first, __first};
│ │ │ │ +
420 }
│ │ │ │ +
421 }
│ │ │ │ +
422
│ │ │ │ +
423 template<forward_range _Range,
│ │ │ │ +
424 typename _Pred = ranges::equal_to, typename _Proj = identity,
│ │ │ │ +
425 typename _Tp
│ │ │ │ +
426 _GLIBCXX26_RANGE_ALGO_DEF_VAL_T(iterator_t<_Range>, _Proj)>
│ │ │ │ +
427 requires indirectly_comparable<iterator_t<_Range>, const _Tp*,
│ │ │ │ +
428 _Pred, _Proj>
│ │ │ │ +
429 constexpr borrowed_subrange_t<_Range>
│ │ │ │ +
430 operator()(_Range&& __r, range_difference_t<_Range> __count,
│ │ │ │ +
431 const _Tp& __value, _Pred __pred = {}, _Proj __proj = {}) const
│ │ │ │ +
432 {
│ │ │ │ +
433 return (*this)(ranges::begin(__r), ranges::end(__r),
│ │ │ │ +
434 std::move(__count), __value,
│ │ │ │ +
435 std::move(__pred), std::move(__proj));
│ │ │ │ +
436 }
│ │ │ │ +
437 };
│ │ │ │ +
438
│ │ │ │ +
439 inline constexpr __search_n_fn search_n{};
│ │ │ │ +
440
│ │ │ │ +
441 struct __find_end_fn
│ │ │ │ +
442 {
│ │ │ │ +
443 template<forward_iterator _Iter1, sentinel_for<_Iter1> _Sent1,
│ │ │ │ +
444 forward_iterator _Iter2, sentinel_for<_Iter2> _Sent2,
│ │ │ │ +
445 typename _Pred = ranges::equal_to,
│ │ │ │ +
446 typename _Proj1 = identity, typename _Proj2 = identity>
│ │ │ │ +
447 requires indirectly_comparable<_Iter1, _Iter2, _Pred, _Proj1, _Proj2>
│ │ │ │ +
448 constexpr subrange<_Iter1>
│ │ │ │ +
449 operator()(_Iter1 __first1, _Sent1 __last1,
│ │ │ │ +
450 _Iter2 __first2, _Sent2 __last2, _Pred __pred = {},
│ │ │ │ +
451 _Proj1 __proj1 = {}, _Proj2 __proj2 = {}) const
│ │ │ │ +
452 {
│ │ │ │ +
453 if constexpr (bidirectional_iterator<_Iter1>
│ │ │ │ +
454 && bidirectional_iterator<_Iter2>)
│ │ │ │ +
455 {
│ │ │ │ +
456 auto __i1 = ranges::next(__first1, __last1);
│ │ │ │ +
457 auto __i2 = ranges::next(__first2, __last2);
│ │ │ │ +
458 auto __rresult
│ │ │ │ +
459 = ranges::search(reverse_iterator<_Iter1>{__i1},
│ │ │ │ +
460 reverse_iterator<_Iter1>{__first1},
│ │ │ │ +
461 reverse_iterator<_Iter2>{__i2},
│ │ │ │ +
462 reverse_iterator<_Iter2>{__first2},
│ │ │ │ +
463 std::move(__pred),
│ │ │ │ +
464 std::move(__proj1), std::move(__proj2));
│ │ │ │ +
465 auto __result_first = ranges::end(__rresult).base();
│ │ │ │ +
466 auto __result_last = ranges::begin(__rresult).base();
│ │ │ │ +
467 if (__result_last == __first1)
│ │ │ │ +
468 return {__i1, __i1};
│ │ │ │ +
469 else
│ │ │ │ +
470 return {__result_first, __result_last};
│ │ │ │ +
471 }
│ │ │ │ +
472 else
│ │ │ │ +
473 {
│ │ │ │ +
474 auto __i = ranges::next(__first1, __last1);
│ │ │ │ +
475 if (__first2 == __last2)
│ │ │ │ +
476 return {__i, __i};
│ │ │ │ +
477
│ │ │ │ +
478 auto __result_begin = __i;
│ │ │ │ +
479 auto __result_end = __i;
│ │ │ │ +
480 for (;;)
│ │ │ │ +
481 {
│ │ │ │ +
482 auto __new_range = ranges::search(__first1, __last1,
│ │ │ │ +
483 __first2, __last2,
│ │ │ │ +
484 __pred, __proj1, __proj2);
│ │ │ │ +
485 auto __new_result_begin = ranges::begin(__new_range);
│ │ │ │ +
486 auto __new_result_end = ranges::end(__new_range);
│ │ │ │ +
487 if (__new_result_begin == __last1)
│ │ │ │ +
488 return {__result_begin, __result_end};
│ │ │ │ +
489 else
│ │ │ │ +
490 {
│ │ │ │ +
491 __result_begin = __new_result_begin;
│ │ │ │ +
492 __result_end = __new_result_end;
│ │ │ │ +
493 __first1 = __result_begin;
│ │ │ │ +
494 ++__first1;
│ │ │ │ +
495 }
│ │ │ │ +
496 }
│ │ │ │ +
497 }
│ │ │ │ +
498 }
│ │ │ │ +
499
│ │ │ │ +
500 template<forward_range _Range1, forward_range _Range2,
│ │ │ │ +
501 typename _Pred = ranges::equal_to,
│ │ │ │ +
502 typename _Proj1 = identity, typename _Proj2 = identity>
│ │ │ │ +
503 requires indirectly_comparable<iterator_t<_Range1>, iterator_t<_Range2>,
│ │ │ │ +
504 _Pred, _Proj1, _Proj2>
│ │ │ │ +
505 constexpr borrowed_subrange_t<_Range1>
│ │ │ │ +
506 operator()(_Range1&& __r1, _Range2&& __r2, _Pred __pred = {},
│ │ │ │ +
507 _Proj1 __proj1 = {}, _Proj2 __proj2 = {}) const
│ │ │ │ +
508 {
│ │ │ │ +
509 return (*this)(ranges::begin(__r1), ranges::end(__r1),
│ │ │ │ +
510 ranges::begin(__r2), ranges::end(__r2),
│ │ │ │ +
511 std::move(__pred),
│ │ │ │ +
512 std::move(__proj1), std::move(__proj2));
│ │ │ │ +
513 }
│ │ │ │ +
514 };
│ │ │ │ +
515
│ │ │ │ +
516 inline constexpr __find_end_fn find_end{};
│ │ │ │ +
517
│ │ │ │ +
518 // adjacent_find is defined in <bits/ranges_util.h>.
│ │ │ │ +
519
│ │ │ │ +
520 struct __is_permutation_fn
│ │ │ │ +
521 {
│ │ │ │ +
522 template<forward_iterator _Iter1, sentinel_for<_Iter1> _Sent1,
│ │ │ │ +
523 forward_iterator _Iter2, sentinel_for<_Iter2> _Sent2,
│ │ │ │ +
524 typename _Proj1 = identity, typename _Proj2 = identity,
│ │ │ │ +
525 indirect_equivalence_relation<projected<_Iter1, _Proj1>,
│ │ │ │ +
526 projected<_Iter2, _Proj2>> _Pred
│ │ │ │ +
527 = ranges::equal_to>
│ │ │ │ +
528 constexpr bool
│ │ │ │ +
529 operator()(_Iter1 __first1, _Sent1 __last1,
│ │ │ │ +
530 _Iter2 __first2, _Sent2 __last2, _Pred __pred = {},
│ │ │ │ +
531 _Proj1 __proj1 = {}, _Proj2 __proj2 = {}) const
│ │ │ │ +
532 {
│ │ │ │ +
533 constexpr bool __sized_iters
│ │ │ │ +
534 = (sized_sentinel_for<_Sent1, _Iter1>
│ │ │ │ +
535 && sized_sentinel_for<_Sent2, _Iter2>);
│ │ │ │ +
536 if constexpr (__sized_iters)
│ │ │ │ +
537 {
│ │ │ │ +
538 auto __d1 = ranges::distance(__first1, __last1);
│ │ │ │ +
539 auto __d2 = ranges::distance(__first2, __last2);
│ │ │ │ +
540 if (__d1 != __d2)
│ │ │ │ +
541 return false;
│ │ │ │ +
542 }
│ │ │ │ +
543
│ │ │ │ +
544 // Efficiently compare identical prefixes: O(N) if sequences
│ │ │ │ +
545 // have the same elements in the same order.
│ │ │ │ +
546 for (; __first1 != __last1 && __first2 != __last2;
│ │ │ │ +
547 ++__first1, (void)++__first2)
│ │ │ │ +
548 if (!(bool)std::__invoke(__pred,
│ │ │ │ +
549 std::__invoke(__proj1, *__first1),
│ │ │ │ +
550 std::__invoke(__proj2, *__first2)))
│ │ │ │ +
551 break;
│ │ │ │ +
552
│ │ │ │ +
553 if constexpr (__sized_iters)
│ │ │ │ +
554 {
│ │ │ │ +
555 if (__first1 == __last1)
│ │ │ │ +
556 return true;
│ │ │ │ +
557 }
│ │ │ │ +
558 else
│ │ │ │ +
559 {
│ │ │ │ +
560 auto __d1 = ranges::distance(__first1, __last1);
│ │ │ │ +
561 auto __d2 = ranges::distance(__first2, __last2);
│ │ │ │ +
562 if (__d1 == 0 && __d2 == 0)
│ │ │ │ +
563 return true;
│ │ │ │ +
564 if (__d1 != __d2)
│ │ │ │ +
565 return false;
│ │ │ │ +
566 }
│ │ │ │ +
567
│ │ │ │ +
568 for (auto __scan = __first1; __scan != __last1; ++__scan)
│ │ │ │ +
569 {
│ │ │ │ +
570 auto&& __scan_deref = *__scan;
│ │ │ │ +
571 auto&& __proj_scan =
│ │ │ │ +
572 std::__invoke(__proj1, std::forward<decltype(__scan_deref)>(__scan_deref));
│ │ │ │ +
573 auto __comp_scan = [&] <typename _Tp> (_Tp&& __arg) -> bool {
│ │ │ │ +
574 return std::__invoke(__pred,
│ │ │ │ +
575 std::forward<decltype(__proj_scan)>(__proj_scan),
│ │ │ │ +
576 std::forward<_Tp>(__arg));
│ │ │ │ +
577 };
│ │ │ │ +
578 if (__scan != ranges::find_if(__first1, __scan,
│ │ │ │ +
579 __comp_scan, __proj1))
│ │ │ │ +
580 continue; // We've seen this one before.
│ │ │ │ +
581
│ │ │ │ +
582 auto __matches = ranges::count_if(__first2, __last2,
│ │ │ │ +
583 __comp_scan, __proj2);
│ │ │ │ +
584 if (__matches == 0
│ │ │ │ +
585 || ranges::count_if(__scan, __last1,
│ │ │ │ +
586 __comp_scan, __proj1) != __matches)
│ │ │ │ +
587 return false;
│ │ │ │ +
588 }
│ │ │ │ +
589 return true;
│ │ │ │ +
590 }
│ │ │ │ +
591
│ │ │ │ +
592 template<forward_range _Range1, forward_range _Range2,
│ │ │ │ +
593 typename _Proj1 = identity, typename _Proj2 = identity,
│ │ │ │ +
594 indirect_equivalence_relation<
│ │ │ │ +
595 projected<iterator_t<_Range1>, _Proj1>,
│ │ │ │ +
596 projected<iterator_t<_Range2>, _Proj2>> _Pred = ranges::equal_to>
│ │ │ │ +
597 constexpr bool
│ │ │ │ +
598 operator()(_Range1&& __r1, _Range2&& __r2, _Pred __pred = {},
│ │ │ │ +
599 _Proj1 __proj1 = {}, _Proj2 __proj2 = {}) const
│ │ │ │ +
600 {
│ │ │ │ +
601 // _GLIBCXX_RESOLVE_LIB_DEFECTS
│ │ │ │ +
602 // 3560. ranges::is_permutation should short-circuit for sized_ranges
│ │ │ │ +
603 if constexpr (sized_range<_Range1>)
│ │ │ │ +
604 if constexpr (sized_range<_Range2>)
│ │ │ │ +
605 if (ranges::distance(__r1) != ranges::distance(__r2))
│ │ │ │ +
606 return false;
│ │ │ │ +
607
│ │ │ │ +
608 return (*this)(ranges::begin(__r1), ranges::end(__r1),
│ │ │ │ +
609 ranges::begin(__r2), ranges::end(__r2),
│ │ │ │ +
610 std::move(__pred),
│ │ │ │ +
611 std::move(__proj1), std::move(__proj2));
│ │ │ │ +
612 }
│ │ │ │ +
613 };
│ │ │ │ +
614
│ │ │ │ +
615 inline constexpr __is_permutation_fn is_permutation{};
│ │ │ │ +
616
│ │ │ │ +
617 template<typename _Iter, typename _Out>
│ │ │ │ +
618 using copy_if_result = in_out_result<_Iter, _Out>;
│ │ │ │ +
619
│ │ │ │ +
620 struct __copy_if_fn
│ │ │ │ +
621 {
│ │ │ │ +
622 template<input_iterator _Iter, sentinel_for<_Iter> _Sent,
│ │ │ │ +
623 weakly_incrementable _Out, typename _Proj = identity,
│ │ │ │ +
624 indirect_unary_predicate<projected<_Iter, _Proj>> _Pred>
│ │ │ │ +
625 requires indirectly_copyable<_Iter, _Out>
│ │ │ │ +
626 constexpr copy_if_result<_Iter, _Out>
│ │ │ │ +
627 operator()(_Iter __first, _Sent __last, _Out __result,
│ │ │ │ +
628 _Pred __pred, _Proj __proj = {}) const
│ │ │ │ +
629 {
│ │ │ │ +
630 for (; __first != __last; ++__first)
│ │ │ │ +
631 if (std::__invoke(__pred, std::__invoke(__proj, *__first)))
│ │ │ │ +
632 {
│ │ │ │ +
633 *__result = *__first;
│ │ │ │ +
634 ++__result;
│ │ │ │ +
635 }
│ │ │ │ +
636 return {std::move(__first), std::move(__result)};
│ │ │ │ +
637 }
│ │ │ │ +
638
│ │ │ │ +
639 template<input_range _Range, weakly_incrementable _Out,
│ │ │ │ +
640 typename _Proj = identity,
│ │ │ │ +
641 indirect_unary_predicate<projected<iterator_t<_Range>, _Proj>>
│ │ │ │ +
642 _Pred>
│ │ │ │ +
643 requires indirectly_copyable<iterator_t<_Range>, _Out>
│ │ │ │ +
644 constexpr copy_if_result<borrowed_iterator_t<_Range>, _Out>
│ │ │ │ +
645 operator()(_Range&& __r, _Out __result,
│ │ │ │ +
646 _Pred __pred, _Proj __proj = {}) const
│ │ │ │ +
647 {
│ │ │ │ +
648 return (*this)(ranges::begin(__r), ranges::end(__r),
│ │ │ │ +
649 std::move(__result),
│ │ │ │ +
650 std::move(__pred), std::move(__proj));
│ │ │ │ +
651 }
│ │ │ │ +
652 };
│ │ │ │ +
653
│ │ │ │ +
654 inline constexpr __copy_if_fn copy_if{};
│ │ │ │ +
655
│ │ │ │ +
656 template<typename _Iter1, typename _Iter2>
│ │ │ │ +
657 using swap_ranges_result = in_in_result<_Iter1, _Iter2>;
│ │ │ │ +
658
│ │ │ │ +
659 struct __swap_ranges_fn
│ │ │ │ +
660 {
│ │ │ │ +
661 template<input_iterator _Iter1, sentinel_for<_Iter1> _Sent1,
│ │ │ │ +
662 input_iterator _Iter2, sentinel_for<_Iter2> _Sent2>
│ │ │ │ +
663 requires indirectly_swappable<_Iter1, _Iter2>
│ │ │ │ +
664 constexpr swap_ranges_result<_Iter1, _Iter2>
│ │ │ │ +
665 operator()(_Iter1 __first1, _Sent1 __last1,
│ │ │ │ +
666 _Iter2 __first2, _Sent2 __last2) const
│ │ │ │ +
667 {
│ │ │ │ +
668 for (; __first1 != __last1 && __first2 != __last2;
│ │ │ │ +
669 ++__first1, (void)++__first2)
│ │ │ │ +
670 ranges::iter_swap(__first1, __first2);
│ │ │ │ +
671 return {std::move(__first1), std::move(__first2)};
│ │ │ │ +
672 }
│ │ │ │ +
673
│ │ │ │ +
674 template<input_range _Range1, input_range _Range2>
│ │ │ │ +
675 requires indirectly_swappable<iterator_t<_Range1>, iterator_t<_Range2>>
│ │ │ │ +
676 constexpr swap_ranges_result<borrowed_iterator_t<_Range1>,
│ │ │ │ +
677 borrowed_iterator_t<_Range2>>
│ │ │ │ +
678 operator()(_Range1&& __r1, _Range2&& __r2) const
│ │ │ │ +
679 {
│ │ │ │ +
680 return (*this)(ranges::begin(__r1), ranges::end(__r1),
│ │ │ │ +
681 ranges::begin(__r2), ranges::end(__r2));
│ │ │ │ +
682 }
│ │ │ │ +
683 };
│ │ │ │ +
684
│ │ │ │ +
685 inline constexpr __swap_ranges_fn swap_ranges{};
│ │ │ │ +
686
│ │ │ │ +
687 template<typename _Iter, typename _Out>
│ │ │ │ +
688 using unary_transform_result = in_out_result<_Iter, _Out>;
│ │ │ │ +
689
│ │ │ │ +
690 template<typename _Iter1, typename _Iter2, typename _Out>
│ │ │ │ +
691 struct in_in_out_result
│ │ │ │ +
692 {
│ │ │ │ +
693 [[no_unique_address]] _Iter1 in1;
│ │ │ │ +
694 [[no_unique_address]] _Iter2 in2;
│ │ │ │ +
695 [[no_unique_address]] _Out out;
│ │ │ │ +
696
│ │ │ │ +
697 template<typename _IIter1, typename _IIter2, typename _OOut>
│ │ │ │ +
698 requires convertible_to<const _Iter1&, _IIter1>
│ │ │ │ +
699 && convertible_to<const _Iter2&, _IIter2>
│ │ │ │ +
700 && convertible_to<const _Out&, _OOut>
│ │ │ │ +
701 constexpr
│ │ │ │ +
702 operator in_in_out_result<_IIter1, _IIter2, _OOut>() const &
│ │ │ │ +
703 { return {in1, in2, out}; }
│ │ │ │ +
704
│ │ │ │ +
705 template<typename _IIter1, typename _IIter2, typename _OOut>
│ │ │ │ +
706 requires convertible_to<_Iter1, _IIter1>
│ │ │ │ +
707 && convertible_to<_Iter2, _IIter2>
│ │ │ │ +
708 && convertible_to<_Out, _OOut>
│ │ │ │ +
709 constexpr
│ │ │ │ +
710 operator in_in_out_result<_IIter1, _IIter2, _OOut>() &&
│ │ │ │ +
711 { return {std::move(in1), std::move(in2), std::move(out)}; }
│ │ │ │ +
712 };
│ │ │ │ +
713
│ │ │ │ +
714 template<typename _Iter1, typename _Iter2, typename _Out>
│ │ │ │ +
715 using binary_transform_result = in_in_out_result<_Iter1, _Iter2, _Out>;
│ │ │ │ +
716
│ │ │ │ +
717 struct __transform_fn
│ │ │ │ +
718 {
│ │ │ │ +
719 template<input_iterator _Iter, sentinel_for<_Iter> _Sent,
│ │ │ │ +
720 weakly_incrementable _Out,
│ │ │ │ +
721 copy_constructible _Fp, typename _Proj = identity>
│ │ │ │ +
722 requires indirectly_writable<_Out,
│ │ │ │ +
723 indirect_result_t<_Fp&,
│ │ │ │ +
724 projected<_Iter, _Proj>>>
│ │ │ │ +
725 constexpr unary_transform_result<_Iter, _Out>
│ │ │ │ +
726 operator()(_Iter __first1, _Sent __last1, _Out __result,
│ │ │ │ +
727 _Fp __op, _Proj __proj = {}) const
│ │ │ │ +
728 {
│ │ │ │ +
729 for (; __first1 != __last1; ++__first1, (void)++__result)
│ │ │ │ +
730 *__result = std::__invoke(__op, std::__invoke(__proj, *__first1));
│ │ │ │ +
731 return {std::move(__first1), std::move(__result)};
│ │ │ │ +
732 }
│ │ │ │ +
733
│ │ │ │ +
734 template<input_range _Range, weakly_incrementable _Out,
│ │ │ │ +
735 copy_constructible _Fp, typename _Proj = identity>
│ │ │ │ +
736 requires indirectly_writable<_Out,
│ │ │ │ +
737 indirect_result_t<_Fp&,
│ │ │ │ +
738 projected<iterator_t<_Range>, _Proj>>>
│ │ │ │ +
739 constexpr unary_transform_result<borrowed_iterator_t<_Range>, _Out>
│ │ │ │ +
740 operator()(_Range&& __r, _Out __result, _Fp __op, _Proj __proj = {}) const
│ │ │ │ +
741 {
│ │ │ │ +
742 return (*this)(ranges::begin(__r), ranges::end(__r),
│ │ │ │ +
743 std::move(__result),
│ │ │ │ +
744 std::move(__op), std::move(__proj));
│ │ │ │ +
745 }
│ │ │ │ +
746
│ │ │ │ +
747 template<input_iterator _Iter1, sentinel_for<_Iter1> _Sent1,
│ │ │ │ +
748 input_iterator _Iter2, sentinel_for<_Iter2> _Sent2,
│ │ │ │ +
749 weakly_incrementable _Out, copy_constructible _Fp,
│ │ │ │ +
750 typename _Proj1 = identity, typename _Proj2 = identity>
│ │ │ │ +
751 requires indirectly_writable<_Out,
│ │ │ │ +
752 indirect_result_t<_Fp&,
│ │ │ │ +
753 projected<_Iter1, _Proj1>,
│ │ │ │ +
754 projected<_Iter2, _Proj2>>>
│ │ │ │ +
755 constexpr binary_transform_result<_Iter1, _Iter2, _Out>
│ │ │ │ +
756 operator()(_Iter1 __first1, _Sent1 __last1,
│ │ │ │ +
757 _Iter2 __first2, _Sent2 __last2,
│ │ │ │ +
758 _Out __result, _Fp __binary_op,
│ │ │ │ +
759 _Proj1 __proj1 = {}, _Proj2 __proj2 = {}) const
│ │ │ │ +
760 {
│ │ │ │ +
761 for (; __first1 != __last1 && __first2 != __last2;
│ │ │ │ +
762 ++__first1, (void)++__first2, ++__result)
│ │ │ │ +
763 *__result = std::__invoke(__binary_op,
│ │ │ │ +
764 std::__invoke(__proj1, *__first1),
│ │ │ │ +
765 std::__invoke(__proj2, *__first2));
│ │ │ │ +
766 return {std::move(__first1), std::move(__first2), std::move(__result)};
│ │ │ │ +
767 }
│ │ │ │ +
768
│ │ │ │ +
769 template<input_range _Range1, input_range _Range2,
│ │ │ │ +
770 weakly_incrementable _Out, copy_constructible _Fp,
│ │ │ │ +
771 typename _Proj1 = identity, typename _Proj2 = identity>
│ │ │ │ +
772 requires indirectly_writable<_Out,
│ │ │ │ +
773 indirect_result_t<_Fp&,
│ │ │ │ +
774 projected<iterator_t<_Range1>, _Proj1>,
│ │ │ │ +
775 projected<iterator_t<_Range2>, _Proj2>>>
│ │ │ │ +
776 constexpr binary_transform_result<borrowed_iterator_t<_Range1>,
│ │ │ │ +
777 borrowed_iterator_t<_Range2>, _Out>
│ │ │ │ +
778 operator()(_Range1&& __r1, _Range2&& __r2, _Out __result, _Fp __binary_op,
│ │ │ │ +
779 _Proj1 __proj1 = {}, _Proj2 __proj2 = {}) const
│ │ │ │ +
780 {
│ │ │ │ +
781 return (*this)(ranges::begin(__r1), ranges::end(__r1),
│ │ │ │ +
782 ranges::begin(__r2), ranges::end(__r2),
│ │ │ │ +
783 std::move(__result), std::move(__binary_op),
│ │ │ │ +
784 std::move(__proj1), std::move(__proj2));
│ │ │ │ +
785 }
│ │ │ │ +
786 };
│ │ │ │ +
787
│ │ │ │ +
788 inline constexpr __transform_fn transform{};
│ │ │ │ +
789
│ │ │ │ +
790 struct __replace_fn
│ │ │ │ +
791 {
│ │ │ │ +
792 template<input_iterator _Iter, sentinel_for<_Iter> _Sent,
│ │ │ │ +
793 typename _Proj = identity,
│ │ │ │ +
794 typename _Tp1 _GLIBCXX26_RANGE_ALGO_DEF_VAL_T(_Iter, _Proj),
│ │ │ │ +
795 typename _Tp2 _GLIBCXX26_DEF_VAL_T(_Tp1)>
│ │ │ │ +
796 requires indirectly_writable<_Iter, const _Tp2&>
│ │ │ │ +
797 && indirect_binary_predicate<ranges::equal_to, projected<_Iter, _Proj>,
│ │ │ │ +
798 const _Tp1*>
│ │ │ │ +
799 constexpr _Iter
│ │ │ │ +
800 operator()(_Iter __first, _Sent __last,
│ │ │ │ +
801 const _Tp1& __old_value, const _Tp2& __new_value,
│ │ │ │ +
802 _Proj __proj = {}) const
│ │ │ │ +
803 {
│ │ │ │ +
804 for (; __first != __last; ++__first)
│ │ │ │ +
805 if (std::__invoke(__proj, *__first) == __old_value)
│ │ │ │ +
806 *__first = __new_value;
│ │ │ │ +
807 return __first;
│ │ │ │ +
808 }
│ │ │ │ +
809
│ │ │ │ +
810 template<input_range _Range, typename _Proj = identity,
│ │ │ │ +
811 typename _Tp1
│ │ │ │ +
812 _GLIBCXX26_RANGE_ALGO_DEF_VAL_T(iterator_t<_Range>, _Proj),
│ │ │ │ +
813 typename _Tp2 _GLIBCXX26_DEF_VAL_T(_Tp1)>
│ │ │ │ +
814 requires indirectly_writable<iterator_t<_Range>, const _Tp2&>
│ │ │ │ +
815 && indirect_binary_predicate<ranges::equal_to,
│ │ │ │ +
816 projected<iterator_t<_Range>, _Proj>,
│ │ │ │ +
817 const _Tp1*>
│ │ │ │ +
818 constexpr borrowed_iterator_t<_Range>
│ │ │ │ +
819 operator()(_Range&& __r,
│ │ │ │ +
820 const _Tp1& __old_value, const _Tp2& __new_value,
│ │ │ │ +
821 _Proj __proj = {}) const
│ │ │ │ +
822 {
│ │ │ │ +
823 return (*this)(ranges::begin(__r), ranges::end(__r),
│ │ │ │ +
824 __old_value, __new_value, std::move(__proj));
│ │ │ │ +
825 }
│ │ │ │ +
826 };
│ │ │ │ +
827
│ │ │ │ +
828 inline constexpr __replace_fn replace{};
│ │ │ │ +
829
│ │ │ │ +
830 struct __replace_if_fn
│ │ │ │ +
831 {
│ │ │ │ +
832 template<input_iterator _Iter, sentinel_for<_Iter> _Sent,
│ │ │ │ +
833 typename _Proj = identity,
│ │ │ │ +
834 typename _Tp _GLIBCXX26_RANGE_ALGO_DEF_VAL_T(_Iter, _Proj),
│ │ │ │ +
835 indirect_unary_predicate<projected<_Iter, _Proj>> _Pred>
│ │ │ │ +
836 requires indirectly_writable<_Iter, const _Tp&>
│ │ │ │ +
837 constexpr _Iter
│ │ │ │ +
838 operator()(_Iter __first, _Sent __last,
│ │ │ │ +
839 _Pred __pred, const _Tp& __new_value, _Proj __proj = {}) const
│ │ │ │ +
840 {
│ │ │ │ +
841 for (; __first != __last; ++__first)
│ │ │ │ +
842 if (std::__invoke(__pred, std::__invoke(__proj, *__first)))
│ │ │ │ +
843 *__first = __new_value;
│ │ │ │ +
844 return std::move(__first);
│ │ │ │ +
845 }
│ │ │ │ +
846
│ │ │ │ +
847 template<input_range _Range, typename _Proj = identity,
│ │ │ │ +
848 typename _Tp
│ │ │ │ +
849 _GLIBCXX26_RANGE_ALGO_DEF_VAL_T(iterator_t<_Range>, _Proj),
│ │ │ │ +
850 indirect_unary_predicate<projected<iterator_t<_Range>, _Proj>>
│ │ │ │ +
851 _Pred>
│ │ │ │ +
852 requires indirectly_writable<iterator_t<_Range>, const _Tp&>
│ │ │ │ +
853 constexpr borrowed_iterator_t<_Range>
│ │ │ │ +
854 operator()(_Range&& __r,
│ │ │ │ +
855 _Pred __pred, const _Tp& __new_value, _Proj __proj = {}) const
│ │ │ │ +
856 {
│ │ │ │ +
857 return (*this)(ranges::begin(__r), ranges::end(__r),
│ │ │ │ +
858 std::move(__pred), __new_value, std::move(__proj));
│ │ │ │ +
859 }
│ │ │ │ +
860 };
│ │ │ │ +
861
│ │ │ │ +
862 inline constexpr __replace_if_fn replace_if{};
│ │ │ │ +
863
│ │ │ │ +
864 template<typename _Iter, typename _Out>
│ │ │ │ +
865 using replace_copy_result = in_out_result<_Iter, _Out>;
│ │ │ │ +
866
│ │ │ │ +
867 struct __replace_copy_fn
│ │ │ │ +
868 {
│ │ │ │ +
869 template<input_iterator _Iter, sentinel_for<_Iter> _Sent,
│ │ │ │ +
870 typename _Out, typename _Proj = identity,
│ │ │ │ +
871 typename _Tp1 _GLIBCXX26_RANGE_ALGO_DEF_VAL_T(_Iter, _Proj),
│ │ │ │ +
872 typename _Tp2 _GLIBCXX26_DEF_VAL_T(iter_value_t<_Out>)>
│ │ │ │ +
873 requires indirectly_copyable<_Iter, _Out>
│ │ │ │ +
874 && indirect_binary_predicate<ranges::equal_to,
│ │ │ │ +
875 projected<_Iter, _Proj>, const _Tp1*>
│ │ │ │ +
876 && output_iterator<_Out, const _Tp2&>
│ │ │ │ +
877 constexpr replace_copy_result<_Iter, _Out>
│ │ │ │ +
878 operator()(_Iter __first, _Sent __last, _Out __result,
│ │ │ │ +
879 const _Tp1& __old_value, const _Tp2& __new_value,
│ │ │ │ +
880 _Proj __proj = {}) const
│ │ │ │ +
881 {
│ │ │ │ +
882 for (; __first != __last; ++__first, (void)++__result)
│ │ │ │ +
883 if (std::__invoke(__proj, *__first) == __old_value)
│ │ │ │ +
884 *__result = __new_value;
│ │ │ │ +
885 else
│ │ │ │ +
886 *__result = *__first;
│ │ │ │ +
887 return {std::move(__first), std::move(__result)};
│ │ │ │ +
888 }
│ │ │ │ +
889
│ │ │ │ +
890 template<input_range _Range, typename _Out,
│ │ │ │ +
891 typename _Proj = identity,
│ │ │ │ +
892 typename _Tp1
│ │ │ │ +
893 _GLIBCXX26_RANGE_ALGO_DEF_VAL_T(iterator_t<_Range>, _Proj),
│ │ │ │ +
894 typename _Tp2 _GLIBCXX26_DEF_VAL_T(iter_value_t<_Out>)>
│ │ │ │ +
895 requires indirectly_copyable<iterator_t<_Range>, _Out>
│ │ │ │ +
896 && indirect_binary_predicate<ranges::equal_to,
│ │ │ │ +
897 projected<iterator_t<_Range>, _Proj>,
│ │ │ │ +
898 const _Tp1*>
│ │ │ │ +
899 && output_iterator<_Out, const _Tp2&>
│ │ │ │ +
900 constexpr replace_copy_result<borrowed_iterator_t<_Range>, _Out>
│ │ │ │ +
901 operator()(_Range&& __r, _Out __result,
│ │ │ │ +
902 const _Tp1& __old_value, const _Tp2& __new_value,
│ │ │ │ +
903 _Proj __proj = {}) const
│ │ │ │ +
904 {
│ │ │ │ +
905 return (*this)(ranges::begin(__r), ranges::end(__r),
│ │ │ │ +
906 std::move(__result), __old_value,
│ │ │ │ +
907 __new_value, std::move(__proj));
│ │ │ │ +
908 }
│ │ │ │ +
909 };
│ │ │ │ +
910
│ │ │ │ +
911 inline constexpr __replace_copy_fn replace_copy{};
│ │ │ │ +
912
│ │ │ │ +
913 template<typename _Iter, typename _Out>
│ │ │ │ +
914 using replace_copy_if_result = in_out_result<_Iter, _Out>;
│ │ │ │ +
915
│ │ │ │ +
916 struct __replace_copy_if_fn
│ │ │ │ +
917 {
│ │ │ │ +
918 template<input_iterator _Iter, sentinel_for<_Iter> _Sent,
│ │ │ │ +
919 typename _Out,
│ │ │ │ +
920 typename _Tp _GLIBCXX26_DEF_VAL_T(iter_value_t<_Out>),
│ │ │ │ +
921 typename _Proj = identity,
│ │ │ │ +
922 indirect_unary_predicate<projected<_Iter, _Proj>> _Pred>
│ │ │ │ +
923 requires indirectly_copyable<_Iter, _Out>
│ │ │ │ +
924 && output_iterator<_Out, const _Tp&>
│ │ │ │ +
925 constexpr replace_copy_if_result<_Iter, _Out>
│ │ │ │ +
926 operator()(_Iter __first, _Sent __last, _Out __result,
│ │ │ │ +
927 _Pred __pred, const _Tp& __new_value, _Proj __proj = {}) const
│ │ │ │ +
928 {
│ │ │ │ +
929 for (; __first != __last; ++__first, (void)++__result)
│ │ │ │ +
930 if (std::__invoke(__pred, std::__invoke(__proj, *__first)))
│ │ │ │ +
931 *__result = __new_value;
│ │ │ │ +
932 else
│ │ │ │ +
933 *__result = *__first;
│ │ │ │ +
934 return {std::move(__first), std::move(__result)};
│ │ │ │ +
935 }
│ │ │ │ +
936
│ │ │ │ +
937 template<input_range _Range,
│ │ │ │ +
938 typename _Out,
│ │ │ │ +
939 typename _Tp _GLIBCXX26_DEF_VAL_T(iter_value_t<_Out>),
│ │ │ │ +
940 typename _Proj = identity,
│ │ │ │ +
941 indirect_unary_predicate<projected<iterator_t<_Range>, _Proj>>
│ │ │ │ +
942 _Pred>
│ │ │ │ +
943 requires indirectly_copyable<iterator_t<_Range>, _Out>
│ │ │ │ +
944 && output_iterator<_Out, const _Tp&>
│ │ │ │ +
945 constexpr replace_copy_if_result<borrowed_iterator_t<_Range>, _Out>
│ │ │ │ +
946 operator()(_Range&& __r, _Out __result,
│ │ │ │ +
947 _Pred __pred, const _Tp& __new_value, _Proj __proj = {}) const
│ │ │ │ +
948 {
│ │ │ │ +
949 return (*this)(ranges::begin(__r), ranges::end(__r),
│ │ │ │ +
950 std::move(__result), std::move(__pred),
│ │ │ │ +
951 __new_value, std::move(__proj));
│ │ │ │ +
952 }
│ │ │ │ +
953 };
│ │ │ │ +
954
│ │ │ │ +
955 inline constexpr __replace_copy_if_fn replace_copy_if{};
│ │ │ │ +
956
│ │ │ │ +
957 struct __generate_n_fn
│ │ │ │ +
958 {
│ │ │ │ +
959 template<input_or_output_iterator _Out, copy_constructible _Fp>
│ │ │ │ +
960 requires invocable<_Fp&>
│ │ │ │ +
961 && indirectly_writable<_Out, invoke_result_t<_Fp&>>
│ │ │ │ +
962 constexpr _Out
│ │ │ │ +
963 operator()(_Out __first, iter_difference_t<_Out> __n, _Fp __gen) const
│ │ │ │ +
964 {
│ │ │ │ +
965 for (; __n > 0; --__n, (void)++__first)
│ │ │ │ +
966 *__first = std::__invoke(__gen);
│ │ │ │ +
967 return __first;
│ │ │ │ +
968 }
│ │ │ │ +
969 };
│ │ │ │ +
970
│ │ │ │ +
971 inline constexpr __generate_n_fn generate_n{};
│ │ │ │ +
972
│ │ │ │ +
973 struct __generate_fn
│ │ │ │ +
974 {
│ │ │ │ +
975 template<input_or_output_iterator _Out, sentinel_for<_Out> _Sent,
│ │ │ │ +
976 copy_constructible _Fp>
│ │ │ │ +
977 requires invocable<_Fp&>
│ │ │ │ +
978 && indirectly_writable<_Out, invoke_result_t<_Fp&>>
│ │ │ │ +
979 constexpr _Out
│ │ │ │ +
980 operator()(_Out __first, _Sent __last, _Fp __gen) const
│ │ │ │ +
981 {
│ │ │ │ +
982 for (; __first != __last; ++__first)
│ │ │ │ +
983 *__first = std::__invoke(__gen);
│ │ │ │ +
984 return __first;
│ │ │ │ +
985 }
│ │ │ │ +
986
│ │ │ │ +
987 template<typename _Range, copy_constructible _Fp>
│ │ │ │ +
988 requires invocable<_Fp&> && output_range<_Range, invoke_result_t<_Fp&>>
│ │ │ │ +
989 constexpr borrowed_iterator_t<_Range>
│ │ │ │ +
990 operator()(_Range&& __r, _Fp __gen) const
│ │ │ │ +
991 {
│ │ │ │ +
992 return (*this)(ranges::begin(__r), ranges::end(__r), std::move(__gen));
│ │ │ │ +
993 }
│ │ │ │ +
994 };
│ │ │ │ +
995
│ │ │ │ +
996 inline constexpr __generate_fn generate{};
│ │ │ │ +
997
│ │ │ │ +
998 struct __remove_if_fn
│ │ │ │ +
999 {
│ │ │ │ +
1000 template<permutable _Iter, sentinel_for<_Iter> _Sent,
│ │ │ │ +
1001 typename _Proj = identity,
│ │ │ │ +
1002 indirect_unary_predicate<projected<_Iter, _Proj>> _Pred>
│ │ │ │ +
1003 constexpr subrange<_Iter>
│ │ │ │ +
1004 operator()(_Iter __first, _Sent __last,
│ │ │ │ +
1005 _Pred __pred, _Proj __proj = {}) const
│ │ │ │ +
1006 {
│ │ │ │ +
1007 __first = ranges::find_if(__first, __last, __pred, __proj);
│ │ │ │ +
1008 if (__first == __last)
│ │ │ │ +
1009 return {__first, __first};
│ │ │ │ +
1010
│ │ │ │ +
1011 auto __result = __first;
│ │ │ │ +
1012 ++__first;
│ │ │ │ +
1013 for (; __first != __last; ++__first)
│ │ │ │ +
1014 if (!std::__invoke(__pred, std::__invoke(__proj, *__first)))
│ │ │ │ +
1015 {
│ │ │ │ +
1016 *__result = std::move(*__first);
│ │ │ │ +
1017 ++__result;
│ │ │ │ +
1018 }
│ │ │ │ +
1019
│ │ │ │ +
1020 return {__result, __first};
│ │ │ │ +
1021 }
│ │ │ │ +
1022
│ │ │ │ +
1023 template<forward_range _Range, typename _Proj = identity,
│ │ │ │ +
1024 indirect_unary_predicate<projected<iterator_t<_Range>, _Proj>>
│ │ │ │ +
1025 _Pred>
│ │ │ │ +
1026 requires permutable<iterator_t<_Range>>
│ │ │ │ +
1027 constexpr borrowed_subrange_t<_Range>
│ │ │ │ +
1028 operator()(_Range&& __r, _Pred __pred, _Proj __proj = {}) const
│ │ │ │ +
1029 {
│ │ │ │ +
1030 return (*this)(ranges::begin(__r), ranges::end(__r),
│ │ │ │ +
1031 std::move(__pred), std::move(__proj));
│ │ │ │ +
1032 }
│ │ │ │ +
1033 };
│ │ │ │ +
1034
│ │ │ │ +
1035 inline constexpr __remove_if_fn remove_if{};
│ │ │ │ +
1036
│ │ │ │ +
1037 struct __remove_fn
│ │ │ │ +
1038 {
│ │ │ │ +
1039 template<permutable _Iter, sentinel_for<_Iter> _Sent,
│ │ │ │ +
1040 typename _Proj = identity,
│ │ │ │ +
1041 typename _Tp _GLIBCXX26_RANGE_ALGO_DEF_VAL_T(_Iter, _Proj)>
│ │ │ │ +
1042 requires indirect_binary_predicate<ranges::equal_to,
│ │ │ │ +
1043 projected<_Iter, _Proj>,
│ │ │ │ +
1044 const _Tp*>
│ │ │ │ +
1045 constexpr subrange<_Iter>
│ │ │ │ +
1046 operator()(_Iter __first, _Sent __last,
│ │ │ │ +
1047 const _Tp& __value, _Proj __proj = {}) const
│ │ │ │ +
1048 {
│ │ │ │ +
1049 auto __pred = [&] (auto&& __arg) -> bool {
│ │ │ │ +
1050 return std::forward<decltype(__arg)>(__arg) == __value;
│ │ │ │ +
1051 };
│ │ │ │ +
1052 return ranges::remove_if(__first, __last,
│ │ │ │ +
1053 std::move(__pred), std::move(__proj));
│ │ │ │ +
1054 }
│ │ │ │ +
1055
│ │ │ │ +
1056 template<forward_range _Range, typename _Proj = identity,
│ │ │ │ +
1057 typename _Tp
│ │ │ │ +
1058 _GLIBCXX26_RANGE_ALGO_DEF_VAL_T(iterator_t<_Range>, _Proj)>
│ │ │ │ +
1059 requires permutable<iterator_t<_Range>>
│ │ │ │ +
1060 && indirect_binary_predicate<ranges::equal_to,
│ │ │ │ +
1061 projected<iterator_t<_Range>, _Proj>,
│ │ │ │ +
1062 const _Tp*>
│ │ │ │ +
1063 constexpr borrowed_subrange_t<_Range>
│ │ │ │ +
1064 operator()(_Range&& __r, const _Tp& __value, _Proj __proj = {}) const
│ │ │ │ +
1065 {
│ │ │ │ +
1066 return (*this)(ranges::begin(__r), ranges::end(__r),
│ │ │ │ +
1067 __value, std::move(__proj));
│ │ │ │ +
1068 }
│ │ │ │ +
1069 };
│ │ │ │ +
1070
│ │ │ │ +
1071 inline constexpr __remove_fn remove{};
│ │ │ │ +
1072
│ │ │ │ +
1073 template<typename _Iter, typename _Out>
│ │ │ │ +
1074 using remove_copy_if_result = in_out_result<_Iter, _Out>;
│ │ │ │ +
1075
│ │ │ │ +
1076 struct __remove_copy_if_fn
│ │ │ │ +
1077 {
│ │ │ │ +
1078 template<input_iterator _Iter, sentinel_for<_Iter> _Sent,
│ │ │ │ +
1079 weakly_incrementable _Out, typename _Proj = identity,
│ │ │ │ +
1080 indirect_unary_predicate<projected<_Iter, _Proj>> _Pred>
│ │ │ │ +
1081 requires indirectly_copyable<_Iter, _Out>
│ │ │ │ +
1082 constexpr remove_copy_if_result<_Iter, _Out>
│ │ │ │ +
1083 operator()(_Iter __first, _Sent __last, _Out __result,
│ │ │ │ +
1084 _Pred __pred, _Proj __proj = {}) const
│ │ │ │ +
1085 {
│ │ │ │ +
1086 for (; __first != __last; ++__first)
│ │ │ │ +
1087 if (!std::__invoke(__pred, std::__invoke(__proj, *__first)))
│ │ │ │ +
1088 {
│ │ │ │ +
1089 *__result = *__first;
│ │ │ │ +
1090 ++__result;
│ │ │ │ +
1091 }
│ │ │ │ +
1092 return {std::move(__first), std::move(__result)};
│ │ │ │ +
1093 }
│ │ │ │ +
1094
│ │ │ │ +
1095 template<input_range _Range, weakly_incrementable _Out,
│ │ │ │ +
1096 typename _Proj = identity,
│ │ │ │ +
1097 indirect_unary_predicate<projected<iterator_t<_Range>, _Proj>>
│ │ │ │ +
1098 _Pred>
│ │ │ │ +
1099 requires indirectly_copyable<iterator_t<_Range>, _Out>
│ │ │ │ +
1100 constexpr remove_copy_if_result<borrowed_iterator_t<_Range>, _Out>
│ │ │ │ +
1101 operator()(_Range&& __r, _Out __result,
│ │ │ │ +
1102 _Pred __pred, _Proj __proj = {}) const
│ │ │ │ +
1103 {
│ │ │ │ +
1104 return (*this)(ranges::begin(__r), ranges::end(__r),
│ │ │ │ +
1105 std::move(__result),
│ │ │ │ +
1106 std::move(__pred), std::move(__proj));
│ │ │ │ +
1107 }
│ │ │ │ +
1108 };
│ │ │ │ +
1109
│ │ │ │ +
1110 inline constexpr __remove_copy_if_fn remove_copy_if{};
│ │ │ │ +
1111
│ │ │ │ +
1112 template<typename _Iter, typename _Out>
│ │ │ │ +
1113 using remove_copy_result = in_out_result<_Iter, _Out>;
│ │ │ │ +
1114
│ │ │ │ +
1115 struct __remove_copy_fn
│ │ │ │ +
1116 {
│ │ │ │ +
1117 template<input_iterator _Iter, sentinel_for<_Iter> _Sent,
│ │ │ │ +
1118 weakly_incrementable _Out, typename _Proj = identity,
│ │ │ │ +
1119 typename _Tp _GLIBCXX26_RANGE_ALGO_DEF_VAL_T(_Iter, _Proj)>
│ │ │ │ +
1120 requires indirectly_copyable<_Iter, _Out>
│ │ │ │ +
1121 && indirect_binary_predicate<ranges::equal_to,
│ │ │ │ +
1122 projected<_Iter, _Proj>,
│ │ │ │ +
1123 const _Tp*>
│ │ │ │ +
1124 constexpr remove_copy_result<_Iter, _Out>
│ │ │ │ +
1125 operator()(_Iter __first, _Sent __last, _Out __result,
│ │ │ │ +
1126 const _Tp& __value, _Proj __proj = {}) const
│ │ │ │ +
1127 {
│ │ │ │ +
1128 for (; __first != __last; ++__first)
│ │ │ │ +
1129 if (!(std::__invoke(__proj, *__first) == __value))
│ │ │ │ +
1130 {
│ │ │ │ +
1131 *__result = *__first;
│ │ │ │ +
1132 ++__result;
│ │ │ │ +
1133 }
│ │ │ │ +
1134 return {std::move(__first), std::move(__result)};
│ │ │ │ +
1135 }
│ │ │ │ +
1136
│ │ │ │ +
1137 template<input_range _Range, weakly_incrementable _Out,
│ │ │ │ +
1138 typename _Proj = identity,
│ │ │ │ +
1139 typename _Tp
│ │ │ │ +
1140 _GLIBCXX26_RANGE_ALGO_DEF_VAL_T(iterator_t<_Range>, _Proj)>
│ │ │ │ +
1141 requires indirectly_copyable<iterator_t<_Range>, _Out>
│ │ │ │ +
1142 && indirect_binary_predicate<ranges::equal_to,
│ │ │ │ +
1143 projected<iterator_t<_Range>, _Proj>,
│ │ │ │ +
1144 const _Tp*>
│ │ │ │ +
1145 constexpr remove_copy_result<borrowed_iterator_t<_Range>, _Out>
│ │ │ │ +
1146 operator()(_Range&& __r, _Out __result,
│ │ │ │ +
1147 const _Tp& __value, _Proj __proj = {}) const
│ │ │ │ +
1148 {
│ │ │ │ +
1149 return (*this)(ranges::begin(__r), ranges::end(__r),
│ │ │ │ +
1150 std::move(__result), __value, std::move(__proj));
│ │ │ │ +
1151 }
│ │ │ │ +
1152 };
│ │ │ │ +
1153
│ │ │ │ +
1154 inline constexpr __remove_copy_fn remove_copy{};
│ │ │ │ +
1155
│ │ │ │ +
1156 struct __unique_fn
│ │ │ │ +
1157 {
│ │ │ │ +
1158 template<permutable _Iter, sentinel_for<_Iter> _Sent,
│ │ │ │ +
1159 typename _Proj = identity,
│ │ │ │ +
1160 indirect_equivalence_relation<
│ │ │ │ +
1161 projected<_Iter, _Proj>> _Comp = ranges::equal_to>
│ │ │ │ +
1162 constexpr subrange<_Iter>
│ │ │ │ +
1163 operator()(_Iter __first, _Sent __last,
│ │ │ │ +
1164 _Comp __comp = {}, _Proj __proj = {}) const
│ │ │ │ +
1165 {
│ │ │ │ +
1166 __first = ranges::adjacent_find(__first, __last, __comp, __proj);
│ │ │ │ +
1167 if (__first == __last)
│ │ │ │ +
1168 return {__first, __first};
│ │ │ │ +
1169
│ │ │ │ +
1170 auto __dest = __first;
│ │ │ │ +
1171 ++__first;
│ │ │ │ +
1172 while (++__first != __last)
│ │ │ │ +
1173 if (!std::__invoke(__comp,
│ │ │ │ +
1174 std::__invoke(__proj, *__dest),
│ │ │ │ +
1175 std::__invoke(__proj, *__first)))
│ │ │ │ +
1176 *++__dest = std::move(*__first);
│ │ │ │ +
1177 return {++__dest, __first};
│ │ │ │ +
1178 }
│ │ │ │ +
1179
│ │ │ │ +
1180 template<forward_range _Range, typename _Proj = identity,
│ │ │ │ +
1181 indirect_equivalence_relation<
│ │ │ │ +
1182 projected<iterator_t<_Range>, _Proj>> _Comp = ranges::equal_to>
│ │ │ │ +
1183 requires permutable<iterator_t<_Range>>
│ │ │ │ +
1184 constexpr borrowed_subrange_t<_Range>
│ │ │ │ +
1185 operator()(_Range&& __r, _Comp __comp = {}, _Proj __proj = {}) const
│ │ │ │ +
1186 {
│ │ │ │ +
1187 return (*this)(ranges::begin(__r), ranges::end(__r),
│ │ │ │ +
1188 std::move(__comp), std::move(__proj));
│ │ │ │ +
1189 }
│ │ │ │ +
1190 };
│ │ │ │ +
1191
│ │ │ │ +
1192 inline constexpr __unique_fn unique{};
│ │ │ │ +
1193
│ │ │ │ +
1194 namespace __detail
│ │ │ │ +
1195 {
│ │ │ │ +
1196 template<typename _Out, typename _Tp>
│ │ │ │ +
1197 concept __can_reread_output = input_iterator<_Out>
│ │ │ │ +
1198 && same_as<_Tp, iter_value_t<_Out>>;
│ │ │ │ +
1199 }
│ │ │ │ +
1200
│ │ │ │ +
1201 template<typename _Iter, typename _Out>
│ │ │ │ +
1202 using unique_copy_result = in_out_result<_Iter, _Out>;
│ │ │ │ +
1203
│ │ │ │ +
1204 struct __unique_copy_fn
│ │ │ │ +
1205 {
│ │ │ │ +
1206 template<input_iterator _Iter, sentinel_for<_Iter> _Sent,
│ │ │ │ +
1207 weakly_incrementable _Out, typename _Proj = identity,
│ │ │ │ +
1208 indirect_equivalence_relation<
│ │ │ │ +
1209 projected<_Iter, _Proj>> _Comp = ranges::equal_to>
│ │ │ │ +
1210 requires indirectly_copyable<_Iter, _Out>
│ │ │ │ +
1211 && (forward_iterator<_Iter>
│ │ │ │ +
1212 || __detail::__can_reread_output<_Out, iter_value_t<_Iter>>
│ │ │ │ +
1213 || indirectly_copyable_storable<_Iter, _Out>)
│ │ │ │ +
1214 constexpr unique_copy_result<_Iter, _Out>
│ │ │ │ +
1215 operator()(_Iter __first, _Sent __last, _Out __result,
│ │ │ │ +
1216 _Comp __comp = {}, _Proj __proj = {}) const
│ │ │ │ +
1217 {
│ │ │ │ +
1218 if (__first == __last)
│ │ │ │ +
1219 return {std::move(__first), std::move(__result)};
│ │ │ │ +
1220
│ │ │ │ +
1221 // TODO: perform a closer comparison with reference implementations
│ │ │ │ +
1222 if constexpr (forward_iterator<_Iter>)
│ │ │ │ +
1223 {
│ │ │ │ +
1224 auto __next = __first;
│ │ │ │ +
1225 *__result = *__next;
│ │ │ │ +
1226 while (++__next != __last)
│ │ │ │ +
1227 if (!std::__invoke(__comp,
│ │ │ │ +
1228 std::__invoke(__proj, *__first),
│ │ │ │ +
1229 std::__invoke(__proj, *__next)))
│ │ │ │ +
1230 {
│ │ │ │ +
1231 __first = __next;
│ │ │ │ +
1232 *++__result = *__first;
│ │ │ │ +
1233 }
│ │ │ │ +
1234 return {__next, std::move(++__result)};
│ │ │ │ +
1235 }
│ │ │ │ +
1236 else if constexpr (__detail::__can_reread_output<_Out, iter_value_t<_Iter>>)
│ │ │ │ +
1237 {
│ │ │ │ +
1238 *__result = *__first;
│ │ │ │ +
1239 while (++__first != __last)
│ │ │ │ +
1240 if (!std::__invoke(__comp,
│ │ │ │ +
1241 std::__invoke(__proj, *__result),
│ │ │ │ +
1242 std::__invoke(__proj, *__first)))
│ │ │ │ +
1243 *++__result = *__first;
│ │ │ │ +
1244 return {std::move(__first), std::move(++__result)};
│ │ │ │ +
1245 }
│ │ │ │ +
1246 else // indirectly_copyable_storable<_Iter, _Out>
│ │ │ │ +
1247 {
│ │ │ │ +
1248 auto __value = *__first;
│ │ │ │ +
1249 *__result = __value;
│ │ │ │ +
1250 while (++__first != __last)
│ │ │ │ +
1251 {
│ │ │ │ +
1252 if (!(bool)std::__invoke(__comp,
│ │ │ │ +
1253 std::__invoke(__proj, *__first),
│ │ │ │ +
1254 std::__invoke(__proj, __value)))
│ │ │ │ +
1255 {
│ │ │ │ +
1256 __value = *__first;
│ │ │ │ +
1257 *++__result = __value;
│ │ │ │ +
1258 }
│ │ │ │ +
1259 }
│ │ │ │ +
1260 return {std::move(__first), std::move(++__result)};
│ │ │ │ +
1261 }
│ │ │ │ +
1262 }
│ │ │ │ +
1263
│ │ │ │ +
1264 template<input_range _Range,
│ │ │ │ +
1265 weakly_incrementable _Out, typename _Proj = identity,
│ │ │ │ +
1266 indirect_equivalence_relation<
│ │ │ │ +
1267 projected<iterator_t<_Range>, _Proj>> _Comp = ranges::equal_to>
│ │ │ │ +
1268 requires indirectly_copyable<iterator_t<_Range>, _Out>
│ │ │ │ +
1269 && (forward_iterator<iterator_t<_Range>>
│ │ │ │ +
1270 || __detail::__can_reread_output<_Out, range_value_t<_Range>>
│ │ │ │ +
1271 || indirectly_copyable_storable<iterator_t<_Range>, _Out>)
│ │ │ │ +
1272 constexpr unique_copy_result<borrowed_iterator_t<_Range>, _Out>
│ │ │ │ +
1273 operator()(_Range&& __r, _Out __result,
│ │ │ │ +
1274 _Comp __comp = {}, _Proj __proj = {}) const
│ │ │ │ +
1275 {
│ │ │ │ +
1276 return (*this)(ranges::begin(__r), ranges::end(__r),
│ │ │ │ +
1277 std::move(__result),
│ │ │ │ +
1278 std::move(__comp), std::move(__proj));
│ │ │ │ +
1279 }
│ │ │ │ +
1280 };
│ │ │ │ +
1281
│ │ │ │ +
1282 inline constexpr __unique_copy_fn unique_copy{};
│ │ │ │ +
1283
│ │ │ │ +
1284 struct __reverse_fn
│ │ │ │ +
1285 {
│ │ │ │ +
1286 template<bidirectional_iterator _Iter, sentinel_for<_Iter> _Sent>
│ │ │ │ +
1287 requires permutable<_Iter>
│ │ │ │ +
1288 constexpr _Iter
│ │ │ │ +
1289 operator()(_Iter __first, _Sent __last) const
│ │ │ │ +
1290 {
│ │ │ │ +
1291 auto __i = ranges::next(__first, __last);
│ │ │ │ +
1292 auto __tail = __i;
│ │ │ │ +
1293
│ │ │ │ +
1294 if constexpr (random_access_iterator<_Iter>)
│ │ │ │ +
1295 {
│ │ │ │ +
1296 if (__first != __last)
│ │ │ │ +
1297 {
│ │ │ │ +
1298 --__tail;
│ │ │ │ +
1299 while (__first < __tail)
│ │ │ │ +
1300 {
│ │ │ │ +
1301 ranges::iter_swap(__first, __tail);
│ │ │ │ +
1302 ++__first;
│ │ │ │ +
1303 --__tail;
│ │ │ │ +
1304 }
│ │ │ │ +
1305 }
│ │ │ │ +
1306 return __i;
│ │ │ │ +
1307 }
│ │ │ │ +
1308 else
│ │ │ │ +
1309 {
│ │ │ │ +
1310 for (;;)
│ │ │ │ +
1311 if (__first == __tail || __first == --__tail)
│ │ │ │ +
1312 break;
│ │ │ │ +
1313 else
│ │ │ │ +
1314 {
│ │ │ │ +
1315 ranges::iter_swap(__first, __tail);
│ │ │ │ +
1316 ++__first;
│ │ │ │ +
1317 }
│ │ │ │ +
1318 return __i;
│ │ │ │ +
1319 }
│ │ │ │ +
1320 }
│ │ │ │ +
1321
│ │ │ │ +
1322 template<bidirectional_range _Range>
│ │ │ │ +
1323 requires permutable<iterator_t<_Range>>
│ │ │ │ +
1324 constexpr borrowed_iterator_t<_Range>
│ │ │ │ +
1325 operator()(_Range&& __r) const
│ │ │ │ +
1326 {
│ │ │ │ +
1327 return (*this)(ranges::begin(__r), ranges::end(__r));
│ │ │ │ +
1328 }
│ │ │ │ +
1329 };
│ │ │ │ +
1330
│ │ │ │ +
1331 inline constexpr __reverse_fn reverse{};
│ │ │ │ +
1332
│ │ │ │ +
1333 template<typename _Iter, typename _Out>
│ │ │ │ +
1334 using reverse_copy_result = in_out_result<_Iter, _Out>;
│ │ │ │ +
1335
│ │ │ │ +
1336 struct __reverse_copy_fn
│ │ │ │ +
1337 {
│ │ │ │ +
1338 template<bidirectional_iterator _Iter, sentinel_for<_Iter> _Sent,
│ │ │ │ +
1339 weakly_incrementable _Out>
│ │ │ │ +
1340 requires indirectly_copyable<_Iter, _Out>
│ │ │ │ +
1341 constexpr reverse_copy_result<_Iter, _Out>
│ │ │ │ +
1342 operator()(_Iter __first, _Sent __last, _Out __result) const
│ │ │ │ +
1343 {
│ │ │ │ +
1344 auto __i = ranges::next(__first, __last);
│ │ │ │ +
1345 auto __tail = __i;
│ │ │ │ +
1346 while (__first != __tail)
│ │ │ │ +
1347 {
│ │ │ │ +
1348 --__tail;
│ │ │ │ +
1349 *__result = *__tail;
│ │ │ │ +
1350 ++__result;
│ │ │ │ +
1351 }
│ │ │ │ +
1352 return {__i, std::move(__result)};
│ │ │ │ +
1353 }
│ │ │ │ +
1354
│ │ │ │ +
1355 template<bidirectional_range _Range, weakly_incrementable _Out>
│ │ │ │ +
1356 requires indirectly_copyable<iterator_t<_Range>, _Out>
│ │ │ │ +
1357 constexpr reverse_copy_result<borrowed_iterator_t<_Range>, _Out>
│ │ │ │ +
1358 operator()(_Range&& __r, _Out __result) const
│ │ │ │ +
1359 {
│ │ │ │ +
1360 return (*this)(ranges::begin(__r), ranges::end(__r),
│ │ │ │ +
1361 std::move(__result));
│ │ │ │ +
1362 }
│ │ │ │ +
1363 };
│ │ │ │ +
1364
│ │ │ │ +
1365 inline constexpr __reverse_copy_fn reverse_copy{};
│ │ │ │ +
1366
│ │ │ │ +
1367 struct __rotate_fn
│ │ │ │ +
1368 {
│ │ │ │ +
1369 template<permutable _Iter, sentinel_for<_Iter> _Sent>
│ │ │ │ +
1370 constexpr subrange<_Iter>
│ │ │ │ +
1371 operator()(_Iter __first, _Iter __middle, _Sent __last) const
│ │ │ │ +
1372 {
│ │ │ │ +
1373 auto __lasti = ranges::next(__first, __last);
│ │ │ │ +
1374 if (__first == __middle)
│ │ │ │ +
1375 return {__lasti, __lasti};
│ │ │ │ +
1376 if (__last == __middle)
│ │ │ │ +
1377 return {std::move(__first), std::move(__lasti)};
│ │ │ │ +
1378
│ │ │ │ +
1379 if constexpr (random_access_iterator<_Iter>)
│ │ │ │ +
1380 {
│ │ │ │ +
1381 auto __n = __lasti - __first;
│ │ │ │ +
1382 auto __k = __middle - __first;
│ │ │ │ +
1383
│ │ │ │ +
1384 if (__k == __n - __k)
│ │ │ │ +
1385 {
│ │ │ │ +
1386 ranges::swap_ranges(__first, __middle, __middle, __middle + __k);
│ │ │ │ +
1387 return {std::move(__middle), std::move(__lasti)};
│ │ │ │ +
1388 }
│ │ │ │ +
1389
│ │ │ │ +
1390 auto __p = __first;
│ │ │ │ +
1391 auto __ret = __first + (__lasti - __middle);
│ │ │ │ +
1392
│ │ │ │ +
1393 for (;;)
│ │ │ │ +
1394 {
│ │ │ │ +
1395 if (__k < __n - __k)
│ │ │ │ +
1396 {
│ │ │ │ +
1397 // TODO: is_pod is deprecated, but this condition is
│ │ │ │ +
1398 // consistent with the STL implementation.
│ │ │ │ +
1399 if constexpr (__is_pod(iter_value_t<_Iter>))
│ │ │ │ +
1400 if (__k == 1)
│ │ │ │ +
1401 {
│ │ │ │ +
1402 auto __t = std::move(*__p);
│ │ │ │ +
1403 ranges::move(__p + 1, __p + __n, __p);
│ │ │ │ +
1404 *(__p + __n - 1) = std::move(__t);
│ │ │ │ +
1405 return {std::move(__ret), std::move(__lasti)};
│ │ │ │ +
1406 }
│ │ │ │ +
1407 auto __q = __p + __k;
│ │ │ │ +
1408 for (decltype(__n) __i = 0; __i < __n - __k; ++ __i)
│ │ │ │ +
1409 {
│ │ │ │ +
1410 ranges::iter_swap(__p, __q);
│ │ │ │ +
1411 ++__p;
│ │ │ │ +
1412 ++__q;
│ │ │ │ +
1413 }
│ │ │ │ +
1414 __n %= __k;
│ │ │ │ +
1415 if (__n == 0)
│ │ │ │ +
1416 return {std::move(__ret), std::move(__lasti)};
│ │ │ │ +
1417 ranges::swap(__n, __k);
│ │ │ │ +
1418 __k = __n - __k;
│ │ │ │ +
1419 }
│ │ │ │ +
1420 else
│ │ │ │ +
1421 {
│ │ │ │ +
1422 __k = __n - __k;
│ │ │ │ +
1423 // TODO: is_pod is deprecated, but this condition is
│ │ │ │ +
1424 // consistent with the STL implementation.
│ │ │ │ +
1425 if constexpr (__is_pod(iter_value_t<_Iter>))
│ │ │ │ +
1426 if (__k == 1)
│ │ │ │ +
1427 {
│ │ │ │ +
1428 auto __t = std::move(*(__p + __n - 1));
│ │ │ │ +
1429 ranges::move_backward(__p, __p + __n - 1, __p + __n);
│ │ │ │ +
1430 *__p = std::move(__t);
│ │ │ │ +
1431 return {std::move(__ret), std::move(__lasti)};
│ │ │ │ +
1432 }
│ │ │ │ +
1433 auto __q = __p + __n;
│ │ │ │ +
1434 __p = __q - __k;
│ │ │ │ +
1435 for (decltype(__n) __i = 0; __i < __n - __k; ++ __i)
│ │ │ │ +
1436 {
│ │ │ │ +
1437 --__p;
│ │ │ │ +
1438 --__q;
│ │ │ │ +
1439 ranges::iter_swap(__p, __q);
│ │ │ │ +
1440 }
│ │ │ │ +
1441 __n %= __k;
│ │ │ │ +
1442 if (__n == 0)
│ │ │ │ +
1443 return {std::move(__ret), std::move(__lasti)};
│ │ │ │ +
1444 std::swap(__n, __k);
│ │ │ │ +
1445 }
│ │ │ │ +
1446 }
│ │ │ │ +
1447 }
│ │ │ │ +
1448 else if constexpr (bidirectional_iterator<_Iter>)
│ │ │ │ +
1449 {
│ │ │ │ +
1450 auto __tail = __lasti;
│ │ │ │ +
1451
│ │ │ │ +
1452 ranges::reverse(__first, __middle);
│ │ │ │ +
1453 ranges::reverse(__middle, __tail);
│ │ │ │ +
1454
│ │ │ │ +
1455 while (__first != __middle && __middle != __tail)
│ │ │ │ +
1456 {
│ │ │ │ +
1457 ranges::iter_swap(__first, --__tail);
│ │ │ │ +
1458 ++__first;
│ │ │ │ +
1459 }
│ │ │ │ +
1460
│ │ │ │ +
1461 if (__first == __middle)
│ │ │ │ +
1462 {
│ │ │ │ +
1463 ranges::reverse(__middle, __tail);
│ │ │ │ +
1464 return {std::move(__tail), std::move(__lasti)};
│ │ │ │ +
1465 }
│ │ │ │ +
1466 else
│ │ │ │ +
1467 {
│ │ │ │ +
1468 ranges::reverse(__first, __middle);
│ │ │ │ +
1469 return {std::move(__first), std::move(__lasti)};
│ │ │ │ +
1470 }
│ │ │ │ +
1471 }
│ │ │ │ +
1472 else
│ │ │ │ +
1473 {
│ │ │ │ +
1474 auto __first2 = __middle;
│ │ │ │ +
1475 do
│ │ │ │ +
1476 {
│ │ │ │ +
1477 ranges::iter_swap(__first, __first2);
│ │ │ │ +
1478 ++__first;
│ │ │ │ +
1479 ++__first2;
│ │ │ │ +
1480 if (__first == __middle)
│ │ │ │ +
1481 __middle = __first2;
│ │ │ │ +
1482 } while (__first2 != __last);
│ │ │ │ +
1483
│ │ │ │ +
1484 auto __ret = __first;
│ │ │ │ +
1485
│ │ │ │ +
1486 __first2 = __middle;
│ │ │ │ +
1487
│ │ │ │ +
1488 while (__first2 != __last)
│ │ │ │ +
1489 {
│ │ │ │ +
1490 ranges::iter_swap(__first, __first2);
│ │ │ │ +
1491 ++__first;
│ │ │ │ +
1492 ++__first2;
│ │ │ │ +
1493 if (__first == __middle)
│ │ │ │ +
1494 __middle = __first2;
│ │ │ │ +
1495 else if (__first2 == __last)
│ │ │ │ +
1496 __first2 = __middle;
│ │ │ │ +
1497 }
│ │ │ │ +
1498 return {std::move(__ret), std::move(__lasti)};
│ │ │ │ +
1499 }
│ │ │ │ +
1500 }
│ │ │ │ +
1501
│ │ │ │ +
1502 template<forward_range _Range>
│ │ │ │ +
1503 requires permutable<iterator_t<_Range>>
│ │ │ │ +
1504 constexpr borrowed_subrange_t<_Range>
│ │ │ │ +
1505 operator()(_Range&& __r, iterator_t<_Range> __middle) const
│ │ │ │ +
1506 {
│ │ │ │ +
1507 return (*this)(ranges::begin(__r), std::move(__middle),
│ │ │ │ +
1508 ranges::end(__r));
│ │ │ │ +
1509 }
│ │ │ │ +
1510 };
│ │ │ │ +
1511
│ │ │ │ +
1512 inline constexpr __rotate_fn rotate{};
│ │ │ │ +
1513
│ │ │ │ +
1514 template<typename _Iter, typename _Out>
│ │ │ │ +
1515 using rotate_copy_result = in_out_result<_Iter, _Out>;
│ │ │ │ +
1516
│ │ │ │ +
1517 struct __rotate_copy_fn
│ │ │ │ +
1518 {
│ │ │ │ +
1519 template<forward_iterator _Iter, sentinel_for<_Iter> _Sent,
│ │ │ │ +
1520 weakly_incrementable _Out>
│ │ │ │ +
1521 requires indirectly_copyable<_Iter, _Out>
│ │ │ │ +
1522 constexpr rotate_copy_result<_Iter, _Out>
│ │ │ │ +
1523 operator()(_Iter __first, _Iter __middle, _Sent __last,
│ │ │ │ +
1524 _Out __result) const
│ │ │ │ +
1525 {
│ │ │ │ +
1526 auto __copy1 = ranges::copy(__middle,
│ │ │ │ +
1527 std::move(__last),
│ │ │ │ +
1528 std::move(__result));
│ │ │ │ +
1529 auto __copy2 = ranges::copy(std::move(__first),
│ │ │ │ +
1530 std::move(__middle),
│ │ │ │ +
1531 std::move(__copy1.out));
│ │ │ │ +
1532 return { std::move(__copy1.in), std::move(__copy2.out) };
│ │ │ │ +
1533 }
│ │ │ │ +
1534
│ │ │ │ +
1535 template<forward_range _Range, weakly_incrementable _Out>
│ │ │ │ +
1536 requires indirectly_copyable<iterator_t<_Range>, _Out>
│ │ │ │ +
1537 constexpr rotate_copy_result<borrowed_iterator_t<_Range>, _Out>
│ │ │ │ +
1538 operator()(_Range&& __r, iterator_t<_Range> __middle, _Out __result) const
│ │ │ │ +
1539 {
│ │ │ │ +
1540 return (*this)(ranges::begin(__r), std::move(__middle),
│ │ │ │ +
1541 ranges::end(__r), std::move(__result));
│ │ │ │ +
1542 }
│ │ │ │ +
1543 };
│ │ │ │ +
1544
│ │ │ │ +
1545 inline constexpr __rotate_copy_fn rotate_copy{};
│ │ │ │ +
1546
│ │ │ │ +
1547 struct __sample_fn
│ │ │ │ +
1548 {
│ │ │ │ +
1549 template<input_iterator _Iter, sentinel_for<_Iter> _Sent,
│ │ │ │ +
1550 weakly_incrementable _Out, typename _Gen>
│ │ │ │ +
1551 requires (forward_iterator<_Iter> || random_access_iterator<_Out>)
│ │ │ │ +
1552 && indirectly_copyable<_Iter, _Out>
│ │ │ │ +
1553 && uniform_random_bit_generator<remove_reference_t<_Gen>>
│ │ │ │ +
1554 _Out
│ │ │ │ +
1555 operator()(_Iter __first, _Sent __last, _Out __out,
│ │ │ │ +
1556 iter_difference_t<_Iter> __n, _Gen&& __g) const
│ │ │ │ +
1557 {
│ │ │ │ +
1558 if constexpr (forward_iterator<_Iter>)
│ │ │ │ +
1559 {
│ │ │ │ +
1560 // FIXME: Forwarding to std::sample here requires computing __lasti
│ │ │ │ +
1561 // which may take linear time.
│ │ │ │ +
1562 auto __lasti = ranges::next(__first, __last);
│ │ │ │ +
1563 return _GLIBCXX_STD_A::
│ │ │ │ +
1564 sample(std::move(__first), std::move(__lasti), std::move(__out),
│ │ │ │ +
1565 __n, std::forward<_Gen>(__g));
│ │ │ │ +
1566 }
│ │ │ │ +
1567 else
│ │ │ │ +
1568 {
│ │ │ │ +
1569 using __distrib_type
│ │ │ │ +
1570 = uniform_int_distribution<iter_difference_t<_Iter>>;
│ │ │ │ +
1571 using __param_type = typename __distrib_type::param_type;
│ │ │ │ +
1572 __distrib_type __d{};
│ │ │ │ +
1573 iter_difference_t<_Iter> __sample_sz = 0;
│ │ │ │ +
1574 while (__first != __last && __sample_sz != __n)
│ │ │ │ +
1575 {
│ │ │ │ +
1576 __out[__sample_sz++] = *__first;
│ │ │ │ +
1577 ++__first;
│ │ │ │ +
1578 }
│ │ │ │ +
1579 for (auto __pop_sz = __sample_sz; __first != __last;
│ │ │ │ +
1580 ++__first, (void) ++__pop_sz)
│ │ │ │ +
1581 {
│ │ │ │ +
1582 const auto __k = __d(__g, __param_type{0, __pop_sz});
│ │ │ │ +
1583 if (__k < __n)
│ │ │ │ +
1584 __out[__k] = *__first;
│ │ │ │ +
1585 }
│ │ │ │ +
1586 return __out + __sample_sz;
│ │ │ │ +
1587 }
│ │ │ │ +
1588 }
│ │ │ │ +
1589
│ │ │ │ +
1590 template<input_range _Range, weakly_incrementable _Out, typename _Gen>
│ │ │ │ +
1591 requires (forward_range<_Range> || random_access_iterator<_Out>)
│ │ │ │ +
1592 && indirectly_copyable<iterator_t<_Range>, _Out>
│ │ │ │ +
1593 && uniform_random_bit_generator<remove_reference_t<_Gen>>
│ │ │ │ +
1594 _Out
│ │ │ │ +
1595 operator()(_Range&& __r, _Out __out,
│ │ │ │ +
1596 range_difference_t<_Range> __n, _Gen&& __g) const
│ │ │ │ +
1597 {
│ │ │ │ +
1598 return (*this)(ranges::begin(__r), ranges::end(__r),
│ │ │ │ +
1599 std::move(__out), __n,
│ │ │ │ +
1600 std::forward<_Gen>(__g));
│ │ │ │ +
1601 }
│ │ │ │ +
1602 };
│ │ │ │ +
1603
│ │ │ │ +
1604 inline constexpr __sample_fn sample{};
│ │ │ │ +
1605
│ │ │ │ +
1606 struct __shuffle_fn
│ │ │ │ +
1607 {
│ │ │ │ +
1608 template<random_access_iterator _Iter, sentinel_for<_Iter> _Sent,
│ │ │ │ +
1609 typename _Gen>
│ │ │ │ +
1610 requires permutable<_Iter>
│ │ │ │ +
1611 && uniform_random_bit_generator<remove_reference_t<_Gen>>
│ │ │ │ +
1612 _Iter
│ │ │ │ +
1613 operator()(_Iter __first, _Sent __last, _Gen&& __g) const
│ │ │ │ +
1614 {
│ │ │ │ +
1615 auto __lasti = ranges::next(__first, __last);
│ │ │ │ +
1616 std::shuffle(std::move(__first), __lasti, std::forward<_Gen>(__g));
│ │ │ │ +
1617 return __lasti;
│ │ │ │ +
1618 }
│ │ │ │ +
1619
│ │ │ │ +
1620 template<random_access_range _Range, typename _Gen>
│ │ │ │ +
1621 requires permutable<iterator_t<_Range>>
│ │ │ │ +
1622 && uniform_random_bit_generator<remove_reference_t<_Gen>>
│ │ │ │ +
1623 borrowed_iterator_t<_Range>
│ │ │ │ +
1624 operator()(_Range&& __r, _Gen&& __g) const
│ │ │ │ +
1625 {
│ │ │ │ +
1626 return (*this)(ranges::begin(__r), ranges::end(__r),
│ │ │ │ +
1627 std::forward<_Gen>(__g));
│ │ │ │ +
1628 }
│ │ │ │ +
1629 };
│ │ │ │ +
1630
│ │ │ │ +
1631 inline constexpr __shuffle_fn shuffle{};
│ │ │ │ +
1632
│ │ │ │ +
1633 struct __push_heap_fn
│ │ │ │ +
1634 {
│ │ │ │ +
1635 template<random_access_iterator _Iter, sentinel_for<_Iter> _Sent,
│ │ │ │ +
1636 typename _Comp = ranges::less, typename _Proj = identity>
│ │ │ │ +
1637 requires sortable<_Iter, _Comp, _Proj>
│ │ │ │ +
1638 constexpr _Iter
│ │ │ │ +
1639 operator()(_Iter __first, _Sent __last,
│ │ │ │ +
1640 _Comp __comp = {}, _Proj __proj = {}) const
│ │ │ │ +
1641 {
│ │ │ │ +
1642 auto __lasti = ranges::next(__first, __last);
│ │ │ │ +
1643 std::push_heap(__first, __lasti,
│ │ │ │ +
1644 __detail::__make_comp_proj(__comp, __proj));
│ │ │ │ +
1645 return __lasti;
│ │ │ │ +
1646 }
│ │ │ │ +
1647
│ │ │ │ +
1648 template<random_access_range _Range,
│ │ │ │ +
1649 typename _Comp = ranges::less, typename _Proj = identity>
│ │ │ │ +
1650 requires sortable<iterator_t<_Range>, _Comp, _Proj>
│ │ │ │ +
1651 constexpr borrowed_iterator_t<_Range>
│ │ │ │ +
1652 operator()(_Range&& __r, _Comp __comp = {}, _Proj __proj = {}) const
│ │ │ │ +
1653 {
│ │ │ │ +
1654 return (*this)(ranges::begin(__r), ranges::end(__r),
│ │ │ │ +
1655 std::move(__comp), std::move(__proj));
│ │ │ │ +
1656 }
│ │ │ │ +
1657 };
│ │ │ │ +
1658
│ │ │ │ +
1659 inline constexpr __push_heap_fn push_heap{};
│ │ │ │ +
1660
│ │ │ │ +
1661 struct __pop_heap_fn
│ │ │ │ +
1662 {
│ │ │ │ +
1663 template<random_access_iterator _Iter, sentinel_for<_Iter> _Sent,
│ │ │ │ +
1664 typename _Comp = ranges::less, typename _Proj = identity>
│ │ │ │ +
1665 requires sortable<_Iter, _Comp, _Proj>
│ │ │ │ +
1666 constexpr _Iter
│ │ │ │ +
1667 operator()(_Iter __first, _Sent __last,
│ │ │ │ +
1668 _Comp __comp = {}, _Proj __proj = {}) const
│ │ │ │ +
1669 {
│ │ │ │ +
1670 auto __lasti = ranges::next(__first, __last);
│ │ │ │ +
1671 std::pop_heap(__first, __lasti,
│ │ │ │ +
1672 __detail::__make_comp_proj(__comp, __proj));
│ │ │ │ +
1673 return __lasti;
│ │ │ │ +
1674 }
│ │ │ │ +
1675
│ │ │ │ +
1676 template<random_access_range _Range,
│ │ │ │ +
1677 typename _Comp = ranges::less, typename _Proj = identity>
│ │ │ │ +
1678 requires sortable<iterator_t<_Range>, _Comp, _Proj>
│ │ │ │ +
1679 constexpr borrowed_iterator_t<_Range>
│ │ │ │ +
1680 operator()(_Range&& __r, _Comp __comp = {}, _Proj __proj = {}) const
│ │ │ │ +
1681 {
│ │ │ │ +
1682 return (*this)(ranges::begin(__r), ranges::end(__r),
│ │ │ │ +
1683 std::move(__comp), std::move(__proj));
│ │ │ │ +
1684 }
│ │ │ │ +
1685 };
│ │ │ │ +
1686
│ │ │ │ +
1687 inline constexpr __pop_heap_fn pop_heap{};
│ │ │ │ +
1688
│ │ │ │ +
1689 struct __make_heap_fn
│ │ │ │ +
1690 {
│ │ │ │ +
1691 template<random_access_iterator _Iter, sentinel_for<_Iter> _Sent,
│ │ │ │ +
1692 typename _Comp = ranges::less, typename _Proj = identity>
│ │ │ │ +
1693 requires sortable<_Iter, _Comp, _Proj>
│ │ │ │ +
1694 constexpr _Iter
│ │ │ │ +
1695 operator()(_Iter __first, _Sent __last,
│ │ │ │ +
1696 _Comp __comp = {}, _Proj __proj = {}) const
│ │ │ │ +
1697 {
│ │ │ │ +
1698 auto __lasti = ranges::next(__first, __last);
│ │ │ │ +
1699 std::make_heap(__first, __lasti,
│ │ │ │ +
1700 __detail::__make_comp_proj(__comp, __proj));
│ │ │ │ +
1701 return __lasti;
│ │ │ │ +
1702 }
│ │ │ │ +
1703
│ │ │ │ +
1704 template<random_access_range _Range,
│ │ │ │ +
1705 typename _Comp = ranges::less, typename _Proj = identity>
│ │ │ │ +
1706 requires sortable<iterator_t<_Range>, _Comp, _Proj>
│ │ │ │ +
1707 constexpr borrowed_iterator_t<_Range>
│ │ │ │ +
1708 operator()(_Range&& __r, _Comp __comp = {}, _Proj __proj = {}) const
│ │ │ │ +
1709 {
│ │ │ │ +
1710 return (*this)(ranges::begin(__r), ranges::end(__r),
│ │ │ │ +
1711 std::move(__comp), std::move(__proj));
│ │ │ │ +
1712 }
│ │ │ │ +
1713 };
│ │ │ │ +
1714
│ │ │ │ +
1715 inline constexpr __make_heap_fn make_heap{};
│ │ │ │ +
1716
│ │ │ │ +
1717 struct __sort_heap_fn
│ │ │ │ +
1718 {
│ │ │ │ +
1719 template<random_access_iterator _Iter, sentinel_for<_Iter> _Sent,
│ │ │ │ +
1720 typename _Comp = ranges::less, typename _Proj = identity>
│ │ │ │ +
1721 requires sortable<_Iter, _Comp, _Proj>
│ │ │ │ +
1722 constexpr _Iter
│ │ │ │ +
1723 operator()(_Iter __first, _Sent __last,
│ │ │ │ +
1724 _Comp __comp = {}, _Proj __proj = {}) const
│ │ │ │ +
1725 {
│ │ │ │ +
1726 auto __lasti = ranges::next(__first, __last);
│ │ │ │ +
1727 std::sort_heap(__first, __lasti,
│ │ │ │ +
1728 __detail::__make_comp_proj(__comp, __proj));
│ │ │ │ +
1729 return __lasti;
│ │ │ │ +
1730 }
│ │ │ │ +
1731
│ │ │ │ +
1732 template<random_access_range _Range,
│ │ │ │ +
1733 typename _Comp = ranges::less, typename _Proj = identity>
│ │ │ │ +
1734 requires sortable<iterator_t<_Range>, _Comp, _Proj>
│ │ │ │ +
1735 constexpr borrowed_iterator_t<_Range>
│ │ │ │ +
1736 operator()(_Range&& __r, _Comp __comp = {}, _Proj __proj = {}) const
│ │ │ │ +
1737 {
│ │ │ │ +
1738 return (*this)(ranges::begin(__r), ranges::end(__r),
│ │ │ │ +
1739 std::move(__comp), std::move(__proj));
│ │ │ │ +
1740 }
│ │ │ │ +
1741 };
│ │ │ │ +
1742
│ │ │ │ +
1743 inline constexpr __sort_heap_fn sort_heap{};
│ │ │ │ +
1744
│ │ │ │ +
1745 struct __is_heap_until_fn
│ │ │ │ +
1746 {
│ │ │ │ +
1747 template<random_access_iterator _Iter, sentinel_for<_Iter> _Sent,
│ │ │ │ +
1748 typename _Proj = identity,
│ │ │ │ +
1749 indirect_strict_weak_order<projected<_Iter, _Proj>>
│ │ │ │ +
1750 _Comp = ranges::less>
│ │ │ │ +
1751 constexpr _Iter
│ │ │ │ +
1752 operator()(_Iter __first, _Sent __last,
│ │ │ │ +
1753 _Comp __comp = {}, _Proj __proj = {}) const
│ │ │ │ +
1754 {
│ │ │ │ +
1755 iter_difference_t<_Iter> __n = ranges::distance(__first, __last);
│ │ │ │ +
1756 iter_difference_t<_Iter> __parent = 0, __child = 1;
│ │ │ │ +
1757 for (; __child < __n; ++__child)
│ │ │ │ +
1758 if (std::__invoke(__comp,
│ │ │ │ +
1759 std::__invoke(__proj, *(__first + __parent)),
│ │ │ │ +
1760 std::__invoke(__proj, *(__first + __child))))
│ │ │ │ +
1761 return __first + __child;
│ │ │ │ +
1762 else if ((__child & 1) == 0)
│ │ │ │ +
1763 ++__parent;
│ │ │ │ +
1764
│ │ │ │ +
1765 return __first + __n;
│ │ │ │ +
1766 }
│ │ │ │ +
1767
│ │ │ │ +
1768 template<random_access_range _Range,
│ │ │ │ +
1769 typename _Proj = identity,
│ │ │ │ +
1770 indirect_strict_weak_order<projected<iterator_t<_Range>, _Proj>>
│ │ │ │ +
1771 _Comp = ranges::less>
│ │ │ │ +
1772 constexpr borrowed_iterator_t<_Range>
│ │ │ │ +
1773 operator()(_Range&& __r, _Comp __comp = {}, _Proj __proj = {}) const
│ │ │ │ +
1774 {
│ │ │ │ +
1775 return (*this)(ranges::begin(__r), ranges::end(__r),
│ │ │ │ +
1776 std::move(__comp), std::move(__proj));
│ │ │ │ +
1777 }
│ │ │ │ +
1778 };
│ │ │ │ +
1779
│ │ │ │ +
1780 inline constexpr __is_heap_until_fn is_heap_until{};
│ │ │ │ +
1781
│ │ │ │ +
1782 struct __is_heap_fn
│ │ │ │ +
1783 {
│ │ │ │ +
1784 template<random_access_iterator _Iter, sentinel_for<_Iter> _Sent,
│ │ │ │ +
1785 typename _Proj = identity,
│ │ │ │ +
1786 indirect_strict_weak_order<projected<_Iter, _Proj>>
│ │ │ │ +
1787 _Comp = ranges::less>
│ │ │ │ +
1788 constexpr bool
│ │ │ │ +
1789 operator()(_Iter __first, _Sent __last,
│ │ │ │ +
1790 _Comp __comp = {}, _Proj __proj = {}) const
│ │ │ │ +
1791 {
│ │ │ │ +
1792 return (__last
│ │ │ │ +
1793 == ranges::is_heap_until(__first, __last,
│ │ │ │ +
1794 std::move(__comp),
│ │ │ │ +
1795 std::move(__proj)));
│ │ │ │ +
1796 }
│ │ │ │ +
1797
│ │ │ │ +
1798 template<random_access_range _Range,
│ │ │ │ +
1799 typename _Proj = identity,
│ │ │ │ +
1800 indirect_strict_weak_order<projected<iterator_t<_Range>, _Proj>>
│ │ │ │ +
1801 _Comp = ranges::less>
│ │ │ │ +
1802 constexpr bool
│ │ │ │ +
1803 operator()(_Range&& __r, _Comp __comp = {}, _Proj __proj = {}) const
│ │ │ │ +
1804 {
│ │ │ │ +
1805 return (*this)(ranges::begin(__r), ranges::end(__r),
│ │ │ │ +
1806 std::move(__comp), std::move(__proj));
│ │ │ │ +
1807 }
│ │ │ │ +
1808 };
│ │ │ │ +
1809
│ │ │ │ +
1810 inline constexpr __is_heap_fn is_heap{};
│ │ │ │ +
1811
│ │ │ │ +
1812 struct __sort_fn
│ │ │ │ +
1813 {
│ │ │ │ +
1814 template<random_access_iterator _Iter, sentinel_for<_Iter> _Sent,
│ │ │ │ +
1815 typename _Comp = ranges::less, typename _Proj = identity>
│ │ │ │ +
1816 requires sortable<_Iter, _Comp, _Proj>
│ │ │ │ +
1817 constexpr _Iter
│ │ │ │ +
1818 operator()(_Iter __first, _Sent __last,
│ │ │ │ +
1819 _Comp __comp = {}, _Proj __proj = {}) const
│ │ │ │ +
1820 {
│ │ │ │ +
1821 auto __lasti = ranges::next(__first, __last);
│ │ │ │ +
1822 _GLIBCXX_STD_A::sort(std::move(__first), __lasti,
│ │ │ │ +
1823 __detail::__make_comp_proj(__comp, __proj));
│ │ │ │ +
1824 return __lasti;
│ │ │ │ +
1825 }
│ │ │ │ +
1826
│ │ │ │ +
1827 template<random_access_range _Range,
│ │ │ │ +
1828 typename _Comp = ranges::less, typename _Proj = identity>
│ │ │ │ +
1829 requires sortable<iterator_t<_Range>, _Comp, _Proj>
│ │ │ │ +
1830 constexpr borrowed_iterator_t<_Range>
│ │ │ │ +
1831 operator()(_Range&& __r, _Comp __comp = {}, _Proj __proj = {}) const
│ │ │ │ +
1832 {
│ │ │ │ +
1833 return (*this)(ranges::begin(__r), ranges::end(__r),
│ │ │ │ +
1834 std::move(__comp), std::move(__proj));
│ │ │ │ +
1835 }
│ │ │ │ +
1836 };
│ │ │ │ +
1837
│ │ │ │ +
1838 inline constexpr __sort_fn sort{};
│ │ │ │ +
1839
│ │ │ │ +
1840 struct __stable_sort_fn
│ │ │ │ +
1841 {
│ │ │ │ +
1842 template<random_access_iterator _Iter, sentinel_for<_Iter> _Sent,
│ │ │ │ +
1843 typename _Comp = ranges::less, typename _Proj = identity>
│ │ │ │ +
1844 requires sortable<_Iter, _Comp, _Proj>
│ │ │ │ +
1845 _GLIBCXX26_CONSTEXPR
│ │ │ │ +
1846 _Iter
│ │ │ │ +
1847 operator()(_Iter __first, _Sent __last,
│ │ │ │ +
1848 _Comp __comp = {}, _Proj __proj = {}) const
│ │ │ │ +
1849 {
│ │ │ │ +
1850 auto __lasti = ranges::next(__first, __last);
│ │ │ │ +
1851 std::stable_sort(std::move(__first), __lasti,
│ │ │ │ +
1852 __detail::__make_comp_proj(__comp, __proj));
│ │ │ │ +
1853 return __lasti;
│ │ │ │ +
1854 }
│ │ │ │ +
1855
│ │ │ │ +
1856 template<random_access_range _Range,
│ │ │ │ +
1857 typename _Comp = ranges::less, typename _Proj = identity>
│ │ │ │ +
1858 requires sortable<iterator_t<_Range>, _Comp, _Proj>
│ │ │ │ +
1859 _GLIBCXX26_CONSTEXPR
│ │ │ │ +
1860 borrowed_iterator_t<_Range>
│ │ │ │ +
1861 operator()(_Range&& __r, _Comp __comp = {}, _Proj __proj = {}) const
│ │ │ │ +
1862 {
│ │ │ │ +
1863 return (*this)(ranges::begin(__r), ranges::end(__r),
│ │ │ │ +
1864 std::move(__comp), std::move(__proj));
│ │ │ │ +
1865 }
│ │ │ │ +
1866 };
│ │ │ │ +
1867
│ │ │ │ +
1868 inline constexpr __stable_sort_fn stable_sort{};
│ │ │ │ +
1869
│ │ │ │ +
1870 struct __partial_sort_fn
│ │ │ │ +
1871 {
│ │ │ │ +
1872 template<random_access_iterator _Iter, sentinel_for<_Iter> _Sent,
│ │ │ │ +
1873 typename _Comp = ranges::less, typename _Proj = identity>
│ │ │ │ +
1874 requires sortable<_Iter, _Comp, _Proj>
│ │ │ │ +
1875 constexpr _Iter
│ │ │ │ +
1876 operator()(_Iter __first, _Iter __middle, _Sent __last,
│ │ │ │ +
1877 _Comp __comp = {}, _Proj __proj = {}) const
│ │ │ │ +
1878 {
│ │ │ │ +
1879 if (__first == __middle)
│ │ │ │ +
1880 return ranges::next(__first, __last);
│ │ │ │ +
1881
│ │ │ │ +
1882 ranges::make_heap(__first, __middle, __comp, __proj);
│ │ │ │ +
1883 auto __i = __middle;
│ │ │ │ +
1884 for (; __i != __last; ++__i)
│ │ │ │ +
1885 if (std::__invoke(__comp,
│ │ │ │ +
1886 std::__invoke(__proj, *__i),
│ │ │ │ +
1887 std::__invoke(__proj, *__first)))
│ │ │ │ +
1888 {
│ │ │ │ +
1889 ranges::pop_heap(__first, __middle, __comp, __proj);
│ │ │ │ +
1890 ranges::iter_swap(__middle-1, __i);
│ │ │ │ +
1891 ranges::push_heap(__first, __middle, __comp, __proj);
│ │ │ │ +
1892 }
│ │ │ │ +
1893 ranges::sort_heap(__first, __middle, __comp, __proj);
│ │ │ │ +
1894
│ │ │ │ +
1895 return __i;
│ │ │ │ +
1896 }
│ │ │ │ +
1897
│ │ │ │ +
1898 template<random_access_range _Range,
│ │ │ │ +
1899 typename _Comp = ranges::less, typename _Proj = identity>
│ │ │ │ +
1900 requires sortable<iterator_t<_Range>, _Comp, _Proj>
│ │ │ │ +
1901 constexpr borrowed_iterator_t<_Range>
│ │ │ │ +
1902 operator()(_Range&& __r, iterator_t<_Range> __middle,
│ │ │ │ +
1903 _Comp __comp = {}, _Proj __proj = {}) const
│ │ │ │ +
1904 {
│ │ │ │ +
1905 return (*this)(ranges::begin(__r), std::move(__middle),
│ │ │ │ +
1906 ranges::end(__r),
│ │ │ │ +
1907 std::move(__comp), std::move(__proj));
│ │ │ │ +
1908 }
│ │ │ │ +
1909 };
│ │ │ │ +
1910
│ │ │ │ +
1911 inline constexpr __partial_sort_fn partial_sort{};
│ │ │ │ +
1912
│ │ │ │ +
1913 template<typename _Iter, typename _Out>
│ │ │ │ +
1914 using partial_sort_copy_result = in_out_result<_Iter, _Out>;
│ │ │ │ +
1915
│ │ │ │ +
1916 struct __partial_sort_copy_fn
│ │ │ │ +
1917 {
│ │ │ │ +
1918 template<input_iterator _Iter1, sentinel_for<_Iter1> _Sent1,
│ │ │ │ +
1919 random_access_iterator _Iter2, sentinel_for<_Iter2> _Sent2,
│ │ │ │ +
1920 typename _Comp = ranges::less,
│ │ │ │ +
1921 typename _Proj1 = identity, typename _Proj2 = identity>
│ │ │ │ +
1922 requires indirectly_copyable<_Iter1, _Iter2>
│ │ │ │ +
1923 && sortable<_Iter2, _Comp, _Proj2>
│ │ │ │ +
1924 && indirect_strict_weak_order<_Comp,
│ │ │ │ +
1925 projected<_Iter1, _Proj1>,
│ │ │ │ +
1926 projected<_Iter2, _Proj2>>
│ │ │ │ +
1927 constexpr partial_sort_copy_result<_Iter1, _Iter2>
│ │ │ │ +
1928 operator()(_Iter1 __first, _Sent1 __last,
│ │ │ │ +
1929 _Iter2 __result_first, _Sent2 __result_last,
│ │ │ │ +
1930 _Comp __comp = {},
│ │ │ │ +
1931 _Proj1 __proj1 = {}, _Proj2 __proj2 = {}) const
│ │ │ │ +
1932 {
│ │ │ │ +
1933 if (__result_first == __result_last)
│ │ │ │ +
1934 {
│ │ │ │ +
1935 // TODO: Eliminating the variable __lasti triggers an ICE.
│ │ │ │ +
1936 auto __lasti = ranges::next(std::move(__first),
│ │ │ │ +
1937 std::move(__last));
│ │ │ │ +
1938 return {std::move(__lasti), std::move(__result_first)};
│ │ │ │ +
1939 }
│ │ │ │ +
1940
│ │ │ │ +
1941 auto __result_real_last = __result_first;
│ │ │ │ +
1942 while (__first != __last && __result_real_last != __result_last)
│ │ │ │ +
1943 {
│ │ │ │ +
1944 *__result_real_last = *__first;
│ │ │ │ +
1945 ++__result_real_last;
│ │ │ │ +
1946 ++__first;
│ │ │ │ +
1947 }
│ │ │ │ +
1948
│ │ │ │ +
1949 ranges::make_heap(__result_first, __result_real_last, __comp, __proj2);
│ │ │ │ +
1950 for (; __first != __last; ++__first)
│ │ │ │ +
1951 if (std::__invoke(__comp,
│ │ │ │ +
1952 std::__invoke(__proj1, *__first),
│ │ │ │ +
1953 std::__invoke(__proj2, *__result_first)))
│ │ │ │ +
1954 {
│ │ │ │ +
1955 ranges::pop_heap(__result_first, __result_real_last,
│ │ │ │ +
1956 __comp, __proj2);
│ │ │ │ +
1957 *(__result_real_last-1) = *__first;
│ │ │ │ +
1958 ranges::push_heap(__result_first, __result_real_last,
│ │ │ │ +
1959 __comp, __proj2);
│ │ │ │ +
1960 }
│ │ │ │ +
1961 ranges::sort_heap(__result_first, __result_real_last, __comp, __proj2);
│ │ │ │ +
1962
│ │ │ │ +
1963 return {std::move(__first), std::move(__result_real_last)};
│ │ │ │ +
1964 }
│ │ │ │ +
1965
│ │ │ │ +
1966 template<input_range _Range1, random_access_range _Range2,
│ │ │ │ +
1967 typename _Comp = ranges::less,
│ │ │ │ +
1968 typename _Proj1 = identity, typename _Proj2 = identity>
│ │ │ │ +
1969 requires indirectly_copyable<iterator_t<_Range1>, iterator_t<_Range2>>
│ │ │ │ +
1970 && sortable<iterator_t<_Range2>, _Comp, _Proj2>
│ │ │ │ +
1971 && indirect_strict_weak_order<_Comp,
│ │ │ │ +
1972 projected<iterator_t<_Range1>, _Proj1>,
│ │ │ │ +
1973 projected<iterator_t<_Range2>, _Proj2>>
│ │ │ │ +
1974 constexpr partial_sort_copy_result<borrowed_iterator_t<_Range1>,
│ │ │ │ +
1975 borrowed_iterator_t<_Range2>>
│ │ │ │ +
1976 operator()(_Range1&& __r, _Range2&& __out, _Comp __comp = {},
│ │ │ │ +
1977 _Proj1 __proj1 = {}, _Proj2 __proj2 = {}) const
│ │ │ │ +
1978 {
│ │ │ │ +
1979 return (*this)(ranges::begin(__r), ranges::end(__r),
│ │ │ │ +
1980 ranges::begin(__out), ranges::end(__out),
│ │ │ │ +
1981 std::move(__comp),
│ │ │ │ +
1982 std::move(__proj1), std::move(__proj2));
│ │ │ │ +
1983 }
│ │ │ │ +
1984 };
│ │ │ │ +
1985
│ │ │ │ +
1986 inline constexpr __partial_sort_copy_fn partial_sort_copy{};
│ │ │ │ +
1987
│ │ │ │ +
1988 struct __is_sorted_until_fn
│ │ │ │ +
1989 {
│ │ │ │ +
1990 template<forward_iterator _Iter, sentinel_for<_Iter> _Sent,
│ │ │ │ +
1991 typename _Proj = identity,
│ │ │ │ +
1992 indirect_strict_weak_order<projected<_Iter, _Proj>>
│ │ │ │ +
1993 _Comp = ranges::less>
│ │ │ │ +
1994 constexpr _Iter
│ │ │ │ +
1995 operator()(_Iter __first, _Sent __last,
│ │ │ │ +
1996 _Comp __comp = {}, _Proj __proj = {}) const
│ │ │ │ +
1997 {
│ │ │ │ +
1998 if (__first == __last)
│ │ │ │ +
1999 return __first;
│ │ │ │ +
2000
│ │ │ │ +
2001 auto __next = __first;
│ │ │ │ +
2002 for (++__next; __next != __last; __first = __next, (void)++__next)
│ │ │ │ +
2003 if (std::__invoke(__comp,
│ │ │ │ +
2004 std::__invoke(__proj, *__next),
│ │ │ │ +
2005 std::__invoke(__proj, *__first)))
│ │ │ │ +
2006 return __next;
│ │ │ │ +
2007 return __next;
│ │ │ │ +
2008 }
│ │ │ │ +
2009
│ │ │ │ +
2010 template<forward_range _Range, typename _Proj = identity,
│ │ │ │ +
2011 indirect_strict_weak_order<projected<iterator_t<_Range>, _Proj>>
│ │ │ │ +
2012 _Comp = ranges::less>
│ │ │ │ +
2013 constexpr borrowed_iterator_t<_Range>
│ │ │ │ +
2014 operator()(_Range&& __r, _Comp __comp = {}, _Proj __proj = {}) const
│ │ │ │ +
2015 {
│ │ │ │ +
2016 return (*this)(ranges::begin(__r), ranges::end(__r),
│ │ │ │ +
2017 std::move(__comp), std::move(__proj));
│ │ │ │ +
2018 }
│ │ │ │ +
2019 };
│ │ │ │ +
2020
│ │ │ │ +
2021 inline constexpr __is_sorted_until_fn is_sorted_until{};
│ │ │ │ +
2022
│ │ │ │ +
2023 struct __is_sorted_fn
│ │ │ │ +
2024 {
│ │ │ │ +
2025 template<forward_iterator _Iter, sentinel_for<_Iter> _Sent,
│ │ │ │ +
2026 typename _Proj = identity,
│ │ │ │ +
2027 indirect_strict_weak_order<projected<_Iter, _Proj>>
│ │ │ │ +
2028 _Comp = ranges::less>
│ │ │ │ +
2029 constexpr bool
│ │ │ │ +
2030 operator()(_Iter __first, _Sent __last,
│ │ │ │ +
2031 _Comp __comp = {}, _Proj __proj = {}) const
│ │ │ │ +
2032 {
│ │ │ │ +
2033 if (__first == __last)
│ │ │ │ +
2034 return true;
│ │ │ │ +
2035
│ │ │ │ +
2036 auto __next = __first;
│ │ │ │ +
2037 for (++__next; __next != __last; __first = __next, (void)++__next)
│ │ │ │ +
2038 if (std::__invoke(__comp,
│ │ │ │ +
2039 std::__invoke(__proj, *__next),
│ │ │ │ +
2040 std::__invoke(__proj, *__first)))
│ │ │ │ +
2041 return false;
│ │ │ │ +
2042 return true;
│ │ │ │ +
2043 }
│ │ │ │ +
2044
│ │ │ │ +
2045 template<forward_range _Range, typename _Proj = identity,
│ │ │ │ +
2046 indirect_strict_weak_order<projected<iterator_t<_Range>, _Proj>>
│ │ │ │ +
2047 _Comp = ranges::less>
│ │ │ │ +
2048 constexpr bool
│ │ │ │ +
2049 operator()(_Range&& __r, _Comp __comp = {}, _Proj __proj = {}) const
│ │ │ │ +
2050 {
│ │ │ │ +
2051 return (*this)(ranges::begin(__r), ranges::end(__r),
│ │ │ │ +
2052 std::move(__comp), std::move(__proj));
│ │ │ │ +
2053 }
│ │ │ │ +
2054 };
│ │ │ │ +
2055
│ │ │ │ +
2056 inline constexpr __is_sorted_fn is_sorted{};
│ │ │ │ +
2057
│ │ │ │ +
2058 struct __nth_element_fn
│ │ │ │ +
2059 {
│ │ │ │ +
2060 template<random_access_iterator _Iter, sentinel_for<_Iter> _Sent,
│ │ │ │ +
2061 typename _Comp = ranges::less, typename _Proj = identity>
│ │ │ │ +
2062 requires sortable<_Iter, _Comp, _Proj>
│ │ │ │ +
2063 constexpr _Iter
│ │ │ │ +
2064 operator()(_Iter __first, _Iter __nth, _Sent __last,
│ │ │ │ +
2065 _Comp __comp = {}, _Proj __proj = {}) const
│ │ │ │ +
2066 {
│ │ │ │ +
2067 auto __lasti = ranges::next(__first, __last);
│ │ │ │ +
2068 _GLIBCXX_STD_A::nth_element(std::move(__first), std::move(__nth),
│ │ │ │ +
2069 __lasti,
│ │ │ │ +
2070 __detail::__make_comp_proj(__comp, __proj));
│ │ │ │ +
2071 return __lasti;
│ │ │ │ +
2072 }
│ │ │ │ +
2073
│ │ │ │ +
2074 template<random_access_range _Range,
│ │ │ │ +
2075 typename _Comp = ranges::less, typename _Proj = identity>
│ │ │ │ +
2076 requires sortable<iterator_t<_Range>, _Comp, _Proj>
│ │ │ │ +
2077 constexpr borrowed_iterator_t<_Range>
│ │ │ │ +
2078 operator()(_Range&& __r, iterator_t<_Range> __nth,
│ │ │ │ +
2079 _Comp __comp = {}, _Proj __proj = {}) const
│ │ │ │ +
2080 {
│ │ │ │ +
2081 return (*this)(ranges::begin(__r), std::move(__nth),
│ │ │ │ +
2082 ranges::end(__r), std::move(__comp), std::move(__proj));
│ │ │ │ +
2083 }
│ │ │ │ +
2084 };
│ │ │ │ +
2085
│ │ │ │ +
2086 inline constexpr __nth_element_fn nth_element{};
│ │ │ │ +
2087
│ │ │ │ +
2088 struct __lower_bound_fn
│ │ │ │ +
2089 {
│ │ │ │ +
2090 template<forward_iterator _Iter, sentinel_for<_Iter> _Sent,
│ │ │ │ +
2091 typename _Proj = identity,
│ │ │ │ +
2092 typename _Tp _GLIBCXX26_RANGE_ALGO_DEF_VAL_T(_Iter, _Proj),
│ │ │ │ +
2093 indirect_strict_weak_order<const _Tp*, projected<_Iter, _Proj>>
│ │ │ │ +
2094 _Comp = ranges::less>
│ │ │ │ +
2095 constexpr _Iter
│ │ │ │ +
2096 operator()(_Iter __first, _Sent __last,
│ │ │ │ +
2097 const _Tp& __value, _Comp __comp = {}, _Proj __proj = {}) const
│ │ │ │ +
2098 {
│ │ │ │ +
2099 auto __len = ranges::distance(__first, __last);
│ │ │ │ +
2100
│ │ │ │ +
2101 while (__len > 0)
│ │ │ │ +
2102 {
│ │ │ │ +
2103 auto __half = __len / 2;
│ │ │ │ +
2104 auto __middle = __first;
│ │ │ │ +
2105 ranges::advance(__middle, __half);
│ │ │ │ +
2106 if (std::__invoke(__comp, std::__invoke(__proj, *__middle), __value))
│ │ │ │ +
2107 {
│ │ │ │ +
2108 __first = __middle;
│ │ │ │ +
2109 ++__first;
│ │ │ │ +
2110 __len = __len - __half - 1;
│ │ │ │ +
2111 }
│ │ │ │ +
2112 else
│ │ │ │ +
2113 __len = __half;
│ │ │ │ +
2114 }
│ │ │ │ +
2115 return __first;
│ │ │ │ +
2116 }
│ │ │ │ +
2117
│ │ │ │ +
2118 template<forward_range _Range,
│ │ │ │ +
2119 typename _Proj = identity,
│ │ │ │ +
2120 typename _Tp
│ │ │ │ +
2121 _GLIBCXX26_RANGE_ALGO_DEF_VAL_T(iterator_t<_Range>, _Proj),
│ │ │ │ +
2122 indirect_strict_weak_order<const _Tp*,
│ │ │ │ +
2123 projected<iterator_t<_Range>, _Proj>>
│ │ │ │ +
2124 _Comp = ranges::less>
│ │ │ │ +
2125 constexpr borrowed_iterator_t<_Range>
│ │ │ │ +
2126 operator()(_Range&& __r,
│ │ │ │ +
2127 const _Tp& __value, _Comp __comp = {}, _Proj __proj = {}) const
│ │ │ │ +
2128 {
│ │ │ │ +
2129 return (*this)(ranges::begin(__r), ranges::end(__r),
│ │ │ │ +
2130 __value, std::move(__comp), std::move(__proj));
│ │ │ │ +
2131 }
│ │ │ │ +
2132 };
│ │ │ │ +
2133
│ │ │ │ +
2134 inline constexpr __lower_bound_fn lower_bound{};
│ │ │ │ +
2135
│ │ │ │ +
2136 struct __upper_bound_fn
│ │ │ │ +
2137 {
│ │ │ │ +
2138 template<forward_iterator _Iter, sentinel_for<_Iter> _Sent,
│ │ │ │ +
2139 typename _Proj = identity,
│ │ │ │ +
2140 typename _Tp _GLIBCXX26_RANGE_ALGO_DEF_VAL_T(_Iter, _Proj),
│ │ │ │ +
2141 indirect_strict_weak_order<const _Tp*, projected<_Iter, _Proj>>
│ │ │ │ +
2142 _Comp = ranges::less>
│ │ │ │ +
2143 constexpr _Iter
│ │ │ │ +
2144 operator()(_Iter __first, _Sent __last,
│ │ │ │ +
2145 const _Tp& __value, _Comp __comp = {}, _Proj __proj = {}) const
│ │ │ │ +
2146 {
│ │ │ │ +
2147 auto __len = ranges::distance(__first, __last);
│ │ │ │ +
2148
│ │ │ │ +
2149 while (__len > 0)
│ │ │ │ +
2150 {
│ │ │ │ +
2151 auto __half = __len / 2;
│ │ │ │ +
2152 auto __middle = __first;
│ │ │ │ +
2153 ranges::advance(__middle, __half);
│ │ │ │ +
2154 if (std::__invoke(__comp, __value, std::__invoke(__proj, *__middle)))
│ │ │ │ +
2155 __len = __half;
│ │ │ │ +
2156 else
│ │ │ │ +
2157 {
│ │ │ │ +
2158 __first = __middle;
│ │ │ │ +
2159 ++__first;
│ │ │ │ +
2160 __len = __len - __half - 1;
│ │ │ │ +
2161 }
│ │ │ │ +
2162 }
│ │ │ │ +
2163 return __first;
│ │ │ │ +
2164 }
│ │ │ │ +
2165
│ │ │ │ +
2166 template<forward_range _Range,
│ │ │ │ +
2167 typename _Proj = identity,
│ │ │ │ +
2168 typename _Tp
│ │ │ │ +
2169 _GLIBCXX26_RANGE_ALGO_DEF_VAL_T(iterator_t<_Range>, _Proj),
│ │ │ │ +
2170 indirect_strict_weak_order<const _Tp*,
│ │ │ │ +
2171 projected<iterator_t<_Range>, _Proj>>
│ │ │ │ +
2172 _Comp = ranges::less>
│ │ │ │ +
2173 constexpr borrowed_iterator_t<_Range>
│ │ │ │ +
2174 operator()(_Range&& __r,
│ │ │ │ +
2175 const _Tp& __value, _Comp __comp = {}, _Proj __proj = {}) const
│ │ │ │ +
2176 {
│ │ │ │ +
2177 return (*this)(ranges::begin(__r), ranges::end(__r),
│ │ │ │ +
2178 __value, std::move(__comp), std::move(__proj));
│ │ │ │ +
2179 }
│ │ │ │ +
2180 };
│ │ │ │ +
2181
│ │ │ │ +
2182 inline constexpr __upper_bound_fn upper_bound{};
│ │ │ │ +
2183
│ │ │ │ +
2184 struct __equal_range_fn
│ │ │ │ +
2185 {
│ │ │ │ +
2186 template<forward_iterator _Iter, sentinel_for<_Iter> _Sent,
│ │ │ │ +
2187 typename _Proj = identity,
│ │ │ │ +
2188 typename _Tp _GLIBCXX26_RANGE_ALGO_DEF_VAL_T(_Iter, _Proj),
│ │ │ │ +
2189 indirect_strict_weak_order<const _Tp*, projected<_Iter, _Proj>>
│ │ │ │ +
2190 _Comp = ranges::less>
│ │ │ │ +
2191 constexpr subrange<_Iter>
│ │ │ │ +
2192 operator()(_Iter __first, _Sent __last,
│ │ │ │ +
2193 const _Tp& __value, _Comp __comp = {}, _Proj __proj = {}) const
│ │ │ │ +
2194 {
│ │ │ │ +
2195 auto __len = ranges::distance(__first, __last);
│ │ │ │ +
2196
│ │ │ │ +
2197 while (__len > 0)
│ │ │ │ +
2198 {
│ │ │ │ +
2199 auto __half = __len / 2;
│ │ │ │ +
2200 auto __middle = __first;
│ │ │ │ +
2201 ranges::advance(__middle, __half);
│ │ │ │ +
2202 if (std::__invoke(__comp,
│ │ │ │ +
2203 std::__invoke(__proj, *__middle),
│ │ │ │ +
2204 __value))
│ │ │ │ +
2205 {
│ │ │ │ +
2206 __first = __middle;
│ │ │ │ +
2207 ++__first;
│ │ │ │ +
2208 __len = __len - __half - 1;
│ │ │ │ +
2209 }
│ │ │ │ +
2210 else if (std::__invoke(__comp,
│ │ │ │ +
2211 __value,
│ │ │ │ +
2212 std::__invoke(__proj, *__middle)))
│ │ │ │ +
2213 __len = __half;
│ │ │ │ +
2214 else
│ │ │ │ +
2215 {
│ │ │ │ +
2216 auto __left
│ │ │ │ +
2217 = ranges::lower_bound(__first, __middle,
│ │ │ │ +
2218 __value, __comp, __proj);
│ │ │ │ +
2219 ranges::advance(__first, __len);
│ │ │ │ +
2220 auto __right
│ │ │ │ +
2221 = ranges::upper_bound(++__middle, __first,
│ │ │ │ +
2222 __value, __comp, __proj);
│ │ │ │ +
2223 return {__left, __right};
│ │ │ │ +
2224 }
│ │ │ │ +
2225 }
│ │ │ │ +
2226 return {__first, __first};
│ │ │ │ +
2227 }
│ │ │ │ +
2228
│ │ │ │ +
2229 template<forward_range _Range,
│ │ │ │ +
2230 typename _Proj = identity,
│ │ │ │ +
2231 typename _Tp
│ │ │ │ +
2232 _GLIBCXX26_RANGE_ALGO_DEF_VAL_T(iterator_t<_Range>, _Proj),
│ │ │ │ +
2233 indirect_strict_weak_order<const _Tp*,
│ │ │ │ +
2234 projected<iterator_t<_Range>, _Proj>>
│ │ │ │ +
2235 _Comp = ranges::less>
│ │ │ │ +
2236 constexpr borrowed_subrange_t<_Range>
│ │ │ │ +
2237 operator()(_Range&& __r, const _Tp& __value,
│ │ │ │ +
2238 _Comp __comp = {}, _Proj __proj = {}) const
│ │ │ │ +
2239 {
│ │ │ │ +
2240 return (*this)(ranges::begin(__r), ranges::end(__r),
│ │ │ │ +
2241 __value, std::move(__comp), std::move(__proj));
│ │ │ │ +
2242 }
│ │ │ │ +
2243 };
│ │ │ │ +
2244
│ │ │ │ +
2245 inline constexpr __equal_range_fn equal_range{};
│ │ │ │ +
2246
│ │ │ │ +
2247 struct __binary_search_fn
│ │ │ │ +
2248 {
│ │ │ │ +
2249 template<forward_iterator _Iter, sentinel_for<_Iter> _Sent,
│ │ │ │ +
2250 typename _Proj = identity,
│ │ │ │ +
2251 typename _Tp _GLIBCXX26_RANGE_ALGO_DEF_VAL_T(_Iter, _Proj),
│ │ │ │ +
2252 indirect_strict_weak_order<const _Tp*, projected<_Iter, _Proj>>
│ │ │ │ +
2253 _Comp = ranges::less>
│ │ │ │ +
2254 constexpr bool
│ │ │ │ +
2255 operator()(_Iter __first, _Sent __last,
│ │ │ │ +
2256 const _Tp& __value, _Comp __comp = {}, _Proj __proj = {}) const
│ │ │ │ +
2257 {
│ │ │ │ +
2258 auto __i = ranges::lower_bound(__first, __last, __value, __comp, __proj);
│ │ │ │ +
2259 if (__i == __last)
│ │ │ │ +
2260 return false;
│ │ │ │ +
2261 return !(bool)std::__invoke(__comp, __value,
│ │ │ │ +
2262 std::__invoke(__proj, *__i));
│ │ │ │ +
2263 }
│ │ │ │ +
2264
│ │ │ │ +
2265 template<forward_range _Range,
│ │ │ │ +
2266 typename _Proj = identity,
│ │ │ │ +
2267 typename _Tp
│ │ │ │ +
2268 _GLIBCXX26_RANGE_ALGO_DEF_VAL_T(iterator_t<_Range>, _Proj),
│ │ │ │ +
2269 indirect_strict_weak_order<const _Tp*,
│ │ │ │ +
2270 projected<iterator_t<_Range>, _Proj>>
│ │ │ │ +
2271 _Comp = ranges::less>
│ │ │ │ +
2272 constexpr bool
│ │ │ │ +
2273 operator()(_Range&& __r, const _Tp& __value, _Comp __comp = {},
│ │ │ │ +
2274 _Proj __proj = {}) const
│ │ │ │ +
2275 {
│ │ │ │ +
2276 return (*this)(ranges::begin(__r), ranges::end(__r),
│ │ │ │ +
2277 __value, std::move(__comp), std::move(__proj));
│ │ │ │ +
2278 }
│ │ │ │ +
2279 };
│ │ │ │ +
2280
│ │ │ │ +
2281 inline constexpr __binary_search_fn binary_search{};
│ │ │ │ +
2282
│ │ │ │ +
2283 struct __is_partitioned_fn
│ │ │ │ +
2284 {
│ │ │ │ +
2285 template<input_iterator _Iter, sentinel_for<_Iter> _Sent,
│ │ │ │ +
2286 typename _Proj = identity,
│ │ │ │ +
2287 indirect_unary_predicate<projected<_Iter, _Proj>> _Pred>
│ │ │ │ +
2288 constexpr bool
│ │ │ │ +
2289 operator()(_Iter __first, _Sent __last,
│ │ │ │ +
2290 _Pred __pred, _Proj __proj = {}) const
│ │ │ │ +
2291 {
│ │ │ │ +
2292 __first = ranges::find_if_not(std::move(__first), __last,
│ │ │ │ +
2293 __pred, __proj);
│ │ │ │ +
2294 if (__first == __last)
│ │ │ │ +
2295 return true;
│ │ │ │ +
2296 ++__first;
│ │ │ │ +
2297 return ranges::none_of(std::move(__first), std::move(__last),
│ │ │ │ +
2298 std::move(__pred), std::move(__proj));
│ │ │ │ +
2299 }
│ │ │ │ +
2300
│ │ │ │ +
2301 template<input_range _Range, typename _Proj = identity,
│ │ │ │ +
2302 indirect_unary_predicate<projected<iterator_t<_Range>, _Proj>>
│ │ │ │ +
2303 _Pred>
│ │ │ │ +
2304 constexpr bool
│ │ │ │ +
2305 operator()(_Range&& __r, _Pred __pred, _Proj __proj = {}) const
│ │ │ │ +
2306 {
│ │ │ │ +
2307 return (*this)(ranges::begin(__r), ranges::end(__r),
│ │ │ │ +
2308 std::move(__pred), std::move(__proj));
│ │ │ │ +
2309 }
│ │ │ │ +
2310 };
│ │ │ │ +
2311
│ │ │ │ +
2312 inline constexpr __is_partitioned_fn is_partitioned{};
│ │ │ │ +
2313
│ │ │ │ +
2314 struct __partition_fn
│ │ │ │ +
2315 {
│ │ │ │ +
2316 template<permutable _Iter, sentinel_for<_Iter> _Sent,
│ │ │ │ +
2317 typename _Proj = identity,
│ │ │ │ +
2318 indirect_unary_predicate<projected<_Iter, _Proj>> _Pred>
│ │ │ │ +
2319 constexpr subrange<_Iter>
│ │ │ │ +
2320 operator()(_Iter __first, _Sent __last,
│ │ │ │ +
2321 _Pred __pred, _Proj __proj = {}) const
│ │ │ │ +
2322 {
│ │ │ │ +
2323 if constexpr (bidirectional_iterator<_Iter>)
│ │ │ │ +
2324 {
│ │ │ │ +
2325 auto __lasti = ranges::next(__first, __last);
│ │ │ │ +
2326 auto __tail = __lasti;
│ │ │ │ +
2327 for (;;)
│ │ │ │ +
2328 {
│ │ │ │ +
2329 for (;;)
│ │ │ │ +
2330 if (__first == __tail)
│ │ │ │ +
2331 return {std::move(__first), std::move(__lasti)};
│ │ │ │ +
2332 else if (std::__invoke(__pred,
│ │ │ │ +
2333 std::__invoke(__proj, *__first)))
│ │ │ │ +
2334 ++__first;
│ │ │ │ +
2335 else
│ │ │ │ +
2336 break;
│ │ │ │ +
2337 --__tail;
│ │ │ │ +
2338 for (;;)
│ │ │ │ +
2339 if (__first == __tail)
│ │ │ │ +
2340 return {std::move(__first), std::move(__lasti)};
│ │ │ │ +
2341 else if (!(bool)std::__invoke(__pred,
│ │ │ │ +
2342 std::__invoke(__proj, *__tail)))
│ │ │ │ +
2343 --__tail;
│ │ │ │ +
2344 else
│ │ │ │ +
2345 break;
│ │ │ │ +
2346 ranges::iter_swap(__first, __tail);
│ │ │ │ +
2347 ++__first;
│ │ │ │ +
2348 }
│ │ │ │ +
2349 }
│ │ │ │ +
2350 else
│ │ │ │ +
2351 {
│ │ │ │ +
2352 if (__first == __last)
│ │ │ │ +
2353 return {__first, __first};
│ │ │ │ +
2354
│ │ │ │ +
2355 while (std::__invoke(__pred, std::__invoke(__proj, *__first)))
│ │ │ │ +
2356 if (++__first == __last)
│ │ │ │ +
2357 return {__first, __first};
│ │ │ │ +
2358
│ │ │ │ +
2359 auto __next = __first;
│ │ │ │ +
2360 while (++__next != __last)
│ │ │ │ +
2361 if (std::__invoke(__pred, std::__invoke(__proj, *__next)))
│ │ │ │ +
2362 {
│ │ │ │ +
2363 ranges::iter_swap(__first, __next);
│ │ │ │ +
2364 ++__first;
│ │ │ │ +
2365 }
│ │ │ │ +
2366
│ │ │ │ +
2367 return {std::move(__first), std::move(__next)};
│ │ │ │ +
2368 }
│ │ │ │ +
2369 }
│ │ │ │ +
2370
│ │ │ │ +
2371 template<forward_range _Range, typename _Proj = identity,
│ │ │ │ +
2372 indirect_unary_predicate<projected<iterator_t<_Range>, _Proj>>
│ │ │ │ +
2373 _Pred>
│ │ │ │ +
2374 requires permutable<iterator_t<_Range>>
│ │ │ │ +
2375 constexpr borrowed_subrange_t<_Range>
│ │ │ │ +
2376 operator()(_Range&& __r, _Pred __pred, _Proj __proj = {}) const
│ │ │ │ +
2377 {
│ │ │ │ +
2378 return (*this)(ranges::begin(__r), ranges::end(__r),
│ │ │ │ +
2379 std::move(__pred), std::move(__proj));
│ │ │ │ +
2380 }
│ │ │ │ +
2381 };
│ │ │ │ +
2382
│ │ │ │ +
2383 inline constexpr __partition_fn partition{};
│ │ │ │ +
2384
│ │ │ │ +
2385#if _GLIBCXX_HOSTED
│ │ │ │ +
2386 struct __stable_partition_fn
│ │ │ │ +
2387 {
│ │ │ │ +
2388 template<bidirectional_iterator _Iter, sentinel_for<_Iter> _Sent,
│ │ │ │ +
2389 typename _Proj = identity,
│ │ │ │ +
2390 indirect_unary_predicate<projected<_Iter, _Proj>> _Pred>
│ │ │ │ +
2391 requires permutable<_Iter>
│ │ │ │ +
2392 subrange<_Iter>
│ │ │ │ +
2393 operator()(_Iter __first, _Sent __last,
│ │ │ │ +
2394 _Pred __pred, _Proj __proj = {}) const
│ │ │ │ +
2395 {
│ │ │ │ +
2396 auto __lasti = ranges::next(__first, __last);
│ │ │ │ +
2397 auto __middle
│ │ │ │ +
2398 = std::stable_partition(std::move(__first), __lasti,
│ │ │ │ +
2399 __detail::__make_pred_proj(__pred, __proj));
│ │ │ │ +
2400 return {std::move(__middle), std::move(__lasti)};
│ │ │ │ +
2401 }
│ │ │ │ +
2402
│ │ │ │ +
2403 template<bidirectional_range _Range, typename _Proj = identity,
│ │ │ │ +
2404 indirect_unary_predicate<projected<iterator_t<_Range>, _Proj>>
│ │ │ │ +
2405 _Pred>
│ │ │ │ +
2406 requires permutable<iterator_t<_Range>>
│ │ │ │ +
2407 borrowed_subrange_t<_Range>
│ │ │ │ +
2408 operator()(_Range&& __r, _Pred __pred, _Proj __proj = {}) const
│ │ │ │ +
2409 {
│ │ │ │ +
2410 return (*this)(ranges::begin(__r), ranges::end(__r),
│ │ │ │ +
2411 std::move(__pred), std::move(__proj));
│ │ │ │ +
2412 }
│ │ │ │ +
2413 };
│ │ │ │ +
2414
│ │ │ │ +
2415 inline constexpr __stable_partition_fn stable_partition{};
│ │ │ │ +
2416#endif
│ │ │ │ +
2417
│ │ │ │ +
2418 template<typename _Iter, typename _Out1, typename _Out2>
│ │ │ │ +
2419 struct in_out_out_result
│ │ │ │ +
2420 {
│ │ │ │ +
2421 [[no_unique_address]] _Iter in;
│ │ │ │ +
2422 [[no_unique_address]] _Out1 out1;
│ │ │ │ +
2423 [[no_unique_address]] _Out2 out2;
│ │ │ │ +
2424
│ │ │ │ +
2425 template<typename _IIter, typename _OOut1, typename _OOut2>
│ │ │ │ +
2426 requires convertible_to<const _Iter&, _IIter>
│ │ │ │ +
2427 && convertible_to<const _Out1&, _OOut1>
│ │ │ │ +
2428 && convertible_to<const _Out2&, _OOut2>
│ │ │ │ +
2429 constexpr
│ │ │ │ +
2430 operator in_out_out_result<_IIter, _OOut1, _OOut2>() const &
│ │ │ │ +
2431 { return {in, out1, out2}; }
│ │ │ │ +
2432
│ │ │ │ +
2433 template<typename _IIter, typename _OOut1, typename _OOut2>
│ │ │ │ +
2434 requires convertible_to<_Iter, _IIter>
│ │ │ │ +
2435 && convertible_to<_Out1, _OOut1>
│ │ │ │ +
2436 && convertible_to<_Out2, _OOut2>
│ │ │ │ +
2437 constexpr
│ │ │ │ +
2438 operator in_out_out_result<_IIter, _OOut1, _OOut2>() &&
│ │ │ │ +
2439 { return {std::move(in), std::move(out1), std::move(out2)}; }
│ │ │ │ +
2440 };
│ │ │ │ +
2441
│ │ │ │ +
2442 template<typename _Iter, typename _Out1, typename _Out2>
│ │ │ │ +
2443 using partition_copy_result = in_out_out_result<_Iter, _Out1, _Out2>;
│ │ │ │ +
2444
│ │ │ │ +
2445 struct __partition_copy_fn
│ │ │ │ +
2446 {
│ │ │ │ +
2447 template<input_iterator _Iter, sentinel_for<_Iter> _Sent,
│ │ │ │ +
2448 weakly_incrementable _Out1, weakly_incrementable _Out2,
│ │ │ │ +
2449 typename _Proj = identity,
│ │ │ │ +
2450 indirect_unary_predicate<projected<_Iter, _Proj>> _Pred>
│ │ │ │ +
2451 requires indirectly_copyable<_Iter, _Out1>
│ │ │ │ +
2452 && indirectly_copyable<_Iter, _Out2>
│ │ │ │ +
2453 constexpr partition_copy_result<_Iter, _Out1, _Out2>
│ │ │ │ +
2454 operator()(_Iter __first, _Sent __last,
│ │ │ │ +
2455 _Out1 __out_true, _Out2 __out_false,
│ │ │ │ +
2456 _Pred __pred, _Proj __proj = {}) const
│ │ │ │ +
2457 {
│ │ │ │ +
2458 for (; __first != __last; ++__first)
│ │ │ │ +
2459 if (std::__invoke(__pred, std::__invoke(__proj, *__first)))
│ │ │ │ +
2460 {
│ │ │ │ +
2461 *__out_true = *__first;
│ │ │ │ +
2462 ++__out_true;
│ │ │ │ +
2463 }
│ │ │ │ +
2464 else
│ │ │ │ +
2465 {
│ │ │ │ +
2466 *__out_false = *__first;
│ │ │ │ +
2467 ++__out_false;
│ │ │ │ +
2468 }
│ │ │ │ +
2469
│ │ │ │ +
2470 return {std::move(__first),
│ │ │ │ +
2471 std::move(__out_true), std::move(__out_false)};
│ │ │ │ +
2472 }
│ │ │ │ +
2473
│ │ │ │ +
2474 template<input_range _Range, weakly_incrementable _Out1,
│ │ │ │ +
2475 weakly_incrementable _Out2,
│ │ │ │ +
2476 typename _Proj = identity,
│ │ │ │ +
2477 indirect_unary_predicate<projected<iterator_t<_Range>, _Proj>>
│ │ │ │ +
2478 _Pred>
│ │ │ │ +
2479 requires indirectly_copyable<iterator_t<_Range>, _Out1>
│ │ │ │ +
2480 && indirectly_copyable<iterator_t<_Range>, _Out2>
│ │ │ │ +
2481 constexpr partition_copy_result<borrowed_iterator_t<_Range>, _Out1, _Out2>
│ │ │ │ +
2482 operator()(_Range&& __r, _Out1 __out_true, _Out2 __out_false,
│ │ │ │ +
2483 _Pred __pred, _Proj __proj = {}) const
│ │ │ │ +
2484 {
│ │ │ │ +
2485 return (*this)(ranges::begin(__r), ranges::end(__r),
│ │ │ │ +
2486 std::move(__out_true), std::move(__out_false),
│ │ │ │ +
2487 std::move(__pred), std::move(__proj));
│ │ │ │ +
2488 }
│ │ │ │ +
2489 };
│ │ │ │ +
2490
│ │ │ │ +
2491 inline constexpr __partition_copy_fn partition_copy{};
│ │ │ │ +
2492
│ │ │ │ +
2493 struct __partition_point_fn
│ │ │ │ +
2494 {
│ │ │ │ +
2495 template<forward_iterator _Iter, sentinel_for<_Iter> _Sent,
│ │ │ │ +
2496 typename _Proj = identity,
│ │ │ │ +
2497 indirect_unary_predicate<projected<_Iter, _Proj>> _Pred>
│ │ │ │ +
2498 constexpr _Iter
│ │ │ │ +
2499 operator()(_Iter __first, _Sent __last,
│ │ │ │ +
2500 _Pred __pred, _Proj __proj = {}) const
│ │ │ │ +
2501 {
│ │ │ │ +
2502 auto __len = ranges::distance(__first, __last);
│ │ │ │ +
2503
│ │ │ │ +
2504 while (__len > 0)
│ │ │ │ +
2505 {
│ │ │ │ +
2506 auto __half = __len / 2;
│ │ │ │ +
2507 auto __middle = __first;
│ │ │ │ +
2508 ranges::advance(__middle, __half);
│ │ │ │ +
2509 if (std::__invoke(__pred, std::__invoke(__proj, *__middle)))
│ │ │ │ +
2510 {
│ │ │ │ +
2511 __first = __middle;
│ │ │ │ +
2512 ++__first;
│ │ │ │ +
2513 __len = __len - __half - 1;
│ │ │ │ +
2514 }
│ │ │ │ +
2515 else
│ │ │ │ +
2516 __len = __half;
│ │ │ │ +
2517 }
│ │ │ │ +
2518 return __first;
│ │ │ │ +
2519 }
│ │ │ │ +
2520
│ │ │ │ +
2521 template<forward_range _Range, typename _Proj = identity,
│ │ │ │ +
2522 indirect_unary_predicate<projected<iterator_t<_Range>, _Proj>>
│ │ │ │ +
2523 _Pred>
│ │ │ │ +
2524 constexpr borrowed_iterator_t<_Range>
│ │ │ │ +
2525 operator()(_Range&& __r, _Pred __pred, _Proj __proj = {}) const
│ │ │ │ +
2526 {
│ │ │ │ +
2527 return (*this)(ranges::begin(__r), ranges::end(__r),
│ │ │ │ +
2528 std::move(__pred), std::move(__proj));
│ │ │ │ +
2529 }
│ │ │ │ +
2530 };
│ │ │ │ +
2531
│ │ │ │ +
2532 inline constexpr __partition_point_fn partition_point{};
│ │ │ │ +
2533
│ │ │ │ +
2534 template<typename _Iter1, typename _Iter2, typename _Out>
│ │ │ │ +
2535 using merge_result = in_in_out_result<_Iter1, _Iter2, _Out>;
│ │ │ │ +
2536
│ │ │ │ +
2537 struct __merge_fn
│ │ │ │ +
2538 {
│ │ │ │ +
2539 template<input_iterator _Iter1, sentinel_for<_Iter1> _Sent1,
│ │ │ │ +
2540 input_iterator _Iter2, sentinel_for<_Iter2> _Sent2,
│ │ │ │ +
2541 weakly_incrementable _Out, typename _Comp = ranges::less,
│ │ │ │ +
2542 typename _Proj1 = identity, typename _Proj2 = identity>
│ │ │ │ +
2543 requires mergeable<_Iter1, _Iter2, _Out, _Comp, _Proj1, _Proj2>
│ │ │ │ +
2544 constexpr merge_result<_Iter1, _Iter2, _Out>
│ │ │ │ +
2545 operator()(_Iter1 __first1, _Sent1 __last1,
│ │ │ │ +
2546 _Iter2 __first2, _Sent2 __last2, _Out __result,
│ │ │ │ +
2547 _Comp __comp = {},
│ │ │ │ +
2548 _Proj1 __proj1 = {}, _Proj2 __proj2 = {}) const
│ │ │ │ +
2549 {
│ │ │ │ +
2550 while (__first1 != __last1 && __first2 != __last2)
│ │ │ │ +
2551 {
│ │ │ │ +
2552 if (std::__invoke(__comp,
│ │ │ │ +
2553 std::__invoke(__proj2, *__first2),
│ │ │ │ +
2554 std::__invoke(__proj1, *__first1)))
│ │ │ │ +
2555 {
│ │ │ │ +
2556 *__result = *__first2;
│ │ │ │ +
2557 ++__first2;
│ │ │ │ +
2558 }
│ │ │ │ +
2559 else
│ │ │ │ +
2560 {
│ │ │ │ +
2561 *__result = *__first1;
│ │ │ │ +
2562 ++__first1;
│ │ │ │ +
2563 }
│ │ │ │ +
2564 ++__result;
│ │ │ │ +
2565 }
│ │ │ │ +
2566 auto __copy1 = ranges::copy(std::move(__first1), std::move(__last1),
│ │ │ │ +
2567 std::move(__result));
│ │ │ │ +
2568 auto __copy2 = ranges::copy(std::move(__first2), std::move(__last2),
│ │ │ │ +
2569 std::move(__copy1.out));
│ │ │ │ +
2570 return { std::move(__copy1.in), std::move(__copy2.in),
│ │ │ │ +
2571 std::move(__copy2.out) };
│ │ │ │ +
2572 }
│ │ │ │ +
2573
│ │ │ │ +
2574 template<input_range _Range1, input_range _Range2, weakly_incrementable _Out,
│ │ │ │ +
2575 typename _Comp = ranges::less,
│ │ │ │ +
2576 typename _Proj1 = identity, typename _Proj2 = identity>
│ │ │ │ +
2577 requires mergeable<iterator_t<_Range1>, iterator_t<_Range2>, _Out,
│ │ │ │ +
2578 _Comp, _Proj1, _Proj2>
│ │ │ │ +
2579 constexpr merge_result<borrowed_iterator_t<_Range1>,
│ │ │ │ +
2580 borrowed_iterator_t<_Range2>,
│ │ │ │ +
2581 _Out>
│ │ │ │ +
2582 operator()(_Range1&& __r1, _Range2&& __r2, _Out __result,
│ │ │ │ +
2583 _Comp __comp = {},
│ │ │ │ +
2584 _Proj1 __proj1 = {}, _Proj2 __proj2 = {}) const
│ │ │ │ +
2585 {
│ │ │ │ +
2586 return (*this)(ranges::begin(__r1), ranges::end(__r1),
│ │ │ │ +
2587 ranges::begin(__r2), ranges::end(__r2),
│ │ │ │ +
2588 std::move(__result), std::move(__comp),
│ │ │ │ +
2589 std::move(__proj1), std::move(__proj2));
│ │ │ │ +
2590 }
│ │ │ │ +
2591 };
│ │ │ │ +
2592
│ │ │ │ +
2593 inline constexpr __merge_fn merge{};
│ │ │ │ +
2594
│ │ │ │ +
2595 struct __inplace_merge_fn
│ │ │ │ +
2596 {
│ │ │ │ +
2597 template<bidirectional_iterator _Iter, sentinel_for<_Iter> _Sent,
│ │ │ │ +
2598 typename _Comp = ranges::less,
│ │ │ │ +
2599 typename _Proj = identity>
│ │ │ │ +
2600 requires sortable<_Iter, _Comp, _Proj>
│ │ │ │ +
2601 _Iter
│ │ │ │ +
2602 operator()(_Iter __first, _Iter __middle, _Sent __last,
│ │ │ │ +
2603 _Comp __comp = {}, _Proj __proj = {}) const
│ │ │ │ +
2604 {
│ │ │ │ +
2605 auto __lasti = ranges::next(__first, __last);
│ │ │ │ +
2606 std::inplace_merge(std::move(__first), std::move(__middle), __lasti,
│ │ │ │ +
2607 __detail::__make_comp_proj(__comp, __proj));
│ │ │ │ +
2608 return __lasti;
│ │ │ │ +
2609 }
│ │ │ │ +
2610
│ │ │ │ +
2611 template<bidirectional_range _Range,
│ │ │ │ +
2612 typename _Comp = ranges::less, typename _Proj = identity>
│ │ │ │ +
2613 requires sortable<iterator_t<_Range>, _Comp, _Proj>
│ │ │ │ +
2614 borrowed_iterator_t<_Range>
│ │ │ │ +
2615 operator()(_Range&& __r, iterator_t<_Range> __middle,
│ │ │ │ +
2616 _Comp __comp = {}, _Proj __proj = {}) const
│ │ │ │ +
2617 {
│ │ │ │ +
2618 return (*this)(ranges::begin(__r), std::move(__middle),
│ │ │ │ +
2619 ranges::end(__r),
│ │ │ │ +
2620 std::move(__comp), std::move(__proj));
│ │ │ │ +
2621 }
│ │ │ │ +
2622 };
│ │ │ │ +
2623
│ │ │ │ +
2624 inline constexpr __inplace_merge_fn inplace_merge{};
│ │ │ │ +
2625
│ │ │ │ +
2626 struct __includes_fn
│ │ │ │ +
2627 {
│ │ │ │ +
2628 template<input_iterator _Iter1, sentinel_for<_Iter1> _Sent1,
│ │ │ │ +
2629 input_iterator _Iter2, sentinel_for<_Iter2> _Sent2,
│ │ │ │ +
2630 typename _Proj1 = identity, typename _Proj2 = identity,
│ │ │ │ +
2631 indirect_strict_weak_order<projected<_Iter1, _Proj1>,
│ │ │ │ +
2632 projected<_Iter2, _Proj2>>
│ │ │ │ +
2633 _Comp = ranges::less>
│ │ │ │ +
2634 constexpr bool
│ │ │ │ +
2635 operator()(_Iter1 __first1, _Sent1 __last1,
│ │ │ │ +
2636 _Iter2 __first2, _Sent2 __last2,
│ │ │ │ +
2637 _Comp __comp = {},
│ │ │ │ +
2638 _Proj1 __proj1 = {}, _Proj2 __proj2 = {}) const
│ │ │ │ +
2639 {
│ │ │ │ +
2640 while (__first1 != __last1 && __first2 != __last2)
│ │ │ │ +
2641 if (std::__invoke(__comp,
│ │ │ │ +
2642 std::__invoke(__proj2, *__first2),
│ │ │ │ +
2643 std::__invoke(__proj1, *__first1)))
│ │ │ │ +
2644 return false;
│ │ │ │ +
2645 else if (std::__invoke(__comp,
│ │ │ │ +
2646 std::__invoke(__proj1, *__first1),
│ │ │ │ +
2647 std::__invoke(__proj2, *__first2)))
│ │ │ │ +
2648 ++__first1;
│ │ │ │ +
2649 else
│ │ │ │ +
2650 {
│ │ │ │ +
2651 ++__first1;
│ │ │ │ +
2652 ++__first2;
│ │ │ │ +
2653 }
│ │ │ │ +
2654
│ │ │ │ +
2655 return __first2 == __last2;
│ │ │ │ +
2656 }
│ │ │ │ +
2657
│ │ │ │ +
2658 template<input_range _Range1, input_range _Range2,
│ │ │ │ +
2659 typename _Proj1 = identity, typename _Proj2 = identity,
│ │ │ │ +
2660 indirect_strict_weak_order<projected<iterator_t<_Range1>, _Proj1>,
│ │ │ │ +
2661 projected<iterator_t<_Range2>, _Proj2>>
│ │ │ │ +
2662 _Comp = ranges::less>
│ │ │ │ +
2663 constexpr bool
│ │ │ │ +
2664 operator()(_Range1&& __r1, _Range2&& __r2, _Comp __comp = {},
│ │ │ │ +
2665 _Proj1 __proj1 = {}, _Proj2 __proj2 = {}) const
│ │ │ │ +
2666 {
│ │ │ │ +
2667 return (*this)(ranges::begin(__r1), ranges::end(__r1),
│ │ │ │ +
2668 ranges::begin(__r2), ranges::end(__r2),
│ │ │ │ +
2669 std::move(__comp),
│ │ │ │ +
2670 std::move(__proj1), std::move(__proj2));
│ │ │ │ +
2671 }
│ │ │ │ +
2672 };
│ │ │ │ +
2673
│ │ │ │ +
2674 inline constexpr __includes_fn includes{};
│ │ │ │ +
2675
│ │ │ │ +
2676 template<typename _Iter1, typename _Iter2, typename _Out>
│ │ │ │ +
2677 using set_union_result = in_in_out_result<_Iter1, _Iter2, _Out>;
│ │ │ │ +
2678
│ │ │ │ +
2679 struct __set_union_fn
│ │ │ │ +
2680 {
│ │ │ │ +
2681 template<input_iterator _Iter1, sentinel_for<_Iter1> _Sent1,
│ │ │ │ +
2682 input_iterator _Iter2, sentinel_for<_Iter2> _Sent2,
│ │ │ │ +
2683 weakly_incrementable _Out, typename _Comp = ranges::less,
│ │ │ │ +
2684 typename _Proj1 = identity, typename _Proj2 = identity>
│ │ │ │ +
2685 requires mergeable<_Iter1, _Iter2, _Out, _Comp, _Proj1, _Proj2>
│ │ │ │ +
2686 constexpr set_union_result<_Iter1, _Iter2, _Out>
│ │ │ │ +
2687 operator()(_Iter1 __first1, _Sent1 __last1,
│ │ │ │ +
2688 _Iter2 __first2, _Sent2 __last2,
│ │ │ │ +
2689 _Out __result, _Comp __comp = {},
│ │ │ │ +
2690 _Proj1 __proj1 = {}, _Proj2 __proj2 = {}) const
│ │ │ │ +
2691 {
│ │ │ │ +
2692 while (__first1 != __last1 && __first2 != __last2)
│ │ │ │ +
2693 {
│ │ │ │ +
2694 if (std::__invoke(__comp,
│ │ │ │ +
2695 std::__invoke(__proj1, *__first1),
│ │ │ │ +
2696 std::__invoke(__proj2, *__first2)))
│ │ │ │ +
2697 {
│ │ │ │ +
2698 *__result = *__first1;
│ │ │ │ +
2699 ++__first1;
│ │ │ │ +
2700 }
│ │ │ │ +
2701 else if (std::__invoke(__comp,
│ │ │ │ +
2702 std::__invoke(__proj2, *__first2),
│ │ │ │ +
2703 std::__invoke(__proj1, *__first1)))
│ │ │ │ +
2704 {
│ │ │ │ +
2705 *__result = *__first2;
│ │ │ │ +
2706 ++__first2;
│ │ │ │ +
2707 }
│ │ │ │ +
2708 else
│ │ │ │ +
2709 {
│ │ │ │ +
2710 *__result = *__first1;
│ │ │ │ +
2711 ++__first1;
│ │ │ │ +
2712 ++__first2;
│ │ │ │ +
2713 }
│ │ │ │ +
2714 ++__result;
│ │ │ │ +
2715 }
│ │ │ │ +
2716 auto __copy1 = ranges::copy(std::move(__first1), std::move(__last1),
│ │ │ │ +
2717 std::move(__result));
│ │ │ │ +
2718 auto __copy2 = ranges::copy(std::move(__first2), std::move(__last2),
│ │ │ │ +
2719 std::move(__copy1.out));
│ │ │ │ +
2720 return {std::move(__copy1.in), std::move(__copy2.in),
│ │ │ │ +
2721 std::move(__copy2.out)};
│ │ │ │ +
2722 }
│ │ │ │ +
2723
│ │ │ │ +
2724 template<input_range _Range1, input_range _Range2, weakly_incrementable _Out,
│ │ │ │ +
2725 typename _Comp = ranges::less,
│ │ │ │ +
2726 typename _Proj1 = identity, typename _Proj2 = identity>
│ │ │ │ +
2727 requires mergeable<iterator_t<_Range1>, iterator_t<_Range2>, _Out,
│ │ │ │ +
2728 _Comp, _Proj1, _Proj2>
│ │ │ │ +
2729 constexpr set_union_result<borrowed_iterator_t<_Range1>,
│ │ │ │ +
2730 borrowed_iterator_t<_Range2>, _Out>
│ │ │ │ +
2731 operator()(_Range1&& __r1, _Range2&& __r2,
│ │ │ │ +
2732 _Out __result, _Comp __comp = {},
│ │ │ │ +
2733 _Proj1 __proj1 = {}, _Proj2 __proj2 = {}) const
│ │ │ │ +
2734 {
│ │ │ │ +
2735 return (*this)(ranges::begin(__r1), ranges::end(__r1),
│ │ │ │ +
2736 ranges::begin(__r2), ranges::end(__r2),
│ │ │ │ +
2737 std::move(__result), std::move(__comp),
│ │ │ │ +
2738 std::move(__proj1), std::move(__proj2));
│ │ │ │ +
2739 }
│ │ │ │ +
2740 };
│ │ │ │ +
2741
│ │ │ │ +
2742 inline constexpr __set_union_fn set_union{};
│ │ │ │ +
2743
│ │ │ │ +
2744 template<typename _Iter1, typename _Iter2, typename _Out>
│ │ │ │ +
2745 using set_intersection_result = in_in_out_result<_Iter1, _Iter2, _Out>;
│ │ │ │ +
2746
│ │ │ │ +
2747 struct __set_intersection_fn
│ │ │ │ +
2748 {
│ │ │ │ +
2749 template<input_iterator _Iter1, sentinel_for<_Iter1> _Sent1,
│ │ │ │ +
2750 input_iterator _Iter2, sentinel_for<_Iter2> _Sent2,
│ │ │ │ +
2751 weakly_incrementable _Out, typename _Comp = ranges::less,
│ │ │ │ +
2752 typename _Proj1 = identity, typename _Proj2 = identity>
│ │ │ │ +
2753 requires mergeable<_Iter1, _Iter2, _Out, _Comp, _Proj1, _Proj2>
│ │ │ │ +
2754 constexpr set_intersection_result<_Iter1, _Iter2, _Out>
│ │ │ │ +
2755 operator()(_Iter1 __first1, _Sent1 __last1,
│ │ │ │ +
2756 _Iter2 __first2, _Sent2 __last2, _Out __result,
│ │ │ │ +
2757 _Comp __comp = {},
│ │ │ │ +
2758 _Proj1 __proj1 = {}, _Proj2 __proj2 = {}) const
│ │ │ │ +
2759 {
│ │ │ │ +
2760 while (__first1 != __last1 && __first2 != __last2)
│ │ │ │ +
2761 if (std::__invoke(__comp,
│ │ │ │ +
2762 std::__invoke(__proj1, *__first1),
│ │ │ │ +
2763 std::__invoke(__proj2, *__first2)))
│ │ │ │ +
2764 ++__first1;
│ │ │ │ +
2765 else if (std::__invoke(__comp,
│ │ │ │ +
2766 std::__invoke(__proj2, *__first2),
│ │ │ │ +
2767 std::__invoke(__proj1, *__first1)))
│ │ │ │ +
2768 ++__first2;
│ │ │ │ +
2769 else
│ │ │ │ +
2770 {
│ │ │ │ +
2771 *__result = *__first1;
│ │ │ │ +
2772 ++__first1;
│ │ │ │ +
2773 ++__first2;
│ │ │ │ +
2774 ++__result;
│ │ │ │ +
2775 }
│ │ │ │ +
2776 // TODO: Eliminating these variables triggers an ICE.
│ │ │ │ +
2777 auto __last1i = ranges::next(std::move(__first1), std::move(__last1));
│ │ │ │ +
2778 auto __last2i = ranges::next(std::move(__first2), std::move(__last2));
│ │ │ │ +
2779 return {std::move(__last1i), std::move(__last2i), std::move(__result)};
│ │ │ │ +
2780 }
│ │ │ │ +
2781
│ │ │ │ +
2782 template<input_range _Range1, input_range _Range2, weakly_incrementable _Out,
│ │ │ │ +
2783 typename _Comp = ranges::less,
│ │ │ │ +
2784 typename _Proj1 = identity, typename _Proj2 = identity>
│ │ │ │ +
2785 requires mergeable<iterator_t<_Range1>, iterator_t<_Range2>, _Out,
│ │ │ │ +
2786 _Comp, _Proj1, _Proj2>
│ │ │ │ +
2787 constexpr set_intersection_result<borrowed_iterator_t<_Range1>,
│ │ │ │ +
2788 borrowed_iterator_t<_Range2>, _Out>
│ │ │ │ +
2789 operator()(_Range1&& __r1, _Range2&& __r2, _Out __result,
│ │ │ │ +
2790 _Comp __comp = {},
│ │ │ │ +
2791 _Proj1 __proj1 = {}, _Proj2 __proj2 = {}) const
│ │ │ │ +
2792 {
│ │ │ │ +
2793 return (*this)(ranges::begin(__r1), ranges::end(__r1),
│ │ │ │ +
2794 ranges::begin(__r2), ranges::end(__r2),
│ │ │ │ +
2795 std::move(__result), std::move(__comp),
│ │ │ │ +
2796 std::move(__proj1), std::move(__proj2));
│ │ │ │ +
2797 }
│ │ │ │ +
2798 };
│ │ │ │ +
2799
│ │ │ │ +
2800 inline constexpr __set_intersection_fn set_intersection{};
│ │ │ │ +
2801
│ │ │ │ +
2802 template<typename _Iter, typename _Out>
│ │ │ │ +
2803 using set_difference_result = in_out_result<_Iter, _Out>;
│ │ │ │ +
2804
│ │ │ │ +
2805 struct __set_difference_fn
│ │ │ │ +
2806 {
│ │ │ │ +
2807 template<input_iterator _Iter1, sentinel_for<_Iter1> _Sent1,
│ │ │ │ +
2808 input_iterator _Iter2, sentinel_for<_Iter2> _Sent2,
│ │ │ │ +
2809 weakly_incrementable _Out, typename _Comp = ranges::less,
│ │ │ │ +
2810 typename _Proj1 = identity, typename _Proj2 = identity>
│ │ │ │ +
2811 requires mergeable<_Iter1, _Iter2, _Out, _Comp, _Proj1, _Proj2>
│ │ │ │ +
2812 constexpr set_difference_result<_Iter1, _Out>
│ │ │ │ +
2813 operator()(_Iter1 __first1, _Sent1 __last1,
│ │ │ │ +
2814 _Iter2 __first2, _Sent2 __last2, _Out __result,
│ │ │ │ +
2815 _Comp __comp = {},
│ │ │ │ +
2816 _Proj1 __proj1 = {}, _Proj2 __proj2 = {}) const
│ │ │ │ +
2817 {
│ │ │ │ +
2818 while (__first1 != __last1 && __first2 != __last2)
│ │ │ │ +
2819 if (std::__invoke(__comp,
│ │ │ │ +
2820 std::__invoke(__proj1, *__first1),
│ │ │ │ +
2821 std::__invoke(__proj2, *__first2)))
│ │ │ │ +
2822 {
│ │ │ │ +
2823 *__result = *__first1;
│ │ │ │ +
2824 ++__first1;
│ │ │ │ +
2825 ++__result;
│ │ │ │ +
2826 }
│ │ │ │ +
2827 else if (std::__invoke(__comp,
│ │ │ │ +
2828 std::__invoke(__proj2, *__first2),
│ │ │ │ +
2829 std::__invoke(__proj1, *__first1)))
│ │ │ │ +
2830 ++__first2;
│ │ │ │ +
2831 else
│ │ │ │ +
2832 {
│ │ │ │ +
2833 ++__first1;
│ │ │ │ +
2834 ++__first2;
│ │ │ │ +
2835 }
│ │ │ │ +
2836 return ranges::copy(std::move(__first1), std::move(__last1),
│ │ │ │ +
2837 std::move(__result));
│ │ │ │ +
2838 }
│ │ │ │ +
2839
│ │ │ │ +
2840 template<input_range _Range1, input_range _Range2, weakly_incrementable _Out,
│ │ │ │ +
2841 typename _Comp = ranges::less,
│ │ │ │ +
2842 typename _Proj1 = identity, typename _Proj2 = identity>
│ │ │ │ +
2843 requires mergeable<iterator_t<_Range1>, iterator_t<_Range2>, _Out,
│ │ │ │ +
2844 _Comp, _Proj1, _Proj2>
│ │ │ │ +
2845 constexpr set_difference_result<borrowed_iterator_t<_Range1>, _Out>
│ │ │ │ +
2846 operator()(_Range1&& __r1, _Range2&& __r2, _Out __result,
│ │ │ │ +
2847 _Comp __comp = {},
│ │ │ │ +
2848 _Proj1 __proj1 = {}, _Proj2 __proj2 = {}) const
│ │ │ │ +
2849 {
│ │ │ │ +
2850 return (*this)(ranges::begin(__r1), ranges::end(__r1),
│ │ │ │ +
2851 ranges::begin(__r2), ranges::end(__r2),
│ │ │ │ +
2852 std::move(__result), std::move(__comp),
│ │ │ │ +
2853 std::move(__proj1), std::move(__proj2));
│ │ │ │ +
2854 }
│ │ │ │ +
2855 };
│ │ │ │ +
2856
│ │ │ │ +
2857 inline constexpr __set_difference_fn set_difference{};
│ │ │ │ +
2858
│ │ │ │ +
2859 template<typename _Iter1, typename _Iter2, typename _Out>
│ │ │ │ +
2860 using set_symmetric_difference_result
│ │ │ │ +
2861 = in_in_out_result<_Iter1, _Iter2, _Out>;
│ │ │ │ +
2862
│ │ │ │ +
2863 struct __set_symmetric_difference_fn
│ │ │ │ +
2864 {
│ │ │ │ +
2865 template<input_iterator _Iter1, sentinel_for<_Iter1> _Sent1,
│ │ │ │ +
2866 input_iterator _Iter2, sentinel_for<_Iter2> _Sent2,
│ │ │ │ +
2867 weakly_incrementable _Out, typename _Comp = ranges::less,
│ │ │ │ +
2868 typename _Proj1 = identity, typename _Proj2 = identity>
│ │ │ │ +
2869 requires mergeable<_Iter1, _Iter2, _Out, _Comp, _Proj1, _Proj2>
│ │ │ │ +
2870 constexpr set_symmetric_difference_result<_Iter1, _Iter2, _Out>
│ │ │ │ +
2871 operator()(_Iter1 __first1, _Sent1 __last1,
│ │ │ │ +
2872 _Iter2 __first2, _Sent2 __last2,
│ │ │ │ +
2873 _Out __result, _Comp __comp = {},
│ │ │ │ +
2874 _Proj1 __proj1 = {}, _Proj2 __proj2 = {}) const
│ │ │ │ +
2875 {
│ │ │ │ +
2876 while (__first1 != __last1 && __first2 != __last2)
│ │ │ │ +
2877 if (std::__invoke(__comp,
│ │ │ │ +
2878 std::__invoke(__proj1, *__first1),
│ │ │ │ +
2879 std::__invoke(__proj2, *__first2)))
│ │ │ │ +
2880 {
│ │ │ │ +
2881 *__result = *__first1;
│ │ │ │ +
2882 ++__first1;
│ │ │ │ +
2883 ++__result;
│ │ │ │ +
2884 }
│ │ │ │ +
2885 else if (std::__invoke(__comp,
│ │ │ │ +
2886 std::__invoke(__proj2, *__first2),
│ │ │ │ +
2887 std::__invoke(__proj1, *__first1)))
│ │ │ │ +
2888 {
│ │ │ │ +
2889 *__result = *__first2;
│ │ │ │ +
2890 ++__first2;
│ │ │ │ +
2891 ++__result;
│ │ │ │ +
2892 }
│ │ │ │ +
2893 else
│ │ │ │ +
2894 {
│ │ │ │ +
2895 ++__first1;
│ │ │ │ +
2896 ++__first2;
│ │ │ │ +
2897 }
│ │ │ │ +
2898 auto __copy1 = ranges::copy(std::move(__first1), std::move(__last1),
│ │ │ │ +
2899 std::move(__result));
│ │ │ │ +
2900 auto __copy2 = ranges::copy(std::move(__first2), std::move(__last2),
│ │ │ │ +
2901 std::move(__copy1.out));
│ │ │ │ +
2902 return {std::move(__copy1.in), std::move(__copy2.in),
│ │ │ │ +
2903 std::move(__copy2.out)};
│ │ │ │ +
2904 }
│ │ │ │ +
2905
│ │ │ │ +
2906 template<input_range _Range1, input_range _Range2, weakly_incrementable _Out,
│ │ │ │ +
2907 typename _Comp = ranges::less,
│ │ │ │ +
2908 typename _Proj1 = identity, typename _Proj2 = identity>
│ │ │ │ +
2909 requires mergeable<iterator_t<_Range1>, iterator_t<_Range2>, _Out,
│ │ │ │ +
2910 _Comp, _Proj1, _Proj2>
│ │ │ │ +
2911 constexpr set_symmetric_difference_result<borrowed_iterator_t<_Range1>,
│ │ │ │ +
2912 borrowed_iterator_t<_Range2>,
│ │ │ │ +
2913 _Out>
│ │ │ │ +
2914 operator()(_Range1&& __r1, _Range2&& __r2, _Out __result,
│ │ │ │ +
2915 _Comp __comp = {},
│ │ │ │ +
2916 _Proj1 __proj1 = {}, _Proj2 __proj2 = {}) const
│ │ │ │ +
2917 {
│ │ │ │ +
2918 return (*this)(ranges::begin(__r1), ranges::end(__r1),
│ │ │ │ +
2919 ranges::begin(__r2), ranges::end(__r2),
│ │ │ │ +
2920 std::move(__result), std::move(__comp),
│ │ │ │ +
2921 std::move(__proj1), std::move(__proj2));
│ │ │ │ +
2922 }
│ │ │ │ +
2923 };
│ │ │ │ +
2924
│ │ │ │ +
2925 inline constexpr __set_symmetric_difference_fn set_symmetric_difference{};
│ │ │ │ +
2926
│ │ │ │ +
2927 // min is defined in <bits/ranges_util.h>.
│ │ │ │ +
2928
│ │ │ │ +
2929 struct __max_fn
│ │ │ │ +
2930 {
│ │ │ │ +
2931 template<typename _Tp, typename _Proj = identity,
│ │ │ │ +
2932 indirect_strict_weak_order<projected<const _Tp*, _Proj>>
│ │ │ │ +
2933 _Comp = ranges::less>
│ │ │ │ +
2934 constexpr const _Tp&
│ │ │ │ +
2935 operator()(const _Tp& __a, const _Tp& __b,
│ │ │ │ +
2936 _Comp __comp = {}, _Proj __proj = {}) const
│ │ │ │ +
2937 {
│ │ │ │ +
2938 if (std::__invoke(__comp,
│ │ │ │ +
2939 std::__invoke(__proj, __a),
│ │ │ │ +
2940 std::__invoke(__proj, __b)))
│ │ │ │ +
2941 return __b;
│ │ │ │ +
2942 else
│ │ │ │ +
2943 return __a;
│ │ │ │ +
2944 }
│ │ │ │ +
2945
│ │ │ │ +
2946 template<input_range _Range, typename _Proj = identity,
│ │ │ │ +
2947 indirect_strict_weak_order<projected<iterator_t<_Range>, _Proj>>
│ │ │ │ +
2948 _Comp = ranges::less>
│ │ │ │ +
2949 requires indirectly_copyable_storable<iterator_t<_Range>,
│ │ │ │ +
2950 range_value_t<_Range>*>
│ │ │ │ +
2951 constexpr range_value_t<_Range>
│ │ │ │ +
2952 operator()(_Range&& __r, _Comp __comp = {}, _Proj __proj = {}) const
│ │ │ │ +
2953 {
│ │ │ │ +
2954 auto __first = ranges::begin(__r);
│ │ │ │ +
2955 auto __last = ranges::end(__r);
│ │ │ │ +
2956 __glibcxx_assert(__first != __last);
│ │ │ │ +
2957 auto __result = *__first;
│ │ │ │ +
2958 while (++__first != __last)
│ │ │ │ +
2959 {
│ │ │ │ +
2960 auto&& __tmp = *__first;
│ │ │ │ +
2961 if (std::__invoke(__comp,
│ │ │ │ +
2962 std::__invoke(__proj, __result),
│ │ │ │ +
2963 std::__invoke(__proj, __tmp)))
│ │ │ │ +
2964 __result = std::forward<decltype(__tmp)>(__tmp);
│ │ │ │ +
2965 }
│ │ │ │ +
2966 return __result;
│ │ │ │ +
2967 }
│ │ │ │ +
2968
│ │ │ │ +
2969 template<copyable _Tp, typename _Proj = identity,
│ │ │ │ +
2970 indirect_strict_weak_order<projected<const _Tp*, _Proj>>
│ │ │ │ +
2971 _Comp = ranges::less>
│ │ │ │ +
2972 constexpr _Tp
│ │ │ │ +
2973 operator()(initializer_list<_Tp> __r,
│ │ │ │ +
2974 _Comp __comp = {}, _Proj __proj = {}) const
│ │ │ │ +
2975 {
│ │ │ │ +
2976 return (*this)(ranges::subrange(__r),
│ │ │ │ +
2977 std::move(__comp), std::move(__proj));
│ │ │ │ +
2978 }
│ │ │ │ +
2979 };
│ │ │ │ +
2980
│ │ │ │ +
2981 inline constexpr __max_fn max{};
│ │ │ │ +
2982
│ │ │ │ +
2983 struct __clamp_fn
│ │ │ │ +
2984 {
│ │ │ │ +
2985 template<typename _Tp, typename _Proj = identity,
│ │ │ │ +
2986 indirect_strict_weak_order<projected<const _Tp*, _Proj>> _Comp
│ │ │ │ +
2987 = ranges::less>
│ │ │ │ +
2988 constexpr const _Tp&
│ │ │ │ +
2989 operator()(const _Tp& __val, const _Tp& __lo, const _Tp& __hi,
│ │ │ │ +
2990 _Comp __comp = {}, _Proj __proj = {}) const
│ │ │ │ +
2991 {
│ │ │ │ +
2992 __glibcxx_assert(!(std::__invoke(__comp,
│ │ │ │ +
2993 std::__invoke(__proj, __hi),
│ │ │ │ +
2994 std::__invoke(__proj, __lo))));
│ │ │ │ +
2995 auto&& __proj_val = std::__invoke(__proj, __val);
│ │ │ │ +
2996 if (std::__invoke(__comp,
│ │ │ │ +
2997 std::forward<decltype(__proj_val)>(__proj_val),
│ │ │ │ +
2998 std::__invoke(__proj, __lo)))
│ │ │ │ +
2999 return __lo;
│ │ │ │ +
3000 else if (std::__invoke(__comp,
│ │ │ │ +
3001 std::__invoke(__proj, __hi),
│ │ │ │ +
3002 std::forward<decltype(__proj_val)>(__proj_val)))
│ │ │ │ +
3003 return __hi;
│ │ │ │ +
3004 else
│ │ │ │ +
3005 return __val;
│ │ │ │ +
3006 }
│ │ │ │ +
3007 };
│ │ │ │ +
3008
│ │ │ │ +
3009 inline constexpr __clamp_fn clamp{};
│ │ │ │ +
3010
│ │ │ │ +
3011 template<typename _Tp>
│ │ │ │ +
3012 struct min_max_result
│ │ │ │ +
3013 {
│ │ │ │ +
3014 [[no_unique_address]] _Tp min;
│ │ │ │ +
3015 [[no_unique_address]] _Tp max;
│ │ │ │ +
3016
│ │ │ │ +
3017 template<typename _Tp2>
│ │ │ │ +
3018 requires convertible_to<const _Tp&, _Tp2>
│ │ │ │ +
3019 constexpr
│ │ │ │ +
3020 operator min_max_result<_Tp2>() const &
│ │ │ │ +
3021 { return {min, max}; }
│ │ │ │ +
3022
│ │ │ │ +
3023 template<typename _Tp2>
│ │ │ │ +
3024 requires convertible_to<_Tp, _Tp2>
│ │ │ │ +
3025 constexpr
│ │ │ │ +
3026 operator min_max_result<_Tp2>() &&
│ │ │ │ +
3027 { return {std::move(min), std::move(max)}; }
│ │ │ │ +
3028 };
│ │ │ │ +
3029
│ │ │ │ +
3030 template<typename _Tp>
│ │ │ │ +
3031 using minmax_result = min_max_result<_Tp>;
│ │ │ │ +
3032
│ │ │ │ +
3033 struct __minmax_fn
│ │ │ │ +
3034 {
│ │ │ │ +
3035 template<typename _Tp, typename _Proj = identity,
│ │ │ │ +
3036 indirect_strict_weak_order<projected<const _Tp*, _Proj>>
│ │ │ │ +
3037 _Comp = ranges::less>
│ │ │ │ +
3038 constexpr minmax_result<const _Tp&>
│ │ │ │ +
3039 operator()(const _Tp& __a, const _Tp& __b,
│ │ │ │ +
3040 _Comp __comp = {}, _Proj __proj = {}) const
│ │ │ │ +
3041 {
│ │ │ │ +
3042 if (std::__invoke(__comp,
│ │ │ │ +
3043 std::__invoke(__proj, __b),
│ │ │ │ +
3044 std::__invoke(__proj, __a)))
│ │ │ │ +
3045 return {__b, __a};
│ │ │ │ +
3046 else
│ │ │ │ +
3047 return {__a, __b};
│ │ │ │ +
3048 }
│ │ │ │ +
3049
│ │ │ │ +
3050 template<input_range _Range, typename _Proj = identity,
│ │ │ │ +
3051 indirect_strict_weak_order<projected<iterator_t<_Range>, _Proj>>
│ │ │ │ +
3052 _Comp = ranges::less>
│ │ │ │ +
3053 requires indirectly_copyable_storable<iterator_t<_Range>, range_value_t<_Range>*>
│ │ │ │ +
3054 constexpr minmax_result<range_value_t<_Range>>
│ │ │ │ +
3055 operator()(_Range&& __r, _Comp __comp = {}, _Proj __proj = {}) const
│ │ │ │ +
3056 {
│ │ │ │ +
3057 auto __first = ranges::begin(__r);
│ │ │ │ +
3058 auto __last = ranges::end(__r);
│ │ │ │ +
3059 __glibcxx_assert(__first != __last);
│ │ │ │ +
3060 auto __comp_proj = __detail::__make_comp_proj(__comp, __proj);
│ │ │ │ +
3061 minmax_result<range_value_t<_Range>> __result = {*__first, __result.min};
│ │ │ │ +
3062 if (++__first == __last)
│ │ │ │ +
3063 return __result;
│ │ │ │ +
3064 else
│ │ │ │ +
3065 {
│ │ │ │ +
3066 // At this point __result.min == __result.max, so a single
│ │ │ │ +
3067 // comparison with the next element suffices.
│ │ │ │ +
3068 auto&& __val = *__first;
│ │ │ │ +
3069 if (__comp_proj(__val, __result.min))
│ │ │ │ +
3070 __result.min = std::forward<decltype(__val)>(__val);
│ │ │ │ +
3071 else
│ │ │ │ +
3072 __result.max = std::forward<decltype(__val)>(__val);
│ │ │ │ +
3073 }
│ │ │ │ +
3074 while (++__first != __last)
│ │ │ │ +
3075 {
│ │ │ │ +
3076 // Now process two elements at a time so that we perform at most
│ │ │ │ +
3077 // 1 + 3*(N-2)/2 comparisons in total (each of the (N-2)/2
│ │ │ │ +
3078 // iterations of this loop performs three comparisons).
│ │ │ │ +
3079 range_value_t<_Range> __val1 = *__first;
│ │ │ │ +
3080 if (++__first == __last)
│ │ │ │ +
3081 {
│ │ │ │ +
3082 // N is odd; in this final iteration, we perform at most two
│ │ │ │ +
3083 // comparisons, for a total of 1 + 3*(N-3)/2 + 2 comparisons,
│ │ │ │ +
3084 // which is not more than 3*N/2, as required.
│ │ │ │ +
3085 if (__comp_proj(__val1, __result.min))
│ │ │ │ +
3086 __result.min = std::move(__val1);
│ │ │ │ +
3087 else if (!__comp_proj(__val1, __result.max))
│ │ │ │ +
3088 __result.max = std::move(__val1);
│ │ │ │ +
3089 break;
│ │ │ │ +
3090 }
│ │ │ │ +
3091 auto&& __val2 = *__first;
│ │ │ │ +
3092 if (!__comp_proj(__val2, __val1))
│ │ │ │ +
3093 {
│ │ │ │ +
3094 if (__comp_proj(__val1, __result.min))
│ │ │ │ +
3095 __result.min = std::move(__val1);
│ │ │ │ +
3096 if (!__comp_proj(__val2, __result.max))
│ │ │ │ +
3097 __result.max = std::forward<decltype(__val2)>(__val2);
│ │ │ │ +
3098 }
│ │ │ │ +
3099 else
│ │ │ │ +
3100 {
│ │ │ │ +
3101 if (__comp_proj(__val2, __result.min))
│ │ │ │ +
3102 __result.min = std::forward<decltype(__val2)>(__val2);
│ │ │ │ +
3103 if (!__comp_proj(__val1, __result.max))
│ │ │ │ +
3104 __result.max = std::move(__val1);
│ │ │ │ +
3105 }
│ │ │ │ +
3106 }
│ │ │ │ +
3107 return __result;
│ │ │ │ +
3108 }
│ │ │ │ +
3109
│ │ │ │ +
3110 template<copyable _Tp, typename _Proj = identity,
│ │ │ │ +
3111 indirect_strict_weak_order<projected<const _Tp*, _Proj>>
│ │ │ │ +
3112 _Comp = ranges::less>
│ │ │ │ +
3113 constexpr minmax_result<_Tp>
│ │ │ │ +
3114 operator()(initializer_list<_Tp> __r,
│ │ │ │ +
3115 _Comp __comp = {}, _Proj __proj = {}) const
│ │ │ │ +
3116 {
│ │ │ │ +
3117 return (*this)(ranges::subrange(__r),
│ │ │ │ +
3118 std::move(__comp), std::move(__proj));
│ │ │ │ +
3119 }
│ │ │ │ +
3120 };
│ │ │ │ +
3121
│ │ │ │ +
3122 inline constexpr __minmax_fn minmax{};
│ │ │ │ +
3123
│ │ │ │ +
3124 struct __min_element_fn
│ │ │ │ +
3125 {
│ │ │ │ +
3126 template<forward_iterator _Iter, sentinel_for<_Iter> _Sent,
│ │ │ │ +
3127 typename _Proj = identity,
│ │ │ │ +
3128 indirect_strict_weak_order<projected<_Iter, _Proj>>
│ │ │ │ +
3129 _Comp = ranges::less>
│ │ │ │ +
3130 constexpr _Iter
│ │ │ │ +
3131 operator()(_Iter __first, _Sent __last,
│ │ │ │ +
3132 _Comp __comp = {}, _Proj __proj = {}) const
│ │ │ │ +
3133 {
│ │ │ │ +
3134 if (__first == __last)
│ │ │ │ +
3135 return __first;
│ │ │ │ +
3136
│ │ │ │ +
3137 auto __i = __first;
│ │ │ │ +
3138 while (++__i != __last)
│ │ │ │ +
3139 {
│ │ │ │ +
3140 if (std::__invoke(__comp,
│ │ │ │ +
3141 std::__invoke(__proj, *__i),
│ │ │ │ +
3142 std::__invoke(__proj, *__first)))
│ │ │ │ +
3143 __first = __i;
│ │ │ │ +
3144 }
│ │ │ │ +
3145 return __first;
│ │ │ │ +
3146 }
│ │ │ │ +
3147
│ │ │ │ +
3148 template<forward_range _Range, typename _Proj = identity,
│ │ │ │ +
3149 indirect_strict_weak_order<projected<iterator_t<_Range>, _Proj>>
│ │ │ │ +
3150 _Comp = ranges::less>
│ │ │ │ +
3151 constexpr borrowed_iterator_t<_Range>
│ │ │ │ +
3152 operator()(_Range&& __r, _Comp __comp = {}, _Proj __proj = {}) const
│ │ │ │ +
3153 {
│ │ │ │ +
3154 return (*this)(ranges::begin(__r), ranges::end(__r),
│ │ │ │ +
3155 std::move(__comp), std::move(__proj));
│ │ │ │ +
3156 }
│ │ │ │ +
3157 };
│ │ │ │ +
3158
│ │ │ │ +
3159 inline constexpr __min_element_fn min_element{};
│ │ │ │ +
3160
│ │ │ │ +
3161 struct __max_element_fn
│ │ │ │ +
3162 {
│ │ │ │ +
3163 template<forward_iterator _Iter, sentinel_for<_Iter> _Sent,
│ │ │ │ +
3164 typename _Proj = identity,
│ │ │ │ +
3165 indirect_strict_weak_order<projected<_Iter, _Proj>>
│ │ │ │ +
3166 _Comp = ranges::less>
│ │ │ │ +
3167 constexpr _Iter
│ │ │ │ +
3168 operator()(_Iter __first, _Sent __last,
│ │ │ │ +
3169 _Comp __comp = {}, _Proj __proj = {}) const
│ │ │ │ +
3170 {
│ │ │ │ +
3171 if (__first == __last)
│ │ │ │ +
3172 return __first;
│ │ │ │ +
3173
│ │ │ │ +
3174 auto __i = __first;
│ │ │ │ +
3175 while (++__i != __last)
│ │ │ │ +
3176 {
│ │ │ │ +
3177 if (std::__invoke(__comp,
│ │ │ │ +
3178 std::__invoke(__proj, *__first),
│ │ │ │ +
3179 std::__invoke(__proj, *__i)))
│ │ │ │ +
3180 __first = __i;
│ │ │ │ +
3181 }
│ │ │ │ +
3182 return __first;
│ │ │ │ +
3183 }
│ │ │ │ +
3184
│ │ │ │ +
3185 template<forward_range _Range, typename _Proj = identity,
│ │ │ │ +
3186 indirect_strict_weak_order<projected<iterator_t<_Range>, _Proj>>
│ │ │ │ +
3187 _Comp = ranges::less>
│ │ │ │ +
3188 constexpr borrowed_iterator_t<_Range>
│ │ │ │ +
3189 operator()(_Range&& __r, _Comp __comp = {}, _Proj __proj = {}) const
│ │ │ │ +
3190 {
│ │ │ │ +
3191 return (*this)(ranges::begin(__r), ranges::end(__r),
│ │ │ │ +
3192 std::move(__comp), std::move(__proj));
│ │ │ │ +
3193 }
│ │ │ │ +
3194 };
│ │ │ │ +
3195
│ │ │ │ +
3196 inline constexpr __max_element_fn max_element{};
│ │ │ │ +
3197
│ │ │ │ +
3198 template<typename _Iter>
│ │ │ │ +
3199 using minmax_element_result = min_max_result<_Iter>;
│ │ │ │ +
3200
│ │ │ │ +
3201 struct __minmax_element_fn
│ │ │ │ +
3202 {
│ │ │ │ +
3203 template<forward_iterator _Iter, sentinel_for<_Iter> _Sent,
│ │ │ │ +
3204 typename _Proj = identity,
│ │ │ │ +
3205 indirect_strict_weak_order<projected<_Iter, _Proj>>
│ │ │ │ +
3206 _Comp = ranges::less>
│ │ │ │ +
3207 constexpr minmax_element_result<_Iter>
│ │ │ │ +
3208 operator()(_Iter __first, _Sent __last,
│ │ │ │ +
3209 _Comp __comp = {}, _Proj __proj = {}) const
│ │ │ │ +
3210 {
│ │ │ │ +
3211 auto __comp_proj = __detail::__make_comp_proj(__comp, __proj);
│ │ │ │ +
3212 minmax_element_result<_Iter> __result = {__first, __first};
│ │ │ │ +
3213 if (__first == __last || ++__first == __last)
│ │ │ │ +
3214 return __result;
│ │ │ │ +
3215 else
│ │ │ │ +
3216 {
│ │ │ │ +
3217 // At this point __result.min == __result.max, so a single
│ │ │ │ +
3218 // comparison with the next element suffices.
│ │ │ │ +
3219 if (__comp_proj(*__first, *__result.min))
│ │ │ │ +
3220 __result.min = __first;
│ │ │ │ +
3221 else
│ │ │ │ +
3222 __result.max = __first;
│ │ │ │ +
3223 }
│ │ │ │ +
3224 while (++__first != __last)
│ │ │ │ +
3225 {
│ │ │ │ +
3226 // Now process two elements at a time so that we perform at most
│ │ │ │ +
3227 // 1 + 3*(N-2)/2 comparisons in total (each of the (N-2)/2
│ │ │ │ +
3228 // iterations of this loop performs three comparisons).
│ │ │ │ +
3229 auto __prev = __first;
│ │ │ │ +
3230 if (++__first == __last)
│ │ │ │ +
3231 {
│ │ │ │ +
3232 // N is odd; in this final iteration, we perform at most two
│ │ │ │ +
3233 // comparisons, for a total of 1 + 3*(N-3)/2 + 2 comparisons,
│ │ │ │ +
3234 // which is not more than 3*N/2, as required.
│ │ │ │ +
3235 if (__comp_proj(*__prev, *__result.min))
│ │ │ │ +
3236 __result.min = __prev;
│ │ │ │ +
3237 else if (!__comp_proj(*__prev, *__result.max))
│ │ │ │ +
3238 __result.max = __prev;
│ │ │ │ +
3239 break;
│ │ │ │ +
3240 }
│ │ │ │ +
3241 if (!__comp_proj(*__first, *__prev))
│ │ │ │ +
3242 {
│ │ │ │ +
3243 if (__comp_proj(*__prev, *__result.min))
│ │ │ │ +
3244 __result.min = __prev;
│ │ │ │ +
3245 if (!__comp_proj(*__first, *__result.max))
│ │ │ │ +
3246 __result.max = __first;
│ │ │ │ +
3247 }
│ │ │ │ +
3248 else
│ │ │ │ +
3249 {
│ │ │ │ +
3250 if (__comp_proj(*__first, *__result.min))
│ │ │ │ +
3251 __result.min = __first;
│ │ │ │ +
3252 if (!__comp_proj(*__prev, *__result.max))
│ │ │ │ +
3253 __result.max = __prev;
│ │ │ │ +
3254 }
│ │ │ │ +
3255 }
│ │ │ │ +
3256 return __result;
│ │ │ │ +
3257 }
│ │ │ │ +
3258
│ │ │ │ +
3259 template<forward_range _Range, typename _Proj = identity,
│ │ │ │ +
3260 indirect_strict_weak_order<projected<iterator_t<_Range>, _Proj>>
│ │ │ │ +
3261 _Comp = ranges::less>
│ │ │ │ +
3262 constexpr minmax_element_result<borrowed_iterator_t<_Range>>
│ │ │ │ +
3263 operator()(_Range&& __r, _Comp __comp = {}, _Proj __proj = {}) const
│ │ │ │ +
3264 {
│ │ │ │ +
3265 return (*this)(ranges::begin(__r), ranges::end(__r),
│ │ │ │ +
3266 std::move(__comp), std::move(__proj));
│ │ │ │ +
3267 }
│ │ │ │ +
3268 };
│ │ │ │ +
3269
│ │ │ │ +
3270 inline constexpr __minmax_element_fn minmax_element{};
│ │ │ │ +
3271
│ │ │ │ +
3272 struct __lexicographical_compare_fn
│ │ │ │ +
3273 {
│ │ │ │ +
3274 template<input_iterator _Iter1, sentinel_for<_Iter1> _Sent1,
│ │ │ │ +
3275 input_iterator _Iter2, sentinel_for<_Iter2> _Sent2,
│ │ │ │ +
3276 typename _Proj1 = identity, typename _Proj2 = identity,
│ │ │ │ +
3277 indirect_strict_weak_order<projected<_Iter1, _Proj1>,
│ │ │ │ +
3278 projected<_Iter2, _Proj2>>
│ │ │ │ +
3279 _Comp = ranges::less>
│ │ │ │ +
3280 constexpr bool
│ │ │ │ +
3281 operator()(_Iter1 __first1, _Sent1 __last1,
│ │ │ │ +
3282 _Iter2 __first2, _Sent2 __last2,
│ │ │ │ +
3283 _Comp __comp = {},
│ │ │ │ +
3284 _Proj1 __proj1 = {}, _Proj2 __proj2 = {}) const
│ │ │ │ +
3285 {
│ │ │ │ +
3286 if constexpr (__detail::__is_normal_iterator<_Iter1>
│ │ │ │ +
3287 && same_as<_Iter1, _Sent1>)
│ │ │ │ +
3288 return (*this)(__first1.base(), __last1.base(),
│ │ │ │ +
3289 std::move(__first2), std::move(__last2),
│ │ │ │ +
3290 std::move(__comp),
│ │ │ │ +
3291 std::move(__proj1), std::move(__proj2));
│ │ │ │ +
3292 else if constexpr (__detail::__is_normal_iterator<_Iter2>
│ │ │ │ +
3293 && same_as<_Iter2, _Sent2>)
│ │ │ │ +
3294 return (*this)(std::move(__first1), std::move(__last1),
│ │ │ │ +
3295 __first2.base(), __last2.base(),
│ │ │ │ +
3296 std::move(__comp),
│ │ │ │ +
3297 std::move(__proj1), std::move(__proj2));
│ │ │ │ +
3298 else
│ │ │ │ +
3299 {
│ │ │ │ +
3300 constexpr bool __sized_iters
│ │ │ │ +
3301 = (sized_sentinel_for<_Sent1, _Iter1>
│ │ │ │ +
3302 && sized_sentinel_for<_Sent2, _Iter2>);
│ │ │ │ +
3303 if constexpr (__sized_iters)
│ │ │ │ +
3304 {
│ │ │ │ +
3305 using _ValueType1 = iter_value_t<_Iter1>;
│ │ │ │ +
3306 using _ValueType2 = iter_value_t<_Iter2>;
│ │ │ │ +
3307 // This condition is consistent with the one in
│ │ │ │ +
3308 // __lexicographical_compare_aux in <bits/stl_algobase.h>.
│ │ │ │ +
3309 constexpr bool __use_memcmp
│ │ │ │ +
3310 = (__is_memcmp_ordered_with<_ValueType1, _ValueType2>::__value
│ │ │ │ +
3311 && __ptr_to_nonvolatile<_Iter1>
│ │ │ │ +
3312 && __ptr_to_nonvolatile<_Iter2>
│ │ │ │ +
3313 && (is_same_v<_Comp, ranges::less>
│ │ │ │ +
3314 || is_same_v<_Comp, ranges::greater>)
│ │ │ │ +
3315 && is_same_v<_Proj1, identity>
│ │ │ │ +
3316 && is_same_v<_Proj2, identity>);
│ │ │ │ +
3317 if constexpr (__use_memcmp)
│ │ │ │ +
3318 {
│ │ │ │ +
3319 const auto __d1 = __last1 - __first1;
│ │ │ │ +
3320 const auto __d2 = __last2 - __first2;
│ │ │ │ +
3321
│ │ │ │ +
3322 if (const auto __len = std::min(__d1, __d2))
│ │ │ │ +
3323 {
│ │ │ │ +
3324 const auto __c
│ │ │ │ +
3325 = std::__memcmp(__first1, __first2, __len);
│ │ │ │ +
3326 if constexpr (is_same_v<_Comp, ranges::less>)
│ │ │ │ +
3327 {
│ │ │ │ +
3328 if (__c < 0)
│ │ │ │ +
3329 return true;
│ │ │ │ +
3330 if (__c > 0)
│ │ │ │ +
3331 return false;
│ │ │ │ +
3332 }
│ │ │ │ +
3333 else if constexpr (is_same_v<_Comp, ranges::greater>)
│ │ │ │ +
3334 {
│ │ │ │ +
3335 if (__c > 0)
│ │ │ │ +
3336 return true;
│ │ │ │ +
3337 if (__c < 0)
│ │ │ │ +
3338 return false;
│ │ │ │ +
3339 }
│ │ │ │ +
3340 }
│ │ │ │ +
3341 return __d1 < __d2;
│ │ │ │ +
3342 }
│ │ │ │ +
3343 }
│ │ │ │ +
3344
│ │ │ │ +
3345 for (; __first1 != __last1 && __first2 != __last2;
│ │ │ │ +
3346 ++__first1, (void) ++__first2)
│ │ │ │ +
3347 {
│ │ │ │ +
3348 if (std::__invoke(__comp,
│ │ │ │ +
3349 std::__invoke(__proj1, *__first1),
│ │ │ │ +
3350 std::__invoke(__proj2, *__first2)))
│ │ │ │ +
3351 return true;
│ │ │ │ +
3352 if (std::__invoke(__comp,
│ │ │ │ +
3353 std::__invoke(__proj2, *__first2),
│ │ │ │ +
3354 std::__invoke(__proj1, *__first1)))
│ │ │ │ +
3355 return false;
│ │ │ │ +
3356 }
│ │ │ │ +
3357 return __first1 == __last1 && __first2 != __last2;
│ │ │ │ +
3358 }
│ │ │ │ +
3359 }
│ │ │ │ +
3360
│ │ │ │ +
3361 template<input_range _Range1, input_range _Range2,
│ │ │ │ +
3362 typename _Proj1 = identity, typename _Proj2 = identity,
│ │ │ │ +
3363 indirect_strict_weak_order<projected<iterator_t<_Range1>, _Proj1>,
│ │ │ │ +
3364 projected<iterator_t<_Range2>, _Proj2>>
│ │ │ │ +
3365 _Comp = ranges::less>
│ │ │ │ +
3366 constexpr bool
│ │ │ │ +
3367 operator()(_Range1&& __r1, _Range2&& __r2, _Comp __comp = {},
│ │ │ │ +
3368 _Proj1 __proj1 = {}, _Proj2 __proj2 = {}) const
│ │ │ │ +
3369 {
│ │ │ │ +
3370 return (*this)(ranges::begin(__r1), ranges::end(__r1),
│ │ │ │ +
3371 ranges::begin(__r2), ranges::end(__r2),
│ │ │ │ +
3372 std::move(__comp),
│ │ │ │ +
3373 std::move(__proj1), std::move(__proj2));
│ │ │ │ +
3374 }
│ │ │ │ +
3375
│ │ │ │ +
3376 private:
│ │ │ │ +
3377 template<typename _Iter, typename _Ref = iter_reference_t<_Iter>>
│ │ │ │ +
3378 static constexpr bool __ptr_to_nonvolatile
│ │ │ │ +
3379 = is_pointer_v<_Iter> && !is_volatile_v<remove_reference_t<_Ref>>;
│ │ │ │ +
3380 };
│ │ │ │ +
3381
│ │ │ │ +
3382 inline constexpr __lexicographical_compare_fn lexicographical_compare;
│ │ │ │ +
3383
│ │ │ │ +
3384 template<typename _Iter>
│ │ │ │ +
3385 struct in_found_result
│ │ │ │ +
3386 {
│ │ │ │ +
3387 [[no_unique_address]] _Iter in;
│ │ │ │ +
3388 bool found;
│ │ │ │ +
3389
│ │ │ │ +
3390 template<typename _Iter2>
│ │ │ │ +
3391 requires convertible_to<const _Iter&, _Iter2>
│ │ │ │ +
3392 constexpr
│ │ │ │ +
3393 operator in_found_result<_Iter2>() const &
│ │ │ │ +
3394 { return {in, found}; }
│ │ │ │ +
3395
│ │ │ │ +
3396 template<typename _Iter2>
│ │ │ │ +
3397 requires convertible_to<_Iter, _Iter2>
│ │ │ │ +
3398 constexpr
│ │ │ │ +
3399 operator in_found_result<_Iter2>() &&
│ │ │ │ +
3400 { return {std::move(in), found}; }
│ │ │ │ +
3401 };
│ │ │ │ +
3402
│ │ │ │ +
3403 template<typename _Iter>
│ │ │ │ +
3404 using next_permutation_result = in_found_result<_Iter>;
│ │ │ │ +
3405
│ │ │ │ +
3406 struct __next_permutation_fn
│ │ │ │ +
3407 {
│ │ │ │ +
3408 template<bidirectional_iterator _Iter, sentinel_for<_Iter> _Sent,
│ │ │ │ +
3409 typename _Comp = ranges::less, typename _Proj = identity>
│ │ │ │ +
3410 requires sortable<_Iter, _Comp, _Proj>
│ │ │ │ +
3411 constexpr next_permutation_result<_Iter>
│ │ │ │ +
3412 operator()(_Iter __first, _Sent __last,
│ │ │ │ +
3413 _Comp __comp = {}, _Proj __proj = {}) const
│ │ │ │ +
3414 {
│ │ │ │ +
3415 if (__first == __last)
│ │ │ │ +
3416 return {std::move(__first), false};
│ │ │ │ +
3417
│ │ │ │ +
3418 auto __i = __first;
│ │ │ │ +
3419 ++__i;
│ │ │ │ +
3420 if (__i == __last)
│ │ │ │ +
3421 return {std::move(__i), false};
│ │ │ │ +
3422
│ │ │ │ +
3423 auto __lasti = ranges::next(__first, __last);
│ │ │ │ +
3424 __i = __lasti;
│ │ │ │ +
3425 --__i;
│ │ │ │ +
3426
│ │ │ │ +
3427 for (;;)
│ │ │ │ +
3428 {
│ │ │ │ +
3429 auto __ii = __i;
│ │ │ │ +
3430 --__i;
│ │ │ │ +
3431 if (std::__invoke(__comp,
│ │ │ │ +
3432 std::__invoke(__proj, *__i),
│ │ │ │ +
3433 std::__invoke(__proj, *__ii)))
│ │ │ │ +
3434 {
│ │ │ │ +
3435 auto __j = __lasti;
│ │ │ │ +
3436 while (!(bool)std::__invoke(__comp,
│ │ │ │ +
3437 std::__invoke(__proj, *__i),
│ │ │ │ +
3438 std::__invoke(__proj, *--__j)))
│ │ │ │ +
3439 ;
│ │ │ │ +
3440 ranges::iter_swap(__i, __j);
│ │ │ │ +
3441 ranges::reverse(__ii, __last);
│ │ │ │ +
3442 return {std::move(__lasti), true};
│ │ │ │ +
3443 }
│ │ │ │ +
3444 if (__i == __first)
│ │ │ │ +
3445 {
│ │ │ │ +
3446 ranges::reverse(__first, __last);
│ │ │ │ +
3447 return {std::move(__lasti), false};
│ │ │ │ +
3448 }
│ │ │ │ +
3449 }
│ │ │ │ +
3450 }
│ │ │ │ +
3451
│ │ │ │ +
3452 template<bidirectional_range _Range, typename _Comp = ranges::less,
│ │ │ │ +
3453 typename _Proj = identity>
│ │ │ │ +
3454 requires sortable<iterator_t<_Range>, _Comp, _Proj>
│ │ │ │ +
3455 constexpr next_permutation_result<borrowed_iterator_t<_Range>>
│ │ │ │ +
3456 operator()(_Range&& __r, _Comp __comp = {}, _Proj __proj = {}) const
│ │ │ │ +
3457 {
│ │ │ │ +
3458 return (*this)(ranges::begin(__r), ranges::end(__r),
│ │ │ │ +
3459 std::move(__comp), std::move(__proj));
│ │ │ │ +
3460 }
│ │ │ │ +
3461 };
│ │ │ │ +
3462
│ │ │ │ +
3463 inline constexpr __next_permutation_fn next_permutation{};
│ │ │ │ +
3464
│ │ │ │ +
3465 template<typename _Iter>
│ │ │ │ +
3466 using prev_permutation_result = in_found_result<_Iter>;
│ │ │ │ +
3467
│ │ │ │ +
3468 struct __prev_permutation_fn
│ │ │ │ +
3469 {
│ │ │ │ +
3470 template<bidirectional_iterator _Iter, sentinel_for<_Iter> _Sent,
│ │ │ │ +
3471 typename _Comp = ranges::less, typename _Proj = identity>
│ │ │ │ +
3472 requires sortable<_Iter, _Comp, _Proj>
│ │ │ │ +
3473 constexpr prev_permutation_result<_Iter>
│ │ │ │ +
3474 operator()(_Iter __first, _Sent __last,
│ │ │ │ +
3475 _Comp __comp = {}, _Proj __proj = {}) const
│ │ │ │ +
3476 {
│ │ │ │ +
3477 if (__first == __last)
│ │ │ │ +
3478 return {std::move(__first), false};
│ │ │ │ +
3479
│ │ │ │ +
3480 auto __i = __first;
│ │ │ │ +
3481 ++__i;
│ │ │ │ +
3482 if (__i == __last)
│ │ │ │ +
3483 return {std::move(__i), false};
│ │ │ │ +
3484
│ │ │ │ +
3485 auto __lasti = ranges::next(__first, __last);
│ │ │ │ +
3486 __i = __lasti;
│ │ │ │ +
3487 --__i;
│ │ │ │ +
3488
│ │ │ │ +
3489 for (;;)
│ │ │ │ +
3490 {
│ │ │ │ +
3491 auto __ii = __i;
│ │ │ │ +
3492 --__i;
│ │ │ │ +
3493 if (std::__invoke(__comp,
│ │ │ │ +
3494 std::__invoke(__proj, *__ii),
│ │ │ │ +
3495 std::__invoke(__proj, *__i)))
│ │ │ │ +
3496 {
│ │ │ │ +
3497 auto __j = __lasti;
│ │ │ │ +
3498 while (!(bool)std::__invoke(__comp,
│ │ │ │ +
3499 std::__invoke(__proj, *--__j),
│ │ │ │ +
3500 std::__invoke(__proj, *__i)))
│ │ │ │ +
3501 ;
│ │ │ │ +
3502 ranges::iter_swap(__i, __j);
│ │ │ │ +
3503 ranges::reverse(__ii, __last);
│ │ │ │ +
3504 return {std::move(__lasti), true};
│ │ │ │ +
3505 }
│ │ │ │ +
3506 if (__i == __first)
│ │ │ │ +
3507 {
│ │ │ │ +
3508 ranges::reverse(__first, __last);
│ │ │ │ +
3509 return {std::move(__lasti), false};
│ │ │ │ +
3510 }
│ │ │ │ +
3511 }
│ │ │ │ +
3512 }
│ │ │ │ +
3513
│ │ │ │ +
3514 template<bidirectional_range _Range, typename _Comp = ranges::less,
│ │ │ │ +
3515 typename _Proj = identity>
│ │ │ │ +
3516 requires sortable<iterator_t<_Range>, _Comp, _Proj>
│ │ │ │ +
3517 constexpr prev_permutation_result<borrowed_iterator_t<_Range>>
│ │ │ │ +
3518 operator()(_Range&& __r, _Comp __comp = {}, _Proj __proj = {}) const
│ │ │ │ +
3519 {
│ │ │ │ +
3520 return (*this)(ranges::begin(__r), ranges::end(__r),
│ │ │ │ +
3521 std::move(__comp), std::move(__proj));
│ │ │ │ +
3522 }
│ │ │ │ +
3523 };
│ │ │ │ +
3524
│ │ │ │ +
3525 inline constexpr __prev_permutation_fn prev_permutation{};
│ │ │ │ +
3526
│ │ │ │ +
3527#if __glibcxx_ranges_contains >= 202207L // C++ >= 23
│ │ │ │ +
3528 struct __contains_fn
│ │ │ │ +
3529 {
│ │ │ │ +
3530 template<input_iterator _Iter, sentinel_for<_Iter> _Sent,
│ │ │ │ +
3531 typename _Proj = identity,
│ │ │ │ +
3532 typename _Tp _GLIBCXX26_RANGE_ALGO_DEF_VAL_T(_Iter, _Proj)>
│ │ │ │ +
3533 requires indirect_binary_predicate<ranges::equal_to,
│ │ │ │ +
3534 projected<_Iter, _Proj>, const _Tp*>
│ │ │ │ +
3535 constexpr bool
│ │ │ │ +
3536 operator()(_Iter __first, _Sent __last, const _Tp& __value, _Proj __proj = {}) const
│ │ │ │ +
3537 { return ranges::find(std::move(__first), __last, __value, std::move(__proj)) != __last; }
│ │ │ │ +
3538
│ │ │ │ +
3539 template<input_range _Range,
│ │ │ │ +
3540 typename _Proj = identity,
│ │ │ │ +
3541 typename _Tp
│ │ │ │ +
3542 _GLIBCXX26_RANGE_ALGO_DEF_VAL_T(iterator_t<_Range>, _Proj)>
│ │ │ │ +
3543 requires indirect_binary_predicate<ranges::equal_to,
│ │ │ │ +
3544 projected<iterator_t<_Range>, _Proj>, const _Tp*>
│ │ │ │ +
3545 constexpr bool
│ │ │ │ +
3546 operator()(_Range&& __r, const _Tp& __value, _Proj __proj = {}) const
│ │ │ │ +
3547 { return (*this)(ranges::begin(__r), ranges::end(__r), __value, std::move(__proj)); }
│ │ │ │ +
3548 };
│ │ │ │ +
3549
│ │ │ │ +
3550 inline constexpr __contains_fn contains{};
│ │ │ │ +
3551
│ │ │ │ +
3552 struct __contains_subrange_fn
│ │ │ │ +
3553 {
│ │ │ │ +
3554 template<forward_iterator _Iter1, sentinel_for<_Iter1> _Sent1,
│ │ │ │ +
3555 forward_iterator _Iter2, sentinel_for<_Iter2> _Sent2,
│ │ │ │ +
3556 typename _Pred = ranges::equal_to,
│ │ │ │ +
3557 typename _Proj1 = identity, typename _Proj2 = identity>
│ │ │ │ +
3558 requires indirectly_comparable<_Iter1, _Iter2, _Pred, _Proj1, _Proj2>
│ │ │ │ +
3559 constexpr bool
│ │ │ │ +
3560 operator()(_Iter1 __first1, _Sent1 __last1, _Iter2 __first2, _Sent2 __last2,
│ │ │ │ +
3561 _Pred __pred = {}, _Proj1 __proj1 = {}, _Proj2 __proj2 = {}) const
│ │ │ │ +
3562 {
│ │ │ │ +
3563 return __first2 == __last2
│ │ │ │ +
3564 || !ranges::search(__first1, __last1, __first2, __last2,
│ │ │ │ +
3565 std::move(__pred), std::move(__proj1), std::move(__proj2)).empty();
│ │ │ │ +
3566 }
│ │ │ │ +
3567
│ │ │ │ +
3568 template<forward_range _Range1, forward_range _Range2,
│ │ │ │ +
3569 typename _Pred = ranges::equal_to,
│ │ │ │ +
3570 typename _Proj1 = identity, typename _Proj2 = identity>
│ │ │ │ +
3571 requires indirectly_comparable<iterator_t<_Range1>, iterator_t<_Range2>,
│ │ │ │ +
3572 _Pred, _Proj1, _Proj2>
│ │ │ │ +
3573 constexpr bool
│ │ │ │ +
3574 operator()(_Range1&& __r1, _Range2&& __r2, _Pred __pred = {},
│ │ │ │ +
3575 _Proj1 __proj1 = {}, _Proj2 __proj2 = {}) const
│ │ │ │ +
3576 {
│ │ │ │ +
3577 return (*this)(ranges::begin(__r1), ranges::end(__r1),
│ │ │ │ +
3578 ranges::begin(__r2), ranges::end(__r2),
│ │ │ │ +
3579 std::move(__pred), std::move(__proj1), std::move(__proj2));
│ │ │ │ +
3580 }
│ │ │ │ +
3581 };
│ │ │ │ +
3582
│ │ │ │ +
3583 inline constexpr __contains_subrange_fn contains_subrange{};
│ │ │ │ +
3584
│ │ │ │ +
3585#endif // __glibcxx_ranges_contains
│ │ │ │ +
3586
│ │ │ │ +
3587#if __glibcxx_ranges_find_last >= 202207L // C++ >= 23
│ │ │ │ +
3588
│ │ │ │ +
3589 struct __find_last_fn
│ │ │ │ +
3590 {
│ │ │ │ +
3591 template<forward_iterator _Iter, sentinel_for<_Iter> _Sent,
│ │ │ │ +
3592 typename _Proj = identity,
│ │ │ │ +
3593 typename _Tp _GLIBCXX26_RANGE_ALGO_DEF_VAL_T(_Iter, _Proj)>
│ │ │ │ +
3594 requires indirect_binary_predicate<ranges::equal_to, projected<_Iter, _Proj>, const _Tp*>
│ │ │ │ +
3595 constexpr subrange<_Iter>
│ │ │ │ +
3596 operator()(_Iter __first, _Sent __last, const _Tp& __value, _Proj __proj = {}) const
│ │ │ │ +
3597 {
│ │ │ │ +
3598 if constexpr (same_as<_Iter, _Sent> && bidirectional_iterator<_Iter>)
│ │ │ │ +
3599 {
│ │ │ │ +
3600 _Iter __found = ranges::find(reverse_iterator<_Iter>{__last},
│ │ │ │ +
3601 reverse_iterator<_Iter>{__first},
│ │ │ │ +
3602 __value, std::move(__proj)).base();
│ │ │ │ +
3603 if (__found == __first)
│ │ │ │ +
3604 return {__last, __last};
│ │ │ │ +
3605 else
│ │ │ │ +
3606 return {ranges::prev(__found), __last};
│ │ │ │ +
3607 }
│ │ │ │ +
3608 else
│ │ │ │ +
3609 {
│ │ │ │ +
3610 _Iter __found = ranges::find(__first, __last, __value, __proj);
│ │ │ │ +
3611 if (__found == __last)
│ │ │ │ +
3612 return {__found, __found};
│ │ │ │ +
3613 __first = __found;
│ │ │ │ +
3614 for (;;)
│ │ │ │ +
3615 {
│ │ │ │ +
3616 __first = ranges::find(ranges::next(__first), __last, __value, __proj);
│ │ │ │ +
3617 if (__first == __last)
│ │ │ │ +
3618 return {__found, __first};
│ │ │ │ +
3619 __found = __first;
│ │ │ │ +
3620 }
│ │ │ │ +
3621 }
│ │ │ │ +
3622 }
│ │ │ │ +
3623
│ │ │ │ +
3624 template<forward_range _Range, typename _Proj = identity,
│ │ │ │ +
3625 typename _Tp
│ │ │ │ +
3626 _GLIBCXX26_RANGE_ALGO_DEF_VAL_T(iterator_t<_Range>, _Proj)>
│ │ │ │ +
3627 requires indirect_binary_predicate<ranges::equal_to, projected<iterator_t<_Range>, _Proj>, const _Tp*>
│ │ │ │ +
3628 constexpr borrowed_subrange_t<_Range>
│ │ │ │ +
3629 operator()(_Range&& __r, const _Tp& __value, _Proj __proj = {}) const
│ │ │ │ +
3630 { return (*this)(ranges::begin(__r), ranges::end(__r), __value, std::move(__proj)); }
│ │ │ │ +
3631 };
│ │ │ │ +
3632
│ │ │ │ +
3633 inline constexpr __find_last_fn find_last{};
│ │ │ │ +
3634
│ │ │ │ +
3635 struct __find_last_if_fn
│ │ │ │ +
3636 {
│ │ │ │ +
3637 template<forward_iterator _Iter, sentinel_for<_Iter> _Sent, typename _Proj = identity,
│ │ │ │ +
3638 indirect_unary_predicate<projected<_Iter, _Proj>> _Pred>
│ │ │ │ +
3639 constexpr subrange<_Iter>
│ │ │ │ +
3640 operator()(_Iter __first, _Sent __last, _Pred __pred, _Proj __proj = {}) const
│ │ │ │ +
3641 {
│ │ │ │ +
3642 if constexpr (same_as<_Iter, _Sent> && bidirectional_iterator<_Iter>)
│ │ │ │ +
3643 {
│ │ │ │ +
3644 _Iter __found = ranges::find_if(reverse_iterator<_Iter>{__last},
│ │ │ │ +
3645 reverse_iterator<_Iter>{__first},
│ │ │ │ +
3646 std::move(__pred), std::move(__proj)).base();
│ │ │ │ +
3647 if (__found == __first)
│ │ │ │ +
3648 return {__last, __last};
│ │ │ │ +
3649 else
│ │ │ │ +
3650 return {ranges::prev(__found), __last};
│ │ │ │ +
3651 }
│ │ │ │ +
3652 else
│ │ │ │ +
3653 {
│ │ │ │ +
3654 _Iter __found = ranges::find_if(__first, __last, __pred, __proj);
│ │ │ │ +
3655 if (__found == __last)
│ │ │ │ +
3656 return {__found, __found};
│ │ │ │ +
3657 __first = __found;
│ │ │ │ +
3658 for (;;)
│ │ │ │ +
3659 {
│ │ │ │ +
3660 __first = ranges::find_if(ranges::next(__first), __last, __pred, __proj);
│ │ │ │ +
3661 if (__first == __last)
│ │ │ │ +
3662 return {__found, __first};
│ │ │ │ +
3663 __found = __first;
│ │ │ │ +
3664 }
│ │ │ │ +
3665 }
│ │ │ │ +
3666 }
│ │ │ │ +
3667
│ │ │ │ +
3668 template<forward_range _Range, typename _Proj = identity,
│ │ │ │ +
3669 indirect_unary_predicate<projected<iterator_t<_Range>, _Proj>> _Pred>
│ │ │ │ +
3670 constexpr borrowed_subrange_t<_Range>
│ │ │ │ +
3671 operator()(_Range&& __r, _Pred __pred, _Proj __proj = {}) const
│ │ │ │ +
3672 { return (*this)(ranges::begin(__r), ranges::end(__r), std::move(__pred), std::move(__proj)); }
│ │ │ │ +
3673 };
│ │ │ │ +
3674
│ │ │ │ +
3675 inline constexpr __find_last_if_fn find_last_if{};
│ │ │ │ +
3676
│ │ │ │ +
3677 struct __find_last_if_not_fn
│ │ │ │ +
3678 {
│ │ │ │ +
3679 template<forward_iterator _Iter, sentinel_for<_Iter> _Sent, typename _Proj = identity,
│ │ │ │ +
3680 indirect_unary_predicate<projected<_Iter, _Proj>> _Pred>
│ │ │ │ +
3681 constexpr subrange<_Iter>
│ │ │ │ +
3682 operator()(_Iter __first, _Sent __last, _Pred __pred, _Proj __proj = {}) const
│ │ │ │ +
3683 {
│ │ │ │ +
3684 if constexpr (same_as<_Iter, _Sent> && bidirectional_iterator<_Iter>)
│ │ │ │ +
3685 {
│ │ │ │ +
3686 _Iter __found = ranges::find_if_not(reverse_iterator<_Iter>{__last},
│ │ │ │ +
3687 reverse_iterator<_Iter>{__first},
│ │ │ │ +
3688 std::move(__pred), std::move(__proj)).base();
│ │ │ │ +
3689 if (__found == __first)
│ │ │ │ +
3690 return {__last, __last};
│ │ │ │ +
3691 else
│ │ │ │ +
3692 return {ranges::prev(__found), __last};
│ │ │ │ +
3693 }
│ │ │ │ +
3694 else
│ │ │ │ +
3695 {
│ │ │ │ +
3696 _Iter __found = ranges::find_if_not(__first, __last, __pred, __proj);
│ │ │ │ +
3697 if (__found == __last)
│ │ │ │ +
3698 return {__found, __found};
│ │ │ │ +
3699 __first = __found;
│ │ │ │ +
3700 for (;;)
│ │ │ │ +
3701 {
│ │ │ │ +
3702 __first = ranges::find_if_not(ranges::next(__first), __last, __pred, __proj);
│ │ │ │ +
3703 if (__first == __last)
│ │ │ │ +
3704 return {__found, __first};
│ │ │ │ +
3705 __found = __first;
│ │ │ │ +
3706 }
│ │ │ │ +
3707 }
│ │ │ │ +
3708 }
│ │ │ │ +
3709
│ │ │ │ +
3710 template<forward_range _Range, typename _Proj = identity,
│ │ │ │ +
3711 indirect_unary_predicate<projected<iterator_t<_Range>, _Proj>> _Pred>
│ │ │ │ +
3712 constexpr borrowed_subrange_t<_Range>
│ │ │ │ +
3713 operator()(_Range&& __r, _Pred __pred, _Proj __proj = {}) const
│ │ │ │ +
3714 { return (*this)(ranges::begin(__r), ranges::end(__r), std::move(__pred), std::move(__proj)); }
│ │ │ │ +
3715 };
│ │ │ │ +
3716
│ │ │ │ +
3717 inline constexpr __find_last_if_not_fn find_last_if_not{};
│ │ │ │ +
3718
│ │ │ │ +
3719#endif // __glibcxx_ranges_find_last
│ │ │ │ +
3720
│ │ │ │ +
3721#if __glibcxx_ranges_fold >= 202207L // C++ >= 23
│ │ │ │ +
3722
│ │ │ │ +
3723 template<typename _Iter, typename _Tp>
│ │ │ │ +
3724 struct in_value_result
│ │ │ │ +
3725 {
│ │ │ │ +
3726 [[no_unique_address]] _Iter in;
│ │ │ │ +
3727 [[no_unique_address]] _Tp value;
│ │ │ │ +
3728
│ │ │ │ +
3729 template<typename _Iter2, typename _Tp2>
│ │ │ │ +
3730 requires convertible_to<const _Iter&, _Iter2>
│ │ │ │ +
3731 && convertible_to<const _Tp&, _Tp2>
│ │ │ │ +
3732 constexpr
│ │ │ │ +
3733 operator in_value_result<_Iter2, _Tp2>() const &
│ │ │ │ +
3734 { return {in, value}; }
│ │ │ │ +
3735
│ │ │ │ +
3736 template<typename _Iter2, typename _Tp2>
│ │ │ │ +
3737 requires convertible_to<_Iter, _Iter2>
│ │ │ │ +
3738 && convertible_to<_Tp, _Tp2>
│ │ │ │ +
3739 constexpr
│ │ │ │ +
3740 operator in_value_result<_Iter2, _Tp2>() &&
│ │ │ │ +
3741 { return {std::move(in), std::move(value)}; }
│ │ │ │ +
3742 };
│ │ │ │ +
3743
│ │ │ │ +
3744 namespace __detail
│ │ │ │ +
3745 {
│ │ │ │ +
3746 template<typename _Fp>
│ │ │ │ +
3747 class __flipped
│ │ │ │ +
3748 {
│ │ │ │ +
3749 _Fp _M_f;
│ │ │ │ +
3750
│ │ │ │ +
3751 public:
│ │ │ │ +
3752 template<typename _Tp, typename _Up>
│ │ │ │ +
3753 requires invocable<_Fp&, _Up, _Tp>
│ │ │ │ +
3754 invoke_result_t<_Fp&, _Up, _Tp>
│ │ │ │ +
3755 operator()(_Tp&&, _Up&&); // not defined
│ │ │ │ +
3756 };
│ │ │ │ +
3757
│ │ │ │ +
3758 template<typename _Fp, typename _Tp, typename _Iter, typename _Up>
│ │ │ │ +
3759 concept __indirectly_binary_left_foldable_impl = movable<_Tp> && movable<_Up>
│ │ │ │ +
3760 && convertible_to<_Tp, _Up>
│ │ │ │ +
3761 && invocable<_Fp&, _Up, iter_reference_t<_Iter>>
│ │ │ │ +
3762 && assignable_from<_Up&, invoke_result_t<_Fp&, _Up, iter_reference_t<_Iter>>>;
│ │ │ │ +
3763
│ │ │ │ +
3764 template<typename _Fp, typename _Tp, typename _Iter>
│ │ │ │ +
3765 concept __indirectly_binary_left_foldable = copy_constructible<_Fp>
│ │ │ │ +
3766 && indirectly_readable<_Iter>
│ │ │ │ +
3767 && invocable<_Fp&, _Tp, iter_reference_t<_Iter>>
│ │ │ │ +
3768 && convertible_to<invoke_result_t<_Fp&, _Tp, iter_reference_t<_Iter>>,
│ │ │ │ +
3769 decay_t<invoke_result_t<_Fp&, _Tp, iter_reference_t<_Iter>>>>
│ │ │ │ +
3770 && __indirectly_binary_left_foldable_impl
│ │ │ │ +
3771 <_Fp, _Tp, _Iter, decay_t<invoke_result_t<_Fp&, _Tp, iter_reference_t<_Iter>>>>;
│ │ │ │ +
3772
│ │ │ │ +
3773 template <typename _Fp, typename _Tp, typename _Iter>
│ │ │ │ +
3774 concept __indirectly_binary_right_foldable
│ │ │ │ +
3775 = __indirectly_binary_left_foldable<__flipped<_Fp>, _Tp, _Iter>;
│ │ │ │ +
3776 } // namespace __detail
│ │ │ │ +
3777
│ │ │ │ +
3778 template<typename _Iter, typename _Tp>
│ │ │ │ +
3779 using fold_left_with_iter_result = in_value_result<_Iter, _Tp>;
│ │ │ │ +
3780
│ │ │ │ +
3781 struct __fold_left_with_iter_fn
│ │ │ │ +
3782 {
│ │ │ │ +
3783 template<typename _Ret_iter,
│ │ │ │ +
3784 typename _Iter, typename _Sent, typename _Tp, typename _Fp>
│ │ │ │ +
3785 static constexpr auto
│ │ │ │ +
3786 _S_impl(_Iter __first, _Sent __last, _Tp __init, _Fp __f)
│ │ │ │ +
3787 {
│ │ │ │ +
3788 using _Up = decay_t<invoke_result_t<_Fp&, _Tp, iter_reference_t<_Iter>>>;
│ │ │ │ +
3789 using _Ret = fold_left_with_iter_result<_Ret_iter, _Up>;
│ │ │ │ +
3790
│ │ │ │ +
3791 if (__first == __last)
│ │ │ │ +
3792 return _Ret{std::move(__first), _Up(std::move(__init))};
│ │ │ │ +
3793
│ │ │ │ +
3794 _Up __accum = std::__invoke(__f, std::move(__init), *__first);
│ │ │ │ +
3795 for (++__first; __first != __last; ++__first)
│ │ │ │ +
3796 __accum = std::__invoke(__f, std::move(__accum), *__first);
│ │ │ │ +
3797 return _Ret{std::move(__first), std::move(__accum)};
│ │ │ │ +
3798 }
│ │ │ │ +
3799
│ │ │ │ +
3800 template<input_iterator _Iter, sentinel_for<_Iter> _Sent,
│ │ │ │ +
3801 typename _Tp _GLIBCXX26_DEF_VAL_T(iter_value_t<_Iter>),
│ │ │ │ +
3802 __detail::__indirectly_binary_left_foldable<_Tp, _Iter> _Fp>
│ │ │ │ +
3803 constexpr auto
│ │ │ │ +
3804 operator()(_Iter __first, _Sent __last, _Tp __init, _Fp __f) const
│ │ │ │ +
3805 {
│ │ │ │ +
3806 using _Ret_iter = _Iter;
│ │ │ │ +
3807 return _S_impl<_Ret_iter>(std::move(__first), __last,
│ │ │ │ +
3808 std::move(__init), std::move(__f));
│ │ │ │ +
3809 }
│ │ │ │ +
3810
│ │ │ │ +
3811 template<input_range _Range,
│ │ │ │ +
3812 typename _Tp _GLIBCXX26_DEF_VAL_T(range_value_t<_Range>),
│ │ │ │ +
3813 __detail::__indirectly_binary_left_foldable<_Tp, iterator_t<_Range>> _Fp>
│ │ │ │ +
3814 constexpr auto
│ │ │ │ +
3815 operator()(_Range&& __r, _Tp __init, _Fp __f) const
│ │ │ │ +
3816 {
│ │ │ │ +
3817 using _Ret_iter = borrowed_iterator_t<_Range>;
│ │ │ │ +
3818 return _S_impl<_Ret_iter>(ranges::begin(__r), ranges::end(__r),
│ │ │ │ +
3819 std::move(__init), std::move(__f));
│ │ │ │ +
3820 }
│ │ │ │ +
3821 };
│ │ │ │ +
3822
│ │ │ │ +
3823 inline constexpr __fold_left_with_iter_fn fold_left_with_iter{};
│ │ │ │ +
3824
│ │ │ │ +
3825 struct __fold_left_fn
│ │ │ │ +
3826 {
│ │ │ │ +
3827 template<input_iterator _Iter, sentinel_for<_Iter> _Sent,
│ │ │ │ +
3828 typename _Tp _GLIBCXX26_DEF_VAL_T(iter_value_t<_Iter>),
│ │ │ │ +
3829 __detail::__indirectly_binary_left_foldable<_Tp, _Iter> _Fp>
│ │ │ │ +
3830 constexpr auto
│ │ │ │ +
3831 operator()(_Iter __first, _Sent __last, _Tp __init, _Fp __f) const
│ │ │ │ +
3832 {
│ │ │ │ +
3833 return ranges::fold_left_with_iter(std::move(__first), __last,
│ │ │ │ +
3834 std::move(__init), std::move(__f)).value;
│ │ │ │ +
3835 }
│ │ │ │ +
3836
│ │ │ │ +
3837 template<input_range _Range,
│ │ │ │ +
3838 typename _Tp _GLIBCXX26_DEF_VAL_T(range_value_t<_Range>),
│ │ │ │ +
3839 __detail::__indirectly_binary_left_foldable<_Tp, iterator_t<_Range>> _Fp>
│ │ │ │ +
3840 constexpr auto
│ │ │ │ +
3841 operator()(_Range&& __r, _Tp __init, _Fp __f) const
│ │ │ │ +
3842 { return (*this)(ranges::begin(__r), ranges::end(__r), std::move(__init), std::move(__f)); }
│ │ │ │ +
3843 };
│ │ │ │ +
3844
│ │ │ │ +
3845 inline constexpr __fold_left_fn fold_left{};
│ │ │ │ +
3846
│ │ │ │ +
3847 template<typename _Iter, typename _Tp>
│ │ │ │ +
3848 using fold_left_first_with_iter_result = in_value_result<_Iter, _Tp>;
│ │ │ │ +
3849
│ │ │ │ +
3850 struct __fold_left_first_with_iter_fn
│ │ │ │ +
3851 {
│ │ │ │ +
3852 template<typename _Ret_iter, typename _Iter, typename _Sent, typename _Fp>
│ │ │ │ +
3853 static constexpr auto
│ │ │ │ +
3854 _S_impl(_Iter __first, _Sent __last, _Fp __f)
│ │ │ │ +
3855 {
│ │ │ │ +
3856 using _Up = decltype(ranges::fold_left(std::move(__first), __last,
│ │ │ │ +
3857 iter_value_t<_Iter>(*__first), __f));
│ │ │ │ +
3858 using _Ret = fold_left_first_with_iter_result<_Ret_iter, optional<_Up>>;
│ │ │ │ +
3859
│ │ │ │ +
3860 if (__first == __last)
│ │ │ │ +
3861 return _Ret{std::move(__first), optional<_Up>()};
│ │ │ │ +
3862
│ │ │ │ +
3863 optional<_Up> __init(in_place, *__first);
│ │ │ │ +
3864 for (++__first; __first != __last; ++__first)
│ │ │ │ +
3865 *__init = std::__invoke(__f, std::move(*__init), *__first);
│ │ │ │ +
3866 return _Ret{std::move(__first), std::move(__init)};
│ │ │ │ +
3867 }
│ │ │ │ +
3868
│ │ │ │ +
3869 template<input_iterator _Iter, sentinel_for<_Iter> _Sent,
│ │ │ │ +
3870 __detail::__indirectly_binary_left_foldable<iter_value_t<_Iter>, _Iter> _Fp>
│ │ │ │ +
3871 requires constructible_from<iter_value_t<_Iter>, iter_reference_t<_Iter>>
│ │ │ │ +
3872 constexpr auto
│ │ │ │ +
3873 operator()(_Iter __first, _Sent __last, _Fp __f) const
│ │ │ │ +
3874 {
│ │ │ │ +
3875 using _Ret_iter = _Iter;
│ │ │ │ +
3876 return _S_impl<_Ret_iter>(std::move(__first), __last, std::move(__f));
│ │ │ │ +
3877 }
│ │ │ │ +
3878
│ │ │ │ +
3879 template<input_range _Range,
│ │ │ │ +
3880 __detail::__indirectly_binary_left_foldable<range_value_t<_Range>, iterator_t<_Range>> _Fp>
│ │ │ │ +
3881 requires constructible_from<range_value_t<_Range>, range_reference_t<_Range>>
│ │ │ │ +
3882 constexpr auto
│ │ │ │ +
3883 operator()(_Range&& __r, _Fp __f) const
│ │ │ │ +
3884 {
│ │ │ │ +
3885 using _Ret_iter = borrowed_iterator_t<_Range>;
│ │ │ │ +
3886 return _S_impl<_Ret_iter>(ranges::begin(__r), ranges::end(__r), std::move(__f));
│ │ │ │ +
3887 }
│ │ │ │ +
3888 };
│ │ │ │ +
3889
│ │ │ │ +
3890 inline constexpr __fold_left_first_with_iter_fn fold_left_first_with_iter{};
│ │ │ │ +
3891
│ │ │ │ +
3892 struct __fold_left_first_fn
│ │ │ │ +
3893 {
│ │ │ │ +
3894 template<input_iterator _Iter, sentinel_for<_Iter> _Sent,
│ │ │ │ +
3895 __detail::__indirectly_binary_left_foldable<iter_value_t<_Iter>, _Iter> _Fp>
│ │ │ │ +
3896 requires constructible_from<iter_value_t<_Iter>, iter_reference_t<_Iter>>
│ │ │ │ +
3897 constexpr auto
│ │ │ │ +
3898 operator()(_Iter __first, _Sent __last, _Fp __f) const
│ │ │ │ +
3899 {
│ │ │ │ +
3900 return ranges::fold_left_first_with_iter(std::move(__first), __last,
│ │ │ │ +
3901 std::move(__f)).value;
│ │ │ │ +
3902 }
│ │ │ │ +
3903
│ │ │ │ +
3904 template<input_range _Range,
│ │ │ │ +
3905 __detail::__indirectly_binary_left_foldable<range_value_t<_Range>, iterator_t<_Range>> _Fp>
│ │ │ │ +
3906 requires constructible_from<range_value_t<_Range>, range_reference_t<_Range>>
│ │ │ │ +
3907 constexpr auto
│ │ │ │ +
3908 operator()(_Range&& __r, _Fp __f) const
│ │ │ │ +
3909 { return (*this)(ranges::begin(__r), ranges::end(__r), std::move(__f)); }
│ │ │ │ +
3910 };
│ │ │ │ +
3911
│ │ │ │ +
3912 inline constexpr __fold_left_first_fn fold_left_first{};
│ │ │ │ +
3913
│ │ │ │ +
3914 struct __fold_right_fn
│ │ │ │ +
3915 {
│ │ │ │ +
3916 template<bidirectional_iterator _Iter, sentinel_for<_Iter> _Sent,
│ │ │ │ +
3917 typename _Tp _GLIBCXX26_DEF_VAL_T(iter_value_t<_Iter>),
│ │ │ │ +
3918 __detail::__indirectly_binary_right_foldable<_Tp, _Iter> _Fp>
│ │ │ │ +
3919 constexpr auto
│ │ │ │ +
3920 operator()(_Iter __first, _Sent __last, _Tp __init, _Fp __f) const
│ │ │ │ +
3921 {
│ │ │ │ +
3922 using _Up = decay_t<invoke_result_t<_Fp&, iter_reference_t<_Iter>, _Tp>>;
│ │ │ │ +
3923
│ │ │ │ +
3924 if (__first == __last)
│ │ │ │ +
3925 return _Up(std::move(__init));
│ │ │ │ +
3926
│ │ │ │ +
3927 _Iter __tail = ranges::next(__first, __last);
│ │ │ │ +
3928 _Up __accum = std::__invoke(__f, *--__tail, std::move(__init));
│ │ │ │ +
3929 while (__first != __tail)
│ │ │ │ +
3930 __accum = std::__invoke(__f, *--__tail, std::move(__accum));
│ │ │ │ +
3931 return __accum;
│ │ │ │ +
3932 }
│ │ │ │ +
3933
│ │ │ │ +
3934 template<bidirectional_range _Range,
│ │ │ │ +
3935 typename _Tp _GLIBCXX26_DEF_VAL_T(range_value_t<_Range>),
│ │ │ │ +
3936 __detail::__indirectly_binary_right_foldable<_Tp, iterator_t<_Range>> _Fp>
│ │ │ │ +
3937 constexpr auto
│ │ │ │ +
3938 operator()(_Range&& __r, _Tp __init, _Fp __f) const
│ │ │ │ +
3939 { return (*this)(ranges::begin(__r), ranges::end(__r), std::move(__init), std::move(__f)); }
│ │ │ │ +
3940 };
│ │ │ │ +
3941
│ │ │ │ +
3942 inline constexpr __fold_right_fn fold_right{};
│ │ │ │ +
3943
│ │ │ │ +
3944 struct __fold_right_last_fn
│ │ │ │ +
3945 {
│ │ │ │ +
3946 template<bidirectional_iterator _Iter, sentinel_for<_Iter> _Sent,
│ │ │ │ +
3947 __detail::__indirectly_binary_right_foldable<iter_value_t<_Iter>, _Iter> _Fp>
│ │ │ │ +
3948 requires constructible_from<iter_value_t<_Iter>, iter_reference_t<_Iter>>
│ │ │ │ +
3949 constexpr auto
│ │ │ │ +
3950 operator()(_Iter __first, _Sent __last, _Fp __f) const
│ │ │ │ +
3951 {
│ │ │ │ +
3952 using _Up = decltype(ranges::fold_right(__first, __last,
│ │ │ │ +
3953 iter_value_t<_Iter>(*__first), __f));
│ │ │ │ +
3954
│ │ │ │ +
3955 if (__first == __last)
│ │ │ │ +
3956 return optional<_Up>();
│ │ │ │ +
3957
│ │ │ │ +
3958 _Iter __tail = ranges::prev(ranges::next(__first, std::move(__last)));
│ │ │ │ +
3959 return optional<_Up>(in_place,
│ │ │ │ +
3960 ranges::fold_right(std::move(__first), __tail,
│ │ │ │ +
3961 iter_value_t<_Iter>(*__tail),
│ │ │ │ +
3962 std::move(__f)));
│ │ │ │ +
3963 }
│ │ │ │ +
3964
│ │ │ │ +
3965 template<bidirectional_range _Range,
│ │ │ │ +
3966 __detail::__indirectly_binary_right_foldable<range_value_t<_Range>, iterator_t<_Range>> _Fp>
│ │ │ │ +
3967 requires constructible_from<range_value_t<_Range>, range_reference_t<_Range>>
│ │ │ │ +
3968 constexpr auto
│ │ │ │ +
3969 operator()(_Range&& __r, _Fp __f) const
│ │ │ │ +
3970 { return (*this)(ranges::begin(__r), ranges::end(__r), std::move(__f)); }
│ │ │ │ +
3971 };
│ │ │ │ +
3972
│ │ │ │ +
3973 inline constexpr __fold_right_last_fn fold_right_last{};
│ │ │ │ +
3974#endif // __glibcxx_ranges_fold
│ │ │ │ +
3975} // namespace ranges
│ │ │ │ +
3976
│ │ │ │ +
3977 template<typename _ForwardIterator>
│ │ │ │ +
3978 constexpr _ForwardIterator
│ │ │ │ +
3979 shift_left(_ForwardIterator __first, _ForwardIterator __last,
│ │ │ │ +
3980 typename iterator_traits<_ForwardIterator>::difference_type __n)
│ │ │ │ +
3981 {
│ │ │ │ +
3982 __glibcxx_assert(__n >= 0);
│ │ │ │ +
3983 if (__n == 0)
│ │ │ │ +
3984 return __last;
│ │ │ │ +
3985
│ │ │ │ +
3986 auto __mid = ranges::next(__first, __n, __last);
│ │ │ │ +
3987 if (__mid == __last)
│ │ │ │ +
3988 return __first;
│ │ │ │ +
3989 return std::move(std::move(__mid), std::move(__last), std::move(__first));
│ │ │ │ +
3990 }
│ │ │ │ +
3991
│ │ │ │ +
3992 template<typename _ForwardIterator>
│ │ │ │ +
3993 constexpr _ForwardIterator
│ │ │ │ +
3994 shift_right(_ForwardIterator __first, _ForwardIterator __last,
│ │ │ │ +
3995 typename iterator_traits<_ForwardIterator>::difference_type __n)
│ │ │ │ +
3996 {
│ │ │ │ +
3997 __glibcxx_assert(__n >= 0);
│ │ │ │ +
3998 if (__n == 0)
│ │ │ │ +
3999 return __first;
│ │ │ │ +
4000
│ │ │ │ +
4001 using _Cat
│ │ │ │ +
4002 = typename iterator_traits<_ForwardIterator>::iterator_category;
│ │ │ │ +
4003 if constexpr (derived_from<_Cat, bidirectional_iterator_tag>)
│ │ │ │ +
4004 {
│ │ │ │ +
4005 auto __mid = ranges::next(__last, -__n, __first);
│ │ │ │ +
4006 if (__mid == __first)
│ │ │ │ +
4007 return __last;
│ │ │ │ +
4008
│ │ │ │ +
4009 return std::move_backward(std::move(__first), std::move(__mid),
│ │ │ │ +
4010 std::move(__last));
│ │ │ │ +
4011 }
│ │ │ │ +
4012 else
│ │ │ │ +
4013 {
│ │ │ │ +
4014 auto __result = ranges::next(__first, __n, __last);
│ │ │ │ +
4015 if (__result == __last)
│ │ │ │ +
4016 return __last;
│ │ │ │ +
4017
│ │ │ │ +
4018 auto __dest_head = __first, __dest_tail = __result;
│ │ │ │ +
4019 while (__dest_head != __result)
│ │ │ │ +
4020 {
│ │ │ │ +
4021 if (__dest_tail == __last)
│ │ │ │ +
4022 {
│ │ │ │ +
4023 // If we get here, then we must have
│ │ │ │ +
4024 // 2*n >= distance(__first, __last)
│ │ │ │ +
4025 // i.e. we are shifting out at least half of the range. In
│ │ │ │ +
4026 // this case we can safely perform the shift with a single
│ │ │ │ +
4027 // move.
│ │ │ │ +
4028 std::move(std::move(__first), std::move(__dest_head), __result);
│ │ │ │ +
4029 return __result;
│ │ │ │ +
4030 }
│ │ │ │ +
4031 ++__dest_head;
│ │ │ │ +
4032 ++__dest_tail;
│ │ │ │ +
4033 }
│ │ │ │ +
4034
│ │ │ │ +
4035 for (;;)
│ │ │ │ +
4036 {
│ │ │ │ +
4037 // At the start of each iteration of this outer loop, the range
│ │ │ │ +
4038 // [__first, __result) contains those elements that after shifting
│ │ │ │ +
4039 // the whole range right by __n, should end up in
│ │ │ │ +
4040 // [__dest_head, __dest_tail) in order.
│ │ │ │ +
4041
│ │ │ │ +
4042 // The below inner loop swaps the elements of [__first, __result)
│ │ │ │ +
4043 // and [__dest_head, __dest_tail), while simultaneously shifting
│ │ │ │ +
4044 // the latter range by __n.
│ │ │ │ +
4045 auto __cursor = __first;
│ │ │ │ +
4046 while (__cursor != __result)
│ │ │ │ +
4047 {
│ │ │ │ +
4048 if (__dest_tail == __last)
│ │ │ │ +
4049 {
│ │ │ │ +
4050 // At this point the ranges [__first, result) and
│ │ │ │ +
4051 // [__dest_head, dest_tail) are disjoint, so we can safely
│ │ │ │ +
4052 // move the remaining elements.
│ │ │ │ +
4053 __dest_head = std::move(__cursor, __result,
│ │ │ │ +
4054 std::move(__dest_head));
│ │ │ │ +
4055 std::move(std::move(__first), std::move(__cursor),
│ │ │ │ +
4056 std::move(__dest_head));
│ │ │ │ +
4057 return __result;
│ │ │ │ +
4058 }
│ │ │ │ +
4059 std::iter_swap(__cursor, __dest_head);
│ │ │ │ +
4060 ++__dest_head;
│ │ │ │ +
4061 ++__dest_tail;
│ │ │ │ +
4062 ++__cursor;
│ │ │ │ +
4063 }
│ │ │ │ +
4064 }
│ │ │ │ +
4065 }
│ │ │ │ +
4066 }
│ │ │ │ +
4067
│ │ │ │ +
4068_GLIBCXX_END_NAMESPACE_VERSION
│ │ │ │ +
4069} // namespace std
│ │ │ │ +
4070#endif // concepts
│ │ │ │ +
4071#endif // C++20
│ │ │ │ +
4072#endif // _RANGES_ALGO_H
│ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ +
constexpr std::remove_reference< _Tp >::type && move(_Tp &&__t) noexcept
Convert a value to an rvalue.
Definition move.h:138
│ │ │ │ +
constexpr __invoke_result< _Callable, _Args... >::type __invoke(_Callable &&__fn, _Args &&... __args) noexcept(__is_nothrow_invocable< _Callable, _Args... >::value)
Invoke a callable object.
Definition invoke.h:92
│ │ │ │ +
constexpr _Tp && forward(typename std::remove_reference< _Tp >::type &__t) noexcept
Forward an lvalue.
Definition move.h:72
│ │ │ │ +
constexpr _BI2 move_backward(_BI1 __first, _BI1 __last, _BI2 __result)
Moves the range [first,last) into result.
│ │ │ │ +
constexpr const _Tp & min(const _Tp &, const _Tp &)
This does what you think it does.
│ │ │ │
ISO C++ entities toplevel namespace is std.
│ │ │ │ -
constexpr _ForwardIterator _Destroy_n(_ForwardIterator __first, _Size __count)
│ │ │ │ -
constexpr void _Construct(_Tp *__p, _Args &&... __args)
│ │ │ │ -
constexpr void advance(_InputIterator &__i, _Distance __n)
A generalization of pointer arithmetic.
│ │ │ │ -
constexpr void _Destroy(_ForwardIterator __first, _ForwardIterator __last)
│ │ │ │ -
is_destructible
Definition type_traits:1089
│ │ │ │ -
Traits class for iterators.
│ │ │ │
│ │ │ │
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├── html2text {} │ │ │ │ │ @@ -1,13 +1,13 @@ │ │ │ │ │ libstdc++ │ │ │ │ │ -stl_construct.h │ │ │ │ │ +ranges_algo.h │ │ │ │ │ _G_o_ _t_o_ _t_h_e_ _d_o_c_u_m_e_n_t_a_t_i_o_n_ _o_f_ _t_h_i_s_ _f_i_l_e_. │ │ │ │ │ -1// nonstandard construct and destroy functions -*- C++ -*- │ │ │ │ │ +1// Core algorithmic facilities -*- C++ -*- │ │ │ │ │ 2 │ │ │ │ │ -3// Copyright (C) 2001-2025 Free Software Foundation, Inc. │ │ │ │ │ +3// Copyright (C) 2020-2025 Free Software Foundation, Inc. │ │ │ │ │ 4// │ │ │ │ │ 5// This file is part of the GNU ISO C++ Library. This library is free │ │ │ │ │ 6// software; you can redistribute it and/or modify it under the │ │ │ │ │ 7// terms of the GNU General Public License as published by the │ │ │ │ │ 8// Free Software Foundation; either version 3, or (at your option) │ │ │ │ │ 9// any later version. │ │ │ │ │ 10 │ │ │ │ │ @@ -21,320 +21,4124 @@ │ │ │ │ │ 18// 3.1, as published by the Free Software Foundation. │ │ │ │ │ 19 │ │ │ │ │ 20// You should have received a copy of the GNU General Public License and │ │ │ │ │ 21// a copy of the GCC Runtime Library Exception along with this program; │ │ │ │ │ 22// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see │ │ │ │ │ 23// . │ │ │ │ │ 24 │ │ │ │ │ -25/* │ │ │ │ │ -26 * │ │ │ │ │ -27 * Copyright (c) 1994 │ │ │ │ │ -28 * Hewlett-Packard Company │ │ │ │ │ -29 * │ │ │ │ │ -30 * Permission to use, copy, modify, distribute and sell this software │ │ │ │ │ -31 * and its documentation for any purpose is hereby granted without fee, │ │ │ │ │ -32 * provided that the above copyright notice appear in all copies and │ │ │ │ │ -33 * that both that copyright notice and this permission notice appear │ │ │ │ │ -34 * in supporting documentation. Hewlett-Packard Company makes no │ │ │ │ │ -35 * representations about the suitability of this software for any │ │ │ │ │ -36 * purpose. It is provided "as is" without express or implied warranty. │ │ │ │ │ -37 * │ │ │ │ │ -38 * │ │ │ │ │ -39 * Copyright (c) 1996,1997 │ │ │ │ │ -40 * Silicon Graphics Computer Systems, Inc. │ │ │ │ │ -41 * │ │ │ │ │ -42 * Permission to use, copy, modify, distribute and sell this software │ │ │ │ │ -43 * and its documentation for any purpose is hereby granted without fee, │ │ │ │ │ -44 * provided that the above copyright notice appear in all copies and │ │ │ │ │ -45 * that both that copyright notice and this permission notice appear │ │ │ │ │ -46 * in supporting documentation. Silicon Graphics makes no │ │ │ │ │ -47 * representations about the suitability of this software for any │ │ │ │ │ -48 * purpose. It is provided "as is" without express or implied warranty. │ │ │ │ │ -49 */ │ │ │ │ │ -50 │ │ │ │ │ -51/** @file bits/stl_construct.h │ │ │ │ │ -52 * This is an internal header file, included by other library headers. │ │ │ │ │ -53 * Do not attempt to use it directly. @headername{memory} │ │ │ │ │ -54 */ │ │ │ │ │ -55 │ │ │ │ │ -56#ifndef _STL_CONSTRUCT_H │ │ │ │ │ -57#define _STL_CONSTRUCT_H 1 │ │ │ │ │ -58 │ │ │ │ │ -59#include <_n_e_w> │ │ │ │ │ -60#include <_b_i_t_s_/_m_o_v_e_._h> │ │ │ │ │ -61#include <_b_i_t_s_/_s_t_l___i_t_e_r_a_t_o_r___b_a_s_e___t_y_p_e_s_._h> // for iterator_traits │ │ │ │ │ -62#include <_b_i_t_s_/_s_t_l___i_t_e_r_a_t_o_r___b_a_s_e___f_u_n_c_s_._h> // for advance │ │ │ │ │ -63 │ │ │ │ │ -64/* This file provides the C++17 functions std::destroy_at, std::destroy, and │ │ │ │ │ -65 * std::destroy_n, and the C++20 function std::construct_at. │ │ │ │ │ -66 * It also provides std::_Construct, std::_Destroy,and std::_Destroy_n │ │ │ │ │ -functions │ │ │ │ │ -67 * which are defined in all standard modes and so can be used in C++98-14 │ │ │ │ │ -code. │ │ │ │ │ -68 * The _Destroy functions will dispatch to destroy_at during constant │ │ │ │ │ -69 * evaluation, because calls to that function are intercepted by the compiler │ │ │ │ │ -70 * to allow use in constant expressions. │ │ │ │ │ -71 */ │ │ │ │ │ -72 │ │ │ │ │ -73namespace _s_t_d _GLIBCXX_VISIBILITY(default) │ │ │ │ │ -74{ │ │ │ │ │ -75_GLIBCXX_BEGIN_NAMESPACE_VERSION │ │ │ │ │ -76 │ │ │ │ │ -77#if __glibcxx_raw_memory_algorithms // >= C++17 │ │ │ │ │ -78 template │ │ │ │ │ -79 _GLIBCXX20_CONSTEXPR inline void │ │ │ │ │ -80 destroy_at(_Tp* __location) │ │ │ │ │ -81 { │ │ │ │ │ -82 if constexpr (__cplusplus > 201703L && is_array_v<_Tp>) │ │ │ │ │ -83 { │ │ │ │ │ -84 for (auto& __x : *__location) │ │ │ │ │ -85 _s_t_d::destroy_at(_s_t_d::_____a_d_d_r_e_s_s_o_f(__x)); │ │ │ │ │ -86 } │ │ │ │ │ -87 else │ │ │ │ │ -88 __location->~_Tp(); │ │ │ │ │ -89 } │ │ │ │ │ -90 │ │ │ │ │ -91#if __cpp_constexpr_dynamic_alloc // >= C++20 │ │ │ │ │ -92 template │ │ │ │ │ -93 requires (!is_unbounded_array_v<_Tp>) │ │ │ │ │ -94 && requires { ::new((void*)0) _Tp(std::declval<_Args>()...); } │ │ │ │ │ -95 constexpr _Tp* │ │ │ │ │ -96 construct_at(_Tp* __location, _Args&&... __args) │ │ │ │ │ -97 noexcept(noexcept(::new((void*)0) _Tp(std::declval<_Args>()...))) │ │ │ │ │ -98 { │ │ │ │ │ -99 void* __loc = __location; │ │ │ │ │ -100 // _GLIBCXX_RESOLVE_LIB_DEFECTS │ │ │ │ │ -101 // 3436. std::construct_at should support arrays │ │ │ │ │ -102 if constexpr (is_array_v<_Tp>) │ │ │ │ │ +25/** @file bits/ranges_algo.h │ │ │ │ │ +26 * This is an internal header file, included by other library headers. │ │ │ │ │ +27 * Do not attempt to use it directly. @headername{algorithm} │ │ │ │ │ +28 */ │ │ │ │ │ +29 │ │ │ │ │ +30#ifndef _RANGES_ALGO_H │ │ │ │ │ +31#define _RANGES_ALGO_H 1 │ │ │ │ │ +32 │ │ │ │ │ +33#if __cplusplus > 201703L │ │ │ │ │ +34 │ │ │ │ │ +35#if __cplusplus > 202002L │ │ │ │ │ +36#include │ │ │ │ │ +37#endif │ │ │ │ │ +38#include <_b_i_t_s_/_r_a_n_g_e_s___a_l_g_o_b_a_s_e_._h> │ │ │ │ │ +39#include <_b_i_t_s_/_r_a_n_g_e_s___u_t_i_l_._h> │ │ │ │ │ +40#include <_b_i_t_s_/_u_n_i_f_o_r_m___i_n_t___d_i_s_t_._h> // concept uniform_random_bit_generator │ │ │ │ │ +41 │ │ │ │ │ +42#if __glibcxx_concepts │ │ │ │ │ +43namespace _s_t_d _GLIBCXX_VISIBILITY(default) │ │ │ │ │ +44{ │ │ │ │ │ +45_GLIBCXX_BEGIN_NAMESPACE_VERSION │ │ │ │ │ +46namespace ranges │ │ │ │ │ +47{ │ │ │ │ │ +48 namespace __detail │ │ │ │ │ +49 { │ │ │ │ │ +50 template │ │ │ │ │ +51 constexpr auto │ │ │ │ │ +52 __make_comp_proj(_Comp& __comp, _Proj& __proj) │ │ │ │ │ +53 { │ │ │ │ │ +54 return [&] (auto&& __lhs, auto&& __rhs) -> bool { │ │ │ │ │ +55 using _TL = decltype(__lhs); │ │ │ │ │ +56 using _TR = decltype(__rhs); │ │ │ │ │ +57 return _s_t_d_:_:_____i_n_v_o_k_e(__comp, │ │ │ │ │ +58 _s_t_d_:_:_____i_n_v_o_k_e(__proj, std::forward<_TL>(__lhs)), │ │ │ │ │ +59 _s_t_d_:_:_____i_n_v_o_k_e(__proj, std::forward<_TR>(__rhs))); │ │ │ │ │ +60 }; │ │ │ │ │ +61 } │ │ │ │ │ +62 │ │ │ │ │ +63 template │ │ │ │ │ +64 constexpr auto │ │ │ │ │ +65 __make_pred_proj(_Pred& __pred, _Proj& __proj) │ │ │ │ │ +66 { │ │ │ │ │ +67 return [&] (_Tp&& __arg) -> bool { │ │ │ │ │ +68 return _s_t_d_:_:_____i_n_v_o_k_e(__pred, │ │ │ │ │ +69 _s_t_d_:_:_____i_n_v_o_k_e(__proj, std::forward<_Tp>(__arg))); │ │ │ │ │ +70 }; │ │ │ │ │ +71 } │ │ │ │ │ +72 } // namespace __detail │ │ │ │ │ +73 │ │ │ │ │ +74 struct __all_of_fn │ │ │ │ │ +75 { │ │ │ │ │ +76 template _Sent, │ │ │ │ │ +77 typename _Proj = identity, │ │ │ │ │ +78 indirect_unary_predicate> _Pred> │ │ │ │ │ +79 constexpr bool │ │ │ │ │ +80 operator()(_Iter __first, _Sent __last, │ │ │ │ │ +81 _Pred __pred, _Proj __proj = {}) const │ │ │ │ │ +82 { │ │ │ │ │ +83 for (; __first != __last; ++__first) │ │ │ │ │ +84 if (!(bool)_s_t_d_:_:_____i_n_v_o_k_e(__pred, _s_t_d_:_:_____i_n_v_o_k_e(__proj, *__first))) │ │ │ │ │ +85 return false; │ │ │ │ │ +86 return true; │ │ │ │ │ +87 } │ │ │ │ │ +88 │ │ │ │ │ +89 template, _Proj>> │ │ │ │ │ +91 _Pred> │ │ │ │ │ +92 constexpr bool │ │ │ │ │ +93 operator()(_Range&& __r, _Pred __pred, _Proj __proj = {}) const │ │ │ │ │ +94 { │ │ │ │ │ +95 return (*this)(ranges::begin(__r), ranges::end(__r), │ │ │ │ │ +96 _s_t_d_:_:_m_o_v_e(__pred), _s_t_d_:_:_m_o_v_e(__proj)); │ │ │ │ │ +97 } │ │ │ │ │ +98 }; │ │ │ │ │ +99 │ │ │ │ │ +100 inline constexpr __all_of_fn all_of{}; │ │ │ │ │ +101 │ │ │ │ │ +102 struct __any_of_fn │ │ │ │ │ 103 { │ │ │ │ │ -104 static_assert(sizeof...(_Args) == 0, "std::construct_at for array " │ │ │ │ │ -105 "types must not use any arguments to initialize the " │ │ │ │ │ -106 "array"); │ │ │ │ │ -107 return ::new(__loc) _Tp[1](); │ │ │ │ │ -108 } │ │ │ │ │ -109 else │ │ │ │ │ -110 return ::new(__loc) _Tp(std::forward<_Args>(__args)...); │ │ │ │ │ -111 } │ │ │ │ │ -112#endif // C++20 │ │ │ │ │ -113#endif// C++17 │ │ │ │ │ -114 │ │ │ │ │ -115 /** │ │ │ │ │ -116 * Constructs an object in existing memory by invoking an allocated │ │ │ │ │ -117 * object's constructor with an initializer. │ │ │ │ │ -118 */ │ │ │ │ │ -119#if __cplusplus >= 201103L │ │ │ │ │ -120 template │ │ │ │ │ -121 _GLIBCXX20_CONSTEXPR │ │ │ │ │ -122 inline void │ │ │ │ │ -_1_2_3 ___C_o_n_s_t_r_u_c_t(_Tp* __p, _Args&&... __args) │ │ │ │ │ -124 { │ │ │ │ │ -125#if __cpp_constexpr_dynamic_alloc // >= C++20 │ │ │ │ │ -126 if (std::__is_constant_evaluated()) │ │ │ │ │ -127 { │ │ │ │ │ -128 // Allow std::_Construct to be used in constant expressions. │ │ │ │ │ -129 std::construct_at(__p, std::forward<_Args>(__args)...); │ │ │ │ │ -130 return; │ │ │ │ │ -131 } │ │ │ │ │ -132#endif │ │ │ │ │ -133 ::new(static_cast(__p)) _Tp(std::forward<_Args>(__args)...); │ │ │ │ │ -134 } │ │ │ │ │ -135#else │ │ │ │ │ -136 template │ │ │ │ │ -137 inline void │ │ │ │ │ -138 ___C_o_n_s_t_r_u_c_t(_T1* __p, const _T2& __value) │ │ │ │ │ -139 { │ │ │ │ │ -140 // _GLIBCXX_RESOLVE_LIB_DEFECTS │ │ │ │ │ -141 // 402. wrong new expression in [some_]allocator::construct │ │ │ │ │ -142 ::new(static_cast(__p)) _T1(__value); │ │ │ │ │ +104 template _Sent, │ │ │ │ │ +105 typename _Proj = identity, │ │ │ │ │ +106 indirect_unary_predicate> _Pred> │ │ │ │ │ +107 constexpr bool │ │ │ │ │ +108 operator()(_Iter __first, _Sent __last, │ │ │ │ │ +109 _Pred __pred, _Proj __proj = {}) const │ │ │ │ │ +110 { │ │ │ │ │ +111 for (; __first != __last; ++__first) │ │ │ │ │ +112 if (_s_t_d_:_:_____i_n_v_o_k_e(__pred, _s_t_d_:_:_____i_n_v_o_k_e(__proj, *__first))) │ │ │ │ │ +113 return true; │ │ │ │ │ +114 return false; │ │ │ │ │ +115 } │ │ │ │ │ +116 │ │ │ │ │ +117 template, _Proj>> │ │ │ │ │ +119 _Pred> │ │ │ │ │ +120 constexpr bool │ │ │ │ │ +121 operator()(_Range&& __r, _Pred __pred, _Proj __proj = {}) const │ │ │ │ │ +122 { │ │ │ │ │ +123 return (*this)(ranges::begin(__r), ranges::end(__r), │ │ │ │ │ +124 _s_t_d_:_:_m_o_v_e(__pred), _s_t_d_:_:_m_o_v_e(__proj)); │ │ │ │ │ +125 } │ │ │ │ │ +126 }; │ │ │ │ │ +127 │ │ │ │ │ +128 inline constexpr __any_of_fn any_of{}; │ │ │ │ │ +129 │ │ │ │ │ +130 struct __none_of_fn │ │ │ │ │ +131 { │ │ │ │ │ +132 template _Sent, │ │ │ │ │ +133 typename _Proj = identity, │ │ │ │ │ +134 indirect_unary_predicate> _Pred> │ │ │ │ │ +135 constexpr bool │ │ │ │ │ +136 operator()(_Iter __first, _Sent __last, │ │ │ │ │ +137 _Pred __pred, _Proj __proj = {}) const │ │ │ │ │ +138 { │ │ │ │ │ +139 for (; __first != __last; ++__first) │ │ │ │ │ +140 if (_s_t_d_:_:_____i_n_v_o_k_e(__pred, _s_t_d_:_:_____i_n_v_o_k_e(__proj, *__first))) │ │ │ │ │ +141 return false; │ │ │ │ │ +142 return true; │ │ │ │ │ 143 } │ │ │ │ │ -144#endif │ │ │ │ │ -145 │ │ │ │ │ -146 template │ │ │ │ │ -147 _GLIBCXX26_CONSTEXPR │ │ │ │ │ -148 inline void │ │ │ │ │ -149 _Construct_novalue(_T1* __p) │ │ │ │ │ -150 { ::new(static_cast(__p)) _T1; } │ │ │ │ │ -151 │ │ │ │ │ -152 template │ │ │ │ │ -153 _GLIBCXX20_CONSTEXPR void │ │ │ │ │ -154 ___D_e_s_t_r_o_y(_ForwardIterator __first, _ForwardIterator __last); │ │ │ │ │ +144 │ │ │ │ │ +145 template, _Proj>> │ │ │ │ │ +147 _Pred> │ │ │ │ │ +148 constexpr bool │ │ │ │ │ +149 operator()(_Range&& __r, _Pred __pred, _Proj __proj = {}) const │ │ │ │ │ +150 { │ │ │ │ │ +151 return (*this)(ranges::begin(__r), ranges::end(__r), │ │ │ │ │ +152 _s_t_d_:_:_m_o_v_e(__pred), _s_t_d_:_:_m_o_v_e(__proj)); │ │ │ │ │ +153 } │ │ │ │ │ +154 }; │ │ │ │ │ 155 │ │ │ │ │ -156 /** │ │ │ │ │ -157 * Destroy the object pointed to by a pointer type. │ │ │ │ │ -158 */ │ │ │ │ │ -159 template │ │ │ │ │ -160 _GLIBCXX14_CONSTEXPR inline void │ │ │ │ │ -_1_6_1 ___D_e_s_t_r_o_y(_Tp* __pointer) │ │ │ │ │ -162 { │ │ │ │ │ -163#if __cpp_constexpr_dynamic_alloc // >= C++20 │ │ │ │ │ -164 std::destroy_at(__pointer); │ │ │ │ │ -165#else │ │ │ │ │ -166 __pointer->~_Tp(); │ │ │ │ │ -167#endif │ │ │ │ │ -168 } │ │ │ │ │ -169 │ │ │ │ │ -170#pragma GCC diagnostic push │ │ │ │ │ -171#pragma GCC diagnostic ignored "-Wc++17-extensions" // for if-constexpr │ │ │ │ │ -172 │ │ │ │ │ -173#if __cplusplus < 201103L │ │ │ │ │ -174 template │ │ │ │ │ -175 struct _Destroy_aux │ │ │ │ │ -176 { │ │ │ │ │ -177 template │ │ │ │ │ -178 static _GLIBCXX20_CONSTEXPR void │ │ │ │ │ -179 __destroy(_ForwardIterator __first, _ForwardIterator __last) │ │ │ │ │ -180 { │ │ │ │ │ -181 for (; __first != __last; ++__first) │ │ │ │ │ -182 _s_t_d_:_:___D_e_s_t_r_o_y(_s_t_d_:_:_____a_d_d_r_e_s_s_o_f(*__first)); │ │ │ │ │ -183 } │ │ │ │ │ -184 }; │ │ │ │ │ -185 │ │ │ │ │ -186 template<> │ │ │ │ │ -187 struct _Destroy_aux │ │ │ │ │ +156 inline constexpr __none_of_fn none_of{}; │ │ │ │ │ +157 │ │ │ │ │ +158 template │ │ │ │ │ +159 struct in_fun_result │ │ │ │ │ +160 { │ │ │ │ │ +161 [[no_unique_address]] _Iter in; │ │ │ │ │ +162 [[no_unique_address]] _Fp fun; │ │ │ │ │ +163 │ │ │ │ │ +164 template │ │ │ │ │ +165 requires convertible_to │ │ │ │ │ +166 && convertible_to │ │ │ │ │ +167 constexpr │ │ │ │ │ +168 operator in_fun_result<_Iter2, _F2p>() const & │ │ │ │ │ +169 { return {in, fun}; } │ │ │ │ │ +170 │ │ │ │ │ +171 template │ │ │ │ │ +172 requires convertible_to<_Iter, _Iter2> && convertible_to<_Fp, _F2p> │ │ │ │ │ +173 constexpr │ │ │ │ │ +174 operator in_fun_result<_Iter2, _F2p>() && │ │ │ │ │ +175 { return {_s_t_d_:_:_m_o_v_e(in), _s_t_d_:_:_m_o_v_e(fun)}; } │ │ │ │ │ +176 }; │ │ │ │ │ +177 │ │ │ │ │ +178 template │ │ │ │ │ +179 using for_each_result = in_fun_result<_Iter, _Fp>; │ │ │ │ │ +180 │ │ │ │ │ +181 struct __for_each_fn │ │ │ │ │ +182 { │ │ │ │ │ +183 template _Sent, │ │ │ │ │ +184 typename _Proj = identity, │ │ │ │ │ +185 indirectly_unary_invocable> _Fun> │ │ │ │ │ +186 constexpr for_each_result<_Iter, _Fun> │ │ │ │ │ +187 operator()(_Iter __first, _Sent __last, _Fun __f, _Proj __proj = {}) const │ │ │ │ │ 188 { │ │ │ │ │ -189 template │ │ │ │ │ -190 static void │ │ │ │ │ -191 __destroy(_ForwardIterator, _ForwardIterator) { } │ │ │ │ │ -192 }; │ │ │ │ │ -193#endif │ │ │ │ │ -194 │ │ │ │ │ -195 /** │ │ │ │ │ -196 * Destroy a range of objects. If the value_type of the object has │ │ │ │ │ -197 * a trivial destructor, the compiler should optimize all of this │ │ │ │ │ -198 * away, otherwise the objects' destructors must be invoked. │ │ │ │ │ -199 */ │ │ │ │ │ -200 template │ │ │ │ │ -201 _GLIBCXX20_CONSTEXPR inline void │ │ │ │ │ -_2_0_2 ___D_e_s_t_r_o_y(_ForwardIterator __first, _ForwardIterator __last) │ │ │ │ │ -203 { │ │ │ │ │ -204 typedef typename _i_t_e_r_a_t_o_r___t_r_a_i_t_s_<___F_o_r_w_a_r_d_I_t_e_r_a_t_o_r_>_:_:_v_a_l_u_e___t_y_p_e │ │ │ │ │ -205 _Value_type; │ │ │ │ │ -206#if __cplusplus >= 201103L │ │ │ │ │ -207 // A deleted destructor is trivial, this ensures we reject such types: │ │ │ │ │ -208 static_assert(_i_s___d_e_s_t_r_u_c_t_i_b_l_e_<___V_a_l_u_e___t_y_p_e_>_:_:_v_a_l_u_e, │ │ │ │ │ -209 "value type is destructible"); │ │ │ │ │ -210 if constexpr (!__has_trivial_destructor(_Value_type)) │ │ │ │ │ -211 for (; __first != __last; ++__first) │ │ │ │ │ -212 _s_t_d_:_:___D_e_s_t_r_o_y(_s_t_d_:_:_____a_d_d_r_e_s_s_o_f(*__first)); │ │ │ │ │ -213#if __cpp_constexpr_dynamic_alloc // >= C++20 │ │ │ │ │ -214 else if (std::__is_constant_evaluated()) │ │ │ │ │ -215 for (; __first != __last; ++__first) │ │ │ │ │ -216 std::destroy_at(_s_t_d_:_:_____a_d_d_r_e_s_s_o_f(*__first)); │ │ │ │ │ -217#endif │ │ │ │ │ -218#else │ │ │ │ │ -219 std::_Destroy_aux<__has_trivial_destructor(_Value_type)>:: │ │ │ │ │ -220 __destroy(__first, __last); │ │ │ │ │ -221#endif │ │ │ │ │ -222 } │ │ │ │ │ -223 │ │ │ │ │ -224#if __cplusplus < 201103L │ │ │ │ │ -225 template │ │ │ │ │ -226 struct _Destroy_n_aux │ │ │ │ │ +189 for (; __first != __last; ++__first) │ │ │ │ │ +190 _s_t_d_:_:_____i_n_v_o_k_e(__f, _s_t_d_:_:_____i_n_v_o_k_e(__proj, *__first)); │ │ │ │ │ +191 return { _s_t_d_:_:_m_o_v_e(__first), _s_t_d_:_:_m_o_v_e(__f) }; │ │ │ │ │ +192 } │ │ │ │ │ +193 │ │ │ │ │ +194 template, _Proj>> │ │ │ │ │ +196 _Fun> │ │ │ │ │ +197 constexpr for_each_result, _Fun> │ │ │ │ │ +198 operator()(_Range&& __r, _Fun __f, _Proj __proj = {}) const │ │ │ │ │ +199 { │ │ │ │ │ +200 return (*this)(ranges::begin(__r), ranges::end(__r), │ │ │ │ │ +201 _s_t_d_:_:_m_o_v_e(__f), _s_t_d_:_:_m_o_v_e(__proj)); │ │ │ │ │ +202 } │ │ │ │ │ +203 }; │ │ │ │ │ +204 │ │ │ │ │ +205 inline constexpr __for_each_fn for_each{}; │ │ │ │ │ +206 │ │ │ │ │ +207 template │ │ │ │ │ +208 using for_each_n_result = in_fun_result<_Iter, _Fp>; │ │ │ │ │ +209 │ │ │ │ │ +210 struct __for_each_n_fn │ │ │ │ │ +211 { │ │ │ │ │ +212 template> _Fun> │ │ │ │ │ +214 constexpr for_each_n_result<_Iter, _Fun> │ │ │ │ │ +215 operator()(_Iter __first, iter_difference_t<_Iter> __n, │ │ │ │ │ +216 _Fun __f, _Proj __proj = {}) const │ │ │ │ │ +217 { │ │ │ │ │ +218 if constexpr (random_access_iterator<_Iter>) │ │ │ │ │ +219 { │ │ │ │ │ +220 if (__n <= 0) │ │ │ │ │ +221 return {_s_t_d_:_:_m_o_v_e(__first), _s_t_d_:_:_m_o_v_e(__f)}; │ │ │ │ │ +222 auto __last = __first + __n; │ │ │ │ │ +223 return ranges::for_each(_s_t_d_:_:_m_o_v_e(__first), _s_t_d_:_:_m_o_v_e(__last), │ │ │ │ │ +224 _s_t_d_:_:_m_o_v_e(__f), _s_t_d_:_:_m_o_v_e(__proj)); │ │ │ │ │ +225 } │ │ │ │ │ +226 else │ │ │ │ │ 227 { │ │ │ │ │ -228 template │ │ │ │ │ -229 static _GLIBCXX20_CONSTEXPR _ForwardIterator │ │ │ │ │ -230 __destroy_n(_ForwardIterator __first, _Size __count) │ │ │ │ │ -231 { │ │ │ │ │ -232 for (; __count > 0; (void)++__first, --__count) │ │ │ │ │ -233 _s_t_d_:_:___D_e_s_t_r_o_y(_s_t_d_:_:_____a_d_d_r_e_s_s_o_f(*__first)); │ │ │ │ │ -234 return __first; │ │ │ │ │ +228 while (__n-- > 0) │ │ │ │ │ +229 { │ │ │ │ │ +230 _s_t_d_:_:_____i_n_v_o_k_e(__f, _s_t_d_:_:_____i_n_v_o_k_e(__proj, *__first)); │ │ │ │ │ +231 ++__first; │ │ │ │ │ +232 } │ │ │ │ │ +233 return {_s_t_d_:_:_m_o_v_e(__first), _s_t_d_:_:_m_o_v_e(__f)}; │ │ │ │ │ +234 } │ │ │ │ │ 235 } │ │ │ │ │ 236 }; │ │ │ │ │ 237 │ │ │ │ │ -238 template<> │ │ │ │ │ -239 struct _Destroy_n_aux │ │ │ │ │ -240 { │ │ │ │ │ -241 template │ │ │ │ │ -242 static _ForwardIterator │ │ │ │ │ -243 __destroy_n(_ForwardIterator __first, _Size __count) │ │ │ │ │ -244 { │ │ │ │ │ -245 _s_t_d_:_:_a_d_v_a_n_c_e(__first, __count); │ │ │ │ │ -246 return __first; │ │ │ │ │ -247 } │ │ │ │ │ -248 }; │ │ │ │ │ -249#endif │ │ │ │ │ -250 │ │ │ │ │ -251 /** │ │ │ │ │ -252 * Destroy a range of objects. If the value_type of the object has │ │ │ │ │ -253 * a trivial destructor, the compiler should optimize all of this │ │ │ │ │ -254 * away, otherwise the objects' destructors must be invoked. │ │ │ │ │ -255 */ │ │ │ │ │ -256 template │ │ │ │ │ -257 _GLIBCXX20_CONSTEXPR inline _ForwardIterator │ │ │ │ │ -_2_5_8 ___D_e_s_t_r_o_y___n(_ForwardIterator __first, _Size __count) │ │ │ │ │ -259 { │ │ │ │ │ -260 typedef typename _i_t_e_r_a_t_o_r___t_r_a_i_t_s_<___F_o_r_w_a_r_d_I_t_e_r_a_t_o_r_>_:_:_v_a_l_u_e___t_y_p_e │ │ │ │ │ -261 _Value_type; │ │ │ │ │ -262#if __cplusplus >= 201103L │ │ │ │ │ -263 // A deleted destructor is trivial, this ensures we reject such types: │ │ │ │ │ -264 static_assert(_i_s___d_e_s_t_r_u_c_t_i_b_l_e_<___V_a_l_u_e___t_y_p_e_>_:_:_v_a_l_u_e, │ │ │ │ │ -265 "value type is destructible"); │ │ │ │ │ -266 if constexpr (!__has_trivial_destructor(_Value_type)) │ │ │ │ │ -267 for (; __count > 0; (void)++__first, --__count) │ │ │ │ │ -268 _s_t_d_:_:___D_e_s_t_r_o_y(_s_t_d_:_:_____a_d_d_r_e_s_s_o_f(*__first)); │ │ │ │ │ -269#if __cpp_constexpr_dynamic_alloc // >= C++20 │ │ │ │ │ -270 else if (std::__is_constant_evaluated()) │ │ │ │ │ -271 for (; __count > 0; (void)++__first, --__count) │ │ │ │ │ -272 std::destroy_at(_s_t_d_:_:_____a_d_d_r_e_s_s_o_f(*__first)); │ │ │ │ │ -273#endif │ │ │ │ │ -274 else │ │ │ │ │ -275 _s_t_d_:_:_a_d_v_a_n_c_e(__first, __count); │ │ │ │ │ -276 return __first; │ │ │ │ │ -277#else │ │ │ │ │ -278 return std::_Destroy_n_aux<__has_trivial_destructor(_Value_type)>:: │ │ │ │ │ -279 __destroy_n(__first, __count); │ │ │ │ │ -280#endif │ │ │ │ │ -281 } │ │ │ │ │ -282#pragma GCC diagnostic pop │ │ │ │ │ -283 │ │ │ │ │ -284#if __glibcxx_raw_memory_algorithms // >= C++17 │ │ │ │ │ -285 template │ │ │ │ │ -286 _GLIBCXX20_CONSTEXPR inline void │ │ │ │ │ -287 destroy(_ForwardIterator __first, _ForwardIterator __last) │ │ │ │ │ -288 { │ │ │ │ │ -289 _s_t_d_:_:___D_e_s_t_r_o_y(__first, __last); │ │ │ │ │ -290 } │ │ │ │ │ -291 │ │ │ │ │ -292 template │ │ │ │ │ -293 _GLIBCXX20_CONSTEXPR inline _ForwardIterator │ │ │ │ │ -294 destroy_n(_ForwardIterator __first, _Size __count) │ │ │ │ │ -295 { │ │ │ │ │ -296 return _s_t_d_:_:___D_e_s_t_r_o_y___n(__first, __count); │ │ │ │ │ -297 } │ │ │ │ │ -298#endif // C++17 │ │ │ │ │ +238 inline constexpr __for_each_n_fn for_each_n{}; │ │ │ │ │ +239 │ │ │ │ │ +240 // find, find_if and find_if_not are defined in . │ │ │ │ │ +241 │ │ │ │ │ +242 struct __find_first_of_fn │ │ │ │ │ +243 { │ │ │ │ │ +244 template _Sent1, │ │ │ │ │ +245 forward_iterator _Iter2, sentinel_for<_Iter2> _Sent2, │ │ │ │ │ +246 typename _Pred = ranges::equal_to, │ │ │ │ │ +247 typename _Proj1 = identity, typename _Proj2 = identity> │ │ │ │ │ +248 requires indirectly_comparable<_Iter1, _Iter2, _Pred, _Proj1, _Proj2> │ │ │ │ │ +249 constexpr _Iter1 │ │ │ │ │ +250 operator()(_Iter1 __first1, _Sent1 __last1, │ │ │ │ │ +251 _Iter2 __first2, _Sent2 __last2, _Pred __pred = {}, │ │ │ │ │ +252 _Proj1 __proj1 = {}, _Proj2 __proj2 = {}) const │ │ │ │ │ +253 { │ │ │ │ │ +254 for (; __first1 != __last1; ++__first1) │ │ │ │ │ +255 for (auto __iter = __first2; __iter != __last2; ++__iter) │ │ │ │ │ +256 if (_s_t_d_:_:_____i_n_v_o_k_e(__pred, │ │ │ │ │ +257 _s_t_d_:_:_____i_n_v_o_k_e(__proj1, *__first1), │ │ │ │ │ +258 _s_t_d_:_:_____i_n_v_o_k_e(__proj2, *__iter))) │ │ │ │ │ +259 return __first1; │ │ │ │ │ +260 return __first1; │ │ │ │ │ +261 } │ │ │ │ │ +262 │ │ │ │ │ +263 template │ │ │ │ │ +266 requires indirectly_comparable, iterator_t<_Range2>, │ │ │ │ │ +267 _Pred, _Proj1, _Proj2> │ │ │ │ │ +268 constexpr borrowed_iterator_t<_Range1> │ │ │ │ │ +269 operator()(_Range1&& __r1, _Range2&& __r2, _Pred __pred = {}, │ │ │ │ │ +270 _Proj1 __proj1 = {}, _Proj2 __proj2 = {}) const │ │ │ │ │ +271 { │ │ │ │ │ +272 return (*this)(ranges::begin(__r1), ranges::end(__r1), │ │ │ │ │ +273 ranges::begin(__r2), ranges::end(__r2), │ │ │ │ │ +274 _s_t_d_:_:_m_o_v_e(__pred), │ │ │ │ │ +275 _s_t_d_:_:_m_o_v_e(__proj1), _s_t_d_:_:_m_o_v_e(__proj2)); │ │ │ │ │ +276 } │ │ │ │ │ +277 }; │ │ │ │ │ +278 │ │ │ │ │ +279 inline constexpr __find_first_of_fn find_first_of{}; │ │ │ │ │ +280 │ │ │ │ │ +281 struct __count_fn │ │ │ │ │ +282 { │ │ │ │ │ +283 template _Sent, │ │ │ │ │ +284 typename _Proj = identity, │ │ │ │ │ +285 typename _Tp _GLIBCXX26_RANGE_ALGO_DEF_VAL_T(_Iter, _Proj)> │ │ │ │ │ +286 requires indirect_binary_predicate, │ │ │ │ │ +288 const _Tp*> │ │ │ │ │ +289 constexpr iter_difference_t<_Iter> │ │ │ │ │ +290 operator()(_Iter __first, _Sent __last, │ │ │ │ │ +291 const _Tp& __value, _Proj __proj = {}) const │ │ │ │ │ +292 { │ │ │ │ │ +293 iter_difference_t<_Iter> __n = 0; │ │ │ │ │ +294 for (; __first != __last; ++__first) │ │ │ │ │ +295 if (_s_t_d_:_:_____i_n_v_o_k_e(__proj, *__first) == __value) │ │ │ │ │ +296 ++__n; │ │ │ │ │ +297 return __n; │ │ │ │ │ +298 } │ │ │ │ │ 299 │ │ │ │ │ -300_GLIBCXX_END_NAMESPACE_VERSION │ │ │ │ │ -301} // namespace std │ │ │ │ │ -302 │ │ │ │ │ -303#endif /* _STL_CONSTRUCT_H */ │ │ │ │ │ -_n_e_w │ │ │ │ │ -_m_o_v_e_._h │ │ │ │ │ -_s_t_l___i_t_e_r_a_t_o_r___b_a_s_e___f_u_n_c_s_._h │ │ │ │ │ -_s_t_l___i_t_e_r_a_t_o_r___b_a_s_e___t_y_p_e_s_._h │ │ │ │ │ -_s_t_d_:_:_____a_d_d_r_e_s_s_o_f │ │ │ │ │ -constexpr _Tp * __addressof(_Tp &__r) noexcept │ │ │ │ │ -Same as C++11 std::addressof. │ │ │ │ │ -DDeeffiinniittiioonn _m_o_v_e_._h_:_5_2 │ │ │ │ │ +300 template, _Proj)> │ │ │ │ │ +303 requires indirect_binary_predicate, _Proj>, │ │ │ │ │ +305 const _Tp*> │ │ │ │ │ +306 constexpr range_difference_t<_Range> │ │ │ │ │ +307 operator()(_Range&& __r, const _Tp& __value, _Proj __proj = {}) const │ │ │ │ │ +308 { │ │ │ │ │ +309 return (*this)(ranges::begin(__r), ranges::end(__r), │ │ │ │ │ +310 __value, _s_t_d_:_:_m_o_v_e(__proj)); │ │ │ │ │ +311 } │ │ │ │ │ +312 }; │ │ │ │ │ +313 │ │ │ │ │ +314 inline constexpr __count_fn count{}; │ │ │ │ │ +315 │ │ │ │ │ +316 struct __count_if_fn │ │ │ │ │ +317 { │ │ │ │ │ +318 template _Sent, │ │ │ │ │ +319 typename _Proj = identity, │ │ │ │ │ +320 indirect_unary_predicate> _Pred> │ │ │ │ │ +321 constexpr iter_difference_t<_Iter> │ │ │ │ │ +322 operator()(_Iter __first, _Sent __last, │ │ │ │ │ +323 _Pred __pred, _Proj __proj = {}) const │ │ │ │ │ +324 { │ │ │ │ │ +325 iter_difference_t<_Iter> __n = 0; │ │ │ │ │ +326 for (; __first != __last; ++__first) │ │ │ │ │ +327 if (_s_t_d_:_:_____i_n_v_o_k_e(__pred, _s_t_d_:_:_____i_n_v_o_k_e(__proj, *__first))) │ │ │ │ │ +328 ++__n; │ │ │ │ │ +329 return __n; │ │ │ │ │ +330 } │ │ │ │ │ +331 │ │ │ │ │ +332 template, _Proj>> │ │ │ │ │ +335 _Pred> │ │ │ │ │ +336 constexpr range_difference_t<_Range> │ │ │ │ │ +337 operator()(_Range&& __r, _Pred __pred, _Proj __proj = {}) const │ │ │ │ │ +338 { │ │ │ │ │ +339 return (*this)(ranges::begin(__r), ranges::end(__r), │ │ │ │ │ +340 _s_t_d_:_:_m_o_v_e(__pred), _s_t_d_:_:_m_o_v_e(__proj)); │ │ │ │ │ +341 } │ │ │ │ │ +342 }; │ │ │ │ │ +343 │ │ │ │ │ +344 inline constexpr __count_if_fn count_if{}; │ │ │ │ │ +345 │ │ │ │ │ +346 // in_in_result, mismatch and search are defined in . │ │ │ │ │ +347 │ │ │ │ │ +348 struct __search_n_fn │ │ │ │ │ +349 { │ │ │ │ │ +350 template _Sent, │ │ │ │ │ +351 typename _Pred = ranges::equal_to, typename _Proj = identity, │ │ │ │ │ +352 typename _Tp _GLIBCXX26_RANGE_ALGO_DEF_VAL_T(_Iter, _Proj)> │ │ │ │ │ +353 requires indirectly_comparable<_Iter, const _Tp*, _Pred, _Proj> │ │ │ │ │ +354 constexpr subrange<_Iter> │ │ │ │ │ +355 operator()(_Iter __first, _Sent __last, iter_difference_t<_Iter> __count, │ │ │ │ │ +356 const _Tp& __value, _Pred __pred = {}, _Proj __proj = {}) const │ │ │ │ │ +357 { │ │ │ │ │ +358 if (__count <= 0) │ │ │ │ │ +359 return {__first, __first}; │ │ │ │ │ +360 │ │ │ │ │ +361 auto __value_comp = [&] (_Rp&& __arg) -> bool { │ │ │ │ │ +362 return _s_t_d_:_:_____i_n_v_o_k_e(__pred, std::forward<_Rp>(__arg), __value); │ │ │ │ │ +363 }; │ │ │ │ │ +364 if (__count == 1) │ │ │ │ │ +365 { │ │ │ │ │ +366 __first = ranges::find_if(_s_t_d_:_:_m_o_v_e(__first), __last, │ │ │ │ │ +367 _s_t_d_:_:_m_o_v_e(__value_comp), │ │ │ │ │ +368 _s_t_d_:_:_m_o_v_e(__proj)); │ │ │ │ │ +369 if (__first == __last) │ │ │ │ │ +370 return {__first, __first}; │ │ │ │ │ +371 else │ │ │ │ │ +372 { │ │ │ │ │ +373 auto __end = __first; │ │ │ │ │ +374 return {__first, ++__end}; │ │ │ │ │ +375 } │ │ │ │ │ +376 } │ │ │ │ │ +377 │ │ │ │ │ +378 if constexpr (sized_sentinel_for<_Sent, _Iter> │ │ │ │ │ +379 && random_access_iterator<_Iter>) │ │ │ │ │ +380 { │ │ │ │ │ +381 auto __tail_size = __last - __first; │ │ │ │ │ +382 auto __remainder = __count; │ │ │ │ │ +383 │ │ │ │ │ +384 while (__remainder <= __tail_size) │ │ │ │ │ +385 { │ │ │ │ │ +386 __first += __remainder; │ │ │ │ │ +387 __tail_size -= __remainder; │ │ │ │ │ +388 auto __backtrack = __first; │ │ │ │ │ +389 while (__value_comp(_s_t_d_:_:_____i_n_v_o_k_e(__proj, *--__backtrack))) │ │ │ │ │ +390 { │ │ │ │ │ +391 if (--__remainder == 0) │ │ │ │ │ +392 return {__first - __count, __first}; │ │ │ │ │ +393 } │ │ │ │ │ +394 __remainder = __count + 1 - (__first - __backtrack); │ │ │ │ │ +395 } │ │ │ │ │ +396 auto __i = __first + __tail_size; │ │ │ │ │ +397 return {__i, __i}; │ │ │ │ │ +398 } │ │ │ │ │ +399 else │ │ │ │ │ +400 { │ │ │ │ │ +401 __first = ranges::find_if(__first, __last, __value_comp, __proj); │ │ │ │ │ +402 while (__first != __last) │ │ │ │ │ +403 { │ │ │ │ │ +404 auto __n = __count; │ │ │ │ │ +405 auto __i = __first; │ │ │ │ │ +406 ++__i; │ │ │ │ │ +407 while (__i != __last && __n != 1 │ │ │ │ │ +408 && __value_comp(_s_t_d_:_:_____i_n_v_o_k_e(__proj, *__i))) │ │ │ │ │ +409 { │ │ │ │ │ +410 ++__i; │ │ │ │ │ +411 --__n; │ │ │ │ │ +412 } │ │ │ │ │ +413 if (__n == 1) │ │ │ │ │ +414 return {__first, __i}; │ │ │ │ │ +415 if (__i == __last) │ │ │ │ │ +416 return {__i, __i}; │ │ │ │ │ +417 __first = ranges::find_if(++__i, __last, __value_comp, __proj); │ │ │ │ │ +418 } │ │ │ │ │ +419 return {__first, __first}; │ │ │ │ │ +420 } │ │ │ │ │ +421 } │ │ │ │ │ +422 │ │ │ │ │ +423 template, _Proj)> │ │ │ │ │ +427 requires indirectly_comparable, const _Tp*, │ │ │ │ │ +428 _Pred, _Proj> │ │ │ │ │ +429 constexpr borrowed_subrange_t<_Range> │ │ │ │ │ +430 operator()(_Range&& __r, range_difference_t<_Range> __count, │ │ │ │ │ +431 const _Tp& __value, _Pred __pred = {}, _Proj __proj = {}) const │ │ │ │ │ +432 { │ │ │ │ │ +433 return (*this)(ranges::begin(__r), ranges::end(__r), │ │ │ │ │ +434 _s_t_d_:_:_m_o_v_e(__count), __value, │ │ │ │ │ +435 _s_t_d_:_:_m_o_v_e(__pred), _s_t_d_:_:_m_o_v_e(__proj)); │ │ │ │ │ +436 } │ │ │ │ │ +437 }; │ │ │ │ │ +438 │ │ │ │ │ +439 inline constexpr __search_n_fn search_n{}; │ │ │ │ │ +440 │ │ │ │ │ +441 struct __find_end_fn │ │ │ │ │ +442 { │ │ │ │ │ +443 template _Sent1, │ │ │ │ │ +444 forward_iterator _Iter2, sentinel_for<_Iter2> _Sent2, │ │ │ │ │ +445 typename _Pred = ranges::equal_to, │ │ │ │ │ +446 typename _Proj1 = identity, typename _Proj2 = identity> │ │ │ │ │ +447 requires indirectly_comparable<_Iter1, _Iter2, _Pred, _Proj1, _Proj2> │ │ │ │ │ +448 constexpr subrange<_Iter1> │ │ │ │ │ +449 operator()(_Iter1 __first1, _Sent1 __last1, │ │ │ │ │ +450 _Iter2 __first2, _Sent2 __last2, _Pred __pred = {}, │ │ │ │ │ +451 _Proj1 __proj1 = {}, _Proj2 __proj2 = {}) const │ │ │ │ │ +452 { │ │ │ │ │ +453 if constexpr (bidirectional_iterator<_Iter1> │ │ │ │ │ +454 && bidirectional_iterator<_Iter2>) │ │ │ │ │ +455 { │ │ │ │ │ +456 auto __i1 = ranges::next(__first1, __last1); │ │ │ │ │ +457 auto __i2 = ranges::next(__first2, __last2); │ │ │ │ │ +458 auto __rresult │ │ │ │ │ +459 = ranges::search(reverse_iterator<_Iter1>{__i1}, │ │ │ │ │ +460 reverse_iterator<_Iter1>{__first1}, │ │ │ │ │ +461 reverse_iterator<_Iter2>{__i2}, │ │ │ │ │ +462 reverse_iterator<_Iter2>{__first2}, │ │ │ │ │ +463 _s_t_d_:_:_m_o_v_e(__pred), │ │ │ │ │ +464 _s_t_d_:_:_m_o_v_e(__proj1), _s_t_d_:_:_m_o_v_e(__proj2)); │ │ │ │ │ +465 auto __result_first = ranges::end(__rresult).base(); │ │ │ │ │ +466 auto __result_last = ranges::begin(__rresult).base(); │ │ │ │ │ +467 if (__result_last == __first1) │ │ │ │ │ +468 return {__i1, __i1}; │ │ │ │ │ +469 else │ │ │ │ │ +470 return {__result_first, __result_last}; │ │ │ │ │ +471 } │ │ │ │ │ +472 else │ │ │ │ │ +473 { │ │ │ │ │ +474 auto __i = ranges::next(__first1, __last1); │ │ │ │ │ +475 if (__first2 == __last2) │ │ │ │ │ +476 return {__i, __i}; │ │ │ │ │ +477 │ │ │ │ │ +478 auto __result_begin = __i; │ │ │ │ │ +479 auto __result_end = __i; │ │ │ │ │ +480 for (;;) │ │ │ │ │ +481 { │ │ │ │ │ +482 auto __new_range = ranges::search(__first1, __last1, │ │ │ │ │ +483 __first2, __last2, │ │ │ │ │ +484 __pred, __proj1, __proj2); │ │ │ │ │ +485 auto __new_result_begin = ranges::begin(__new_range); │ │ │ │ │ +486 auto __new_result_end = ranges::end(__new_range); │ │ │ │ │ +487 if (__new_result_begin == __last1) │ │ │ │ │ +488 return {__result_begin, __result_end}; │ │ │ │ │ +489 else │ │ │ │ │ +490 { │ │ │ │ │ +491 __result_begin = __new_result_begin; │ │ │ │ │ +492 __result_end = __new_result_end; │ │ │ │ │ +493 __first1 = __result_begin; │ │ │ │ │ +494 ++__first1; │ │ │ │ │ +495 } │ │ │ │ │ +496 } │ │ │ │ │ +497 } │ │ │ │ │ +498 } │ │ │ │ │ +499 │ │ │ │ │ +500 template │ │ │ │ │ +503 requires indirectly_comparable, iterator_t<_Range2>, │ │ │ │ │ +504 _Pred, _Proj1, _Proj2> │ │ │ │ │ +505 constexpr borrowed_subrange_t<_Range1> │ │ │ │ │ +506 operator()(_Range1&& __r1, _Range2&& __r2, _Pred __pred = {}, │ │ │ │ │ +507 _Proj1 __proj1 = {}, _Proj2 __proj2 = {}) const │ │ │ │ │ +508 { │ │ │ │ │ +509 return (*this)(ranges::begin(__r1), ranges::end(__r1), │ │ │ │ │ +510 ranges::begin(__r2), ranges::end(__r2), │ │ │ │ │ +511 _s_t_d_:_:_m_o_v_e(__pred), │ │ │ │ │ +512 _s_t_d_:_:_m_o_v_e(__proj1), _s_t_d_:_:_m_o_v_e(__proj2)); │ │ │ │ │ +513 } │ │ │ │ │ +514 }; │ │ │ │ │ +515 │ │ │ │ │ +516 inline constexpr __find_end_fn find_end{}; │ │ │ │ │ +517 │ │ │ │ │ +518 // adjacent_find is defined in . │ │ │ │ │ +519 │ │ │ │ │ +520 struct __is_permutation_fn │ │ │ │ │ +521 { │ │ │ │ │ +522 template _Sent1, │ │ │ │ │ +523 forward_iterator _Iter2, sentinel_for<_Iter2> _Sent2, │ │ │ │ │ +524 typename _Proj1 = identity, typename _Proj2 = identity, │ │ │ │ │ +525 indirect_equivalence_relation, │ │ │ │ │ +526 projected<_Iter2, _Proj2>> _Pred │ │ │ │ │ +527 = ranges::equal_to> │ │ │ │ │ +528 constexpr bool │ │ │ │ │ +529 operator()(_Iter1 __first1, _Sent1 __last1, │ │ │ │ │ +530 _Iter2 __first2, _Sent2 __last2, _Pred __pred = {}, │ │ │ │ │ +531 _Proj1 __proj1 = {}, _Proj2 __proj2 = {}) const │ │ │ │ │ +532 { │ │ │ │ │ +533 constexpr bool __sized_iters │ │ │ │ │ +534 = (sized_sentinel_for<_Sent1, _Iter1> │ │ │ │ │ +535 && sized_sentinel_for<_Sent2, _Iter2>); │ │ │ │ │ +536 if constexpr (__sized_iters) │ │ │ │ │ +537 { │ │ │ │ │ +538 auto __d1 = ranges::distance(__first1, __last1); │ │ │ │ │ +539 auto __d2 = ranges::distance(__first2, __last2); │ │ │ │ │ +540 if (__d1 != __d2) │ │ │ │ │ +541 return false; │ │ │ │ │ +542 } │ │ │ │ │ +543 │ │ │ │ │ +544 // Efficiently compare identical prefixes: O(N) if sequences │ │ │ │ │ +545 // have the same elements in the same order. │ │ │ │ │ +546 for (; __first1 != __last1 && __first2 != __last2; │ │ │ │ │ +547 ++__first1, (void)++__first2) │ │ │ │ │ +548 if (!(bool)_s_t_d_:_:_____i_n_v_o_k_e(__pred, │ │ │ │ │ +549 _s_t_d_:_:_____i_n_v_o_k_e(__proj1, *__first1), │ │ │ │ │ +550 _s_t_d_:_:_____i_n_v_o_k_e(__proj2, *__first2))) │ │ │ │ │ +551 break; │ │ │ │ │ +552 │ │ │ │ │ +553 if constexpr (__sized_iters) │ │ │ │ │ +554 { │ │ │ │ │ +555 if (__first1 == __last1) │ │ │ │ │ +556 return true; │ │ │ │ │ +557 } │ │ │ │ │ +558 else │ │ │ │ │ +559 { │ │ │ │ │ +560 auto __d1 = ranges::distance(__first1, __last1); │ │ │ │ │ +561 auto __d2 = ranges::distance(__first2, __last2); │ │ │ │ │ +562 if (__d1 == 0 && __d2 == 0) │ │ │ │ │ +563 return true; │ │ │ │ │ +564 if (__d1 != __d2) │ │ │ │ │ +565 return false; │ │ │ │ │ +566 } │ │ │ │ │ +567 │ │ │ │ │ +568 for (auto __scan = __first1; __scan != __last1; ++__scan) │ │ │ │ │ +569 { │ │ │ │ │ +570 auto&& __scan_deref = *__scan; │ │ │ │ │ +571 auto&& __proj_scan = │ │ │ │ │ +572 _s_t_d_:_:_____i_n_v_o_k_e(__proj1, _s_t_d_:_:_f_o_r_w_a_r_d(__scan_deref)); │ │ │ │ │ +573 auto __comp_scan = [&] (_Tp&& __arg) -> bool { │ │ │ │ │ +574 return _s_t_d_:_:_____i_n_v_o_k_e(__pred, │ │ │ │ │ +575 _s_t_d_:_:_f_o_r_w_a_r_d(__proj_scan), │ │ │ │ │ +576 std::forward<_Tp>(__arg)); │ │ │ │ │ +577 }; │ │ │ │ │ +578 if (__scan != ranges::find_if(__first1, __scan, │ │ │ │ │ +579 __comp_scan, __proj1)) │ │ │ │ │ +580 continue; // We've seen this one before. │ │ │ │ │ +581 │ │ │ │ │ +582 auto __matches = ranges::count_if(__first2, __last2, │ │ │ │ │ +583 __comp_scan, __proj2); │ │ │ │ │ +584 if (__matches == 0 │ │ │ │ │ +585 || ranges::count_if(__scan, __last1, │ │ │ │ │ +586 __comp_scan, __proj1) != __matches) │ │ │ │ │ +587 return false; │ │ │ │ │ +588 } │ │ │ │ │ +589 return true; │ │ │ │ │ +590 } │ │ │ │ │ +591 │ │ │ │ │ +592 template, _Proj1>, │ │ │ │ │ +596 projected, _Proj2>> _Pred = ranges::equal_to> │ │ │ │ │ +597 constexpr bool │ │ │ │ │ +598 operator()(_Range1&& __r1, _Range2&& __r2, _Pred __pred = {}, │ │ │ │ │ +599 _Proj1 __proj1 = {}, _Proj2 __proj2 = {}) const │ │ │ │ │ +600 { │ │ │ │ │ +601 // _GLIBCXX_RESOLVE_LIB_DEFECTS │ │ │ │ │ +602 // 3560. ranges::is_permutation should short-circuit for sized_ranges │ │ │ │ │ +603 if constexpr (sized_range<_Range1>) │ │ │ │ │ +604 if constexpr (sized_range<_Range2>) │ │ │ │ │ +605 if (ranges::distance(__r1) != ranges::distance(__r2)) │ │ │ │ │ +606 return false; │ │ │ │ │ +607 │ │ │ │ │ +608 return (*this)(ranges::begin(__r1), ranges::end(__r1), │ │ │ │ │ +609 ranges::begin(__r2), ranges::end(__r2), │ │ │ │ │ +610 _s_t_d_:_:_m_o_v_e(__pred), │ │ │ │ │ +611 _s_t_d_:_:_m_o_v_e(__proj1), _s_t_d_:_:_m_o_v_e(__proj2)); │ │ │ │ │ +612 } │ │ │ │ │ +613 }; │ │ │ │ │ +614 │ │ │ │ │ +615 inline constexpr __is_permutation_fn is_permutation{}; │ │ │ │ │ +616 │ │ │ │ │ +617 template │ │ │ │ │ +618 using copy_if_result = in_out_result<_Iter, _Out>; │ │ │ │ │ +619 │ │ │ │ │ +620 struct __copy_if_fn │ │ │ │ │ +621 { │ │ │ │ │ +622 template _Sent, │ │ │ │ │ +623 weakly_incrementable _Out, typename _Proj = identity, │ │ │ │ │ +624 indirect_unary_predicate> _Pred> │ │ │ │ │ +625 requires indirectly_copyable<_Iter, _Out> │ │ │ │ │ +626 constexpr copy_if_result<_Iter, _Out> │ │ │ │ │ +627 operator()(_Iter __first, _Sent __last, _Out __result, │ │ │ │ │ +628 _Pred __pred, _Proj __proj = {}) const │ │ │ │ │ +629 { │ │ │ │ │ +630 for (; __first != __last; ++__first) │ │ │ │ │ +631 if (_s_t_d_:_:_____i_n_v_o_k_e(__pred, _s_t_d_:_:_____i_n_v_o_k_e(__proj, *__first))) │ │ │ │ │ +632 { │ │ │ │ │ +633 *__result = *__first; │ │ │ │ │ +634 ++__result; │ │ │ │ │ +635 } │ │ │ │ │ +636 return {_s_t_d_:_:_m_o_v_e(__first), _s_t_d_:_:_m_o_v_e(__result)}; │ │ │ │ │ +637 } │ │ │ │ │ +638 │ │ │ │ │ +639 template, _Proj>> │ │ │ │ │ +642 _Pred> │ │ │ │ │ +643 requires indirectly_copyable, _Out> │ │ │ │ │ +644 constexpr copy_if_result, _Out> │ │ │ │ │ +645 operator()(_Range&& __r, _Out __result, │ │ │ │ │ +646 _Pred __pred, _Proj __proj = {}) const │ │ │ │ │ +647 { │ │ │ │ │ +648 return (*this)(ranges::begin(__r), ranges::end(__r), │ │ │ │ │ +649 _s_t_d_:_:_m_o_v_e(__result), │ │ │ │ │ +650 _s_t_d_:_:_m_o_v_e(__pred), _s_t_d_:_:_m_o_v_e(__proj)); │ │ │ │ │ +651 } │ │ │ │ │ +652 }; │ │ │ │ │ +653 │ │ │ │ │ +654 inline constexpr __copy_if_fn copy_if{}; │ │ │ │ │ +655 │ │ │ │ │ +656 template │ │ │ │ │ +657 using swap_ranges_result = in_in_result<_Iter1, _Iter2>; │ │ │ │ │ +658 │ │ │ │ │ +659 struct __swap_ranges_fn │ │ │ │ │ +660 { │ │ │ │ │ +661 template _Sent1, │ │ │ │ │ +662 input_iterator _Iter2, sentinel_for<_Iter2> _Sent2> │ │ │ │ │ +663 requires indirectly_swappable<_Iter1, _Iter2> │ │ │ │ │ +664 constexpr swap_ranges_result<_Iter1, _Iter2> │ │ │ │ │ +665 operator()(_Iter1 __first1, _Sent1 __last1, │ │ │ │ │ +666 _Iter2 __first2, _Sent2 __last2) const │ │ │ │ │ +667 { │ │ │ │ │ +668 for (; __first1 != __last1 && __first2 != __last2; │ │ │ │ │ +669 ++__first1, (void)++__first2) │ │ │ │ │ +670 ranges::iter_swap(__first1, __first2); │ │ │ │ │ +671 return {_s_t_d_:_:_m_o_v_e(__first1), _s_t_d_:_:_m_o_v_e(__first2)}; │ │ │ │ │ +672 } │ │ │ │ │ +673 │ │ │ │ │ +674 template │ │ │ │ │ +675 requires indirectly_swappable, iterator_t<_Range2>> │ │ │ │ │ +676 constexpr swap_ranges_result, │ │ │ │ │ +677 borrowed_iterator_t<_Range2>> │ │ │ │ │ +678 operator()(_Range1&& __r1, _Range2&& __r2) const │ │ │ │ │ +679 { │ │ │ │ │ +680 return (*this)(ranges::begin(__r1), ranges::end(__r1), │ │ │ │ │ +681 ranges::begin(__r2), ranges::end(__r2)); │ │ │ │ │ +682 } │ │ │ │ │ +683 }; │ │ │ │ │ +684 │ │ │ │ │ +685 inline constexpr __swap_ranges_fn swap_ranges{}; │ │ │ │ │ +686 │ │ │ │ │ +687 template │ │ │ │ │ +688 using unary_transform_result = in_out_result<_Iter, _Out>; │ │ │ │ │ +689 │ │ │ │ │ +690 template │ │ │ │ │ +691 struct in_in_out_result │ │ │ │ │ +692 { │ │ │ │ │ +693 [[no_unique_address]] _Iter1 in1; │ │ │ │ │ +694 [[no_unique_address]] _Iter2 in2; │ │ │ │ │ +695 [[no_unique_address]] _Out out; │ │ │ │ │ +696 │ │ │ │ │ +697 template │ │ │ │ │ +698 requires convertible_to │ │ │ │ │ +699 && convertible_to │ │ │ │ │ +700 && convertible_to │ │ │ │ │ +701 constexpr │ │ │ │ │ +702 operator in_in_out_result<_IIter1, _IIter2, _OOut>() const & │ │ │ │ │ +703 { return {in1, in2, out}; } │ │ │ │ │ +704 │ │ │ │ │ +705 template │ │ │ │ │ +706 requires convertible_to<_Iter1, _IIter1> │ │ │ │ │ +707 && convertible_to<_Iter2, _IIter2> │ │ │ │ │ +708 && convertible_to<_Out, _OOut> │ │ │ │ │ +709 constexpr │ │ │ │ │ +710 operator in_in_out_result<_IIter1, _IIter2, _OOut>() && │ │ │ │ │ +711 { return {_s_t_d_:_:_m_o_v_e(in1), _s_t_d_:_:_m_o_v_e(in2), _s_t_d_:_:_m_o_v_e(out)}; } │ │ │ │ │ +712 }; │ │ │ │ │ +713 │ │ │ │ │ +714 template │ │ │ │ │ +715 using binary_transform_result = in_in_out_result<_Iter1, _Iter2, _Out>; │ │ │ │ │ +716 │ │ │ │ │ +717 struct __transform_fn │ │ │ │ │ +718 { │ │ │ │ │ +719 template _Sent, │ │ │ │ │ +720 weakly_incrementable _Out, │ │ │ │ │ +721 copy_constructible _Fp, typename _Proj = identity> │ │ │ │ │ +722 requires indirectly_writable<_Out, │ │ │ │ │ +723 indirect_result_t<_Fp&, │ │ │ │ │ +724 projected<_Iter, _Proj>>> │ │ │ │ │ +725 constexpr unary_transform_result<_Iter, _Out> │ │ │ │ │ +726 operator()(_Iter __first1, _Sent __last1, _Out __result, │ │ │ │ │ +727 _Fp __op, _Proj __proj = {}) const │ │ │ │ │ +728 { │ │ │ │ │ +729 for (; __first1 != __last1; ++__first1, (void)++__result) │ │ │ │ │ +730 *__result = _s_t_d_:_:_____i_n_v_o_k_e(__op, _s_t_d_:_:_____i_n_v_o_k_e(__proj, *__first1)); │ │ │ │ │ +731 return {_s_t_d_:_:_m_o_v_e(__first1), _s_t_d_:_:_m_o_v_e(__result)}; │ │ │ │ │ +732 } │ │ │ │ │ +733 │ │ │ │ │ +734 template │ │ │ │ │ +736 requires indirectly_writable<_Out, │ │ │ │ │ +737 indirect_result_t<_Fp&, │ │ │ │ │ +738 projected, _Proj>>> │ │ │ │ │ +739 constexpr unary_transform_result, _Out> │ │ │ │ │ +740 operator()(_Range&& __r, _Out __result, _Fp __op, _Proj __proj = {}) const │ │ │ │ │ +741 { │ │ │ │ │ +742 return (*this)(ranges::begin(__r), ranges::end(__r), │ │ │ │ │ +743 _s_t_d_:_:_m_o_v_e(__result), │ │ │ │ │ +744 _s_t_d_:_:_m_o_v_e(__op), _s_t_d_:_:_m_o_v_e(__proj)); │ │ │ │ │ +745 } │ │ │ │ │ +746 │ │ │ │ │ +747 template _Sent1, │ │ │ │ │ +748 input_iterator _Iter2, sentinel_for<_Iter2> _Sent2, │ │ │ │ │ +749 weakly_incrementable _Out, copy_constructible _Fp, │ │ │ │ │ +750 typename _Proj1 = identity, typename _Proj2 = identity> │ │ │ │ │ +751 requires indirectly_writable<_Out, │ │ │ │ │ +752 indirect_result_t<_Fp&, │ │ │ │ │ +753 projected<_Iter1, _Proj1>, │ │ │ │ │ +754 projected<_Iter2, _Proj2>>> │ │ │ │ │ +755 constexpr binary_transform_result<_Iter1, _Iter2, _Out> │ │ │ │ │ +756 operator()(_Iter1 __first1, _Sent1 __last1, │ │ │ │ │ +757 _Iter2 __first2, _Sent2 __last2, │ │ │ │ │ +758 _Out __result, _Fp __binary_op, │ │ │ │ │ +759 _Proj1 __proj1 = {}, _Proj2 __proj2 = {}) const │ │ │ │ │ +760 { │ │ │ │ │ +761 for (; __first1 != __last1 && __first2 != __last2; │ │ │ │ │ +762 ++__first1, (void)++__first2, ++__result) │ │ │ │ │ +763 *__result = _s_t_d_:_:_____i_n_v_o_k_e(__binary_op, │ │ │ │ │ +764 _s_t_d_:_:_____i_n_v_o_k_e(__proj1, *__first1), │ │ │ │ │ +765 _s_t_d_:_:_____i_n_v_o_k_e(__proj2, *__first2)); │ │ │ │ │ +766 return {_s_t_d_:_:_m_o_v_e(__first1), _s_t_d_:_:_m_o_v_e(__first2), _s_t_d_:_:_m_o_v_e(__result)}; │ │ │ │ │ +767 } │ │ │ │ │ +768 │ │ │ │ │ +769 template │ │ │ │ │ +772 requires indirectly_writable<_Out, │ │ │ │ │ +773 indirect_result_t<_Fp&, │ │ │ │ │ +774 projected, _Proj1>, │ │ │ │ │ +775 projected, _Proj2>>> │ │ │ │ │ +776 constexpr binary_transform_result, │ │ │ │ │ +777 borrowed_iterator_t<_Range2>, _Out> │ │ │ │ │ +778 operator()(_Range1&& __r1, _Range2&& __r2, _Out __result, _Fp __binary_op, │ │ │ │ │ +779 _Proj1 __proj1 = {}, _Proj2 __proj2 = {}) const │ │ │ │ │ +780 { │ │ │ │ │ +781 return (*this)(ranges::begin(__r1), ranges::end(__r1), │ │ │ │ │ +782 ranges::begin(__r2), ranges::end(__r2), │ │ │ │ │ +783 _s_t_d_:_:_m_o_v_e(__result), _s_t_d_:_:_m_o_v_e(__binary_op), │ │ │ │ │ +784 _s_t_d_:_:_m_o_v_e(__proj1), _s_t_d_:_:_m_o_v_e(__proj2)); │ │ │ │ │ +785 } │ │ │ │ │ +786 }; │ │ │ │ │ +787 │ │ │ │ │ +788 inline constexpr __transform_fn transform{}; │ │ │ │ │ +789 │ │ │ │ │ +790 struct __replace_fn │ │ │ │ │ +791 { │ │ │ │ │ +792 template _Sent, │ │ │ │ │ +793 typename _Proj = identity, │ │ │ │ │ +794 typename _Tp1 _GLIBCXX26_RANGE_ALGO_DEF_VAL_T(_Iter, _Proj), │ │ │ │ │ +795 typename _Tp2 _GLIBCXX26_DEF_VAL_T(_Tp1)> │ │ │ │ │ +796 requires indirectly_writable<_Iter, const _Tp2&> │ │ │ │ │ +797 && indirect_binary_predicate, │ │ │ │ │ +798 const _Tp1*> │ │ │ │ │ +799 constexpr _Iter │ │ │ │ │ +800 operator()(_Iter __first, _Sent __last, │ │ │ │ │ +801 const _Tp1& __old_value, const _Tp2& __new_value, │ │ │ │ │ +802 _Proj __proj = {}) const │ │ │ │ │ +803 { │ │ │ │ │ +804 for (; __first != __last; ++__first) │ │ │ │ │ +805 if (_s_t_d_:_:_____i_n_v_o_k_e(__proj, *__first) == __old_value) │ │ │ │ │ +806 *__first = __new_value; │ │ │ │ │ +807 return __first; │ │ │ │ │ +808 } │ │ │ │ │ +809 │ │ │ │ │ +810 template, _Proj), │ │ │ │ │ +813 typename _Tp2 _GLIBCXX26_DEF_VAL_T(_Tp1)> │ │ │ │ │ +814 requires indirectly_writable, const _Tp2&> │ │ │ │ │ +815 && indirect_binary_predicate, _Proj>, │ │ │ │ │ +817 const _Tp1*> │ │ │ │ │ +818 constexpr borrowed_iterator_t<_Range> │ │ │ │ │ +819 operator()(_Range&& __r, │ │ │ │ │ +820 const _Tp1& __old_value, const _Tp2& __new_value, │ │ │ │ │ +821 _Proj __proj = {}) const │ │ │ │ │ +822 { │ │ │ │ │ +823 return (*this)(ranges::begin(__r), ranges::end(__r), │ │ │ │ │ +824 __old_value, __new_value, _s_t_d_:_:_m_o_v_e(__proj)); │ │ │ │ │ +825 } │ │ │ │ │ +826 }; │ │ │ │ │ +827 │ │ │ │ │ +828 inline constexpr __replace_fn replace{}; │ │ │ │ │ +829 │ │ │ │ │ +830 struct __replace_if_fn │ │ │ │ │ +831 { │ │ │ │ │ +832 template _Sent, │ │ │ │ │ +833 typename _Proj = identity, │ │ │ │ │ +834 typename _Tp _GLIBCXX26_RANGE_ALGO_DEF_VAL_T(_Iter, _Proj), │ │ │ │ │ +835 indirect_unary_predicate> _Pred> │ │ │ │ │ +836 requires indirectly_writable<_Iter, const _Tp&> │ │ │ │ │ +837 constexpr _Iter │ │ │ │ │ +838 operator()(_Iter __first, _Sent __last, │ │ │ │ │ +839 _Pred __pred, const _Tp& __new_value, _Proj __proj = {}) const │ │ │ │ │ +840 { │ │ │ │ │ +841 for (; __first != __last; ++__first) │ │ │ │ │ +842 if (_s_t_d_:_:_____i_n_v_o_k_e(__pred, _s_t_d_:_:_____i_n_v_o_k_e(__proj, *__first))) │ │ │ │ │ +843 *__first = __new_value; │ │ │ │ │ +844 return _s_t_d_:_:_m_o_v_e(__first); │ │ │ │ │ +845 } │ │ │ │ │ +846 │ │ │ │ │ +847 template, _Proj), │ │ │ │ │ +850 indirect_unary_predicate, _Proj>> │ │ │ │ │ +851 _Pred> │ │ │ │ │ +852 requires indirectly_writable, const _Tp&> │ │ │ │ │ +853 constexpr borrowed_iterator_t<_Range> │ │ │ │ │ +854 operator()(_Range&& __r, │ │ │ │ │ +855 _Pred __pred, const _Tp& __new_value, _Proj __proj = {}) const │ │ │ │ │ +856 { │ │ │ │ │ +857 return (*this)(ranges::begin(__r), ranges::end(__r), │ │ │ │ │ +858 _s_t_d_:_:_m_o_v_e(__pred), __new_value, _s_t_d_:_:_m_o_v_e(__proj)); │ │ │ │ │ +859 } │ │ │ │ │ +860 }; │ │ │ │ │ +861 │ │ │ │ │ +862 inline constexpr __replace_if_fn replace_if{}; │ │ │ │ │ +863 │ │ │ │ │ +864 template │ │ │ │ │ +865 using replace_copy_result = in_out_result<_Iter, _Out>; │ │ │ │ │ +866 │ │ │ │ │ +867 struct __replace_copy_fn │ │ │ │ │ +868 { │ │ │ │ │ +869 template _Sent, │ │ │ │ │ +870 typename _Out, typename _Proj = identity, │ │ │ │ │ +871 typename _Tp1 _GLIBCXX26_RANGE_ALGO_DEF_VAL_T(_Iter, _Proj), │ │ │ │ │ +872 typename _Tp2 _GLIBCXX26_DEF_VAL_T(iter_value_t<_Out>)> │ │ │ │ │ +873 requires indirectly_copyable<_Iter, _Out> │ │ │ │ │ +874 && indirect_binary_predicate, const _Tp1*> │ │ │ │ │ +876 && output_iterator<_Out, const _Tp2&> │ │ │ │ │ +877 constexpr replace_copy_result<_Iter, _Out> │ │ │ │ │ +878 operator()(_Iter __first, _Sent __last, _Out __result, │ │ │ │ │ +879 const _Tp1& __old_value, const _Tp2& __new_value, │ │ │ │ │ +880 _Proj __proj = {}) const │ │ │ │ │ +881 { │ │ │ │ │ +882 for (; __first != __last; ++__first, (void)++__result) │ │ │ │ │ +883 if (_s_t_d_:_:_____i_n_v_o_k_e(__proj, *__first) == __old_value) │ │ │ │ │ +884 *__result = __new_value; │ │ │ │ │ +885 else │ │ │ │ │ +886 *__result = *__first; │ │ │ │ │ +887 return {_s_t_d_:_:_m_o_v_e(__first), _s_t_d_:_:_m_o_v_e(__result)}; │ │ │ │ │ +888 } │ │ │ │ │ +889 │ │ │ │ │ +890 template, _Proj), │ │ │ │ │ +894 typename _Tp2 _GLIBCXX26_DEF_VAL_T(iter_value_t<_Out>)> │ │ │ │ │ +895 requires indirectly_copyable, _Out> │ │ │ │ │ +896 && indirect_binary_predicate, _Proj>, │ │ │ │ │ +898 const _Tp1*> │ │ │ │ │ +899 && output_iterator<_Out, const _Tp2&> │ │ │ │ │ +900 constexpr replace_copy_result, _Out> │ │ │ │ │ +901 operator()(_Range&& __r, _Out __result, │ │ │ │ │ +902 const _Tp1& __old_value, const _Tp2& __new_value, │ │ │ │ │ +903 _Proj __proj = {}) const │ │ │ │ │ +904 { │ │ │ │ │ +905 return (*this)(ranges::begin(__r), ranges::end(__r), │ │ │ │ │ +906 _s_t_d_:_:_m_o_v_e(__result), __old_value, │ │ │ │ │ +907 __new_value, _s_t_d_:_:_m_o_v_e(__proj)); │ │ │ │ │ +908 } │ │ │ │ │ +909 }; │ │ │ │ │ +910 │ │ │ │ │ +911 inline constexpr __replace_copy_fn replace_copy{}; │ │ │ │ │ +912 │ │ │ │ │ +913 template │ │ │ │ │ +914 using replace_copy_if_result = in_out_result<_Iter, _Out>; │ │ │ │ │ +915 │ │ │ │ │ +916 struct __replace_copy_if_fn │ │ │ │ │ +917 { │ │ │ │ │ +918 template _Sent, │ │ │ │ │ +919 typename _Out, │ │ │ │ │ +920 typename _Tp _GLIBCXX26_DEF_VAL_T(iter_value_t<_Out>), │ │ │ │ │ +921 typename _Proj = identity, │ │ │ │ │ +922 indirect_unary_predicate> _Pred> │ │ │ │ │ +923 requires indirectly_copyable<_Iter, _Out> │ │ │ │ │ +924 && output_iterator<_Out, const _Tp&> │ │ │ │ │ +925 constexpr replace_copy_if_result<_Iter, _Out> │ │ │ │ │ +926 operator()(_Iter __first, _Sent __last, _Out __result, │ │ │ │ │ +927 _Pred __pred, const _Tp& __new_value, _Proj __proj = {}) const │ │ │ │ │ +928 { │ │ │ │ │ +929 for (; __first != __last; ++__first, (void)++__result) │ │ │ │ │ +930 if (_s_t_d_:_:_____i_n_v_o_k_e(__pred, _s_t_d_:_:_____i_n_v_o_k_e(__proj, *__first))) │ │ │ │ │ +931 *__result = __new_value; │ │ │ │ │ +932 else │ │ │ │ │ +933 *__result = *__first; │ │ │ │ │ +934 return {_s_t_d_:_:_m_o_v_e(__first), _s_t_d_:_:_m_o_v_e(__result)}; │ │ │ │ │ +935 } │ │ │ │ │ +936 │ │ │ │ │ +937 template), │ │ │ │ │ +940 typename _Proj = identity, │ │ │ │ │ +941 indirect_unary_predicate, _Proj>> │ │ │ │ │ +942 _Pred> │ │ │ │ │ +943 requires indirectly_copyable, _Out> │ │ │ │ │ +944 && output_iterator<_Out, const _Tp&> │ │ │ │ │ +945 constexpr replace_copy_if_result, _Out> │ │ │ │ │ +946 operator()(_Range&& __r, _Out __result, │ │ │ │ │ +947 _Pred __pred, const _Tp& __new_value, _Proj __proj = {}) const │ │ │ │ │ +948 { │ │ │ │ │ +949 return (*this)(ranges::begin(__r), ranges::end(__r), │ │ │ │ │ +950 _s_t_d_:_:_m_o_v_e(__result), _s_t_d_:_:_m_o_v_e(__pred), │ │ │ │ │ +951 __new_value, _s_t_d_:_:_m_o_v_e(__proj)); │ │ │ │ │ +952 } │ │ │ │ │ +953 }; │ │ │ │ │ +954 │ │ │ │ │ +955 inline constexpr __replace_copy_if_fn replace_copy_if{}; │ │ │ │ │ +956 │ │ │ │ │ +957 struct __generate_n_fn │ │ │ │ │ +958 { │ │ │ │ │ +959 template │ │ │ │ │ +960 requires invocable<_Fp&> │ │ │ │ │ +961 && indirectly_writable<_Out, invoke_result_t<_Fp&>> │ │ │ │ │ +962 constexpr _Out │ │ │ │ │ +963 operator()(_Out __first, iter_difference_t<_Out> __n, _Fp __gen) const │ │ │ │ │ +964 { │ │ │ │ │ +965 for (; __n > 0; --__n, (void)++__first) │ │ │ │ │ +966 *__first = _s_t_d_:_:_____i_n_v_o_k_e(__gen); │ │ │ │ │ +967 return __first; │ │ │ │ │ +968 } │ │ │ │ │ +969 }; │ │ │ │ │ +970 │ │ │ │ │ +971 inline constexpr __generate_n_fn generate_n{}; │ │ │ │ │ +972 │ │ │ │ │ +973 struct __generate_fn │ │ │ │ │ +974 { │ │ │ │ │ +975 template _Sent, │ │ │ │ │ +976 copy_constructible _Fp> │ │ │ │ │ +977 requires invocable<_Fp&> │ │ │ │ │ +978 && indirectly_writable<_Out, invoke_result_t<_Fp&>> │ │ │ │ │ +979 constexpr _Out │ │ │ │ │ +980 operator()(_Out __first, _Sent __last, _Fp __gen) const │ │ │ │ │ +981 { │ │ │ │ │ +982 for (; __first != __last; ++__first) │ │ │ │ │ +983 *__first = _s_t_d_:_:_____i_n_v_o_k_e(__gen); │ │ │ │ │ +984 return __first; │ │ │ │ │ +985 } │ │ │ │ │ +986 │ │ │ │ │ +987 template │ │ │ │ │ +988 requires invocable<_Fp&> && output_range<_Range, invoke_result_t<_Fp&>> │ │ │ │ │ +989 constexpr borrowed_iterator_t<_Range> │ │ │ │ │ +990 operator()(_Range&& __r, _Fp __gen) const │ │ │ │ │ +991 { │ │ │ │ │ +992 return (*this)(ranges::begin(__r), ranges::end(__r), _s_t_d_:_:_m_o_v_e(__gen)); │ │ │ │ │ +993 } │ │ │ │ │ +994 }; │ │ │ │ │ +995 │ │ │ │ │ +996 inline constexpr __generate_fn generate{}; │ │ │ │ │ +997 │ │ │ │ │ +998 struct __remove_if_fn │ │ │ │ │ +999 { │ │ │ │ │ +1000 template _Sent, │ │ │ │ │ +1001 typename _Proj = identity, │ │ │ │ │ +1002 indirect_unary_predicate> _Pred> │ │ │ │ │ +1003 constexpr subrange<_Iter> │ │ │ │ │ +1004 operator()(_Iter __first, _Sent __last, │ │ │ │ │ +1005 _Pred __pred, _Proj __proj = {}) const │ │ │ │ │ +1006 { │ │ │ │ │ +1007 __first = ranges::find_if(__first, __last, __pred, __proj); │ │ │ │ │ +1008 if (__first == __last) │ │ │ │ │ +1009 return {__first, __first}; │ │ │ │ │ +1010 │ │ │ │ │ +1011 auto __result = __first; │ │ │ │ │ +1012 ++__first; │ │ │ │ │ +1013 for (; __first != __last; ++__first) │ │ │ │ │ +1014 if (!_s_t_d_:_:_____i_n_v_o_k_e(__pred, _s_t_d_:_:_____i_n_v_o_k_e(__proj, *__first))) │ │ │ │ │ +1015 { │ │ │ │ │ +1016 *__result = _s_t_d_:_:_m_o_v_e(*__first); │ │ │ │ │ +1017 ++__result; │ │ │ │ │ +1018 } │ │ │ │ │ +1019 │ │ │ │ │ +1020 return {__result, __first}; │ │ │ │ │ +1021 } │ │ │ │ │ +1022 │ │ │ │ │ +1023 template, _Proj>> │ │ │ │ │ +1025 _Pred> │ │ │ │ │ +1026 requires permutable> │ │ │ │ │ +1027 constexpr borrowed_subrange_t<_Range> │ │ │ │ │ +1028 operator()(_Range&& __r, _Pred __pred, _Proj __proj = {}) const │ │ │ │ │ +1029 { │ │ │ │ │ +1030 return (*this)(ranges::begin(__r), ranges::end(__r), │ │ │ │ │ +1031 _s_t_d_:_:_m_o_v_e(__pred), _s_t_d_:_:_m_o_v_e(__proj)); │ │ │ │ │ +1032 } │ │ │ │ │ +1033 }; │ │ │ │ │ +1034 │ │ │ │ │ +1035 inline constexpr __remove_if_fn remove_if{}; │ │ │ │ │ +1036 │ │ │ │ │ +1037 struct __remove_fn │ │ │ │ │ +1038 { │ │ │ │ │ +1039 template _Sent, │ │ │ │ │ +1040 typename _Proj = identity, │ │ │ │ │ +1041 typename _Tp _GLIBCXX26_RANGE_ALGO_DEF_VAL_T(_Iter, _Proj)> │ │ │ │ │ +1042 requires indirect_binary_predicate, │ │ │ │ │ +1044 const _Tp*> │ │ │ │ │ +1045 constexpr subrange<_Iter> │ │ │ │ │ +1046 operator()(_Iter __first, _Sent __last, │ │ │ │ │ +1047 const _Tp& __value, _Proj __proj = {}) const │ │ │ │ │ +1048 { │ │ │ │ │ +1049 auto __pred = [&] (auto&& __arg) -> bool { │ │ │ │ │ +1050 return std::forward(__arg) == __value; │ │ │ │ │ +1051 }; │ │ │ │ │ +1052 return ranges::remove_if(__first, __last, │ │ │ │ │ +1053 _s_t_d_:_:_m_o_v_e(__pred), _s_t_d_:_:_m_o_v_e(__proj)); │ │ │ │ │ +1054 } │ │ │ │ │ +1055 │ │ │ │ │ +1056 template, _Proj)> │ │ │ │ │ +1059 requires permutable> │ │ │ │ │ +1060 && indirect_binary_predicate, _Proj>, │ │ │ │ │ +1062 const _Tp*> │ │ │ │ │ +1063 constexpr borrowed_subrange_t<_Range> │ │ │ │ │ +1064 operator()(_Range&& __r, const _Tp& __value, _Proj __proj = {}) const │ │ │ │ │ +1065 { │ │ │ │ │ +1066 return (*this)(ranges::begin(__r), ranges::end(__r), │ │ │ │ │ +1067 __value, _s_t_d_:_:_m_o_v_e(__proj)); │ │ │ │ │ +1068 } │ │ │ │ │ +1069 }; │ │ │ │ │ +1070 │ │ │ │ │ +1071 inline constexpr __remove_fn remove{}; │ │ │ │ │ +1072 │ │ │ │ │ +1073 template │ │ │ │ │ +1074 using remove_copy_if_result = in_out_result<_Iter, _Out>; │ │ │ │ │ +1075 │ │ │ │ │ +1076 struct __remove_copy_if_fn │ │ │ │ │ +1077 { │ │ │ │ │ +1078 template _Sent, │ │ │ │ │ +1079 weakly_incrementable _Out, typename _Proj = identity, │ │ │ │ │ +1080 indirect_unary_predicate> _Pred> │ │ │ │ │ +1081 requires indirectly_copyable<_Iter, _Out> │ │ │ │ │ +1082 constexpr remove_copy_if_result<_Iter, _Out> │ │ │ │ │ +1083 operator()(_Iter __first, _Sent __last, _Out __result, │ │ │ │ │ +1084 _Pred __pred, _Proj __proj = {}) const │ │ │ │ │ +1085 { │ │ │ │ │ +1086 for (; __first != __last; ++__first) │ │ │ │ │ +1087 if (!_s_t_d_:_:_____i_n_v_o_k_e(__pred, _s_t_d_:_:_____i_n_v_o_k_e(__proj, *__first))) │ │ │ │ │ +1088 { │ │ │ │ │ +1089 *__result = *__first; │ │ │ │ │ +1090 ++__result; │ │ │ │ │ +1091 } │ │ │ │ │ +1092 return {_s_t_d_:_:_m_o_v_e(__first), _s_t_d_:_:_m_o_v_e(__result)}; │ │ │ │ │ +1093 } │ │ │ │ │ +1094 │ │ │ │ │ +1095 template, _Proj>> │ │ │ │ │ +1098 _Pred> │ │ │ │ │ +1099 requires indirectly_copyable, _Out> │ │ │ │ │ +1100 constexpr remove_copy_if_result, _Out> │ │ │ │ │ +1101 operator()(_Range&& __r, _Out __result, │ │ │ │ │ +1102 _Pred __pred, _Proj __proj = {}) const │ │ │ │ │ +1103 { │ │ │ │ │ +1104 return (*this)(ranges::begin(__r), ranges::end(__r), │ │ │ │ │ +1105 _s_t_d_:_:_m_o_v_e(__result), │ │ │ │ │ +1106 _s_t_d_:_:_m_o_v_e(__pred), _s_t_d_:_:_m_o_v_e(__proj)); │ │ │ │ │ +1107 } │ │ │ │ │ +1108 }; │ │ │ │ │ +1109 │ │ │ │ │ +1110 inline constexpr __remove_copy_if_fn remove_copy_if{}; │ │ │ │ │ +1111 │ │ │ │ │ +1112 template │ │ │ │ │ +1113 using remove_copy_result = in_out_result<_Iter, _Out>; │ │ │ │ │ +1114 │ │ │ │ │ +1115 struct __remove_copy_fn │ │ │ │ │ +1116 { │ │ │ │ │ +1117 template _Sent, │ │ │ │ │ +1118 weakly_incrementable _Out, typename _Proj = identity, │ │ │ │ │ +1119 typename _Tp _GLIBCXX26_RANGE_ALGO_DEF_VAL_T(_Iter, _Proj)> │ │ │ │ │ +1120 requires indirectly_copyable<_Iter, _Out> │ │ │ │ │ +1121 && indirect_binary_predicate, │ │ │ │ │ +1123 const _Tp*> │ │ │ │ │ +1124 constexpr remove_copy_result<_Iter, _Out> │ │ │ │ │ +1125 operator()(_Iter __first, _Sent __last, _Out __result, │ │ │ │ │ +1126 const _Tp& __value, _Proj __proj = {}) const │ │ │ │ │ +1127 { │ │ │ │ │ +1128 for (; __first != __last; ++__first) │ │ │ │ │ +1129 if (!(_s_t_d_:_:_____i_n_v_o_k_e(__proj, *__first) == __value)) │ │ │ │ │ +1130 { │ │ │ │ │ +1131 *__result = *__first; │ │ │ │ │ +1132 ++__result; │ │ │ │ │ +1133 } │ │ │ │ │ +1134 return {_s_t_d_:_:_m_o_v_e(__first), _s_t_d_:_:_m_o_v_e(__result)}; │ │ │ │ │ +1135 } │ │ │ │ │ +1136 │ │ │ │ │ +1137 template, _Proj)> │ │ │ │ │ +1141 requires indirectly_copyable, _Out> │ │ │ │ │ +1142 && indirect_binary_predicate, _Proj>, │ │ │ │ │ +1144 const _Tp*> │ │ │ │ │ +1145 constexpr remove_copy_result, _Out> │ │ │ │ │ +1146 operator()(_Range&& __r, _Out __result, │ │ │ │ │ +1147 const _Tp& __value, _Proj __proj = {}) const │ │ │ │ │ +1148 { │ │ │ │ │ +1149 return (*this)(ranges::begin(__r), ranges::end(__r), │ │ │ │ │ +1150 _s_t_d_:_:_m_o_v_e(__result), __value, _s_t_d_:_:_m_o_v_e(__proj)); │ │ │ │ │ +1151 } │ │ │ │ │ +1152 }; │ │ │ │ │ +1153 │ │ │ │ │ +1154 inline constexpr __remove_copy_fn remove_copy{}; │ │ │ │ │ +1155 │ │ │ │ │ +1156 struct __unique_fn │ │ │ │ │ +1157 { │ │ │ │ │ +1158 template _Sent, │ │ │ │ │ +1159 typename _Proj = identity, │ │ │ │ │ +1160 indirect_equivalence_relation< │ │ │ │ │ +1161 projected<_Iter, _Proj>> _Comp = ranges::equal_to> │ │ │ │ │ +1162 constexpr subrange<_Iter> │ │ │ │ │ +1163 operator()(_Iter __first, _Sent __last, │ │ │ │ │ +1164 _Comp __comp = {}, _Proj __proj = {}) const │ │ │ │ │ +1165 { │ │ │ │ │ +1166 __first = ranges::adjacent_find(__first, __last, __comp, __proj); │ │ │ │ │ +1167 if (__first == __last) │ │ │ │ │ +1168 return {__first, __first}; │ │ │ │ │ +1169 │ │ │ │ │ +1170 auto __dest = __first; │ │ │ │ │ +1171 ++__first; │ │ │ │ │ +1172 while (++__first != __last) │ │ │ │ │ +1173 if (!_s_t_d_:_:_____i_n_v_o_k_e(__comp, │ │ │ │ │ +1174 _s_t_d_:_:_____i_n_v_o_k_e(__proj, *__dest), │ │ │ │ │ +1175 _s_t_d_:_:_____i_n_v_o_k_e(__proj, *__first))) │ │ │ │ │ +1176 *++__dest = _s_t_d_:_:_m_o_v_e(*__first); │ │ │ │ │ +1177 return {++__dest, __first}; │ │ │ │ │ +1178 } │ │ │ │ │ +1179 │ │ │ │ │ +1180 template, _Proj>> _Comp = ranges::equal_to> │ │ │ │ │ +1183 requires permutable> │ │ │ │ │ +1184 constexpr borrowed_subrange_t<_Range> │ │ │ │ │ +1185 operator()(_Range&& __r, _Comp __comp = {}, _Proj __proj = {}) const │ │ │ │ │ +1186 { │ │ │ │ │ +1187 return (*this)(ranges::begin(__r), ranges::end(__r), │ │ │ │ │ +1188 _s_t_d_:_:_m_o_v_e(__comp), _s_t_d_:_:_m_o_v_e(__proj)); │ │ │ │ │ +1189 } │ │ │ │ │ +1190 }; │ │ │ │ │ +1191 │ │ │ │ │ +1192 inline constexpr __unique_fn unique{}; │ │ │ │ │ +1193 │ │ │ │ │ +1194 namespace __detail │ │ │ │ │ +1195 { │ │ │ │ │ +1196 template │ │ │ │ │ +1197 concept __can_reread_output = input_iterator<_Out> │ │ │ │ │ +1198 && same_as<_Tp, iter_value_t<_Out>>; │ │ │ │ │ +1199 } │ │ │ │ │ +1200 │ │ │ │ │ +1201 template │ │ │ │ │ +1202 using unique_copy_result = in_out_result<_Iter, _Out>; │ │ │ │ │ +1203 │ │ │ │ │ +1204 struct __unique_copy_fn │ │ │ │ │ +1205 { │ │ │ │ │ +1206 template _Sent, │ │ │ │ │ +1207 weakly_incrementable _Out, typename _Proj = identity, │ │ │ │ │ +1208 indirect_equivalence_relation< │ │ │ │ │ +1209 projected<_Iter, _Proj>> _Comp = ranges::equal_to> │ │ │ │ │ +1210 requires indirectly_copyable<_Iter, _Out> │ │ │ │ │ +1211 && (forward_iterator<_Iter> │ │ │ │ │ +1212 || __detail::__can_reread_output<_Out, iter_value_t<_Iter>> │ │ │ │ │ +1213 || indirectly_copyable_storable<_Iter, _Out>) │ │ │ │ │ +1214 constexpr unique_copy_result<_Iter, _Out> │ │ │ │ │ +1215 operator()(_Iter __first, _Sent __last, _Out __result, │ │ │ │ │ +1216 _Comp __comp = {}, _Proj __proj = {}) const │ │ │ │ │ +1217 { │ │ │ │ │ +1218 if (__first == __last) │ │ │ │ │ +1219 return {_s_t_d_:_:_m_o_v_e(__first), _s_t_d_:_:_m_o_v_e(__result)}; │ │ │ │ │ +1220 │ │ │ │ │ +1221 // TODO: perform a closer comparison with reference implementations │ │ │ │ │ +1222 if constexpr (forward_iterator<_Iter>) │ │ │ │ │ +1223 { │ │ │ │ │ +1224 auto __next = __first; │ │ │ │ │ +1225 *__result = *__next; │ │ │ │ │ +1226 while (++__next != __last) │ │ │ │ │ +1227 if (!_s_t_d_:_:_____i_n_v_o_k_e(__comp, │ │ │ │ │ +1228 _s_t_d_:_:_____i_n_v_o_k_e(__proj, *__first), │ │ │ │ │ +1229 _s_t_d_:_:_____i_n_v_o_k_e(__proj, *__next))) │ │ │ │ │ +1230 { │ │ │ │ │ +1231 __first = __next; │ │ │ │ │ +1232 *++__result = *__first; │ │ │ │ │ +1233 } │ │ │ │ │ +1234 return {__next, _s_t_d_:_:_m_o_v_e(++__result)}; │ │ │ │ │ +1235 } │ │ │ │ │ +1236 else if constexpr (__detail::__can_reread_output<_Out, │ │ │ │ │ +iter_value_t<_Iter>>) │ │ │ │ │ +1237 { │ │ │ │ │ +1238 *__result = *__first; │ │ │ │ │ +1239 while (++__first != __last) │ │ │ │ │ +1240 if (!_s_t_d_:_:_____i_n_v_o_k_e(__comp, │ │ │ │ │ +1241 _s_t_d_:_:_____i_n_v_o_k_e(__proj, *__result), │ │ │ │ │ +1242 _s_t_d_:_:_____i_n_v_o_k_e(__proj, *__first))) │ │ │ │ │ +1243 *++__result = *__first; │ │ │ │ │ +1244 return {_s_t_d_:_:_m_o_v_e(__first), _s_t_d_:_:_m_o_v_e(++__result)}; │ │ │ │ │ +1245 } │ │ │ │ │ +1246 else // indirectly_copyable_storable<_Iter, _Out> │ │ │ │ │ +1247 { │ │ │ │ │ +1248 auto __value = *__first; │ │ │ │ │ +1249 *__result = __value; │ │ │ │ │ +1250 while (++__first != __last) │ │ │ │ │ +1251 { │ │ │ │ │ +1252 if (!(bool)_s_t_d_:_:_____i_n_v_o_k_e(__comp, │ │ │ │ │ +1253 _s_t_d_:_:_____i_n_v_o_k_e(__proj, *__first), │ │ │ │ │ +1254 _s_t_d_:_:_____i_n_v_o_k_e(__proj, __value))) │ │ │ │ │ +1255 { │ │ │ │ │ +1256 __value = *__first; │ │ │ │ │ +1257 *++__result = __value; │ │ │ │ │ +1258 } │ │ │ │ │ +1259 } │ │ │ │ │ +1260 return {_s_t_d_:_:_m_o_v_e(__first), _s_t_d_:_:_m_o_v_e(++__result)}; │ │ │ │ │ +1261 } │ │ │ │ │ +1262 } │ │ │ │ │ +1263 │ │ │ │ │ +1264 template, _Proj>> _Comp = ranges::equal_to> │ │ │ │ │ +1268 requires indirectly_copyable, _Out> │ │ │ │ │ +1269 && (forward_iterator> │ │ │ │ │ +1270 || __detail::__can_reread_output<_Out, range_value_t<_Range>> │ │ │ │ │ +1271 || indirectly_copyable_storable, _Out>) │ │ │ │ │ +1272 constexpr unique_copy_result, _Out> │ │ │ │ │ +1273 operator()(_Range&& __r, _Out __result, │ │ │ │ │ +1274 _Comp __comp = {}, _Proj __proj = {}) const │ │ │ │ │ +1275 { │ │ │ │ │ +1276 return (*this)(ranges::begin(__r), ranges::end(__r), │ │ │ │ │ +1277 _s_t_d_:_:_m_o_v_e(__result), │ │ │ │ │ +1278 _s_t_d_:_:_m_o_v_e(__comp), _s_t_d_:_:_m_o_v_e(__proj)); │ │ │ │ │ +1279 } │ │ │ │ │ +1280 }; │ │ │ │ │ +1281 │ │ │ │ │ +1282 inline constexpr __unique_copy_fn unique_copy{}; │ │ │ │ │ +1283 │ │ │ │ │ +1284 struct __reverse_fn │ │ │ │ │ +1285 { │ │ │ │ │ +1286 template _Sent> │ │ │ │ │ +1287 requires permutable<_Iter> │ │ │ │ │ +1288 constexpr _Iter │ │ │ │ │ +1289 operator()(_Iter __first, _Sent __last) const │ │ │ │ │ +1290 { │ │ │ │ │ +1291 auto __i = ranges::next(__first, __last); │ │ │ │ │ +1292 auto __tail = __i; │ │ │ │ │ +1293 │ │ │ │ │ +1294 if constexpr (random_access_iterator<_Iter>) │ │ │ │ │ +1295 { │ │ │ │ │ +1296 if (__first != __last) │ │ │ │ │ +1297 { │ │ │ │ │ +1298 --__tail; │ │ │ │ │ +1299 while (__first < __tail) │ │ │ │ │ +1300 { │ │ │ │ │ +1301 ranges::iter_swap(__first, __tail); │ │ │ │ │ +1302 ++__first; │ │ │ │ │ +1303 --__tail; │ │ │ │ │ +1304 } │ │ │ │ │ +1305 } │ │ │ │ │ +1306 return __i; │ │ │ │ │ +1307 } │ │ │ │ │ +1308 else │ │ │ │ │ +1309 { │ │ │ │ │ +1310 for (;;) │ │ │ │ │ +1311 if (__first == __tail || __first == --__tail) │ │ │ │ │ +1312 break; │ │ │ │ │ +1313 else │ │ │ │ │ +1314 { │ │ │ │ │ +1315 ranges::iter_swap(__first, __tail); │ │ │ │ │ +1316 ++__first; │ │ │ │ │ +1317 } │ │ │ │ │ +1318 return __i; │ │ │ │ │ +1319 } │ │ │ │ │ +1320 } │ │ │ │ │ +1321 │ │ │ │ │ +1322 template │ │ │ │ │ +1323 requires permutable> │ │ │ │ │ +1324 constexpr borrowed_iterator_t<_Range> │ │ │ │ │ +1325 operator()(_Range&& __r) const │ │ │ │ │ +1326 { │ │ │ │ │ +1327 return (*this)(ranges::begin(__r), ranges::end(__r)); │ │ │ │ │ +1328 } │ │ │ │ │ +1329 }; │ │ │ │ │ +1330 │ │ │ │ │ +1331 inline constexpr __reverse_fn reverse{}; │ │ │ │ │ +1332 │ │ │ │ │ +1333 template │ │ │ │ │ +1334 using reverse_copy_result = in_out_result<_Iter, _Out>; │ │ │ │ │ +1335 │ │ │ │ │ +1336 struct __reverse_copy_fn │ │ │ │ │ +1337 { │ │ │ │ │ +1338 template _Sent, │ │ │ │ │ +1339 weakly_incrementable _Out> │ │ │ │ │ +1340 requires indirectly_copyable<_Iter, _Out> │ │ │ │ │ +1341 constexpr reverse_copy_result<_Iter, _Out> │ │ │ │ │ +1342 operator()(_Iter __first, _Sent __last, _Out __result) const │ │ │ │ │ +1343 { │ │ │ │ │ +1344 auto __i = ranges::next(__first, __last); │ │ │ │ │ +1345 auto __tail = __i; │ │ │ │ │ +1346 while (__first != __tail) │ │ │ │ │ +1347 { │ │ │ │ │ +1348 --__tail; │ │ │ │ │ +1349 *__result = *__tail; │ │ │ │ │ +1350 ++__result; │ │ │ │ │ +1351 } │ │ │ │ │ +1352 return {__i, _s_t_d_:_:_m_o_v_e(__result)}; │ │ │ │ │ +1353 } │ │ │ │ │ +1354 │ │ │ │ │ +1355 template │ │ │ │ │ +1356 requires indirectly_copyable, _Out> │ │ │ │ │ +1357 constexpr reverse_copy_result, _Out> │ │ │ │ │ +1358 operator()(_Range&& __r, _Out __result) const │ │ │ │ │ +1359 { │ │ │ │ │ +1360 return (*this)(ranges::begin(__r), ranges::end(__r), │ │ │ │ │ +1361 _s_t_d_:_:_m_o_v_e(__result)); │ │ │ │ │ +1362 } │ │ │ │ │ +1363 }; │ │ │ │ │ +1364 │ │ │ │ │ +1365 inline constexpr __reverse_copy_fn reverse_copy{}; │ │ │ │ │ +1366 │ │ │ │ │ +1367 struct __rotate_fn │ │ │ │ │ +1368 { │ │ │ │ │ +1369 template _Sent> │ │ │ │ │ +1370 constexpr subrange<_Iter> │ │ │ │ │ +1371 operator()(_Iter __first, _Iter __middle, _Sent __last) const │ │ │ │ │ +1372 { │ │ │ │ │ +1373 auto __lasti = ranges::next(__first, __last); │ │ │ │ │ +1374 if (__first == __middle) │ │ │ │ │ +1375 return {__lasti, __lasti}; │ │ │ │ │ +1376 if (__last == __middle) │ │ │ │ │ +1377 return {_s_t_d_:_:_m_o_v_e(__first), _s_t_d_:_:_m_o_v_e(__lasti)}; │ │ │ │ │ +1378 │ │ │ │ │ +1379 if constexpr (random_access_iterator<_Iter>) │ │ │ │ │ +1380 { │ │ │ │ │ +1381 auto __n = __lasti - __first; │ │ │ │ │ +1382 auto __k = __middle - __first; │ │ │ │ │ +1383 │ │ │ │ │ +1384 if (__k == __n - __k) │ │ │ │ │ +1385 { │ │ │ │ │ +1386 ranges::swap_ranges(__first, __middle, __middle, __middle + __k); │ │ │ │ │ +1387 return {_s_t_d_:_:_m_o_v_e(__middle), _s_t_d_:_:_m_o_v_e(__lasti)}; │ │ │ │ │ +1388 } │ │ │ │ │ +1389 │ │ │ │ │ +1390 auto __p = __first; │ │ │ │ │ +1391 auto __ret = __first + (__lasti - __middle); │ │ │ │ │ +1392 │ │ │ │ │ +1393 for (;;) │ │ │ │ │ +1394 { │ │ │ │ │ +1395 if (__k < __n - __k) │ │ │ │ │ +1396 { │ │ │ │ │ +1397 // TODO: is_pod is deprecated, but this condition is │ │ │ │ │ +1398 // consistent with the STL implementation. │ │ │ │ │ +1399 if constexpr (__is_pod(iter_value_t<_Iter>)) │ │ │ │ │ +1400 if (__k == 1) │ │ │ │ │ +1401 { │ │ │ │ │ +1402 auto __t = _s_t_d_:_:_m_o_v_e(*__p); │ │ │ │ │ +1403 ranges::move(__p + 1, __p + __n, __p); │ │ │ │ │ +1404 *(__p + __n - 1) = _s_t_d_:_:_m_o_v_e(__t); │ │ │ │ │ +1405 return {_s_t_d_:_:_m_o_v_e(__ret), _s_t_d_:_:_m_o_v_e(__lasti)}; │ │ │ │ │ +1406 } │ │ │ │ │ +1407 auto __q = __p + __k; │ │ │ │ │ +1408 for (decltype(__n) __i = 0; __i < __n - __k; ++ __i) │ │ │ │ │ +1409 { │ │ │ │ │ +1410 ranges::iter_swap(__p, __q); │ │ │ │ │ +1411 ++__p; │ │ │ │ │ +1412 ++__q; │ │ │ │ │ +1413 } │ │ │ │ │ +1414 __n %= __k; │ │ │ │ │ +1415 if (__n == 0) │ │ │ │ │ +1416 return {_s_t_d_:_:_m_o_v_e(__ret), _s_t_d_:_:_m_o_v_e(__lasti)}; │ │ │ │ │ +1417 ranges::swap(__n, __k); │ │ │ │ │ +1418 __k = __n - __k; │ │ │ │ │ +1419 } │ │ │ │ │ +1420 else │ │ │ │ │ +1421 { │ │ │ │ │ +1422 __k = __n - __k; │ │ │ │ │ +1423 // TODO: is_pod is deprecated, but this condition is │ │ │ │ │ +1424 // consistent with the STL implementation. │ │ │ │ │ +1425 if constexpr (__is_pod(iter_value_t<_Iter>)) │ │ │ │ │ +1426 if (__k == 1) │ │ │ │ │ +1427 { │ │ │ │ │ +1428 auto __t = _s_t_d_:_:_m_o_v_e(*(__p + __n - 1)); │ │ │ │ │ +1429 ranges::move_backward(__p, __p + __n - 1, __p + __n); │ │ │ │ │ +1430 *__p = _s_t_d_:_:_m_o_v_e(__t); │ │ │ │ │ +1431 return {_s_t_d_:_:_m_o_v_e(__ret), _s_t_d_:_:_m_o_v_e(__lasti)}; │ │ │ │ │ +1432 } │ │ │ │ │ +1433 auto __q = __p + __n; │ │ │ │ │ +1434 __p = __q - __k; │ │ │ │ │ +1435 for (decltype(__n) __i = 0; __i < __n - __k; ++ __i) │ │ │ │ │ +1436 { │ │ │ │ │ +1437 --__p; │ │ │ │ │ +1438 --__q; │ │ │ │ │ +1439 ranges::iter_swap(__p, __q); │ │ │ │ │ +1440 } │ │ │ │ │ +1441 __n %= __k; │ │ │ │ │ +1442 if (__n == 0) │ │ │ │ │ +1443 return {_s_t_d_:_:_m_o_v_e(__ret), _s_t_d_:_:_m_o_v_e(__lasti)}; │ │ │ │ │ +1444 std::swap(__n, __k); │ │ │ │ │ +1445 } │ │ │ │ │ +1446 } │ │ │ │ │ +1447 } │ │ │ │ │ +1448 else if constexpr (bidirectional_iterator<_Iter>) │ │ │ │ │ +1449 { │ │ │ │ │ +1450 auto __tail = __lasti; │ │ │ │ │ +1451 │ │ │ │ │ +1452 ranges::reverse(__first, __middle); │ │ │ │ │ +1453 ranges::reverse(__middle, __tail); │ │ │ │ │ +1454 │ │ │ │ │ +1455 while (__first != __middle && __middle != __tail) │ │ │ │ │ +1456 { │ │ │ │ │ +1457 ranges::iter_swap(__first, --__tail); │ │ │ │ │ +1458 ++__first; │ │ │ │ │ +1459 } │ │ │ │ │ +1460 │ │ │ │ │ +1461 if (__first == __middle) │ │ │ │ │ +1462 { │ │ │ │ │ +1463 ranges::reverse(__middle, __tail); │ │ │ │ │ +1464 return {_s_t_d_:_:_m_o_v_e(__tail), _s_t_d_:_:_m_o_v_e(__lasti)}; │ │ │ │ │ +1465 } │ │ │ │ │ +1466 else │ │ │ │ │ +1467 { │ │ │ │ │ +1468 ranges::reverse(__first, __middle); │ │ │ │ │ +1469 return {_s_t_d_:_:_m_o_v_e(__first), _s_t_d_:_:_m_o_v_e(__lasti)}; │ │ │ │ │ +1470 } │ │ │ │ │ +1471 } │ │ │ │ │ +1472 else │ │ │ │ │ +1473 { │ │ │ │ │ +1474 auto __first2 = __middle; │ │ │ │ │ +1475 do │ │ │ │ │ +1476 { │ │ │ │ │ +1477 ranges::iter_swap(__first, __first2); │ │ │ │ │ +1478 ++__first; │ │ │ │ │ +1479 ++__first2; │ │ │ │ │ +1480 if (__first == __middle) │ │ │ │ │ +1481 __middle = __first2; │ │ │ │ │ +1482 } while (__first2 != __last); │ │ │ │ │ +1483 │ │ │ │ │ +1484 auto __ret = __first; │ │ │ │ │ +1485 │ │ │ │ │ +1486 __first2 = __middle; │ │ │ │ │ +1487 │ │ │ │ │ +1488 while (__first2 != __last) │ │ │ │ │ +1489 { │ │ │ │ │ +1490 ranges::iter_swap(__first, __first2); │ │ │ │ │ +1491 ++__first; │ │ │ │ │ +1492 ++__first2; │ │ │ │ │ +1493 if (__first == __middle) │ │ │ │ │ +1494 __middle = __first2; │ │ │ │ │ +1495 else if (__first2 == __last) │ │ │ │ │ +1496 __first2 = __middle; │ │ │ │ │ +1497 } │ │ │ │ │ +1498 return {_s_t_d_:_:_m_o_v_e(__ret), _s_t_d_:_:_m_o_v_e(__lasti)}; │ │ │ │ │ +1499 } │ │ │ │ │ +1500 } │ │ │ │ │ +1501 │ │ │ │ │ +1502 template │ │ │ │ │ +1503 requires permutable> │ │ │ │ │ +1504 constexpr borrowed_subrange_t<_Range> │ │ │ │ │ +1505 operator()(_Range&& __r, iterator_t<_Range> __middle) const │ │ │ │ │ +1506 { │ │ │ │ │ +1507 return (*this)(ranges::begin(__r), _s_t_d_:_:_m_o_v_e(__middle), │ │ │ │ │ +1508 ranges::end(__r)); │ │ │ │ │ +1509 } │ │ │ │ │ +1510 }; │ │ │ │ │ +1511 │ │ │ │ │ +1512 inline constexpr __rotate_fn rotate{}; │ │ │ │ │ +1513 │ │ │ │ │ +1514 template │ │ │ │ │ +1515 using rotate_copy_result = in_out_result<_Iter, _Out>; │ │ │ │ │ +1516 │ │ │ │ │ +1517 struct __rotate_copy_fn │ │ │ │ │ +1518 { │ │ │ │ │ +1519 template _Sent, │ │ │ │ │ +1520 weakly_incrementable _Out> │ │ │ │ │ +1521 requires indirectly_copyable<_Iter, _Out> │ │ │ │ │ +1522 constexpr rotate_copy_result<_Iter, _Out> │ │ │ │ │ +1523 operator()(_Iter __first, _Iter __middle, _Sent __last, │ │ │ │ │ +1524 _Out __result) const │ │ │ │ │ +1525 { │ │ │ │ │ +1526 auto __copy1 = ranges::copy(__middle, │ │ │ │ │ +1527 _s_t_d_:_:_m_o_v_e(__last), │ │ │ │ │ +1528 _s_t_d_:_:_m_o_v_e(__result)); │ │ │ │ │ +1529 auto __copy2 = ranges::copy(_s_t_d_:_:_m_o_v_e(__first), │ │ │ │ │ +1530 _s_t_d_:_:_m_o_v_e(__middle), │ │ │ │ │ +1531 _s_t_d_:_:_m_o_v_e(__copy1.out)); │ │ │ │ │ +1532 return { _s_t_d_:_:_m_o_v_e(__copy1.in), _s_t_d_:_:_m_o_v_e(__copy2.out) }; │ │ │ │ │ +1533 } │ │ │ │ │ +1534 │ │ │ │ │ +1535 template │ │ │ │ │ +1536 requires indirectly_copyable, _Out> │ │ │ │ │ +1537 constexpr rotate_copy_result, _Out> │ │ │ │ │ +1538 operator()(_Range&& __r, iterator_t<_Range> __middle, _Out __result) const │ │ │ │ │ +1539 { │ │ │ │ │ +1540 return (*this)(ranges::begin(__r), _s_t_d_:_:_m_o_v_e(__middle), │ │ │ │ │ +1541 ranges::end(__r), _s_t_d_:_:_m_o_v_e(__result)); │ │ │ │ │ +1542 } │ │ │ │ │ +1543 }; │ │ │ │ │ +1544 │ │ │ │ │ +1545 inline constexpr __rotate_copy_fn rotate_copy{}; │ │ │ │ │ +1546 │ │ │ │ │ +1547 struct __sample_fn │ │ │ │ │ +1548 { │ │ │ │ │ +1549 template _Sent, │ │ │ │ │ +1550 weakly_incrementable _Out, typename _Gen> │ │ │ │ │ +1551 requires (forward_iterator<_Iter> || random_access_iterator<_Out>) │ │ │ │ │ +1552 && indirectly_copyable<_Iter, _Out> │ │ │ │ │ +1553 && uniform_random_bit_generator> │ │ │ │ │ +1554 _Out │ │ │ │ │ +1555 operator()(_Iter __first, _Sent __last, _Out __out, │ │ │ │ │ +1556 iter_difference_t<_Iter> __n, _Gen&& __g) const │ │ │ │ │ +1557 { │ │ │ │ │ +1558 if constexpr (forward_iterator<_Iter>) │ │ │ │ │ +1559 { │ │ │ │ │ +1560 // FIXME: Forwarding to std::sample here requires computing __lasti │ │ │ │ │ +1561 // which may take linear time. │ │ │ │ │ +1562 auto __lasti = ranges::next(__first, __last); │ │ │ │ │ +1563 return _GLIBCXX_STD_A:: │ │ │ │ │ +1564 sample(_s_t_d_:_:_m_o_v_e(__first), _s_t_d_:_:_m_o_v_e(__lasti), _s_t_d_:_:_m_o_v_e(__out), │ │ │ │ │ +1565 __n, std::forward<_Gen>(__g)); │ │ │ │ │ +1566 } │ │ │ │ │ +1567 else │ │ │ │ │ +1568 { │ │ │ │ │ +1569 using __distrib_type │ │ │ │ │ +1570 = uniform_int_distribution>; │ │ │ │ │ +1571 using __param_type = typename __distrib_type::param_type; │ │ │ │ │ +1572 __distrib_type __d{}; │ │ │ │ │ +1573 iter_difference_t<_Iter> __sample_sz = 0; │ │ │ │ │ +1574 while (__first != __last && __sample_sz != __n) │ │ │ │ │ +1575 { │ │ │ │ │ +1576 __out[__sample_sz++] = *__first; │ │ │ │ │ +1577 ++__first; │ │ │ │ │ +1578 } │ │ │ │ │ +1579 for (auto __pop_sz = __sample_sz; __first != __last; │ │ │ │ │ +1580 ++__first, (void) ++__pop_sz) │ │ │ │ │ +1581 { │ │ │ │ │ +1582 const auto __k = __d(__g, __param_type{0, __pop_sz}); │ │ │ │ │ +1583 if (__k < __n) │ │ │ │ │ +1584 __out[__k] = *__first; │ │ │ │ │ +1585 } │ │ │ │ │ +1586 return __out + __sample_sz; │ │ │ │ │ +1587 } │ │ │ │ │ +1588 } │ │ │ │ │ +1589 │ │ │ │ │ +1590 template │ │ │ │ │ +1591 requires (forward_range<_Range> || random_access_iterator<_Out>) │ │ │ │ │ +1592 && indirectly_copyable, _Out> │ │ │ │ │ +1593 && uniform_random_bit_generator> │ │ │ │ │ +1594 _Out │ │ │ │ │ +1595 operator()(_Range&& __r, _Out __out, │ │ │ │ │ +1596 range_difference_t<_Range> __n, _Gen&& __g) const │ │ │ │ │ +1597 { │ │ │ │ │ +1598 return (*this)(ranges::begin(__r), ranges::end(__r), │ │ │ │ │ +1599 _s_t_d_:_:_m_o_v_e(__out), __n, │ │ │ │ │ +1600 std::forward<_Gen>(__g)); │ │ │ │ │ +1601 } │ │ │ │ │ +1602 }; │ │ │ │ │ +1603 │ │ │ │ │ +1604 inline constexpr __sample_fn sample{}; │ │ │ │ │ +1605 │ │ │ │ │ +1606 struct __shuffle_fn │ │ │ │ │ +1607 { │ │ │ │ │ +1608 template _Sent, │ │ │ │ │ +1609 typename _Gen> │ │ │ │ │ +1610 requires permutable<_Iter> │ │ │ │ │ +1611 && uniform_random_bit_generator> │ │ │ │ │ +1612 _Iter │ │ │ │ │ +1613 operator()(_Iter __first, _Sent __last, _Gen&& __g) const │ │ │ │ │ +1614 { │ │ │ │ │ +1615 auto __lasti = ranges::next(__first, __last); │ │ │ │ │ +1616 std::shuffle(_s_t_d_:_:_m_o_v_e(__first), __lasti, std::forward<_Gen>(__g)); │ │ │ │ │ +1617 return __lasti; │ │ │ │ │ +1618 } │ │ │ │ │ +1619 │ │ │ │ │ +1620 template │ │ │ │ │ +1621 requires permutable> │ │ │ │ │ +1622 && uniform_random_bit_generator> │ │ │ │ │ +1623 borrowed_iterator_t<_Range> │ │ │ │ │ +1624 operator()(_Range&& __r, _Gen&& __g) const │ │ │ │ │ +1625 { │ │ │ │ │ +1626 return (*this)(ranges::begin(__r), ranges::end(__r), │ │ │ │ │ +1627 std::forward<_Gen>(__g)); │ │ │ │ │ +1628 } │ │ │ │ │ +1629 }; │ │ │ │ │ +1630 │ │ │ │ │ +1631 inline constexpr __shuffle_fn shuffle{}; │ │ │ │ │ +1632 │ │ │ │ │ +1633 struct __push_heap_fn │ │ │ │ │ +1634 { │ │ │ │ │ +1635 template _Sent, │ │ │ │ │ +1636 typename _Comp = ranges::less, typename _Proj = identity> │ │ │ │ │ +1637 requires sortable<_Iter, _Comp, _Proj> │ │ │ │ │ +1638 constexpr _Iter │ │ │ │ │ +1639 operator()(_Iter __first, _Sent __last, │ │ │ │ │ +1640 _Comp __comp = {}, _Proj __proj = {}) const │ │ │ │ │ +1641 { │ │ │ │ │ +1642 auto __lasti = ranges::next(__first, __last); │ │ │ │ │ +1643 std::push_heap(__first, __lasti, │ │ │ │ │ +1644 __detail::__make_comp_proj(__comp, __proj)); │ │ │ │ │ +1645 return __lasti; │ │ │ │ │ +1646 } │ │ │ │ │ +1647 │ │ │ │ │ +1648 template │ │ │ │ │ +1650 requires sortable, _Comp, _Proj> │ │ │ │ │ +1651 constexpr borrowed_iterator_t<_Range> │ │ │ │ │ +1652 operator()(_Range&& __r, _Comp __comp = {}, _Proj __proj = {}) const │ │ │ │ │ +1653 { │ │ │ │ │ +1654 return (*this)(ranges::begin(__r), ranges::end(__r), │ │ │ │ │ +1655 _s_t_d_:_:_m_o_v_e(__comp), _s_t_d_:_:_m_o_v_e(__proj)); │ │ │ │ │ +1656 } │ │ │ │ │ +1657 }; │ │ │ │ │ +1658 │ │ │ │ │ +1659 inline constexpr __push_heap_fn push_heap{}; │ │ │ │ │ +1660 │ │ │ │ │ +1661 struct __pop_heap_fn │ │ │ │ │ +1662 { │ │ │ │ │ +1663 template _Sent, │ │ │ │ │ +1664 typename _Comp = ranges::less, typename _Proj = identity> │ │ │ │ │ +1665 requires sortable<_Iter, _Comp, _Proj> │ │ │ │ │ +1666 constexpr _Iter │ │ │ │ │ +1667 operator()(_Iter __first, _Sent __last, │ │ │ │ │ +1668 _Comp __comp = {}, _Proj __proj = {}) const │ │ │ │ │ +1669 { │ │ │ │ │ +1670 auto __lasti = ranges::next(__first, __last); │ │ │ │ │ +1671 std::pop_heap(__first, __lasti, │ │ │ │ │ +1672 __detail::__make_comp_proj(__comp, __proj)); │ │ │ │ │ +1673 return __lasti; │ │ │ │ │ +1674 } │ │ │ │ │ +1675 │ │ │ │ │ +1676 template │ │ │ │ │ +1678 requires sortable, _Comp, _Proj> │ │ │ │ │ +1679 constexpr borrowed_iterator_t<_Range> │ │ │ │ │ +1680 operator()(_Range&& __r, _Comp __comp = {}, _Proj __proj = {}) const │ │ │ │ │ +1681 { │ │ │ │ │ +1682 return (*this)(ranges::begin(__r), ranges::end(__r), │ │ │ │ │ +1683 _s_t_d_:_:_m_o_v_e(__comp), _s_t_d_:_:_m_o_v_e(__proj)); │ │ │ │ │ +1684 } │ │ │ │ │ +1685 }; │ │ │ │ │ +1686 │ │ │ │ │ +1687 inline constexpr __pop_heap_fn pop_heap{}; │ │ │ │ │ +1688 │ │ │ │ │ +1689 struct __make_heap_fn │ │ │ │ │ +1690 { │ │ │ │ │ +1691 template _Sent, │ │ │ │ │ +1692 typename _Comp = ranges::less, typename _Proj = identity> │ │ │ │ │ +1693 requires sortable<_Iter, _Comp, _Proj> │ │ │ │ │ +1694 constexpr _Iter │ │ │ │ │ +1695 operator()(_Iter __first, _Sent __last, │ │ │ │ │ +1696 _Comp __comp = {}, _Proj __proj = {}) const │ │ │ │ │ +1697 { │ │ │ │ │ +1698 auto __lasti = ranges::next(__first, __last); │ │ │ │ │ +1699 std::make_heap(__first, __lasti, │ │ │ │ │ +1700 __detail::__make_comp_proj(__comp, __proj)); │ │ │ │ │ +1701 return __lasti; │ │ │ │ │ +1702 } │ │ │ │ │ +1703 │ │ │ │ │ +1704 template │ │ │ │ │ +1706 requires sortable, _Comp, _Proj> │ │ │ │ │ +1707 constexpr borrowed_iterator_t<_Range> │ │ │ │ │ +1708 operator()(_Range&& __r, _Comp __comp = {}, _Proj __proj = {}) const │ │ │ │ │ +1709 { │ │ │ │ │ +1710 return (*this)(ranges::begin(__r), ranges::end(__r), │ │ │ │ │ +1711 _s_t_d_:_:_m_o_v_e(__comp), _s_t_d_:_:_m_o_v_e(__proj)); │ │ │ │ │ +1712 } │ │ │ │ │ +1713 }; │ │ │ │ │ +1714 │ │ │ │ │ +1715 inline constexpr __make_heap_fn make_heap{}; │ │ │ │ │ +1716 │ │ │ │ │ +1717 struct __sort_heap_fn │ │ │ │ │ +1718 { │ │ │ │ │ +1719 template _Sent, │ │ │ │ │ +1720 typename _Comp = ranges::less, typename _Proj = identity> │ │ │ │ │ +1721 requires sortable<_Iter, _Comp, _Proj> │ │ │ │ │ +1722 constexpr _Iter │ │ │ │ │ +1723 operator()(_Iter __first, _Sent __last, │ │ │ │ │ +1724 _Comp __comp = {}, _Proj __proj = {}) const │ │ │ │ │ +1725 { │ │ │ │ │ +1726 auto __lasti = ranges::next(__first, __last); │ │ │ │ │ +1727 std::sort_heap(__first, __lasti, │ │ │ │ │ +1728 __detail::__make_comp_proj(__comp, __proj)); │ │ │ │ │ +1729 return __lasti; │ │ │ │ │ +1730 } │ │ │ │ │ +1731 │ │ │ │ │ +1732 template │ │ │ │ │ +1734 requires sortable, _Comp, _Proj> │ │ │ │ │ +1735 constexpr borrowed_iterator_t<_Range> │ │ │ │ │ +1736 operator()(_Range&& __r, _Comp __comp = {}, _Proj __proj = {}) const │ │ │ │ │ +1737 { │ │ │ │ │ +1738 return (*this)(ranges::begin(__r), ranges::end(__r), │ │ │ │ │ +1739 _s_t_d_:_:_m_o_v_e(__comp), _s_t_d_:_:_m_o_v_e(__proj)); │ │ │ │ │ +1740 } │ │ │ │ │ +1741 }; │ │ │ │ │ +1742 │ │ │ │ │ +1743 inline constexpr __sort_heap_fn sort_heap{}; │ │ │ │ │ +1744 │ │ │ │ │ +1745 struct __is_heap_until_fn │ │ │ │ │ +1746 { │ │ │ │ │ +1747 template _Sent, │ │ │ │ │ +1748 typename _Proj = identity, │ │ │ │ │ +1749 indirect_strict_weak_order> │ │ │ │ │ +1750 _Comp = ranges::less> │ │ │ │ │ +1751 constexpr _Iter │ │ │ │ │ +1752 operator()(_Iter __first, _Sent __last, │ │ │ │ │ +1753 _Comp __comp = {}, _Proj __proj = {}) const │ │ │ │ │ +1754 { │ │ │ │ │ +1755 iter_difference_t<_Iter> __n = ranges::distance(__first, __last); │ │ │ │ │ +1756 iter_difference_t<_Iter> __parent = 0, __child = 1; │ │ │ │ │ +1757 for (; __child < __n; ++__child) │ │ │ │ │ +1758 if (_s_t_d_:_:_____i_n_v_o_k_e(__comp, │ │ │ │ │ +1759 _s_t_d_:_:_____i_n_v_o_k_e(__proj, *(__first + __parent)), │ │ │ │ │ +1760 _s_t_d_:_:_____i_n_v_o_k_e(__proj, *(__first + __child)))) │ │ │ │ │ +1761 return __first + __child; │ │ │ │ │ +1762 else if ((__child & 1) == 0) │ │ │ │ │ +1763 ++__parent; │ │ │ │ │ +1764 │ │ │ │ │ +1765 return __first + __n; │ │ │ │ │ +1766 } │ │ │ │ │ +1767 │ │ │ │ │ +1768 template, _Proj>> │ │ │ │ │ +1771 _Comp = ranges::less> │ │ │ │ │ +1772 constexpr borrowed_iterator_t<_Range> │ │ │ │ │ +1773 operator()(_Range&& __r, _Comp __comp = {}, _Proj __proj = {}) const │ │ │ │ │ +1774 { │ │ │ │ │ +1775 return (*this)(ranges::begin(__r), ranges::end(__r), │ │ │ │ │ +1776 _s_t_d_:_:_m_o_v_e(__comp), _s_t_d_:_:_m_o_v_e(__proj)); │ │ │ │ │ +1777 } │ │ │ │ │ +1778 }; │ │ │ │ │ +1779 │ │ │ │ │ +1780 inline constexpr __is_heap_until_fn is_heap_until{}; │ │ │ │ │ +1781 │ │ │ │ │ +1782 struct __is_heap_fn │ │ │ │ │ +1783 { │ │ │ │ │ +1784 template _Sent, │ │ │ │ │ +1785 typename _Proj = identity, │ │ │ │ │ +1786 indirect_strict_weak_order> │ │ │ │ │ +1787 _Comp = ranges::less> │ │ │ │ │ +1788 constexpr bool │ │ │ │ │ +1789 operator()(_Iter __first, _Sent __last, │ │ │ │ │ +1790 _Comp __comp = {}, _Proj __proj = {}) const │ │ │ │ │ +1791 { │ │ │ │ │ +1792 return (__last │ │ │ │ │ +1793 == ranges::is_heap_until(__first, __last, │ │ │ │ │ +1794 _s_t_d_:_:_m_o_v_e(__comp), │ │ │ │ │ +1795 _s_t_d_:_:_m_o_v_e(__proj))); │ │ │ │ │ +1796 } │ │ │ │ │ +1797 │ │ │ │ │ +1798 template, _Proj>> │ │ │ │ │ +1801 _Comp = ranges::less> │ │ │ │ │ +1802 constexpr bool │ │ │ │ │ +1803 operator()(_Range&& __r, _Comp __comp = {}, _Proj __proj = {}) const │ │ │ │ │ +1804 { │ │ │ │ │ +1805 return (*this)(ranges::begin(__r), ranges::end(__r), │ │ │ │ │ +1806 _s_t_d_:_:_m_o_v_e(__comp), _s_t_d_:_:_m_o_v_e(__proj)); │ │ │ │ │ +1807 } │ │ │ │ │ +1808 }; │ │ │ │ │ +1809 │ │ │ │ │ +1810 inline constexpr __is_heap_fn is_heap{}; │ │ │ │ │ +1811 │ │ │ │ │ +1812 struct __sort_fn │ │ │ │ │ +1813 { │ │ │ │ │ +1814 template _Sent, │ │ │ │ │ +1815 typename _Comp = ranges::less, typename _Proj = identity> │ │ │ │ │ +1816 requires sortable<_Iter, _Comp, _Proj> │ │ │ │ │ +1817 constexpr _Iter │ │ │ │ │ +1818 operator()(_Iter __first, _Sent __last, │ │ │ │ │ +1819 _Comp __comp = {}, _Proj __proj = {}) const │ │ │ │ │ +1820 { │ │ │ │ │ +1821 auto __lasti = ranges::next(__first, __last); │ │ │ │ │ +1822 _GLIBCXX_STD_A::sort(_s_t_d_:_:_m_o_v_e(__first), __lasti, │ │ │ │ │ +1823 __detail::__make_comp_proj(__comp, __proj)); │ │ │ │ │ +1824 return __lasti; │ │ │ │ │ +1825 } │ │ │ │ │ +1826 │ │ │ │ │ +1827 template │ │ │ │ │ +1829 requires sortable, _Comp, _Proj> │ │ │ │ │ +1830 constexpr borrowed_iterator_t<_Range> │ │ │ │ │ +1831 operator()(_Range&& __r, _Comp __comp = {}, _Proj __proj = {}) const │ │ │ │ │ +1832 { │ │ │ │ │ +1833 return (*this)(ranges::begin(__r), ranges::end(__r), │ │ │ │ │ +1834 _s_t_d_:_:_m_o_v_e(__comp), _s_t_d_:_:_m_o_v_e(__proj)); │ │ │ │ │ +1835 } │ │ │ │ │ +1836 }; │ │ │ │ │ +1837 │ │ │ │ │ +1838 inline constexpr __sort_fn sort{}; │ │ │ │ │ +1839 │ │ │ │ │ +1840 struct __stable_sort_fn │ │ │ │ │ +1841 { │ │ │ │ │ +1842 template _Sent, │ │ │ │ │ +1843 typename _Comp = ranges::less, typename _Proj = identity> │ │ │ │ │ +1844 requires sortable<_Iter, _Comp, _Proj> │ │ │ │ │ +1845 _GLIBCXX26_CONSTEXPR │ │ │ │ │ +1846 _Iter │ │ │ │ │ +1847 operator()(_Iter __first, _Sent __last, │ │ │ │ │ +1848 _Comp __comp = {}, _Proj __proj = {}) const │ │ │ │ │ +1849 { │ │ │ │ │ +1850 auto __lasti = ranges::next(__first, __last); │ │ │ │ │ +1851 std::stable_sort(_s_t_d_:_:_m_o_v_e(__first), __lasti, │ │ │ │ │ +1852 __detail::__make_comp_proj(__comp, __proj)); │ │ │ │ │ +1853 return __lasti; │ │ │ │ │ +1854 } │ │ │ │ │ +1855 │ │ │ │ │ +1856 template │ │ │ │ │ +1858 requires sortable, _Comp, _Proj> │ │ │ │ │ +1859 _GLIBCXX26_CONSTEXPR │ │ │ │ │ +1860 borrowed_iterator_t<_Range> │ │ │ │ │ +1861 operator()(_Range&& __r, _Comp __comp = {}, _Proj __proj = {}) const │ │ │ │ │ +1862 { │ │ │ │ │ +1863 return (*this)(ranges::begin(__r), ranges::end(__r), │ │ │ │ │ +1864 _s_t_d_:_:_m_o_v_e(__comp), _s_t_d_:_:_m_o_v_e(__proj)); │ │ │ │ │ +1865 } │ │ │ │ │ +1866 }; │ │ │ │ │ +1867 │ │ │ │ │ +1868 inline constexpr __stable_sort_fn stable_sort{}; │ │ │ │ │ +1869 │ │ │ │ │ +1870 struct __partial_sort_fn │ │ │ │ │ +1871 { │ │ │ │ │ +1872 template _Sent, │ │ │ │ │ +1873 typename _Comp = ranges::less, typename _Proj = identity> │ │ │ │ │ +1874 requires sortable<_Iter, _Comp, _Proj> │ │ │ │ │ +1875 constexpr _Iter │ │ │ │ │ +1876 operator()(_Iter __first, _Iter __middle, _Sent __last, │ │ │ │ │ +1877 _Comp __comp = {}, _Proj __proj = {}) const │ │ │ │ │ +1878 { │ │ │ │ │ +1879 if (__first == __middle) │ │ │ │ │ +1880 return ranges::next(__first, __last); │ │ │ │ │ +1881 │ │ │ │ │ +1882 ranges::make_heap(__first, __middle, __comp, __proj); │ │ │ │ │ +1883 auto __i = __middle; │ │ │ │ │ +1884 for (; __i != __last; ++__i) │ │ │ │ │ +1885 if (_s_t_d_:_:_____i_n_v_o_k_e(__comp, │ │ │ │ │ +1886 _s_t_d_:_:_____i_n_v_o_k_e(__proj, *__i), │ │ │ │ │ +1887 _s_t_d_:_:_____i_n_v_o_k_e(__proj, *__first))) │ │ │ │ │ +1888 { │ │ │ │ │ +1889 ranges::pop_heap(__first, __middle, __comp, __proj); │ │ │ │ │ +1890 ranges::iter_swap(__middle-1, __i); │ │ │ │ │ +1891 ranges::push_heap(__first, __middle, __comp, __proj); │ │ │ │ │ +1892 } │ │ │ │ │ +1893 ranges::sort_heap(__first, __middle, __comp, __proj); │ │ │ │ │ +1894 │ │ │ │ │ +1895 return __i; │ │ │ │ │ +1896 } │ │ │ │ │ +1897 │ │ │ │ │ +1898 template │ │ │ │ │ +1900 requires sortable, _Comp, _Proj> │ │ │ │ │ +1901 constexpr borrowed_iterator_t<_Range> │ │ │ │ │ +1902 operator()(_Range&& __r, iterator_t<_Range> __middle, │ │ │ │ │ +1903 _Comp __comp = {}, _Proj __proj = {}) const │ │ │ │ │ +1904 { │ │ │ │ │ +1905 return (*this)(ranges::begin(__r), _s_t_d_:_:_m_o_v_e(__middle), │ │ │ │ │ +1906 ranges::end(__r), │ │ │ │ │ +1907 _s_t_d_:_:_m_o_v_e(__comp), _s_t_d_:_:_m_o_v_e(__proj)); │ │ │ │ │ +1908 } │ │ │ │ │ +1909 }; │ │ │ │ │ +1910 │ │ │ │ │ +1911 inline constexpr __partial_sort_fn partial_sort{}; │ │ │ │ │ +1912 │ │ │ │ │ +1913 template │ │ │ │ │ +1914 using partial_sort_copy_result = in_out_result<_Iter, _Out>; │ │ │ │ │ +1915 │ │ │ │ │ +1916 struct __partial_sort_copy_fn │ │ │ │ │ +1917 { │ │ │ │ │ +1918 template _Sent1, │ │ │ │ │ +1919 random_access_iterator _Iter2, sentinel_for<_Iter2> _Sent2, │ │ │ │ │ +1920 typename _Comp = ranges::less, │ │ │ │ │ +1921 typename _Proj1 = identity, typename _Proj2 = identity> │ │ │ │ │ +1922 requires indirectly_copyable<_Iter1, _Iter2> │ │ │ │ │ +1923 && sortable<_Iter2, _Comp, _Proj2> │ │ │ │ │ +1924 && indirect_strict_weak_order<_Comp, │ │ │ │ │ +1925 projected<_Iter1, _Proj1>, │ │ │ │ │ +1926 projected<_Iter2, _Proj2>> │ │ │ │ │ +1927 constexpr partial_sort_copy_result<_Iter1, _Iter2> │ │ │ │ │ +1928 operator()(_Iter1 __first, _Sent1 __last, │ │ │ │ │ +1929 _Iter2 __result_first, _Sent2 __result_last, │ │ │ │ │ +1930 _Comp __comp = {}, │ │ │ │ │ +1931 _Proj1 __proj1 = {}, _Proj2 __proj2 = {}) const │ │ │ │ │ +1932 { │ │ │ │ │ +1933 if (__result_first == __result_last) │ │ │ │ │ +1934 { │ │ │ │ │ +1935 // TODO: Eliminating the variable __lasti triggers an ICE. │ │ │ │ │ +1936 auto __lasti = ranges::next(_s_t_d_:_:_m_o_v_e(__first), │ │ │ │ │ +1937 _s_t_d_:_:_m_o_v_e(__last)); │ │ │ │ │ +1938 return {_s_t_d_:_:_m_o_v_e(__lasti), _s_t_d_:_:_m_o_v_e(__result_first)}; │ │ │ │ │ +1939 } │ │ │ │ │ +1940 │ │ │ │ │ +1941 auto __result_real_last = __result_first; │ │ │ │ │ +1942 while (__first != __last && __result_real_last != __result_last) │ │ │ │ │ +1943 { │ │ │ │ │ +1944 *__result_real_last = *__first; │ │ │ │ │ +1945 ++__result_real_last; │ │ │ │ │ +1946 ++__first; │ │ │ │ │ +1947 } │ │ │ │ │ +1948 │ │ │ │ │ +1949 ranges::make_heap(__result_first, __result_real_last, __comp, __proj2); │ │ │ │ │ +1950 for (; __first != __last; ++__first) │ │ │ │ │ +1951 if (_s_t_d_:_:_____i_n_v_o_k_e(__comp, │ │ │ │ │ +1952 _s_t_d_:_:_____i_n_v_o_k_e(__proj1, *__first), │ │ │ │ │ +1953 _s_t_d_:_:_____i_n_v_o_k_e(__proj2, *__result_first))) │ │ │ │ │ +1954 { │ │ │ │ │ +1955 ranges::pop_heap(__result_first, __result_real_last, │ │ │ │ │ +1956 __comp, __proj2); │ │ │ │ │ +1957 *(__result_real_last-1) = *__first; │ │ │ │ │ +1958 ranges::push_heap(__result_first, __result_real_last, │ │ │ │ │ +1959 __comp, __proj2); │ │ │ │ │ +1960 } │ │ │ │ │ +1961 ranges::sort_heap(__result_first, __result_real_last, __comp, __proj2); │ │ │ │ │ +1962 │ │ │ │ │ +1963 return {_s_t_d_:_:_m_o_v_e(__first), _s_t_d_:_:_m_o_v_e(__result_real_last)}; │ │ │ │ │ +1964 } │ │ │ │ │ +1965 │ │ │ │ │ +1966 template │ │ │ │ │ +1969 requires indirectly_copyable, iterator_t<_Range2>> │ │ │ │ │ +1970 && sortable, _Comp, _Proj2> │ │ │ │ │ +1971 && indirect_strict_weak_order<_Comp, │ │ │ │ │ +1972 projected, _Proj1>, │ │ │ │ │ +1973 projected, _Proj2>> │ │ │ │ │ +1974 constexpr partial_sort_copy_result, │ │ │ │ │ +1975 borrowed_iterator_t<_Range2>> │ │ │ │ │ +1976 operator()(_Range1&& __r, _Range2&& __out, _Comp __comp = {}, │ │ │ │ │ +1977 _Proj1 __proj1 = {}, _Proj2 __proj2 = {}) const │ │ │ │ │ +1978 { │ │ │ │ │ +1979 return (*this)(ranges::begin(__r), ranges::end(__r), │ │ │ │ │ +1980 ranges::begin(__out), ranges::end(__out), │ │ │ │ │ +1981 _s_t_d_:_:_m_o_v_e(__comp), │ │ │ │ │ +1982 _s_t_d_:_:_m_o_v_e(__proj1), _s_t_d_:_:_m_o_v_e(__proj2)); │ │ │ │ │ +1983 } │ │ │ │ │ +1984 }; │ │ │ │ │ +1985 │ │ │ │ │ +1986 inline constexpr __partial_sort_copy_fn partial_sort_copy{}; │ │ │ │ │ +1987 │ │ │ │ │ +1988 struct __is_sorted_until_fn │ │ │ │ │ +1989 { │ │ │ │ │ +1990 template _Sent, │ │ │ │ │ +1991 typename _Proj = identity, │ │ │ │ │ +1992 indirect_strict_weak_order> │ │ │ │ │ +1993 _Comp = ranges::less> │ │ │ │ │ +1994 constexpr _Iter │ │ │ │ │ +1995 operator()(_Iter __first, _Sent __last, │ │ │ │ │ +1996 _Comp __comp = {}, _Proj __proj = {}) const │ │ │ │ │ +1997 { │ │ │ │ │ +1998 if (__first == __last) │ │ │ │ │ +1999 return __first; │ │ │ │ │ +2000 │ │ │ │ │ +2001 auto __next = __first; │ │ │ │ │ +2002 for (++__next; __next != __last; __first = __next, (void)++__next) │ │ │ │ │ +2003 if (_s_t_d_:_:_____i_n_v_o_k_e(__comp, │ │ │ │ │ +2004 _s_t_d_:_:_____i_n_v_o_k_e(__proj, *__next), │ │ │ │ │ +2005 _s_t_d_:_:_____i_n_v_o_k_e(__proj, *__first))) │ │ │ │ │ +2006 return __next; │ │ │ │ │ +2007 return __next; │ │ │ │ │ +2008 } │ │ │ │ │ +2009 │ │ │ │ │ +2010 template, _Proj>> │ │ │ │ │ +2012 _Comp = ranges::less> │ │ │ │ │ +2013 constexpr borrowed_iterator_t<_Range> │ │ │ │ │ +2014 operator()(_Range&& __r, _Comp __comp = {}, _Proj __proj = {}) const │ │ │ │ │ +2015 { │ │ │ │ │ +2016 return (*this)(ranges::begin(__r), ranges::end(__r), │ │ │ │ │ +2017 _s_t_d_:_:_m_o_v_e(__comp), _s_t_d_:_:_m_o_v_e(__proj)); │ │ │ │ │ +2018 } │ │ │ │ │ +2019 }; │ │ │ │ │ +2020 │ │ │ │ │ +2021 inline constexpr __is_sorted_until_fn is_sorted_until{}; │ │ │ │ │ +2022 │ │ │ │ │ +2023 struct __is_sorted_fn │ │ │ │ │ +2024 { │ │ │ │ │ +2025 template _Sent, │ │ │ │ │ +2026 typename _Proj = identity, │ │ │ │ │ +2027 indirect_strict_weak_order> │ │ │ │ │ +2028 _Comp = ranges::less> │ │ │ │ │ +2029 constexpr bool │ │ │ │ │ +2030 operator()(_Iter __first, _Sent __last, │ │ │ │ │ +2031 _Comp __comp = {}, _Proj __proj = {}) const │ │ │ │ │ +2032 { │ │ │ │ │ +2033 if (__first == __last) │ │ │ │ │ +2034 return true; │ │ │ │ │ +2035 │ │ │ │ │ +2036 auto __next = __first; │ │ │ │ │ +2037 for (++__next; __next != __last; __first = __next, (void)++__next) │ │ │ │ │ +2038 if (_s_t_d_:_:_____i_n_v_o_k_e(__comp, │ │ │ │ │ +2039 _s_t_d_:_:_____i_n_v_o_k_e(__proj, *__next), │ │ │ │ │ +2040 _s_t_d_:_:_____i_n_v_o_k_e(__proj, *__first))) │ │ │ │ │ +2041 return false; │ │ │ │ │ +2042 return true; │ │ │ │ │ +2043 } │ │ │ │ │ +2044 │ │ │ │ │ +2045 template, _Proj>> │ │ │ │ │ +2047 _Comp = ranges::less> │ │ │ │ │ +2048 constexpr bool │ │ │ │ │ +2049 operator()(_Range&& __r, _Comp __comp = {}, _Proj __proj = {}) const │ │ │ │ │ +2050 { │ │ │ │ │ +2051 return (*this)(ranges::begin(__r), ranges::end(__r), │ │ │ │ │ +2052 _s_t_d_:_:_m_o_v_e(__comp), _s_t_d_:_:_m_o_v_e(__proj)); │ │ │ │ │ +2053 } │ │ │ │ │ +2054 }; │ │ │ │ │ +2055 │ │ │ │ │ +2056 inline constexpr __is_sorted_fn is_sorted{}; │ │ │ │ │ +2057 │ │ │ │ │ +2058 struct __nth_element_fn │ │ │ │ │ +2059 { │ │ │ │ │ +2060 template _Sent, │ │ │ │ │ +2061 typename _Comp = ranges::less, typename _Proj = identity> │ │ │ │ │ +2062 requires sortable<_Iter, _Comp, _Proj> │ │ │ │ │ +2063 constexpr _Iter │ │ │ │ │ +2064 operator()(_Iter __first, _Iter __nth, _Sent __last, │ │ │ │ │ +2065 _Comp __comp = {}, _Proj __proj = {}) const │ │ │ │ │ +2066 { │ │ │ │ │ +2067 auto __lasti = ranges::next(__first, __last); │ │ │ │ │ +2068 _GLIBCXX_STD_A::nth_element(_s_t_d_:_:_m_o_v_e(__first), _s_t_d_:_:_m_o_v_e(__nth), │ │ │ │ │ +2069 __lasti, │ │ │ │ │ +2070 __detail::__make_comp_proj(__comp, __proj)); │ │ │ │ │ +2071 return __lasti; │ │ │ │ │ +2072 } │ │ │ │ │ +2073 │ │ │ │ │ +2074 template │ │ │ │ │ +2076 requires sortable, _Comp, _Proj> │ │ │ │ │ +2077 constexpr borrowed_iterator_t<_Range> │ │ │ │ │ +2078 operator()(_Range&& __r, iterator_t<_Range> __nth, │ │ │ │ │ +2079 _Comp __comp = {}, _Proj __proj = {}) const │ │ │ │ │ +2080 { │ │ │ │ │ +2081 return (*this)(ranges::begin(__r), _s_t_d_:_:_m_o_v_e(__nth), │ │ │ │ │ +2082 ranges::end(__r), _s_t_d_:_:_m_o_v_e(__comp), _s_t_d_:_:_m_o_v_e(__proj)); │ │ │ │ │ +2083 } │ │ │ │ │ +2084 }; │ │ │ │ │ +2085 │ │ │ │ │ +2086 inline constexpr __nth_element_fn nth_element{}; │ │ │ │ │ +2087 │ │ │ │ │ +2088 struct __lower_bound_fn │ │ │ │ │ +2089 { │ │ │ │ │ +2090 template _Sent, │ │ │ │ │ +2091 typename _Proj = identity, │ │ │ │ │ +2092 typename _Tp _GLIBCXX26_RANGE_ALGO_DEF_VAL_T(_Iter, _Proj), │ │ │ │ │ +2093 indirect_strict_weak_order> │ │ │ │ │ +2094 _Comp = ranges::less> │ │ │ │ │ +2095 constexpr _Iter │ │ │ │ │ +2096 operator()(_Iter __first, _Sent __last, │ │ │ │ │ +2097 const _Tp& __value, _Comp __comp = {}, _Proj __proj = {}) const │ │ │ │ │ +2098 { │ │ │ │ │ +2099 auto __len = ranges::distance(__first, __last); │ │ │ │ │ +2100 │ │ │ │ │ +2101 while (__len > 0) │ │ │ │ │ +2102 { │ │ │ │ │ +2103 auto __half = __len / 2; │ │ │ │ │ +2104 auto __middle = __first; │ │ │ │ │ +2105 ranges::advance(__middle, __half); │ │ │ │ │ +2106 if (_s_t_d_:_:_____i_n_v_o_k_e(__comp, _s_t_d_:_:_____i_n_v_o_k_e(__proj, *__middle), __value)) │ │ │ │ │ +2107 { │ │ │ │ │ +2108 __first = __middle; │ │ │ │ │ +2109 ++__first; │ │ │ │ │ +2110 __len = __len - __half - 1; │ │ │ │ │ +2111 } │ │ │ │ │ +2112 else │ │ │ │ │ +2113 __len = __half; │ │ │ │ │ +2114 } │ │ │ │ │ +2115 return __first; │ │ │ │ │ +2116 } │ │ │ │ │ +2117 │ │ │ │ │ +2118 template, _Proj), │ │ │ │ │ +2122 indirect_strict_weak_order, _Proj>> │ │ │ │ │ +2124 _Comp = ranges::less> │ │ │ │ │ +2125 constexpr borrowed_iterator_t<_Range> │ │ │ │ │ +2126 operator()(_Range&& __r, │ │ │ │ │ +2127 const _Tp& __value, _Comp __comp = {}, _Proj __proj = {}) const │ │ │ │ │ +2128 { │ │ │ │ │ +2129 return (*this)(ranges::begin(__r), ranges::end(__r), │ │ │ │ │ +2130 __value, _s_t_d_:_:_m_o_v_e(__comp), _s_t_d_:_:_m_o_v_e(__proj)); │ │ │ │ │ +2131 } │ │ │ │ │ +2132 }; │ │ │ │ │ +2133 │ │ │ │ │ +2134 inline constexpr __lower_bound_fn lower_bound{}; │ │ │ │ │ +2135 │ │ │ │ │ +2136 struct __upper_bound_fn │ │ │ │ │ +2137 { │ │ │ │ │ +2138 template _Sent, │ │ │ │ │ +2139 typename _Proj = identity, │ │ │ │ │ +2140 typename _Tp _GLIBCXX26_RANGE_ALGO_DEF_VAL_T(_Iter, _Proj), │ │ │ │ │ +2141 indirect_strict_weak_order> │ │ │ │ │ +2142 _Comp = ranges::less> │ │ │ │ │ +2143 constexpr _Iter │ │ │ │ │ +2144 operator()(_Iter __first, _Sent __last, │ │ │ │ │ +2145 const _Tp& __value, _Comp __comp = {}, _Proj __proj = {}) const │ │ │ │ │ +2146 { │ │ │ │ │ +2147 auto __len = ranges::distance(__first, __last); │ │ │ │ │ +2148 │ │ │ │ │ +2149 while (__len > 0) │ │ │ │ │ +2150 { │ │ │ │ │ +2151 auto __half = __len / 2; │ │ │ │ │ +2152 auto __middle = __first; │ │ │ │ │ +2153 ranges::advance(__middle, __half); │ │ │ │ │ +2154 if (_s_t_d_:_:_____i_n_v_o_k_e(__comp, __value, _s_t_d_:_:_____i_n_v_o_k_e(__proj, *__middle))) │ │ │ │ │ +2155 __len = __half; │ │ │ │ │ +2156 else │ │ │ │ │ +2157 { │ │ │ │ │ +2158 __first = __middle; │ │ │ │ │ +2159 ++__first; │ │ │ │ │ +2160 __len = __len - __half - 1; │ │ │ │ │ +2161 } │ │ │ │ │ +2162 } │ │ │ │ │ +2163 return __first; │ │ │ │ │ +2164 } │ │ │ │ │ +2165 │ │ │ │ │ +2166 template, _Proj), │ │ │ │ │ +2170 indirect_strict_weak_order, _Proj>> │ │ │ │ │ +2172 _Comp = ranges::less> │ │ │ │ │ +2173 constexpr borrowed_iterator_t<_Range> │ │ │ │ │ +2174 operator()(_Range&& __r, │ │ │ │ │ +2175 const _Tp& __value, _Comp __comp = {}, _Proj __proj = {}) const │ │ │ │ │ +2176 { │ │ │ │ │ +2177 return (*this)(ranges::begin(__r), ranges::end(__r), │ │ │ │ │ +2178 __value, _s_t_d_:_:_m_o_v_e(__comp), _s_t_d_:_:_m_o_v_e(__proj)); │ │ │ │ │ +2179 } │ │ │ │ │ +2180 }; │ │ │ │ │ +2181 │ │ │ │ │ +2182 inline constexpr __upper_bound_fn upper_bound{}; │ │ │ │ │ +2183 │ │ │ │ │ +2184 struct __equal_range_fn │ │ │ │ │ +2185 { │ │ │ │ │ +2186 template _Sent, │ │ │ │ │ +2187 typename _Proj = identity, │ │ │ │ │ +2188 typename _Tp _GLIBCXX26_RANGE_ALGO_DEF_VAL_T(_Iter, _Proj), │ │ │ │ │ +2189 indirect_strict_weak_order> │ │ │ │ │ +2190 _Comp = ranges::less> │ │ │ │ │ +2191 constexpr subrange<_Iter> │ │ │ │ │ +2192 operator()(_Iter __first, _Sent __last, │ │ │ │ │ +2193 const _Tp& __value, _Comp __comp = {}, _Proj __proj = {}) const │ │ │ │ │ +2194 { │ │ │ │ │ +2195 auto __len = ranges::distance(__first, __last); │ │ │ │ │ +2196 │ │ │ │ │ +2197 while (__len > 0) │ │ │ │ │ +2198 { │ │ │ │ │ +2199 auto __half = __len / 2; │ │ │ │ │ +2200 auto __middle = __first; │ │ │ │ │ +2201 ranges::advance(__middle, __half); │ │ │ │ │ +2202 if (_s_t_d_:_:_____i_n_v_o_k_e(__comp, │ │ │ │ │ +2203 _s_t_d_:_:_____i_n_v_o_k_e(__proj, *__middle), │ │ │ │ │ +2204 __value)) │ │ │ │ │ +2205 { │ │ │ │ │ +2206 __first = __middle; │ │ │ │ │ +2207 ++__first; │ │ │ │ │ +2208 __len = __len - __half - 1; │ │ │ │ │ +2209 } │ │ │ │ │ +2210 else if (_s_t_d_:_:_____i_n_v_o_k_e(__comp, │ │ │ │ │ +2211 __value, │ │ │ │ │ +2212 _s_t_d_:_:_____i_n_v_o_k_e(__proj, *__middle))) │ │ │ │ │ +2213 __len = __half; │ │ │ │ │ +2214 else │ │ │ │ │ +2215 { │ │ │ │ │ +2216 auto __left │ │ │ │ │ +2217 = ranges::lower_bound(__first, __middle, │ │ │ │ │ +2218 __value, __comp, __proj); │ │ │ │ │ +2219 ranges::advance(__first, __len); │ │ │ │ │ +2220 auto __right │ │ │ │ │ +2221 = ranges::upper_bound(++__middle, __first, │ │ │ │ │ +2222 __value, __comp, __proj); │ │ │ │ │ +2223 return {__left, __right}; │ │ │ │ │ +2224 } │ │ │ │ │ +2225 } │ │ │ │ │ +2226 return {__first, __first}; │ │ │ │ │ +2227 } │ │ │ │ │ +2228 │ │ │ │ │ +2229 template, _Proj), │ │ │ │ │ +2233 indirect_strict_weak_order, _Proj>> │ │ │ │ │ +2235 _Comp = ranges::less> │ │ │ │ │ +2236 constexpr borrowed_subrange_t<_Range> │ │ │ │ │ +2237 operator()(_Range&& __r, const _Tp& __value, │ │ │ │ │ +2238 _Comp __comp = {}, _Proj __proj = {}) const │ │ │ │ │ +2239 { │ │ │ │ │ +2240 return (*this)(ranges::begin(__r), ranges::end(__r), │ │ │ │ │ +2241 __value, _s_t_d_:_:_m_o_v_e(__comp), _s_t_d_:_:_m_o_v_e(__proj)); │ │ │ │ │ +2242 } │ │ │ │ │ +2243 }; │ │ │ │ │ +2244 │ │ │ │ │ +2245 inline constexpr __equal_range_fn equal_range{}; │ │ │ │ │ +2246 │ │ │ │ │ +2247 struct __binary_search_fn │ │ │ │ │ +2248 { │ │ │ │ │ +2249 template _Sent, │ │ │ │ │ +2250 typename _Proj = identity, │ │ │ │ │ +2251 typename _Tp _GLIBCXX26_RANGE_ALGO_DEF_VAL_T(_Iter, _Proj), │ │ │ │ │ +2252 indirect_strict_weak_order> │ │ │ │ │ +2253 _Comp = ranges::less> │ │ │ │ │ +2254 constexpr bool │ │ │ │ │ +2255 operator()(_Iter __first, _Sent __last, │ │ │ │ │ +2256 const _Tp& __value, _Comp __comp = {}, _Proj __proj = {}) const │ │ │ │ │ +2257 { │ │ │ │ │ +2258 auto __i = ranges::lower_bound(__first, __last, __value, __comp, __proj); │ │ │ │ │ +2259 if (__i == __last) │ │ │ │ │ +2260 return false; │ │ │ │ │ +2261 return !(bool)_s_t_d_:_:_____i_n_v_o_k_e(__comp, __value, │ │ │ │ │ +2262 _s_t_d_:_:_____i_n_v_o_k_e(__proj, *__i)); │ │ │ │ │ +2263 } │ │ │ │ │ +2264 │ │ │ │ │ +2265 template, _Proj), │ │ │ │ │ +2269 indirect_strict_weak_order, _Proj>> │ │ │ │ │ +2271 _Comp = ranges::less> │ │ │ │ │ +2272 constexpr bool │ │ │ │ │ +2273 operator()(_Range&& __r, const _Tp& __value, _Comp __comp = {}, │ │ │ │ │ +2274 _Proj __proj = {}) const │ │ │ │ │ +2275 { │ │ │ │ │ +2276 return (*this)(ranges::begin(__r), ranges::end(__r), │ │ │ │ │ +2277 __value, _s_t_d_:_:_m_o_v_e(__comp), _s_t_d_:_:_m_o_v_e(__proj)); │ │ │ │ │ +2278 } │ │ │ │ │ +2279 }; │ │ │ │ │ +2280 │ │ │ │ │ +2281 inline constexpr __binary_search_fn binary_search{}; │ │ │ │ │ +2282 │ │ │ │ │ +2283 struct __is_partitioned_fn │ │ │ │ │ +2284 { │ │ │ │ │ +2285 template _Sent, │ │ │ │ │ +2286 typename _Proj = identity, │ │ │ │ │ +2287 indirect_unary_predicate> _Pred> │ │ │ │ │ +2288 constexpr bool │ │ │ │ │ +2289 operator()(_Iter __first, _Sent __last, │ │ │ │ │ +2290 _Pred __pred, _Proj __proj = {}) const │ │ │ │ │ +2291 { │ │ │ │ │ +2292 __first = ranges::find_if_not(_s_t_d_:_:_m_o_v_e(__first), __last, │ │ │ │ │ +2293 __pred, __proj); │ │ │ │ │ +2294 if (__first == __last) │ │ │ │ │ +2295 return true; │ │ │ │ │ +2296 ++__first; │ │ │ │ │ +2297 return ranges::none_of(_s_t_d_:_:_m_o_v_e(__first), _s_t_d_:_:_m_o_v_e(__last), │ │ │ │ │ +2298 _s_t_d_:_:_m_o_v_e(__pred), _s_t_d_:_:_m_o_v_e(__proj)); │ │ │ │ │ +2299 } │ │ │ │ │ +2300 │ │ │ │ │ +2301 template, _Proj>> │ │ │ │ │ +2303 _Pred> │ │ │ │ │ +2304 constexpr bool │ │ │ │ │ +2305 operator()(_Range&& __r, _Pred __pred, _Proj __proj = {}) const │ │ │ │ │ +2306 { │ │ │ │ │ +2307 return (*this)(ranges::begin(__r), ranges::end(__r), │ │ │ │ │ +2308 _s_t_d_:_:_m_o_v_e(__pred), _s_t_d_:_:_m_o_v_e(__proj)); │ │ │ │ │ +2309 } │ │ │ │ │ +2310 }; │ │ │ │ │ +2311 │ │ │ │ │ +2312 inline constexpr __is_partitioned_fn is_partitioned{}; │ │ │ │ │ +2313 │ │ │ │ │ +2314 struct __partition_fn │ │ │ │ │ +2315 { │ │ │ │ │ +2316 template _Sent, │ │ │ │ │ +2317 typename _Proj = identity, │ │ │ │ │ +2318 indirect_unary_predicate> _Pred> │ │ │ │ │ +2319 constexpr subrange<_Iter> │ │ │ │ │ +2320 operator()(_Iter __first, _Sent __last, │ │ │ │ │ +2321 _Pred __pred, _Proj __proj = {}) const │ │ │ │ │ +2322 { │ │ │ │ │ +2323 if constexpr (bidirectional_iterator<_Iter>) │ │ │ │ │ +2324 { │ │ │ │ │ +2325 auto __lasti = ranges::next(__first, __last); │ │ │ │ │ +2326 auto __tail = __lasti; │ │ │ │ │ +2327 for (;;) │ │ │ │ │ +2328 { │ │ │ │ │ +2329 for (;;) │ │ │ │ │ +2330 if (__first == __tail) │ │ │ │ │ +2331 return {_s_t_d_:_:_m_o_v_e(__first), _s_t_d_:_:_m_o_v_e(__lasti)}; │ │ │ │ │ +2332 else if (_s_t_d_:_:_____i_n_v_o_k_e(__pred, │ │ │ │ │ +2333 _s_t_d_:_:_____i_n_v_o_k_e(__proj, *__first))) │ │ │ │ │ +2334 ++__first; │ │ │ │ │ +2335 else │ │ │ │ │ +2336 break; │ │ │ │ │ +2337 --__tail; │ │ │ │ │ +2338 for (;;) │ │ │ │ │ +2339 if (__first == __tail) │ │ │ │ │ +2340 return {_s_t_d_:_:_m_o_v_e(__first), _s_t_d_:_:_m_o_v_e(__lasti)}; │ │ │ │ │ +2341 else if (!(bool)_s_t_d_:_:_____i_n_v_o_k_e(__pred, │ │ │ │ │ +2342 _s_t_d_:_:_____i_n_v_o_k_e(__proj, *__tail))) │ │ │ │ │ +2343 --__tail; │ │ │ │ │ +2344 else │ │ │ │ │ +2345 break; │ │ │ │ │ +2346 ranges::iter_swap(__first, __tail); │ │ │ │ │ +2347 ++__first; │ │ │ │ │ +2348 } │ │ │ │ │ +2349 } │ │ │ │ │ +2350 else │ │ │ │ │ +2351 { │ │ │ │ │ +2352 if (__first == __last) │ │ │ │ │ +2353 return {__first, __first}; │ │ │ │ │ +2354 │ │ │ │ │ +2355 while (_s_t_d_:_:_____i_n_v_o_k_e(__pred, _s_t_d_:_:_____i_n_v_o_k_e(__proj, *__first))) │ │ │ │ │ +2356 if (++__first == __last) │ │ │ │ │ +2357 return {__first, __first}; │ │ │ │ │ +2358 │ │ │ │ │ +2359 auto __next = __first; │ │ │ │ │ +2360 while (++__next != __last) │ │ │ │ │ +2361 if (_s_t_d_:_:_____i_n_v_o_k_e(__pred, _s_t_d_:_:_____i_n_v_o_k_e(__proj, *__next))) │ │ │ │ │ +2362 { │ │ │ │ │ +2363 ranges::iter_swap(__first, __next); │ │ │ │ │ +2364 ++__first; │ │ │ │ │ +2365 } │ │ │ │ │ +2366 │ │ │ │ │ +2367 return {_s_t_d_:_:_m_o_v_e(__first), _s_t_d_:_:_m_o_v_e(__next)}; │ │ │ │ │ +2368 } │ │ │ │ │ +2369 } │ │ │ │ │ +2370 │ │ │ │ │ +2371 template, _Proj>> │ │ │ │ │ +2373 _Pred> │ │ │ │ │ +2374 requires permutable> │ │ │ │ │ +2375 constexpr borrowed_subrange_t<_Range> │ │ │ │ │ +2376 operator()(_Range&& __r, _Pred __pred, _Proj __proj = {}) const │ │ │ │ │ +2377 { │ │ │ │ │ +2378 return (*this)(ranges::begin(__r), ranges::end(__r), │ │ │ │ │ +2379 _s_t_d_:_:_m_o_v_e(__pred), _s_t_d_:_:_m_o_v_e(__proj)); │ │ │ │ │ +2380 } │ │ │ │ │ +2381 }; │ │ │ │ │ +2382 │ │ │ │ │ +2383 inline constexpr __partition_fn partition{}; │ │ │ │ │ +2384 │ │ │ │ │ +2385#if _GLIBCXX_HOSTED │ │ │ │ │ +2386 struct __stable_partition_fn │ │ │ │ │ +2387 { │ │ │ │ │ +2388 template _Sent, │ │ │ │ │ +2389 typename _Proj = identity, │ │ │ │ │ +2390 indirect_unary_predicate> _Pred> │ │ │ │ │ +2391 requires permutable<_Iter> │ │ │ │ │ +2392 subrange<_Iter> │ │ │ │ │ +2393 operator()(_Iter __first, _Sent __last, │ │ │ │ │ +2394 _Pred __pred, _Proj __proj = {}) const │ │ │ │ │ +2395 { │ │ │ │ │ +2396 auto __lasti = ranges::next(__first, __last); │ │ │ │ │ +2397 auto __middle │ │ │ │ │ +2398 = std::stable_partition(_s_t_d_:_:_m_o_v_e(__first), __lasti, │ │ │ │ │ +2399 __detail::__make_pred_proj(__pred, __proj)); │ │ │ │ │ +2400 return {_s_t_d_:_:_m_o_v_e(__middle), _s_t_d_:_:_m_o_v_e(__lasti)}; │ │ │ │ │ +2401 } │ │ │ │ │ +2402 │ │ │ │ │ +2403 template, _Proj>> │ │ │ │ │ +2405 _Pred> │ │ │ │ │ +2406 requires permutable> │ │ │ │ │ +2407 borrowed_subrange_t<_Range> │ │ │ │ │ +2408 operator()(_Range&& __r, _Pred __pred, _Proj __proj = {}) const │ │ │ │ │ +2409 { │ │ │ │ │ +2410 return (*this)(ranges::begin(__r), ranges::end(__r), │ │ │ │ │ +2411 _s_t_d_:_:_m_o_v_e(__pred), _s_t_d_:_:_m_o_v_e(__proj)); │ │ │ │ │ +2412 } │ │ │ │ │ +2413 }; │ │ │ │ │ +2414 │ │ │ │ │ +2415 inline constexpr __stable_partition_fn stable_partition{}; │ │ │ │ │ +2416#endif │ │ │ │ │ +2417 │ │ │ │ │ +2418 template │ │ │ │ │ +2419 struct in_out_out_result │ │ │ │ │ +2420 { │ │ │ │ │ +2421 [[no_unique_address]] _Iter in; │ │ │ │ │ +2422 [[no_unique_address]] _Out1 out1; │ │ │ │ │ +2423 [[no_unique_address]] _Out2 out2; │ │ │ │ │ +2424 │ │ │ │ │ +2425 template │ │ │ │ │ +2426 requires convertible_to │ │ │ │ │ +2427 && convertible_to │ │ │ │ │ +2428 && convertible_to │ │ │ │ │ +2429 constexpr │ │ │ │ │ +2430 operator in_out_out_result<_IIter, _OOut1, _OOut2>() const & │ │ │ │ │ +2431 { return {in, out1, out2}; } │ │ │ │ │ +2432 │ │ │ │ │ +2433 template │ │ │ │ │ +2434 requires convertible_to<_Iter, _IIter> │ │ │ │ │ +2435 && convertible_to<_Out1, _OOut1> │ │ │ │ │ +2436 && convertible_to<_Out2, _OOut2> │ │ │ │ │ +2437 constexpr │ │ │ │ │ +2438 operator in_out_out_result<_IIter, _OOut1, _OOut2>() && │ │ │ │ │ +2439 { return {_s_t_d_:_:_m_o_v_e(in), _s_t_d_:_:_m_o_v_e(out1), _s_t_d_:_:_m_o_v_e(out2)}; } │ │ │ │ │ +2440 }; │ │ │ │ │ +2441 │ │ │ │ │ +2442 template │ │ │ │ │ +2443 using partition_copy_result = in_out_out_result<_Iter, _Out1, _Out2>; │ │ │ │ │ +2444 │ │ │ │ │ +2445 struct __partition_copy_fn │ │ │ │ │ +2446 { │ │ │ │ │ +2447 template _Sent, │ │ │ │ │ +2448 weakly_incrementable _Out1, weakly_incrementable _Out2, │ │ │ │ │ +2449 typename _Proj = identity, │ │ │ │ │ +2450 indirect_unary_predicate> _Pred> │ │ │ │ │ +2451 requires indirectly_copyable<_Iter, _Out1> │ │ │ │ │ +2452 && indirectly_copyable<_Iter, _Out2> │ │ │ │ │ +2453 constexpr partition_copy_result<_Iter, _Out1, _Out2> │ │ │ │ │ +2454 operator()(_Iter __first, _Sent __last, │ │ │ │ │ +2455 _Out1 __out_true, _Out2 __out_false, │ │ │ │ │ +2456 _Pred __pred, _Proj __proj = {}) const │ │ │ │ │ +2457 { │ │ │ │ │ +2458 for (; __first != __last; ++__first) │ │ │ │ │ +2459 if (_s_t_d_:_:_____i_n_v_o_k_e(__pred, _s_t_d_:_:_____i_n_v_o_k_e(__proj, *__first))) │ │ │ │ │ +2460 { │ │ │ │ │ +2461 *__out_true = *__first; │ │ │ │ │ +2462 ++__out_true; │ │ │ │ │ +2463 } │ │ │ │ │ +2464 else │ │ │ │ │ +2465 { │ │ │ │ │ +2466 *__out_false = *__first; │ │ │ │ │ +2467 ++__out_false; │ │ │ │ │ +2468 } │ │ │ │ │ +2469 │ │ │ │ │ +2470 return {_s_t_d_:_:_m_o_v_e(__first), │ │ │ │ │ +2471 _s_t_d_:_:_m_o_v_e(__out_true), _s_t_d_:_:_m_o_v_e(__out_false)}; │ │ │ │ │ +2472 } │ │ │ │ │ +2473 │ │ │ │ │ +2474 template, _Proj>> │ │ │ │ │ +2478 _Pred> │ │ │ │ │ +2479 requires indirectly_copyable, _Out1> │ │ │ │ │ +2480 && indirectly_copyable, _Out2> │ │ │ │ │ +2481 constexpr partition_copy_result, _Out1, _Out2> │ │ │ │ │ +2482 operator()(_Range&& __r, _Out1 __out_true, _Out2 __out_false, │ │ │ │ │ +2483 _Pred __pred, _Proj __proj = {}) const │ │ │ │ │ +2484 { │ │ │ │ │ +2485 return (*this)(ranges::begin(__r), ranges::end(__r), │ │ │ │ │ +2486 _s_t_d_:_:_m_o_v_e(__out_true), _s_t_d_:_:_m_o_v_e(__out_false), │ │ │ │ │ +2487 _s_t_d_:_:_m_o_v_e(__pred), _s_t_d_:_:_m_o_v_e(__proj)); │ │ │ │ │ +2488 } │ │ │ │ │ +2489 }; │ │ │ │ │ +2490 │ │ │ │ │ +2491 inline constexpr __partition_copy_fn partition_copy{}; │ │ │ │ │ +2492 │ │ │ │ │ +2493 struct __partition_point_fn │ │ │ │ │ +2494 { │ │ │ │ │ +2495 template _Sent, │ │ │ │ │ +2496 typename _Proj = identity, │ │ │ │ │ +2497 indirect_unary_predicate> _Pred> │ │ │ │ │ +2498 constexpr _Iter │ │ │ │ │ +2499 operator()(_Iter __first, _Sent __last, │ │ │ │ │ +2500 _Pred __pred, _Proj __proj = {}) const │ │ │ │ │ +2501 { │ │ │ │ │ +2502 auto __len = ranges::distance(__first, __last); │ │ │ │ │ +2503 │ │ │ │ │ +2504 while (__len > 0) │ │ │ │ │ +2505 { │ │ │ │ │ +2506 auto __half = __len / 2; │ │ │ │ │ +2507 auto __middle = __first; │ │ │ │ │ +2508 ranges::advance(__middle, __half); │ │ │ │ │ +2509 if (_s_t_d_:_:_____i_n_v_o_k_e(__pred, _s_t_d_:_:_____i_n_v_o_k_e(__proj, *__middle))) │ │ │ │ │ +2510 { │ │ │ │ │ +2511 __first = __middle; │ │ │ │ │ +2512 ++__first; │ │ │ │ │ +2513 __len = __len - __half - 1; │ │ │ │ │ +2514 } │ │ │ │ │ +2515 else │ │ │ │ │ +2516 __len = __half; │ │ │ │ │ +2517 } │ │ │ │ │ +2518 return __first; │ │ │ │ │ +2519 } │ │ │ │ │ +2520 │ │ │ │ │ +2521 template, _Proj>> │ │ │ │ │ +2523 _Pred> │ │ │ │ │ +2524 constexpr borrowed_iterator_t<_Range> │ │ │ │ │ +2525 operator()(_Range&& __r, _Pred __pred, _Proj __proj = {}) const │ │ │ │ │ +2526 { │ │ │ │ │ +2527 return (*this)(ranges::begin(__r), ranges::end(__r), │ │ │ │ │ +2528 _s_t_d_:_:_m_o_v_e(__pred), _s_t_d_:_:_m_o_v_e(__proj)); │ │ │ │ │ +2529 } │ │ │ │ │ +2530 }; │ │ │ │ │ +2531 │ │ │ │ │ +2532 inline constexpr __partition_point_fn partition_point{}; │ │ │ │ │ +2533 │ │ │ │ │ +2534 template │ │ │ │ │ +2535 using merge_result = in_in_out_result<_Iter1, _Iter2, _Out>; │ │ │ │ │ +2536 │ │ │ │ │ +2537 struct __merge_fn │ │ │ │ │ +2538 { │ │ │ │ │ +2539 template _Sent1, │ │ │ │ │ +2540 input_iterator _Iter2, sentinel_for<_Iter2> _Sent2, │ │ │ │ │ +2541 weakly_incrementable _Out, typename _Comp = ranges::less, │ │ │ │ │ +2542 typename _Proj1 = identity, typename _Proj2 = identity> │ │ │ │ │ +2543 requires mergeable<_Iter1, _Iter2, _Out, _Comp, _Proj1, _Proj2> │ │ │ │ │ +2544 constexpr merge_result<_Iter1, _Iter2, _Out> │ │ │ │ │ +2545 operator()(_Iter1 __first1, _Sent1 __last1, │ │ │ │ │ +2546 _Iter2 __first2, _Sent2 __last2, _Out __result, │ │ │ │ │ +2547 _Comp __comp = {}, │ │ │ │ │ +2548 _Proj1 __proj1 = {}, _Proj2 __proj2 = {}) const │ │ │ │ │ +2549 { │ │ │ │ │ +2550 while (__first1 != __last1 && __first2 != __last2) │ │ │ │ │ +2551 { │ │ │ │ │ +2552 if (_s_t_d_:_:_____i_n_v_o_k_e(__comp, │ │ │ │ │ +2553 _s_t_d_:_:_____i_n_v_o_k_e(__proj2, *__first2), │ │ │ │ │ +2554 _s_t_d_:_:_____i_n_v_o_k_e(__proj1, *__first1))) │ │ │ │ │ +2555 { │ │ │ │ │ +2556 *__result = *__first2; │ │ │ │ │ +2557 ++__first2; │ │ │ │ │ +2558 } │ │ │ │ │ +2559 else │ │ │ │ │ +2560 { │ │ │ │ │ +2561 *__result = *__first1; │ │ │ │ │ +2562 ++__first1; │ │ │ │ │ +2563 } │ │ │ │ │ +2564 ++__result; │ │ │ │ │ +2565 } │ │ │ │ │ +2566 auto __copy1 = ranges::copy(_s_t_d_:_:_m_o_v_e(__first1), _s_t_d_:_:_m_o_v_e(__last1), │ │ │ │ │ +2567 _s_t_d_:_:_m_o_v_e(__result)); │ │ │ │ │ +2568 auto __copy2 = ranges::copy(_s_t_d_:_:_m_o_v_e(__first2), _s_t_d_:_:_m_o_v_e(__last2), │ │ │ │ │ +2569 _s_t_d_:_:_m_o_v_e(__copy1.out)); │ │ │ │ │ +2570 return { _s_t_d_:_:_m_o_v_e(__copy1.in), _s_t_d_:_:_m_o_v_e(__copy2.in), │ │ │ │ │ +2571 _s_t_d_:_:_m_o_v_e(__copy2.out) }; │ │ │ │ │ +2572 } │ │ │ │ │ +2573 │ │ │ │ │ +2574 template │ │ │ │ │ +2577 requires mergeable, iterator_t<_Range2>, _Out, │ │ │ │ │ +2578 _Comp, _Proj1, _Proj2> │ │ │ │ │ +2579 constexpr merge_result, │ │ │ │ │ +2580 borrowed_iterator_t<_Range2>, │ │ │ │ │ +2581 _Out> │ │ │ │ │ +2582 operator()(_Range1&& __r1, _Range2&& __r2, _Out __result, │ │ │ │ │ +2583 _Comp __comp = {}, │ │ │ │ │ +2584 _Proj1 __proj1 = {}, _Proj2 __proj2 = {}) const │ │ │ │ │ +2585 { │ │ │ │ │ +2586 return (*this)(ranges::begin(__r1), ranges::end(__r1), │ │ │ │ │ +2587 ranges::begin(__r2), ranges::end(__r2), │ │ │ │ │ +2588 _s_t_d_:_:_m_o_v_e(__result), _s_t_d_:_:_m_o_v_e(__comp), │ │ │ │ │ +2589 _s_t_d_:_:_m_o_v_e(__proj1), _s_t_d_:_:_m_o_v_e(__proj2)); │ │ │ │ │ +2590 } │ │ │ │ │ +2591 }; │ │ │ │ │ +2592 │ │ │ │ │ +2593 inline constexpr __merge_fn merge{}; │ │ │ │ │ +2594 │ │ │ │ │ +2595 struct __inplace_merge_fn │ │ │ │ │ +2596 { │ │ │ │ │ +2597 template _Sent, │ │ │ │ │ +2598 typename _Comp = ranges::less, │ │ │ │ │ +2599 typename _Proj = identity> │ │ │ │ │ +2600 requires sortable<_Iter, _Comp, _Proj> │ │ │ │ │ +2601 _Iter │ │ │ │ │ +2602 operator()(_Iter __first, _Iter __middle, _Sent __last, │ │ │ │ │ +2603 _Comp __comp = {}, _Proj __proj = {}) const │ │ │ │ │ +2604 { │ │ │ │ │ +2605 auto __lasti = ranges::next(__first, __last); │ │ │ │ │ +2606 std::inplace_merge(_s_t_d_:_:_m_o_v_e(__first), _s_t_d_:_:_m_o_v_e(__middle), __lasti, │ │ │ │ │ +2607 __detail::__make_comp_proj(__comp, __proj)); │ │ │ │ │ +2608 return __lasti; │ │ │ │ │ +2609 } │ │ │ │ │ +2610 │ │ │ │ │ +2611 template │ │ │ │ │ +2613 requires sortable, _Comp, _Proj> │ │ │ │ │ +2614 borrowed_iterator_t<_Range> │ │ │ │ │ +2615 operator()(_Range&& __r, iterator_t<_Range> __middle, │ │ │ │ │ +2616 _Comp __comp = {}, _Proj __proj = {}) const │ │ │ │ │ +2617 { │ │ │ │ │ +2618 return (*this)(ranges::begin(__r), _s_t_d_:_:_m_o_v_e(__middle), │ │ │ │ │ +2619 ranges::end(__r), │ │ │ │ │ +2620 _s_t_d_:_:_m_o_v_e(__comp), _s_t_d_:_:_m_o_v_e(__proj)); │ │ │ │ │ +2621 } │ │ │ │ │ +2622 }; │ │ │ │ │ +2623 │ │ │ │ │ +2624 inline constexpr __inplace_merge_fn inplace_merge{}; │ │ │ │ │ +2625 │ │ │ │ │ +2626 struct __includes_fn │ │ │ │ │ +2627 { │ │ │ │ │ +2628 template _Sent1, │ │ │ │ │ +2629 input_iterator _Iter2, sentinel_for<_Iter2> _Sent2, │ │ │ │ │ +2630 typename _Proj1 = identity, typename _Proj2 = identity, │ │ │ │ │ +2631 indirect_strict_weak_order, │ │ │ │ │ +2632 projected<_Iter2, _Proj2>> │ │ │ │ │ +2633 _Comp = ranges::less> │ │ │ │ │ +2634 constexpr bool │ │ │ │ │ +2635 operator()(_Iter1 __first1, _Sent1 __last1, │ │ │ │ │ +2636 _Iter2 __first2, _Sent2 __last2, │ │ │ │ │ +2637 _Comp __comp = {}, │ │ │ │ │ +2638 _Proj1 __proj1 = {}, _Proj2 __proj2 = {}) const │ │ │ │ │ +2639 { │ │ │ │ │ +2640 while (__first1 != __last1 && __first2 != __last2) │ │ │ │ │ +2641 if (_s_t_d_:_:_____i_n_v_o_k_e(__comp, │ │ │ │ │ +2642 _s_t_d_:_:_____i_n_v_o_k_e(__proj2, *__first2), │ │ │ │ │ +2643 _s_t_d_:_:_____i_n_v_o_k_e(__proj1, *__first1))) │ │ │ │ │ +2644 return false; │ │ │ │ │ +2645 else if (_s_t_d_:_:_____i_n_v_o_k_e(__comp, │ │ │ │ │ +2646 _s_t_d_:_:_____i_n_v_o_k_e(__proj1, *__first1), │ │ │ │ │ +2647 _s_t_d_:_:_____i_n_v_o_k_e(__proj2, *__first2))) │ │ │ │ │ +2648 ++__first1; │ │ │ │ │ +2649 else │ │ │ │ │ +2650 { │ │ │ │ │ +2651 ++__first1; │ │ │ │ │ +2652 ++__first2; │ │ │ │ │ +2653 } │ │ │ │ │ +2654 │ │ │ │ │ +2655 return __first2 == __last2; │ │ │ │ │ +2656 } │ │ │ │ │ +2657 │ │ │ │ │ +2658 template, _Proj1>, │ │ │ │ │ +2661 projected, _Proj2>> │ │ │ │ │ +2662 _Comp = ranges::less> │ │ │ │ │ +2663 constexpr bool │ │ │ │ │ +2664 operator()(_Range1&& __r1, _Range2&& __r2, _Comp __comp = {}, │ │ │ │ │ +2665 _Proj1 __proj1 = {}, _Proj2 __proj2 = {}) const │ │ │ │ │ +2666 { │ │ │ │ │ +2667 return (*this)(ranges::begin(__r1), ranges::end(__r1), │ │ │ │ │ +2668 ranges::begin(__r2), ranges::end(__r2), │ │ │ │ │ +2669 _s_t_d_:_:_m_o_v_e(__comp), │ │ │ │ │ +2670 _s_t_d_:_:_m_o_v_e(__proj1), _s_t_d_:_:_m_o_v_e(__proj2)); │ │ │ │ │ +2671 } │ │ │ │ │ +2672 }; │ │ │ │ │ +2673 │ │ │ │ │ +2674 inline constexpr __includes_fn includes{}; │ │ │ │ │ +2675 │ │ │ │ │ +2676 template │ │ │ │ │ +2677 using set_union_result = in_in_out_result<_Iter1, _Iter2, _Out>; │ │ │ │ │ +2678 │ │ │ │ │ +2679 struct __set_union_fn │ │ │ │ │ +2680 { │ │ │ │ │ +2681 template _Sent1, │ │ │ │ │ +2682 input_iterator _Iter2, sentinel_for<_Iter2> _Sent2, │ │ │ │ │ +2683 weakly_incrementable _Out, typename _Comp = ranges::less, │ │ │ │ │ +2684 typename _Proj1 = identity, typename _Proj2 = identity> │ │ │ │ │ +2685 requires mergeable<_Iter1, _Iter2, _Out, _Comp, _Proj1, _Proj2> │ │ │ │ │ +2686 constexpr set_union_result<_Iter1, _Iter2, _Out> │ │ │ │ │ +2687 operator()(_Iter1 __first1, _Sent1 __last1, │ │ │ │ │ +2688 _Iter2 __first2, _Sent2 __last2, │ │ │ │ │ +2689 _Out __result, _Comp __comp = {}, │ │ │ │ │ +2690 _Proj1 __proj1 = {}, _Proj2 __proj2 = {}) const │ │ │ │ │ +2691 { │ │ │ │ │ +2692 while (__first1 != __last1 && __first2 != __last2) │ │ │ │ │ +2693 { │ │ │ │ │ +2694 if (_s_t_d_:_:_____i_n_v_o_k_e(__comp, │ │ │ │ │ +2695 _s_t_d_:_:_____i_n_v_o_k_e(__proj1, *__first1), │ │ │ │ │ +2696 _s_t_d_:_:_____i_n_v_o_k_e(__proj2, *__first2))) │ │ │ │ │ +2697 { │ │ │ │ │ +2698 *__result = *__first1; │ │ │ │ │ +2699 ++__first1; │ │ │ │ │ +2700 } │ │ │ │ │ +2701 else if (_s_t_d_:_:_____i_n_v_o_k_e(__comp, │ │ │ │ │ +2702 _s_t_d_:_:_____i_n_v_o_k_e(__proj2, *__first2), │ │ │ │ │ +2703 _s_t_d_:_:_____i_n_v_o_k_e(__proj1, *__first1))) │ │ │ │ │ +2704 { │ │ │ │ │ +2705 *__result = *__first2; │ │ │ │ │ +2706 ++__first2; │ │ │ │ │ +2707 } │ │ │ │ │ +2708 else │ │ │ │ │ +2709 { │ │ │ │ │ +2710 *__result = *__first1; │ │ │ │ │ +2711 ++__first1; │ │ │ │ │ +2712 ++__first2; │ │ │ │ │ +2713 } │ │ │ │ │ +2714 ++__result; │ │ │ │ │ +2715 } │ │ │ │ │ +2716 auto __copy1 = ranges::copy(_s_t_d_:_:_m_o_v_e(__first1), _s_t_d_:_:_m_o_v_e(__last1), │ │ │ │ │ +2717 _s_t_d_:_:_m_o_v_e(__result)); │ │ │ │ │ +2718 auto __copy2 = ranges::copy(_s_t_d_:_:_m_o_v_e(__first2), _s_t_d_:_:_m_o_v_e(__last2), │ │ │ │ │ +2719 _s_t_d_:_:_m_o_v_e(__copy1.out)); │ │ │ │ │ +2720 return {_s_t_d_:_:_m_o_v_e(__copy1.in), _s_t_d_:_:_m_o_v_e(__copy2.in), │ │ │ │ │ +2721 _s_t_d_:_:_m_o_v_e(__copy2.out)}; │ │ │ │ │ +2722 } │ │ │ │ │ +2723 │ │ │ │ │ +2724 template │ │ │ │ │ +2727 requires mergeable, iterator_t<_Range2>, _Out, │ │ │ │ │ +2728 _Comp, _Proj1, _Proj2> │ │ │ │ │ +2729 constexpr set_union_result, │ │ │ │ │ +2730 borrowed_iterator_t<_Range2>, _Out> │ │ │ │ │ +2731 operator()(_Range1&& __r1, _Range2&& __r2, │ │ │ │ │ +2732 _Out __result, _Comp __comp = {}, │ │ │ │ │ +2733 _Proj1 __proj1 = {}, _Proj2 __proj2 = {}) const │ │ │ │ │ +2734 { │ │ │ │ │ +2735 return (*this)(ranges::begin(__r1), ranges::end(__r1), │ │ │ │ │ +2736 ranges::begin(__r2), ranges::end(__r2), │ │ │ │ │ +2737 _s_t_d_:_:_m_o_v_e(__result), _s_t_d_:_:_m_o_v_e(__comp), │ │ │ │ │ +2738 _s_t_d_:_:_m_o_v_e(__proj1), _s_t_d_:_:_m_o_v_e(__proj2)); │ │ │ │ │ +2739 } │ │ │ │ │ +2740 }; │ │ │ │ │ +2741 │ │ │ │ │ +2742 inline constexpr __set_union_fn set_union{}; │ │ │ │ │ +2743 │ │ │ │ │ +2744 template │ │ │ │ │ +2745 using set_intersection_result = in_in_out_result<_Iter1, _Iter2, _Out>; │ │ │ │ │ +2746 │ │ │ │ │ +2747 struct __set_intersection_fn │ │ │ │ │ +2748 { │ │ │ │ │ +2749 template _Sent1, │ │ │ │ │ +2750 input_iterator _Iter2, sentinel_for<_Iter2> _Sent2, │ │ │ │ │ +2751 weakly_incrementable _Out, typename _Comp = ranges::less, │ │ │ │ │ +2752 typename _Proj1 = identity, typename _Proj2 = identity> │ │ │ │ │ +2753 requires mergeable<_Iter1, _Iter2, _Out, _Comp, _Proj1, _Proj2> │ │ │ │ │ +2754 constexpr set_intersection_result<_Iter1, _Iter2, _Out> │ │ │ │ │ +2755 operator()(_Iter1 __first1, _Sent1 __last1, │ │ │ │ │ +2756 _Iter2 __first2, _Sent2 __last2, _Out __result, │ │ │ │ │ +2757 _Comp __comp = {}, │ │ │ │ │ +2758 _Proj1 __proj1 = {}, _Proj2 __proj2 = {}) const │ │ │ │ │ +2759 { │ │ │ │ │ +2760 while (__first1 != __last1 && __first2 != __last2) │ │ │ │ │ +2761 if (_s_t_d_:_:_____i_n_v_o_k_e(__comp, │ │ │ │ │ +2762 _s_t_d_:_:_____i_n_v_o_k_e(__proj1, *__first1), │ │ │ │ │ +2763 _s_t_d_:_:_____i_n_v_o_k_e(__proj2, *__first2))) │ │ │ │ │ +2764 ++__first1; │ │ │ │ │ +2765 else if (_s_t_d_:_:_____i_n_v_o_k_e(__comp, │ │ │ │ │ +2766 _s_t_d_:_:_____i_n_v_o_k_e(__proj2, *__first2), │ │ │ │ │ +2767 _s_t_d_:_:_____i_n_v_o_k_e(__proj1, *__first1))) │ │ │ │ │ +2768 ++__first2; │ │ │ │ │ +2769 else │ │ │ │ │ +2770 { │ │ │ │ │ +2771 *__result = *__first1; │ │ │ │ │ +2772 ++__first1; │ │ │ │ │ +2773 ++__first2; │ │ │ │ │ +2774 ++__result; │ │ │ │ │ +2775 } │ │ │ │ │ +2776 // TODO: Eliminating these variables triggers an ICE. │ │ │ │ │ +2777 auto __last1i = ranges::next(_s_t_d_:_:_m_o_v_e(__first1), _s_t_d_:_:_m_o_v_e(__last1)); │ │ │ │ │ +2778 auto __last2i = ranges::next(_s_t_d_:_:_m_o_v_e(__first2), _s_t_d_:_:_m_o_v_e(__last2)); │ │ │ │ │ +2779 return {_s_t_d_:_:_m_o_v_e(__last1i), _s_t_d_:_:_m_o_v_e(__last2i), _s_t_d_:_:_m_o_v_e(__result)}; │ │ │ │ │ +2780 } │ │ │ │ │ +2781 │ │ │ │ │ +2782 template │ │ │ │ │ +2785 requires mergeable, iterator_t<_Range2>, _Out, │ │ │ │ │ +2786 _Comp, _Proj1, _Proj2> │ │ │ │ │ +2787 constexpr set_intersection_result, │ │ │ │ │ +2788 borrowed_iterator_t<_Range2>, _Out> │ │ │ │ │ +2789 operator()(_Range1&& __r1, _Range2&& __r2, _Out __result, │ │ │ │ │ +2790 _Comp __comp = {}, │ │ │ │ │ +2791 _Proj1 __proj1 = {}, _Proj2 __proj2 = {}) const │ │ │ │ │ +2792 { │ │ │ │ │ +2793 return (*this)(ranges::begin(__r1), ranges::end(__r1), │ │ │ │ │ +2794 ranges::begin(__r2), ranges::end(__r2), │ │ │ │ │ +2795 _s_t_d_:_:_m_o_v_e(__result), _s_t_d_:_:_m_o_v_e(__comp), │ │ │ │ │ +2796 _s_t_d_:_:_m_o_v_e(__proj1), _s_t_d_:_:_m_o_v_e(__proj2)); │ │ │ │ │ +2797 } │ │ │ │ │ +2798 }; │ │ │ │ │ +2799 │ │ │ │ │ +2800 inline constexpr __set_intersection_fn set_intersection{}; │ │ │ │ │ +2801 │ │ │ │ │ +2802 template │ │ │ │ │ +2803 using set_difference_result = in_out_result<_Iter, _Out>; │ │ │ │ │ +2804 │ │ │ │ │ +2805 struct __set_difference_fn │ │ │ │ │ +2806 { │ │ │ │ │ +2807 template _Sent1, │ │ │ │ │ +2808 input_iterator _Iter2, sentinel_for<_Iter2> _Sent2, │ │ │ │ │ +2809 weakly_incrementable _Out, typename _Comp = ranges::less, │ │ │ │ │ +2810 typename _Proj1 = identity, typename _Proj2 = identity> │ │ │ │ │ +2811 requires mergeable<_Iter1, _Iter2, _Out, _Comp, _Proj1, _Proj2> │ │ │ │ │ +2812 constexpr set_difference_result<_Iter1, _Out> │ │ │ │ │ +2813 operator()(_Iter1 __first1, _Sent1 __last1, │ │ │ │ │ +2814 _Iter2 __first2, _Sent2 __last2, _Out __result, │ │ │ │ │ +2815 _Comp __comp = {}, │ │ │ │ │ +2816 _Proj1 __proj1 = {}, _Proj2 __proj2 = {}) const │ │ │ │ │ +2817 { │ │ │ │ │ +2818 while (__first1 != __last1 && __first2 != __last2) │ │ │ │ │ +2819 if (_s_t_d_:_:_____i_n_v_o_k_e(__comp, │ │ │ │ │ +2820 _s_t_d_:_:_____i_n_v_o_k_e(__proj1, *__first1), │ │ │ │ │ +2821 _s_t_d_:_:_____i_n_v_o_k_e(__proj2, *__first2))) │ │ │ │ │ +2822 { │ │ │ │ │ +2823 *__result = *__first1; │ │ │ │ │ +2824 ++__first1; │ │ │ │ │ +2825 ++__result; │ │ │ │ │ +2826 } │ │ │ │ │ +2827 else if (_s_t_d_:_:_____i_n_v_o_k_e(__comp, │ │ │ │ │ +2828 _s_t_d_:_:_____i_n_v_o_k_e(__proj2, *__first2), │ │ │ │ │ +2829 _s_t_d_:_:_____i_n_v_o_k_e(__proj1, *__first1))) │ │ │ │ │ +2830 ++__first2; │ │ │ │ │ +2831 else │ │ │ │ │ +2832 { │ │ │ │ │ +2833 ++__first1; │ │ │ │ │ +2834 ++__first2; │ │ │ │ │ +2835 } │ │ │ │ │ +2836 return ranges::copy(_s_t_d_:_:_m_o_v_e(__first1), _s_t_d_:_:_m_o_v_e(__last1), │ │ │ │ │ +2837 _s_t_d_:_:_m_o_v_e(__result)); │ │ │ │ │ +2838 } │ │ │ │ │ +2839 │ │ │ │ │ +2840 template │ │ │ │ │ +2843 requires mergeable, iterator_t<_Range2>, _Out, │ │ │ │ │ +2844 _Comp, _Proj1, _Proj2> │ │ │ │ │ +2845 constexpr set_difference_result, _Out> │ │ │ │ │ +2846 operator()(_Range1&& __r1, _Range2&& __r2, _Out __result, │ │ │ │ │ +2847 _Comp __comp = {}, │ │ │ │ │ +2848 _Proj1 __proj1 = {}, _Proj2 __proj2 = {}) const │ │ │ │ │ +2849 { │ │ │ │ │ +2850 return (*this)(ranges::begin(__r1), ranges::end(__r1), │ │ │ │ │ +2851 ranges::begin(__r2), ranges::end(__r2), │ │ │ │ │ +2852 _s_t_d_:_:_m_o_v_e(__result), _s_t_d_:_:_m_o_v_e(__comp), │ │ │ │ │ +2853 _s_t_d_:_:_m_o_v_e(__proj1), _s_t_d_:_:_m_o_v_e(__proj2)); │ │ │ │ │ +2854 } │ │ │ │ │ +2855 }; │ │ │ │ │ +2856 │ │ │ │ │ +2857 inline constexpr __set_difference_fn set_difference{}; │ │ │ │ │ +2858 │ │ │ │ │ +2859 template │ │ │ │ │ +2860 using set_symmetric_difference_result │ │ │ │ │ +2861 = in_in_out_result<_Iter1, _Iter2, _Out>; │ │ │ │ │ +2862 │ │ │ │ │ +2863 struct __set_symmetric_difference_fn │ │ │ │ │ +2864 { │ │ │ │ │ +2865 template _Sent1, │ │ │ │ │ +2866 input_iterator _Iter2, sentinel_for<_Iter2> _Sent2, │ │ │ │ │ +2867 weakly_incrementable _Out, typename _Comp = ranges::less, │ │ │ │ │ +2868 typename _Proj1 = identity, typename _Proj2 = identity> │ │ │ │ │ +2869 requires mergeable<_Iter1, _Iter2, _Out, _Comp, _Proj1, _Proj2> │ │ │ │ │ +2870 constexpr set_symmetric_difference_result<_Iter1, _Iter2, _Out> │ │ │ │ │ +2871 operator()(_Iter1 __first1, _Sent1 __last1, │ │ │ │ │ +2872 _Iter2 __first2, _Sent2 __last2, │ │ │ │ │ +2873 _Out __result, _Comp __comp = {}, │ │ │ │ │ +2874 _Proj1 __proj1 = {}, _Proj2 __proj2 = {}) const │ │ │ │ │ +2875 { │ │ │ │ │ +2876 while (__first1 != __last1 && __first2 != __last2) │ │ │ │ │ +2877 if (_s_t_d_:_:_____i_n_v_o_k_e(__comp, │ │ │ │ │ +2878 _s_t_d_:_:_____i_n_v_o_k_e(__proj1, *__first1), │ │ │ │ │ +2879 _s_t_d_:_:_____i_n_v_o_k_e(__proj2, *__first2))) │ │ │ │ │ +2880 { │ │ │ │ │ +2881 *__result = *__first1; │ │ │ │ │ +2882 ++__first1; │ │ │ │ │ +2883 ++__result; │ │ │ │ │ +2884 } │ │ │ │ │ +2885 else if (_s_t_d_:_:_____i_n_v_o_k_e(__comp, │ │ │ │ │ +2886 _s_t_d_:_:_____i_n_v_o_k_e(__proj2, *__first2), │ │ │ │ │ +2887 _s_t_d_:_:_____i_n_v_o_k_e(__proj1, *__first1))) │ │ │ │ │ +2888 { │ │ │ │ │ +2889 *__result = *__first2; │ │ │ │ │ +2890 ++__first2; │ │ │ │ │ +2891 ++__result; │ │ │ │ │ +2892 } │ │ │ │ │ +2893 else │ │ │ │ │ +2894 { │ │ │ │ │ +2895 ++__first1; │ │ │ │ │ +2896 ++__first2; │ │ │ │ │ +2897 } │ │ │ │ │ +2898 auto __copy1 = ranges::copy(_s_t_d_:_:_m_o_v_e(__first1), _s_t_d_:_:_m_o_v_e(__last1), │ │ │ │ │ +2899 _s_t_d_:_:_m_o_v_e(__result)); │ │ │ │ │ +2900 auto __copy2 = ranges::copy(_s_t_d_:_:_m_o_v_e(__first2), _s_t_d_:_:_m_o_v_e(__last2), │ │ │ │ │ +2901 _s_t_d_:_:_m_o_v_e(__copy1.out)); │ │ │ │ │ +2902 return {_s_t_d_:_:_m_o_v_e(__copy1.in), _s_t_d_:_:_m_o_v_e(__copy2.in), │ │ │ │ │ +2903 _s_t_d_:_:_m_o_v_e(__copy2.out)}; │ │ │ │ │ +2904 } │ │ │ │ │ +2905 │ │ │ │ │ +2906 template │ │ │ │ │ +2909 requires mergeable, iterator_t<_Range2>, _Out, │ │ │ │ │ +2910 _Comp, _Proj1, _Proj2> │ │ │ │ │ +2911 constexpr set_symmetric_difference_result, │ │ │ │ │ +2912 borrowed_iterator_t<_Range2>, │ │ │ │ │ +2913 _Out> │ │ │ │ │ +2914 operator()(_Range1&& __r1, _Range2&& __r2, _Out __result, │ │ │ │ │ +2915 _Comp __comp = {}, │ │ │ │ │ +2916 _Proj1 __proj1 = {}, _Proj2 __proj2 = {}) const │ │ │ │ │ +2917 { │ │ │ │ │ +2918 return (*this)(ranges::begin(__r1), ranges::end(__r1), │ │ │ │ │ +2919 ranges::begin(__r2), ranges::end(__r2), │ │ │ │ │ +2920 _s_t_d_:_:_m_o_v_e(__result), _s_t_d_:_:_m_o_v_e(__comp), │ │ │ │ │ +2921 _s_t_d_:_:_m_o_v_e(__proj1), _s_t_d_:_:_m_o_v_e(__proj2)); │ │ │ │ │ +2922 } │ │ │ │ │ +2923 }; │ │ │ │ │ +2924 │ │ │ │ │ +2925 inline constexpr __set_symmetric_difference_fn set_symmetric_difference{}; │ │ │ │ │ +2926 │ │ │ │ │ +2927 // min is defined in . │ │ │ │ │ +2928 │ │ │ │ │ +2929 struct __max_fn │ │ │ │ │ +2930 { │ │ │ │ │ +2931 template> │ │ │ │ │ +2933 _Comp = ranges::less> │ │ │ │ │ +2934 constexpr const _Tp& │ │ │ │ │ +2935 operator()(const _Tp& __a, const _Tp& __b, │ │ │ │ │ +2936 _Comp __comp = {}, _Proj __proj = {}) const │ │ │ │ │ +2937 { │ │ │ │ │ +2938 if (_s_t_d_:_:_____i_n_v_o_k_e(__comp, │ │ │ │ │ +2939 _s_t_d_:_:_____i_n_v_o_k_e(__proj, __a), │ │ │ │ │ +2940 _s_t_d_:_:_____i_n_v_o_k_e(__proj, __b))) │ │ │ │ │ +2941 return __b; │ │ │ │ │ +2942 else │ │ │ │ │ +2943 return __a; │ │ │ │ │ +2944 } │ │ │ │ │ +2945 │ │ │ │ │ +2946 template, _Proj>> │ │ │ │ │ +2948 _Comp = ranges::less> │ │ │ │ │ +2949 requires indirectly_copyable_storable, │ │ │ │ │ +2950 range_value_t<_Range>*> │ │ │ │ │ +2951 constexpr range_value_t<_Range> │ │ │ │ │ +2952 operator()(_Range&& __r, _Comp __comp = {}, _Proj __proj = {}) const │ │ │ │ │ +2953 { │ │ │ │ │ +2954 auto __first = ranges::begin(__r); │ │ │ │ │ +2955 auto __last = ranges::end(__r); │ │ │ │ │ +2956 __glibcxx_assert(__first != __last); │ │ │ │ │ +2957 auto __result = *__first; │ │ │ │ │ +2958 while (++__first != __last) │ │ │ │ │ +2959 { │ │ │ │ │ +2960 auto&& __tmp = *__first; │ │ │ │ │ +2961 if (_s_t_d_:_:_____i_n_v_o_k_e(__comp, │ │ │ │ │ +2962 _s_t_d_:_:_____i_n_v_o_k_e(__proj, __result), │ │ │ │ │ +2963 _s_t_d_:_:_____i_n_v_o_k_e(__proj, __tmp))) │ │ │ │ │ +2964 __result = std::forward(__tmp); │ │ │ │ │ +2965 } │ │ │ │ │ +2966 return __result; │ │ │ │ │ +2967 } │ │ │ │ │ +2968 │ │ │ │ │ +2969 template> │ │ │ │ │ +2971 _Comp = ranges::less> │ │ │ │ │ +2972 constexpr _Tp │ │ │ │ │ +2973 operator()(initializer_list<_Tp> __r, │ │ │ │ │ +2974 _Comp __comp = {}, _Proj __proj = {}) const │ │ │ │ │ +2975 { │ │ │ │ │ +2976 return (*this)(ranges::subrange(__r), │ │ │ │ │ +2977 _s_t_d_:_:_m_o_v_e(__comp), _s_t_d_:_:_m_o_v_e(__proj)); │ │ │ │ │ +2978 } │ │ │ │ │ +2979 }; │ │ │ │ │ +2980 │ │ │ │ │ +2981 inline constexpr __max_fn max{}; │ │ │ │ │ +2982 │ │ │ │ │ +2983 struct __clamp_fn │ │ │ │ │ +2984 { │ │ │ │ │ +2985 template> _Comp │ │ │ │ │ +2987 = ranges::less> │ │ │ │ │ +2988 constexpr const _Tp& │ │ │ │ │ +2989 operator()(const _Tp& __val, const _Tp& __lo, const _Tp& __hi, │ │ │ │ │ +2990 _Comp __comp = {}, _Proj __proj = {}) const │ │ │ │ │ +2991 { │ │ │ │ │ +2992 __glibcxx_assert(!(_s_t_d_:_:_____i_n_v_o_k_e(__comp, │ │ │ │ │ +2993 _s_t_d_:_:_____i_n_v_o_k_e(__proj, __hi), │ │ │ │ │ +2994 _s_t_d_:_:_____i_n_v_o_k_e(__proj, __lo)))); │ │ │ │ │ +2995 auto&& __proj_val = _s_t_d_:_:_____i_n_v_o_k_e(__proj, __val); │ │ │ │ │ +2996 if (_s_t_d_:_:_____i_n_v_o_k_e(__comp, │ │ │ │ │ +2997 _s_t_d_:_:_f_o_r_w_a_r_d(__proj_val), │ │ │ │ │ +2998 _s_t_d_:_:_____i_n_v_o_k_e(__proj, __lo))) │ │ │ │ │ +2999 return __lo; │ │ │ │ │ +3000 else if (_s_t_d_:_:_____i_n_v_o_k_e(__comp, │ │ │ │ │ +3001 _s_t_d_:_:_____i_n_v_o_k_e(__proj, __hi), │ │ │ │ │ +3002 _s_t_d_:_:_f_o_r_w_a_r_d(__proj_val))) │ │ │ │ │ +3003 return __hi; │ │ │ │ │ +3004 else │ │ │ │ │ +3005 return __val; │ │ │ │ │ +3006 } │ │ │ │ │ +3007 }; │ │ │ │ │ +3008 │ │ │ │ │ +3009 inline constexpr __clamp_fn clamp{}; │ │ │ │ │ +3010 │ │ │ │ │ +3011 template │ │ │ │ │ +3012 struct min_max_result │ │ │ │ │ +3013 { │ │ │ │ │ +3014 [[no_unique_address]] _Tp min; │ │ │ │ │ +3015 [[no_unique_address]] _Tp max; │ │ │ │ │ +3016 │ │ │ │ │ +3017 template │ │ │ │ │ +3018 requires convertible_to │ │ │ │ │ +3019 constexpr │ │ │ │ │ +3020 operator min_max_result<_Tp2>() const & │ │ │ │ │ +3021 { return {min, max}; } │ │ │ │ │ +3022 │ │ │ │ │ +3023 template │ │ │ │ │ +3024 requires convertible_to<_Tp, _Tp2> │ │ │ │ │ +3025 constexpr │ │ │ │ │ +3026 operator min_max_result<_Tp2>() && │ │ │ │ │ +3027 { return {_s_t_d_:_:_m_o_v_e(min), _s_t_d_:_:_m_o_v_e(max)}; } │ │ │ │ │ +3028 }; │ │ │ │ │ +3029 │ │ │ │ │ +3030 template │ │ │ │ │ +3031 using minmax_result = min_max_result<_Tp>; │ │ │ │ │ +3032 │ │ │ │ │ +3033 struct __minmax_fn │ │ │ │ │ +3034 { │ │ │ │ │ +3035 template> │ │ │ │ │ +3037 _Comp = ranges::less> │ │ │ │ │ +3038 constexpr minmax_result │ │ │ │ │ +3039 operator()(const _Tp& __a, const _Tp& __b, │ │ │ │ │ +3040 _Comp __comp = {}, _Proj __proj = {}) const │ │ │ │ │ +3041 { │ │ │ │ │ +3042 if (_s_t_d_:_:_____i_n_v_o_k_e(__comp, │ │ │ │ │ +3043 _s_t_d_:_:_____i_n_v_o_k_e(__proj, __b), │ │ │ │ │ +3044 _s_t_d_:_:_____i_n_v_o_k_e(__proj, __a))) │ │ │ │ │ +3045 return {__b, __a}; │ │ │ │ │ +3046 else │ │ │ │ │ +3047 return {__a, __b}; │ │ │ │ │ +3048 } │ │ │ │ │ +3049 │ │ │ │ │ +3050 template, _Proj>> │ │ │ │ │ +3052 _Comp = ranges::less> │ │ │ │ │ +3053 requires indirectly_copyable_storable, │ │ │ │ │ +range_value_t<_Range>*> │ │ │ │ │ +3054 constexpr minmax_result> │ │ │ │ │ +3055 operator()(_Range&& __r, _Comp __comp = {}, _Proj __proj = {}) const │ │ │ │ │ +3056 { │ │ │ │ │ +3057 auto __first = ranges::begin(__r); │ │ │ │ │ +3058 auto __last = ranges::end(__r); │ │ │ │ │ +3059 __glibcxx_assert(__first != __last); │ │ │ │ │ +3060 auto __comp_proj = __detail::__make_comp_proj(__comp, __proj); │ │ │ │ │ +3061 minmax_result> __result = {*__first, __result.min}; │ │ │ │ │ +3062 if (++__first == __last) │ │ │ │ │ +3063 return __result; │ │ │ │ │ +3064 else │ │ │ │ │ +3065 { │ │ │ │ │ +3066 // At this point __result.min == __result.max, so a single │ │ │ │ │ +3067 // comparison with the next element suffices. │ │ │ │ │ +3068 auto&& __val = *__first; │ │ │ │ │ +3069 if (__comp_proj(__val, __result.min)) │ │ │ │ │ +3070 __result.min = std::forward(__val); │ │ │ │ │ +3071 else │ │ │ │ │ +3072 __result.max = std::forward(__val); │ │ │ │ │ +3073 } │ │ │ │ │ +3074 while (++__first != __last) │ │ │ │ │ +3075 { │ │ │ │ │ +3076 // Now process two elements at a time so that we perform at most │ │ │ │ │ +3077 // 1 + 3*(N-2)/2 comparisons in total (each of the (N-2)/2 │ │ │ │ │ +3078 // iterations of this loop performs three comparisons). │ │ │ │ │ +3079 range_value_t<_Range> __val1 = *__first; │ │ │ │ │ +3080 if (++__first == __last) │ │ │ │ │ +3081 { │ │ │ │ │ +3082 // N is odd; in this final iteration, we perform at most two │ │ │ │ │ +3083 // comparisons, for a total of 1 + 3*(N-3)/2 + 2 comparisons, │ │ │ │ │ +3084 // which is not more than 3*N/2, as required. │ │ │ │ │ +3085 if (__comp_proj(__val1, __result.min)) │ │ │ │ │ +3086 __result.min = _s_t_d_:_:_m_o_v_e(__val1); │ │ │ │ │ +3087 else if (!__comp_proj(__val1, __result.max)) │ │ │ │ │ +3088 __result.max = _s_t_d_:_:_m_o_v_e(__val1); │ │ │ │ │ +3089 break; │ │ │ │ │ +3090 } │ │ │ │ │ +3091 auto&& __val2 = *__first; │ │ │ │ │ +3092 if (!__comp_proj(__val2, __val1)) │ │ │ │ │ +3093 { │ │ │ │ │ +3094 if (__comp_proj(__val1, __result.min)) │ │ │ │ │ +3095 __result.min = _s_t_d_:_:_m_o_v_e(__val1); │ │ │ │ │ +3096 if (!__comp_proj(__val2, __result.max)) │ │ │ │ │ +3097 __result.max = std::forward(__val2); │ │ │ │ │ +3098 } │ │ │ │ │ +3099 else │ │ │ │ │ +3100 { │ │ │ │ │ +3101 if (__comp_proj(__val2, __result.min)) │ │ │ │ │ +3102 __result.min = std::forward(__val2); │ │ │ │ │ +3103 if (!__comp_proj(__val1, __result.max)) │ │ │ │ │ +3104 __result.max = _s_t_d_:_:_m_o_v_e(__val1); │ │ │ │ │ +3105 } │ │ │ │ │ +3106 } │ │ │ │ │ +3107 return __result; │ │ │ │ │ +3108 } │ │ │ │ │ +3109 │ │ │ │ │ +3110 template> │ │ │ │ │ +3112 _Comp = ranges::less> │ │ │ │ │ +3113 constexpr minmax_result<_Tp> │ │ │ │ │ +3114 operator()(initializer_list<_Tp> __r, │ │ │ │ │ +3115 _Comp __comp = {}, _Proj __proj = {}) const │ │ │ │ │ +3116 { │ │ │ │ │ +3117 return (*this)(ranges::subrange(__r), │ │ │ │ │ +3118 _s_t_d_:_:_m_o_v_e(__comp), _s_t_d_:_:_m_o_v_e(__proj)); │ │ │ │ │ +3119 } │ │ │ │ │ +3120 }; │ │ │ │ │ +3121 │ │ │ │ │ +3122 inline constexpr __minmax_fn minmax{}; │ │ │ │ │ +3123 │ │ │ │ │ +3124 struct __min_element_fn │ │ │ │ │ +3125 { │ │ │ │ │ +3126 template _Sent, │ │ │ │ │ +3127 typename _Proj = identity, │ │ │ │ │ +3128 indirect_strict_weak_order> │ │ │ │ │ +3129 _Comp = ranges::less> │ │ │ │ │ +3130 constexpr _Iter │ │ │ │ │ +3131 operator()(_Iter __first, _Sent __last, │ │ │ │ │ +3132 _Comp __comp = {}, _Proj __proj = {}) const │ │ │ │ │ +3133 { │ │ │ │ │ +3134 if (__first == __last) │ │ │ │ │ +3135 return __first; │ │ │ │ │ +3136 │ │ │ │ │ +3137 auto __i = __first; │ │ │ │ │ +3138 while (++__i != __last) │ │ │ │ │ +3139 { │ │ │ │ │ +3140 if (_s_t_d_:_:_____i_n_v_o_k_e(__comp, │ │ │ │ │ +3141 _s_t_d_:_:_____i_n_v_o_k_e(__proj, *__i), │ │ │ │ │ +3142 _s_t_d_:_:_____i_n_v_o_k_e(__proj, *__first))) │ │ │ │ │ +3143 __first = __i; │ │ │ │ │ +3144 } │ │ │ │ │ +3145 return __first; │ │ │ │ │ +3146 } │ │ │ │ │ +3147 │ │ │ │ │ +3148 template, _Proj>> │ │ │ │ │ +3150 _Comp = ranges::less> │ │ │ │ │ +3151 constexpr borrowed_iterator_t<_Range> │ │ │ │ │ +3152 operator()(_Range&& __r, _Comp __comp = {}, _Proj __proj = {}) const │ │ │ │ │ +3153 { │ │ │ │ │ +3154 return (*this)(ranges::begin(__r), ranges::end(__r), │ │ │ │ │ +3155 _s_t_d_:_:_m_o_v_e(__comp), _s_t_d_:_:_m_o_v_e(__proj)); │ │ │ │ │ +3156 } │ │ │ │ │ +3157 }; │ │ │ │ │ +3158 │ │ │ │ │ +3159 inline constexpr __min_element_fn min_element{}; │ │ │ │ │ +3160 │ │ │ │ │ +3161 struct __max_element_fn │ │ │ │ │ +3162 { │ │ │ │ │ +3163 template _Sent, │ │ │ │ │ +3164 typename _Proj = identity, │ │ │ │ │ +3165 indirect_strict_weak_order> │ │ │ │ │ +3166 _Comp = ranges::less> │ │ │ │ │ +3167 constexpr _Iter │ │ │ │ │ +3168 operator()(_Iter __first, _Sent __last, │ │ │ │ │ +3169 _Comp __comp = {}, _Proj __proj = {}) const │ │ │ │ │ +3170 { │ │ │ │ │ +3171 if (__first == __last) │ │ │ │ │ +3172 return __first; │ │ │ │ │ +3173 │ │ │ │ │ +3174 auto __i = __first; │ │ │ │ │ +3175 while (++__i != __last) │ │ │ │ │ +3176 { │ │ │ │ │ +3177 if (_s_t_d_:_:_____i_n_v_o_k_e(__comp, │ │ │ │ │ +3178 _s_t_d_:_:_____i_n_v_o_k_e(__proj, *__first), │ │ │ │ │ +3179 _s_t_d_:_:_____i_n_v_o_k_e(__proj, *__i))) │ │ │ │ │ +3180 __first = __i; │ │ │ │ │ +3181 } │ │ │ │ │ +3182 return __first; │ │ │ │ │ +3183 } │ │ │ │ │ +3184 │ │ │ │ │ +3185 template, _Proj>> │ │ │ │ │ +3187 _Comp = ranges::less> │ │ │ │ │ +3188 constexpr borrowed_iterator_t<_Range> │ │ │ │ │ +3189 operator()(_Range&& __r, _Comp __comp = {}, _Proj __proj = {}) const │ │ │ │ │ +3190 { │ │ │ │ │ +3191 return (*this)(ranges::begin(__r), ranges::end(__r), │ │ │ │ │ +3192 _s_t_d_:_:_m_o_v_e(__comp), _s_t_d_:_:_m_o_v_e(__proj)); │ │ │ │ │ +3193 } │ │ │ │ │ +3194 }; │ │ │ │ │ +3195 │ │ │ │ │ +3196 inline constexpr __max_element_fn max_element{}; │ │ │ │ │ +3197 │ │ │ │ │ +3198 template │ │ │ │ │ +3199 using minmax_element_result = min_max_result<_Iter>; │ │ │ │ │ +3200 │ │ │ │ │ +3201 struct __minmax_element_fn │ │ │ │ │ +3202 { │ │ │ │ │ +3203 template _Sent, │ │ │ │ │ +3204 typename _Proj = identity, │ │ │ │ │ +3205 indirect_strict_weak_order> │ │ │ │ │ +3206 _Comp = ranges::less> │ │ │ │ │ +3207 constexpr minmax_element_result<_Iter> │ │ │ │ │ +3208 operator()(_Iter __first, _Sent __last, │ │ │ │ │ +3209 _Comp __comp = {}, _Proj __proj = {}) const │ │ │ │ │ +3210 { │ │ │ │ │ +3211 auto __comp_proj = __detail::__make_comp_proj(__comp, __proj); │ │ │ │ │ +3212 minmax_element_result<_Iter> __result = {__first, __first}; │ │ │ │ │ +3213 if (__first == __last || ++__first == __last) │ │ │ │ │ +3214 return __result; │ │ │ │ │ +3215 else │ │ │ │ │ +3216 { │ │ │ │ │ +3217 // At this point __result.min == __result.max, so a single │ │ │ │ │ +3218 // comparison with the next element suffices. │ │ │ │ │ +3219 if (__comp_proj(*__first, *__result.min)) │ │ │ │ │ +3220 __result.min = __first; │ │ │ │ │ +3221 else │ │ │ │ │ +3222 __result.max = __first; │ │ │ │ │ +3223 } │ │ │ │ │ +3224 while (++__first != __last) │ │ │ │ │ +3225 { │ │ │ │ │ +3226 // Now process two elements at a time so that we perform at most │ │ │ │ │ +3227 // 1 + 3*(N-2)/2 comparisons in total (each of the (N-2)/2 │ │ │ │ │ +3228 // iterations of this loop performs three comparisons). │ │ │ │ │ +3229 auto __prev = __first; │ │ │ │ │ +3230 if (++__first == __last) │ │ │ │ │ +3231 { │ │ │ │ │ +3232 // N is odd; in this final iteration, we perform at most two │ │ │ │ │ +3233 // comparisons, for a total of 1 + 3*(N-3)/2 + 2 comparisons, │ │ │ │ │ +3234 // which is not more than 3*N/2, as required. │ │ │ │ │ +3235 if (__comp_proj(*__prev, *__result.min)) │ │ │ │ │ +3236 __result.min = __prev; │ │ │ │ │ +3237 else if (!__comp_proj(*__prev, *__result.max)) │ │ │ │ │ +3238 __result.max = __prev; │ │ │ │ │ +3239 break; │ │ │ │ │ +3240 } │ │ │ │ │ +3241 if (!__comp_proj(*__first, *__prev)) │ │ │ │ │ +3242 { │ │ │ │ │ +3243 if (__comp_proj(*__prev, *__result.min)) │ │ │ │ │ +3244 __result.min = __prev; │ │ │ │ │ +3245 if (!__comp_proj(*__first, *__result.max)) │ │ │ │ │ +3246 __result.max = __first; │ │ │ │ │ +3247 } │ │ │ │ │ +3248 else │ │ │ │ │ +3249 { │ │ │ │ │ +3250 if (__comp_proj(*__first, *__result.min)) │ │ │ │ │ +3251 __result.min = __first; │ │ │ │ │ +3252 if (!__comp_proj(*__prev, *__result.max)) │ │ │ │ │ +3253 __result.max = __prev; │ │ │ │ │ +3254 } │ │ │ │ │ +3255 } │ │ │ │ │ +3256 return __result; │ │ │ │ │ +3257 } │ │ │ │ │ +3258 │ │ │ │ │ +3259 template, _Proj>> │ │ │ │ │ +3261 _Comp = ranges::less> │ │ │ │ │ +3262 constexpr minmax_element_result> │ │ │ │ │ +3263 operator()(_Range&& __r, _Comp __comp = {}, _Proj __proj = {}) const │ │ │ │ │ +3264 { │ │ │ │ │ +3265 return (*this)(ranges::begin(__r), ranges::end(__r), │ │ │ │ │ +3266 _s_t_d_:_:_m_o_v_e(__comp), _s_t_d_:_:_m_o_v_e(__proj)); │ │ │ │ │ +3267 } │ │ │ │ │ +3268 }; │ │ │ │ │ +3269 │ │ │ │ │ +3270 inline constexpr __minmax_element_fn minmax_element{}; │ │ │ │ │ +3271 │ │ │ │ │ +3272 struct __lexicographical_compare_fn │ │ │ │ │ +3273 { │ │ │ │ │ +3274 template _Sent1, │ │ │ │ │ +3275 input_iterator _Iter2, sentinel_for<_Iter2> _Sent2, │ │ │ │ │ +3276 typename _Proj1 = identity, typename _Proj2 = identity, │ │ │ │ │ +3277 indirect_strict_weak_order, │ │ │ │ │ +3278 projected<_Iter2, _Proj2>> │ │ │ │ │ +3279 _Comp = ranges::less> │ │ │ │ │ +3280 constexpr bool │ │ │ │ │ +3281 operator()(_Iter1 __first1, _Sent1 __last1, │ │ │ │ │ +3282 _Iter2 __first2, _Sent2 __last2, │ │ │ │ │ +3283 _Comp __comp = {}, │ │ │ │ │ +3284 _Proj1 __proj1 = {}, _Proj2 __proj2 = {}) const │ │ │ │ │ +3285 { │ │ │ │ │ +3286 if constexpr (__detail::__is_normal_iterator<_Iter1> │ │ │ │ │ +3287 && same_as<_Iter1, _Sent1>) │ │ │ │ │ +3288 return (*this)(__first1.base(), __last1.base(), │ │ │ │ │ +3289 _s_t_d_:_:_m_o_v_e(__first2), _s_t_d_:_:_m_o_v_e(__last2), │ │ │ │ │ +3290 _s_t_d_:_:_m_o_v_e(__comp), │ │ │ │ │ +3291 _s_t_d_:_:_m_o_v_e(__proj1), _s_t_d_:_:_m_o_v_e(__proj2)); │ │ │ │ │ +3292 else if constexpr (__detail::__is_normal_iterator<_Iter2> │ │ │ │ │ +3293 && same_as<_Iter2, _Sent2>) │ │ │ │ │ +3294 return (*this)(_s_t_d_:_:_m_o_v_e(__first1), _s_t_d_:_:_m_o_v_e(__last1), │ │ │ │ │ +3295 __first2.base(), __last2.base(), │ │ │ │ │ +3296 _s_t_d_:_:_m_o_v_e(__comp), │ │ │ │ │ +3297 _s_t_d_:_:_m_o_v_e(__proj1), _s_t_d_:_:_m_o_v_e(__proj2)); │ │ │ │ │ +3298 else │ │ │ │ │ +3299 { │ │ │ │ │ +3300 constexpr bool __sized_iters │ │ │ │ │ +3301 = (sized_sentinel_for<_Sent1, _Iter1> │ │ │ │ │ +3302 && sized_sentinel_for<_Sent2, _Iter2>); │ │ │ │ │ +3303 if constexpr (__sized_iters) │ │ │ │ │ +3304 { │ │ │ │ │ +3305 using _ValueType1 = iter_value_t<_Iter1>; │ │ │ │ │ +3306 using _ValueType2 = iter_value_t<_Iter2>; │ │ │ │ │ +3307 // This condition is consistent with the one in │ │ │ │ │ +3308 // __lexicographical_compare_aux in . │ │ │ │ │ +3309 constexpr bool __use_memcmp │ │ │ │ │ +3310 = (__is_memcmp_ordered_with<_ValueType1, _ValueType2>::__value │ │ │ │ │ +3311 && __ptr_to_nonvolatile<_Iter1> │ │ │ │ │ +3312 && __ptr_to_nonvolatile<_Iter2> │ │ │ │ │ +3313 && (is_same_v<_Comp, ranges::less> │ │ │ │ │ +3314 || is_same_v<_Comp, ranges::greater>) │ │ │ │ │ +3315 && is_same_v<_Proj1, identity> │ │ │ │ │ +3316 && is_same_v<_Proj2, identity>); │ │ │ │ │ +3317 if constexpr (__use_memcmp) │ │ │ │ │ +3318 { │ │ │ │ │ +3319 const auto __d1 = __last1 - __first1; │ │ │ │ │ +3320 const auto __d2 = __last2 - __first2; │ │ │ │ │ +3321 │ │ │ │ │ +3322 if (const auto __len = _s_t_d_:_:_m_i_n(__d1, __d2)) │ │ │ │ │ +3323 { │ │ │ │ │ +3324 const auto __c │ │ │ │ │ +3325 = std::__memcmp(__first1, __first2, __len); │ │ │ │ │ +3326 if constexpr (is_same_v<_Comp, ranges::less>) │ │ │ │ │ +3327 { │ │ │ │ │ +3328 if (__c < 0) │ │ │ │ │ +3329 return true; │ │ │ │ │ +3330 if (__c > 0) │ │ │ │ │ +3331 return false; │ │ │ │ │ +3332 } │ │ │ │ │ +3333 else if constexpr (is_same_v<_Comp, ranges::greater>) │ │ │ │ │ +3334 { │ │ │ │ │ +3335 if (__c > 0) │ │ │ │ │ +3336 return true; │ │ │ │ │ +3337 if (__c < 0) │ │ │ │ │ +3338 return false; │ │ │ │ │ +3339 } │ │ │ │ │ +3340 } │ │ │ │ │ +3341 return __d1 < __d2; │ │ │ │ │ +3342 } │ │ │ │ │ +3343 } │ │ │ │ │ +3344 │ │ │ │ │ +3345 for (; __first1 != __last1 && __first2 != __last2; │ │ │ │ │ +3346 ++__first1, (void) ++__first2) │ │ │ │ │ +3347 { │ │ │ │ │ +3348 if (_s_t_d_:_:_____i_n_v_o_k_e(__comp, │ │ │ │ │ +3349 _s_t_d_:_:_____i_n_v_o_k_e(__proj1, *__first1), │ │ │ │ │ +3350 _s_t_d_:_:_____i_n_v_o_k_e(__proj2, *__first2))) │ │ │ │ │ +3351 return true; │ │ │ │ │ +3352 if (_s_t_d_:_:_____i_n_v_o_k_e(__comp, │ │ │ │ │ +3353 _s_t_d_:_:_____i_n_v_o_k_e(__proj2, *__first2), │ │ │ │ │ +3354 _s_t_d_:_:_____i_n_v_o_k_e(__proj1, *__first1))) │ │ │ │ │ +3355 return false; │ │ │ │ │ +3356 } │ │ │ │ │ +3357 return __first1 == __last1 && __first2 != __last2; │ │ │ │ │ +3358 } │ │ │ │ │ +3359 } │ │ │ │ │ +3360 │ │ │ │ │ +3361 template, _Proj1>, │ │ │ │ │ +3364 projected, _Proj2>> │ │ │ │ │ +3365 _Comp = ranges::less> │ │ │ │ │ +3366 constexpr bool │ │ │ │ │ +3367 operator()(_Range1&& __r1, _Range2&& __r2, _Comp __comp = {}, │ │ │ │ │ +3368 _Proj1 __proj1 = {}, _Proj2 __proj2 = {}) const │ │ │ │ │ +3369 { │ │ │ │ │ +3370 return (*this)(ranges::begin(__r1), ranges::end(__r1), │ │ │ │ │ +3371 ranges::begin(__r2), ranges::end(__r2), │ │ │ │ │ +3372 _s_t_d_:_:_m_o_v_e(__comp), │ │ │ │ │ +3373 _s_t_d_:_:_m_o_v_e(__proj1), _s_t_d_:_:_m_o_v_e(__proj2)); │ │ │ │ │ +3374 } │ │ │ │ │ +3375 │ │ │ │ │ +3376 private: │ │ │ │ │ +3377 template> │ │ │ │ │ +3378 static constexpr bool __ptr_to_nonvolatile │ │ │ │ │ +3379 = is_pointer_v<_Iter> && !is_volatile_v>; │ │ │ │ │ +3380 }; │ │ │ │ │ +3381 │ │ │ │ │ +3382 inline constexpr __lexicographical_compare_fn lexicographical_compare; │ │ │ │ │ +3383 │ │ │ │ │ +3384 template │ │ │ │ │ +3385 struct in_found_result │ │ │ │ │ +3386 { │ │ │ │ │ +3387 [[no_unique_address]] _Iter in; │ │ │ │ │ +3388 bool found; │ │ │ │ │ +3389 │ │ │ │ │ +3390 template │ │ │ │ │ +3391 requires convertible_to │ │ │ │ │ +3392 constexpr │ │ │ │ │ +3393 operator in_found_result<_Iter2>() const & │ │ │ │ │ +3394 { return {in, found}; } │ │ │ │ │ +3395 │ │ │ │ │ +3396 template │ │ │ │ │ +3397 requires convertible_to<_Iter, _Iter2> │ │ │ │ │ +3398 constexpr │ │ │ │ │ +3399 operator in_found_result<_Iter2>() && │ │ │ │ │ +3400 { return {_s_t_d_:_:_m_o_v_e(in), found}; } │ │ │ │ │ +3401 }; │ │ │ │ │ +3402 │ │ │ │ │ +3403 template │ │ │ │ │ +3404 using next_permutation_result = in_found_result<_Iter>; │ │ │ │ │ +3405 │ │ │ │ │ +3406 struct __next_permutation_fn │ │ │ │ │ +3407 { │ │ │ │ │ +3408 template _Sent, │ │ │ │ │ +3409 typename _Comp = ranges::less, typename _Proj = identity> │ │ │ │ │ +3410 requires sortable<_Iter, _Comp, _Proj> │ │ │ │ │ +3411 constexpr next_permutation_result<_Iter> │ │ │ │ │ +3412 operator()(_Iter __first, _Sent __last, │ │ │ │ │ +3413 _Comp __comp = {}, _Proj __proj = {}) const │ │ │ │ │ +3414 { │ │ │ │ │ +3415 if (__first == __last) │ │ │ │ │ +3416 return {_s_t_d_:_:_m_o_v_e(__first), false}; │ │ │ │ │ +3417 │ │ │ │ │ +3418 auto __i = __first; │ │ │ │ │ +3419 ++__i; │ │ │ │ │ +3420 if (__i == __last) │ │ │ │ │ +3421 return {_s_t_d_:_:_m_o_v_e(__i), false}; │ │ │ │ │ +3422 │ │ │ │ │ +3423 auto __lasti = ranges::next(__first, __last); │ │ │ │ │ +3424 __i = __lasti; │ │ │ │ │ +3425 --__i; │ │ │ │ │ +3426 │ │ │ │ │ +3427 for (;;) │ │ │ │ │ +3428 { │ │ │ │ │ +3429 auto __ii = __i; │ │ │ │ │ +3430 --__i; │ │ │ │ │ +3431 if (_s_t_d_:_:_____i_n_v_o_k_e(__comp, │ │ │ │ │ +3432 _s_t_d_:_:_____i_n_v_o_k_e(__proj, *__i), │ │ │ │ │ +3433 _s_t_d_:_:_____i_n_v_o_k_e(__proj, *__ii))) │ │ │ │ │ +3434 { │ │ │ │ │ +3435 auto __j = __lasti; │ │ │ │ │ +3436 while (!(bool)_s_t_d_:_:_____i_n_v_o_k_e(__comp, │ │ │ │ │ +3437 _s_t_d_:_:_____i_n_v_o_k_e(__proj, *__i), │ │ │ │ │ +3438 _s_t_d_:_:_____i_n_v_o_k_e(__proj, *--__j))) │ │ │ │ │ +3439 ; │ │ │ │ │ +3440 ranges::iter_swap(__i, __j); │ │ │ │ │ +3441 ranges::reverse(__ii, __last); │ │ │ │ │ +3442 return {_s_t_d_:_:_m_o_v_e(__lasti), true}; │ │ │ │ │ +3443 } │ │ │ │ │ +3444 if (__i == __first) │ │ │ │ │ +3445 { │ │ │ │ │ +3446 ranges::reverse(__first, __last); │ │ │ │ │ +3447 return {_s_t_d_:_:_m_o_v_e(__lasti), false}; │ │ │ │ │ +3448 } │ │ │ │ │ +3449 } │ │ │ │ │ +3450 } │ │ │ │ │ +3451 │ │ │ │ │ +3452 template │ │ │ │ │ +3454 requires sortable, _Comp, _Proj> │ │ │ │ │ +3455 constexpr next_permutation_result> │ │ │ │ │ +3456 operator()(_Range&& __r, _Comp __comp = {}, _Proj __proj = {}) const │ │ │ │ │ +3457 { │ │ │ │ │ +3458 return (*this)(ranges::begin(__r), ranges::end(__r), │ │ │ │ │ +3459 _s_t_d_:_:_m_o_v_e(__comp), _s_t_d_:_:_m_o_v_e(__proj)); │ │ │ │ │ +3460 } │ │ │ │ │ +3461 }; │ │ │ │ │ +3462 │ │ │ │ │ +3463 inline constexpr __next_permutation_fn next_permutation{}; │ │ │ │ │ +3464 │ │ │ │ │ +3465 template │ │ │ │ │ +3466 using prev_permutation_result = in_found_result<_Iter>; │ │ │ │ │ +3467 │ │ │ │ │ +3468 struct __prev_permutation_fn │ │ │ │ │ +3469 { │ │ │ │ │ +3470 template _Sent, │ │ │ │ │ +3471 typename _Comp = ranges::less, typename _Proj = identity> │ │ │ │ │ +3472 requires sortable<_Iter, _Comp, _Proj> │ │ │ │ │ +3473 constexpr prev_permutation_result<_Iter> │ │ │ │ │ +3474 operator()(_Iter __first, _Sent __last, │ │ │ │ │ +3475 _Comp __comp = {}, _Proj __proj = {}) const │ │ │ │ │ +3476 { │ │ │ │ │ +3477 if (__first == __last) │ │ │ │ │ +3478 return {_s_t_d_:_:_m_o_v_e(__first), false}; │ │ │ │ │ +3479 │ │ │ │ │ +3480 auto __i = __first; │ │ │ │ │ +3481 ++__i; │ │ │ │ │ +3482 if (__i == __last) │ │ │ │ │ +3483 return {_s_t_d_:_:_m_o_v_e(__i), false}; │ │ │ │ │ +3484 │ │ │ │ │ +3485 auto __lasti = ranges::next(__first, __last); │ │ │ │ │ +3486 __i = __lasti; │ │ │ │ │ +3487 --__i; │ │ │ │ │ +3488 │ │ │ │ │ +3489 for (;;) │ │ │ │ │ +3490 { │ │ │ │ │ +3491 auto __ii = __i; │ │ │ │ │ +3492 --__i; │ │ │ │ │ +3493 if (_s_t_d_:_:_____i_n_v_o_k_e(__comp, │ │ │ │ │ +3494 _s_t_d_:_:_____i_n_v_o_k_e(__proj, *__ii), │ │ │ │ │ +3495 _s_t_d_:_:_____i_n_v_o_k_e(__proj, *__i))) │ │ │ │ │ +3496 { │ │ │ │ │ +3497 auto __j = __lasti; │ │ │ │ │ +3498 while (!(bool)_s_t_d_:_:_____i_n_v_o_k_e(__comp, │ │ │ │ │ +3499 _s_t_d_:_:_____i_n_v_o_k_e(__proj, *--__j), │ │ │ │ │ +3500 _s_t_d_:_:_____i_n_v_o_k_e(__proj, *__i))) │ │ │ │ │ +3501 ; │ │ │ │ │ +3502 ranges::iter_swap(__i, __j); │ │ │ │ │ +3503 ranges::reverse(__ii, __last); │ │ │ │ │ +3504 return {_s_t_d_:_:_m_o_v_e(__lasti), true}; │ │ │ │ │ +3505 } │ │ │ │ │ +3506 if (__i == __first) │ │ │ │ │ +3507 { │ │ │ │ │ +3508 ranges::reverse(__first, __last); │ │ │ │ │ +3509 return {_s_t_d_:_:_m_o_v_e(__lasti), false}; │ │ │ │ │ +3510 } │ │ │ │ │ +3511 } │ │ │ │ │ +3512 } │ │ │ │ │ +3513 │ │ │ │ │ +3514 template │ │ │ │ │ +3516 requires sortable, _Comp, _Proj> │ │ │ │ │ +3517 constexpr prev_permutation_result> │ │ │ │ │ +3518 operator()(_Range&& __r, _Comp __comp = {}, _Proj __proj = {}) const │ │ │ │ │ +3519 { │ │ │ │ │ +3520 return (*this)(ranges::begin(__r), ranges::end(__r), │ │ │ │ │ +3521 _s_t_d_:_:_m_o_v_e(__comp), _s_t_d_:_:_m_o_v_e(__proj)); │ │ │ │ │ +3522 } │ │ │ │ │ +3523 }; │ │ │ │ │ +3524 │ │ │ │ │ +3525 inline constexpr __prev_permutation_fn prev_permutation{}; │ │ │ │ │ +3526 │ │ │ │ │ +3527#if __glibcxx_ranges_contains >= 202207L // C++ >= 23 │ │ │ │ │ +3528 struct __contains_fn │ │ │ │ │ +3529 { │ │ │ │ │ +3530 template _Sent, │ │ │ │ │ +3531 typename _Proj = identity, │ │ │ │ │ +3532 typename _Tp _GLIBCXX26_RANGE_ALGO_DEF_VAL_T(_Iter, _Proj)> │ │ │ │ │ +3533 requires indirect_binary_predicate, const _Tp*> │ │ │ │ │ +3535 constexpr bool │ │ │ │ │ +3536 operator()(_Iter __first, _Sent __last, const _Tp& __value, _Proj __proj = │ │ │ │ │ +{}) const │ │ │ │ │ +3537 { return ranges::find(_s_t_d_:_:_m_o_v_e(__first), __last, __value, _s_t_d_:_:_m_o_v_e │ │ │ │ │ +(__proj)) != __last; } │ │ │ │ │ +3538 │ │ │ │ │ +3539 template, _Proj)> │ │ │ │ │ +3543 requires indirect_binary_predicate, _Proj>, const _Tp*> │ │ │ │ │ +3545 constexpr bool │ │ │ │ │ +3546 operator()(_Range&& __r, const _Tp& __value, _Proj __proj = {}) const │ │ │ │ │ +3547 { return (*this)(ranges::begin(__r), ranges::end(__r), __value, _s_t_d_:_:_m_o_v_e │ │ │ │ │ +(__proj)); } │ │ │ │ │ +3548 }; │ │ │ │ │ +3549 │ │ │ │ │ +3550 inline constexpr __contains_fn contains{}; │ │ │ │ │ +3551 │ │ │ │ │ +3552 struct __contains_subrange_fn │ │ │ │ │ +3553 { │ │ │ │ │ +3554 template _Sent1, │ │ │ │ │ +3555 forward_iterator _Iter2, sentinel_for<_Iter2> _Sent2, │ │ │ │ │ +3556 typename _Pred = ranges::equal_to, │ │ │ │ │ +3557 typename _Proj1 = identity, typename _Proj2 = identity> │ │ │ │ │ +3558 requires indirectly_comparable<_Iter1, _Iter2, _Pred, _Proj1, _Proj2> │ │ │ │ │ +3559 constexpr bool │ │ │ │ │ +3560 operator()(_Iter1 __first1, _Sent1 __last1, _Iter2 __first2, _Sent2 │ │ │ │ │ +__last2, │ │ │ │ │ +3561 _Pred __pred = {}, _Proj1 __proj1 = {}, _Proj2 __proj2 = {}) const │ │ │ │ │ +3562 { │ │ │ │ │ +3563 return __first2 == __last2 │ │ │ │ │ +3564 || !ranges::search(__first1, __last1, __first2, __last2, │ │ │ │ │ +3565 _s_t_d_:_:_m_o_v_e(__pred), _s_t_d_:_:_m_o_v_e(__proj1), _s_t_d_:_:_m_o_v_e(__proj2)).empty(); │ │ │ │ │ +3566 } │ │ │ │ │ +3567 │ │ │ │ │ +3568 template │ │ │ │ │ +3571 requires indirectly_comparable, iterator_t<_Range2>, │ │ │ │ │ +3572 _Pred, _Proj1, _Proj2> │ │ │ │ │ +3573 constexpr bool │ │ │ │ │ +3574 operator()(_Range1&& __r1, _Range2&& __r2, _Pred __pred = {}, │ │ │ │ │ +3575 _Proj1 __proj1 = {}, _Proj2 __proj2 = {}) const │ │ │ │ │ +3576 { │ │ │ │ │ +3577 return (*this)(ranges::begin(__r1), ranges::end(__r1), │ │ │ │ │ +3578 ranges::begin(__r2), ranges::end(__r2), │ │ │ │ │ +3579 _s_t_d_:_:_m_o_v_e(__pred), _s_t_d_:_:_m_o_v_e(__proj1), _s_t_d_:_:_m_o_v_e(__proj2)); │ │ │ │ │ +3580 } │ │ │ │ │ +3581 }; │ │ │ │ │ +3582 │ │ │ │ │ +3583 inline constexpr __contains_subrange_fn contains_subrange{}; │ │ │ │ │ +3584 │ │ │ │ │ +3585#endif // __glibcxx_ranges_contains │ │ │ │ │ +3586 │ │ │ │ │ +3587#if __glibcxx_ranges_find_last >= 202207L // C++ >= 23 │ │ │ │ │ +3588 │ │ │ │ │ +3589 struct __find_last_fn │ │ │ │ │ +3590 { │ │ │ │ │ +3591 template _Sent, │ │ │ │ │ +3592 typename _Proj = identity, │ │ │ │ │ +3593 typename _Tp _GLIBCXX26_RANGE_ALGO_DEF_VAL_T(_Iter, _Proj)> │ │ │ │ │ +3594 requires indirect_binary_predicate, const _Tp*> │ │ │ │ │ +3595 constexpr subrange<_Iter> │ │ │ │ │ +3596 operator()(_Iter __first, _Sent __last, const _Tp& __value, _Proj __proj = │ │ │ │ │ +{}) const │ │ │ │ │ +3597 { │ │ │ │ │ +3598 if constexpr (same_as<_Iter, _Sent> && bidirectional_iterator<_Iter>) │ │ │ │ │ +3599 { │ │ │ │ │ +3600 _Iter __found = ranges::find(reverse_iterator<_Iter>{__last}, │ │ │ │ │ +3601 reverse_iterator<_Iter>{__first}, │ │ │ │ │ +3602 __value, _s_t_d_:_:_m_o_v_e(__proj)).base(); │ │ │ │ │ +3603 if (__found == __first) │ │ │ │ │ +3604 return {__last, __last}; │ │ │ │ │ +3605 else │ │ │ │ │ +3606 return {ranges::prev(__found), __last}; │ │ │ │ │ +3607 } │ │ │ │ │ +3608 else │ │ │ │ │ +3609 { │ │ │ │ │ +3610 _Iter __found = ranges::find(__first, __last, __value, __proj); │ │ │ │ │ +3611 if (__found == __last) │ │ │ │ │ +3612 return {__found, __found}; │ │ │ │ │ +3613 __first = __found; │ │ │ │ │ +3614 for (;;) │ │ │ │ │ +3615 { │ │ │ │ │ +3616 __first = ranges::find(ranges::next(__first), __last, __value, __proj); │ │ │ │ │ +3617 if (__first == __last) │ │ │ │ │ +3618 return {__found, __first}; │ │ │ │ │ +3619 __found = __first; │ │ │ │ │ +3620 } │ │ │ │ │ +3621 } │ │ │ │ │ +3622 } │ │ │ │ │ +3623 │ │ │ │ │ +3624 template, _Proj)> │ │ │ │ │ +3627 requires indirect_binary_predicate, _Proj>, const _Tp*> │ │ │ │ │ +3628 constexpr borrowed_subrange_t<_Range> │ │ │ │ │ +3629 operator()(_Range&& __r, const _Tp& __value, _Proj __proj = {}) const │ │ │ │ │ +3630 { return (*this)(ranges::begin(__r), ranges::end(__r), __value, _s_t_d_:_:_m_o_v_e │ │ │ │ │ +(__proj)); } │ │ │ │ │ +3631 }; │ │ │ │ │ +3632 │ │ │ │ │ +3633 inline constexpr __find_last_fn find_last{}; │ │ │ │ │ +3634 │ │ │ │ │ +3635 struct __find_last_if_fn │ │ │ │ │ +3636 { │ │ │ │ │ +3637 template _Sent, typename _Proj │ │ │ │ │ += identity, │ │ │ │ │ +3638 indirect_unary_predicate> _Pred> │ │ │ │ │ +3639 constexpr subrange<_Iter> │ │ │ │ │ +3640 operator()(_Iter __first, _Sent __last, _Pred __pred, _Proj __proj = {}) │ │ │ │ │ +const │ │ │ │ │ +3641 { │ │ │ │ │ +3642 if constexpr (same_as<_Iter, _Sent> && bidirectional_iterator<_Iter>) │ │ │ │ │ +3643 { │ │ │ │ │ +3644 _Iter __found = ranges::find_if(reverse_iterator<_Iter>{__last}, │ │ │ │ │ +3645 reverse_iterator<_Iter>{__first}, │ │ │ │ │ +3646 _s_t_d_:_:_m_o_v_e(__pred), _s_t_d_:_:_m_o_v_e(__proj)).base(); │ │ │ │ │ +3647 if (__found == __first) │ │ │ │ │ +3648 return {__last, __last}; │ │ │ │ │ +3649 else │ │ │ │ │ +3650 return {ranges::prev(__found), __last}; │ │ │ │ │ +3651 } │ │ │ │ │ +3652 else │ │ │ │ │ +3653 { │ │ │ │ │ +3654 _Iter __found = ranges::find_if(__first, __last, __pred, __proj); │ │ │ │ │ +3655 if (__found == __last) │ │ │ │ │ +3656 return {__found, __found}; │ │ │ │ │ +3657 __first = __found; │ │ │ │ │ +3658 for (;;) │ │ │ │ │ +3659 { │ │ │ │ │ +3660 __first = ranges::find_if(ranges::next(__first), __last, __pred, __proj); │ │ │ │ │ +3661 if (__first == __last) │ │ │ │ │ +3662 return {__found, __first}; │ │ │ │ │ +3663 __found = __first; │ │ │ │ │ +3664 } │ │ │ │ │ +3665 } │ │ │ │ │ +3666 } │ │ │ │ │ +3667 │ │ │ │ │ +3668 template, _Proj>> _Pred> │ │ │ │ │ +3670 constexpr borrowed_subrange_t<_Range> │ │ │ │ │ +3671 operator()(_Range&& __r, _Pred __pred, _Proj __proj = {}) const │ │ │ │ │ +3672 { return (*this)(ranges::begin(__r), ranges::end(__r), _s_t_d_:_:_m_o_v_e(__pred), │ │ │ │ │ +_s_t_d_:_:_m_o_v_e(__proj)); } │ │ │ │ │ +3673 }; │ │ │ │ │ +3674 │ │ │ │ │ +3675 inline constexpr __find_last_if_fn find_last_if{}; │ │ │ │ │ +3676 │ │ │ │ │ +3677 struct __find_last_if_not_fn │ │ │ │ │ +3678 { │ │ │ │ │ +3679 template _Sent, typename _Proj │ │ │ │ │ += identity, │ │ │ │ │ +3680 indirect_unary_predicate> _Pred> │ │ │ │ │ +3681 constexpr subrange<_Iter> │ │ │ │ │ +3682 operator()(_Iter __first, _Sent __last, _Pred __pred, _Proj __proj = {}) │ │ │ │ │ +const │ │ │ │ │ +3683 { │ │ │ │ │ +3684 if constexpr (same_as<_Iter, _Sent> && bidirectional_iterator<_Iter>) │ │ │ │ │ +3685 { │ │ │ │ │ +3686 _Iter __found = ranges::find_if_not(reverse_iterator<_Iter>{__last}, │ │ │ │ │ +3687 reverse_iterator<_Iter>{__first}, │ │ │ │ │ +3688 _s_t_d_:_:_m_o_v_e(__pred), _s_t_d_:_:_m_o_v_e(__proj)).base(); │ │ │ │ │ +3689 if (__found == __first) │ │ │ │ │ +3690 return {__last, __last}; │ │ │ │ │ +3691 else │ │ │ │ │ +3692 return {ranges::prev(__found), __last}; │ │ │ │ │ +3693 } │ │ │ │ │ +3694 else │ │ │ │ │ +3695 { │ │ │ │ │ +3696 _Iter __found = ranges::find_if_not(__first, __last, __pred, __proj); │ │ │ │ │ +3697 if (__found == __last) │ │ │ │ │ +3698 return {__found, __found}; │ │ │ │ │ +3699 __first = __found; │ │ │ │ │ +3700 for (;;) │ │ │ │ │ +3701 { │ │ │ │ │ +3702 __first = ranges::find_if_not(ranges::next(__first), __last, __pred, │ │ │ │ │ +__proj); │ │ │ │ │ +3703 if (__first == __last) │ │ │ │ │ +3704 return {__found, __first}; │ │ │ │ │ +3705 __found = __first; │ │ │ │ │ +3706 } │ │ │ │ │ +3707 } │ │ │ │ │ +3708 } │ │ │ │ │ +3709 │ │ │ │ │ +3710 template, _Proj>> _Pred> │ │ │ │ │ +3712 constexpr borrowed_subrange_t<_Range> │ │ │ │ │ +3713 operator()(_Range&& __r, _Pred __pred, _Proj __proj = {}) const │ │ │ │ │ +3714 { return (*this)(ranges::begin(__r), ranges::end(__r), _s_t_d_:_:_m_o_v_e(__pred), │ │ │ │ │ +_s_t_d_:_:_m_o_v_e(__proj)); } │ │ │ │ │ +3715 }; │ │ │ │ │ +3716 │ │ │ │ │ +3717 inline constexpr __find_last_if_not_fn find_last_if_not{}; │ │ │ │ │ +3718 │ │ │ │ │ +3719#endif // __glibcxx_ranges_find_last │ │ │ │ │ +3720 │ │ │ │ │ +3721#if __glibcxx_ranges_fold >= 202207L // C++ >= 23 │ │ │ │ │ +3722 │ │ │ │ │ +3723 template │ │ │ │ │ +3724 struct in_value_result │ │ │ │ │ +3725 { │ │ │ │ │ +3726 [[no_unique_address]] _Iter in; │ │ │ │ │ +3727 [[no_unique_address]] _Tp value; │ │ │ │ │ +3728 │ │ │ │ │ +3729 template │ │ │ │ │ +3730 requires convertible_to │ │ │ │ │ +3731 && convertible_to │ │ │ │ │ +3732 constexpr │ │ │ │ │ +3733 operator in_value_result<_Iter2, _Tp2>() const & │ │ │ │ │ +3734 { return {in, value}; } │ │ │ │ │ +3735 │ │ │ │ │ +3736 template │ │ │ │ │ +3737 requires convertible_to<_Iter, _Iter2> │ │ │ │ │ +3738 && convertible_to<_Tp, _Tp2> │ │ │ │ │ +3739 constexpr │ │ │ │ │ +3740 operator in_value_result<_Iter2, _Tp2>() && │ │ │ │ │ +3741 { return {_s_t_d_:_:_m_o_v_e(in), _s_t_d_:_:_m_o_v_e(value)}; } │ │ │ │ │ +3742 }; │ │ │ │ │ +3743 │ │ │ │ │ +3744 namespace __detail │ │ │ │ │ +3745 { │ │ │ │ │ +3746 template │ │ │ │ │ +3747 class __flipped │ │ │ │ │ +3748 { │ │ │ │ │ +3749 _Fp _M_f; │ │ │ │ │ +3750 │ │ │ │ │ +3751 public: │ │ │ │ │ +3752 template │ │ │ │ │ +3753 requires invocable<_Fp&, _Up, _Tp> │ │ │ │ │ +3754 invoke_result_t<_Fp&, _Up, _Tp> │ │ │ │ │ +3755 operator()(_Tp&&, _Up&&); // not defined │ │ │ │ │ +3756 }; │ │ │ │ │ +3757 │ │ │ │ │ +3758 template │ │ │ │ │ +3759 concept __indirectly_binary_left_foldable_impl = movable<_Tp> && │ │ │ │ │ +movable<_Up> │ │ │ │ │ +3760 && convertible_to<_Tp, _Up> │ │ │ │ │ +3761 && invocable<_Fp&, _Up, iter_reference_t<_Iter>> │ │ │ │ │ +3762 && assignable_from<_Up&, invoke_result_t<_Fp&, _Up, │ │ │ │ │ +iter_reference_t<_Iter>>>; │ │ │ │ │ +3763 │ │ │ │ │ +3764 template │ │ │ │ │ +3765 concept __indirectly_binary_left_foldable = copy_constructible<_Fp> │ │ │ │ │ +3766 && indirectly_readable<_Iter> │ │ │ │ │ +3767 && invocable<_Fp&, _Tp, iter_reference_t<_Iter>> │ │ │ │ │ +3768 && convertible_to>, │ │ │ │ │ +3769 decay_t>>> │ │ │ │ │ +3770 && __indirectly_binary_left_foldable_impl │ │ │ │ │ +3771 <_Fp, _Tp, _Iter, decay_t>>>; │ │ │ │ │ +3772 │ │ │ │ │ +3773 template │ │ │ │ │ +3774 concept __indirectly_binary_right_foldable │ │ │ │ │ +3775 = __indirectly_binary_left_foldable<__flipped<_Fp>, _Tp, _Iter>; │ │ │ │ │ +3776 } // namespace __detail │ │ │ │ │ +3777 │ │ │ │ │ +3778 template │ │ │ │ │ +3779 using fold_left_with_iter_result = in_value_result<_Iter, _Tp>; │ │ │ │ │ +3780 │ │ │ │ │ +3781 struct __fold_left_with_iter_fn │ │ │ │ │ +3782 { │ │ │ │ │ +3783 template │ │ │ │ │ +3785 static constexpr auto │ │ │ │ │ +3786 _S_impl(_Iter __first, _Sent __last, _Tp __init, _Fp __f) │ │ │ │ │ +3787 { │ │ │ │ │ +3788 using _Up = decay_t>>; │ │ │ │ │ +3789 using _Ret = fold_left_with_iter_result<_Ret_iter, _Up>; │ │ │ │ │ +3790 │ │ │ │ │ +3791 if (__first == __last) │ │ │ │ │ +3792 return _Ret{_s_t_d_:_:_m_o_v_e(__first), _Up(_s_t_d_:_:_m_o_v_e(__init))}; │ │ │ │ │ +3793 │ │ │ │ │ +3794 _Up __accum = _s_t_d_:_:_____i_n_v_o_k_e(__f, _s_t_d_:_:_m_o_v_e(__init), *__first); │ │ │ │ │ +3795 for (++__first; __first != __last; ++__first) │ │ │ │ │ +3796 __accum = _s_t_d_:_:_____i_n_v_o_k_e(__f, _s_t_d_:_:_m_o_v_e(__accum), *__first); │ │ │ │ │ +3797 return _Ret{_s_t_d_:_:_m_o_v_e(__first), _s_t_d_:_:_m_o_v_e(__accum)}; │ │ │ │ │ +3798 } │ │ │ │ │ +3799 │ │ │ │ │ +3800 template _Sent, │ │ │ │ │ +3801 typename _Tp _GLIBCXX26_DEF_VAL_T(iter_value_t<_Iter>), │ │ │ │ │ +3802 __detail::__indirectly_binary_left_foldable<_Tp, _Iter> _Fp> │ │ │ │ │ +3803 constexpr auto │ │ │ │ │ +3804 operator()(_Iter __first, _Sent __last, _Tp __init, _Fp __f) const │ │ │ │ │ +3805 { │ │ │ │ │ +3806 using _Ret_iter = _Iter; │ │ │ │ │ +3807 return _S_impl<_Ret_iter>(_s_t_d_:_:_m_o_v_e(__first), __last, │ │ │ │ │ +3808 _s_t_d_:_:_m_o_v_e(__init), _s_t_d_:_:_m_o_v_e(__f)); │ │ │ │ │ +3809 } │ │ │ │ │ +3810 │ │ │ │ │ +3811 template), │ │ │ │ │ +3813 __detail::__indirectly_binary_left_foldable<_Tp, iterator_t<_Range>> _Fp> │ │ │ │ │ +3814 constexpr auto │ │ │ │ │ +3815 operator()(_Range&& __r, _Tp __init, _Fp __f) const │ │ │ │ │ +3816 { │ │ │ │ │ +3817 using _Ret_iter = borrowed_iterator_t<_Range>; │ │ │ │ │ +3818 return _S_impl<_Ret_iter>(ranges::begin(__r), ranges::end(__r), │ │ │ │ │ +3819 _s_t_d_:_:_m_o_v_e(__init), _s_t_d_:_:_m_o_v_e(__f)); │ │ │ │ │ +3820 } │ │ │ │ │ +3821 }; │ │ │ │ │ +3822 │ │ │ │ │ +3823 inline constexpr __fold_left_with_iter_fn fold_left_with_iter{}; │ │ │ │ │ +3824 │ │ │ │ │ +3825 struct __fold_left_fn │ │ │ │ │ +3826 { │ │ │ │ │ +3827 template _Sent, │ │ │ │ │ +3828 typename _Tp _GLIBCXX26_DEF_VAL_T(iter_value_t<_Iter>), │ │ │ │ │ +3829 __detail::__indirectly_binary_left_foldable<_Tp, _Iter> _Fp> │ │ │ │ │ +3830 constexpr auto │ │ │ │ │ +3831 operator()(_Iter __first, _Sent __last, _Tp __init, _Fp __f) const │ │ │ │ │ +3832 { │ │ │ │ │ +3833 return ranges::fold_left_with_iter(_s_t_d_:_:_m_o_v_e(__first), __last, │ │ │ │ │ +3834 _s_t_d_:_:_m_o_v_e(__init), _s_t_d_:_:_m_o_v_e(__f)).value; │ │ │ │ │ +3835 } │ │ │ │ │ +3836 │ │ │ │ │ +3837 template), │ │ │ │ │ +3839 __detail::__indirectly_binary_left_foldable<_Tp, iterator_t<_Range>> _Fp> │ │ │ │ │ +3840 constexpr auto │ │ │ │ │ +3841 operator()(_Range&& __r, _Tp __init, _Fp __f) const │ │ │ │ │ +3842 { return (*this)(ranges::begin(__r), ranges::end(__r), _s_t_d_:_:_m_o_v_e(__init), │ │ │ │ │ +_s_t_d_:_:_m_o_v_e(__f)); } │ │ │ │ │ +3843 }; │ │ │ │ │ +3844 │ │ │ │ │ +3845 inline constexpr __fold_left_fn fold_left{}; │ │ │ │ │ +3846 │ │ │ │ │ +3847 template │ │ │ │ │ +3848 using fold_left_first_with_iter_result = in_value_result<_Iter, _Tp>; │ │ │ │ │ +3849 │ │ │ │ │ +3850 struct __fold_left_first_with_iter_fn │ │ │ │ │ +3851 { │ │ │ │ │ +3852 template │ │ │ │ │ +3853 static constexpr auto │ │ │ │ │ +3854 _S_impl(_Iter __first, _Sent __last, _Fp __f) │ │ │ │ │ +3855 { │ │ │ │ │ +3856 using _Up = decltype(ranges::fold_left(_s_t_d_:_:_m_o_v_e(__first), __last, │ │ │ │ │ +3857 iter_value_t<_Iter>(*__first), __f)); │ │ │ │ │ +3858 using _Ret = fold_left_first_with_iter_result<_Ret_iter, optional<_Up>>; │ │ │ │ │ +3859 │ │ │ │ │ +3860 if (__first == __last) │ │ │ │ │ +3861 return _Ret{_s_t_d_:_:_m_o_v_e(__first), optional<_Up>()}; │ │ │ │ │ +3862 │ │ │ │ │ +3863 optional<_Up> __init(in_place, *__first); │ │ │ │ │ +3864 for (++__first; __first != __last; ++__first) │ │ │ │ │ +3865 *__init = _s_t_d_:_:_____i_n_v_o_k_e(__f, _s_t_d_:_:_m_o_v_e(*__init), *__first); │ │ │ │ │ +3866 return _Ret{_s_t_d_:_:_m_o_v_e(__first), _s_t_d_:_:_m_o_v_e(__init)}; │ │ │ │ │ +3867 } │ │ │ │ │ +3868 │ │ │ │ │ +3869 template _Sent, │ │ │ │ │ +3870 __detail::__indirectly_binary_left_foldable, _Iter> │ │ │ │ │ +_Fp> │ │ │ │ │ +3871 requires constructible_from, iter_reference_t<_Iter>> │ │ │ │ │ +3872 constexpr auto │ │ │ │ │ +3873 operator()(_Iter __first, _Sent __last, _Fp __f) const │ │ │ │ │ +3874 { │ │ │ │ │ +3875 using _Ret_iter = _Iter; │ │ │ │ │ +3876 return _S_impl<_Ret_iter>(_s_t_d_:_:_m_o_v_e(__first), __last, _s_t_d_:_:_m_o_v_e(__f)); │ │ │ │ │ +3877 } │ │ │ │ │ +3878 │ │ │ │ │ +3879 template, │ │ │ │ │ +iterator_t<_Range>> _Fp> │ │ │ │ │ +3881 requires constructible_from, │ │ │ │ │ +range_reference_t<_Range>> │ │ │ │ │ +3882 constexpr auto │ │ │ │ │ +3883 operator()(_Range&& __r, _Fp __f) const │ │ │ │ │ +3884 { │ │ │ │ │ +3885 using _Ret_iter = borrowed_iterator_t<_Range>; │ │ │ │ │ +3886 return _S_impl<_Ret_iter>(ranges::begin(__r), ranges::end(__r), _s_t_d_:_:_m_o_v_e │ │ │ │ │ +(__f)); │ │ │ │ │ +3887 } │ │ │ │ │ +3888 }; │ │ │ │ │ +3889 │ │ │ │ │ +3890 inline constexpr __fold_left_first_with_iter_fn fold_left_first_with_iter │ │ │ │ │ +{}; │ │ │ │ │ +3891 │ │ │ │ │ +3892 struct __fold_left_first_fn │ │ │ │ │ +3893 { │ │ │ │ │ +3894 template _Sent, │ │ │ │ │ +3895 __detail::__indirectly_binary_left_foldable, _Iter> │ │ │ │ │ +_Fp> │ │ │ │ │ +3896 requires constructible_from, iter_reference_t<_Iter>> │ │ │ │ │ +3897 constexpr auto │ │ │ │ │ +3898 operator()(_Iter __first, _Sent __last, _Fp __f) const │ │ │ │ │ +3899 { │ │ │ │ │ +3900 return ranges::fold_left_first_with_iter(_s_t_d_:_:_m_o_v_e(__first), __last, │ │ │ │ │ +3901 _s_t_d_:_:_m_o_v_e(__f)).value; │ │ │ │ │ +3902 } │ │ │ │ │ +3903 │ │ │ │ │ +3904 template, │ │ │ │ │ +iterator_t<_Range>> _Fp> │ │ │ │ │ +3906 requires constructible_from, │ │ │ │ │ +range_reference_t<_Range>> │ │ │ │ │ +3907 constexpr auto │ │ │ │ │ +3908 operator()(_Range&& __r, _Fp __f) const │ │ │ │ │ +3909 { return (*this)(ranges::begin(__r), ranges::end(__r), _s_t_d_:_:_m_o_v_e(__f)); } │ │ │ │ │ +3910 }; │ │ │ │ │ +3911 │ │ │ │ │ +3912 inline constexpr __fold_left_first_fn fold_left_first{}; │ │ │ │ │ +3913 │ │ │ │ │ +3914 struct __fold_right_fn │ │ │ │ │ +3915 { │ │ │ │ │ +3916 template _Sent, │ │ │ │ │ +3917 typename _Tp _GLIBCXX26_DEF_VAL_T(iter_value_t<_Iter>), │ │ │ │ │ +3918 __detail::__indirectly_binary_right_foldable<_Tp, _Iter> _Fp> │ │ │ │ │ +3919 constexpr auto │ │ │ │ │ +3920 operator()(_Iter __first, _Sent __last, _Tp __init, _Fp __f) const │ │ │ │ │ +3921 { │ │ │ │ │ +3922 using _Up = decay_t, _Tp>>; │ │ │ │ │ +3923 │ │ │ │ │ +3924 if (__first == __last) │ │ │ │ │ +3925 return _Up(_s_t_d_:_:_m_o_v_e(__init)); │ │ │ │ │ +3926 │ │ │ │ │ +3927 _Iter __tail = ranges::next(__first, __last); │ │ │ │ │ +3928 _Up __accum = _s_t_d_:_:_____i_n_v_o_k_e(__f, *--__tail, _s_t_d_:_:_m_o_v_e(__init)); │ │ │ │ │ +3929 while (__first != __tail) │ │ │ │ │ +3930 __accum = _s_t_d_:_:_____i_n_v_o_k_e(__f, *--__tail, _s_t_d_:_:_m_o_v_e(__accum)); │ │ │ │ │ +3931 return __accum; │ │ │ │ │ +3932 } │ │ │ │ │ +3933 │ │ │ │ │ +3934 template), │ │ │ │ │ +3936 __detail::__indirectly_binary_right_foldable<_Tp, iterator_t<_Range>> _Fp> │ │ │ │ │ +3937 constexpr auto │ │ │ │ │ +3938 operator()(_Range&& __r, _Tp __init, _Fp __f) const │ │ │ │ │ +3939 { return (*this)(ranges::begin(__r), ranges::end(__r), _s_t_d_:_:_m_o_v_e(__init), │ │ │ │ │ +_s_t_d_:_:_m_o_v_e(__f)); } │ │ │ │ │ +3940 }; │ │ │ │ │ +3941 │ │ │ │ │ +3942 inline constexpr __fold_right_fn fold_right{}; │ │ │ │ │ +3943 │ │ │ │ │ +3944 struct __fold_right_last_fn │ │ │ │ │ +3945 { │ │ │ │ │ +3946 template _Sent, │ │ │ │ │ +3947 __detail::__indirectly_binary_right_foldable, _Iter> │ │ │ │ │ +_Fp> │ │ │ │ │ +3948 requires constructible_from, iter_reference_t<_Iter>> │ │ │ │ │ +3949 constexpr auto │ │ │ │ │ +3950 operator()(_Iter __first, _Sent __last, _Fp __f) const │ │ │ │ │ +3951 { │ │ │ │ │ +3952 using _Up = decltype(ranges::fold_right(__first, __last, │ │ │ │ │ +3953 iter_value_t<_Iter>(*__first), __f)); │ │ │ │ │ +3954 │ │ │ │ │ +3955 if (__first == __last) │ │ │ │ │ +3956 return optional<_Up>(); │ │ │ │ │ +3957 │ │ │ │ │ +3958 _Iter __tail = ranges::prev(ranges::next(__first, _s_t_d_:_:_m_o_v_e(__last))); │ │ │ │ │ +3959 return optional<_Up>(in_place, │ │ │ │ │ +3960 ranges::fold_right(_s_t_d_:_:_m_o_v_e(__first), __tail, │ │ │ │ │ +3961 iter_value_t<_Iter>(*__tail), │ │ │ │ │ +3962 _s_t_d_:_:_m_o_v_e(__f))); │ │ │ │ │ +3963 } │ │ │ │ │ +3964 │ │ │ │ │ +3965 template, │ │ │ │ │ +iterator_t<_Range>> _Fp> │ │ │ │ │ +3967 requires constructible_from, │ │ │ │ │ +range_reference_t<_Range>> │ │ │ │ │ +3968 constexpr auto │ │ │ │ │ +3969 operator()(_Range&& __r, _Fp __f) const │ │ │ │ │ +3970 { return (*this)(ranges::begin(__r), ranges::end(__r), _s_t_d_:_:_m_o_v_e(__f)); } │ │ │ │ │ +3971 }; │ │ │ │ │ +3972 │ │ │ │ │ +3973 inline constexpr __fold_right_last_fn fold_right_last{}; │ │ │ │ │ +3974#endif // __glibcxx_ranges_fold │ │ │ │ │ +3975} // namespace ranges │ │ │ │ │ +3976 │ │ │ │ │ +3977 template │ │ │ │ │ +3978 constexpr _ForwardIterator │ │ │ │ │ +3979 shift_left(_ForwardIterator __first, _ForwardIterator __last, │ │ │ │ │ +3980 typename iterator_traits<_ForwardIterator>::difference_type __n) │ │ │ │ │ +3981 { │ │ │ │ │ +3982 __glibcxx_assert(__n >= 0); │ │ │ │ │ +3983 if (__n == 0) │ │ │ │ │ +3984 return __last; │ │ │ │ │ +3985 │ │ │ │ │ +3986 auto __mid = ranges::next(__first, __n, __last); │ │ │ │ │ +3987 if (__mid == __last) │ │ │ │ │ +3988 return __first; │ │ │ │ │ +3989 return _s_t_d_:_:_m_o_v_e(_s_t_d_:_:_m_o_v_e(__mid), _s_t_d_:_:_m_o_v_e(__last), _s_t_d_:_:_m_o_v_e(__first)); │ │ │ │ │ +3990 } │ │ │ │ │ +3991 │ │ │ │ │ +3992 template │ │ │ │ │ +3993 constexpr _ForwardIterator │ │ │ │ │ +3994 shift_right(_ForwardIterator __first, _ForwardIterator __last, │ │ │ │ │ +3995 typename iterator_traits<_ForwardIterator>::difference_type __n) │ │ │ │ │ +3996 { │ │ │ │ │ +3997 __glibcxx_assert(__n >= 0); │ │ │ │ │ +3998 if (__n == 0) │ │ │ │ │ +3999 return __first; │ │ │ │ │ +4000 │ │ │ │ │ +4001 using _Cat │ │ │ │ │ +4002 = typename iterator_traits<_ForwardIterator>::iterator_category; │ │ │ │ │ +4003 if constexpr (derived_from<_Cat, bidirectional_iterator_tag>) │ │ │ │ │ +4004 { │ │ │ │ │ +4005 auto __mid = ranges::next(__last, -__n, __first); │ │ │ │ │ +4006 if (__mid == __first) │ │ │ │ │ +4007 return __last; │ │ │ │ │ +4008 │ │ │ │ │ +4009 return _s_t_d_:_:_m_o_v_e___b_a_c_k_w_a_r_d(_s_t_d_:_:_m_o_v_e(__first), _s_t_d_:_:_m_o_v_e(__mid), │ │ │ │ │ +4010 _s_t_d_:_:_m_o_v_e(__last)); │ │ │ │ │ +4011 } │ │ │ │ │ +4012 else │ │ │ │ │ +4013 { │ │ │ │ │ +4014 auto __result = ranges::next(__first, __n, __last); │ │ │ │ │ +4015 if (__result == __last) │ │ │ │ │ +4016 return __last; │ │ │ │ │ +4017 │ │ │ │ │ +4018 auto __dest_head = __first, __dest_tail = __result; │ │ │ │ │ +4019 while (__dest_head != __result) │ │ │ │ │ +4020 { │ │ │ │ │ +4021 if (__dest_tail == __last) │ │ │ │ │ +4022 { │ │ │ │ │ +4023 // If we get here, then we must have │ │ │ │ │ +4024 // 2*n >= distance(__first, __last) │ │ │ │ │ +4025 // i.e. we are shifting out at least half of the range. In │ │ │ │ │ +4026 // this case we can safely perform the shift with a single │ │ │ │ │ +4027 // move. │ │ │ │ │ +4028 _s_t_d_:_:_m_o_v_e(_s_t_d_:_:_m_o_v_e(__first), _s_t_d_:_:_m_o_v_e(__dest_head), __result); │ │ │ │ │ +4029 return __result; │ │ │ │ │ +4030 } │ │ │ │ │ +4031 ++__dest_head; │ │ │ │ │ +4032 ++__dest_tail; │ │ │ │ │ +4033 } │ │ │ │ │ +4034 │ │ │ │ │ +4035 for (;;) │ │ │ │ │ +4036 { │ │ │ │ │ +4037 // At the start of each iteration of this outer loop, the range │ │ │ │ │ +4038 // [__first, __result) contains those elements that after shifting │ │ │ │ │ +4039 // the whole range right by __n, should end up in │ │ │ │ │ +4040 // [__dest_head, __dest_tail) in order. │ │ │ │ │ +4041 │ │ │ │ │ +4042 // The below inner loop swaps the elements of [__first, __result) │ │ │ │ │ +4043 // and [__dest_head, __dest_tail), while simultaneously shifting │ │ │ │ │ +4044 // the latter range by __n. │ │ │ │ │ +4045 auto __cursor = __first; │ │ │ │ │ +4046 while (__cursor != __result) │ │ │ │ │ +4047 { │ │ │ │ │ +4048 if (__dest_tail == __last) │ │ │ │ │ +4049 { │ │ │ │ │ +4050 // At this point the ranges [__first, result) and │ │ │ │ │ +4051 // [__dest_head, dest_tail) are disjoint, so we can safely │ │ │ │ │ +4052 // move the remaining elements. │ │ │ │ │ +4053 __dest_head = _s_t_d_:_:_m_o_v_e(__cursor, __result, │ │ │ │ │ +4054 _s_t_d_:_:_m_o_v_e(__dest_head)); │ │ │ │ │ +4055 _s_t_d_:_:_m_o_v_e(_s_t_d_:_:_m_o_v_e(__first), _s_t_d_:_:_m_o_v_e(__cursor), │ │ │ │ │ +4056 _s_t_d_:_:_m_o_v_e(__dest_head)); │ │ │ │ │ +4057 return __result; │ │ │ │ │ +4058 } │ │ │ │ │ +4059 std::iter_swap(__cursor, __dest_head); │ │ │ │ │ +4060 ++__dest_head; │ │ │ │ │ +4061 ++__dest_tail; │ │ │ │ │ +4062 ++__cursor; │ │ │ │ │ +4063 } │ │ │ │ │ +4064 } │ │ │ │ │ +4065 } │ │ │ │ │ +4066 } │ │ │ │ │ +4067 │ │ │ │ │ +4068_GLIBCXX_END_NAMESPACE_VERSION │ │ │ │ │ +4069} // namespace std │ │ │ │ │ +4070#endif // concepts │ │ │ │ │ +4071#endif // C++20 │ │ │ │ │ +4072#endif // _RANGES_ALGO_H │ │ │ │ │ +_r_a_n_g_e_s___a_l_g_o_b_a_s_e_._h │ │ │ │ │ +_u_n_i_f_o_r_m___i_n_t___d_i_s_t_._h │ │ │ │ │ +_r_a_n_g_e_s___u_t_i_l_._h │ │ │ │ │ +_s_t_d_:_:_m_o_v_e │ │ │ │ │ +constexpr std::remove_reference< _Tp >::type && move(_Tp &&__t) noexcept │ │ │ │ │ +Convert a value to an rvalue. │ │ │ │ │ +DDeeffiinniittiioonn _m_o_v_e_._h_:_1_3_8 │ │ │ │ │ +_s_t_d_:_:_____i_n_v_o_k_e │ │ │ │ │ +constexpr __invoke_result< _Callable, _Args... >::type __invoke(_Callable │ │ │ │ │ +&&__fn, _Args &&... __args) noexcept(__is_nothrow_invocable< _Callable, │ │ │ │ │ +_Args... >::value) │ │ │ │ │ +Invoke a callable object. │ │ │ │ │ +DDeeffiinniittiioonn _i_n_v_o_k_e_._h_:_9_2 │ │ │ │ │ +_s_t_d_:_:_f_o_r_w_a_r_d │ │ │ │ │ +constexpr _Tp && forward(typename std::remove_reference< _Tp >::type &__t) │ │ │ │ │ +noexcept │ │ │ │ │ +Forward an lvalue. │ │ │ │ │ +DDeeffiinniittiioonn _m_o_v_e_._h_:_7_2 │ │ │ │ │ +_s_t_d_:_:_m_o_v_e___b_a_c_k_w_a_r_d │ │ │ │ │ +constexpr _BI2 move_backward(_BI1 __first, _BI1 __last, _BI2 __result) │ │ │ │ │ +Moves the range [first,last) into result. │ │ │ │ │ +DDeeffiinniittiioonn _s_t_l___a_l_g_o_b_a_s_e_._h_:_8_7_3 │ │ │ │ │ +_s_t_d_:_:_m_i_n │ │ │ │ │ +constexpr const _Tp & min(const _Tp &, const _Tp &) │ │ │ │ │ +This does what you think it does. │ │ │ │ │ +DDeeffiinniittiioonn _s_t_l___a_l_g_o_b_a_s_e_._h_:_2_3_4 │ │ │ │ │ _s_t_d │ │ │ │ │ ISO C++ entities toplevel namespace is std. │ │ │ │ │ -_s_t_d_:_:___D_e_s_t_r_o_y___n │ │ │ │ │ -constexpr _ForwardIterator _Destroy_n(_ForwardIterator __first, _Size __count) │ │ │ │ │ -DDeeffiinniittiioonn _s_t_l___c_o_n_s_t_r_u_c_t_._h_:_2_5_8 │ │ │ │ │ -_s_t_d_:_:___C_o_n_s_t_r_u_c_t │ │ │ │ │ -constexpr void _Construct(_Tp *__p, _Args &&... __args) │ │ │ │ │ -DDeeffiinniittiioonn _s_t_l___c_o_n_s_t_r_u_c_t_._h_:_1_2_3 │ │ │ │ │ -_s_t_d_:_:_a_d_v_a_n_c_e │ │ │ │ │ -constexpr void advance(_InputIterator &__i, _Distance __n) │ │ │ │ │ -A generalization of pointer arithmetic. │ │ │ │ │ -DDeeffiinniittiioonn _s_t_l___i_t_e_r_a_t_o_r___b_a_s_e___f_u_n_c_s_._h_:_2_2_2 │ │ │ │ │ -_s_t_d_:_:___D_e_s_t_r_o_y │ │ │ │ │ -constexpr void _Destroy(_ForwardIterator __first, _ForwardIterator __last) │ │ │ │ │ -DDeeffiinniittiioonn _s_t_l___c_o_n_s_t_r_u_c_t_._h_:_2_0_2 │ │ │ │ │ -_s_t_d_:_:_i_s___d_e_s_t_r_u_c_t_i_b_l_e │ │ │ │ │ -is_destructible │ │ │ │ │ -DDeeffiinniittiioonn _t_y_p_e___t_r_a_i_t_s_:_1_0_8_9 │ │ │ │ │ -_s_t_d_:_:_i_t_e_r_a_t_o_r___t_r_a_i_t_s │ │ │ │ │ -Traits class for iterators. │ │ │ │ │ -DDeeffiinniittiioonn _s_t_l___i_t_e_r_a_t_o_r___b_a_s_e___t_y_p_e_s_._h_:_1_8_0 │ │ │ │ │ * _b_i_t_s │ │ │ │ │ - * _s_t_l___c_o_n_s_t_r_u_c_t_._h │ │ │ │ │ + * _r_a_n_g_e_s___a_l_g_o_._h │ │ │ │ │ * Generated by _[_d_o_x_y_g_e_n_]1.9.8 │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a00395.html │ │ │ │ @@ -1,15 +1,15 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ -libstdc++: stl_uninitialized.h File Reference │ │ │ │ +libstdc++: memory_resource.h File Reference │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ @@ -46,68 +46,132 @@ │ │ │ │ /* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */ │ │ │ │ $(document).ready(function(){initNavTree('a00395.html',''); initResizable(); }); │ │ │ │ /* @license-end */ │ │ │ │ │ │ │ │
│ │ │ │
│ │ │ │
│ │ │ │ +Classes | │ │ │ │ Namespaces | │ │ │ │ Functions
│ │ │ │ -
stl_uninitialized.h File Reference
│ │ │ │ +
memory_resource.h File Reference
│ │ │ │
│ │ │ │
│ │ │ │ │ │ │ │

Go to the source code of this file.

│ │ │ │ │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ +

│ │ │ │ +Classes

struct  std::allocator_traits< pmr::polymorphic_allocator< _Tp > >
 
class  std::pmr::memory_resource
 
class  std::pmr::polymorphic_allocator< _Tp >
 
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │

│ │ │ │ Namespaces

namespace  std
 
│ │ │ │ │ │ │ │ - │ │ │ │ - │ │ │ │ - │ │ │ │ - │ │ │ │ - │ │ │ │ - │ │ │ │ - │ │ │ │ - │ │ │ │ - │ │ │ │ - │ │ │ │ - │ │ │ │ - │ │ │ │ - │ │ │ │ - │ │ │ │ - │ │ │ │ - │ │ │ │ - │ │ │ │ - │ │ │ │ - │ │ │ │ - │ │ │ │ - │ │ │ │ - │ │ │ │ - │ │ │ │ - │ │ │ │ - │ │ │ │ - │ │ │ │ - │ │ │ │ - │ │ │ │ - │ │ │ │ - │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │

│ │ │ │ Functions

template<typename _InputIterator , typename _ForwardIterator >
_GLIBCXX26_CONSTEXPR _ForwardIterator std::uninitialized_copy (_InputIterator __first, _InputIterator __last, _ForwardIterator __result)
 
template<typename _InputIterator , typename _Size , typename _ForwardIterator >
_GLIBCXX26_CONSTEXPR _ForwardIterator std::uninitialized_copy_n (_InputIterator __first, _Size __n, _ForwardIterator __result)
 
template<typename _ForwardIterator >
_GLIBCXX26_CONSTEXPR void std::uninitialized_default_construct (_ForwardIterator __first, _ForwardIterator __last)
 
template<typename _ForwardIterator , typename _Size >
_GLIBCXX26_CONSTEXPR _ForwardIterator std::uninitialized_default_construct_n (_ForwardIterator __first, _Size __count)
 
template<typename _ForwardIterator , typename _Tp >
_GLIBCXX26_CONSTEXPR void std::uninitialized_fill (_ForwardIterator __first, _ForwardIterator __last, const _Tp &__x)
 
template<typename _ForwardIterator , typename _Size , typename _Tp >
_GLIBCXX26_CONSTEXPR _ForwardIterator std::uninitialized_fill_n (_ForwardIterator __first, _Size __n, const _Tp &__x)
 
template<typename _InputIterator , typename _ForwardIterator >
_GLIBCXX26_CONSTEXPR _ForwardIterator std::uninitialized_move (_InputIterator __first, _InputIterator __last, _ForwardIterator __result)
 
template<typename _InputIterator , typename _Size , typename _ForwardIterator >
_GLIBCXX26_CONSTEXPR pair< _InputIterator, _ForwardIterator > std::uninitialized_move_n (_InputIterator __first, _Size __count, _ForwardIterator __result)
 
template<typename _ForwardIterator >
_GLIBCXX26_CONSTEXPR void std::uninitialized_value_construct (_ForwardIterator __first, _ForwardIterator __last)
 
template<typename _ForwardIterator , typename _Size >
_GLIBCXX26_CONSTEXPR _ForwardIterator std::uninitialized_value_construct_n (_ForwardIterator __first, _Size __count)
 
bool std::pmr::operator== (const memory_resource &__a, const memory_resource &__b) noexcept
 
template<typename _Tp1 , typename _Tp2 >
bool std::pmr::operator== (const polymorphic_allocator< _Tp1 > &__a, const polymorphic_allocator< _Tp2 > &__b) noexcept
 
│ │ │ │

Detailed Description

│ │ │ │ -

This is an internal header file, included by other library headers. Do not attempt to use it directly. Instead, include <memory>.

│ │ │ │ +

This is an internal header file, included by other library headers. Do not attempt to use it directly. Instead, include <memory_resource>.

│ │ │ │ + │ │ │ │ +

Definition in file memory_resource.h.

│ │ │ │ +

Function Documentation

│ │ │ │ + │ │ │ │ +

◆ operator==() [1/2]

│ │ │ │ + │ │ │ │ +
│ │ │ │ +
│ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ +
│ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ +
bool std::pmr::operator== (const memory_resource__a,
const memory_resource__b 
)
│ │ │ │ +
│ │ │ │ +inlinenoexcept
│ │ │ │ +
│ │ │ │ + │ │ │ │ +

Definition at line 103 of file memory_resource.h.

│ │ │ │ │ │ │ │ -

Definition in file stl_uninitialized.h.

│ │ │ │ -
│ │ │ │ +
│ │ │ │ +
│ │ │ │ + │ │ │ │ +

◆ operator==() [2/2]

│ │ │ │ + │ │ │ │ +
│ │ │ │ +
│ │ │ │ +
│ │ │ │ +template<typename _Tp1 , typename _Tp2 >
│ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ +
│ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ +
bool std::pmr::operator== (const polymorphic_allocator< _Tp1 > & __a,
const polymorphic_allocator< _Tp2 > & __b 
)
│ │ │ │ +
│ │ │ │ +inlinenoexcept
│ │ │ │ +
│ │ │ │ + │ │ │ │ +

Definition at line 373 of file memory_resource.h.

│ │ │ │ + │ │ │ │ +
│ │ │ │ +
│ │ │ │ +
│ │ │ │
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├── html2text {} │ │ │ │ │ @@ -1,65 +1,43 @@ │ │ │ │ │ libstdc++ │ │ │ │ │ -_N_a_m_e_s_p_a_c_e_s | _F_u_n_c_t_i_o_n_s │ │ │ │ │ -stl_uninitialized.h File Reference │ │ │ │ │ +_C_l_a_s_s_e_s | _N_a_m_e_s_p_a_c_e_s | _F_u_n_c_t_i_o_n_s │ │ │ │ │ +memory_resource.h File Reference │ │ │ │ │ _G_o_ _t_o_ _t_h_e_ _s_o_u_r_c_e_ _c_o_d_e_ _o_f_ _t_h_i_s_ _f_i_l_e_. │ │ │ │ │ +CCllaasssseess │ │ │ │ │ +struct   _s_t_d_:_:_a_l_l_o_c_a_t_o_r___t_r_a_i_t_s_<_ _p_m_r_:_:_p_o_l_y_m_o_r_p_h_i_c___a_l_l_o_c_a_t_o_r_<_ ___T_p_ _>_ _> │ │ │ │ │ +  │ │ │ │ │ + class   _s_t_d_:_:_p_m_r_:_:_m_e_m_o_r_y___r_e_s_o_u_r_c_e │ │ │ │ │ +  │ │ │ │ │ + class   _s_t_d_:_:_p_m_r_:_:_p_o_l_y_m_o_r_p_h_i_c___a_l_l_o_c_a_t_o_r_<_ ___T_p_ _> │ │ │ │ │ +  │ │ │ │ │ NNaammeessppaacceess │ │ │ │ │ namespace   _s_t_d │ │ │ │ │   │ │ │ │ │ FFuunnccttiioonnss │ │ │ │ │ -template │ │ │ │ │ -_GLIBCXX26_CONSTEXPR _ForwardIterator  _s_t_d_:_:_u_n_i_n_i_t_i_a_l_i_z_e_d___c_o_p_y (_InputIterator │ │ │ │ │ - __first, _InputIterator __last, │ │ │ │ │ - _ForwardIterator __result) │ │ │ │ │ -  │ │ │ │ │ -template │ │ │ │ │ -_GLIBCXX26_CONSTEXPR _ForwardIterator  _s_t_d_:_:_u_n_i_n_i_t_i_a_l_i_z_e_d___c_o_p_y___n │ │ │ │ │ - (_InputIterator __first, _Size __n, │ │ │ │ │ - _ForwardIterator __result) │ │ │ │ │ -  │ │ │ │ │ -template │ │ │ │ │ - _GLIBCXX26_CONSTEXPR void  _s_t_d_:_:_u_n_i_n_i_t_i_a_l_i_z_e_d___d_e_f_a_u_l_t___c_o_n_s_t_r_u_c_t │ │ │ │ │ - (_ForwardIterator __first, │ │ │ │ │ - _ForwardIterator __last) │ │ │ │ │ -  │ │ │ │ │ -template │ │ │ │ │ -_GLIBCXX26_CONSTEXPR _ForwardIterator  _s_t_d_:_:_u_n_i_n_i_t_i_a_l_i_z_e_d___d_e_f_a_u_l_t___c_o_n_s_t_r_u_c_t___n │ │ │ │ │ - (_ForwardIterator __first, _Size │ │ │ │ │ - __count) │ │ │ │ │ -  │ │ │ │ │ -template │ │ │ │ │ - _GLIBCXX26_CONSTEXPR void  _s_t_d_:_:_u_n_i_n_i_t_i_a_l_i_z_e_d___f_i_l_l │ │ │ │ │ - (_ForwardIterator __first, │ │ │ │ │ - _ForwardIterator __last, const _Tp &__x) │ │ │ │ │ -  │ │ │ │ │ -template │ │ │ │ │ -_GLIBCXX26_CONSTEXPR _ForwardIterator  _s_t_d_:_:_u_n_i_n_i_t_i_a_l_i_z_e_d___f_i_l_l___n │ │ │ │ │ - (_ForwardIterator __first, _Size __n, │ │ │ │ │ - const _Tp &__x) │ │ │ │ │ -  │ │ │ │ │ -template │ │ │ │ │ -_GLIBCXX26_CONSTEXPR _ForwardIterator  _s_t_d_:_:_u_n_i_n_i_t_i_a_l_i_z_e_d___m_o_v_e (_InputIterator │ │ │ │ │ - __first, _InputIterator __last, │ │ │ │ │ - _ForwardIterator __result) │ │ │ │ │ -  │ │ │ │ │ -template │ │ │ │ │ - _GLIBCXX26_CONSTEXPR _p_a_i_r< _s_t_d_:_:_u_n_i_n_i_t_i_a_l_i_z_e_d___m_o_v_e___n │ │ │ │ │ - _InputIterator, _ForwardIterator >  (_InputIterator __first, _Size __count, │ │ │ │ │ - _ForwardIterator __result) │ │ │ │ │ -  │ │ │ │ │ -template │ │ │ │ │ - _GLIBCXX26_CONSTEXPR void  _s_t_d_:_:_u_n_i_n_i_t_i_a_l_i_z_e_d___v_a_l_u_e___c_o_n_s_t_r_u_c_t │ │ │ │ │ - (_ForwardIterator __first, │ │ │ │ │ - _ForwardIterator __last) │ │ │ │ │ -  │ │ │ │ │ -template │ │ │ │ │ -_GLIBCXX26_CONSTEXPR _ForwardIterator  _s_t_d_:_:_u_n_i_n_i_t_i_a_l_i_z_e_d___v_a_l_u_e___c_o_n_s_t_r_u_c_t___n │ │ │ │ │ - (_ForwardIterator __first, _Size │ │ │ │ │ - __count) │ │ │ │ │ +bool  _s_t_d_:_:_p_m_r_:_:_o_p_e_r_a_t_o_r_=_= (const _m_e_m_o_r_y___r_e_s_o_u_r_c_e &__a, const _m_e_m_o_r_y___r_e_s_o_u_r_c_e │ │ │ │ │ + &__b) noexcept │ │ │ │ │ +  │ │ │ │ │ +template │ │ │ │ │ +bool  _s_t_d_:_:_p_m_r_:_:_o_p_e_r_a_t_o_r_=_= (const _p_o_l_y_m_o_r_p_h_i_c___a_l_l_o_c_a_t_o_r< _Tp1 > &__a, const │ │ │ │ │ + _p_o_l_y_m_o_r_p_h_i_c___a_l_l_o_c_a_t_o_r< _Tp2 > &__b) noexcept │ │ │ │ │   │ │ │ │ │ ********** DDeettaaiilleedd DDeessccrriippttiioonn ********** │ │ │ │ │ This is an internal header file, included by other library headers. Do not │ │ │ │ │ -attempt to use it directly. Instead, include . │ │ │ │ │ -Definition in file _s_t_l___u_n_i_n_i_t_i_a_l_i_z_e_d_._h. │ │ │ │ │ +attempt to use it directly. Instead, include . │ │ │ │ │ +Definition in file _m_e_m_o_r_y___r_e_s_o_u_r_c_e_._h. │ │ │ │ │ +********** FFuunnccttiioonn DDooccuummeennttaattiioonn ********** │ │ │ │ │ +********** _?◆_? ooppeerraattoorr====(()) [[11//22]] ********** │ │ │ │ │ +bool std::pmr::operator== ( const _m_e_m_o_r_y___r_e_s_o_u_r_c_e &  ____aa, │ │ │ │ │ + const _m_e_m_o_r_y___r_e_s_o_u_r_c_e &  ____bb  inlinenoexcept │ │ │ │ │ + ) │ │ │ │ │ +Definition at line _1_0_3 of file _m_e_m_o_r_y___r_e_s_o_u_r_c_e_._h. │ │ │ │ │ +********** _?◆_? ooppeerraattoorr====(()) [[22//22]] ********** │ │ │ │ │ +template │ │ │ │ │ +bool std::pmr::operator== ( const _p_o_l_y_m_o_r_p_h_i_c___a_l_l_o_c_a_t_o_r< ____aa, │ │ │ │ │ + _Tp1 > &  │ │ │ │ │ + const _p_o_l_y_m_o_r_p_h_i_c___a_l_l_o_c_a_t_o_r< ____bb  inlinenoexcept │ │ │ │ │ + _Tp2 > &  │ │ │ │ │ + ) │ │ │ │ │ +Definition at line _3_7_3 of file _m_e_m_o_r_y___r_e_s_o_u_r_c_e_._h. │ │ │ │ │ * _b_i_t_s │ │ │ │ │ - * _s_t_l___u_n_i_n_i_t_i_a_l_i_z_e_d_._h │ │ │ │ │ + * _m_e_m_o_r_y___r_e_s_o_u_r_c_e_._h │ │ │ │ │ * Generated by _[_d_o_x_y_g_e_n_]1.9.8 │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a00395_source.html │ │ │ │ @@ -1,15 +1,15 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ -libstdc++: stl_uninitialized.h Source File │ │ │ │ +libstdc++: memory_resource.h Source File │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ @@ -45,20 +45,20 @@ │ │ │ │ │ │ │ │
│ │ │ │
│ │ │ │ -
stl_uninitialized.h
│ │ │ │ +
memory_resource.h
│ │ │ │
│ │ │ │
│ │ │ │ -Go to the documentation of this file.
1// Raw memory manipulators -*- C++ -*-
│ │ │ │ +Go to the documentation of this file.
1// <memory_resource> -*- C++ -*-
│ │ │ │
2
│ │ │ │ -
3// Copyright (C) 2001-2025 Free Software Foundation, Inc.
│ │ │ │ +
3// Copyright (C) 2018-2025 Free Software Foundation, Inc.
│ │ │ │
4//
│ │ │ │
5// This file is part of the GNU ISO C++ Library. This library is free
│ │ │ │
6// software; you can redistribute it and/or modify it under the
│ │ │ │
7// terms of the GNU General Public License as published by the
│ │ │ │
8// Free Software Foundation; either version 3, or (at your option)
│ │ │ │
9// any later version.
│ │ │ │
10
│ │ │ │ @@ -71,1417 +71,587 @@ │ │ │ │
17// permissions described in the GCC Runtime Library Exception, version
│ │ │ │
18// 3.1, as published by the Free Software Foundation.
│ │ │ │
19
│ │ │ │
20// You should have received a copy of the GNU General Public License and
│ │ │ │
21// a copy of the GCC Runtime Library Exception along with this program;
│ │ │ │
22// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
│ │ │ │
23// <http://www.gnu.org/licenses/>.
│ │ │ │ -
24
│ │ │ │ -
25/*
│ │ │ │ -
26 *
│ │ │ │ -
27 * Copyright (c) 1994
│ │ │ │ -
28 * Hewlett-Packard Company
│ │ │ │ -
29 *
│ │ │ │ -
30 * Permission to use, copy, modify, distribute and sell this software
│ │ │ │ -
31 * and its documentation for any purpose is hereby granted without fee,
│ │ │ │ -
32 * provided that the above copyright notice appear in all copies and
│ │ │ │ -
33 * that both that copyright notice and this permission notice appear
│ │ │ │ -
34 * in supporting documentation. Hewlett-Packard Company makes no
│ │ │ │ -
35 * representations about the suitability of this software for any
│ │ │ │ -
36 * purpose. It is provided "as is" without express or implied warranty.
│ │ │ │ -
37 *
│ │ │ │ -
38 *
│ │ │ │ -
39 * Copyright (c) 1996,1997
│ │ │ │ -
40 * Silicon Graphics Computer Systems, Inc.
│ │ │ │ -
41 *
│ │ │ │ -
42 * Permission to use, copy, modify, distribute and sell this software
│ │ │ │ -
43 * and its documentation for any purpose is hereby granted without fee,
│ │ │ │ -
44 * provided that the above copyright notice appear in all copies and
│ │ │ │ -
45 * that both that copyright notice and this permission notice appear
│ │ │ │ -
46 * in supporting documentation. Silicon Graphics makes no
│ │ │ │ -
47 * representations about the suitability of this software for any
│ │ │ │ -
48 * purpose. It is provided "as is" without express or implied warranty.
│ │ │ │ -
49 */
│ │ │ │ -
50
│ │ │ │ -
51/** @file bits/stl_uninitialized.h
│ │ │ │ -
52 * This is an internal header file, included by other library headers.
│ │ │ │ -
53 * Do not attempt to use it directly. @headername{memory}
│ │ │ │ -
54 */
│ │ │ │ -
55
│ │ │ │ -
56#ifndef _STL_UNINITIALIZED_H
│ │ │ │ -
57#define _STL_UNINITIALIZED_H 1
│ │ │ │ -
58
│ │ │ │ -
59#if __cplusplus >= 201103L
│ │ │ │ -
60# include <type_traits>
│ │ │ │ -
61# include <bits/ptr_traits.h> // to_address
│ │ │ │ -
62# include <bits/stl_pair.h> // pair
│ │ │ │ -
63# include <bits/stl_algobase.h> // fill, fill_n
│ │ │ │ -
64#endif
│ │ │ │ -
65
│ │ │ │ -
66#include <bits/cpp_type_traits.h> // __is_pointer
│ │ │ │ -
67#include <bits/stl_iterator_base_funcs.h> // distance, advance
│ │ │ │ -
68#include <bits/stl_iterator.h> // __niter_base
│ │ │ │ -
69#include <ext/alloc_traits.h> // __alloc_traits
│ │ │ │ -
70
│ │ │ │ -
71namespace std _GLIBCXX_VISIBILITY(default)
│ │ │ │ -
72{
│ │ │ │ -
73_GLIBCXX_BEGIN_NAMESPACE_VERSION
│ │ │ │ -
74
│ │ │ │ -
75 /** @addtogroup memory
│ │ │ │ -
76 * @{
│ │ │ │ -
77 */
│ │ │ │ -
78
│ │ │ │ -
79 /// @cond undocumented
│ │ │ │ -
80
│ │ │ │ -
81 template<typename _ForwardIterator, typename _Alloc = void>
│ │ │ │ -
82 struct _UninitDestroyGuard
│ │ │ │ -
83 {
│ │ │ │ -
84 _GLIBCXX20_CONSTEXPR
│ │ │ │ -
85 explicit
│ │ │ │ -
86 _UninitDestroyGuard(_ForwardIterator& __first, _Alloc& __a)
│ │ │ │ -
87 : _M_first(__first), _M_cur(__builtin_addressof(__first)), _M_alloc(__a)
│ │ │ │ -
88 { }
│ │ │ │ +
24
│ │ │ │ +
25/** @file include/bits/memory_resource.h
│ │ │ │ +
26 * This is an internal header file, included by other library headers.
│ │ │ │ +
27 * Do not attempt to use it directly. @headername{memory_resource}
│ │ │ │ +
28 */
│ │ │ │ +
29
│ │ │ │ +
30#ifndef _GLIBCXX_MEMORY_RESOURCE_H
│ │ │ │ +
31#define _GLIBCXX_MEMORY_RESOURCE_H 1
│ │ │ │ +
32
│ │ │ │ +
33#ifdef _GLIBCXX_SYSHDR
│ │ │ │ +
34#pragma GCC system_header
│ │ │ │ +
35#endif
│ │ │ │ +
36
│ │ │ │ +
37#if __cplusplus >= 201703L
│ │ │ │ +
38
│ │ │ │ +
39#include <new> // operator new(size_t, void*)
│ │ │ │ +
40#include <cstddef> // size_t, max_align_t, byte
│ │ │ │ +
41#include <bits/functexcept.h> // __throw_bad_array_new_length
│ │ │ │ +
42#include <bits/uses_allocator.h> // allocator_arg_t, __use_alloc
│ │ │ │ +
43#include <bits/uses_allocator_args.h> // uninitialized_construct_using_alloc
│ │ │ │ +
44#include <ext/numeric_traits.h> // __int_traits
│ │ │ │ +
45#include <debug/assertions.h>
│ │ │ │ +
46
│ │ │ │ +
47#if ! __glibcxx_make_obj_using_allocator
│ │ │ │ +
48# include <bits/utility.h> // index_sequence
│ │ │ │ +
49# include <tuple> // tuple, forward_as_tuple
│ │ │ │ +
50#endif
│ │ │ │ +
51
│ │ │ │ +
52namespace std _GLIBCXX_VISIBILITY(default)
│ │ │ │ +
53{
│ │ │ │ +
54_GLIBCXX_BEGIN_NAMESPACE_VERSION
│ │ │ │ +
55namespace pmr
│ │ │ │ +
56{
│ │ │ │ +
57 /// Class `memory_resource`
│ │ │ │ +
58 /**
│ │ │ │ +
59 * @ingroup pmr
│ │ │ │ +
60 * @headerfile memory_resource
│ │ │ │ +
61 * @since C++17
│ │ │ │ +
62 */
│ │ │ │ +
│ │ │ │ + │ │ │ │ +
64 {
│ │ │ │ +
65 static constexpr size_t _S_max_align = alignof(max_align_t);
│ │ │ │ +
66
│ │ │ │ +
67 public:
│ │ │ │ +
68 memory_resource() = default;
│ │ │ │ +
69 memory_resource(const memory_resource&) = default;
│ │ │ │ +
70 virtual ~memory_resource(); // key function
│ │ │ │ +
71
│ │ │ │ +
72 memory_resource& operator=(const memory_resource&) = default;
│ │ │ │ +
73
│ │ │ │ +
74 [[nodiscard]]
│ │ │ │ +
75 void*
│ │ │ │ +
76 allocate(size_t __bytes, size_t __alignment = _S_max_align)
│ │ │ │ +
77 __attribute__((__returns_nonnull__,__alloc_size__(2),__alloc_align__(3)))
│ │ │ │ +
78 { return ::operator new(__bytes, do_allocate(__bytes, __alignment)); }
│ │ │ │ +
79
│ │ │ │ +
80 void
│ │ │ │ +
81 deallocate(void* __p, size_t __bytes, size_t __alignment = _S_max_align)
│ │ │ │ +
82 __attribute__((__nonnull__))
│ │ │ │ +
83 { return do_deallocate(__p, __bytes, __alignment); }
│ │ │ │ +
84
│ │ │ │ +
85 [[nodiscard]]
│ │ │ │ +
86 bool
│ │ │ │ +
87 is_equal(const memory_resource& __other) const noexcept
│ │ │ │ +
88 { return do_is_equal(__other); }
│ │ │ │
89
│ │ │ │ -
90 _GLIBCXX20_CONSTEXPR
│ │ │ │ -
91 ~_UninitDestroyGuard()
│ │ │ │ -
92 {
│ │ │ │ -
93 if (__builtin_expect(_M_cur != 0, 0))
│ │ │ │ -
94 std::_Destroy(_M_first, *_M_cur, _M_alloc);
│ │ │ │ -
95 }
│ │ │ │ +
90 private:
│ │ │ │ +
91 virtual void*
│ │ │ │ +
92 do_allocate(size_t __bytes, size_t __alignment) = 0;
│ │ │ │ +
93
│ │ │ │ +
94 virtual void
│ │ │ │ +
95 do_deallocate(void* __p, size_t __bytes, size_t __alignment) = 0;
│ │ │ │
96
│ │ │ │ -
97 _GLIBCXX20_CONSTEXPR
│ │ │ │ -
98 void release() { _M_cur = 0; }
│ │ │ │ -
99
│ │ │ │ -
100 private:
│ │ │ │ -
101 _ForwardIterator const _M_first;
│ │ │ │ -
102 _ForwardIterator* _M_cur;
│ │ │ │ -
103 _Alloc& _M_alloc;
│ │ │ │ -
104
│ │ │ │ -
105 _UninitDestroyGuard(const _UninitDestroyGuard&);
│ │ │ │ -
106 };
│ │ │ │ -
107
│ │ │ │ -
108 template<typename _ForwardIterator>
│ │ │ │ -
109 struct _UninitDestroyGuard<_ForwardIterator, void>
│ │ │ │ -
110 {
│ │ │ │ -
111 _GLIBCXX20_CONSTEXPR
│ │ │ │ -
112 explicit
│ │ │ │ -
113 _UninitDestroyGuard(_ForwardIterator& __first)
│ │ │ │ -
114 : _M_first(__first), _M_cur(__builtin_addressof(__first))
│ │ │ │ -
115 { }
│ │ │ │ -
116
│ │ │ │ -
117 _GLIBCXX20_CONSTEXPR
│ │ │ │ -
118 ~_UninitDestroyGuard()
│ │ │ │ -
119 {
│ │ │ │ -
120 if (__builtin_expect(_M_cur != 0, 0))
│ │ │ │ -
121 std::_Destroy(_M_first, *_M_cur);
│ │ │ │ -
122 }
│ │ │ │ -
123
│ │ │ │ -
124 _GLIBCXX20_CONSTEXPR
│ │ │ │ -
125 void release() { _M_cur = 0; }
│ │ │ │ -
126
│ │ │ │ -
127 _ForwardIterator const _M_first;
│ │ │ │ -
128 _ForwardIterator* _M_cur;
│ │ │ │ -
129
│ │ │ │ -
130 private:
│ │ │ │ -
131 _UninitDestroyGuard(const _UninitDestroyGuard&);
│ │ │ │ -
132 };
│ │ │ │ -
133
│ │ │ │ -
134 // This is the default implementation of std::uninitialized_copy.
│ │ │ │ -
135 // This can be used with C++20 iterators and non-common ranges.
│ │ │ │ -
136 template<typename _InputIterator, typename _Sentinel,
│ │ │ │ -
137 typename _ForwardIterator>
│ │ │ │ -
138 _GLIBCXX20_CONSTEXPR
│ │ │ │ -
139 _ForwardIterator
│ │ │ │ -
140 __do_uninit_copy(_InputIterator __first, _Sentinel __last,
│ │ │ │ -
141 _ForwardIterator __result)
│ │ │ │ -
142 {
│ │ │ │ -
143 _UninitDestroyGuard<_ForwardIterator> __guard(__result);
│ │ │ │ -
144 for (; __first != __last; ++__first, (void)++__result)
│ │ │ │ -
145 std::_Construct(std::__addressof(*__result), *__first);
│ │ │ │ -
146 __guard.release();
│ │ │ │ -
147 return __result;
│ │ │ │ -
148 }
│ │ │ │ -
149
│ │ │ │ -
150#if __cplusplus < 201103L
│ │ │ │ -
151
│ │ │ │ -
152 // True if we can unwrap _Iter to get a pointer by using std::__niter_base.
│ │ │ │ -
153 template<typename _Iter,
│ │ │ │ -
154 typename _Base = __decltype(std::__niter_base(*(_Iter*)0))>
│ │ │ │ -
155 struct __unwrappable_niter
│ │ │ │ -
156 { enum { __value = false }; };
│ │ │ │ -
157
│ │ │ │ -
158 template<typename _Iter, typename _Tp>
│ │ │ │ -
159 struct __unwrappable_niter<_Iter, _Tp*>
│ │ │ │ -
160 { enum { __value = true }; };
│ │ │ │ -
161
│ │ │ │ -
162 // Use template specialization for C++98 when 'if constexpr' can't be used.
│ │ │ │ -
163 template<bool _CanMemcpy>
│ │ │ │ -
164 struct __uninitialized_copy
│ │ │ │ -
165 {
│ │ │ │ -
166 template<typename _InputIterator, typename _ForwardIterator>
│ │ │ │ -
167 static _ForwardIterator
│ │ │ │ -
168 __uninit_copy(_InputIterator __first, _InputIterator __last,
│ │ │ │ -
169 _ForwardIterator __result)
│ │ │ │ -
170 { return std::__do_uninit_copy(__first, __last, __result); }
│ │ │ │ -
171 };
│ │ │ │ +
97 virtual bool
│ │ │ │ +
98 do_is_equal(const memory_resource& __other) const noexcept = 0;
│ │ │ │ +
99 };
│ │ │ │ +
│ │ │ │ +
100
│ │ │ │ +
101 [[nodiscard]]
│ │ │ │ +
102 inline bool
│ │ │ │ +
103 operator==(const memory_resource& __a, const memory_resource& __b) noexcept
│ │ │ │ +
104 { return &__a == &__b || __a.is_equal(__b); }
│ │ │ │ +
105
│ │ │ │ +
106#if __cpp_impl_three_way_comparison < 201907L
│ │ │ │ +
107 [[nodiscard]]
│ │ │ │ +
108 inline bool
│ │ │ │ +
109 operator!=(const memory_resource& __a, const memory_resource& __b) noexcept
│ │ │ │ +
110 { return !(__a == __b); }
│ │ │ │ +
111#endif
│ │ │ │ +
112
│ │ │ │ +
113 // C++17 23.12.3 Class template polymorphic_allocator
│ │ │ │ +
114
│ │ │ │ +
115 /// Class template polymorphic_allocator
│ │ │ │ +
116 /**
│ │ │ │ +
117 * @ingroup pmr
│ │ │ │ +
118 * @headerfile memory_resource
│ │ │ │ +
119 * @since C++17
│ │ │ │ +
120 */
│ │ │ │ +
121 template<typename _Tp>
│ │ │ │ +
│ │ │ │ + │ │ │ │ +
123 {
│ │ │ │ +
124 // _GLIBCXX_RESOLVE_LIB_DEFECTS
│ │ │ │ +
125 // 2975. Missing case for pair construction in polymorphic allocators
│ │ │ │ +
126 template<typename _Up>
│ │ │ │ +
127 struct __not_pair { using type = void; };
│ │ │ │ +
128
│ │ │ │ +
129 template<typename _Up1, typename _Up2>
│ │ │ │ +
130 struct __not_pair<pair<_Up1, _Up2>> { };
│ │ │ │ +
131
│ │ │ │ +
132 public:
│ │ │ │ +
133 using value_type = _Tp;
│ │ │ │ +
134
│ │ │ │ +
135 polymorphic_allocator() noexcept
│ │ │ │ +
136 {
│ │ │ │ +
137 extern memory_resource* get_default_resource() noexcept
│ │ │ │ +
138 __attribute__((__returns_nonnull__));
│ │ │ │ +
139 _M_resource = get_default_resource();
│ │ │ │ +
140 }
│ │ │ │ +
141
│ │ │ │ + │ │ │ │ +
143 __attribute__((__nonnull__))
│ │ │ │ +
144 : _M_resource(__r)
│ │ │ │ +
145 { _GLIBCXX_DEBUG_ASSERT(__r); }
│ │ │ │ +
146
│ │ │ │ +
147 polymorphic_allocator(const polymorphic_allocator& __other) = default;
│ │ │ │ +
148
│ │ │ │ +
149 template<typename _Up>
│ │ │ │ + │ │ │ │ +
151 : _M_resource(__x.resource())
│ │ │ │ +
152 { }
│ │ │ │ +
153
│ │ │ │ + │ │ │ │ +
155 operator=(const polymorphic_allocator&) = delete;
│ │ │ │ +
156
│ │ │ │ +
157 [[nodiscard]]
│ │ │ │ +
158 _Tp*
│ │ │ │ +
159 allocate(size_t __n)
│ │ │ │ +
160 __attribute__((__returns_nonnull__))
│ │ │ │ +
161 {
│ │ │ │ +
162 if ((__gnu_cxx::__int_traits<size_t>::__max / sizeof(_Tp)) < __n)
│ │ │ │ +
163 std::__throw_bad_array_new_length();
│ │ │ │ +
164 return static_cast<_Tp*>(_M_resource->allocate(__n * sizeof(_Tp),
│ │ │ │ +
165 alignof(_Tp)));
│ │ │ │ +
166 }
│ │ │ │ +
167
│ │ │ │ +
168 void
│ │ │ │ +
169 deallocate(_Tp* __p, size_t __n) noexcept
│ │ │ │ +
170 __attribute__((__nonnull__))
│ │ │ │ +
171 { _M_resource->deallocate(__p, __n * sizeof(_Tp), alignof(_Tp)); }
│ │ │ │
172
│ │ │ │ -
173 template<>
│ │ │ │ -
174 struct __uninitialized_copy<true>
│ │ │ │ -
175 {
│ │ │ │ -
176 // Overload for generic iterators.
│ │ │ │ -
177 template<typename _InputIterator, typename _ForwardIterator>
│ │ │ │ -
178 static _ForwardIterator
│ │ │ │ -
179 __uninit_copy(_InputIterator __first, _InputIterator __last,
│ │ │ │ -
180 _ForwardIterator __result)
│ │ │ │ -
181 {
│ │ │ │ -
182 if (__unwrappable_niter<_InputIterator>::__value
│ │ │ │ -
183 && __unwrappable_niter<_ForwardIterator>::__value)
│ │ │ │ -
184 {
│ │ │ │ -
185 __uninit_copy(std::__niter_base(__first),
│ │ │ │ -
186 std::__niter_base(__last),
│ │ │ │ -
187 std::__niter_base(__result));
│ │ │ │ -
188 std::advance(__result, std::distance(__first, __last));
│ │ │ │ -
189 return __result;
│ │ │ │ -
190 }
│ │ │ │ -
191 else
│ │ │ │ -
192 return std::__do_uninit_copy(__first, __last, __result);
│ │ │ │ -
193 }
│ │ │ │ -
194
│ │ │ │ -
195 // Overload for pointers.
│ │ │ │ -
196 template<typename _Tp, typename _Up>
│ │ │ │ -
197 static _Up*
│ │ │ │ -
198 __uninit_copy(_Tp* __first, _Tp* __last, _Up* __result)
│ │ │ │ -
199 {
│ │ │ │ -
200 // Ensure that we don't successfully memcpy in cases that should be
│ │ │ │ -
201 // ill-formed because is_constructible<_Up, _Tp&> is false.
│ │ │ │ -
202 typedef __typeof__(static_cast<_Up>(*__first)) __check
│ │ │ │ -
203 __attribute__((__unused__));
│ │ │ │ -
204
│ │ │ │ -
205 const ptrdiff_t __n = __last - __first;
│ │ │ │ -
206 if (__builtin_expect(__n > 0, true))
│ │ │ │ -
207 {
│ │ │ │ -
208 __builtin_memcpy(__result, __first, __n * sizeof(_Tp));
│ │ │ │ -
209 __result += __n;
│ │ │ │ -
210 }
│ │ │ │ -
211 return __result;
│ │ │ │ -
212 }
│ │ │ │ -
213 };
│ │ │ │ -
214#endif
│ │ │ │ -
215 /// @endcond
│ │ │ │ -
216
│ │ │ │ -
217#pragma GCC diagnostic push
│ │ │ │ -
218#pragma GCC diagnostic ignored "-Wc++17-extensions"
│ │ │ │ -
219 /**
│ │ │ │ -
220 * @brief Copies the range [first,last) into result.
│ │ │ │ -
221 * @param __first An input iterator.
│ │ │ │ -
222 * @param __last An input iterator.
│ │ │ │ -
223 * @param __result A forward iterator.
│ │ │ │ -
224 * @return __result + (__last - __first)
│ │ │ │ -
225 *
│ │ │ │ -
226 * Like std::copy, but does not require an initialized output range.
│ │ │ │ -
227 */
│ │ │ │ -
228 template<typename _InputIterator, typename _ForwardIterator>
│ │ │ │ -
229 _GLIBCXX26_CONSTEXPR
│ │ │ │ -
230 inline _ForwardIterator
│ │ │ │ -
│ │ │ │ -
231 uninitialized_copy(_InputIterator __first, _InputIterator __last,
│ │ │ │ -
232 _ForwardIterator __result)
│ │ │ │ -
233 {
│ │ │ │ -
234 // We can use memcpy to copy the ranges under these conditions:
│ │ │ │ -
235 //
│ │ │ │ -
236 // _ForwardIterator and _InputIterator are both contiguous iterators,
│ │ │ │ -
237 // so that we can turn them into pointers to pass to memcpy.
│ │ │ │ -
238 // Before C++20 we can't detect all contiguous iterators, so we only
│ │ │ │ -
239 // handle built-in pointers and __normal_iterator<T*, C> types.
│ │ │ │ -
240 //
│ │ │ │ -
241 // The value types of both iterators are trivially-copyable types,
│ │ │ │ -
242 // so that memcpy is not undefined and can begin the lifetime of
│ │ │ │ -
243 // new objects in the output range.
│ │ │ │ -
244 //
│ │ │ │ -
245 // Finally, memcpy from the source type, S, to the destination type, D,
│ │ │ │ -
246 // must give the same value as initialization of D from S would give.
│ │ │ │ -
247 // We require is_trivially_constructible<D, S> to be true, but that is
│ │ │ │ -
248 // not sufficient. Some cases of trivial initialization are not just a
│ │ │ │ -
249 // bitwise copy, even when sizeof(D) == sizeof(S),
│ │ │ │ -
250 // e.g. bit_cast<unsigned>(1.0f) != 1u because the corresponding bits
│ │ │ │ -
251 // of the value representations do not have the same meaning.
│ │ │ │ -
252 // We cannot tell when this condition is true in general,
│ │ │ │ -
253 // so we rely on the __memcpyable trait.
│ │ │ │ -
254
│ │ │ │ -
255#if __cplusplus >= 201103L
│ │ │ │ -
256 using _Dest = decltype(std::__niter_base(__result));
│ │ │ │ -
257 using _Src = decltype(std::__niter_base(__first));
│ │ │ │ - │ │ │ │ -
259
│ │ │ │ -
260#if __glibcxx_raw_memory_algorithms >= 202411L // >= C++26
│ │ │ │ -
261 if consteval {
│ │ │ │ -
262 return std::__do_uninit_copy(__first, __last, __result);
│ │ │ │ -
263 }
│ │ │ │ -
264#endif
│ │ │ │ -
265 if constexpr (!__is_trivially_constructible(_ValT, decltype(*__first)))
│ │ │ │ -
266 return std::__do_uninit_copy(__first, __last, __result);
│ │ │ │ -
267 else if constexpr (__memcpyable<_Dest, _Src>::__value)
│ │ │ │ -
268 {
│ │ │ │ -
269 ptrdiff_t __n = __last - __first;
│ │ │ │ -
270 if (__n > 0) [[__likely__]]
│ │ │ │ -
271 {
│ │ │ │ -
272 using _ValT = typename remove_pointer<_Src>::type;
│ │ │ │ -
273 __builtin_memcpy(std::__niter_base(__result),
│ │ │ │ -
274 std::__niter_base(__first),
│ │ │ │ -
275 __n * sizeof(_ValT));
│ │ │ │ -
276 __result += __n;
│ │ │ │ -
277 }
│ │ │ │ -
278 return __result;
│ │ │ │ -
279 }
│ │ │ │ -
280#if __cpp_lib_concepts
│ │ │ │ -
281 else if constexpr (contiguous_iterator<_ForwardIterator>
│ │ │ │ -
282 && contiguous_iterator<_InputIterator>)
│ │ │ │ +
173#ifdef __glibcxx_polymorphic_allocator // >= C++20
│ │ │ │ +
174 [[nodiscard]] void*
│ │ │ │ +
175 allocate_bytes(size_t __nbytes,
│ │ │ │ +
176 size_t __alignment = alignof(max_align_t))
│ │ │ │ +
177 { return _M_resource->allocate(__nbytes, __alignment); }
│ │ │ │ +
178
│ │ │ │ +
179 void
│ │ │ │ +
180 deallocate_bytes(void* __p, size_t __nbytes,
│ │ │ │ +
181 size_t __alignment = alignof(max_align_t))
│ │ │ │ +
182 { _M_resource->deallocate(__p, __nbytes, __alignment); }
│ │ │ │ +
183
│ │ │ │ +
184 template<typename _Up>
│ │ │ │ +
185 [[nodiscard]] _Up*
│ │ │ │ +
186 allocate_object(size_t __n = 1)
│ │ │ │ +
187 {
│ │ │ │ +
188 if ((__gnu_cxx::__int_traits<size_t>::__max / sizeof(_Up)) < __n)
│ │ │ │ +
189 std::__throw_bad_array_new_length();
│ │ │ │ +
190 return static_cast<_Up*>(allocate_bytes(__n * sizeof(_Up),
│ │ │ │ +
191 alignof(_Up)));
│ │ │ │ +
192 }
│ │ │ │ +
193
│ │ │ │ +
194 template<typename _Up>
│ │ │ │ +
195 void
│ │ │ │ +
196 deallocate_object(_Up* __p, size_t __n = 1)
│ │ │ │ +
197 { deallocate_bytes(__p, __n * sizeof(_Up), alignof(_Up)); }
│ │ │ │ +
198
│ │ │ │ +
199 template<typename _Up, typename... _CtorArgs>
│ │ │ │ +
200 [[nodiscard]] _Up*
│ │ │ │ +
201 new_object(_CtorArgs&&... __ctor_args)
│ │ │ │ +
202 {
│ │ │ │ +
203 _Up* __p = allocate_object<_Up>();
│ │ │ │ +
204 __try
│ │ │ │ +
205 {
│ │ │ │ +
206 construct(__p, std::forward<_CtorArgs>(__ctor_args)...);
│ │ │ │ +
207 }
│ │ │ │ +
208 __catch (...)
│ │ │ │ +
209 {
│ │ │ │ +
210 deallocate_object(__p);
│ │ │ │ +
211 __throw_exception_again;
│ │ │ │ +
212 }
│ │ │ │ +
213 return __p;
│ │ │ │ +
214 }
│ │ │ │ +
215
│ │ │ │ +
216 template<typename _Up>
│ │ │ │ +
217 void
│ │ │ │ +
218 delete_object(_Up* __p)
│ │ │ │ +
219 {
│ │ │ │ +
220 __p->~_Up();
│ │ │ │ +
221 deallocate_object(__p);
│ │ │ │ +
222 }
│ │ │ │ +
223#endif // C++20
│ │ │ │ +
224
│ │ │ │ +
225#if ! __glibcxx_make_obj_using_allocator // >= C++20
│ │ │ │ +
226 template<typename _Tp1, typename... _Args>
│ │ │ │ +
227 __attribute__((__nonnull__))
│ │ │ │ +
228 typename __not_pair<_Tp1>::type
│ │ │ │ +
229 construct(_Tp1* __p, _Args&&... __args)
│ │ │ │ +
230 {
│ │ │ │ +
231 // _GLIBCXX_RESOLVE_LIB_DEFECTS
│ │ │ │ +
232 // 2969. polymorphic_allocator::construct() shouldn't pass resource()
│ │ │ │ +
233 using __use_tag
│ │ │ │ +
234 = std::__uses_alloc_t<_Tp1, polymorphic_allocator, _Args...>;
│ │ │ │ +
235 if constexpr (is_base_of_v<__uses_alloc0, __use_tag>)
│ │ │ │ +
236 ::new(__p) _Tp1(std::forward<_Args>(__args)...);
│ │ │ │ +
237 else if constexpr (is_base_of_v<__uses_alloc1_, __use_tag>)
│ │ │ │ +
238 ::new(__p) _Tp1(allocator_arg, *this,
│ │ │ │ +
239 std::forward<_Args>(__args)...);
│ │ │ │ +
240 else
│ │ │ │ +
241 ::new(__p) _Tp1(std::forward<_Args>(__args)..., *this);
│ │ │ │ +
242 }
│ │ │ │ +
243
│ │ │ │ +
244 template<typename _Tp1, typename _Tp2,
│ │ │ │ +
245 typename... _Args1, typename... _Args2>
│ │ │ │ +
246 __attribute__((__nonnull__))
│ │ │ │ +
247 void
│ │ │ │ + │ │ │ │ + │ │ │ │ +
250 {
│ │ │ │ +
251 auto __x_tag =
│ │ │ │ +
252 __use_alloc<_Tp1, polymorphic_allocator, _Args1...>(*this);
│ │ │ │ +
253 auto __y_tag =
│ │ │ │ +
254 __use_alloc<_Tp2, polymorphic_allocator, _Args2...>(*this);
│ │ │ │ +
255 index_sequence_for<_Args1...> __x_i;
│ │ │ │ +
256 index_sequence_for<_Args2...> __y_i;
│ │ │ │ +
257
│ │ │ │ + │ │ │ │ +
259 _S_construct_p(__x_tag, __x_i, __x),
│ │ │ │ +
260 _S_construct_p(__y_tag, __y_i, __y));
│ │ │ │ +
261 }
│ │ │ │ +
262
│ │ │ │ +
263 template<typename _Tp1, typename _Tp2>
│ │ │ │ +
264 __attribute__((__nonnull__))
│ │ │ │ +
265 void
│ │ │ │ +
266 construct(pair<_Tp1, _Tp2>* __p)
│ │ │ │ +
267 { this->construct(__p, piecewise_construct, tuple<>(), tuple<>()); }
│ │ │ │ +
268
│ │ │ │ +
269 template<typename _Tp1, typename _Tp2, typename _Up, typename _Vp>
│ │ │ │ +
270 __attribute__((__nonnull__))
│ │ │ │ +
271 void
│ │ │ │ +
272 construct(pair<_Tp1, _Tp2>* __p, _Up&& __x, _Vp&& __y)
│ │ │ │ +
273 {
│ │ │ │ +
274 this->construct(__p, piecewise_construct,
│ │ │ │ +
275 std::forward_as_tuple(std::forward<_Up>(__x)),
│ │ │ │ +
276 std::forward_as_tuple(std::forward<_Vp>(__y)));
│ │ │ │ +
277 }
│ │ │ │ +
278
│ │ │ │ +
279 template <typename _Tp1, typename _Tp2, typename _Up, typename _Vp>
│ │ │ │ +
280 __attribute__((__nonnull__))
│ │ │ │ +
281 void
│ │ │ │ +
282 construct(pair<_Tp1, _Tp2>* __p, const std::pair<_Up, _Vp>& __pr)
│ │ │ │
283 {
│ │ │ │ -
284 using _DestPtr = decltype(std::to_address(__result));
│ │ │ │ -
285 using _SrcPtr = decltype(std::to_address(__first));
│ │ │ │ -
286 if constexpr (__memcpyable<_DestPtr, _SrcPtr>::__value)
│ │ │ │ -
287 {
│ │ │ │ -
288 if (auto __n = __last - __first; __n > 0) [[likely]]
│ │ │ │ -
289 {
│ │ │ │ -
290 void* __dest = std::to_address(__result);
│ │ │ │ -
291 const void* __src = std::to_address(__first);
│ │ │ │ -
292 size_t __nbytes = __n * sizeof(remove_pointer_t<_DestPtr>);
│ │ │ │ -
293 __builtin_memcpy(__dest, __src, __nbytes);
│ │ │ │ -
294 __result += __n;
│ │ │ │ -
295 }
│ │ │ │ -
296 return __result;
│ │ │ │ -
297 }
│ │ │ │ -
298 else
│ │ │ │ -
299 return std::__do_uninit_copy(__first, __last, __result);
│ │ │ │ -
300 }
│ │ │ │ -
301#endif
│ │ │ │ -
302 else
│ │ │ │ -
303 return std::__do_uninit_copy(__first, __last, __result);
│ │ │ │ -
304#else // C++98
│ │ │ │ - │ │ │ │ -
306 _ValueType1;
│ │ │ │ - │ │ │ │ -
308 _ValueType2;
│ │ │ │ -
309
│ │ │ │ -
310 const bool __can_memcpy
│ │ │ │ -
311 = __memcpyable<_ValueType1*, _ValueType2*>::__value
│ │ │ │ -
312 && __is_trivially_constructible(_ValueType2, __decltype(*__first));
│ │ │ │ -
313
│ │ │ │ -
314 return __uninitialized_copy<__can_memcpy>::
│ │ │ │ -
315 __uninit_copy(__first, __last, __result);
│ │ │ │ -
316#endif
│ │ │ │ -
317 }
│ │ │ │ -
│ │ │ │ -
318#pragma GCC diagnostic pop
│ │ │ │ -
319
│ │ │ │ -
320 /// @cond undocumented
│ │ │ │ -
321
│ │ │ │ -
322 // This is the default implementation of std::uninitialized_fill.
│ │ │ │ -
323 template<typename _ForwardIterator, typename _Tp>
│ │ │ │ -
324 _GLIBCXX20_CONSTEXPR void
│ │ │ │ -
325 __do_uninit_fill(_ForwardIterator __first, _ForwardIterator __last,
│ │ │ │ -
326 const _Tp& __x)
│ │ │ │ -
327 {
│ │ │ │ -
328 _UninitDestroyGuard<_ForwardIterator> __guard(__first);
│ │ │ │ -
329 for (; __first != __last; ++__first)
│ │ │ │ -
330 std::_Construct(std::__addressof(*__first), __x);
│ │ │ │ -
331 __guard.release();
│ │ │ │ -
332 }
│ │ │ │ -
333
│ │ │ │ -
334#if __cplusplus < 201103L
│ │ │ │ -
335 // Use template specialization for C++98 when 'if constexpr' can't be used.
│ │ │ │ -
336 template<bool _CanMemset>
│ │ │ │ -
337 struct __uninitialized_fill
│ │ │ │ -
338 {
│ │ │ │ -
339 template<typename _ForwardIterator, typename _Tp>
│ │ │ │ -
340 static void
│ │ │ │ -
341 __uninit_fill(_ForwardIterator __first, _ForwardIterator __last,
│ │ │ │ -
342 const _Tp& __x)
│ │ │ │ -
343 { std::__do_uninit_fill(__first, __last, __x); }
│ │ │ │ -
344 };
│ │ │ │ -
345
│ │ │ │ -
346 template<>
│ │ │ │ -
347 struct __uninitialized_fill<true>
│ │ │ │ -
348 {
│ │ │ │ -
349 // Overload for generic iterators.
│ │ │ │ -
350 template<typename _ForwardIterator, typename _Tp>
│ │ │ │ -
351 static void
│ │ │ │ -
352 __uninit_fill(_ForwardIterator __first, _ForwardIterator __last,
│ │ │ │ -
353 const _Tp& __x)
│ │ │ │ +
284 this->construct(__p, piecewise_construct,
│ │ │ │ + │ │ │ │ + │ │ │ │ +
287 }
│ │ │ │ +
288
│ │ │ │ +
289 template<typename _Tp1, typename _Tp2, typename _Up, typename _Vp>
│ │ │ │ +
290 __attribute__((__nonnull__))
│ │ │ │ +
291 void
│ │ │ │ +
292 construct(pair<_Tp1, _Tp2>* __p, pair<_Up, _Vp>&& __pr)
│ │ │ │ +
293 {
│ │ │ │ +
294 this->construct(__p, piecewise_construct,
│ │ │ │ +
295 std::forward_as_tuple(std::forward<_Up>(__pr.first)),
│ │ │ │ +
296 std::forward_as_tuple(std::forward<_Vp>(__pr.second)));
│ │ │ │ +
297 }
│ │ │ │ +
298#else // make_obj_using_allocator
│ │ │ │ +
299 template<typename _Tp1, typename... _Args>
│ │ │ │ +
300 __attribute__((__nonnull__))
│ │ │ │ +
301 void
│ │ │ │ +
302 construct(_Tp1* __p, _Args&&... __args)
│ │ │ │ +
303 {
│ │ │ │ +
304 std::uninitialized_construct_using_allocator(__p, *this,
│ │ │ │ +
305 std::forward<_Args>(__args)...);
│ │ │ │ +
306 }
│ │ │ │ +
307#endif
│ │ │ │ +
308
│ │ │ │ +
309 template<typename _Up>
│ │ │ │ +
310 __attribute__((__nonnull__))
│ │ │ │ +
311 void
│ │ │ │ +
312 destroy(_Up* __p)
│ │ │ │ +
313 { __p->~_Up(); }
│ │ │ │ +
314
│ │ │ │ + │ │ │ │ +
316 select_on_container_copy_construction() const noexcept
│ │ │ │ +
317 { return polymorphic_allocator(); }
│ │ │ │ +
318
│ │ │ │ + │ │ │ │ +
320 resource() const noexcept
│ │ │ │ +
321 __attribute__((__returns_nonnull__))
│ │ │ │ +
322 { return _M_resource; }
│ │ │ │ +
323
│ │ │ │ +
324 // _GLIBCXX_RESOLVE_LIB_DEFECTS
│ │ │ │ +
325 // 3683. operator== for polymorphic_allocator cannot deduce template arg
│ │ │ │ +
326 [[nodiscard]]
│ │ │ │ +
327 friend bool
│ │ │ │ +
328 operator==(const polymorphic_allocator& __a,
│ │ │ │ +
329 const polymorphic_allocator& __b) noexcept
│ │ │ │ +
330 { return *__a.resource() == *__b.resource(); }
│ │ │ │ +
331
│ │ │ │ +
332#if __cpp_impl_three_way_comparison < 201907L
│ │ │ │ +
333 [[nodiscard]]
│ │ │ │ +
334 friend bool
│ │ │ │ +
335 operator!=(const polymorphic_allocator& __a,
│ │ │ │ +
336 const polymorphic_allocator& __b) noexcept
│ │ │ │ +
337 { return !(__a == __b); }
│ │ │ │ +
338#endif
│ │ │ │ +
339
│ │ │ │ +
340 private:
│ │ │ │ +
341#if ! __glibcxx_make_obj_using_allocator // >= C++20
│ │ │ │ +
342 using __uses_alloc1_ = __uses_alloc1<polymorphic_allocator>;
│ │ │ │ +
343 using __uses_alloc2_ = __uses_alloc2<polymorphic_allocator>;
│ │ │ │ +
344
│ │ │ │ +
345 template<typename _Ind, typename... _Args>
│ │ │ │ +
346 static tuple<_Args&&...>
│ │ │ │ +
347 _S_construct_p(__uses_alloc0, _Ind, tuple<_Args...>& __t)
│ │ │ │ +
348 { return std::move(__t); }
│ │ │ │ +
349
│ │ │ │ +
350 template<size_t... _Ind, typename... _Args>
│ │ │ │ +
351 static tuple<allocator_arg_t, polymorphic_allocator, _Args&&...>
│ │ │ │ +
352 _S_construct_p(__uses_alloc1_ __ua, index_sequence<_Ind...>,
│ │ │ │ +
353 tuple<_Args...>& __t)
│ │ │ │
354 {
│ │ │ │ -
355 if (__unwrappable_niter<_ForwardIterator>::__value)
│ │ │ │ -
356 __uninit_fill(std::__niter_base(__first),
│ │ │ │ -
357 std::__niter_base(__last),
│ │ │ │ -
358 __x);
│ │ │ │ -
359 else
│ │ │ │ -
360 std::__do_uninit_copy(__first, __last, __x);
│ │ │ │ -
361 }
│ │ │ │ -
362
│ │ │ │ -
363 // Overload for pointers.
│ │ │ │ -
364 template<typename _Up, typename _Tp>
│ │ │ │ -
365 static void
│ │ │ │ -
366 __uninit_fill(_Up* __first, _Up* __last, const _Tp& __x)
│ │ │ │ -
367 {
│ │ │ │ -
368 // Ensure that we don't successfully memset in cases that should be
│ │ │ │ -
369 // ill-formed because is_constructible<_Up, const _Tp&> is false.
│ │ │ │ -
370 typedef __typeof__(static_cast<_Up>(__x)) __check
│ │ │ │ -
371 __attribute__((__unused__));
│ │ │ │ -
372
│ │ │ │ -
373 if (__first != __last)
│ │ │ │ -
374 __builtin_memset(__first, (unsigned char)__x, __last - __first);
│ │ │ │ -
375 }
│ │ │ │ -
376 };
│ │ │ │ -
377#endif
│ │ │ │ -
378 /// @endcond
│ │ │ │ -
379
│ │ │ │ -
380 /**
│ │ │ │ -
381 * @brief Copies the value x into the range [first,last).
│ │ │ │ -
382 * @param __first A forward iterator.
│ │ │ │ -
383 * @param __last A forward iterator.
│ │ │ │ -
384 * @param __x The source value.
│ │ │ │ -
385 * @return Nothing.
│ │ │ │ -
386 *
│ │ │ │ -
387 * Like std::fill, but does not require an initialized output range.
│ │ │ │ -
388 */
│ │ │ │ -
389 template<typename _ForwardIterator, typename _Tp>
│ │ │ │ -
390 _GLIBCXX26_CONSTEXPR
│ │ │ │ -
391 inline void
│ │ │ │ -
│ │ │ │ -
392 uninitialized_fill(_ForwardIterator __first, _ForwardIterator __last,
│ │ │ │ -
393 const _Tp& __x)
│ │ │ │ -
394 {
│ │ │ │ -
395 // We would like to use memset to optimize this loop when possible.
│ │ │ │ -
396 // As for std::uninitialized_copy, the optimization requires
│ │ │ │ -
397 // contiguous iterators and trivially copyable value types,
│ │ │ │ -
398 // with the additional requirement that sizeof(_Tp) == 1 because
│ │ │ │ -
399 // memset only writes single bytes.
│ │ │ │ -
400
│ │ │ │ -
401 // FIXME: We could additionally enable this for 1-byte enums.
│ │ │ │ -
402 // Maybe any 1-byte Val if is_trivially_constructible<Val, const T&>?
│ │ │ │ -
403
│ │ │ │ - │ │ │ │ -
405 _ValueType;
│ │ │ │ -
406
│ │ │ │ -
407#if __cplusplus >= 201103L
│ │ │ │ -
408#pragma GCC diagnostic push
│ │ │ │ -
409#pragma GCC diagnostic ignored "-Wc++17-extensions"
│ │ │ │ -
410#if __glibcxx_raw_memory_algorithms >= 202411L // >= C++26
│ │ │ │ -
411 if consteval {
│ │ │ │ -
412 return std::__do_uninit_fill(__first, __last, __x);
│ │ │ │ -
413 }
│ │ │ │ -
414#endif
│ │ │ │ -
415 if constexpr (__is_byte<_ValueType>::__value)
│ │ │ │ - │ │ │ │ - │ │ │ │ -
418 {
│ │ │ │ -
419 using _BasePtr = decltype(std::__niter_base(__first));
│ │ │ │ -
420 if constexpr (is_pointer<_BasePtr>::value)
│ │ │ │ -
421 {
│ │ │ │ -
422 void* __dest = std::__niter_base(__first);
│ │ │ │ -
423 ptrdiff_t __n = __last - __first;
│ │ │ │ -
424 if (__n > 0) [[__likely__]]
│ │ │ │ -
425 __builtin_memset(__dest, (unsigned char)__x, __n);
│ │ │ │ -
426 return;
│ │ │ │ -
427 }
│ │ │ │ -
428#if __cpp_lib_concepts
│ │ │ │ -
429 else if constexpr (contiguous_iterator<_ForwardIterator>)
│ │ │ │ -
430 {
│ │ │ │ -
431 auto __dest = std::to_address(__first);
│ │ │ │ -
432 auto __n = __last - __first;
│ │ │ │ -
433 if (__n > 0) [[__likely__]]
│ │ │ │ -
434 __builtin_memset(__dest, (unsigned char)__x, __n);
│ │ │ │ -
435 return;
│ │ │ │ -
436 }
│ │ │ │ -
437#endif
│ │ │ │ -
438 }
│ │ │ │ -
439 std::__do_uninit_fill(__first, __last, __x);
│ │ │ │ -
440#pragma GCC diagnostic pop
│ │ │ │ -
441#else // C++98
│ │ │ │ -
442 const bool __can_memset = __is_byte<_ValueType>::__value
│ │ │ │ -
443 && __is_integer<_Tp>::__value;
│ │ │ │ -
444
│ │ │ │ -
445 __uninitialized_fill<__can_memset>::__uninit_fill(__first, __last, __x);
│ │ │ │ -
446#endif
│ │ │ │ -
447 }
│ │ │ │ -
│ │ │ │ -
448
│ │ │ │ -
449 /// @cond undocumented
│ │ │ │ -
450
│ │ │ │ -
451 // This is the default implementation of std::uninitialized_fill_n.
│ │ │ │ -
452 template<typename _ForwardIterator, typename _Size, typename _Tp>
│ │ │ │ -
453 _GLIBCXX20_CONSTEXPR
│ │ │ │ -
454 _ForwardIterator
│ │ │ │ -
455 __do_uninit_fill_n(_ForwardIterator __first, _Size __n, const _Tp& __x)
│ │ │ │ -
456 {
│ │ │ │ -
457 _UninitDestroyGuard<_ForwardIterator> __guard(__first);
│ │ │ │ -
458#if __cplusplus >= 201103L
│ │ │ │ -
459#pragma GCC diagnostic push
│ │ │ │ -
460#pragma GCC diagnostic ignored "-Wc++17-extensions"
│ │ │ │ -
461 if constexpr (is_integral<_Size>::value)
│ │ │ │ -
462 // Loop will never terminate if __n is negative.
│ │ │ │ -
463 __glibcxx_assert(__n >= 0);
│ │ │ │ -
464 else if constexpr (is_floating_point<_Size>::value)
│ │ │ │ -
465 // Loop will never terminate if __n is not an integer.
│ │ │ │ -
466 __glibcxx_assert(__n >= 0 && static_cast<size_t>(__n) == __n);
│ │ │ │ -
467#pragma GCC diagnostic pop
│ │ │ │ -
468#endif
│ │ │ │ -
469 for (; __n--; ++__first)
│ │ │ │ -
470 std::_Construct(std::__addressof(*__first), __x);
│ │ │ │ -
471 __guard.release();
│ │ │ │ -
472 return __first;
│ │ │ │ -
473 }
│ │ │ │ -
474
│ │ │ │ -
475#if __cplusplus < 201103L
│ │ │ │ -
476 // Use template specialization for C++98 when 'if constexpr' can't be used.
│ │ │ │ -
477 template<bool _CanMemset>
│ │ │ │ -
478 struct __uninitialized_fill_n
│ │ │ │ -
479 {
│ │ │ │ -
480 template<typename _ForwardIterator, typename _Size, typename _Tp>
│ │ │ │ -
481 static _ForwardIterator
│ │ │ │ -
482 __uninit_fill_n(_ForwardIterator __first, _Size __n,
│ │ │ │ -
483 const _Tp& __x)
│ │ │ │ -
484 { return std::__do_uninit_fill_n(__first, __n, __x); }
│ │ │ │ -
485 };
│ │ │ │ -
486
│ │ │ │ -
487 template<>
│ │ │ │ -
488 struct __uninitialized_fill_n<true>
│ │ │ │ -
489 {
│ │ │ │ -
490 // Overload for generic iterators.
│ │ │ │ -
491 template<typename _ForwardIterator, typename _Size, typename _Tp>
│ │ │ │ -
492 static _ForwardIterator
│ │ │ │ -
493 __uninit_fill_n(_ForwardIterator __first, _Size __n,
│ │ │ │ -
494 const _Tp& __x)
│ │ │ │ -
495 {
│ │ │ │ -
496 if (__unwrappable_niter<_ForwardIterator>::__value)
│ │ │ │ -
497 {
│ │ │ │ -
498 _ForwardIterator __last = __first;
│ │ │ │ -
499 std::advance(__last, __n);
│ │ │ │ -
500 __uninitialized_fill<true>::__uninit_fill(__first, __last, __x);
│ │ │ │ -
501 return __last;
│ │ │ │ -
502 }
│ │ │ │ -
503 else
│ │ │ │ -
504 return std::__do_uninit_fill_n(__first, __n, __x);
│ │ │ │ -
505 }
│ │ │ │ -
506 };
│ │ │ │ -
507#endif
│ │ │ │ -
508 /// @endcond
│ │ │ │ -
509
│ │ │ │ -
510#pragma GCC diagnostic push
│ │ │ │ -
511#pragma GCC diagnostic ignored "-Wc++17-extensions"
│ │ │ │ -
512 // _GLIBCXX_RESOLVE_LIB_DEFECTS
│ │ │ │ -
513 // DR 1339. uninitialized_fill_n should return the end of its range
│ │ │ │ -
514 /**
│ │ │ │ -
515 * @brief Copies the value x into the range [first,first+n).
│ │ │ │ -
516 * @param __first A forward iterator.
│ │ │ │ -
517 * @param __n The number of copies to make.
│ │ │ │ -
518 * @param __x The source value.
│ │ │ │ -
519 * @return __first + __n.
│ │ │ │ -
520 *
│ │ │ │ -
521 * Like std::fill_n, but does not require an initialized output range.
│ │ │ │ -
522 */
│ │ │ │ -
523 template<typename _ForwardIterator, typename _Size, typename _Tp>
│ │ │ │ -
524 _GLIBCXX26_CONSTEXPR
│ │ │ │ -
525 inline _ForwardIterator
│ │ │ │ -
│ │ │ │ -
526 uninitialized_fill_n(_ForwardIterator __first, _Size __n, const _Tp& __x)
│ │ │ │ -
527 {
│ │ │ │ -
528 // See uninitialized_fill conditions. We also require _Size to be
│ │ │ │ -
529 // an integer. The standard only requires _Size to be decrementable
│ │ │ │ -
530 // and contextually convertible to bool, so don't assume first+n works.
│ │ │ │ -
531
│ │ │ │ -
532 // FIXME: We could additionally enable this for 1-byte enums.
│ │ │ │ -
533
│ │ │ │ - │ │ │ │ -
535 _ValueType;
│ │ │ │ -
536
│ │ │ │ -
537#if __cplusplus >= 201103L
│ │ │ │ -
538#if __glibcxx_raw_memory_algorithms >= 202411L // >= C++26
│ │ │ │ -
539 if consteval {
│ │ │ │ -
540 return std::__do_uninit_fill_n(__first, __n, __x);
│ │ │ │ -
541 }
│ │ │ │ -
542#endif
│ │ │ │ -
543 if constexpr (__is_byte<_ValueType>::__value)
│ │ │ │ -
544 if constexpr (is_integral<_Tp>::value)
│ │ │ │ -
545 if constexpr (is_integral<_Size>::value)
│ │ │ │ -
546 {
│ │ │ │ -
547 using _BasePtr = decltype(std::__niter_base(__first));
│ │ │ │ -
548 if constexpr (is_pointer<_BasePtr>::value)
│ │ │ │ -
549 {
│ │ │ │ -
550 void* __dest = std::__niter_base(__first);
│ │ │ │ -
551 if (__n > 0) [[__likely__]]
│ │ │ │ -
552 {
│ │ │ │ -
553 __builtin_memset(__dest, (unsigned char)__x, __n);
│ │ │ │ -
554 __first += __n;
│ │ │ │ -
555 }
│ │ │ │ -
556 return __first;
│ │ │ │ -
557 }
│ │ │ │ -
558#if __cpp_lib_concepts
│ │ │ │ -
559 else if constexpr (contiguous_iterator<_ForwardIterator>)
│ │ │ │ -
560 {
│ │ │ │ -
561 auto __dest = std::to_address(__first);
│ │ │ │ -
562 if (__n > 0) [[__likely__]]
│ │ │ │ -
563 {
│ │ │ │ -
564 __builtin_memset(__dest, (unsigned char)__x, __n);
│ │ │ │ -
565 __first += __n;
│ │ │ │ -
566 }
│ │ │ │ -
567 return __first;
│ │ │ │ -
568 }
│ │ │ │ -
569#endif
│ │ │ │ -
570 }
│ │ │ │ -
571 return std::__do_uninit_fill_n(__first, __n, __x);
│ │ │ │ -
572#else // C++98
│ │ │ │ -
573 const bool __can_memset = __is_byte<_ValueType>::__value
│ │ │ │ -
574 && __is_integer<_Tp>::__value
│ │ │ │ -
575 && __is_integer<_Size>::__value;
│ │ │ │ -
576
│ │ │ │ -
577 return __uninitialized_fill_n<__can_memset>::
│ │ │ │ -
578 __uninit_fill_n(__first, __n, __x);
│ │ │ │ -
579#endif
│ │ │ │ -
580 }
│ │ │ │ -
│ │ │ │ -
581#pragma GCC diagnostic pop
│ │ │ │ -
582
│ │ │ │ -
583 /// @cond undocumented
│ │ │ │ -
584
│ │ │ │ -
585 // Extensions: versions of uninitialized_copy, uninitialized_fill,
│ │ │ │ -
586 // and uninitialized_fill_n that take an allocator parameter.
│ │ │ │ -
587 // We dispatch back to the standard versions when we're given the
│ │ │ │ -
588 // default allocator. For nondefault allocators we do not use
│ │ │ │ -
589 // any of the POD optimizations.
│ │ │ │ -
590
│ │ │ │ -
591 template<typename _InputIterator, typename _Sentinel,
│ │ │ │ -
592 typename _ForwardIterator, typename _Allocator>
│ │ │ │ -
593 _GLIBCXX20_CONSTEXPR
│ │ │ │ -
594 _ForwardIterator
│ │ │ │ -
595 __uninitialized_copy_a(_InputIterator __first, _Sentinel __last,
│ │ │ │ -
596 _ForwardIterator __result, _Allocator& __alloc)
│ │ │ │ -
597 {
│ │ │ │ -
598 _UninitDestroyGuard<_ForwardIterator, _Allocator>
│ │ │ │ -
599 __guard(__result, __alloc);
│ │ │ │ -
600
│ │ │ │ - │ │ │ │ -
602 for (; __first != __last; ++__first, (void)++__result)
│ │ │ │ -
603 __traits::construct(__alloc, std::__addressof(*__result), *__first);
│ │ │ │ -
604 __guard.release();
│ │ │ │ -
605 return __result;
│ │ │ │ -
606 }
│ │ │ │ -
607
│ │ │ │ -
608#if _GLIBCXX_HOSTED
│ │ │ │ -
609 template<typename _InputIterator, typename _Sentinel,
│ │ │ │ -
610 typename _ForwardIterator, typename _Tp>
│ │ │ │ -
611 _GLIBCXX20_CONSTEXPR
│ │ │ │ -
612 inline _ForwardIterator
│ │ │ │ -
613 __uninitialized_copy_a(_InputIterator __first, _Sentinel __last,
│ │ │ │ -
614 _ForwardIterator __result, allocator<_Tp>&)
│ │ │ │ -
615 {
│ │ │ │ -
616#ifdef __cpp_lib_is_constant_evaluated
│ │ │ │ -
617 if (std::is_constant_evaluated())
│ │ │ │ -
618 return std::__do_uninit_copy(std::move(__first), __last, __result);
│ │ │ │ -
619#endif
│ │ │ │ -
620
│ │ │ │ -
621#ifdef __glibcxx_ranges
│ │ │ │ -
622 if constexpr (!is_same_v<_InputIterator, _Sentinel>)
│ │ │ │ -
623 {
│ │ │ │ -
624 // Convert to a common range if possible, to benefit from memcpy
│ │ │ │ -
625 // optimizations that std::uninitialized_copy might use.
│ │ │ │ -
626 if constexpr (sized_sentinel_for<_Sentinel, _InputIterator>
│ │ │ │ -
627 && random_access_iterator<_InputIterator>)
│ │ │ │ -
628 return std::uninitialized_copy(__first,
│ │ │ │ -
629 __first + (__last - __first),
│ │ │ │ -
630 __result);
│ │ │ │ -
631 else // Just use default implementation.
│ │ │ │ -
632 return std::__do_uninit_copy(std::move(__first), __last, __result);
│ │ │ │ -
633 }
│ │ │ │ -
634 else
│ │ │ │ -
635 return std::uninitialized_copy(std::move(__first), __last, __result);
│ │ │ │ -
636#else
│ │ │ │ -
637 return std::uninitialized_copy(__first, __last, __result);
│ │ │ │ -
638#endif
│ │ │ │ -
639 }
│ │ │ │ -
640#endif
│ │ │ │ -
641
│ │ │ │ -
642 template<typename _InputIterator, typename _ForwardIterator,
│ │ │ │ -
643 typename _Allocator>
│ │ │ │ -
644 _GLIBCXX20_CONSTEXPR
│ │ │ │ -
645 inline _ForwardIterator
│ │ │ │ -
646 __uninitialized_move_a(_InputIterator __first, _InputIterator __last,
│ │ │ │ -
647 _ForwardIterator __result, _Allocator& __alloc)
│ │ │ │ -
648 {
│ │ │ │ -
649 return std::__uninitialized_copy_a(_GLIBCXX_MAKE_MOVE_ITERATOR(__first),
│ │ │ │ -
650 _GLIBCXX_MAKE_MOVE_ITERATOR(__last),
│ │ │ │ -
651 __result, __alloc);
│ │ │ │ -
652 }
│ │ │ │ -
653
│ │ │ │ -
654 template<typename _InputIterator, typename _ForwardIterator,
│ │ │ │ -
655 typename _Allocator>
│ │ │ │ -
656 _GLIBCXX20_CONSTEXPR
│ │ │ │ -
657 inline _ForwardIterator
│ │ │ │ -
658 __uninitialized_move_if_noexcept_a(_InputIterator __first,
│ │ │ │ -
659 _InputIterator __last,
│ │ │ │ -
660 _ForwardIterator __result,
│ │ │ │ -
661 _Allocator& __alloc)
│ │ │ │ -
662 {
│ │ │ │ -
663 return std::__uninitialized_copy_a
│ │ │ │ -
664 (_GLIBCXX_MAKE_MOVE_IF_NOEXCEPT_ITERATOR(__first),
│ │ │ │ -
665 _GLIBCXX_MAKE_MOVE_IF_NOEXCEPT_ITERATOR(__last), __result, __alloc);
│ │ │ │ -
666 }
│ │ │ │ -
667
│ │ │ │ -
668 template<typename _ForwardIterator, typename _Tp, typename _Allocator>
│ │ │ │ -
669 _GLIBCXX20_CONSTEXPR
│ │ │ │ -
670 void
│ │ │ │ -
671 __uninitialized_fill_a(_ForwardIterator __first, _ForwardIterator __last,
│ │ │ │ -
672 const _Tp& __x, _Allocator& __alloc)
│ │ │ │ -
673 {
│ │ │ │ -
674 _UninitDestroyGuard<_ForwardIterator, _Allocator>
│ │ │ │ -
675 __guard(__first, __alloc);
│ │ │ │ -
676
│ │ │ │ - │ │ │ │ -
678 for (; __first != __last; ++__first)
│ │ │ │ -
679 __traits::construct(__alloc, std::__addressof(*__first), __x);
│ │ │ │ -
680
│ │ │ │ -
681 __guard.release();
│ │ │ │ -
682 }
│ │ │ │ -
683
│ │ │ │ -
684#if _GLIBCXX_HOSTED
│ │ │ │ -
685 template<typename _ForwardIterator, typename _Tp, typename _Tp2>
│ │ │ │ -
686 _GLIBCXX20_CONSTEXPR
│ │ │ │ -
687 inline void
│ │ │ │ -
688 __uninitialized_fill_a(_ForwardIterator __first, _ForwardIterator __last,
│ │ │ │ -
689 const _Tp& __x, allocator<_Tp2>&)
│ │ │ │ -
690 {
│ │ │ │ -
691#ifdef __cpp_lib_is_constant_evaluated
│ │ │ │ -
692 if (std::is_constant_evaluated())
│ │ │ │ -
693 return std::__do_uninit_fill(__first, __last, __x);
│ │ │ │ -
694#endif
│ │ │ │ -
695 std::uninitialized_fill(__first, __last, __x);
│ │ │ │ -
696 }
│ │ │ │ -
697#endif
│ │ │ │ -
698
│ │ │ │ -
699 template<typename _ForwardIterator, typename _Size, typename _Tp,
│ │ │ │ -
700 typename _Allocator>
│ │ │ │ -
701 _GLIBCXX20_CONSTEXPR
│ │ │ │ -
702 _ForwardIterator
│ │ │ │ -
703 __uninitialized_fill_n_a(_ForwardIterator __first, _Size __n,
│ │ │ │ -
704 const _Tp& __x, _Allocator& __alloc)
│ │ │ │ -
705 {
│ │ │ │ -
706 _UninitDestroyGuard<_ForwardIterator, _Allocator>
│ │ │ │ -
707 __guard(__first, __alloc);
│ │ │ │ - │ │ │ │ -
709 for (; __n > 0; --__n, (void) ++__first)
│ │ │ │ -
710 __traits::construct(__alloc, std::__addressof(*__first), __x);
│ │ │ │ -
711 __guard.release();
│ │ │ │ -
712 return __first;
│ │ │ │ -
713 }
│ │ │ │ -
714
│ │ │ │ -
715#if _GLIBCXX_HOSTED
│ │ │ │ -
716 template<typename _ForwardIterator, typename _Size, typename _Tp,
│ │ │ │ -
717 typename _Tp2>
│ │ │ │ -
718 _GLIBCXX20_CONSTEXPR
│ │ │ │ -
719 inline _ForwardIterator
│ │ │ │ -
720 __uninitialized_fill_n_a(_ForwardIterator __first, _Size __n,
│ │ │ │ -
721 const _Tp& __x, allocator<_Tp2>&)
│ │ │ │ -
722 {
│ │ │ │ -
723#ifdef __cpp_lib_is_constant_evaluated
│ │ │ │ -
724 if (std::is_constant_evaluated())
│ │ │ │ -
725 return std::__do_uninit_fill_n(__first, __n, __x);
│ │ │ │ -
726#endif
│ │ │ │ -
727 return std::uninitialized_fill_n(__first, __n, __x);
│ │ │ │ -
728 }
│ │ │ │ -
729#endif
│ │ │ │ -
730
│ │ │ │ -
731 // Extensions: __uninitialized_copy_move, __uninitialized_move_copy,
│ │ │ │ -
732 // __uninitialized_fill_move, __uninitialized_move_fill.
│ │ │ │ -
733 // All of these algorithms take a user-supplied allocator, which is used
│ │ │ │ -
734 // for construction and destruction.
│ │ │ │ -
735
│ │ │ │ -
736 // __uninitialized_copy_move
│ │ │ │ -
737 // Copies [first1, last1) into [result, result + (last1 - first1)), and
│ │ │ │ -
738 // move [first2, last2) into
│ │ │ │ -
739 // [result, result + (last1 - first1) + (last2 - first2)).
│ │ │ │ -
740 template<typename _InputIterator1, typename _InputIterator2,
│ │ │ │ -
741 typename _ForwardIterator, typename _Allocator>
│ │ │ │ -
742 inline _ForwardIterator
│ │ │ │ -
743 __uninitialized_copy_move(_InputIterator1 __first1,
│ │ │ │ -
744 _InputIterator1 __last1,
│ │ │ │ -
745 _InputIterator2 __first2,
│ │ │ │ -
746 _InputIterator2 __last2,
│ │ │ │ -
747 _ForwardIterator __result,
│ │ │ │ -
748 _Allocator& __alloc)
│ │ │ │ -
749 {
│ │ │ │ -
750 _ForwardIterator __mid = std::__uninitialized_copy_a(__first1, __last1,
│ │ │ │ -
751 __result, __alloc);
│ │ │ │ -
752 _UninitDestroyGuard<_ForwardIterator, _Allocator> __guard(__result,
│ │ │ │ -
753 __alloc);
│ │ │ │ -
754 __result = __mid; // Everything up to __mid is now guarded.
│ │ │ │ -
755 __result = std::__uninitialized_move_a(__first2, __last2, __mid, __alloc);
│ │ │ │ -
756 __guard.release();
│ │ │ │ -
757 return __result;
│ │ │ │ -
758 }
│ │ │ │ -
759
│ │ │ │ -
760 // __uninitialized_move_copy
│ │ │ │ -
761 // Moves [first1, last1) into [result, result + (last1 - first1)), and
│ │ │ │ -
762 // copies [first2, last2) into
│ │ │ │ -
763 // [result, result + (last1 - first1) + (last2 - first2)).
│ │ │ │ -
764 template<typename _InputIterator1, typename _InputIterator2,
│ │ │ │ -
765 typename _ForwardIterator, typename _Allocator>
│ │ │ │ -
766 inline _ForwardIterator
│ │ │ │ -
767 __uninitialized_move_copy(_InputIterator1 __first1,
│ │ │ │ -
768 _InputIterator1 __last1,
│ │ │ │ -
769 _InputIterator2 __first2,
│ │ │ │ -
770 _InputIterator2 __last2,
│ │ │ │ -
771 _ForwardIterator __result,
│ │ │ │ -
772 _Allocator& __alloc)
│ │ │ │ -
773 {
│ │ │ │ -
774 _ForwardIterator __mid = std::__uninitialized_move_a(__first1, __last1,
│ │ │ │ -
775 __result, __alloc);
│ │ │ │ -
776 _UninitDestroyGuard<_ForwardIterator, _Allocator> __guard(__result,
│ │ │ │ -
777 __alloc);
│ │ │ │ -
778 __result = __mid; // Everything up to __mid is now guarded.
│ │ │ │ -
779 __result = std::__uninitialized_copy_a(__first2, __last2, __mid, __alloc);
│ │ │ │ -
780 __guard.release();
│ │ │ │ -
781 return __result;
│ │ │ │ -
782 }
│ │ │ │ -
783
│ │ │ │ -
784 // __uninitialized_fill_move
│ │ │ │ -
785 // Fills [result, mid) with x, and moves [first, last) into
│ │ │ │ -
786 // [mid, mid + (last - first)).
│ │ │ │ -
787 template<typename _ForwardIterator, typename _Tp, typename _InputIterator,
│ │ │ │ -
788 typename _Allocator>
│ │ │ │ -
789 inline _ForwardIterator
│ │ │ │ -
790 __uninitialized_fill_move(_ForwardIterator __result, _ForwardIterator __mid,
│ │ │ │ -
791 const _Tp& __x, _InputIterator __first,
│ │ │ │ -
792 _InputIterator __last, _Allocator& __alloc)
│ │ │ │ -
793 {
│ │ │ │ -
794 std::__uninitialized_fill_a(__result, __mid, __x, __alloc);
│ │ │ │ -
795 _UninitDestroyGuard<_ForwardIterator, _Allocator> __guard(__result,
│ │ │ │ -
796 __alloc);
│ │ │ │ -
797 __result = __mid; // Everything up to __mid is now guarded.
│ │ │ │ -
798 __result = std::__uninitialized_move_a(__first, __last, __mid, __alloc);
│ │ │ │ -
799 __guard.release();
│ │ │ │ -
800 return __result;
│ │ │ │ -
801 }
│ │ │ │ -
802
│ │ │ │ -
803 // __uninitialized_move_fill
│ │ │ │ -
804 // Moves [first1, last1) into [first2, first2 + (last1 - first1)), and
│ │ │ │ -
805 // fills [first2 + (last1 - first1), last2) with x.
│ │ │ │ -
806 template<typename _InputIterator, typename _ForwardIterator, typename _Tp,
│ │ │ │ -
807 typename _Allocator>
│ │ │ │ -
808 inline void
│ │ │ │ -
809 __uninitialized_move_fill(_InputIterator __first1, _InputIterator __last1,
│ │ │ │ -
810 _ForwardIterator __first2,
│ │ │ │ -
811 _ForwardIterator __last2, const _Tp& __x,
│ │ │ │ -
812 _Allocator& __alloc)
│ │ │ │ -
813 {
│ │ │ │ -
814 _ForwardIterator __mid2 = std::__uninitialized_move_a(__first1, __last1,
│ │ │ │ -
815 __first2,
│ │ │ │ -
816 __alloc);
│ │ │ │ -
817 _UninitDestroyGuard<_ForwardIterator, _Allocator> __guard(__first2,
│ │ │ │ -
818 __alloc);
│ │ │ │ -
819 __first2 = __mid2; // Everything up to __mid2 is now guarded.
│ │ │ │ -
820 std::__uninitialized_fill_a(__mid2, __last2, __x, __alloc);
│ │ │ │ -
821 __guard.release();
│ │ │ │ -
822 }
│ │ │ │ -
823
│ │ │ │ -
824 /// @endcond
│ │ │ │ -
825
│ │ │ │ -
826#if __cplusplus >= 201103L
│ │ │ │ -
827 /// @cond undocumented
│ │ │ │ -
828
│ │ │ │ -
829 // Extensions: __uninitialized_default, __uninitialized_default_n,
│ │ │ │ -
830 // __uninitialized_default_a, __uninitialized_default_n_a.
│ │ │ │ -
831
│ │ │ │ -
832 template<bool _TrivialValueType>
│ │ │ │ -
833 struct __uninitialized_default_1
│ │ │ │ -
834 {
│ │ │ │ -
835 template<typename _ForwardIterator>
│ │ │ │ -
836 _GLIBCXX26_CONSTEXPR
│ │ │ │ -
837 static void
│ │ │ │ -
838 __uninit_default(_ForwardIterator __first, _ForwardIterator __last)
│ │ │ │ -
839 {
│ │ │ │ -
840 _UninitDestroyGuard<_ForwardIterator> __guard(__first);
│ │ │ │ -
841 for (; __first != __last; ++__first)
│ │ │ │ - │ │ │ │ -
843 __guard.release();
│ │ │ │ -
844 }
│ │ │ │ -
845 };
│ │ │ │ -
846
│ │ │ │ -
847 template<>
│ │ │ │ -
848 struct __uninitialized_default_1<true>
│ │ │ │ -
849 {
│ │ │ │ -
850 template<typename _ForwardIterator>
│ │ │ │ -
851 _GLIBCXX26_CONSTEXPR
│ │ │ │ -
852 static void
│ │ │ │ -
853 __uninit_default(_ForwardIterator __first, _ForwardIterator __last)
│ │ │ │ -
854 {
│ │ │ │ -
855 if (__first == __last)
│ │ │ │ -
856 return;
│ │ │ │ -
857
│ │ │ │ -
858 typename iterator_traits<_ForwardIterator>::value_type* __val
│ │ │ │ -
859 = std::__addressof(*__first);
│ │ │ │ -
860 std::_Construct(__val);
│ │ │ │ -
861 if (++__first != __last)
│ │ │ │ -
862 std::fill(__first, __last, *__val);
│ │ │ │ -
863 }
│ │ │ │ -
864 };
│ │ │ │ -
865
│ │ │ │ -
866 template<bool _TrivialValueType>
│ │ │ │ -
867 struct __uninitialized_default_n_1
│ │ │ │ -
868 {
│ │ │ │ -
869 template<typename _ForwardIterator, typename _Size>
│ │ │ │ -
870 _GLIBCXX20_CONSTEXPR
│ │ │ │ -
871 static _ForwardIterator
│ │ │ │ -
872 __uninit_default_n(_ForwardIterator __first, _Size __n)
│ │ │ │ -
873 {
│ │ │ │ -
874 _UninitDestroyGuard<_ForwardIterator> __guard(__first);
│ │ │ │ -
875 for (; __n > 0; --__n, (void) ++__first)
│ │ │ │ - │ │ │ │ -
877 __guard.release();
│ │ │ │ -
878 return __first;
│ │ │ │ -
879 }
│ │ │ │ -
880 };
│ │ │ │ -
881
│ │ │ │ -
882 template<>
│ │ │ │ -
883 struct __uninitialized_default_n_1<true>
│ │ │ │ -
884 {
│ │ │ │ -
885 template<typename _ForwardIterator, typename _Size>
│ │ │ │ -
886 _GLIBCXX20_CONSTEXPR
│ │ │ │ -
887 static _ForwardIterator
│ │ │ │ -
888 __uninit_default_n(_ForwardIterator __first, _Size __n)
│ │ │ │ -
889 {
│ │ │ │ -
890 if (__n > 0)
│ │ │ │ -
891 {
│ │ │ │ -
892 typename iterator_traits<_ForwardIterator>::value_type* __val
│ │ │ │ -
893 = std::__addressof(*__first);
│ │ │ │ -
894 std::_Construct(__val);
│ │ │ │ -
895 ++__first;
│ │ │ │ -
896 __first = std::fill_n(__first, __n - 1, *__val);
│ │ │ │ -
897 }
│ │ │ │ -
898 return __first;
│ │ │ │ -
899 }
│ │ │ │ -
900 };
│ │ │ │ -
901
│ │ │ │ -
902 // __uninitialized_default
│ │ │ │ -
903 // Fills [first, last) with value-initialized value_types.
│ │ │ │ -
904 template<typename _ForwardIterator>
│ │ │ │ -
905 _GLIBCXX26_CONSTEXPR
│ │ │ │ -
906 inline void
│ │ │ │ -
907 __uninitialized_default(_ForwardIterator __first,
│ │ │ │ -
908 _ForwardIterator __last)
│ │ │ │ -
909 {
│ │ │ │ -
910 typedef typename iterator_traits<_ForwardIterator>::value_type
│ │ │ │ -
911 _ValueType;
│ │ │ │ -
912 // trivial types can have deleted assignment
│ │ │ │ -
913 const bool __assignable = is_copy_assignable<_ValueType>::value;
│ │ │ │ -
914
│ │ │ │ -
915 std::__uninitialized_default_1<__is_trivial(_ValueType)
│ │ │ │ -
916 && __assignable>::
│ │ │ │ -
917 __uninit_default(__first, __last);
│ │ │ │ -
918 }
│ │ │ │ -
919
│ │ │ │ -
920 // __uninitialized_default_n
│ │ │ │ -
921 // Fills [first, first + n) with value-initialized value_types.
│ │ │ │ -
922 template<typename _ForwardIterator, typename _Size>
│ │ │ │ -
923 _GLIBCXX20_CONSTEXPR
│ │ │ │ -
924 inline _ForwardIterator
│ │ │ │ -
925 __uninitialized_default_n(_ForwardIterator __first, _Size __n)
│ │ │ │ -
926 {
│ │ │ │ -
927#ifdef __cpp_lib_is_constant_evaluated
│ │ │ │ -
928 if (std::is_constant_evaluated())
│ │ │ │ -
929 return __uninitialized_default_n_1<false>::
│ │ │ │ -
930 __uninit_default_n(__first, __n);
│ │ │ │ -
931#endif
│ │ │ │ -
932
│ │ │ │ -
933 typedef typename iterator_traits<_ForwardIterator>::value_type
│ │ │ │ -
934 _ValueType;
│ │ │ │ -
935 // See uninitialized_fill_n for the conditions for using std::fill_n.
│ │ │ │ -
936 constexpr bool __can_fill
│ │ │ │ -
937 = __and_<is_integral<_Size>, is_copy_assignable<_ValueType>>::value;
│ │ │ │ -
938
│ │ │ │ -
939 return __uninitialized_default_n_1<__is_trivial(_ValueType)
│ │ │ │ -
940 && __can_fill>::
│ │ │ │ -
941 __uninit_default_n(__first, __n);
│ │ │ │ -
942 }
│ │ │ │ -
943
│ │ │ │ -
944
│ │ │ │ -
945 // __uninitialized_default_a
│ │ │ │ -
946 // Fills [first, last) with value_types constructed by the allocator
│ │ │ │ -
947 // alloc, with no arguments passed to the construct call.
│ │ │ │ -
948 template<typename _ForwardIterator, typename _Allocator>
│ │ │ │ -
949 void
│ │ │ │ -
950 __uninitialized_default_a(_ForwardIterator __first,
│ │ │ │ -
951 _ForwardIterator __last,
│ │ │ │ -
952 _Allocator& __alloc)
│ │ │ │ -
953 {
│ │ │ │ -
954 _UninitDestroyGuard<_ForwardIterator, _Allocator> __guard(__first,
│ │ │ │ -
955 __alloc);
│ │ │ │ - │ │ │ │ -
957 for (; __first != __last; ++__first)
│ │ │ │ -
958 __traits::construct(__alloc, std::__addressof(*__first));
│ │ │ │ -
959 __guard.release();
│ │ │ │ -
960 }
│ │ │ │ -
961
│ │ │ │ -
962#if _GLIBCXX_HOSTED
│ │ │ │ -
963 template<typename _ForwardIterator, typename _Tp>
│ │ │ │ -
964 inline void
│ │ │ │ -
965 __uninitialized_default_a(_ForwardIterator __first,
│ │ │ │ -
966 _ForwardIterator __last,
│ │ │ │ -
967 allocator<_Tp>&)
│ │ │ │ -
968 { std::__uninitialized_default(__first, __last); }
│ │ │ │ -
969#endif
│ │ │ │ -
970
│ │ │ │ -
971 // __uninitialized_default_n_a
│ │ │ │ -
972 // Fills [first, first + n) with value_types constructed by the allocator
│ │ │ │ -
973 // alloc, with no arguments passed to the construct call.
│ │ │ │ -
974 template<typename _ForwardIterator, typename _Size, typename _Allocator>
│ │ │ │ -
975 _GLIBCXX20_CONSTEXPR _ForwardIterator
│ │ │ │ -
976 __uninitialized_default_n_a(_ForwardIterator __first, _Size __n,
│ │ │ │ -
977 _Allocator& __alloc)
│ │ │ │ -
978 {
│ │ │ │ -
979 _UninitDestroyGuard<_ForwardIterator, _Allocator> __guard(__first,
│ │ │ │ -
980 __alloc);
│ │ │ │ - │ │ │ │ -
982 for (; __n > 0; --__n, (void) ++__first)
│ │ │ │ -
983 __traits::construct(__alloc, std::__addressof(*__first));
│ │ │ │ -
984 __guard.release();
│ │ │ │ -
985 return __first;
│ │ │ │ -
986 }
│ │ │ │ -
987
│ │ │ │ -
988#if _GLIBCXX_HOSTED
│ │ │ │ -
989 // __uninitialized_default_n_a specialization for std::allocator,
│ │ │ │ -
990 // which ignores the allocator and value-initializes the elements.
│ │ │ │ -
991 template<typename _ForwardIterator, typename _Size, typename _Tp>
│ │ │ │ -
992 _GLIBCXX20_CONSTEXPR
│ │ │ │ -
993 inline _ForwardIterator
│ │ │ │ -
994 __uninitialized_default_n_a(_ForwardIterator __first, _Size __n,
│ │ │ │ -
995 allocator<_Tp>&)
│ │ │ │ -
996 { return std::__uninitialized_default_n(__first, __n); }
│ │ │ │ -
997#endif
│ │ │ │ -
998
│ │ │ │ -
999 template<bool _TrivialValueType>
│ │ │ │ -
1000 struct __uninitialized_default_novalue_1
│ │ │ │ -
1001 {
│ │ │ │ -
1002 template<typename _ForwardIterator>
│ │ │ │ -
1003 _GLIBCXX26_CONSTEXPR
│ │ │ │ -
1004 static void
│ │ │ │ -
1005 __uninit_default_novalue(_ForwardIterator __first,
│ │ │ │ -
1006 _ForwardIterator __last)
│ │ │ │ -
1007 {
│ │ │ │ -
1008 _UninitDestroyGuard<_ForwardIterator> __guard(__first);
│ │ │ │ -
1009 for (; __first != __last; ++__first)
│ │ │ │ -
1010 std::_Construct_novalue(std::__addressof(*__first));
│ │ │ │ -
1011 __guard.release();
│ │ │ │ -
1012 }
│ │ │ │ -
1013 };
│ │ │ │ -
1014
│ │ │ │ -
1015 template<>
│ │ │ │ -
1016 struct __uninitialized_default_novalue_1<true>
│ │ │ │ -
1017 {
│ │ │ │ -
1018 template<typename _ForwardIterator>
│ │ │ │ -
1019 _GLIBCXX26_CONSTEXPR
│ │ │ │ -
1020 static void
│ │ │ │ -
1021 __uninit_default_novalue(_ForwardIterator, _ForwardIterator)
│ │ │ │ -
1022 {
│ │ │ │ -
1023 }
│ │ │ │ -
1024 };
│ │ │ │ -
1025
│ │ │ │ -
1026 template<bool _TrivialValueType>
│ │ │ │ -
1027 struct __uninitialized_default_novalue_n_1
│ │ │ │ -
1028 {
│ │ │ │ -
1029 template<typename _ForwardIterator, typename _Size>
│ │ │ │ -
1030 _GLIBCXX26_CONSTEXPR
│ │ │ │ -
1031 static _ForwardIterator
│ │ │ │ -
1032 __uninit_default_novalue_n(_ForwardIterator __first, _Size __n)
│ │ │ │ -
1033 {
│ │ │ │ -
1034 _UninitDestroyGuard<_ForwardIterator> __guard(__first);
│ │ │ │ -
1035 for (; __n > 0; --__n, (void) ++__first)
│ │ │ │ -
1036 std::_Construct_novalue(std::__addressof(*__first));
│ │ │ │ -
1037 __guard.release();
│ │ │ │ -
1038 return __first;
│ │ │ │ -
1039 }
│ │ │ │ -
1040 };
│ │ │ │ -
1041
│ │ │ │ -
1042 template<>
│ │ │ │ -
1043 struct __uninitialized_default_novalue_n_1<true>
│ │ │ │ -
1044 {
│ │ │ │ -
1045 template<typename _ForwardIterator, typename _Size>
│ │ │ │ -
1046 _GLIBCXX26_CONSTEXPR
│ │ │ │ -
1047 static _ForwardIterator
│ │ │ │ -
1048 __uninit_default_novalue_n(_ForwardIterator __first, _Size __n)
│ │ │ │ -
1049 { return std::next(__first, __n); }
│ │ │ │ -
1050 };
│ │ │ │ -
1051
│ │ │ │ -
1052 // __uninitialized_default_novalue
│ │ │ │ -
1053 // Fills [first, last) with default-initialized value_types.
│ │ │ │ -
1054 template<typename _ForwardIterator>
│ │ │ │ -
1055 _GLIBCXX26_CONSTEXPR
│ │ │ │ -
1056 inline void
│ │ │ │ -
1057 __uninitialized_default_novalue(_ForwardIterator __first,
│ │ │ │ -
1058 _ForwardIterator __last)
│ │ │ │ -
1059 {
│ │ │ │ -
1060 typedef typename iterator_traits<_ForwardIterator>::value_type
│ │ │ │ -
1061 _ValueType;
│ │ │ │ -
1062
│ │ │ │ -
1063 std::__uninitialized_default_novalue_1<
│ │ │ │ -
1064 is_trivially_default_constructible<_ValueType>::value>::
│ │ │ │ -
1065 __uninit_default_novalue(__first, __last);
│ │ │ │ -
1066 }
│ │ │ │ -
1067
│ │ │ │ -
1068 // __uninitialized_default_novalue_n
│ │ │ │ -
1069 // Fills [first, first + n) with default-initialized value_types.
│ │ │ │ -
1070 template<typename _ForwardIterator, typename _Size>
│ │ │ │ -
1071 _GLIBCXX26_CONSTEXPR
│ │ │ │ -
1072 inline _ForwardIterator
│ │ │ │ -
1073 __uninitialized_default_novalue_n(_ForwardIterator __first, _Size __n)
│ │ │ │ -
1074 {
│ │ │ │ -
1075 typedef typename iterator_traits<_ForwardIterator>::value_type
│ │ │ │ -
1076 _ValueType;
│ │ │ │ -
1077
│ │ │ │ -
1078 return __uninitialized_default_novalue_n_1<
│ │ │ │ -
1079 is_trivially_default_constructible<_ValueType>::value>::
│ │ │ │ -
1080 __uninit_default_novalue_n(__first, __n);
│ │ │ │ -
1081 }
│ │ │ │ -
1082
│ │ │ │ -
1083 template<typename _InputIterator, typename _Size,
│ │ │ │ -
1084 typename _ForwardIterator>
│ │ │ │ -
1085 _GLIBCXX26_CONSTEXPR
│ │ │ │ -
1086 _ForwardIterator
│ │ │ │ -
1087 __uninitialized_copy_n(_InputIterator __first, _Size __n,
│ │ │ │ -
1088 _ForwardIterator __result, input_iterator_tag)
│ │ │ │ -
1089 {
│ │ │ │ -
1090 _UninitDestroyGuard<_ForwardIterator> __guard(__result);
│ │ │ │ -
1091 for (; __n > 0; --__n, (void) ++__first, ++__result)
│ │ │ │ -
1092 std::_Construct(std::__addressof(*__result), *__first);
│ │ │ │ -
1093 __guard.release();
│ │ │ │ -
1094 return __result;
│ │ │ │ -
1095 }
│ │ │ │ -
1096
│ │ │ │ -
1097 template<typename _RandomAccessIterator, typename _Size,
│ │ │ │ -
1098 typename _ForwardIterator>
│ │ │ │ -
1099 _GLIBCXX26_CONSTEXPR
│ │ │ │ -
1100 inline _ForwardIterator
│ │ │ │ -
1101 __uninitialized_copy_n(_RandomAccessIterator __first, _Size __n,
│ │ │ │ -
1102 _ForwardIterator __result,
│ │ │ │ -
1103 random_access_iterator_tag)
│ │ │ │ -
1104 { return std::uninitialized_copy(__first, __first + __n, __result); }
│ │ │ │ -
1105
│ │ │ │ -
1106 template<typename _InputIterator, typename _Size,
│ │ │ │ -
1107 typename _ForwardIterator>
│ │ │ │ -
1108 _GLIBCXX26_CONSTEXPR
│ │ │ │ -
1109 pair<_InputIterator, _ForwardIterator>
│ │ │ │ -
1110 __uninitialized_copy_n_pair(_InputIterator __first, _Size __n,
│ │ │ │ -
1111 _ForwardIterator __result, input_iterator_tag)
│ │ │ │ -
1112 {
│ │ │ │ -
1113 _UninitDestroyGuard<_ForwardIterator> __guard(__result);
│ │ │ │ -
1114 for (; __n > 0; --__n, (void) ++__first, ++__result)
│ │ │ │ -
1115 std::_Construct(std::__addressof(*__result), *__first);
│ │ │ │ -
1116 __guard.release();
│ │ │ │ -
1117 return {__first, __result};
│ │ │ │ -
1118 }
│ │ │ │ -
1119
│ │ │ │ -
1120 template<typename _RandomAccessIterator, typename _Size,
│ │ │ │ -
1121 typename _ForwardIterator>
│ │ │ │ -
1122 _GLIBCXX26_CONSTEXPR
│ │ │ │ -
1123 inline pair<_RandomAccessIterator, _ForwardIterator>
│ │ │ │ -
1124 __uninitialized_copy_n_pair(_RandomAccessIterator __first, _Size __n,
│ │ │ │ -
1125 _ForwardIterator __result,
│ │ │ │ -
1126 random_access_iterator_tag)
│ │ │ │ -
1127 {
│ │ │ │ -
1128 auto __second_res = uninitialized_copy(__first, __first + __n, __result);
│ │ │ │ -
1129 auto __first_res = std::next(__first, __n);
│ │ │ │ -
1130 return {__first_res, __second_res};
│ │ │ │ -
1131 }
│ │ │ │ -
1132
│ │ │ │ -
1133 /// @endcond
│ │ │ │ -
1134
│ │ │ │ -
1135 /**
│ │ │ │ -
1136 * @brief Copies the range [first,first+n) into result.
│ │ │ │ -
1137 * @param __first An input iterator.
│ │ │ │ -
1138 * @param __n The number of elements to copy.
│ │ │ │ -
1139 * @param __result An output iterator.
│ │ │ │ -
1140 * @return __result + __n
│ │ │ │ -
1141 * @since C++11
│ │ │ │ -
1142 *
│ │ │ │ -
1143 * Like copy_n(), but does not require an initialized output range.
│ │ │ │ -
1144 */
│ │ │ │ -
1145 template<typename _InputIterator, typename _Size, typename _ForwardIterator>
│ │ │ │ -
1146 _GLIBCXX26_CONSTEXPR
│ │ │ │ -
1147 inline _ForwardIterator
│ │ │ │ -
│ │ │ │ -
1148 uninitialized_copy_n(_InputIterator __first, _Size __n,
│ │ │ │ -
1149 _ForwardIterator __result)
│ │ │ │ -
1150 { return std::__uninitialized_copy_n(__first, __n, __result,
│ │ │ │ -
1151 std::__iterator_category(__first)); }
│ │ │ │ -
│ │ │ │ -
1152
│ │ │ │ -
1153 /// @cond undocumented
│ │ │ │ -
1154 template<typename _InputIterator, typename _Size, typename _ForwardIterator>
│ │ │ │ -
1155 _GLIBCXX26_CONSTEXPR
│ │ │ │ -
1156 inline pair<_InputIterator, _ForwardIterator>
│ │ │ │ -
1157 __uninitialized_copy_n_pair(_InputIterator __first, _Size __n,
│ │ │ │ -
1158 _ForwardIterator __result)
│ │ │ │ -
1159 {
│ │ │ │ -
1160 return
│ │ │ │ -
1161 std::__uninitialized_copy_n_pair(__first, __n, __result,
│ │ │ │ -
1162 std::__iterator_category(__first));
│ │ │ │ -
1163 }
│ │ │ │ -
1164 /// @endcond
│ │ │ │ -
1165#endif
│ │ │ │ -
1166
│ │ │ │ -
1167#ifdef __glibcxx_raw_memory_algorithms // C++ >= 17
│ │ │ │ -
1168 /**
│ │ │ │ -
1169 * @brief Default-initializes objects in the range [first,last).
│ │ │ │ -
1170 * @param __first A forward iterator.
│ │ │ │ -
1171 * @param __last A forward iterator.
│ │ │ │ -
1172 * @since C++17
│ │ │ │ -
1173 */
│ │ │ │ -
1174 template <typename _ForwardIterator>
│ │ │ │ -
1175 _GLIBCXX26_CONSTEXPR
│ │ │ │ -
1176 inline void
│ │ │ │ -
│ │ │ │ -
1177 uninitialized_default_construct(_ForwardIterator __first,
│ │ │ │ -
1178 _ForwardIterator __last)
│ │ │ │ -
1179 {
│ │ │ │ -
1180 std::__uninitialized_default_novalue(__first, __last);
│ │ │ │ -
1181 }
│ │ │ │ -
│ │ │ │ -
1182
│ │ │ │ -
1183 /**
│ │ │ │ -
1184 * @brief Default-initializes objects in the range [first,first+count).
│ │ │ │ -
1185 * @param __first A forward iterator.
│ │ │ │ -
1186 * @param __count The number of objects to construct.
│ │ │ │ -
1187 * @return __first + __count
│ │ │ │ -
1188 * @since C++17
│ │ │ │ -
1189 */
│ │ │ │ -
1190 template <typename _ForwardIterator, typename _Size>
│ │ │ │ -
1191 _GLIBCXX26_CONSTEXPR
│ │ │ │ -
1192 inline _ForwardIterator
│ │ │ │ -
│ │ │ │ -
1193 uninitialized_default_construct_n(_ForwardIterator __first, _Size __count)
│ │ │ │ -
1194 {
│ │ │ │ -
1195 return std::__uninitialized_default_novalue_n(__first, __count);
│ │ │ │ -
1196 }
│ │ │ │ -
│ │ │ │ -
1197
│ │ │ │ -
1198 /**
│ │ │ │ -
1199 * @brief Value-initializes objects in the range [first,last).
│ │ │ │ -
1200 * @param __first A forward iterator.
│ │ │ │ -
1201 * @param __last A forward iterator.
│ │ │ │ -
1202 * @since C++17
│ │ │ │ -
1203 */
│ │ │ │ -
1204 template <typename _ForwardIterator>
│ │ │ │ -
1205 _GLIBCXX26_CONSTEXPR
│ │ │ │ -
1206 inline void
│ │ │ │ -
│ │ │ │ -
1207 uninitialized_value_construct(_ForwardIterator __first,
│ │ │ │ -
1208 _ForwardIterator __last)
│ │ │ │ -
1209 {
│ │ │ │ -
1210 return std::__uninitialized_default(__first, __last);
│ │ │ │ -
1211 }
│ │ │ │ -
│ │ │ │ -
1212
│ │ │ │ -
1213 /**
│ │ │ │ -
1214 * @brief Value-initializes objects in the range [first,first+count).
│ │ │ │ -
1215 * @param __first A forward iterator.
│ │ │ │ -
1216 * @param __count The number of objects to construct.
│ │ │ │ -
1217 * @return __result + __count
│ │ │ │ -
1218 * @since C++17
│ │ │ │ -
1219 */
│ │ │ │ -
1220 template <typename _ForwardIterator, typename _Size>
│ │ │ │ -
1221 _GLIBCXX26_CONSTEXPR
│ │ │ │ -
1222 inline _ForwardIterator
│ │ │ │ -
│ │ │ │ -
1223 uninitialized_value_construct_n(_ForwardIterator __first, _Size __count)
│ │ │ │ -
1224 {
│ │ │ │ -
1225 return std::__uninitialized_default_n(__first, __count);
│ │ │ │ -
1226 }
│ │ │ │ -
│ │ │ │ -
1227
│ │ │ │ -
1228 /**
│ │ │ │ -
1229 * @brief Move-construct from the range [first,last) into result.
│ │ │ │ -
1230 * @param __first An input iterator.
│ │ │ │ -
1231 * @param __last An input iterator.
│ │ │ │ -
1232 * @param __result An output iterator.
│ │ │ │ -
1233 * @return __result + (__first - __last)
│ │ │ │ -
1234 * @since C++17
│ │ │ │ -
1235 */
│ │ │ │ -
1236 template <typename _InputIterator, typename _ForwardIterator>
│ │ │ │ -
1237 _GLIBCXX26_CONSTEXPR
│ │ │ │ -
1238 inline _ForwardIterator
│ │ │ │ -
│ │ │ │ -
1239 uninitialized_move(_InputIterator __first, _InputIterator __last,
│ │ │ │ -
1240 _ForwardIterator __result)
│ │ │ │ -
1241 {
│ │ │ │ - │ │ │ │ -
1243 (_GLIBCXX_MAKE_MOVE_ITERATOR(__first),
│ │ │ │ -
1244 _GLIBCXX_MAKE_MOVE_ITERATOR(__last), __result);
│ │ │ │ -
1245 }
│ │ │ │ -
│ │ │ │ -
1246
│ │ │ │ -
1247 /**
│ │ │ │ -
1248 * @brief Move-construct from the range [first,first+count) into result.
│ │ │ │ -
1249 * @param __first An input iterator.
│ │ │ │ -
1250 * @param __count The number of objects to initialize.
│ │ │ │ -
1251 * @param __result An output iterator.
│ │ │ │ -
1252 * @return __result + __count
│ │ │ │ -
1253 * @since C++17
│ │ │ │ -
1254 */
│ │ │ │ -
1255 template <typename _InputIterator, typename _Size, typename _ForwardIterator>
│ │ │ │ -
1256 _GLIBCXX26_CONSTEXPR
│ │ │ │ -
1257 inline pair<_InputIterator, _ForwardIterator>
│ │ │ │ -
│ │ │ │ -
1258 uninitialized_move_n(_InputIterator __first, _Size __count,
│ │ │ │ -
1259 _ForwardIterator __result)
│ │ │ │ -
1260 {
│ │ │ │ -
1261 auto __res = std::__uninitialized_copy_n_pair
│ │ │ │ -
1262 (_GLIBCXX_MAKE_MOVE_ITERATOR(__first),
│ │ │ │ -
1263 __count, __result);
│ │ │ │ -
1264 return {__res.first.base(), __res.second};
│ │ │ │ -
1265 }
│ │ │ │ -
│ │ │ │ -
1266#endif // __glibcxx_raw_memory_algorithms
│ │ │ │ -
1267
│ │ │ │ -
1268#if __cplusplus >= 201103L
│ │ │ │ -
1269 /// @cond undocumented
│ │ │ │ -
1270
│ │ │ │ -
1271 template<typename _Tp, typename _Up, typename _Allocator>
│ │ │ │ -
1272 _GLIBCXX20_CONSTEXPR
│ │ │ │ -
1273 inline void
│ │ │ │ -
1274 __relocate_object_a(_Tp* __restrict __dest, _Up* __restrict __orig,
│ │ │ │ -
1275 _Allocator& __alloc)
│ │ │ │ -
1276 noexcept(noexcept(std::allocator_traits<_Allocator>::construct(__alloc,
│ │ │ │ -
1277 __dest, std::move(*__orig)))
│ │ │ │ - │ │ │ │ -
1279 __alloc, std::__addressof(*__orig))))
│ │ │ │ -
1280 {
│ │ │ │ -
1281 typedef std::allocator_traits<_Allocator> __traits;
│ │ │ │ -
1282 __traits::construct(__alloc, __dest, std::move(*__orig));
│ │ │ │ -
1283 __traits::destroy(__alloc, std::__addressof(*__orig));
│ │ │ │ -
1284 }
│ │ │ │ -
1285
│ │ │ │ -
1286 // This class may be specialized for specific types.
│ │ │ │ -
1287 // Also known as is_trivially_relocatable.
│ │ │ │ -
1288 template<typename _Tp, typename = void>
│ │ │ │ -
1289 struct __is_bitwise_relocatable
│ │ │ │ -
1290 : __bool_constant<__is_trivial(_Tp)>
│ │ │ │ -
1291 { };
│ │ │ │ -
1292
│ │ │ │ -
1293 template <typename _InputIterator, typename _ForwardIterator,
│ │ │ │ -
1294 typename _Allocator>
│ │ │ │ -
1295 _GLIBCXX20_CONSTEXPR
│ │ │ │ -
1296 inline _ForwardIterator
│ │ │ │ -
1297 __relocate_a_1(_InputIterator __first, _InputIterator __last,
│ │ │ │ -
1298 _ForwardIterator __result, _Allocator& __alloc)
│ │ │ │ -
1299 noexcept(noexcept(std::__relocate_object_a(std::addressof(*__result),
│ │ │ │ -
1300 std::addressof(*__first),
│ │ │ │ -
1301 __alloc)))
│ │ │ │ -
1302 {
│ │ │ │ -
1303 typedef typename iterator_traits<_InputIterator>::value_type
│ │ │ │ -
1304 _ValueType;
│ │ │ │ -
1305 typedef typename iterator_traits<_ForwardIterator>::value_type
│ │ │ │ -
1306 _ValueType2;
│ │ │ │ - │ │ │ │ -
1308 "relocation is only possible for values of the same type");
│ │ │ │ -
1309 _ForwardIterator __cur = __result;
│ │ │ │ -
1310 for (; __first != __last; ++__first, (void)++__cur)
│ │ │ │ -
1311 std::__relocate_object_a(std::__addressof(*__cur),
│ │ │ │ -
1312 std::__addressof(*__first), __alloc);
│ │ │ │ -
1313 return __cur;
│ │ │ │ -
1314 }
│ │ │ │ -
1315
│ │ │ │ -
1316#if _GLIBCXX_HOSTED
│ │ │ │ -
1317 template <typename _Tp, typename _Up>
│ │ │ │ -
1318 _GLIBCXX20_CONSTEXPR
│ │ │ │ -
1319 inline __enable_if_t<std::__is_bitwise_relocatable<_Tp>::value, _Tp*>
│ │ │ │ -
1320 __relocate_a_1(_Tp* __first, _Tp* __last,
│ │ │ │ -
1321 _Tp* __result,
│ │ │ │ -
1322 [[__maybe_unused__]] allocator<_Up>& __alloc) noexcept
│ │ │ │ -
1323 {
│ │ │ │ -
1324 ptrdiff_t __count = __last - __first;
│ │ │ │ -
1325 if (__count > 0)
│ │ │ │ -
1326 {
│ │ │ │ -
1327#ifdef __cpp_lib_is_constant_evaluated
│ │ │ │ -
1328 if (std::is_constant_evaluated())
│ │ │ │ -
1329 {
│ │ │ │ -
1330 // Can't use memcpy. Wrap the pointer so that __relocate_a_1
│ │ │ │ -
1331 // resolves to the non-trivial overload above.
│ │ │ │ -
1332 __gnu_cxx::__normal_iterator<_Tp*, void> __out(__result);
│ │ │ │ -
1333 __out = std::__relocate_a_1(__first, __last, __out, __alloc);
│ │ │ │ -
1334 return __out.base();
│ │ │ │ -
1335 }
│ │ │ │ -
1336#endif
│ │ │ │ -
1337 __builtin_memcpy(__result, __first, __count * sizeof(_Tp));
│ │ │ │ -
1338 }
│ │ │ │ -
1339 return __result + __count;
│ │ │ │ -
1340 }
│ │ │ │ -
1341#endif
│ │ │ │ -
1342
│ │ │ │ -
1343 template <typename _InputIterator, typename _ForwardIterator,
│ │ │ │ -
1344 typename _Allocator>
│ │ │ │ -
1345 _GLIBCXX20_CONSTEXPR
│ │ │ │ -
1346 inline _ForwardIterator
│ │ │ │ -
1347 __relocate_a(_InputIterator __first, _InputIterator __last,
│ │ │ │ -
1348 _ForwardIterator __result, _Allocator& __alloc)
│ │ │ │ -
1349 noexcept(noexcept(__relocate_a_1(std::__niter_base(__first),
│ │ │ │ -
1350 std::__niter_base(__last),
│ │ │ │ -
1351 std::__niter_base(__result), __alloc)))
│ │ │ │ -
1352 {
│ │ │ │ -
1353 return std::__relocate_a_1(std::__niter_base(__first),
│ │ │ │ -
1354 std::__niter_base(__last),
│ │ │ │ -
1355 std::__niter_base(__result), __alloc);
│ │ │ │ -
1356 }
│ │ │ │ -
1357
│ │ │ │ -
1358 /// @endcond
│ │ │ │ -
1359#endif // C++11
│ │ │ │ -
1360
│ │ │ │ -
1361 /// @} group memory
│ │ │ │ -
1362
│ │ │ │ -
1363_GLIBCXX_END_NAMESPACE_VERSION
│ │ │ │ -
1364} // namespace
│ │ │ │ -
1365
│ │ │ │ -
1366#endif /* _STL_UNINITIALIZED_H */
│ │ │ │ - │ │ │ │ - │ │ │ │ - │ │ │ │ - │ │ │ │ - │ │ │ │ - │ │ │ │ -
_GLIBCXX26_CONSTEXPR void uninitialized_fill(_ForwardIterator __first, _ForwardIterator __last, const _Tp &__x)
Copies the value x into the range [first,last).
│ │ │ │ -
_GLIBCXX26_CONSTEXPR _ForwardIterator uninitialized_copy_n(_InputIterator __first, _Size __n, _ForwardIterator __result)
Copies the range [first,first+n) into result.
│ │ │ │ -
_GLIBCXX26_CONSTEXPR void uninitialized_value_construct(_ForwardIterator __first, _ForwardIterator __last)
Value-initializes objects in the range [first,last).
│ │ │ │ -
_GLIBCXX26_CONSTEXPR void uninitialized_default_construct(_ForwardIterator __first, _ForwardIterator __last)
Default-initializes objects in the range [first,last).
│ │ │ │ -
_GLIBCXX26_CONSTEXPR _ForwardIterator uninitialized_fill_n(_ForwardIterator __first, _Size __n, const _Tp &__x)
Copies the value x into the range [first,first+n).
│ │ │ │ -
_GLIBCXX26_CONSTEXPR _ForwardIterator uninitialized_copy(_InputIterator __first, _InputIterator __last, _ForwardIterator __result)
Copies the range [first,last) into result.
│ │ │ │ -
_GLIBCXX26_CONSTEXPR _ForwardIterator uninitialized_move(_InputIterator __first, _InputIterator __last, _ForwardIterator __result)
Move-construct from the range [first,last) into result.
│ │ │ │ -
_GLIBCXX26_CONSTEXPR _ForwardIterator uninitialized_value_construct_n(_ForwardIterator __first, _Size __count)
Value-initializes objects in the range [first,first+count).
│ │ │ │ -
_GLIBCXX26_CONSTEXPR pair< _InputIterator, _ForwardIterator > uninitialized_move_n(_InputIterator __first, _Size __count, _ForwardIterator __result)
Move-construct from the range [first,first+count) into result.
│ │ │ │ -
_GLIBCXX26_CONSTEXPR _ForwardIterator uninitialized_default_construct_n(_ForwardIterator __first, _Size __count)
Default-initializes objects in the range [first,first+count).
│ │ │ │ -
constexpr _Tp * to_address(_Tp *__ptr) noexcept
Obtain address referenced by a pointer to an object.
Definition ptr_traits.h:232
│ │ │ │ -
typename remove_pointer< _Tp >::type remove_pointer_t
Alias template for remove_pointer.
Definition type_traits:2249
│ │ │ │ -
constexpr _Tp * addressof(_Tp &__r) noexcept
Returns the actual address of the object or function referenced by r, even in the presence of an over...
Definition move.h:176
│ │ │ │ -
constexpr std::remove_reference< _Tp >::type && move(_Tp &&__t) noexcept
Convert a value to an rvalue.
Definition move.h:138
│ │ │ │ -
constexpr _Tp * __addressof(_Tp &__r) noexcept
Same as C++11 std::addressof.
Definition move.h:52
│ │ │ │ -
constexpr iterator_traits< _Iter >::iterator_category __iterator_category(const _Iter &)
│ │ │ │ +
355 return {
│ │ │ │ +
356 allocator_arg, *__ua._M_a, std::get<_Ind>(std::move(__t))...
│ │ │ │ +
357 };
│ │ │ │ +
358 }
│ │ │ │ +
359
│ │ │ │ +
360 template<size_t... _Ind, typename... _Args>
│ │ │ │ +
361 static tuple<_Args&&..., polymorphic_allocator>
│ │ │ │ +
362 _S_construct_p(__uses_alloc2_ __ua, index_sequence<_Ind...>,
│ │ │ │ +
363 tuple<_Args...>& __t)
│ │ │ │ +
364 { return { std::get<_Ind>(std::move(__t))..., *__ua._M_a }; }
│ │ │ │ +
365#endif
│ │ │ │ +
366
│ │ │ │ +
367 memory_resource* _M_resource;
│ │ │ │ +
368 };
│ │ │ │ +
│ │ │ │ +
369
│ │ │ │ +
370 template<typename _Tp1, typename _Tp2>
│ │ │ │ +
371 [[nodiscard]]
│ │ │ │ +
372 inline bool
│ │ │ │ +
373 operator==(const polymorphic_allocator<_Tp1>& __a,
│ │ │ │ +
374 const polymorphic_allocator<_Tp2>& __b) noexcept
│ │ │ │ +
375 { return *__a.resource() == *__b.resource(); }
│ │ │ │ +
376
│ │ │ │ +
377#if __cpp_impl_three_way_comparison < 201907L
│ │ │ │ +
378 template<typename _Tp1, typename _Tp2>
│ │ │ │ +
379 [[nodiscard]]
│ │ │ │ +
380 inline bool
│ │ │ │ +
381 operator!=(const polymorphic_allocator<_Tp1>& __a,
│ │ │ │ +
382 const polymorphic_allocator<_Tp2>& __b) noexcept
│ │ │ │ +
383 { return !(__a == __b); }
│ │ │ │ +
384#endif
│ │ │ │ +
385
│ │ │ │ +
386} // namespace pmr
│ │ │ │ +
387
│ │ │ │ +
388 template<typename _Alloc> struct allocator_traits;
│ │ │ │ +
389
│ │ │ │ +
390 /// Partial specialization for `std::pmr::polymorphic_allocator`
│ │ │ │ +
391 /**
│ │ │ │ +
392 * @ingroup pmr
│ │ │ │ +
393 * @headerfile memory_resource
│ │ │ │ +
394 * @since C++17
│ │ │ │ +
395 */
│ │ │ │ +
396 template<typename _Tp>
│ │ │ │ +
│ │ │ │ +
397 struct allocator_traits<pmr::polymorphic_allocator<_Tp>>
│ │ │ │ +
398 {
│ │ │ │ +
399 /// The allocator type
│ │ │ │ + │ │ │ │ +
401
│ │ │ │ +
402 /// The allocated type
│ │ │ │ +
403 using value_type = _Tp;
│ │ │ │ +
404
│ │ │ │ +
405 /// The allocator's pointer type.
│ │ │ │ +
406 using pointer = _Tp*;
│ │ │ │ +
407
│ │ │ │ +
408 /// The allocator's const pointer type.
│ │ │ │ +
409 using const_pointer = const _Tp*;
│ │ │ │ +
410
│ │ │ │ +
411 /// The allocator's void pointer type.
│ │ │ │ +
412 using void_pointer = void*;
│ │ │ │ +
413
│ │ │ │ +
414 /// The allocator's const void pointer type.
│ │ │ │ +
415 using const_void_pointer = const void*;
│ │ │ │ +
416
│ │ │ │ +
417 /// The allocator's difference type
│ │ │ │ +
418 using difference_type = std::ptrdiff_t;
│ │ │ │ +
419
│ │ │ │ +
420 /// The allocator's size type
│ │ │ │ +
421 using size_type = std::size_t;
│ │ │ │ +
422
│ │ │ │ +
423 /** @{
│ │ │ │ +
424 * A `polymorphic_allocator` does not propagate when a
│ │ │ │ +
425 * container is copied, moved, or swapped.
│ │ │ │ +
426 */
│ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ +
430
│ │ │ │ +
431 static allocator_type
│ │ │ │ +
│ │ │ │ + │ │ │ │ +
433 { return allocator_type(); }
│ │ │ │ +
│ │ │ │ +
434 /// @}
│ │ │ │ +
435
│ │ │ │ +
436 /// Whether all instances of the allocator type compare equal.
│ │ │ │ + │ │ │ │ +
438
│ │ │ │ +
439 template<typename _Up>
│ │ │ │ + │ │ │ │ +
441
│ │ │ │ +
442 template<typename _Up>
│ │ │ │ + │ │ │ │ +
444
│ │ │ │ +
445 /**
│ │ │ │ +
446 * @brief Allocate memory.
│ │ │ │ +
447 * @param __a An allocator.
│ │ │ │ +
448 * @param __n The number of objects to allocate space for.
│ │ │ │ +
449 *
│ │ │ │ +
450 * Calls `a.allocate(n)`.
│ │ │ │ +
451 */
│ │ │ │ +
452 [[nodiscard]] static pointer
│ │ │ │ +
│ │ │ │ + │ │ │ │ +
454 { return __a.allocate(__n); }
│ │ │ │ +
│ │ │ │ +
455
│ │ │ │ +
456 /**
│ │ │ │ +
457 * @brief Allocate memory.
│ │ │ │ +
458 * @param __a An allocator.
│ │ │ │ +
459 * @param __n The number of objects to allocate space for.
│ │ │ │ +
460 * @return Memory of suitable size and alignment for `n` objects
│ │ │ │ +
461 * of type `value_type`.
│ │ │ │ +
462 *
│ │ │ │ +
463 * The third parameter is ignored..
│ │ │ │ +
464 *
│ │ │ │ +
465 * Returns `a.allocate(n)`.
│ │ │ │ +
466 */
│ │ │ │ +
467 [[nodiscard]] static pointer
│ │ │ │ +
│ │ │ │ + │ │ │ │ +
469 { return __a.allocate(__n); }
│ │ │ │ +
│ │ │ │ +
470
│ │ │ │ +
471 /**
│ │ │ │ +
472 * @brief Deallocate memory.
│ │ │ │ +
473 * @param __a An allocator.
│ │ │ │ +
474 * @param __p Pointer to the memory to deallocate.
│ │ │ │ +
475 * @param __n The number of objects space was allocated for.
│ │ │ │ +
476 *
│ │ │ │ +
477 * Calls `a.deallocate(p, n)`.
│ │ │ │ +
478 */
│ │ │ │ +
479 static void
│ │ │ │ +
│ │ │ │ + │ │ │ │ +
481 { __a.deallocate(__p, __n); }
│ │ │ │ +
│ │ │ │ +
482
│ │ │ │ +
483 /**
│ │ │ │ +
484 * @brief Construct an object of type `_Up`
│ │ │ │ +
485 * @param __a An allocator.
│ │ │ │ +
486 * @param __p Pointer to memory of suitable size and alignment for
│ │ │ │ +
487 * an object of type `_Up`.
│ │ │ │ +
488 * @param __args Constructor arguments.
│ │ │ │ +
489 *
│ │ │ │ +
490 * Calls `__a.construct(__p, std::forward<_Args>(__args)...)`
│ │ │ │ +
491 * in C++11, C++14 and C++17. Changed in C++20 to call
│ │ │ │ +
492 * `std::construct_at(__p, std::forward<_Args>(__args)...)` instead.
│ │ │ │ +
493 */
│ │ │ │ +
494 template<typename _Up, typename... _Args>
│ │ │ │ +
495 static void
│ │ │ │ +
│ │ │ │ +
496 construct(allocator_type& __a, _Up* __p, _Args&&... __args)
│ │ │ │ +
497 { __a.construct(__p, std::forward<_Args>(__args)...); }
│ │ │ │ +
│ │ │ │ +
498
│ │ │ │ +
499 /**
│ │ │ │ +
500 * @brief Destroy an object of type `_Up`
│ │ │ │ +
501 * @param __a An allocator.
│ │ │ │ +
502 * @param __p Pointer to the object to destroy
│ │ │ │ +
503 *
│ │ │ │ +
504 * Calls `p->_Up()`.
│ │ │ │ +
505 */
│ │ │ │ +
506 template<typename _Up>
│ │ │ │ +
507 static _GLIBCXX20_CONSTEXPR void
│ │ │ │ +
│ │ │ │ + │ │ │ │ + │ │ │ │ +
510 { __p->~_Up(); }
│ │ │ │ +
│ │ │ │ +
511
│ │ │ │ +
512 /**
│ │ │ │ +
513 * @brief The maximum supported allocation size
│ │ │ │ +
514 * @return `numeric_limits<size_t>::max() / sizeof(value_type)`
│ │ │ │ +
515 */
│ │ │ │ +
516 static _GLIBCXX20_CONSTEXPR size_type
│ │ │ │ +
│ │ │ │ +
517 max_size(const allocator_type&) noexcept
│ │ │ │ +
518 { return size_t(-1) / sizeof(value_type); }
│ │ │ │ +
│ │ │ │ +
519 };
│ │ │ │ +
│ │ │ │ +
520
│ │ │ │ +
521_GLIBCXX_END_NAMESPACE_VERSION
│ │ │ │ +
522} // namespace std
│ │ │ │ +
523
│ │ │ │ +
524#endif // C++17
│ │ │ │ +
525#endif // _GLIBCXX_MEMORY_RESOURCE_H
│ │ │ │ + │ │ │ │ +
memory_resource * get_default_resource() noexcept
Get the current default memory resource pointer.
│ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ +
__bool_constant< false > false_type
The type used as a compile-time boolean with false value.
Definition type_traits:119
│ │ │ │ +
constexpr tuple< _Elements &&... > forward_as_tuple(_Elements &&... __args) noexcept
Create a tuple of lvalue or rvalue references to the arguments.
Definition tuple:2680
│ │ │ │ +
constexpr std::remove_reference< _Tp >::type && move(_Tp &&__t) noexcept
Convert a value to an rvalue.
Definition move.h:138
│ │ │ │ +
constexpr piecewise_construct_t piecewise_construct
Tag for piecewise construction of std::pair objects.
Definition stl_pair.h:82
│ │ │ │
ISO C++ entities toplevel namespace is std.
│ │ │ │ -
constexpr iterator_traits< _InputIterator >::difference_type distance(_InputIterator __first, _InputIterator __last)
A generalization of pointer arithmetic.
│ │ │ │ -
constexpr void _Construct(_Tp *__p, _Args &&... __args)
│ │ │ │ -
constexpr void advance(_InputIterator &__i, _Distance __n)
A generalization of pointer arithmetic.
│ │ │ │ -
constexpr void _Destroy(_ForwardIterator __first, _ForwardIterator __last)
│ │ │ │ -
is_integral
Definition type_traits:468
│ │ │ │ -
is_pointer
Definition type_traits:559
│ │ │ │ - │ │ │ │ +
integer_sequence< size_t, _Idx... > index_sequence
Alias template index_sequence.
Definition utility.h:184
│ │ │ │ +
make_index_sequence< sizeof...(_Types)> index_sequence_for
Alias template index_sequence_for.
Definition utility.h:192
│ │ │ │ +
__numeric_traits_integer< _Tp > __int_traits
Convenience alias for __numeric_traits<integer-type>.
│ │ │ │ +
Primary class template, tuple.
Definition tuple:834
│ │ │ │ +
is_nothrow_destructible
Definition type_traits:1143
│ │ │ │
Uniform interface to all allocator types.
│ │ │ │ -
static constexpr void construct(_Alloc &__a, _Tp *__p, _Args &&... __args) noexcept(_S_nothrow_construct< _Tp, _Args... >())
Construct an object of type _Tp
│ │ │ │ -
Traits class for iterators.
│ │ │ │ -
Uniform interface to C++98 and C++11 allocators.
│ │ │ │ - │ │ │ │ - │ │ │ │ +
__detected_or_t< value_type *, __pointer, _Alloc > pointer
The allocator's pointer type.
│ │ │ │ +
typename _Size< _Alloc, difference_type >::type size_type
The allocator's size type.
│ │ │ │ +
_Alloc::value_type value_type
The allocated type.
│ │ │ │ +
_Alloc allocator_type
The allocator type.
│ │ │ │ +
Class memory_resource
│ │ │ │ +
Class template polymorphic_allocator.
│ │ │ │ +
static void construct(allocator_type &__a, _Up *__p, _Args &&... __args)
Construct an object of type _Up
│ │ │ │ +
std::ptrdiff_t difference_type
The allocator's difference type.
│ │ │ │ +
static void deallocate(allocator_type &__a, pointer __p, size_type __n)
Deallocate memory.
│ │ │ │ + │ │ │ │ +
static constexpr void destroy(allocator_type &, _Up *__p) noexcept(is_nothrow_destructible< _Up >::value)
Destroy an object of type _Up
│ │ │ │ +
static constexpr size_type max_size(const allocator_type &) noexcept
The maximum supported allocation size.
│ │ │ │ +
static pointer allocate(allocator_type &__a, size_type __n)
Allocate memory.
│ │ │ │ + │ │ │ │ + │ │ │ │ +
const _Tp * const_pointer
The allocator's const pointer type.
│ │ │ │ + │ │ │ │ +
static pointer allocate(allocator_type &__a, size_type __n, const_void_pointer)
Allocate memory.
│ │ │ │ +
const void * const_void_pointer
The allocator's const void pointer type.
│ │ │ │ + │ │ │ │ +
static allocator_type select_on_container_copy_construction(const allocator_type &) noexcept
│ │ │ │ +
void * void_pointer
The allocator's void pointer type.
│ │ │ │ +
false_type is_always_equal
Whether all instances of the allocator type compare equal.
│ │ │ │ + │ │ │ │ +
Struct holding two objects of arbitrary type.
Definition stl_pair.h:304
│ │ │ │ +
_T1 first
The first member.
Definition stl_pair.h:308
│ │ │ │ +
_T2 second
The second member.
Definition stl_pair.h:309
│ │ │ │ +
Tag type for piecewise construction of std::pair objects.
Definition stl_pair.h:79
│ │ │ │ + │ │ │ │
│ │ │ │
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├── html2text {} │ │ │ │ │ @@ -1,13 +1,13 @@ │ │ │ │ │ libstdc++ │ │ │ │ │ -stl_uninitialized.h │ │ │ │ │ +memory_resource.h │ │ │ │ │ _G_o_ _t_o_ _t_h_e_ _d_o_c_u_m_e_n_t_a_t_i_o_n_ _o_f_ _t_h_i_s_ _f_i_l_e_. │ │ │ │ │ -1// Raw memory manipulators -*- C++ -*- │ │ │ │ │ +1// -*- C++ -*- │ │ │ │ │ 2 │ │ │ │ │ -3// Copyright (C) 2001-2025 Free Software Foundation, Inc. │ │ │ │ │ +3// Copyright (C) 2018-2025 Free Software Foundation, Inc. │ │ │ │ │ 4// │ │ │ │ │ 5// This file is part of the GNU ISO C++ Library. This library is free │ │ │ │ │ 6// software; you can redistribute it and/or modify it under the │ │ │ │ │ 7// terms of the GNU General Public License as published by the │ │ │ │ │ 8// Free Software Foundation; either version 3, or (at your option) │ │ │ │ │ 9// any later version. │ │ │ │ │ 10 │ │ │ │ │ @@ -21,1480 +21,671 @@ │ │ │ │ │ 18// 3.1, as published by the Free Software Foundation. │ │ │ │ │ 19 │ │ │ │ │ 20// You should have received a copy of the GNU General Public License and │ │ │ │ │ 21// a copy of the GCC Runtime Library Exception along with this program; │ │ │ │ │ 22// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see │ │ │ │ │ 23// . │ │ │ │ │ 24 │ │ │ │ │ -25/* │ │ │ │ │ -26 * │ │ │ │ │ -27 * Copyright (c) 1994 │ │ │ │ │ -28 * Hewlett-Packard Company │ │ │ │ │ -29 * │ │ │ │ │ -30 * Permission to use, copy, modify, distribute and sell this software │ │ │ │ │ -31 * and its documentation for any purpose is hereby granted without fee, │ │ │ │ │ -32 * provided that the above copyright notice appear in all copies and │ │ │ │ │ -33 * that both that copyright notice and this permission notice appear │ │ │ │ │ -34 * in supporting documentation. Hewlett-Packard Company makes no │ │ │ │ │ -35 * representations about the suitability of this software for any │ │ │ │ │ -36 * purpose. It is provided "as is" without express or implied warranty. │ │ │ │ │ -37 * │ │ │ │ │ -38 * │ │ │ │ │ -39 * Copyright (c) 1996,1997 │ │ │ │ │ -40 * Silicon Graphics Computer Systems, Inc. │ │ │ │ │ -41 * │ │ │ │ │ -42 * Permission to use, copy, modify, distribute and sell this software │ │ │ │ │ -43 * and its documentation for any purpose is hereby granted without fee, │ │ │ │ │ -44 * provided that the above copyright notice appear in all copies and │ │ │ │ │ -45 * that both that copyright notice and this permission notice appear │ │ │ │ │ -46 * in supporting documentation. Silicon Graphics makes no │ │ │ │ │ -47 * representations about the suitability of this software for any │ │ │ │ │ -48 * purpose. It is provided "as is" without express or implied warranty. │ │ │ │ │ -49 */ │ │ │ │ │ -50 │ │ │ │ │ -51/** @file bits/stl_uninitialized.h │ │ │ │ │ -52 * This is an internal header file, included by other library headers. │ │ │ │ │ -53 * Do not attempt to use it directly. @headername{memory} │ │ │ │ │ -54 */ │ │ │ │ │ -55 │ │ │ │ │ -56#ifndef _STL_UNINITIALIZED_H │ │ │ │ │ -57#define _STL_UNINITIALIZED_H 1 │ │ │ │ │ -58 │ │ │ │ │ -59#if __cplusplus >= 201103L │ │ │ │ │ -60# include <_t_y_p_e___t_r_a_i_t_s> │ │ │ │ │ -61# include <_b_i_t_s_/_p_t_r___t_r_a_i_t_s_._h> // to_address │ │ │ │ │ -62# include <_b_i_t_s_/_s_t_l___p_a_i_r_._h> // pair │ │ │ │ │ -63# include <_b_i_t_s_/_s_t_l___a_l_g_o_b_a_s_e_._h> // fill, fill_n │ │ │ │ │ -64#endif │ │ │ │ │ -65 │ │ │ │ │ -66#include <_b_i_t_s_/_c_p_p___t_y_p_e___t_r_a_i_t_s_._h> // __is_pointer │ │ │ │ │ -67#include <_b_i_t_s_/_s_t_l___i_t_e_r_a_t_o_r___b_a_s_e___f_u_n_c_s_._h> // distance, advance │ │ │ │ │ -68#include <_b_i_t_s_/_s_t_l___i_t_e_r_a_t_o_r_._h> // __niter_base │ │ │ │ │ -69#include <_e_x_t_/_a_l_l_o_c___t_r_a_i_t_s_._h> // __alloc_traits │ │ │ │ │ -70 │ │ │ │ │ -71namespace _s_t_d _GLIBCXX_VISIBILITY(default) │ │ │ │ │ -72{ │ │ │ │ │ -73_GLIBCXX_BEGIN_NAMESPACE_VERSION │ │ │ │ │ -74 │ │ │ │ │ -75 /** @addtogroup memory │ │ │ │ │ -76 * @{ │ │ │ │ │ -77 */ │ │ │ │ │ -78 │ │ │ │ │ -79 /// @cond undocumented │ │ │ │ │ -80 │ │ │ │ │ -81 template │ │ │ │ │ -82 struct _UninitDestroyGuard │ │ │ │ │ -83 { │ │ │ │ │ -84 _GLIBCXX20_CONSTEXPR │ │ │ │ │ -85 explicit │ │ │ │ │ -86 _UninitDestroyGuard(_ForwardIterator& __first, _Alloc& __a) │ │ │ │ │ -87 : _M_first(__first), _M_cur(__builtin_addressof(__first)), _M_alloc(__a) │ │ │ │ │ -88 { } │ │ │ │ │ +25/** @file include/bits/memory_resource.h │ │ │ │ │ +26 * This is an internal header file, included by other library headers. │ │ │ │ │ +27 * Do not attempt to use it directly. @headername{memory_resource} │ │ │ │ │ +28 */ │ │ │ │ │ +29 │ │ │ │ │ +30#ifndef _GLIBCXX_MEMORY_RESOURCE_H │ │ │ │ │ +31#define _GLIBCXX_MEMORY_RESOURCE_H 1 │ │ │ │ │ +32 │ │ │ │ │ +33#ifdef _GLIBCXX_SYSHDR │ │ │ │ │ +34#pragma GCC system_header │ │ │ │ │ +35#endif │ │ │ │ │ +36 │ │ │ │ │ +37#if __cplusplus >= 201703L │ │ │ │ │ +38 │ │ │ │ │ +39#include <_n_e_w> // operator new(size_t, void*) │ │ │ │ │ +40#include <_c_s_t_d_d_e_f> // size_t, max_align_t, byte │ │ │ │ │ +41#include <_b_i_t_s_/_f_u_n_c_t_e_x_c_e_p_t_._h> // __throw_bad_array_new_length │ │ │ │ │ +42#include // allocator_arg_t, __use_alloc │ │ │ │ │ +43#include <_b_i_t_s_/_u_s_e_s___a_l_l_o_c_a_t_o_r___a_r_g_s_._h> // uninitialized_construct_using_alloc │ │ │ │ │ +44#include <_e_x_t_/_n_u_m_e_r_i_c___t_r_a_i_t_s_._h> // __int_traits │ │ │ │ │ +45#include <_d_e_b_u_g_/_a_s_s_e_r_t_i_o_n_s_._h> │ │ │ │ │ +46 │ │ │ │ │ +47#if ! __glibcxx_make_obj_using_allocator │ │ │ │ │ +48# include <_b_i_t_s_/_u_t_i_l_i_t_y_._h> // index_sequence │ │ │ │ │ +49# include // tuple, forward_as_tuple │ │ │ │ │ +50#endif │ │ │ │ │ +51 │ │ │ │ │ +52namespace _s_t_d _GLIBCXX_VISIBILITY(default) │ │ │ │ │ +53{ │ │ │ │ │ +54_GLIBCXX_BEGIN_NAMESPACE_VERSION │ │ │ │ │ +55namespace pmr │ │ │ │ │ +56{ │ │ │ │ │ +57 /// Class `memory_resource` │ │ │ │ │ +58 /** │ │ │ │ │ +59 * @ingroup pmr │ │ │ │ │ +60 * @headerfile memory_resource │ │ │ │ │ +61 * @since C++17 │ │ │ │ │ +62 */ │ │ │ │ │ +_6_3 class _m_e_m_o_r_y___r_e_s_o_u_r_c_e │ │ │ │ │ +64 { │ │ │ │ │ +65 static constexpr size_t _S_max_align = alignof(max_align_t); │ │ │ │ │ +66 │ │ │ │ │ +67 public: │ │ │ │ │ +68 _m_e_m_o_r_y___r_e_s_o_u_r_c_e() = default; │ │ │ │ │ +69 _m_e_m_o_r_y___r_e_s_o_u_r_c_e(const _m_e_m_o_r_y___r_e_s_o_u_r_c_e&) = default; │ │ │ │ │ +70 virtual _~_m_e_m_o_r_y___r_e_s_o_u_r_c_e(); // key function │ │ │ │ │ +71 │ │ │ │ │ +72 _m_e_m_o_r_y___r_e_s_o_u_r_c_e& operator=(const _m_e_m_o_r_y___r_e_s_o_u_r_c_e&) = default; │ │ │ │ │ +73 │ │ │ │ │ +74 [[nodiscard]] │ │ │ │ │ +75 void* │ │ │ │ │ +76 allocate(size_t __bytes, size_t __alignment = _S_max_align) │ │ │ │ │ +77 __attribute__((__returns_nonnull__,__alloc_size__(2),__alloc_align__(3))) │ │ │ │ │ +78 { return ::operator new(__bytes, do_allocate(__bytes, __alignment)); } │ │ │ │ │ +79 │ │ │ │ │ +80 void │ │ │ │ │ +81 deallocate(void* __p, size_t __bytes, size_t __alignment = _S_max_align) │ │ │ │ │ +82 __attribute__((__nonnull__)) │ │ │ │ │ +83 { return do_deallocate(__p, __bytes, __alignment); } │ │ │ │ │ +84 │ │ │ │ │ +85 [[nodiscard]] │ │ │ │ │ +86 bool │ │ │ │ │ +87 is_equal(const _m_e_m_o_r_y___r_e_s_o_u_r_c_e& __other) const noexcept │ │ │ │ │ +88 { return do_is_equal(__other); } │ │ │ │ │ 89 │ │ │ │ │ -90 _GLIBCXX20_CONSTEXPR │ │ │ │ │ -91 ~_UninitDestroyGuard() │ │ │ │ │ -92 { │ │ │ │ │ -93 if (__builtin_expect(_M_cur != 0, 0)) │ │ │ │ │ -94 _s_t_d_:_:___D_e_s_t_r_o_y(_M_first, *_M_cur, _M_alloc); │ │ │ │ │ -95 } │ │ │ │ │ +90 private: │ │ │ │ │ +91 virtual void* │ │ │ │ │ +92 do_allocate(size_t __bytes, size_t __alignment) = 0; │ │ │ │ │ +93 │ │ │ │ │ +94 virtual void │ │ │ │ │ +95 do_deallocate(void* __p, size_t __bytes, size_t __alignment) = 0; │ │ │ │ │ 96 │ │ │ │ │ -97 _GLIBCXX20_CONSTEXPR │ │ │ │ │ -98 void release() { _M_cur = 0; } │ │ │ │ │ -99 │ │ │ │ │ -100 private: │ │ │ │ │ -101 _ForwardIterator const _M_first; │ │ │ │ │ -102 _ForwardIterator* _M_cur; │ │ │ │ │ -103 _Alloc& _M_alloc; │ │ │ │ │ -104 │ │ │ │ │ -105 _UninitDestroyGuard(const _UninitDestroyGuard&); │ │ │ │ │ -106 }; │ │ │ │ │ -107 │ │ │ │ │ -108 template │ │ │ │ │ -109 struct _UninitDestroyGuard<_ForwardIterator, void> │ │ │ │ │ -110 { │ │ │ │ │ -111 _GLIBCXX20_CONSTEXPR │ │ │ │ │ -112 explicit │ │ │ │ │ -113 _UninitDestroyGuard(_ForwardIterator& __first) │ │ │ │ │ -114 : _M_first(__first), _M_cur(__builtin_addressof(__first)) │ │ │ │ │ -115 { } │ │ │ │ │ -116 │ │ │ │ │ -117 _GLIBCXX20_CONSTEXPR │ │ │ │ │ -118 ~_UninitDestroyGuard() │ │ │ │ │ -119 { │ │ │ │ │ -120 if (__builtin_expect(_M_cur != 0, 0)) │ │ │ │ │ -121 _s_t_d_:_:___D_e_s_t_r_o_y(_M_first, *_M_cur); │ │ │ │ │ -122 } │ │ │ │ │ -123 │ │ │ │ │ -124 _GLIBCXX20_CONSTEXPR │ │ │ │ │ -125 void release() { _M_cur = 0; } │ │ │ │ │ -126 │ │ │ │ │ -127 _ForwardIterator const _M_first; │ │ │ │ │ -128 _ForwardIterator* _M_cur; │ │ │ │ │ -129 │ │ │ │ │ -130 private: │ │ │ │ │ -131 _UninitDestroyGuard(const _UninitDestroyGuard&); │ │ │ │ │ -132 }; │ │ │ │ │ -133 │ │ │ │ │ -134 // This is the default implementation of std::uninitialized_copy. │ │ │ │ │ -135 // This can be used with C++20 iterators and non-common ranges. │ │ │ │ │ -136 template │ │ │ │ │ -138 _GLIBCXX20_CONSTEXPR │ │ │ │ │ -139 _ForwardIterator │ │ │ │ │ -140 __do_uninit_copy(_InputIterator __first, _Sentinel __last, │ │ │ │ │ -141 _ForwardIterator __result) │ │ │ │ │ -142 { │ │ │ │ │ -143 _UninitDestroyGuard<_ForwardIterator> __guard(__result); │ │ │ │ │ -144 for (; __first != __last; ++__first, (void)++__result) │ │ │ │ │ -145 _s_t_d_:_:___C_o_n_s_t_r_u_c_t(_s_t_d_:_:_____a_d_d_r_e_s_s_o_f(*__result), *__first); │ │ │ │ │ -146 __guard.release(); │ │ │ │ │ -147 return __result; │ │ │ │ │ -148 } │ │ │ │ │ -149 │ │ │ │ │ -150#if __cplusplus < 201103L │ │ │ │ │ -151 │ │ │ │ │ -152 // True if we can unwrap _Iter to get a pointer by using std::__niter_base. │ │ │ │ │ -153 template │ │ │ │ │ -155 struct __unwrappable_niter │ │ │ │ │ -156 { enum { __value = false }; }; │ │ │ │ │ -157 │ │ │ │ │ -158 template │ │ │ │ │ -159 struct __unwrappable_niter<_Iter, _Tp*> │ │ │ │ │ -160 { enum { __value = true }; }; │ │ │ │ │ -161 │ │ │ │ │ -162 // Use template specialization for C++98 when 'if constexpr' can't be used. │ │ │ │ │ -163 template │ │ │ │ │ -164 struct __uninitialized_copy │ │ │ │ │ -165 { │ │ │ │ │ -166 template │ │ │ │ │ -167 static _ForwardIterator │ │ │ │ │ -168 __uninit_copy(_InputIterator __first, _InputIterator __last, │ │ │ │ │ -169 _ForwardIterator __result) │ │ │ │ │ -170 { return std::__do_uninit_copy(__first, __last, __result); } │ │ │ │ │ -171 }; │ │ │ │ │ +97 virtual bool │ │ │ │ │ +98 do_is_equal(const _m_e_m_o_r_y___r_e_s_o_u_r_c_e& __other) const noexcept = 0; │ │ │ │ │ +99 }; │ │ │ │ │ +100 │ │ │ │ │ +101 [[nodiscard]] │ │ │ │ │ +102 inline bool │ │ │ │ │ +103 operator==(const _m_e_m_o_r_y___r_e_s_o_u_r_c_e& __a, const _m_e_m_o_r_y___r_e_s_o_u_r_c_e& __b) noexcept │ │ │ │ │ +104 { return &__a == &__b || __a.is_equal(__b); } │ │ │ │ │ +105 │ │ │ │ │ +106#if __cpp_impl_three_way_comparison < 201907L │ │ │ │ │ +107 [[nodiscard]] │ │ │ │ │ +108 inline bool │ │ │ │ │ +109 operator!=(const memory_resource& __a, const memory_resource& __b) noexcept │ │ │ │ │ +110 { return !(__a == __b); } │ │ │ │ │ +111#endif │ │ │ │ │ +112 │ │ │ │ │ +113 // C++17 23.12.3 Class template polymorphic_allocator │ │ │ │ │ +114 │ │ │ │ │ +115 /// Class template polymorphic_allocator │ │ │ │ │ +116 /** │ │ │ │ │ +117 * @ingroup pmr │ │ │ │ │ +118 * @headerfile memory_resource │ │ │ │ │ +119 * @since C++17 │ │ │ │ │ +120 */ │ │ │ │ │ +121 template │ │ │ │ │ +_1_2_2 class _p_o_l_y_m_o_r_p_h_i_c___a_l_l_o_c_a_t_o_r │ │ │ │ │ +123 { │ │ │ │ │ +124 // _GLIBCXX_RESOLVE_LIB_DEFECTS │ │ │ │ │ +125 // 2975. Missing case for pair construction in polymorphic allocators │ │ │ │ │ +126 template │ │ │ │ │ +127 struct __not_pair { using type = void; }; │ │ │ │ │ +128 │ │ │ │ │ +129 template │ │ │ │ │ +130 struct __not_pair<_p_a_i_r<_Up1, _Up2>> { }; │ │ │ │ │ +131 │ │ │ │ │ +132 public: │ │ │ │ │ +133 using value_type = _Tp; │ │ │ │ │ +134 │ │ │ │ │ +135 _p_o_l_y_m_o_r_p_h_i_c___a_l_l_o_c_a_t_o_r() noexcept │ │ │ │ │ +136 { │ │ │ │ │ +137 extern _m_e_m_o_r_y___r_e_s_o_u_r_c_e* _g_e_t___d_e_f_a_u_l_t___r_e_s_o_u_r_c_e() noexcept │ │ │ │ │ +138 __attribute__((__returns_nonnull__)); │ │ │ │ │ +139 _M_resource = _g_e_t___d_e_f_a_u_l_t___r_e_s_o_u_r_c_e(); │ │ │ │ │ +140 } │ │ │ │ │ +141 │ │ │ │ │ +142 _p_o_l_y_m_o_r_p_h_i_c___a_l_l_o_c_a_t_o_r(_m_e_m_o_r_y___r_e_s_o_u_r_c_e* __r) noexcept │ │ │ │ │ +143 __attribute__((__nonnull__)) │ │ │ │ │ +144 : _M_resource(__r) │ │ │ │ │ +145 { _GLIBCXX_DEBUG_ASSERT(__r); } │ │ │ │ │ +146 │ │ │ │ │ +147 _p_o_l_y_m_o_r_p_h_i_c___a_l_l_o_c_a_t_o_r(const _p_o_l_y_m_o_r_p_h_i_c___a_l_l_o_c_a_t_o_r& __other) = default; │ │ │ │ │ +148 │ │ │ │ │ +149 template │ │ │ │ │ +150 _p_o_l_y_m_o_r_p_h_i_c___a_l_l_o_c_a_t_o_r(const _p_o_l_y_m_o_r_p_h_i_c___a_l_l_o_c_a_t_o_r_<___U_p_>& __x) noexcept │ │ │ │ │ +151 : _M_resource(__x.resource()) │ │ │ │ │ +152 { } │ │ │ │ │ +153 │ │ │ │ │ +154 _p_o_l_y_m_o_r_p_h_i_c___a_l_l_o_c_a_t_o_r& │ │ │ │ │ +155 operator=(const _p_o_l_y_m_o_r_p_h_i_c___a_l_l_o_c_a_t_o_r&) = delete; │ │ │ │ │ +156 │ │ │ │ │ +157 [[nodiscard]] │ │ │ │ │ +158 _Tp* │ │ │ │ │ +159 allocate(size_t __n) │ │ │ │ │ +160 __attribute__((__returns_nonnull__)) │ │ │ │ │ +161 { │ │ │ │ │ +162 if ((_____g_n_u___c_x_x_:_:_____i_n_t___t_r_a_i_t_s_<_s_i_z_e___t_>_:_:_____m_a_x / sizeof(_Tp)) < __n) │ │ │ │ │ +163 std::__throw_bad_array_new_length(); │ │ │ │ │ +164 return static_cast<_Tp*>(_M_resource->allocate(__n * sizeof(_Tp), │ │ │ │ │ +165 alignof(_Tp))); │ │ │ │ │ +166 } │ │ │ │ │ +167 │ │ │ │ │ +168 void │ │ │ │ │ +169 deallocate(_Tp* __p, size_t __n) noexcept │ │ │ │ │ +170 __attribute__((__nonnull__)) │ │ │ │ │ +171 { _M_resource->deallocate(__p, __n * sizeof(_Tp), alignof(_Tp)); } │ │ │ │ │ 172 │ │ │ │ │ -173 template<> │ │ │ │ │ -174 struct __uninitialized_copy │ │ │ │ │ -175 { │ │ │ │ │ -176 // Overload for generic iterators. │ │ │ │ │ -177 template │ │ │ │ │ -178 static _ForwardIterator │ │ │ │ │ -179 __uninit_copy(_InputIterator __first, _InputIterator __last, │ │ │ │ │ -180 _ForwardIterator __result) │ │ │ │ │ -181 { │ │ │ │ │ -182 if (__unwrappable_niter<_InputIterator>::__value │ │ │ │ │ -183 && __unwrappable_niter<_ForwardIterator>::__value) │ │ │ │ │ -184 { │ │ │ │ │ -185 __uninit_copy(std::__niter_base(__first), │ │ │ │ │ -186 std::__niter_base(__last), │ │ │ │ │ -187 std::__niter_base(__result)); │ │ │ │ │ -188 _s_t_d_:_:_a_d_v_a_n_c_e(__result, _s_t_d_:_:_d_i_s_t_a_n_c_e(__first, __last)); │ │ │ │ │ -189 return __result; │ │ │ │ │ -190 } │ │ │ │ │ -191 else │ │ │ │ │ -192 return std::__do_uninit_copy(__first, __last, __result); │ │ │ │ │ -193 } │ │ │ │ │ -194 │ │ │ │ │ -195 // Overload for pointers. │ │ │ │ │ -196 template │ │ │ │ │ -197 static _Up* │ │ │ │ │ -198 __uninit_copy(_Tp* __first, _Tp* __last, _Up* __result) │ │ │ │ │ -199 { │ │ │ │ │ -200 // Ensure that we don't successfully memcpy in cases that should be │ │ │ │ │ -201 // ill-formed because is_constructible<_Up, _Tp&> is false. │ │ │ │ │ -202 typedef __typeof__(static_cast<_Up>(*__first)) __check │ │ │ │ │ -203 __attribute__((__unused__)); │ │ │ │ │ -204 │ │ │ │ │ -205 const ptrdiff_t __n = __last - __first; │ │ │ │ │ -206 if (__builtin_expect(__n > 0, true)) │ │ │ │ │ -207 { │ │ │ │ │ -208 __builtin_memcpy(__result, __first, __n * sizeof(_Tp)); │ │ │ │ │ -209 __result += __n; │ │ │ │ │ -210 } │ │ │ │ │ -211 return __result; │ │ │ │ │ +173#ifdef __glibcxx_polymorphic_allocator // >= C++20 │ │ │ │ │ +174 [[nodiscard]] void* │ │ │ │ │ +175 allocate_bytes(size_t __nbytes, │ │ │ │ │ +176 size_t __alignment = alignof(max_align_t)) │ │ │ │ │ +177 { return _M_resource->allocate(__nbytes, __alignment); } │ │ │ │ │ +178 │ │ │ │ │ +179 void │ │ │ │ │ +180 deallocate_bytes(void* __p, size_t __nbytes, │ │ │ │ │ +181 size_t __alignment = alignof(max_align_t)) │ │ │ │ │ +182 { _M_resource->deallocate(__p, __nbytes, __alignment); } │ │ │ │ │ +183 │ │ │ │ │ +184 template │ │ │ │ │ +185 [[nodiscard]] _Up* │ │ │ │ │ +186 allocate_object(size_t __n = 1) │ │ │ │ │ +187 { │ │ │ │ │ +188 if ((_____g_n_u___c_x_x_:_:_____i_n_t___t_r_a_i_t_s_<_s_i_z_e___t_>_:_:_____m_a_x / sizeof(_Up)) < __n) │ │ │ │ │ +189 std::__throw_bad_array_new_length(); │ │ │ │ │ +190 return static_cast<_Up*>(allocate_bytes(__n * sizeof(_Up), │ │ │ │ │ +191 alignof(_Up))); │ │ │ │ │ +192 } │ │ │ │ │ +193 │ │ │ │ │ +194 template │ │ │ │ │ +195 void │ │ │ │ │ +196 deallocate_object(_Up* __p, size_t __n = 1) │ │ │ │ │ +197 { deallocate_bytes(__p, __n * sizeof(_Up), alignof(_Up)); } │ │ │ │ │ +198 │ │ │ │ │ +199 template │ │ │ │ │ +200 [[nodiscard]] _Up* │ │ │ │ │ +201 new_object(_CtorArgs&&... __ctor_args) │ │ │ │ │ +202 { │ │ │ │ │ +203 _Up* __p = allocate_object<_Up>(); │ │ │ │ │ +204 __try │ │ │ │ │ +205 { │ │ │ │ │ +206 construct(__p, std::forward<_CtorArgs>(__ctor_args)...); │ │ │ │ │ +207 } │ │ │ │ │ +208 __catch (...) │ │ │ │ │ +209 { │ │ │ │ │ +210 deallocate_object(__p); │ │ │ │ │ +211 __throw_exception_again; │ │ │ │ │ 212 } │ │ │ │ │ -213 }; │ │ │ │ │ -214#endif │ │ │ │ │ -215 /// @endcond │ │ │ │ │ -216 │ │ │ │ │ -217#pragma GCC diagnostic push │ │ │ │ │ -218#pragma GCC diagnostic ignored "-Wc++17-extensions" │ │ │ │ │ -219 /** │ │ │ │ │ -220 * @brief Copies the range [first,last) into result. │ │ │ │ │ -221 * @param __first An input iterator. │ │ │ │ │ -222 * @param __last An input iterator. │ │ │ │ │ -223 * @param __result A forward iterator. │ │ │ │ │ -224 * @return __result + (__last - __first) │ │ │ │ │ -225 * │ │ │ │ │ -226 * Like std::copy, but does not require an initialized output range. │ │ │ │ │ -227 */ │ │ │ │ │ -228 template │ │ │ │ │ -229 _GLIBCXX26_CONSTEXPR │ │ │ │ │ -230 inline _ForwardIterator │ │ │ │ │ -_2_3_1 _u_n_i_n_i_t_i_a_l_i_z_e_d___c_o_p_y(_InputIterator __first, _InputIterator __last, │ │ │ │ │ -232 _ForwardIterator __result) │ │ │ │ │ -233 { │ │ │ │ │ -234 // We can use memcpy to copy the ranges under these conditions: │ │ │ │ │ -235 // │ │ │ │ │ -236 // _ForwardIterator and _InputIterator are both contiguous iterators, │ │ │ │ │ -237 // so that we can turn them into pointers to pass to memcpy. │ │ │ │ │ -238 // Before C++20 we can't detect all contiguous iterators, so we only │ │ │ │ │ -239 // handle built-in pointers and __normal_iterator types. │ │ │ │ │ -240 // │ │ │ │ │ -241 // The value types of both iterators are trivially-copyable types, │ │ │ │ │ -242 // so that memcpy is not undefined and can begin the lifetime of │ │ │ │ │ -243 // new objects in the output range. │ │ │ │ │ -244 // │ │ │ │ │ -245 // Finally, memcpy from the source type, S, to the destination type, D, │ │ │ │ │ -246 // must give the same value as initialization of D from S would give. │ │ │ │ │ -247 // We require is_trivially_constructible to be true, but that is │ │ │ │ │ -248 // not sufficient. Some cases of trivial initialization are not just a │ │ │ │ │ -249 // bitwise copy, even when sizeof(D) == sizeof(S), │ │ │ │ │ -250 // e.g. bit_cast(1.0f) != 1u because the corresponding bits │ │ │ │ │ -251 // of the value representations do not have the same meaning. │ │ │ │ │ -252 // We cannot tell when this condition is true in general, │ │ │ │ │ -253 // so we rely on the __memcpyable trait. │ │ │ │ │ -254 │ │ │ │ │ -255#if __cplusplus >= 201103L │ │ │ │ │ -256 using _Dest = decltype(std::__niter_base(__result)); │ │ │ │ │ -257 using _Src = decltype(std::__niter_base(__first)); │ │ │ │ │ -258 using _ValT = typename _i_t_e_r_a_t_o_r___t_r_a_i_t_s_<___F_o_r_w_a_r_d_I_t_e_r_a_t_o_r_>_:_:_v_a_l_u_e___t_y_p_e; │ │ │ │ │ -259 │ │ │ │ │ -260#if __glibcxx_raw_memory_algorithms >= 202411L // >= C++26 │ │ │ │ │ -261 if consteval { │ │ │ │ │ -262 return std::__do_uninit_copy(__first, __last, __result); │ │ │ │ │ -263 } │ │ │ │ │ -264#endif │ │ │ │ │ -265 if constexpr (!__is_trivially_constructible(_ValT, decltype(*__first))) │ │ │ │ │ -266 return std::__do_uninit_copy(__first, __last, __result); │ │ │ │ │ -267 else if constexpr (__memcpyable<_Dest, _Src>::__value) │ │ │ │ │ -268 { │ │ │ │ │ -269 ptrdiff_t __n = __last - __first; │ │ │ │ │ -270 if (__n > 0) [[__likely__]] │ │ │ │ │ -271 { │ │ │ │ │ -272 using _ValT = typename remove_pointer<_Src>::type; │ │ │ │ │ -273 __builtin_memcpy(std::__niter_base(__result), │ │ │ │ │ -274 std::__niter_base(__first), │ │ │ │ │ -275 __n * sizeof(_ValT)); │ │ │ │ │ -276 __result += __n; │ │ │ │ │ +213 return __p; │ │ │ │ │ +214 } │ │ │ │ │ +215 │ │ │ │ │ +216 template │ │ │ │ │ +217 void │ │ │ │ │ +218 delete_object(_Up* __p) │ │ │ │ │ +219 { │ │ │ │ │ +220 __p->~_Up(); │ │ │ │ │ +221 deallocate_object(__p); │ │ │ │ │ +222 } │ │ │ │ │ +223#endif // C++20 │ │ │ │ │ +224 │ │ │ │ │ +225#if ! __glibcxx_make_obj_using_allocator // >= C++20 │ │ │ │ │ +226 template │ │ │ │ │ +227 __attribute__((__nonnull__)) │ │ │ │ │ +228 typename __not_pair<_Tp1>::type │ │ │ │ │ +229 construct(_Tp1* __p, _Args&&... __args) │ │ │ │ │ +230 { │ │ │ │ │ +231 // _GLIBCXX_RESOLVE_LIB_DEFECTS │ │ │ │ │ +232 // 2969. polymorphic_allocator::construct() shouldn't pass resource() │ │ │ │ │ +233 using __use_tag │ │ │ │ │ +234 = std::__uses_alloc_t<_Tp1, _p_o_l_y_m_o_r_p_h_i_c___a_l_l_o_c_a_t_o_r, _Args...>; │ │ │ │ │ +235 if constexpr (is_base_of_v<__uses_alloc0, __use_tag>) │ │ │ │ │ +236 ::new(__p) _Tp1(std::forward<_Args>(__args)...); │ │ │ │ │ +237 else if constexpr (is_base_of_v<__uses_alloc1_, __use_tag>) │ │ │ │ │ +238 ::new(__p) _Tp1(allocator_arg, *this, │ │ │ │ │ +239 std::forward<_Args>(__args)...); │ │ │ │ │ +240 else │ │ │ │ │ +241 ::new(__p) _Tp1(std::forward<_Args>(__args)..., *this); │ │ │ │ │ +242 } │ │ │ │ │ +243 │ │ │ │ │ +244 template │ │ │ │ │ +246 __attribute__((__nonnull__)) │ │ │ │ │ +247 void │ │ │ │ │ +248 construct(_p_a_i_r_<___T_p_1_,_ ___T_p_2_>* __p, _p_i_e_c_e_w_i_s_e___c_o_n_s_t_r_u_c_t___t, │ │ │ │ │ +249 _t_u_p_l_e_<___A_r_g_s_1_._._._> __x, _t_u_p_l_e_<___A_r_g_s_2_._._._> __y) │ │ │ │ │ +250 { │ │ │ │ │ +251 auto __x_tag = │ │ │ │ │ +252 __use_alloc<_Tp1, _p_o_l_y_m_o_r_p_h_i_c___a_l_l_o_c_a_t_o_r, _Args1...>(*this); │ │ │ │ │ +253 auto __y_tag = │ │ │ │ │ +254 __use_alloc<_Tp2, _p_o_l_y_m_o_r_p_h_i_c___a_l_l_o_c_a_t_o_r, _Args2...>(*this); │ │ │ │ │ +255 _i_n_d_e_x___s_e_q_u_e_n_c_e___f_o_r<_Args1...> __x_i; │ │ │ │ │ +256 _i_n_d_e_x___s_e_q_u_e_n_c_e___f_o_r<_Args2...> __y_i; │ │ │ │ │ +257 │ │ │ │ │ +258 ::new(__p) _p_a_i_r_<___T_p_1_,_ ___T_p_2_>(_p_i_e_c_e_w_i_s_e___c_o_n_s_t_r_u_c_t, │ │ │ │ │ +259 _S_construct_p(__x_tag, __x_i, __x), │ │ │ │ │ +260 _S_construct_p(__y_tag, __y_i, __y)); │ │ │ │ │ +261 } │ │ │ │ │ +262 │ │ │ │ │ +263 template │ │ │ │ │ +264 __attribute__((__nonnull__)) │ │ │ │ │ +265 void │ │ │ │ │ +266 construct(_p_a_i_r_<___T_p_1_,_ ___T_p_2_>* __p) │ │ │ │ │ +267 { this->construct(__p, _p_i_e_c_e_w_i_s_e___c_o_n_s_t_r_u_c_t, _t_u_p_l_e_<_>(), _t_u_p_l_e_<_>()); } │ │ │ │ │ +268 │ │ │ │ │ +269 template │ │ │ │ │ +270 __attribute__((__nonnull__)) │ │ │ │ │ +271 void │ │ │ │ │ +272 construct(_p_a_i_r_<___T_p_1_,_ ___T_p_2_>* __p, _Up&& __x, _Vp&& __y) │ │ │ │ │ +273 { │ │ │ │ │ +274 this->construct(__p, _p_i_e_c_e_w_i_s_e___c_o_n_s_t_r_u_c_t, │ │ │ │ │ +275 _s_t_d_:_:_f_o_r_w_a_r_d___a_s___t_u_p_l_e(std::forward<_Up>(__x)), │ │ │ │ │ +276 _s_t_d_:_:_f_o_r_w_a_r_d___a_s___t_u_p_l_e(std::forward<_Vp>(__y))); │ │ │ │ │ 277 } │ │ │ │ │ -278 return __result; │ │ │ │ │ -279 } │ │ │ │ │ -280#if __cpp_lib_concepts │ │ │ │ │ -281 else if constexpr (contiguous_iterator<_ForwardIterator> │ │ │ │ │ -282 && contiguous_iterator<_InputIterator>) │ │ │ │ │ +278 │ │ │ │ │ +279 template │ │ │ │ │ +280 __attribute__((__nonnull__)) │ │ │ │ │ +281 void │ │ │ │ │ +282 construct(_p_a_i_r_<___T_p_1_,_ ___T_p_2_>* __p, const _s_t_d_:_:_p_a_i_r_<___U_p_,_ ___V_p_>& __pr) │ │ │ │ │ 283 { │ │ │ │ │ -284 using _DestPtr = decltype(_s_t_d_:_:_t_o___a_d_d_r_e_s_s(__result)); │ │ │ │ │ -285 using _SrcPtr = decltype(_s_t_d_:_:_t_o___a_d_d_r_e_s_s(__first)); │ │ │ │ │ -286 if constexpr (__memcpyable<_DestPtr, _SrcPtr>::__value) │ │ │ │ │ -287 { │ │ │ │ │ -288 if (auto __n = __last - __first; __n > 0) [[likely]] │ │ │ │ │ -289 { │ │ │ │ │ -290 void* __dest = _s_t_d_:_:_t_o___a_d_d_r_e_s_s(__result); │ │ │ │ │ -291 const void* __src = _s_t_d_:_:_t_o___a_d_d_r_e_s_s(__first); │ │ │ │ │ -292 size_t __nbytes = __n * sizeof(_r_e_m_o_v_e___p_o_i_n_t_e_r___t_<___D_e_s_t_P_t_r_>); │ │ │ │ │ -293 __builtin_memcpy(__dest, __src, __nbytes); │ │ │ │ │ -294 __result += __n; │ │ │ │ │ -295 } │ │ │ │ │ -296 return __result; │ │ │ │ │ +284 this->construct(__p, _p_i_e_c_e_w_i_s_e___c_o_n_s_t_r_u_c_t, │ │ │ │ │ +285 _s_t_d_:_:_f_o_r_w_a_r_d___a_s___t_u_p_l_e(__pr._f_i_r_s_t), │ │ │ │ │ +286 _s_t_d_:_:_f_o_r_w_a_r_d___a_s___t_u_p_l_e(__pr._s_e_c_o_n_d)); │ │ │ │ │ +287 } │ │ │ │ │ +288 │ │ │ │ │ +289 template │ │ │ │ │ +290 __attribute__((__nonnull__)) │ │ │ │ │ +291 void │ │ │ │ │ +292 construct(_p_a_i_r_<___T_p_1_,_ ___T_p_2_>* __p, _p_a_i_r_<___U_p_,_ ___V_p_>&& __pr) │ │ │ │ │ +293 { │ │ │ │ │ +294 this->construct(__p, _p_i_e_c_e_w_i_s_e___c_o_n_s_t_r_u_c_t, │ │ │ │ │ +295 _s_t_d_:_:_f_o_r_w_a_r_d___a_s___t_u_p_l_e(std::forward<_Up>(__pr._f_i_r_s_t)), │ │ │ │ │ +296 _s_t_d_:_:_f_o_r_w_a_r_d___a_s___t_u_p_l_e(std::forward<_Vp>(__pr._s_e_c_o_n_d))); │ │ │ │ │ 297 } │ │ │ │ │ -298 else │ │ │ │ │ -299 return std::__do_uninit_copy(__first, __last, __result); │ │ │ │ │ -300 } │ │ │ │ │ -301#endif │ │ │ │ │ -302 else │ │ │ │ │ -303 return std::__do_uninit_copy(__first, __last, __result); │ │ │ │ │ -304#else // C++98 │ │ │ │ │ -305 typedef typename _i_t_e_r_a_t_o_r___t_r_a_i_t_s_<___I_n_p_u_t_I_t_e_r_a_t_o_r_>_:_:_v_a_l_u_e___t_y_p_e │ │ │ │ │ -306 _ValueType1; │ │ │ │ │ -307 typedef typename _i_t_e_r_a_t_o_r___t_r_a_i_t_s_<___F_o_r_w_a_r_d_I_t_e_r_a_t_o_r_>_:_:_v_a_l_u_e___t_y_p_e │ │ │ │ │ -308 _ValueType2; │ │ │ │ │ -309 │ │ │ │ │ -310 const bool __can_memcpy │ │ │ │ │ -311 = __memcpyable<_ValueType1*, _ValueType2*>::__value │ │ │ │ │ -312 && __is_trivially_constructible(_ValueType2, __decltype(*__first)); │ │ │ │ │ -313 │ │ │ │ │ -314 return __uninitialized_copy<__can_memcpy>:: │ │ │ │ │ -315 __uninit_copy(__first, __last, __result); │ │ │ │ │ -316#endif │ │ │ │ │ -317 } │ │ │ │ │ -318#pragma GCC diagnostic pop │ │ │ │ │ -319 │ │ │ │ │ -320 /// @cond undocumented │ │ │ │ │ -321 │ │ │ │ │ -322 // This is the default implementation of std::uninitialized_fill. │ │ │ │ │ -323 template │ │ │ │ │ -324 _GLIBCXX20_CONSTEXPR void │ │ │ │ │ -325 __do_uninit_fill(_ForwardIterator __first, _ForwardIterator __last, │ │ │ │ │ -326 const _Tp& __x) │ │ │ │ │ -327 { │ │ │ │ │ -328 _UninitDestroyGuard<_ForwardIterator> __guard(__first); │ │ │ │ │ -329 for (; __first != __last; ++__first) │ │ │ │ │ -330 _s_t_d_:_:___C_o_n_s_t_r_u_c_t(_s_t_d_:_:_____a_d_d_r_e_s_s_o_f(*__first), __x); │ │ │ │ │ -331 __guard.release(); │ │ │ │ │ -332 } │ │ │ │ │ -333 │ │ │ │ │ -334#if __cplusplus < 201103L │ │ │ │ │ -335 // Use template specialization for C++98 when 'if constexpr' can't be used. │ │ │ │ │ -336 template │ │ │ │ │ -337 struct __uninitialized_fill │ │ │ │ │ -338 { │ │ │ │ │ -339 template │ │ │ │ │ -340 static void │ │ │ │ │ -341 __uninit_fill(_ForwardIterator __first, _ForwardIterator __last, │ │ │ │ │ -342 const _Tp& __x) │ │ │ │ │ -343 { std::__do_uninit_fill(__first, __last, __x); } │ │ │ │ │ -344 }; │ │ │ │ │ -345 │ │ │ │ │ -346 template<> │ │ │ │ │ -347 struct __uninitialized_fill │ │ │ │ │ -348 { │ │ │ │ │ -349 // Overload for generic iterators. │ │ │ │ │ -350 template │ │ │ │ │ -351 static void │ │ │ │ │ -352 __uninit_fill(_ForwardIterator __first, _ForwardIterator __last, │ │ │ │ │ -353 const _Tp& __x) │ │ │ │ │ +298#else // make_obj_using_allocator │ │ │ │ │ +299 template │ │ │ │ │ +300 __attribute__((__nonnull__)) │ │ │ │ │ +301 void │ │ │ │ │ +302 construct(_Tp1* __p, _Args&&... __args) │ │ │ │ │ +303 { │ │ │ │ │ +304 std::uninitialized_construct_using_allocator(__p, *this, │ │ │ │ │ +305 std::forward<_Args>(__args)...); │ │ │ │ │ +306 } │ │ │ │ │ +307#endif │ │ │ │ │ +308 │ │ │ │ │ +309 template │ │ │ │ │ +310 __attribute__((__nonnull__)) │ │ │ │ │ +311 void │ │ │ │ │ +312 destroy(_Up* __p) │ │ │ │ │ +313 { __p->~_Up(); } │ │ │ │ │ +314 │ │ │ │ │ +315 _p_o_l_y_m_o_r_p_h_i_c___a_l_l_o_c_a_t_o_r │ │ │ │ │ +316 select_on_container_copy_construction() const noexcept │ │ │ │ │ +317 { return _p_o_l_y_m_o_r_p_h_i_c___a_l_l_o_c_a_t_o_r(); } │ │ │ │ │ +318 │ │ │ │ │ +319 _m_e_m_o_r_y___r_e_s_o_u_r_c_e* │ │ │ │ │ +320 resource() const noexcept │ │ │ │ │ +321 __attribute__((__returns_nonnull__)) │ │ │ │ │ +322 { return _M_resource; } │ │ │ │ │ +323 │ │ │ │ │ +324 // _GLIBCXX_RESOLVE_LIB_DEFECTS │ │ │ │ │ +325 // 3683. operator== for polymorphic_allocator cannot deduce template arg │ │ │ │ │ +326 [[nodiscard]] │ │ │ │ │ +327 friend bool │ │ │ │ │ +328 operator==(const _p_o_l_y_m_o_r_p_h_i_c___a_l_l_o_c_a_t_o_r& __a, │ │ │ │ │ +329 const _p_o_l_y_m_o_r_p_h_i_c___a_l_l_o_c_a_t_o_r& __b) noexcept │ │ │ │ │ +330 { return *__a.resource() == *__b.resource(); } │ │ │ │ │ +331 │ │ │ │ │ +332#if __cpp_impl_three_way_comparison < 201907L │ │ │ │ │ +333 [[nodiscard]] │ │ │ │ │ +334 friend bool │ │ │ │ │ +335 operator!=(const _p_o_l_y_m_o_r_p_h_i_c___a_l_l_o_c_a_t_o_r& __a, │ │ │ │ │ +336 const _p_o_l_y_m_o_r_p_h_i_c___a_l_l_o_c_a_t_o_r& __b) noexcept │ │ │ │ │ +337 { return !(__a == __b); } │ │ │ │ │ +338#endif │ │ │ │ │ +339 │ │ │ │ │ +340 private: │ │ │ │ │ +341#if ! __glibcxx_make_obj_using_allocator // >= C++20 │ │ │ │ │ +342 using __uses_alloc1_ = __uses_alloc1; │ │ │ │ │ +343 using __uses_alloc2_ = __uses_alloc2; │ │ │ │ │ +344 │ │ │ │ │ +345 template │ │ │ │ │ +346 static _t_u_p_l_e<_Args&&...> │ │ │ │ │ +347 _S_construct_p(__uses_alloc0, _Ind, _t_u_p_l_e_<___A_r_g_s_._._._>& __t) │ │ │ │ │ +348 { return _s_t_d_:_:_m_o_v_e(__t); } │ │ │ │ │ +349 │ │ │ │ │ +350 template │ │ │ │ │ +351 static _t_u_p_l_e │ │ │ │ │ +352 _S_construct_p(__uses_alloc1_ __ua, _i_n_d_e_x___s_e_q_u_e_n_c_e_<___I_n_d_._._._>, │ │ │ │ │ +353 _t_u_p_l_e_<___A_r_g_s_._._._>& __t) │ │ │ │ │ 354 { │ │ │ │ │ -355 if (__unwrappable_niter<_ForwardIterator>::__value) │ │ │ │ │ -356 __uninit_fill(std::__niter_base(__first), │ │ │ │ │ -357 std::__niter_base(__last), │ │ │ │ │ -358 __x); │ │ │ │ │ -359 else │ │ │ │ │ -360 std::__do_uninit_copy(__first, __last, __x); │ │ │ │ │ -361 } │ │ │ │ │ -362 │ │ │ │ │ -363 // Overload for pointers. │ │ │ │ │ -364 template │ │ │ │ │ -365 static void │ │ │ │ │ -366 __uninit_fill(_Up* __first, _Up* __last, const _Tp& __x) │ │ │ │ │ -367 { │ │ │ │ │ -368 // Ensure that we don't successfully memset in cases that should be │ │ │ │ │ -369 // ill-formed because is_constructible<_Up, const _Tp&> is false. │ │ │ │ │ -370 typedef __typeof__(static_cast<_Up>(__x)) __check │ │ │ │ │ -371 __attribute__((__unused__)); │ │ │ │ │ -372 │ │ │ │ │ -373 if (__first != __last) │ │ │ │ │ -374 __builtin_memset(__first, (unsigned char)__x, __last - __first); │ │ │ │ │ -375 } │ │ │ │ │ -376 }; │ │ │ │ │ -377#endif │ │ │ │ │ -378 /// @endcond │ │ │ │ │ -379 │ │ │ │ │ -380 /** │ │ │ │ │ -381 * @brief Copies the value x into the range [first,last). │ │ │ │ │ -382 * @param __first A forward iterator. │ │ │ │ │ -383 * @param __last A forward iterator. │ │ │ │ │ -384 * @param __x The source value. │ │ │ │ │ -385 * @return Nothing. │ │ │ │ │ -386 * │ │ │ │ │ -387 * Like std::fill, but does not require an initialized output range. │ │ │ │ │ -388 */ │ │ │ │ │ -389 template │ │ │ │ │ -390 _GLIBCXX26_CONSTEXPR │ │ │ │ │ -391 inline void │ │ │ │ │ -_3_9_2 _u_n_i_n_i_t_i_a_l_i_z_e_d___f_i_l_l(_ForwardIterator __first, _ForwardIterator __last, │ │ │ │ │ -393 const _Tp& __x) │ │ │ │ │ -394 { │ │ │ │ │ -395 // We would like to use memset to optimize this loop when possible. │ │ │ │ │ -396 // As for std::uninitialized_copy, the optimization requires │ │ │ │ │ -397 // contiguous iterators and trivially copyable value types, │ │ │ │ │ -398 // with the additional requirement that sizeof(_Tp) == 1 because │ │ │ │ │ -399 // memset only writes single bytes. │ │ │ │ │ -400 │ │ │ │ │ -401 // FIXME: We could additionally enable this for 1-byte enums. │ │ │ │ │ -402 // Maybe any 1-byte Val if is_trivially_constructible? │ │ │ │ │ -403 │ │ │ │ │ -404 typedef typename _i_t_e_r_a_t_o_r___t_r_a_i_t_s_<___F_o_r_w_a_r_d_I_t_e_r_a_t_o_r_>_:_:_v_a_l_u_e___t_y_p_e │ │ │ │ │ -405 _ValueType; │ │ │ │ │ -406 │ │ │ │ │ -407#if __cplusplus >= 201103L │ │ │ │ │ -408#pragma GCC diagnostic push │ │ │ │ │ -409#pragma GCC diagnostic ignored "-Wc++17-extensions" │ │ │ │ │ -410#if __glibcxx_raw_memory_algorithms >= 202411L // >= C++26 │ │ │ │ │ -411 if consteval { │ │ │ │ │ -412 return std::__do_uninit_fill(__first, __last, __x); │ │ │ │ │ -413 } │ │ │ │ │ -414#endif │ │ │ │ │ -415 if constexpr (__is_byte<_ValueType>::__value) │ │ │ │ │ -416 if constexpr (_i_s___s_a_m_e_<___V_a_l_u_e_T_y_p_e_,_ ___T_p_>_:_:_v_a_l_u_e │ │ │ │ │ -417 || _i_s___i_n_t_e_g_r_a_l_<___T_p_>_:_:_v_a_l_u_e) │ │ │ │ │ -418 { │ │ │ │ │ -419 using _BasePtr = decltype(std::__niter_base(__first)); │ │ │ │ │ -420 if constexpr (_i_s___p_o_i_n_t_e_r_<___B_a_s_e_P_t_r_>_:_:_v_a_l_u_e) │ │ │ │ │ -421 { │ │ │ │ │ -422 void* __dest = std::__niter_base(__first); │ │ │ │ │ -423 ptrdiff_t __n = __last - __first; │ │ │ │ │ -424 if (__n > 0) [[__likely__]] │ │ │ │ │ -425 __builtin_memset(__dest, (unsigned char)__x, __n); │ │ │ │ │ -426 return; │ │ │ │ │ -427 } │ │ │ │ │ -428#if __cpp_lib_concepts │ │ │ │ │ -429 else if constexpr (contiguous_iterator<_ForwardIterator>) │ │ │ │ │ -430 { │ │ │ │ │ -431 auto __dest = _s_t_d_:_:_t_o___a_d_d_r_e_s_s(__first); │ │ │ │ │ -432 auto __n = __last - __first; │ │ │ │ │ -433 if (__n > 0) [[__likely__]] │ │ │ │ │ -434 __builtin_memset(__dest, (unsigned char)__x, __n); │ │ │ │ │ -435 return; │ │ │ │ │ -436 } │ │ │ │ │ -437#endif │ │ │ │ │ -438 } │ │ │ │ │ -439 std::__do_uninit_fill(__first, __last, __x); │ │ │ │ │ -440#pragma GCC diagnostic pop │ │ │ │ │ -441#else // C++98 │ │ │ │ │ -442 const bool __can_memset = __is_byte<_ValueType>::__value │ │ │ │ │ -443 && __is_integer<_Tp>::__value; │ │ │ │ │ +355 return { │ │ │ │ │ +356 allocator_arg, *__ua._M_a, std::get<_Ind>(_s_t_d_:_:_m_o_v_e(__t))... │ │ │ │ │ +357 }; │ │ │ │ │ +358 } │ │ │ │ │ +359 │ │ │ │ │ +360 template │ │ │ │ │ +361 static _t_u_p_l_e<_Args&&..., _p_o_l_y_m_o_r_p_h_i_c___a_l_l_o_c_a_t_o_r> │ │ │ │ │ +362 _S_construct_p(__uses_alloc2_ __ua, _i_n_d_e_x___s_e_q_u_e_n_c_e_<___I_n_d_._._._>, │ │ │ │ │ +363 _t_u_p_l_e_<___A_r_g_s_._._._>& __t) │ │ │ │ │ +364 { return { std::get<_Ind>(_s_t_d_:_:_m_o_v_e(__t))..., *__ua._M_a }; } │ │ │ │ │ +365#endif │ │ │ │ │ +366 │ │ │ │ │ +367 _m_e_m_o_r_y___r_e_s_o_u_r_c_e* _M_resource; │ │ │ │ │ +368 }; │ │ │ │ │ +369 │ │ │ │ │ +370 template │ │ │ │ │ +371 [[nodiscard]] │ │ │ │ │ +372 inline bool │ │ │ │ │ +373 operator==(const _p_o_l_y_m_o_r_p_h_i_c___a_l_l_o_c_a_t_o_r_<___T_p_1_>& __a, │ │ │ │ │ +374 const _p_o_l_y_m_o_r_p_h_i_c___a_l_l_o_c_a_t_o_r_<___T_p_2_>& __b) noexcept │ │ │ │ │ +375 { return *__a.resource() == *__b.resource(); } │ │ │ │ │ +376 │ │ │ │ │ +377#if __cpp_impl_three_way_comparison < 201907L │ │ │ │ │ +378 template │ │ │ │ │ +379 [[nodiscard]] │ │ │ │ │ +380 inline bool │ │ │ │ │ +381 operator!=(const polymorphic_allocator<_Tp1>& __a, │ │ │ │ │ +382 const polymorphic_allocator<_Tp2>& __b) noexcept │ │ │ │ │ +383 { return !(__a == __b); } │ │ │ │ │ +384#endif │ │ │ │ │ +385 │ │ │ │ │ +386} // namespace pmr │ │ │ │ │ +387 │ │ │ │ │ +388 template struct allocator_traits; │ │ │ │ │ +389 │ │ │ │ │ +390 /// Partial specialization for `std::pmr::polymorphic_allocator` │ │ │ │ │ +391 /** │ │ │ │ │ +392 * @ingroup pmr │ │ │ │ │ +393 * @headerfile memory_resource │ │ │ │ │ +394 * @since C++17 │ │ │ │ │ +395 */ │ │ │ │ │ +396 template │ │ │ │ │ +_3_9_7 struct _a_l_l_o_c_a_t_o_r___t_r_a_i_t_s> │ │ │ │ │ +398 { │ │ │ │ │ +399 /// The allocator type │ │ │ │ │ +_4_0_0 using _a_l_l_o_c_a_t_o_r___t_y_p_e = _p_m_r_:_:_p_o_l_y_m_o_r_p_h_i_c___a_l_l_o_c_a_t_o_r_<___T_p_>; │ │ │ │ │ +401 │ │ │ │ │ +402 /// The allocated type │ │ │ │ │ +_4_0_3 using _v_a_l_u_e___t_y_p_e = _Tp; │ │ │ │ │ +404 │ │ │ │ │ +405 /// The allocator's pointer type. │ │ │ │ │ +_4_0_6 using _p_o_i_n_t_e_r = _Tp*; │ │ │ │ │ +407 │ │ │ │ │ +408 /// The allocator's const pointer type. │ │ │ │ │ +_4_0_9 using _c_o_n_s_t___p_o_i_n_t_e_r = const _Tp*; │ │ │ │ │ +410 │ │ │ │ │ +411 /// The allocator's void pointer type. │ │ │ │ │ +_4_1_2 using _v_o_i_d___p_o_i_n_t_e_r = void*; │ │ │ │ │ +413 │ │ │ │ │ +414 /// The allocator's const void pointer type. │ │ │ │ │ +_4_1_5 using _c_o_n_s_t___v_o_i_d___p_o_i_n_t_e_r = const void*; │ │ │ │ │ +416 │ │ │ │ │ +417 /// The allocator's difference type │ │ │ │ │ +_4_1_8 using _d_i_f_f_e_r_e_n_c_e___t_y_p_e = std::ptrdiff_t; │ │ │ │ │ +419 │ │ │ │ │ +420 /// The allocator's size type │ │ │ │ │ +_4_2_1 using _s_i_z_e___t_y_p_e = std::size_t; │ │ │ │ │ +422 │ │ │ │ │ +423 /** @{ │ │ │ │ │ +424 * A `polymorphic_allocator` does not propagate when a │ │ │ │ │ +425 * container is copied, moved, or swapped. │ │ │ │ │ +426 */ │ │ │ │ │ +_4_2_7 using _p_r_o_p_a_g_a_t_e___o_n___c_o_n_t_a_i_n_e_r___c_o_p_y___a_s_s_i_g_n_m_e_n_t = _f_a_l_s_e___t_y_p_e; │ │ │ │ │ +_4_2_8 using _p_r_o_p_a_g_a_t_e___o_n___c_o_n_t_a_i_n_e_r___m_o_v_e___a_s_s_i_g_n_m_e_n_t = _f_a_l_s_e___t_y_p_e; │ │ │ │ │ +_4_2_9 using _p_r_o_p_a_g_a_t_e___o_n___c_o_n_t_a_i_n_e_r___s_w_a_p = _f_a_l_s_e___t_y_p_e; │ │ │ │ │ +430 │ │ │ │ │ +431 static _a_l_l_o_c_a_t_o_r___t_y_p_e │ │ │ │ │ +_4_3_2 _s_e_l_e_c_t___o_n___c_o_n_t_a_i_n_e_r___c_o_p_y___c_o_n_s_t_r_u_c_t_i_o_n(const _a_l_l_o_c_a_t_o_r___t_y_p_e&) noexcept │ │ │ │ │ +433 { return _a_l_l_o_c_a_t_o_r___t_y_p_e(); } │ │ │ │ │ +434 /// @} │ │ │ │ │ +435 │ │ │ │ │ +436 /// Whether all instances of the allocator type compare equal. │ │ │ │ │ +_4_3_7 using _i_s___a_l_w_a_y_s___e_q_u_a_l = _f_a_l_s_e___t_y_p_e; │ │ │ │ │ +438 │ │ │ │ │ +439 template │ │ │ │ │ +440 using _r_e_b_i_n_d___a_l_l_o_c = _p_m_r_:_:_p_o_l_y_m_o_r_p_h_i_c___a_l_l_o_c_a_t_o_r_<___U_p_>; │ │ │ │ │ +441 │ │ │ │ │ +442 template │ │ │ │ │ +443 using rebind_traits = _a_l_l_o_c_a_t_o_r___t_r_a_i_t_s_<_p_m_r_:_:_p_o_l_y_m_o_r_p_h_i_c___a_l_l_o_c_a_t_o_r_<___U_p_>>; │ │ │ │ │ 444 │ │ │ │ │ -445 __uninitialized_fill<__can_memset>::__uninit_fill(__first, __last, __x); │ │ │ │ │ -446#endif │ │ │ │ │ -447 } │ │ │ │ │ -448 │ │ │ │ │ -449 /// @cond undocumented │ │ │ │ │ -450 │ │ │ │ │ -451 // This is the default implementation of std::uninitialized_fill_n. │ │ │ │ │ -452 template │ │ │ │ │ -453 _GLIBCXX20_CONSTEXPR │ │ │ │ │ -454 _ForwardIterator │ │ │ │ │ -455 __do_uninit_fill_n(_ForwardIterator __first, _Size __n, const _Tp& __x) │ │ │ │ │ -456 { │ │ │ │ │ -457 _UninitDestroyGuard<_ForwardIterator> __guard(__first); │ │ │ │ │ -458#if __cplusplus >= 201103L │ │ │ │ │ -459#pragma GCC diagnostic push │ │ │ │ │ -460#pragma GCC diagnostic ignored "-Wc++17-extensions" │ │ │ │ │ -461 if constexpr (is_integral<_Size>::value) │ │ │ │ │ -462 // Loop will never terminate if __n is negative. │ │ │ │ │ -463 __glibcxx_assert(__n >= 0); │ │ │ │ │ -464 else if constexpr (is_floating_point<_Size>::value) │ │ │ │ │ -465 // Loop will never terminate if __n is not an integer. │ │ │ │ │ -466 __glibcxx_assert(__n >= 0 && static_cast(__n) == __n); │ │ │ │ │ -467#pragma GCC diagnostic pop │ │ │ │ │ -468#endif │ │ │ │ │ -469 for (; __n--; ++__first) │ │ │ │ │ -470 _s_t_d_:_:___C_o_n_s_t_r_u_c_t(_s_t_d_:_:_____a_d_d_r_e_s_s_o_f(*__first), __x); │ │ │ │ │ -471 __guard.release(); │ │ │ │ │ -472 return __first; │ │ │ │ │ -473 } │ │ │ │ │ -474 │ │ │ │ │ -475#if __cplusplus < 201103L │ │ │ │ │ -476 // Use template specialization for C++98 when 'if constexpr' can't be used. │ │ │ │ │ -477 template │ │ │ │ │ -478 struct __uninitialized_fill_n │ │ │ │ │ -479 { │ │ │ │ │ -480 template │ │ │ │ │ -481 static _ForwardIterator │ │ │ │ │ -482 __uninit_fill_n(_ForwardIterator __first, _Size __n, │ │ │ │ │ -483 const _Tp& __x) │ │ │ │ │ -484 { return std::__do_uninit_fill_n(__first, __n, __x); } │ │ │ │ │ -485 }; │ │ │ │ │ -486 │ │ │ │ │ -487 template<> │ │ │ │ │ -488 struct __uninitialized_fill_n │ │ │ │ │ -489 { │ │ │ │ │ -490 // Overload for generic iterators. │ │ │ │ │ -491 template │ │ │ │ │ -492 static _ForwardIterator │ │ │ │ │ -493 __uninit_fill_n(_ForwardIterator __first, _Size __n, │ │ │ │ │ -494 const _Tp& __x) │ │ │ │ │ -495 { │ │ │ │ │ -496 if (__unwrappable_niter<_ForwardIterator>::__value) │ │ │ │ │ -497 { │ │ │ │ │ -498 _ForwardIterator __last = __first; │ │ │ │ │ -499 _s_t_d_:_:_a_d_v_a_n_c_e(__last, __n); │ │ │ │ │ -500 __uninitialized_fill::__uninit_fill(__first, __last, __x); │ │ │ │ │ -501 return __last; │ │ │ │ │ -502 } │ │ │ │ │ -503 else │ │ │ │ │ -504 return std::__do_uninit_fill_n(__first, __n, __x); │ │ │ │ │ -505 } │ │ │ │ │ -506 }; │ │ │ │ │ -507#endif │ │ │ │ │ -508 /// @endcond │ │ │ │ │ -509 │ │ │ │ │ -510#pragma GCC diagnostic push │ │ │ │ │ -511#pragma GCC diagnostic ignored "-Wc++17-extensions" │ │ │ │ │ -512 // _GLIBCXX_RESOLVE_LIB_DEFECTS │ │ │ │ │ -513 // DR 1339. uninitialized_fill_n should return the end of its range │ │ │ │ │ -514 /** │ │ │ │ │ -515 * @brief Copies the value x into the range [first,first+n). │ │ │ │ │ -516 * @param __first A forward iterator. │ │ │ │ │ -517 * @param __n The number of copies to make. │ │ │ │ │ -518 * @param __x The source value. │ │ │ │ │ -519 * @return __first + __n. │ │ │ │ │ -520 * │ │ │ │ │ -521 * Like std::fill_n, but does not require an initialized output range. │ │ │ │ │ -522 */ │ │ │ │ │ -523 template │ │ │ │ │ -524 _GLIBCXX26_CONSTEXPR │ │ │ │ │ -525 inline _ForwardIterator │ │ │ │ │ -_5_2_6 _u_n_i_n_i_t_i_a_l_i_z_e_d___f_i_l_l___n(_ForwardIterator __first, _Size __n, const _Tp& __x) │ │ │ │ │ -527 { │ │ │ │ │ -528 // See uninitialized_fill conditions. We also require _Size to be │ │ │ │ │ -529 // an integer. The standard only requires _Size to be decrementable │ │ │ │ │ -530 // and contextually convertible to bool, so don't assume first+n works. │ │ │ │ │ -531 │ │ │ │ │ -532 // FIXME: We could additionally enable this for 1-byte enums. │ │ │ │ │ -533 │ │ │ │ │ -534 typedef typename _i_t_e_r_a_t_o_r___t_r_a_i_t_s_<___F_o_r_w_a_r_d_I_t_e_r_a_t_o_r_>_:_:_v_a_l_u_e___t_y_p_e │ │ │ │ │ -535 _ValueType; │ │ │ │ │ -536 │ │ │ │ │ -537#if __cplusplus >= 201103L │ │ │ │ │ -538#if __glibcxx_raw_memory_algorithms >= 202411L // >= C++26 │ │ │ │ │ -539 if consteval { │ │ │ │ │ -540 return std::__do_uninit_fill_n(__first, __n, __x); │ │ │ │ │ -541 } │ │ │ │ │ -542#endif │ │ │ │ │ -543 if constexpr (__is_byte<_ValueType>::__value) │ │ │ │ │ -544 if constexpr (_i_s___i_n_t_e_g_r_a_l_<___T_p_>_:_:_v_a_l_u_e) │ │ │ │ │ -545 if constexpr (_i_s___i_n_t_e_g_r_a_l_<___S_i_z_e_>_:_:_v_a_l_u_e) │ │ │ │ │ -546 { │ │ │ │ │ -547 using _BasePtr = decltype(std::__niter_base(__first)); │ │ │ │ │ -548 if constexpr (_i_s___p_o_i_n_t_e_r_<___B_a_s_e_P_t_r_>_:_:_v_a_l_u_e) │ │ │ │ │ -549 { │ │ │ │ │ -550 void* __dest = std::__niter_base(__first); │ │ │ │ │ -551 if (__n > 0) [[__likely__]] │ │ │ │ │ -552 { │ │ │ │ │ -553 __builtin_memset(__dest, (unsigned char)__x, __n); │ │ │ │ │ -554 __first += __n; │ │ │ │ │ -555 } │ │ │ │ │ -556 return __first; │ │ │ │ │ -557 } │ │ │ │ │ -558#if __cpp_lib_concepts │ │ │ │ │ -559 else if constexpr (contiguous_iterator<_ForwardIterator>) │ │ │ │ │ -560 { │ │ │ │ │ -561 auto __dest = _s_t_d_:_:_t_o___a_d_d_r_e_s_s(__first); │ │ │ │ │ -562 if (__n > 0) [[__likely__]] │ │ │ │ │ -563 { │ │ │ │ │ -564 __builtin_memset(__dest, (unsigned char)__x, __n); │ │ │ │ │ -565 __first += __n; │ │ │ │ │ -566 } │ │ │ │ │ -567 return __first; │ │ │ │ │ -568 } │ │ │ │ │ -569#endif │ │ │ │ │ -570 } │ │ │ │ │ -571 return std::__do_uninit_fill_n(__first, __n, __x); │ │ │ │ │ -572#else // C++98 │ │ │ │ │ -573 const bool __can_memset = __is_byte<_ValueType>::__value │ │ │ │ │ -574 && __is_integer<_Tp>::__value │ │ │ │ │ -575 && __is_integer<_Size>::__value; │ │ │ │ │ -576 │ │ │ │ │ -577 return __uninitialized_fill_n<__can_memset>:: │ │ │ │ │ -578 __uninit_fill_n(__first, __n, __x); │ │ │ │ │ -579#endif │ │ │ │ │ -580 } │ │ │ │ │ -581#pragma GCC diagnostic pop │ │ │ │ │ -582 │ │ │ │ │ -583 /// @cond undocumented │ │ │ │ │ -584 │ │ │ │ │ -585 // Extensions: versions of uninitialized_copy, uninitialized_fill, │ │ │ │ │ -586 // and uninitialized_fill_n that take an allocator parameter. │ │ │ │ │ -587 // We dispatch back to the standard versions when we're given the │ │ │ │ │ -588 // default allocator. For nondefault allocators we do not use │ │ │ │ │ -589 // any of the POD optimizations. │ │ │ │ │ -590 │ │ │ │ │ -591 template │ │ │ │ │ -593 _GLIBCXX20_CONSTEXPR │ │ │ │ │ -594 _ForwardIterator │ │ │ │ │ -595 __uninitialized_copy_a(_InputIterator __first, _Sentinel __last, │ │ │ │ │ -596 _ForwardIterator __result, _Allocator& __alloc) │ │ │ │ │ -597 { │ │ │ │ │ -598 _UninitDestroyGuard<_ForwardIterator, _Allocator> │ │ │ │ │ -599 __guard(__result, __alloc); │ │ │ │ │ -600 │ │ │ │ │ -601 typedef _____g_n_u___c_x_x_:_:_____a_l_l_o_c___t_r_a_i_t_s_<___A_l_l_o_c_a_t_o_r_> __traits; │ │ │ │ │ -602 for (; __first != __last; ++__first, (void)++__result) │ │ │ │ │ -603 __traits::construct(__alloc, _s_t_d_:_:_____a_d_d_r_e_s_s_o_f(*__result), *__first); │ │ │ │ │ -604 __guard.release(); │ │ │ │ │ -605 return __result; │ │ │ │ │ -606 } │ │ │ │ │ -607 │ │ │ │ │ -608#if _GLIBCXX_HOSTED │ │ │ │ │ -609 template │ │ │ │ │ -611 _GLIBCXX20_CONSTEXPR │ │ │ │ │ -612 inline _ForwardIterator │ │ │ │ │ -613 __uninitialized_copy_a(_InputIterator __first, _Sentinel __last, │ │ │ │ │ -614 _ForwardIterator __result, allocator<_Tp>&) │ │ │ │ │ -615 { │ │ │ │ │ -616#ifdef __cpp_lib_is_constant_evaluated │ │ │ │ │ -617 if (std::is_constant_evaluated()) │ │ │ │ │ -618 return std::__do_uninit_copy(_s_t_d_:_:_m_o_v_e(__first), __last, __result); │ │ │ │ │ -619#endif │ │ │ │ │ -620 │ │ │ │ │ -621#ifdef __glibcxx_ranges │ │ │ │ │ -622 if constexpr (!is_same_v<_InputIterator, _Sentinel>) │ │ │ │ │ -623 { │ │ │ │ │ -624 // Convert to a common range if possible, to benefit from memcpy │ │ │ │ │ -625 // optimizations that std::uninitialized_copy might use. │ │ │ │ │ -626 if constexpr (sized_sentinel_for<_Sentinel, _InputIterator> │ │ │ │ │ -627 && random_access_iterator<_InputIterator>) │ │ │ │ │ -628 return _s_t_d_:_:_u_n_i_n_i_t_i_a_l_i_z_e_d___c_o_p_y(__first, │ │ │ │ │ -629 __first + (__last - __first), │ │ │ │ │ -630 __result); │ │ │ │ │ -631 else // Just use default implementation. │ │ │ │ │ -632 return std::__do_uninit_copy(_s_t_d_:_:_m_o_v_e(__first), __last, __result); │ │ │ │ │ -633 } │ │ │ │ │ -634 else │ │ │ │ │ -635 return _s_t_d_:_:_u_n_i_n_i_t_i_a_l_i_z_e_d___c_o_p_y(_s_t_d_:_:_m_o_v_e(__first), __last, __result); │ │ │ │ │ -636#else │ │ │ │ │ -637 return _s_t_d_:_:_u_n_i_n_i_t_i_a_l_i_z_e_d___c_o_p_y(__first, __last, __result); │ │ │ │ │ -638#endif │ │ │ │ │ -639 } │ │ │ │ │ -640#endif │ │ │ │ │ -641 │ │ │ │ │ -642 template │ │ │ │ │ -644 _GLIBCXX20_CONSTEXPR │ │ │ │ │ -645 inline _ForwardIterator │ │ │ │ │ -646 __uninitialized_move_a(_InputIterator __first, _InputIterator __last, │ │ │ │ │ -647 _ForwardIterator __result, _Allocator& __alloc) │ │ │ │ │ -648 { │ │ │ │ │ -649 return std::__uninitialized_copy_a(_GLIBCXX_MAKE_MOVE_ITERATOR(__first), │ │ │ │ │ -650 _GLIBCXX_MAKE_MOVE_ITERATOR(__last), │ │ │ │ │ -651 __result, __alloc); │ │ │ │ │ -652 } │ │ │ │ │ -653 │ │ │ │ │ -654 template │ │ │ │ │ -656 _GLIBCXX20_CONSTEXPR │ │ │ │ │ -657 inline _ForwardIterator │ │ │ │ │ -658 __uninitialized_move_if_noexcept_a(_InputIterator __first, │ │ │ │ │ -659 _InputIterator __last, │ │ │ │ │ -660 _ForwardIterator __result, │ │ │ │ │ -661 _Allocator& __alloc) │ │ │ │ │ -662 { │ │ │ │ │ -663 return std::__uninitialized_copy_a │ │ │ │ │ -664 (_GLIBCXX_MAKE_MOVE_IF_NOEXCEPT_ITERATOR(__first), │ │ │ │ │ -665 _GLIBCXX_MAKE_MOVE_IF_NOEXCEPT_ITERATOR(__last), __result, __alloc); │ │ │ │ │ -666 } │ │ │ │ │ -667 │ │ │ │ │ -668 template │ │ │ │ │ -669 _GLIBCXX20_CONSTEXPR │ │ │ │ │ -670 void │ │ │ │ │ -671 __uninitialized_fill_a(_ForwardIterator __first, _ForwardIterator __last, │ │ │ │ │ -672 const _Tp& __x, _Allocator& __alloc) │ │ │ │ │ -673 { │ │ │ │ │ -674 _UninitDestroyGuard<_ForwardIterator, _Allocator> │ │ │ │ │ -675 __guard(__first, __alloc); │ │ │ │ │ -676 │ │ │ │ │ -677 typedef _____g_n_u___c_x_x_:_:_____a_l_l_o_c___t_r_a_i_t_s_<___A_l_l_o_c_a_t_o_r_> __traits; │ │ │ │ │ -678 for (; __first != __last; ++__first) │ │ │ │ │ -679 __traits::construct(__alloc, _s_t_d_:_:_____a_d_d_r_e_s_s_o_f(*__first), __x); │ │ │ │ │ -680 │ │ │ │ │ -681 __guard.release(); │ │ │ │ │ -682 } │ │ │ │ │ -683 │ │ │ │ │ -684#if _GLIBCXX_HOSTED │ │ │ │ │ -685 template │ │ │ │ │ -686 _GLIBCXX20_CONSTEXPR │ │ │ │ │ -687 inline void │ │ │ │ │ -688 __uninitialized_fill_a(_ForwardIterator __first, _ForwardIterator __last, │ │ │ │ │ -689 const _Tp& __x, allocator<_Tp2>&) │ │ │ │ │ -690 { │ │ │ │ │ -691#ifdef __cpp_lib_is_constant_evaluated │ │ │ │ │ -692 if (std::is_constant_evaluated()) │ │ │ │ │ -693 return std::__do_uninit_fill(__first, __last, __x); │ │ │ │ │ -694#endif │ │ │ │ │ -695 _s_t_d_:_:_u_n_i_n_i_t_i_a_l_i_z_e_d___f_i_l_l(__first, __last, __x); │ │ │ │ │ -696 } │ │ │ │ │ -697#endif │ │ │ │ │ -698 │ │ │ │ │ -699 template │ │ │ │ │ -701 _GLIBCXX20_CONSTEXPR │ │ │ │ │ -702 _ForwardIterator │ │ │ │ │ -703 __uninitialized_fill_n_a(_ForwardIterator __first, _Size __n, │ │ │ │ │ -704 const _Tp& __x, _Allocator& __alloc) │ │ │ │ │ -705 { │ │ │ │ │ -706 _UninitDestroyGuard<_ForwardIterator, _Allocator> │ │ │ │ │ -707 __guard(__first, __alloc); │ │ │ │ │ -708 typedef _____g_n_u___c_x_x_:_:_____a_l_l_o_c___t_r_a_i_t_s_<___A_l_l_o_c_a_t_o_r_> __traits; │ │ │ │ │ -709 for (; __n > 0; --__n, (void) ++__first) │ │ │ │ │ -710 __traits::construct(__alloc, _s_t_d_:_:_____a_d_d_r_e_s_s_o_f(*__first), __x); │ │ │ │ │ -711 __guard.release(); │ │ │ │ │ -712 return __first; │ │ │ │ │ -713 } │ │ │ │ │ -714 │ │ │ │ │ -715#if _GLIBCXX_HOSTED │ │ │ │ │ -716 template │ │ │ │ │ -718 _GLIBCXX20_CONSTEXPR │ │ │ │ │ -719 inline _ForwardIterator │ │ │ │ │ -720 __uninitialized_fill_n_a(_ForwardIterator __first, _Size __n, │ │ │ │ │ -721 const _Tp& __x, allocator<_Tp2>&) │ │ │ │ │ -722 { │ │ │ │ │ -723#ifdef __cpp_lib_is_constant_evaluated │ │ │ │ │ -724 if (std::is_constant_evaluated()) │ │ │ │ │ -725 return std::__do_uninit_fill_n(__first, __n, __x); │ │ │ │ │ -726#endif │ │ │ │ │ -727 return _s_t_d_:_:_u_n_i_n_i_t_i_a_l_i_z_e_d___f_i_l_l___n(__first, __n, __x); │ │ │ │ │ -728 } │ │ │ │ │ -729#endif │ │ │ │ │ -730 │ │ │ │ │ -731 // Extensions: __uninitialized_copy_move, __uninitialized_move_copy, │ │ │ │ │ -732 // __uninitialized_fill_move, __uninitialized_move_fill. │ │ │ │ │ -733 // All of these algorithms take a user-supplied allocator, which is used │ │ │ │ │ -734 // for construction and destruction. │ │ │ │ │ -735 │ │ │ │ │ -736 // __uninitialized_copy_move │ │ │ │ │ -737 // Copies [first1, last1) into [result, result + (last1 - first1)), and │ │ │ │ │ -738 // move [first2, last2) into │ │ │ │ │ -739 // [result, result + (last1 - first1) + (last2 - first2)). │ │ │ │ │ -740 template │ │ │ │ │ -742 inline _ForwardIterator │ │ │ │ │ -743 __uninitialized_copy_move(_InputIterator1 __first1, │ │ │ │ │ -744 _InputIterator1 __last1, │ │ │ │ │ -745 _InputIterator2 __first2, │ │ │ │ │ -746 _InputIterator2 __last2, │ │ │ │ │ -747 _ForwardIterator __result, │ │ │ │ │ -748 _Allocator& __alloc) │ │ │ │ │ -749 { │ │ │ │ │ -750 _ForwardIterator __mid = std::__uninitialized_copy_a(__first1, __last1, │ │ │ │ │ -751 __result, __alloc); │ │ │ │ │ -752 _UninitDestroyGuard<_ForwardIterator, _Allocator> __guard(__result, │ │ │ │ │ -753 __alloc); │ │ │ │ │ -754 __result = __mid; // Everything up to __mid is now guarded. │ │ │ │ │ -755 __result = std::__uninitialized_move_a(__first2, __last2, __mid, __alloc); │ │ │ │ │ -756 __guard.release(); │ │ │ │ │ -757 return __result; │ │ │ │ │ -758 } │ │ │ │ │ -759 │ │ │ │ │ -760 // __uninitialized_move_copy │ │ │ │ │ -761 // Moves [first1, last1) into [result, result + (last1 - first1)), and │ │ │ │ │ -762 // copies [first2, last2) into │ │ │ │ │ -763 // [result, result + (last1 - first1) + (last2 - first2)). │ │ │ │ │ -764 template │ │ │ │ │ -766 inline _ForwardIterator │ │ │ │ │ -767 __uninitialized_move_copy(_InputIterator1 __first1, │ │ │ │ │ -768 _InputIterator1 __last1, │ │ │ │ │ -769 _InputIterator2 __first2, │ │ │ │ │ -770 _InputIterator2 __last2, │ │ │ │ │ -771 _ForwardIterator __result, │ │ │ │ │ -772 _Allocator& __alloc) │ │ │ │ │ -773 { │ │ │ │ │ -774 _ForwardIterator __mid = std::__uninitialized_move_a(__first1, __last1, │ │ │ │ │ -775 __result, __alloc); │ │ │ │ │ -776 _UninitDestroyGuard<_ForwardIterator, _Allocator> __guard(__result, │ │ │ │ │ -777 __alloc); │ │ │ │ │ -778 __result = __mid; // Everything up to __mid is now guarded. │ │ │ │ │ -779 __result = std::__uninitialized_copy_a(__first2, __last2, __mid, __alloc); │ │ │ │ │ -780 __guard.release(); │ │ │ │ │ -781 return __result; │ │ │ │ │ -782 } │ │ │ │ │ -783 │ │ │ │ │ -784 // __uninitialized_fill_move │ │ │ │ │ -785 // Fills [result, mid) with x, and moves [first, last) into │ │ │ │ │ -786 // [mid, mid + (last - first)). │ │ │ │ │ -787 template │ │ │ │ │ -789 inline _ForwardIterator │ │ │ │ │ -790 __uninitialized_fill_move(_ForwardIterator __result, _ForwardIterator │ │ │ │ │ -__mid, │ │ │ │ │ -791 const _Tp& __x, _InputIterator __first, │ │ │ │ │ -792 _InputIterator __last, _Allocator& __alloc) │ │ │ │ │ -793 { │ │ │ │ │ -794 std::__uninitialized_fill_a(__result, __mid, __x, __alloc); │ │ │ │ │ -795 _UninitDestroyGuard<_ForwardIterator, _Allocator> __guard(__result, │ │ │ │ │ -796 __alloc); │ │ │ │ │ -797 __result = __mid; // Everything up to __mid is now guarded. │ │ │ │ │ -798 __result = std::__uninitialized_move_a(__first, __last, __mid, __alloc); │ │ │ │ │ -799 __guard.release(); │ │ │ │ │ -800 return __result; │ │ │ │ │ -801 } │ │ │ │ │ -802 │ │ │ │ │ -803 // __uninitialized_move_fill │ │ │ │ │ -804 // Moves [first1, last1) into [first2, first2 + (last1 - first1)), and │ │ │ │ │ -805 // fills [first2 + (last1 - first1), last2) with x. │ │ │ │ │ -806 template │ │ │ │ │ -808 inline void │ │ │ │ │ -809 __uninitialized_move_fill(_InputIterator __first1, _InputIterator __last1, │ │ │ │ │ -810 _ForwardIterator __first2, │ │ │ │ │ -811 _ForwardIterator __last2, const _Tp& __x, │ │ │ │ │ -812 _Allocator& __alloc) │ │ │ │ │ -813 { │ │ │ │ │ -814 _ForwardIterator __mid2 = std::__uninitialized_move_a(__first1, __last1, │ │ │ │ │ -815 __first2, │ │ │ │ │ -816 __alloc); │ │ │ │ │ -817 _UninitDestroyGuard<_ForwardIterator, _Allocator> __guard(__first2, │ │ │ │ │ -818 __alloc); │ │ │ │ │ -819 __first2 = __mid2; // Everything up to __mid2 is now guarded. │ │ │ │ │ -820 std::__uninitialized_fill_a(__mid2, __last2, __x, __alloc); │ │ │ │ │ -821 __guard.release(); │ │ │ │ │ -822 } │ │ │ │ │ -823 │ │ │ │ │ -824 /// @endcond │ │ │ │ │ -825 │ │ │ │ │ -826#if __cplusplus >= 201103L │ │ │ │ │ -827 /// @cond undocumented │ │ │ │ │ -828 │ │ │ │ │ -829 // Extensions: __uninitialized_default, __uninitialized_default_n, │ │ │ │ │ -830 // __uninitialized_default_a, __uninitialized_default_n_a. │ │ │ │ │ -831 │ │ │ │ │ -832 template │ │ │ │ │ -833 struct __uninitialized_default_1 │ │ │ │ │ -834 { │ │ │ │ │ -835 template │ │ │ │ │ -836 _GLIBCXX26_CONSTEXPR │ │ │ │ │ -837 static void │ │ │ │ │ -838 __uninit_default(_ForwardIterator __first, _ForwardIterator __last) │ │ │ │ │ -839 { │ │ │ │ │ -840 _UninitDestroyGuard<_ForwardIterator> __guard(__first); │ │ │ │ │ -841 for (; __first != __last; ++__first) │ │ │ │ │ -842 _s_t_d_:_:___C_o_n_s_t_r_u_c_t(_s_t_d_:_:_____a_d_d_r_e_s_s_o_f(*__first)); │ │ │ │ │ -843 __guard.release(); │ │ │ │ │ -844 } │ │ │ │ │ -845 }; │ │ │ │ │ -846 │ │ │ │ │ -847 template<> │ │ │ │ │ -848 struct __uninitialized_default_1 │ │ │ │ │ -849 { │ │ │ │ │ -850 template │ │ │ │ │ -851 _GLIBCXX26_CONSTEXPR │ │ │ │ │ -852 static void │ │ │ │ │ -853 __uninit_default(_ForwardIterator __first, _ForwardIterator __last) │ │ │ │ │ -854 { │ │ │ │ │ -855 if (__first == __last) │ │ │ │ │ -856 return; │ │ │ │ │ -857 │ │ │ │ │ -858 typename iterator_traits<_ForwardIterator>::value_type* __val │ │ │ │ │ -859 = _s_t_d_:_:_____a_d_d_r_e_s_s_o_f(*__first); │ │ │ │ │ -860 _s_t_d_:_:___C_o_n_s_t_r_u_c_t(__val); │ │ │ │ │ -861 if (++__first != __last) │ │ │ │ │ -862 std::fill(__first, __last, *__val); │ │ │ │ │ -863 } │ │ │ │ │ -864 }; │ │ │ │ │ -865 │ │ │ │ │ -866 template │ │ │ │ │ -867 struct __uninitialized_default_n_1 │ │ │ │ │ -868 { │ │ │ │ │ -869 template │ │ │ │ │ -870 _GLIBCXX20_CONSTEXPR │ │ │ │ │ -871 static _ForwardIterator │ │ │ │ │ -872 __uninit_default_n(_ForwardIterator __first, _Size __n) │ │ │ │ │ -873 { │ │ │ │ │ -874 _UninitDestroyGuard<_ForwardIterator> __guard(__first); │ │ │ │ │ -875 for (; __n > 0; --__n, (void) ++__first) │ │ │ │ │ -876 _s_t_d_:_:___C_o_n_s_t_r_u_c_t(_s_t_d_:_:_____a_d_d_r_e_s_s_o_f(*__first)); │ │ │ │ │ -877 __guard.release(); │ │ │ │ │ -878 return __first; │ │ │ │ │ -879 } │ │ │ │ │ -880 }; │ │ │ │ │ -881 │ │ │ │ │ -882 template<> │ │ │ │ │ -883 struct __uninitialized_default_n_1 │ │ │ │ │ -884 { │ │ │ │ │ -885 template │ │ │ │ │ -886 _GLIBCXX20_CONSTEXPR │ │ │ │ │ -887 static _ForwardIterator │ │ │ │ │ -888 __uninit_default_n(_ForwardIterator __first, _Size __n) │ │ │ │ │ -889 { │ │ │ │ │ -890 if (__n > 0) │ │ │ │ │ -891 { │ │ │ │ │ -892 typename iterator_traits<_ForwardIterator>::value_type* __val │ │ │ │ │ -893 = _s_t_d_:_:_____a_d_d_r_e_s_s_o_f(*__first); │ │ │ │ │ -894 _s_t_d_:_:___C_o_n_s_t_r_u_c_t(__val); │ │ │ │ │ -895 ++__first; │ │ │ │ │ -896 __first = std::fill_n(__first, __n - 1, *__val); │ │ │ │ │ -897 } │ │ │ │ │ -898 return __first; │ │ │ │ │ -899 } │ │ │ │ │ -900 }; │ │ │ │ │ -901 │ │ │ │ │ -902 // __uninitialized_default │ │ │ │ │ -903 // Fills [first, last) with value-initialized value_types. │ │ │ │ │ -904 template │ │ │ │ │ -905 _GLIBCXX26_CONSTEXPR │ │ │ │ │ -906 inline void │ │ │ │ │ -907 __uninitialized_default(_ForwardIterator __first, │ │ │ │ │ -908 _ForwardIterator __last) │ │ │ │ │ -909 { │ │ │ │ │ -910 typedef typename iterator_traits<_ForwardIterator>::value_type │ │ │ │ │ -911 _ValueType; │ │ │ │ │ -912 // trivial types can have deleted assignment │ │ │ │ │ -913 const bool __assignable = is_copy_assignable<_ValueType>::value; │ │ │ │ │ -914 │ │ │ │ │ -915 std::__uninitialized_default_1<__is_trivial(_ValueType) │ │ │ │ │ -916 && __assignable>:: │ │ │ │ │ -917 __uninit_default(__first, __last); │ │ │ │ │ -918 } │ │ │ │ │ -919 │ │ │ │ │ -920 // __uninitialized_default_n │ │ │ │ │ -921 // Fills [first, first + n) with value-initialized value_types. │ │ │ │ │ -922 template │ │ │ │ │ -923 _GLIBCXX20_CONSTEXPR │ │ │ │ │ -924 inline _ForwardIterator │ │ │ │ │ -925 __uninitialized_default_n(_ForwardIterator __first, _Size __n) │ │ │ │ │ -926 { │ │ │ │ │ -927#ifdef __cpp_lib_is_constant_evaluated │ │ │ │ │ -928 if (std::is_constant_evaluated()) │ │ │ │ │ -929 return __uninitialized_default_n_1:: │ │ │ │ │ -930 __uninit_default_n(__first, __n); │ │ │ │ │ -931#endif │ │ │ │ │ -932 │ │ │ │ │ -933 typedef typename iterator_traits<_ForwardIterator>::value_type │ │ │ │ │ -934 _ValueType; │ │ │ │ │ -935 // See uninitialized_fill_n for the conditions for using std::fill_n. │ │ │ │ │ -936 constexpr bool __can_fill │ │ │ │ │ -937 = __and_, is_copy_assignable<_ValueType>>::value; │ │ │ │ │ -938 │ │ │ │ │ -939 return __uninitialized_default_n_1<__is_trivial(_ValueType) │ │ │ │ │ -940 && __can_fill>:: │ │ │ │ │ -941 __uninit_default_n(__first, __n); │ │ │ │ │ -942 } │ │ │ │ │ -943 │ │ │ │ │ -944 │ │ │ │ │ -945 // __uninitialized_default_a │ │ │ │ │ -946 // Fills [first, last) with value_types constructed by the allocator │ │ │ │ │ -947 // alloc, with no arguments passed to the construct call. │ │ │ │ │ -948 template │ │ │ │ │ -949 void │ │ │ │ │ -950 __uninitialized_default_a(_ForwardIterator __first, │ │ │ │ │ -951 _ForwardIterator __last, │ │ │ │ │ -952 _Allocator& __alloc) │ │ │ │ │ -953 { │ │ │ │ │ -954 _UninitDestroyGuard<_ForwardIterator, _Allocator> __guard(__first, │ │ │ │ │ -955 __alloc); │ │ │ │ │ -956 typedef _____g_n_u___c_x_x_:_:_____a_l_l_o_c___t_r_a_i_t_s_<___A_l_l_o_c_a_t_o_r_> __traits; │ │ │ │ │ -957 for (; __first != __last; ++__first) │ │ │ │ │ -958 __traits::construct(__alloc, _s_t_d_:_:_____a_d_d_r_e_s_s_o_f(*__first)); │ │ │ │ │ -959 __guard.release(); │ │ │ │ │ -960 } │ │ │ │ │ -961 │ │ │ │ │ -962#if _GLIBCXX_HOSTED │ │ │ │ │ -963 template │ │ │ │ │ -964 inline void │ │ │ │ │ -965 __uninitialized_default_a(_ForwardIterator __first, │ │ │ │ │ -966 _ForwardIterator __last, │ │ │ │ │ -967 allocator<_Tp>&) │ │ │ │ │ -968 { std::__uninitialized_default(__first, __last); } │ │ │ │ │ -969#endif │ │ │ │ │ -970 │ │ │ │ │ -971 // __uninitialized_default_n_a │ │ │ │ │ -972 // Fills [first, first + n) with value_types constructed by the allocator │ │ │ │ │ -973 // alloc, with no arguments passed to the construct call. │ │ │ │ │ -974 template │ │ │ │ │ -975 _GLIBCXX20_CONSTEXPR _ForwardIterator │ │ │ │ │ -976 __uninitialized_default_n_a(_ForwardIterator __first, _Size __n, │ │ │ │ │ -977 _Allocator& __alloc) │ │ │ │ │ -978 { │ │ │ │ │ -979 _UninitDestroyGuard<_ForwardIterator, _Allocator> __guard(__first, │ │ │ │ │ -980 __alloc); │ │ │ │ │ -981 typedef _____g_n_u___c_x_x_:_:_____a_l_l_o_c___t_r_a_i_t_s_<___A_l_l_o_c_a_t_o_r_> __traits; │ │ │ │ │ -982 for (; __n > 0; --__n, (void) ++__first) │ │ │ │ │ -983 __traits::construct(__alloc, _s_t_d_:_:_____a_d_d_r_e_s_s_o_f(*__first)); │ │ │ │ │ -984 __guard.release(); │ │ │ │ │ -985 return __first; │ │ │ │ │ -986 } │ │ │ │ │ -987 │ │ │ │ │ -988#if _GLIBCXX_HOSTED │ │ │ │ │ -989 // __uninitialized_default_n_a specialization for std::allocator, │ │ │ │ │ -990 // which ignores the allocator and value-initializes the elements. │ │ │ │ │ -991 template │ │ │ │ │ -992 _GLIBCXX20_CONSTEXPR │ │ │ │ │ -993 inline _ForwardIterator │ │ │ │ │ -994 __uninitialized_default_n_a(_ForwardIterator __first, _Size __n, │ │ │ │ │ -995 allocator<_Tp>&) │ │ │ │ │ -996 { return std::__uninitialized_default_n(__first, __n); } │ │ │ │ │ -997#endif │ │ │ │ │ -998 │ │ │ │ │ -999 template │ │ │ │ │ -1000 struct __uninitialized_default_novalue_1 │ │ │ │ │ -1001 { │ │ │ │ │ -1002 template │ │ │ │ │ -1003 _GLIBCXX26_CONSTEXPR │ │ │ │ │ -1004 static void │ │ │ │ │ -1005 __uninit_default_novalue(_ForwardIterator __first, │ │ │ │ │ -1006 _ForwardIterator __last) │ │ │ │ │ -1007 { │ │ │ │ │ -1008 _UninitDestroyGuard<_ForwardIterator> __guard(__first); │ │ │ │ │ -1009 for (; __first != __last; ++__first) │ │ │ │ │ -1010 std::_Construct_novalue(_s_t_d_:_:_____a_d_d_r_e_s_s_o_f(*__first)); │ │ │ │ │ -1011 __guard.release(); │ │ │ │ │ -1012 } │ │ │ │ │ -1013 }; │ │ │ │ │ -1014 │ │ │ │ │ -1015 template<> │ │ │ │ │ -1016 struct __uninitialized_default_novalue_1 │ │ │ │ │ -1017 { │ │ │ │ │ -1018 template │ │ │ │ │ -1019 _GLIBCXX26_CONSTEXPR │ │ │ │ │ -1020 static void │ │ │ │ │ -1021 __uninit_default_novalue(_ForwardIterator, _ForwardIterator) │ │ │ │ │ -1022 { │ │ │ │ │ -1023 } │ │ │ │ │ -1024 }; │ │ │ │ │ -1025 │ │ │ │ │ -1026 template │ │ │ │ │ -1027 struct __uninitialized_default_novalue_n_1 │ │ │ │ │ -1028 { │ │ │ │ │ -1029 template │ │ │ │ │ -1030 _GLIBCXX26_CONSTEXPR │ │ │ │ │ -1031 static _ForwardIterator │ │ │ │ │ -1032 __uninit_default_novalue_n(_ForwardIterator __first, _Size __n) │ │ │ │ │ -1033 { │ │ │ │ │ -1034 _UninitDestroyGuard<_ForwardIterator> __guard(__first); │ │ │ │ │ -1035 for (; __n > 0; --__n, (void) ++__first) │ │ │ │ │ -1036 std::_Construct_novalue(_s_t_d_:_:_____a_d_d_r_e_s_s_o_f(*__first)); │ │ │ │ │ -1037 __guard.release(); │ │ │ │ │ -1038 return __first; │ │ │ │ │ -1039 } │ │ │ │ │ -1040 }; │ │ │ │ │ -1041 │ │ │ │ │ -1042 template<> │ │ │ │ │ -1043 struct __uninitialized_default_novalue_n_1 │ │ │ │ │ -1044 { │ │ │ │ │ -1045 template │ │ │ │ │ -1046 _GLIBCXX26_CONSTEXPR │ │ │ │ │ -1047 static _ForwardIterator │ │ │ │ │ -1048 __uninit_default_novalue_n(_ForwardIterator __first, _Size __n) │ │ │ │ │ -1049 { return std::next(__first, __n); } │ │ │ │ │ -1050 }; │ │ │ │ │ -1051 │ │ │ │ │ -1052 // __uninitialized_default_novalue │ │ │ │ │ -1053 // Fills [first, last) with default-initialized value_types. │ │ │ │ │ -1054 template │ │ │ │ │ -1055 _GLIBCXX26_CONSTEXPR │ │ │ │ │ -1056 inline void │ │ │ │ │ -1057 __uninitialized_default_novalue(_ForwardIterator __first, │ │ │ │ │ -1058 _ForwardIterator __last) │ │ │ │ │ -1059 { │ │ │ │ │ -1060 typedef typename iterator_traits<_ForwardIterator>::value_type │ │ │ │ │ -1061 _ValueType; │ │ │ │ │ -1062 │ │ │ │ │ -1063 std::__uninitialized_default_novalue_1< │ │ │ │ │ -1064 is_trivially_default_constructible<_ValueType>::value>:: │ │ │ │ │ -1065 __uninit_default_novalue(__first, __last); │ │ │ │ │ -1066 } │ │ │ │ │ -1067 │ │ │ │ │ -1068 // __uninitialized_default_novalue_n │ │ │ │ │ -1069 // Fills [first, first + n) with default-initialized value_types. │ │ │ │ │ -1070 template │ │ │ │ │ -1071 _GLIBCXX26_CONSTEXPR │ │ │ │ │ -1072 inline _ForwardIterator │ │ │ │ │ -1073 __uninitialized_default_novalue_n(_ForwardIterator __first, _Size __n) │ │ │ │ │ -1074 { │ │ │ │ │ -1075 typedef typename iterator_traits<_ForwardIterator>::value_type │ │ │ │ │ -1076 _ValueType; │ │ │ │ │ -1077 │ │ │ │ │ -1078 return __uninitialized_default_novalue_n_1< │ │ │ │ │ -1079 is_trivially_default_constructible<_ValueType>::value>:: │ │ │ │ │ -1080 __uninit_default_novalue_n(__first, __n); │ │ │ │ │ -1081 } │ │ │ │ │ -1082 │ │ │ │ │ -1083 template │ │ │ │ │ -1085 _GLIBCXX26_CONSTEXPR │ │ │ │ │ -1086 _ForwardIterator │ │ │ │ │ -1087 __uninitialized_copy_n(_InputIterator __first, _Size __n, │ │ │ │ │ -1088 _ForwardIterator __result, input_iterator_tag) │ │ │ │ │ -1089 { │ │ │ │ │ -1090 _UninitDestroyGuard<_ForwardIterator> __guard(__result); │ │ │ │ │ -1091 for (; __n > 0; --__n, (void) ++__first, ++__result) │ │ │ │ │ -1092 _s_t_d_:_:___C_o_n_s_t_r_u_c_t(_s_t_d_:_:_____a_d_d_r_e_s_s_o_f(*__result), *__first); │ │ │ │ │ -1093 __guard.release(); │ │ │ │ │ -1094 return __result; │ │ │ │ │ -1095 } │ │ │ │ │ -1096 │ │ │ │ │ -1097 template │ │ │ │ │ -1099 _GLIBCXX26_CONSTEXPR │ │ │ │ │ -1100 inline _ForwardIterator │ │ │ │ │ -1101 __uninitialized_copy_n(_RandomAccessIterator __first, _Size __n, │ │ │ │ │ -1102 _ForwardIterator __result, │ │ │ │ │ -1103 random_access_iterator_tag) │ │ │ │ │ -1104 { return _s_t_d_:_:_u_n_i_n_i_t_i_a_l_i_z_e_d___c_o_p_y(__first, __first + __n, __result); } │ │ │ │ │ -1105 │ │ │ │ │ -1106 template │ │ │ │ │ -1108 _GLIBCXX26_CONSTEXPR │ │ │ │ │ -1109 pair<_InputIterator, _ForwardIterator> │ │ │ │ │ -1110 __uninitialized_copy_n_pair(_InputIterator __first, _Size __n, │ │ │ │ │ -1111 _ForwardIterator __result, input_iterator_tag) │ │ │ │ │ -1112 { │ │ │ │ │ -1113 _UninitDestroyGuard<_ForwardIterator> __guard(__result); │ │ │ │ │ -1114 for (; __n > 0; --__n, (void) ++__first, ++__result) │ │ │ │ │ -1115 _s_t_d_:_:___C_o_n_s_t_r_u_c_t(_s_t_d_:_:_____a_d_d_r_e_s_s_o_f(*__result), *__first); │ │ │ │ │ -1116 __guard.release(); │ │ │ │ │ -1117 return {__first, __result}; │ │ │ │ │ -1118 } │ │ │ │ │ -1119 │ │ │ │ │ -1120 template │ │ │ │ │ -1122 _GLIBCXX26_CONSTEXPR │ │ │ │ │ -1123 inline pair<_RandomAccessIterator, _ForwardIterator> │ │ │ │ │ -1124 __uninitialized_copy_n_pair(_RandomAccessIterator __first, _Size __n, │ │ │ │ │ -1125 _ForwardIterator __result, │ │ │ │ │ -1126 random_access_iterator_tag) │ │ │ │ │ -1127 { │ │ │ │ │ -1128 auto __second_res = _u_n_i_n_i_t_i_a_l_i_z_e_d___c_o_p_y(__first, __first + __n, __result); │ │ │ │ │ -1129 auto __first_res = std::next(__first, __n); │ │ │ │ │ -1130 return {__first_res, __second_res}; │ │ │ │ │ -1131 } │ │ │ │ │ -1132 │ │ │ │ │ -1133 /// @endcond │ │ │ │ │ -1134 │ │ │ │ │ -1135 /** │ │ │ │ │ -1136 * @brief Copies the range [first,first+n) into result. │ │ │ │ │ -1137 * @param __first An input iterator. │ │ │ │ │ -1138 * @param __n The number of elements to copy. │ │ │ │ │ -1139 * @param __result An output iterator. │ │ │ │ │ -1140 * @return __result + __n │ │ │ │ │ -1141 * @since C++11 │ │ │ │ │ -1142 * │ │ │ │ │ -1143 * Like copy_n(), but does not require an initialized output range. │ │ │ │ │ -1144 */ │ │ │ │ │ -1145 template │ │ │ │ │ -1146 _GLIBCXX26_CONSTEXPR │ │ │ │ │ -1147 inline _ForwardIterator │ │ │ │ │ -_1_1_4_8 _u_n_i_n_i_t_i_a_l_i_z_e_d___c_o_p_y___n(_InputIterator __first, _Size __n, │ │ │ │ │ -1149 _ForwardIterator __result) │ │ │ │ │ -1150 { return std::__uninitialized_copy_n(__first, __n, __result, │ │ │ │ │ -1151 _s_t_d_:_:_____i_t_e_r_a_t_o_r___c_a_t_e_g_o_r_y(__first)); } │ │ │ │ │ -1152 │ │ │ │ │ -1153 /// @cond undocumented │ │ │ │ │ -1154 template │ │ │ │ │ -1155 _GLIBCXX26_CONSTEXPR │ │ │ │ │ -1156 inline pair<_InputIterator, _ForwardIterator> │ │ │ │ │ -1157 __uninitialized_copy_n_pair(_InputIterator __first, _Size __n, │ │ │ │ │ -1158 _ForwardIterator __result) │ │ │ │ │ -1159 { │ │ │ │ │ -1160 return │ │ │ │ │ -1161 std::__uninitialized_copy_n_pair(__first, __n, __result, │ │ │ │ │ -1162 _s_t_d_:_:_____i_t_e_r_a_t_o_r___c_a_t_e_g_o_r_y(__first)); │ │ │ │ │ -1163 } │ │ │ │ │ -1164 /// @endcond │ │ │ │ │ -1165#endif │ │ │ │ │ -1166 │ │ │ │ │ -1167#ifdef __glibcxx_raw_memory_algorithms // C++ >= 17 │ │ │ │ │ -1168 /** │ │ │ │ │ -1169 * @brief Default-initializes objects in the range [first,last). │ │ │ │ │ -1170 * @param __first A forward iterator. │ │ │ │ │ -1171 * @param __last A forward iterator. │ │ │ │ │ -1172 * @since C++17 │ │ │ │ │ -1173 */ │ │ │ │ │ -1174 template │ │ │ │ │ -1175 _GLIBCXX26_CONSTEXPR │ │ │ │ │ -1176 inline void │ │ │ │ │ -_1_1_7_7 _u_n_i_n_i_t_i_a_l_i_z_e_d___d_e_f_a_u_l_t___c_o_n_s_t_r_u_c_t(_ForwardIterator __first, │ │ │ │ │ -1178 _ForwardIterator __last) │ │ │ │ │ -1179 { │ │ │ │ │ -1180 std::__uninitialized_default_novalue(__first, __last); │ │ │ │ │ -1181 } │ │ │ │ │ -1182 │ │ │ │ │ -1183 /** │ │ │ │ │ -1184 * @brief Default-initializes objects in the range [first,first+count). │ │ │ │ │ -1185 * @param __first A forward iterator. │ │ │ │ │ -1186 * @param __count The number of objects to construct. │ │ │ │ │ -1187 * @return __first + __count │ │ │ │ │ -1188 * @since C++17 │ │ │ │ │ -1189 */ │ │ │ │ │ -1190 template │ │ │ │ │ -1191 _GLIBCXX26_CONSTEXPR │ │ │ │ │ -1192 inline _ForwardIterator │ │ │ │ │ -_1_1_9_3 _u_n_i_n_i_t_i_a_l_i_z_e_d___d_e_f_a_u_l_t___c_o_n_s_t_r_u_c_t___n(_ForwardIterator __first, _Size __count) │ │ │ │ │ -1194 { │ │ │ │ │ -1195 return std::__uninitialized_default_novalue_n(__first, __count); │ │ │ │ │ -1196 } │ │ │ │ │ -1197 │ │ │ │ │ -1198 /** │ │ │ │ │ -1199 * @brief Value-initializes objects in the range [first,last). │ │ │ │ │ -1200 * @param __first A forward iterator. │ │ │ │ │ -1201 * @param __last A forward iterator. │ │ │ │ │ -1202 * @since C++17 │ │ │ │ │ -1203 */ │ │ │ │ │ -1204 template │ │ │ │ │ -1205 _GLIBCXX26_CONSTEXPR │ │ │ │ │ -1206 inline void │ │ │ │ │ -_1_2_0_7 _u_n_i_n_i_t_i_a_l_i_z_e_d___v_a_l_u_e___c_o_n_s_t_r_u_c_t(_ForwardIterator __first, │ │ │ │ │ -1208 _ForwardIterator __last) │ │ │ │ │ -1209 { │ │ │ │ │ -1210 return std::__uninitialized_default(__first, __last); │ │ │ │ │ -1211 } │ │ │ │ │ -1212 │ │ │ │ │ -1213 /** │ │ │ │ │ -1214 * @brief Value-initializes objects in the range [first,first+count). │ │ │ │ │ -1215 * @param __first A forward iterator. │ │ │ │ │ -1216 * @param __count The number of objects to construct. │ │ │ │ │ -1217 * @return __result + __count │ │ │ │ │ -1218 * @since C++17 │ │ │ │ │ -1219 */ │ │ │ │ │ -1220 template │ │ │ │ │ -1221 _GLIBCXX26_CONSTEXPR │ │ │ │ │ -1222 inline _ForwardIterator │ │ │ │ │ -_1_2_2_3 _u_n_i_n_i_t_i_a_l_i_z_e_d___v_a_l_u_e___c_o_n_s_t_r_u_c_t___n(_ForwardIterator __first, _Size __count) │ │ │ │ │ -1224 { │ │ │ │ │ -1225 return std::__uninitialized_default_n(__first, __count); │ │ │ │ │ -1226 } │ │ │ │ │ -1227 │ │ │ │ │ -1228 /** │ │ │ │ │ -1229 * @brief Move-construct from the range [first,last) into result. │ │ │ │ │ -1230 * @param __first An input iterator. │ │ │ │ │ -1231 * @param __last An input iterator. │ │ │ │ │ -1232 * @param __result An output iterator. │ │ │ │ │ -1233 * @return __result + (__first - __last) │ │ │ │ │ -1234 * @since C++17 │ │ │ │ │ -1235 */ │ │ │ │ │ -1236 template │ │ │ │ │ -1237 _GLIBCXX26_CONSTEXPR │ │ │ │ │ -1238 inline _ForwardIterator │ │ │ │ │ -_1_2_3_9 _u_n_i_n_i_t_i_a_l_i_z_e_d___m_o_v_e(_InputIterator __first, _InputIterator __last, │ │ │ │ │ -1240 _ForwardIterator __result) │ │ │ │ │ -1241 { │ │ │ │ │ -1242 return _s_t_d_:_:_u_n_i_n_i_t_i_a_l_i_z_e_d___c_o_p_y │ │ │ │ │ -1243 (_GLIBCXX_MAKE_MOVE_ITERATOR(__first), │ │ │ │ │ -1244 _GLIBCXX_MAKE_MOVE_ITERATOR(__last), __result); │ │ │ │ │ -1245 } │ │ │ │ │ -1246 │ │ │ │ │ -1247 /** │ │ │ │ │ -1248 * @brief Move-construct from the range [first,first+count) into result. │ │ │ │ │ -1249 * @param __first An input iterator. │ │ │ │ │ -1250 * @param __count The number of objects to initialize. │ │ │ │ │ -1251 * @param __result An output iterator. │ │ │ │ │ -1252 * @return __result + __count │ │ │ │ │ -1253 * @since C++17 │ │ │ │ │ -1254 */ │ │ │ │ │ -1255 template │ │ │ │ │ -1256 _GLIBCXX26_CONSTEXPR │ │ │ │ │ -1257 inline pair<_InputIterator, _ForwardIterator> │ │ │ │ │ -_1_2_5_8 _u_n_i_n_i_t_i_a_l_i_z_e_d___m_o_v_e___n(_InputIterator __first, _Size __count, │ │ │ │ │ -1259 _ForwardIterator __result) │ │ │ │ │ -1260 { │ │ │ │ │ -1261 auto __res = std::__uninitialized_copy_n_pair │ │ │ │ │ -1262 (_GLIBCXX_MAKE_MOVE_ITERATOR(__first), │ │ │ │ │ -1263 __count, __result); │ │ │ │ │ -1264 return {__res.first.base(), __res.second}; │ │ │ │ │ -1265 } │ │ │ │ │ -1266#endif // __glibcxx_raw_memory_algorithms │ │ │ │ │ -1267 │ │ │ │ │ -1268#if __cplusplus >= 201103L │ │ │ │ │ -1269 /// @cond undocumented │ │ │ │ │ -1270 │ │ │ │ │ -1271 template │ │ │ │ │ -1272 _GLIBCXX20_CONSTEXPR │ │ │ │ │ -1273 inline void │ │ │ │ │ -1274 __relocate_object_a(_Tp* __restrict __dest, _Up* __restrict __orig, │ │ │ │ │ -1275 _Allocator& __alloc) │ │ │ │ │ -1276 noexcept(noexcept(_s_t_d_:_:_a_l_l_o_c_a_t_o_r___t_r_a_i_t_s_<___A_l_l_o_c_a_t_o_r_>_:_:_c_o_n_s_t_r_u_c_t(__alloc, │ │ │ │ │ -1277 __dest, _s_t_d_:_:_m_o_v_e(*__orig))) │ │ │ │ │ -1278 && noexcept(_s_t_d_:_:_a_l_l_o_c_a_t_o_r___t_r_a_i_t_s_<___A_l_l_o_c_a_t_o_r_>_:_:_d_e_s_t_r_o_y( │ │ │ │ │ -1279 __alloc, _s_t_d_:_:_____a_d_d_r_e_s_s_o_f(*__orig)))) │ │ │ │ │ -1280 { │ │ │ │ │ -1281 typedef _s_t_d_:_:_a_l_l_o_c_a_t_o_r___t_r_a_i_t_s_<___A_l_l_o_c_a_t_o_r_> __traits; │ │ │ │ │ -1282 __traits::construct(__alloc, __dest, _s_t_d_:_:_m_o_v_e(*__orig)); │ │ │ │ │ -1283 __traits::destroy(__alloc, _s_t_d_:_:_____a_d_d_r_e_s_s_o_f(*__orig)); │ │ │ │ │ -1284 } │ │ │ │ │ -1285 │ │ │ │ │ -1286 // This class may be specialized for specific types. │ │ │ │ │ -1287 // Also known as is_trivially_relocatable. │ │ │ │ │ -1288 template │ │ │ │ │ -1289 struct __is_bitwise_relocatable │ │ │ │ │ -1290 : __bool_constant<__is_trivial(_Tp)> │ │ │ │ │ -1291 { }; │ │ │ │ │ -1292 │ │ │ │ │ -1293 template │ │ │ │ │ -1295 _GLIBCXX20_CONSTEXPR │ │ │ │ │ -1296 inline _ForwardIterator │ │ │ │ │ -1297 __relocate_a_1(_InputIterator __first, _InputIterator __last, │ │ │ │ │ -1298 _ForwardIterator __result, _Allocator& __alloc) │ │ │ │ │ -1299 noexcept(noexcept(std::__relocate_object_a(_s_t_d_:_:_a_d_d_r_e_s_s_o_f(*__result), │ │ │ │ │ -1300 _s_t_d_:_:_a_d_d_r_e_s_s_o_f(*__first), │ │ │ │ │ -1301 __alloc))) │ │ │ │ │ -1302 { │ │ │ │ │ -1303 typedef typename iterator_traits<_InputIterator>::value_type │ │ │ │ │ -1304 _ValueType; │ │ │ │ │ -1305 typedef typename iterator_traits<_ForwardIterator>::value_type │ │ │ │ │ -1306 _ValueType2; │ │ │ │ │ -1307 static_assert(_s_t_d_:_:_i_s___s_a_m_e_<___V_a_l_u_e_T_y_p_e_,_ ___V_a_l_u_e_T_y_p_e_2_>_:_:_v_a_l_u_e, │ │ │ │ │ -1308 "relocation is only possible for values of the same type"); │ │ │ │ │ -1309 _ForwardIterator __cur = __result; │ │ │ │ │ -1310 for (; __first != __last; ++__first, (void)++__cur) │ │ │ │ │ -1311 std::__relocate_object_a(_s_t_d_:_:_____a_d_d_r_e_s_s_o_f(*__cur), │ │ │ │ │ -1312 _s_t_d_:_:_____a_d_d_r_e_s_s_o_f(*__first), __alloc); │ │ │ │ │ -1313 return __cur; │ │ │ │ │ -1314 } │ │ │ │ │ -1315 │ │ │ │ │ -1316#if _GLIBCXX_HOSTED │ │ │ │ │ -1317 template │ │ │ │ │ -1318 _GLIBCXX20_CONSTEXPR │ │ │ │ │ -1319 inline __enable_if_t::value, _Tp*> │ │ │ │ │ -1320 __relocate_a_1(_Tp* __first, _Tp* __last, │ │ │ │ │ -1321 _Tp* __result, │ │ │ │ │ -1322 [[__maybe_unused__]] allocator<_Up>& __alloc) noexcept │ │ │ │ │ -1323 { │ │ │ │ │ -1324 ptrdiff_t __count = __last - __first; │ │ │ │ │ -1325 if (__count > 0) │ │ │ │ │ -1326 { │ │ │ │ │ -1327#ifdef __cpp_lib_is_constant_evaluated │ │ │ │ │ -1328 if (std::is_constant_evaluated()) │ │ │ │ │ -1329 { │ │ │ │ │ -1330 // Can't use memcpy. Wrap the pointer so that __relocate_a_1 │ │ │ │ │ -1331 // resolves to the non-trivial overload above. │ │ │ │ │ -1332 __gnu_cxx::__normal_iterator<_Tp*, void> __out(__result); │ │ │ │ │ -1333 __out = std::__relocate_a_1(__first, __last, __out, __alloc); │ │ │ │ │ -1334 return __out.base(); │ │ │ │ │ -1335 } │ │ │ │ │ -1336#endif │ │ │ │ │ -1337 __builtin_memcpy(__result, __first, __count * sizeof(_Tp)); │ │ │ │ │ -1338 } │ │ │ │ │ -1339 return __result + __count; │ │ │ │ │ -1340 } │ │ │ │ │ -1341#endif │ │ │ │ │ -1342 │ │ │ │ │ -1343 template │ │ │ │ │ -1345 _GLIBCXX20_CONSTEXPR │ │ │ │ │ -1346 inline _ForwardIterator │ │ │ │ │ -1347 __relocate_a(_InputIterator __first, _InputIterator __last, │ │ │ │ │ -1348 _ForwardIterator __result, _Allocator& __alloc) │ │ │ │ │ -1349 noexcept(noexcept(__relocate_a_1(std::__niter_base(__first), │ │ │ │ │ -1350 std::__niter_base(__last), │ │ │ │ │ -1351 std::__niter_base(__result), __alloc))) │ │ │ │ │ -1352 { │ │ │ │ │ -1353 return std::__relocate_a_1(std::__niter_base(__first), │ │ │ │ │ -1354 std::__niter_base(__last), │ │ │ │ │ -1355 std::__niter_base(__result), __alloc); │ │ │ │ │ -1356 } │ │ │ │ │ -1357 │ │ │ │ │ -1358 /// @endcond │ │ │ │ │ -1359#endif // C++11 │ │ │ │ │ -1360 │ │ │ │ │ -1361 /// @} group memory │ │ │ │ │ -1362 │ │ │ │ │ -1363_GLIBCXX_END_NAMESPACE_VERSION │ │ │ │ │ -1364} // namespace │ │ │ │ │ -1365 │ │ │ │ │ -1366#endif /* _STL_UNINITIALIZED_H */ │ │ │ │ │ -_t_y_p_e___t_r_a_i_t_s │ │ │ │ │ -_s_t_l___i_t_e_r_a_t_o_r___b_a_s_e___f_u_n_c_s_._h │ │ │ │ │ -_p_t_r___t_r_a_i_t_s_._h │ │ │ │ │ -_s_t_l___p_a_i_r_._h │ │ │ │ │ -_c_p_p___t_y_p_e___t_r_a_i_t_s_._h │ │ │ │ │ -_s_t_l___a_l_g_o_b_a_s_e_._h │ │ │ │ │ -_s_t_d_:_:_u_n_i_n_i_t_i_a_l_i_z_e_d___f_i_l_l │ │ │ │ │ -_GLIBCXX26_CONSTEXPR void uninitialized_fill(_ForwardIterator __first, │ │ │ │ │ -_ForwardIterator __last, const _Tp &__x) │ │ │ │ │ -Copies the value x into the range [first,last). │ │ │ │ │ -DDeeffiinniittiioonn _s_t_l___u_n_i_n_i_t_i_a_l_i_z_e_d_._h_:_3_9_2 │ │ │ │ │ -_s_t_d_:_:_u_n_i_n_i_t_i_a_l_i_z_e_d___c_o_p_y___n │ │ │ │ │ -_GLIBCXX26_CONSTEXPR _ForwardIterator uninitialized_copy_n(_InputIterator │ │ │ │ │ -__first, _Size __n, _ForwardIterator __result) │ │ │ │ │ -Copies the range [first,first+n) into result. │ │ │ │ │ -DDeeffiinniittiioonn _s_t_l___u_n_i_n_i_t_i_a_l_i_z_e_d_._h_:_1_1_4_8 │ │ │ │ │ -_s_t_d_:_:_u_n_i_n_i_t_i_a_l_i_z_e_d___v_a_l_u_e___c_o_n_s_t_r_u_c_t │ │ │ │ │ -_GLIBCXX26_CONSTEXPR void uninitialized_value_construct(_ForwardIterator │ │ │ │ │ -__first, _ForwardIterator __last) │ │ │ │ │ -Value-initializes objects in the range [first,last). │ │ │ │ │ -DDeeffiinniittiioonn _s_t_l___u_n_i_n_i_t_i_a_l_i_z_e_d_._h_:_1_2_0_7 │ │ │ │ │ -_s_t_d_:_:_u_n_i_n_i_t_i_a_l_i_z_e_d___d_e_f_a_u_l_t___c_o_n_s_t_r_u_c_t │ │ │ │ │ -_GLIBCXX26_CONSTEXPR void uninitialized_default_construct(_ForwardIterator │ │ │ │ │ -__first, _ForwardIterator __last) │ │ │ │ │ -Default-initializes objects in the range [first,last). │ │ │ │ │ -DDeeffiinniittiioonn _s_t_l___u_n_i_n_i_t_i_a_l_i_z_e_d_._h_:_1_1_7_7 │ │ │ │ │ -_s_t_d_:_:_u_n_i_n_i_t_i_a_l_i_z_e_d___f_i_l_l___n │ │ │ │ │ -_GLIBCXX26_CONSTEXPR _ForwardIterator uninitialized_fill_n(_ForwardIterator │ │ │ │ │ -__first, _Size __n, const _Tp &__x) │ │ │ │ │ -Copies the value x into the range [first,first+n). │ │ │ │ │ -DDeeffiinniittiioonn _s_t_l___u_n_i_n_i_t_i_a_l_i_z_e_d_._h_:_5_2_6 │ │ │ │ │ -_s_t_d_:_:_u_n_i_n_i_t_i_a_l_i_z_e_d___c_o_p_y │ │ │ │ │ -_GLIBCXX26_CONSTEXPR _ForwardIterator uninitialized_copy(_InputIterator │ │ │ │ │ -__first, _InputIterator __last, _ForwardIterator __result) │ │ │ │ │ -Copies the range [first,last) into result. │ │ │ │ │ -DDeeffiinniittiioonn _s_t_l___u_n_i_n_i_t_i_a_l_i_z_e_d_._h_:_2_3_1 │ │ │ │ │ -_s_t_d_:_:_u_n_i_n_i_t_i_a_l_i_z_e_d___m_o_v_e │ │ │ │ │ -_GLIBCXX26_CONSTEXPR _ForwardIterator uninitialized_move(_InputIterator │ │ │ │ │ -__first, _InputIterator __last, _ForwardIterator __result) │ │ │ │ │ -Move-construct from the range [first,last) into result. │ │ │ │ │ -DDeeffiinniittiioonn _s_t_l___u_n_i_n_i_t_i_a_l_i_z_e_d_._h_:_1_2_3_9 │ │ │ │ │ -_s_t_d_:_:_u_n_i_n_i_t_i_a_l_i_z_e_d___v_a_l_u_e___c_o_n_s_t_r_u_c_t___n │ │ │ │ │ -_GLIBCXX26_CONSTEXPR _ForwardIterator uninitialized_value_construct_n │ │ │ │ │ -(_ForwardIterator __first, _Size __count) │ │ │ │ │ -Value-initializes objects in the range [first,first+count). │ │ │ │ │ -DDeeffiinniittiioonn _s_t_l___u_n_i_n_i_t_i_a_l_i_z_e_d_._h_:_1_2_2_3 │ │ │ │ │ -_s_t_d_:_:_u_n_i_n_i_t_i_a_l_i_z_e_d___m_o_v_e___n │ │ │ │ │ -_GLIBCXX26_CONSTEXPR pair< _InputIterator, _ForwardIterator > │ │ │ │ │ -uninitialized_move_n(_InputIterator __first, _Size __count, _ForwardIterator │ │ │ │ │ -__result) │ │ │ │ │ -Move-construct from the range [first,first+count) into result. │ │ │ │ │ -DDeeffiinniittiioonn _s_t_l___u_n_i_n_i_t_i_a_l_i_z_e_d_._h_:_1_2_5_8 │ │ │ │ │ -_s_t_d_:_:_u_n_i_n_i_t_i_a_l_i_z_e_d___d_e_f_a_u_l_t___c_o_n_s_t_r_u_c_t___n │ │ │ │ │ -_GLIBCXX26_CONSTEXPR _ForwardIterator uninitialized_default_construct_n │ │ │ │ │ -(_ForwardIterator __first, _Size __count) │ │ │ │ │ -Default-initializes objects in the range [first,first+count). │ │ │ │ │ -DDeeffiinniittiioonn _s_t_l___u_n_i_n_i_t_i_a_l_i_z_e_d_._h_:_1_1_9_3 │ │ │ │ │ -_s_t_d_:_:_t_o___a_d_d_r_e_s_s │ │ │ │ │ -constexpr _Tp * to_address(_Tp *__ptr) noexcept │ │ │ │ │ -Obtain address referenced by a pointer to an object. │ │ │ │ │ -DDeeffiinniittiioonn _p_t_r___t_r_a_i_t_s_._h_:_2_3_2 │ │ │ │ │ -_s_t_d_:_:_r_e_m_o_v_e___p_o_i_n_t_e_r___t │ │ │ │ │ -typename remove_pointer< _Tp >::type remove_pointer_t │ │ │ │ │ -Alias template for remove_pointer. │ │ │ │ │ -DDeeffiinniittiioonn _t_y_p_e___t_r_a_i_t_s_:_2_2_4_9 │ │ │ │ │ -_s_t_d_:_:_a_d_d_r_e_s_s_o_f │ │ │ │ │ -constexpr _Tp * addressof(_Tp &__r) noexcept │ │ │ │ │ -Returns the actual address of the object or function referenced by r, even in │ │ │ │ │ -the presence of an over... │ │ │ │ │ -DDeeffiinniittiioonn _m_o_v_e_._h_:_1_7_6 │ │ │ │ │ +445 /** │ │ │ │ │ +446 * @brief Allocate memory. │ │ │ │ │ +447 * @param __a An allocator. │ │ │ │ │ +448 * @param __n The number of objects to allocate space for. │ │ │ │ │ +449 * │ │ │ │ │ +450 * Calls `a.allocate(n)`. │ │ │ │ │ +451 */ │ │ │ │ │ +452 [[nodiscard]] static _p_o_i_n_t_e_r │ │ │ │ │ +_4_5_3 _a_l_l_o_c_a_t_e(_a_l_l_o_c_a_t_o_r___t_y_p_e& __a, _s_i_z_e___t_y_p_e __n) │ │ │ │ │ +454 { return __a.allocate(__n); } │ │ │ │ │ +455 │ │ │ │ │ +456 /** │ │ │ │ │ +457 * @brief Allocate memory. │ │ │ │ │ +458 * @param __a An allocator. │ │ │ │ │ +459 * @param __n The number of objects to allocate space for. │ │ │ │ │ +460 * @return Memory of suitable size and alignment for `n` objects │ │ │ │ │ +461 * of type `value_type`. │ │ │ │ │ +462 * │ │ │ │ │ +463 * The third parameter is ignored.. │ │ │ │ │ +464 * │ │ │ │ │ +465 * Returns `a.allocate(n)`. │ │ │ │ │ +466 */ │ │ │ │ │ +467 [[nodiscard]] static _p_o_i_n_t_e_r │ │ │ │ │ +_4_6_8 _a_l_l_o_c_a_t_e(_a_l_l_o_c_a_t_o_r___t_y_p_e& __a, _s_i_z_e___t_y_p_e __n, _c_o_n_s_t___v_o_i_d___p_o_i_n_t_e_r) │ │ │ │ │ +469 { return __a.allocate(__n); } │ │ │ │ │ +470 │ │ │ │ │ +471 /** │ │ │ │ │ +472 * @brief Deallocate memory. │ │ │ │ │ +473 * @param __a An allocator. │ │ │ │ │ +474 * @param __p Pointer to the memory to deallocate. │ │ │ │ │ +475 * @param __n The number of objects space was allocated for. │ │ │ │ │ +476 * │ │ │ │ │ +477 * Calls `a.deallocate(p, n)`. │ │ │ │ │ +478 */ │ │ │ │ │ +479 static void │ │ │ │ │ +_4_8_0 _d_e_a_l_l_o_c_a_t_e(_a_l_l_o_c_a_t_o_r___t_y_p_e& __a, _p_o_i_n_t_e_r __p, _s_i_z_e___t_y_p_e __n) │ │ │ │ │ +481 { __a.deallocate(__p, __n); } │ │ │ │ │ +482 │ │ │ │ │ +483 /** │ │ │ │ │ +484 * @brief Construct an object of type `_Up` │ │ │ │ │ +485 * @param __a An allocator. │ │ │ │ │ +486 * @param __p Pointer to memory of suitable size and alignment for │ │ │ │ │ +487 * an object of type `_Up`. │ │ │ │ │ +488 * @param __args Constructor arguments. │ │ │ │ │ +489 * │ │ │ │ │ +490 * Calls `__a.construct(__p, std::forward<_Args>(__args)...)` │ │ │ │ │ +491 * in C++11, C++14 and C++17. Changed in C++20 to call │ │ │ │ │ +492 * `std::construct_at(__p, std::forward<_Args>(__args)...)` instead. │ │ │ │ │ +493 */ │ │ │ │ │ +494 template │ │ │ │ │ +495 static void │ │ │ │ │ +_4_9_6 _c_o_n_s_t_r_u_c_t(_a_l_l_o_c_a_t_o_r___t_y_p_e& __a, _Up* __p, _Args&&... __args) │ │ │ │ │ +497 { __a.construct(__p, std::forward<_Args>(__args)...); } │ │ │ │ │ +498 │ │ │ │ │ +499 /** │ │ │ │ │ +500 * @brief Destroy an object of type `_Up` │ │ │ │ │ +501 * @param __a An allocator. │ │ │ │ │ +502 * @param __p Pointer to the object to destroy │ │ │ │ │ +503 * │ │ │ │ │ +504 * Calls `p->_Up()`. │ │ │ │ │ +505 */ │ │ │ │ │ +506 template │ │ │ │ │ +507 static _GLIBCXX20_CONSTEXPR void │ │ │ │ │ +_5_0_8 _d_e_s_t_r_o_y(_a_l_l_o_c_a_t_o_r___t_y_p_e&, _Up* __p) │ │ │ │ │ +509 noexcept(_i_s___n_o_t_h_r_o_w___d_e_s_t_r_u_c_t_i_b_l_e_<___U_p_>_:_:_v_a_l_u_e) │ │ │ │ │ +510 { __p->~_Up(); } │ │ │ │ │ +511 │ │ │ │ │ +512 /** │ │ │ │ │ +513 * @brief The maximum supported allocation size │ │ │ │ │ +514 * @return `numeric_limits::max() / sizeof(value_type)` │ │ │ │ │ +515 */ │ │ │ │ │ +516 static _GLIBCXX20_CONSTEXPR _s_i_z_e___t_y_p_e │ │ │ │ │ +_5_1_7 _m_a_x___s_i_z_e(const _a_l_l_o_c_a_t_o_r___t_y_p_e&) noexcept │ │ │ │ │ +518 { return size_t(-1) / sizeof(_v_a_l_u_e___t_y_p_e); } │ │ │ │ │ +519 }; │ │ │ │ │ +520 │ │ │ │ │ +521_GLIBCXX_END_NAMESPACE_VERSION │ │ │ │ │ +522} // namespace std │ │ │ │ │ +523 │ │ │ │ │ +524#endif // C++17 │ │ │ │ │ +525#endif // _GLIBCXX_MEMORY_RESOURCE_H │ │ │ │ │ +_n_e_w │ │ │ │ │ +_s_t_d_:_:_p_m_r_:_:_g_e_t___d_e_f_a_u_l_t___r_e_s_o_u_r_c_e │ │ │ │ │ +memory_resource * get_default_resource() noexcept │ │ │ │ │ +Get the current default memory resource pointer. │ │ │ │ │ +_c_s_t_d_d_e_f │ │ │ │ │ +_u_s_e_s___a_l_l_o_c_a_t_o_r___a_r_g_s_._h │ │ │ │ │ +_u_t_i_l_i_t_y_._h │ │ │ │ │ +_f_u_n_c_t_e_x_c_e_p_t_._h │ │ │ │ │ +_a_s_s_e_r_t_i_o_n_s_._h │ │ │ │ │ +_s_t_d_:_:_f_a_l_s_e___t_y_p_e │ │ │ │ │ +__bool_constant< false > false_type │ │ │ │ │ +The type used as a compile-time boolean with false value. │ │ │ │ │ +DDeeffiinniittiioonn _t_y_p_e___t_r_a_i_t_s_:_1_1_9 │ │ │ │ │ +_s_t_d_:_:_f_o_r_w_a_r_d___a_s___t_u_p_l_e │ │ │ │ │ +constexpr tuple< _Elements &&... > forward_as_tuple(_Elements &&... __args) │ │ │ │ │ +noexcept │ │ │ │ │ +Create a tuple of lvalue or rvalue references to the arguments. │ │ │ │ │ +DDeeffiinniittiioonn _t_u_p_l_e_:_2_6_8_0 │ │ │ │ │ _s_t_d_:_:_m_o_v_e │ │ │ │ │ constexpr std::remove_reference< _Tp >::type && move(_Tp &&__t) noexcept │ │ │ │ │ Convert a value to an rvalue. │ │ │ │ │ DDeeffiinniittiioonn _m_o_v_e_._h_:_1_3_8 │ │ │ │ │ -_s_t_d_:_:_____a_d_d_r_e_s_s_o_f │ │ │ │ │ -constexpr _Tp * __addressof(_Tp &__r) noexcept │ │ │ │ │ -Same as C++11 std::addressof. │ │ │ │ │ -DDeeffiinniittiioonn _m_o_v_e_._h_:_5_2 │ │ │ │ │ -_s_t_d_:_:_____i_t_e_r_a_t_o_r___c_a_t_e_g_o_r_y │ │ │ │ │ -constexpr iterator_traits< _Iter >::iterator_category __iterator_category(const │ │ │ │ │ -_Iter &) │ │ │ │ │ -DDeeffiinniittiioonn _s_t_l___i_t_e_r_a_t_o_r___b_a_s_e___t_y_p_e_s_._h_:_2_4_1 │ │ │ │ │ +_s_t_d_:_:_p_i_e_c_e_w_i_s_e___c_o_n_s_t_r_u_c_t │ │ │ │ │ +constexpr piecewise_construct_t piecewise_construct │ │ │ │ │ +Tag for piecewise construction of std::pair objects. │ │ │ │ │ +DDeeffiinniittiioonn _s_t_l___p_a_i_r_._h_:_8_2 │ │ │ │ │ _s_t_d │ │ │ │ │ ISO C++ entities toplevel namespace is std. │ │ │ │ │ -_s_t_d_:_:_d_i_s_t_a_n_c_e │ │ │ │ │ -constexpr iterator_traits< _InputIterator >::difference_type distance │ │ │ │ │ -(_InputIterator __first, _InputIterator __last) │ │ │ │ │ -A generalization of pointer arithmetic. │ │ │ │ │ -DDeeffiinniittiioonn _s_t_l___i_t_e_r_a_t_o_r___b_a_s_e___f_u_n_c_s_._h_:_1_5_0 │ │ │ │ │ -_s_t_d_:_:___C_o_n_s_t_r_u_c_t │ │ │ │ │ -constexpr void _Construct(_Tp *__p, _Args &&... __args) │ │ │ │ │ -DDeeffiinniittiioonn _s_t_l___c_o_n_s_t_r_u_c_t_._h_:_1_2_3 │ │ │ │ │ -_s_t_d_:_:_a_d_v_a_n_c_e │ │ │ │ │ -constexpr void advance(_InputIterator &__i, _Distance __n) │ │ │ │ │ -A generalization of pointer arithmetic. │ │ │ │ │ -DDeeffiinniittiioonn _s_t_l___i_t_e_r_a_t_o_r___b_a_s_e___f_u_n_c_s_._h_:_2_2_2 │ │ │ │ │ -_s_t_d_:_:___D_e_s_t_r_o_y │ │ │ │ │ -constexpr void _Destroy(_ForwardIterator __first, _ForwardIterator __last) │ │ │ │ │ -DDeeffiinniittiioonn _s_t_l___c_o_n_s_t_r_u_c_t_._h_:_2_0_2 │ │ │ │ │ -_s_t_d_:_:_i_s___i_n_t_e_g_r_a_l │ │ │ │ │ -is_integral │ │ │ │ │ -DDeeffiinniittiioonn _t_y_p_e___t_r_a_i_t_s_:_4_6_8 │ │ │ │ │ -_s_t_d_:_:_i_s___p_o_i_n_t_e_r │ │ │ │ │ -is_pointer │ │ │ │ │ -DDeeffiinniittiioonn _t_y_p_e___t_r_a_i_t_s_:_5_5_9 │ │ │ │ │ -_s_t_d_:_:_i_s___s_a_m_e │ │ │ │ │ -is_same │ │ │ │ │ -DDeeffiinniittiioonn _t_y_p_e___t_r_a_i_t_s_:_1_5_4_0 │ │ │ │ │ +_s_t_d_:_:_i_n_d_e_x___s_e_q_u_e_n_c_e │ │ │ │ │ +integer_sequence< size_t, _Idx... > index_sequence │ │ │ │ │ +Alias template index_sequence. │ │ │ │ │ +DDeeffiinniittiioonn _u_t_i_l_i_t_y_._h_:_1_8_4 │ │ │ │ │ +_s_t_d_:_:_i_n_d_e_x___s_e_q_u_e_n_c_e___f_o_r │ │ │ │ │ +make_index_sequence< sizeof...(_Types)> index_sequence_for │ │ │ │ │ +Alias template index_sequence_for. │ │ │ │ │ +DDeeffiinniittiioonn _u_t_i_l_i_t_y_._h_:_1_9_2 │ │ │ │ │ +_____g_n_u___c_x_x_:_:_____i_n_t___t_r_a_i_t_s │ │ │ │ │ +__numeric_traits_integer< _Tp > __int_traits │ │ │ │ │ +Convenience alias for __numeric_traits. │ │ │ │ │ +DDeeffiinniittiioonn _e_x_t_/_n_u_m_e_r_i_c___t_r_a_i_t_s_._h_:_1_4_0 │ │ │ │ │ +_s_t_d_:_:_t_u_p_l_e │ │ │ │ │ +Primary class template, tuple. │ │ │ │ │ +DDeeffiinniittiioonn _t_u_p_l_e_:_8_3_4 │ │ │ │ │ +_s_t_d_:_:_i_s___n_o_t_h_r_o_w___d_e_s_t_r_u_c_t_i_b_l_e │ │ │ │ │ +is_nothrow_destructible │ │ │ │ │ +DDeeffiinniittiioonn _t_y_p_e___t_r_a_i_t_s_:_1_1_4_3 │ │ │ │ │ _s_t_d_:_:_a_l_l_o_c_a_t_o_r___t_r_a_i_t_s │ │ │ │ │ Uniform interface to all allocator types. │ │ │ │ │ DDeeffiinniittiioonn _b_i_t_s_/_a_l_l_o_c___t_r_a_i_t_s_._h_:_2_5_0 │ │ │ │ │ -_s_t_d_:_:_a_l_l_o_c_a_t_o_r___t_r_a_i_t_s_:_:_c_o_n_s_t_r_u_c_t │ │ │ │ │ -static constexpr void construct(_Alloc &__a, _Tp *__p, _Args &&... __args) │ │ │ │ │ -noexcept(_S_nothrow_construct< _Tp, _Args... >()) │ │ │ │ │ -Construct an object of type _Tp │ │ │ │ │ -DDeeffiinniittiioonn _b_i_t_s_/_a_l_l_o_c___t_r_a_i_t_s_._h_:_4_3_7 │ │ │ │ │ -_s_t_d_:_:_i_t_e_r_a_t_o_r___t_r_a_i_t_s │ │ │ │ │ -Traits class for iterators. │ │ │ │ │ -DDeeffiinniittiioonn _s_t_l___i_t_e_r_a_t_o_r___b_a_s_e___t_y_p_e_s_._h_:_1_8_0 │ │ │ │ │ -_____g_n_u___c_x_x_:_:_____a_l_l_o_c___t_r_a_i_t_s │ │ │ │ │ -Uniform interface to C++98 and C++11 allocators. │ │ │ │ │ -DDeeffiinniittiioonn _e_x_t_/_a_l_l_o_c___t_r_a_i_t_s_._h_:_5_1 │ │ │ │ │ -_a_l_l_o_c___t_r_a_i_t_s_._h │ │ │ │ │ -_s_t_l___i_t_e_r_a_t_o_r_._h │ │ │ │ │ +_s_t_d_:_:_a_l_l_o_c_a_t_o_r___t_r_a_i_t_s_:_:_p_o_i_n_t_e_r │ │ │ │ │ +__detected_or_t< value_type *, __pointer, _Alloc > pointer │ │ │ │ │ +The allocator's pointer type. │ │ │ │ │ +DDeeffiinniittiioonn _b_i_t_s_/_a_l_l_o_c___t_r_a_i_t_s_._h_:_2_6_1 │ │ │ │ │ +_s_t_d_:_:_a_l_l_o_c_a_t_o_r___t_r_a_i_t_s_:_:_s_i_z_e___t_y_p_e │ │ │ │ │ +typename _Size< _Alloc, difference_type >::type size_type │ │ │ │ │ +The allocator's size type. │ │ │ │ │ +DDeeffiinniittiioonn _b_i_t_s_/_a_l_l_o_c___t_r_a_i_t_s_._h_:_3_3_3 │ │ │ │ │ +_s_t_d_:_:_a_l_l_o_c_a_t_o_r___t_r_a_i_t_s_:_:_v_a_l_u_e___t_y_p_e │ │ │ │ │ +_Alloc::value_type value_type │ │ │ │ │ +The allocated type. │ │ │ │ │ +DDeeffiinniittiioonn _b_i_t_s_/_a_l_l_o_c___t_r_a_i_t_s_._h_:_2_5_4 │ │ │ │ │ +_s_t_d_:_:_a_l_l_o_c_a_t_o_r___t_r_a_i_t_s_:_:_a_l_l_o_c_a_t_o_r___t_y_p_e │ │ │ │ │ +_Alloc allocator_type │ │ │ │ │ +The allocator type. │ │ │ │ │ +DDeeffiinniittiioonn _b_i_t_s_/_a_l_l_o_c___t_r_a_i_t_s_._h_:_2_5_2 │ │ │ │ │ +_s_t_d_:_:_p_m_r_:_:_m_e_m_o_r_y___r_e_s_o_u_r_c_e │ │ │ │ │ +Class memory_resource │ │ │ │ │ +DDeeffiinniittiioonn _m_e_m_o_r_y___r_e_s_o_u_r_c_e_._h_:_6_4 │ │ │ │ │ +_s_t_d_:_:_p_m_r_:_:_p_o_l_y_m_o_r_p_h_i_c___a_l_l_o_c_a_t_o_r │ │ │ │ │ +Class template polymorphic_allocator. │ │ │ │ │ +DDeeffiinniittiioonn _m_e_m_o_r_y___r_e_s_o_u_r_c_e_._h_:_1_2_3 │ │ │ │ │ +_s_t_d_:_:_a_l_l_o_c_a_t_o_r___t_r_a_i_t_s_<_ _p_m_r_:_:_p_o_l_y_m_o_r_p_h_i_c___a_l_l_o_c_a_t_o_r_<_ ___T_p_ _>_ _>_:_:_c_o_n_s_t_r_u_c_t │ │ │ │ │ +static void construct(allocator_type &__a, _Up *__p, _Args &&... __args) │ │ │ │ │ +Construct an object of type _Up │ │ │ │ │ +DDeeffiinniittiioonn _m_e_m_o_r_y___r_e_s_o_u_r_c_e_._h_:_4_9_6 │ │ │ │ │ +_s_t_d_:_:_a_l_l_o_c_a_t_o_r___t_r_a_i_t_s_<_ _p_m_r_:_:_p_o_l_y_m_o_r_p_h_i_c___a_l_l_o_c_a_t_o_r_<_ ___T_p_ _>_ _>_:_:_d_i_f_f_e_r_e_n_c_e___t_y_p_e │ │ │ │ │ +std::ptrdiff_t difference_type │ │ │ │ │ +The allocator's difference type. │ │ │ │ │ +DDeeffiinniittiioonn _m_e_m_o_r_y___r_e_s_o_u_r_c_e_._h_:_4_1_8 │ │ │ │ │ +_s_t_d_:_:_a_l_l_o_c_a_t_o_r___t_r_a_i_t_s_<_ _p_m_r_:_:_p_o_l_y_m_o_r_p_h_i_c___a_l_l_o_c_a_t_o_r_<_ ___T_p_ _>_ _>_:_:_d_e_a_l_l_o_c_a_t_e │ │ │ │ │ +static void deallocate(allocator_type &__a, pointer __p, size_type __n) │ │ │ │ │ +Deallocate memory. │ │ │ │ │ +DDeeffiinniittiioonn _m_e_m_o_r_y___r_e_s_o_u_r_c_e_._h_:_4_8_0 │ │ │ │ │ +_s_t_d_:_:_a_l_l_o_c_a_t_o_r___t_r_a_i_t_s_<_ _p_m_r_:_:_p_o_l_y_m_o_r_p_h_i_c___a_l_l_o_c_a_t_o_r_<_ ___T_p_ _>_ _>_:_:_v_a_l_u_e___t_y_p_e │ │ │ │ │ +_Tp value_type │ │ │ │ │ +The allocated type. │ │ │ │ │ +DDeeffiinniittiioonn _m_e_m_o_r_y___r_e_s_o_u_r_c_e_._h_:_4_0_3 │ │ │ │ │ +_s_t_d_:_:_a_l_l_o_c_a_t_o_r___t_r_a_i_t_s_<_ _p_m_r_:_:_p_o_l_y_m_o_r_p_h_i_c___a_l_l_o_c_a_t_o_r_<_ ___T_p_ _>_ _>_:_:_d_e_s_t_r_o_y │ │ │ │ │ +static constexpr void destroy(allocator_type &, _Up *__p) noexcept │ │ │ │ │ +(is_nothrow_destructible< _Up >::value) │ │ │ │ │ +Destroy an object of type _Up │ │ │ │ │ +DDeeffiinniittiioonn _m_e_m_o_r_y___r_e_s_o_u_r_c_e_._h_:_5_0_8 │ │ │ │ │ +_s_t_d_:_:_a_l_l_o_c_a_t_o_r___t_r_a_i_t_s_<_ _p_m_r_:_:_p_o_l_y_m_o_r_p_h_i_c___a_l_l_o_c_a_t_o_r_<_ ___T_p_ _>_ _>_:_:_m_a_x___s_i_z_e │ │ │ │ │ +static constexpr size_type max_size(const allocator_type &) noexcept │ │ │ │ │ +The maximum supported allocation size. │ │ │ │ │ +DDeeffiinniittiioonn _m_e_m_o_r_y___r_e_s_o_u_r_c_e_._h_:_5_1_7 │ │ │ │ │ +_s_t_d_:_:_a_l_l_o_c_a_t_o_r___t_r_a_i_t_s_<_ _p_m_r_:_:_p_o_l_y_m_o_r_p_h_i_c___a_l_l_o_c_a_t_o_r_<_ ___T_p_ _>_ _>_:_:_a_l_l_o_c_a_t_e │ │ │ │ │ +static pointer allocate(allocator_type &__a, size_type __n) │ │ │ │ │ +Allocate memory. │ │ │ │ │ +DDeeffiinniittiioonn _m_e_m_o_r_y___r_e_s_o_u_r_c_e_._h_:_4_5_3 │ │ │ │ │ +_s_t_d_:_:_a_l_l_o_c_a_t_o_r___t_r_a_i_t_s_<_ _p_m_r_:_:_p_o_l_y_m_o_r_p_h_i_c___a_l_l_o_c_a_t_o_r_<_ ___T_p_ _>_ _>_:_: │ │ │ │ │ +_p_r_o_p_a_g_a_t_e___o_n___c_o_n_t_a_i_n_e_r___s_w_a_p │ │ │ │ │ +false_type propagate_on_container_swap │ │ │ │ │ +DDeeffiinniittiioonn _m_e_m_o_r_y___r_e_s_o_u_r_c_e_._h_:_4_2_9 │ │ │ │ │ +_s_t_d_:_:_a_l_l_o_c_a_t_o_r___t_r_a_i_t_s_<_ _p_m_r_:_:_p_o_l_y_m_o_r_p_h_i_c___a_l_l_o_c_a_t_o_r_<_ ___T_p_ _>_ _>_:_:_p_o_i_n_t_e_r │ │ │ │ │ +_Tp * pointer │ │ │ │ │ +The allocator's pointer type. │ │ │ │ │ +DDeeffiinniittiioonn _m_e_m_o_r_y___r_e_s_o_u_r_c_e_._h_:_4_0_6 │ │ │ │ │ +_s_t_d_:_:_a_l_l_o_c_a_t_o_r___t_r_a_i_t_s_<_ _p_m_r_:_:_p_o_l_y_m_o_r_p_h_i_c___a_l_l_o_c_a_t_o_r_<_ ___T_p_ _>_ _>_:_:_c_o_n_s_t___p_o_i_n_t_e_r │ │ │ │ │ +const _Tp * const_pointer │ │ │ │ │ +The allocator's const pointer type. │ │ │ │ │ +DDeeffiinniittiioonn _m_e_m_o_r_y___r_e_s_o_u_r_c_e_._h_:_4_0_9 │ │ │ │ │ +_s_t_d_:_:_a_l_l_o_c_a_t_o_r___t_r_a_i_t_s_<_ _p_m_r_:_:_p_o_l_y_m_o_r_p_h_i_c___a_l_l_o_c_a_t_o_r_<_ ___T_p_ _>_ _>_:_: │ │ │ │ │ +_p_r_o_p_a_g_a_t_e___o_n___c_o_n_t_a_i_n_e_r___m_o_v_e___a_s_s_i_g_n_m_e_n_t │ │ │ │ │ +false_type propagate_on_container_move_assignment │ │ │ │ │ +DDeeffiinniittiioonn _m_e_m_o_r_y___r_e_s_o_u_r_c_e_._h_:_4_2_8 │ │ │ │ │ +_s_t_d_:_:_a_l_l_o_c_a_t_o_r___t_r_a_i_t_s_<_ _p_m_r_:_:_p_o_l_y_m_o_r_p_h_i_c___a_l_l_o_c_a_t_o_r_<_ ___T_p_ _>_ _>_:_:_a_l_l_o_c_a_t_e │ │ │ │ │ +static pointer allocate(allocator_type &__a, size_type __n, const_void_pointer) │ │ │ │ │ +Allocate memory. │ │ │ │ │ +DDeeffiinniittiioonn _m_e_m_o_r_y___r_e_s_o_u_r_c_e_._h_:_4_6_8 │ │ │ │ │ +_s_t_d_:_:_a_l_l_o_c_a_t_o_r___t_r_a_i_t_s_<_ _p_m_r_:_:_p_o_l_y_m_o_r_p_h_i_c___a_l_l_o_c_a_t_o_r_<_ ___T_p_ _>_ _>_:_:_c_o_n_s_t___v_o_i_d___p_o_i_n_t_e_r │ │ │ │ │ +const void * const_void_pointer │ │ │ │ │ +The allocator's const void pointer type. │ │ │ │ │ +DDeeffiinniittiioonn _m_e_m_o_r_y___r_e_s_o_u_r_c_e_._h_:_4_1_5 │ │ │ │ │ +_s_t_d_:_:_a_l_l_o_c_a_t_o_r___t_r_a_i_t_s_<_ _p_m_r_:_:_p_o_l_y_m_o_r_p_h_i_c___a_l_l_o_c_a_t_o_r_<_ ___T_p_ _>_ _>_:_: │ │ │ │ │ +_p_r_o_p_a_g_a_t_e___o_n___c_o_n_t_a_i_n_e_r___c_o_p_y___a_s_s_i_g_n_m_e_n_t │ │ │ │ │ +false_type propagate_on_container_copy_assignment │ │ │ │ │ +DDeeffiinniittiioonn _m_e_m_o_r_y___r_e_s_o_u_r_c_e_._h_:_4_2_7 │ │ │ │ │ +_s_t_d_:_:_a_l_l_o_c_a_t_o_r___t_r_a_i_t_s_<_ _p_m_r_:_:_p_o_l_y_m_o_r_p_h_i_c___a_l_l_o_c_a_t_o_r_<_ ___T_p_ _>_ _>_:_: │ │ │ │ │ +_s_e_l_e_c_t___o_n___c_o_n_t_a_i_n_e_r___c_o_p_y___c_o_n_s_t_r_u_c_t_i_o_n │ │ │ │ │ +static allocator_type select_on_container_copy_construction(const │ │ │ │ │ +allocator_type &) noexcept │ │ │ │ │ +DDeeffiinniittiioonn _m_e_m_o_r_y___r_e_s_o_u_r_c_e_._h_:_4_3_2 │ │ │ │ │ +_s_t_d_:_:_a_l_l_o_c_a_t_o_r___t_r_a_i_t_s_<_ _p_m_r_:_:_p_o_l_y_m_o_r_p_h_i_c___a_l_l_o_c_a_t_o_r_<_ ___T_p_ _>_ _>_:_:_v_o_i_d___p_o_i_n_t_e_r │ │ │ │ │ +void * void_pointer │ │ │ │ │ +The allocator's void pointer type. │ │ │ │ │ +DDeeffiinniittiioonn _m_e_m_o_r_y___r_e_s_o_u_r_c_e_._h_:_4_1_2 │ │ │ │ │ +_s_t_d_:_:_a_l_l_o_c_a_t_o_r___t_r_a_i_t_s_<_ _p_m_r_:_:_p_o_l_y_m_o_r_p_h_i_c___a_l_l_o_c_a_t_o_r_<_ ___T_p_ _>_ _>_:_:_i_s___a_l_w_a_y_s___e_q_u_a_l │ │ │ │ │ +false_type is_always_equal │ │ │ │ │ +Whether all instances of the allocator type compare equal. │ │ │ │ │ +DDeeffiinniittiioonn _m_e_m_o_r_y___r_e_s_o_u_r_c_e_._h_:_4_3_7 │ │ │ │ │ +_s_t_d_:_:_a_l_l_o_c_a_t_o_r___t_r_a_i_t_s_<_ _p_m_r_:_:_p_o_l_y_m_o_r_p_h_i_c___a_l_l_o_c_a_t_o_r_<_ ___T_p_ _>_ _>_:_:_s_i_z_e___t_y_p_e │ │ │ │ │ +std::size_t size_type │ │ │ │ │ +The allocator's size type. │ │ │ │ │ +DDeeffiinniittiioonn _m_e_m_o_r_y___r_e_s_o_u_r_c_e_._h_:_4_2_1 │ │ │ │ │ +_s_t_d_:_:_p_a_i_r │ │ │ │ │ +Struct holding two objects of arbitrary type. │ │ │ │ │ +DDeeffiinniittiioonn _s_t_l___p_a_i_r_._h_:_3_0_4 │ │ │ │ │ +_s_t_d_:_:_p_a_i_r_:_:_f_i_r_s_t │ │ │ │ │ +_T1 first │ │ │ │ │ +The first member. │ │ │ │ │ +DDeeffiinniittiioonn _s_t_l___p_a_i_r_._h_:_3_0_8 │ │ │ │ │ +_s_t_d_:_:_p_a_i_r_:_:_s_e_c_o_n_d │ │ │ │ │ +_T2 second │ │ │ │ │ +The second member. │ │ │ │ │ +DDeeffiinniittiioonn _s_t_l___p_a_i_r_._h_:_3_0_9 │ │ │ │ │ +_s_t_d_:_:_p_i_e_c_e_w_i_s_e___c_o_n_s_t_r_u_c_t___t │ │ │ │ │ +Tag type for piecewise construction of std::pair objects. │ │ │ │ │ +DDeeffiinniittiioonn _s_t_l___p_a_i_r_._h_:_7_9 │ │ │ │ │ +_n_u_m_e_r_i_c___t_r_a_i_t_s_._h │ │ │ │ │ * _b_i_t_s │ │ │ │ │ - * _s_t_l___u_n_i_n_i_t_i_a_l_i_z_e_d_._h │ │ │ │ │ + * _m_e_m_o_r_y___r_e_s_o_u_r_c_e_._h │ │ │ │ │ * Generated by _[_d_o_x_y_g_e_n_]1.9.8 │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a00398.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a00398_source.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a00401.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a00401_source.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a00404.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a00404_source.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a00410.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a00410_source.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a00413.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a00413.js │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a00413_source.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a00416.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a00416_source.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a00422.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a00422_source.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a00425.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a00425_source.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a00428.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a00428_source.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a00431.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a00431_source.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a00434.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a00434.js │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a00434_source.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a00437.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a00437_source.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a00440.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a00440.js │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a00440_source.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a00443.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a00443_source.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a00446.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a00446.js │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a00446_source.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a00449.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a00449_source.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a00452.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a00452_source.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a00455.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a00455.js │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a00455_source.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a00458.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a00458_source.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a00461.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a00461_source.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a00467.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a00467_source.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a00470.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a00470_source.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a00473.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a00473_source.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a00476.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a00476.js │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a00476_source.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a00482.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a00482.js │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a00482_source.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a00485.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a00485.js │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a00485_source.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a00488_source.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a00491.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a00491_source.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a00494.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a00494_source.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a00497.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a00497_source.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a00500.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a00500_source.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a00506.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a00506_source.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a00509.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a00509_source.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a00512.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a00512.js │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a00512_source.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a00515_source.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a00518.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a00518_source.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a00521.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a00521.js │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a00521_source.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a00524.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a00524_source.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a00527.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a00527_source.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a00530.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a00530_source.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a00533.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a00533_source.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a00536.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a00536_source.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a00539.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a00539_source.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a00542_source.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a00545.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a00545.js │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a00545_source.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a00548.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a00548_source.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a00551.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a00551.js │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a00551_source.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a00554.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a00554.js │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a00554_source.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a00563.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a00563_source.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a00569.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a00569_source.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a00572.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a00572_source.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a00575.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a00575_source.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a00578.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a00578_source.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a00581.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a00581_source.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a00584.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a00584.js │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a00584_source.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a00587.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a00587_source.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a00590.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a00590_source.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a00593.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a00593_source.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a00596.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a00596_source.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a00599.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a00599.js │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a00599_source.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a00608.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a00608_source.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a00611.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a00611.js │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a00611_source.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a00614.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a00614_source.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a00620.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a00620_source.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a00623.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a00623.js │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a00623_source.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a00626.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a00626_source.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a00629.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a00629_source.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a00632.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a00632_source.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a00638.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a00638_source.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a00641.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a00641.js │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a00641_source.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a00644.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a00644_source.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a00647.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a00647_source.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a00650.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a00650_source.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a00653.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a00653_source.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a00659.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a00659_source.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a00662_source.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a00665.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a00665.js │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a00665_source.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a00671.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a00671_source.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a00674_source.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a00680.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a00680_source.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a00683.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a00683_source.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a00686.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a00686_source.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a00689.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a00689.js │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a00689_source.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a00692.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a00692_source.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a00695.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a00695_source.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a00698.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a00698.js │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a00698_source.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a00701.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a00701_source.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a00704.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a00704_source.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a00707.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a00707_source.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a00710.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a00710_source.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a00713.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a00713_source.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a00716.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a00716_source.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a00719.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a00719_source.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a00722.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a00722_source.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a00725.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a00725_source.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a00734.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a00734.js │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a00734_source.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a00737.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a00737_source.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a00740.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a00740_source.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a00743.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a00743_source.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a00749.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a00749_source.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a00752.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a00752_source.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a00755.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a00755_source.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a00758.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a00758_source.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a00761.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a00761_source.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a00764.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a00764_source.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a00767.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a00767_source.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a00770.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a00770_source.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a00773.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a00773_source.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a00776.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a00776_source.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a00779.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a00779_source.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a00782.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a00782_source.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a00785.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a00785.js │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a00785_source.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a00788.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a00788_source.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a00791.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a00791_source.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a00794.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a00794_source.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a00800.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a00800_source.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a00803.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a00803.js │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a00803_source.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a00806.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a00806.js │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a00806_source.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a00809.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a00809_source.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a00815.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a00815_source.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a00818.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a00818_source.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a00821.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a00821_source.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a00827.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a00827_source.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a00833.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a00833_source.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a00836.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a00836_source.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a00839.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a00839_source.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a00842.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a00842_source.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a00845.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a00845_source.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a00848.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a00848_source.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a00854.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a00854_source.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a00857.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a00857_source.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a00860.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a00860_source.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a00863_source.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a00866_source.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a00869_source.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a00872_source.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a00875_source.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a00878.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a00878_source.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a00881.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a00881_source.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a00884.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a00884_source.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a00887.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a00887_source.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a00890_source.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a00893.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a00893_source.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a00896_source.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a00899_source.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a00905.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a00905.js │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a00905_source.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a00908.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a00908.js │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a00908_source.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a00911_source.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a00917_source.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a00920_source.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a00923_source.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a00926.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a00926_source.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a00929.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a00929_source.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a00932.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a00932.js │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a00932_source.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a00935.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a00935_source.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a00938.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a00938.js │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a00938_source.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a00941.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a00941_source.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a00944.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a00944_source.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a00947.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a00947_source.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a00950.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a00950_source.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a00953.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a00953.js │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a00953_source.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a00956.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a00956.js │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a00956_source.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a00959.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a00959_source.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a00962.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a00962.js │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a00962_source.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a00965.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a00965_source.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a00968.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a00968_source.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a00971.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a00971_source.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a00974.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a00974.js │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a00974_source.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a00977.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a00977_source.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a00980.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a00980.js │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a00980_source.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a00983.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a00983_source.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a00986.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a00986.js │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a00986_source.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a00989_source.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a00992_source.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a00995_source.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a00998.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a00998.js │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a00998_source.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a01001.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a01001_source.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a01004.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a01004.js │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a01004_source.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a01007.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a01007.js │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a01007_source.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a01010.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a01010.js │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a01010_source.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a01013.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a01013_source.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a01016.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a01016.js │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a01016_source.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a01019.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a01019.js │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a01019_source.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a01022.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a01022.js │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a01022_source.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a01025.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a01025.js │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a01025_source.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a01028.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a01028.js │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a01028_source.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a01031.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a01031.js │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a01031_source.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a01034.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a01034_source.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a01037.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a01037.js │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a01037_source.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a01040.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a01040.js │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a01040_source.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a01043.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a01043.js │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a01043_source.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a01046.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a01046_source.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a01049.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a01049.js │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a01049_source.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a01052.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a01052.js │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a01052_source.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a01055.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a01055_source.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a01058.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a01058.js │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a01058_source.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a01061.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a01061.js │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a01061_source.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a01064.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a01064_source.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a01067.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a01067.js │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a01067_source.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a01070_source.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a01073.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a01073.js │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a01073_source.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a01076.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a01076.js │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a01076_source.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a01079.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a01079_source.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a01082.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a01082.js │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a01082_source.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a01085.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a01085.js │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a01085_source.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a01088_source.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a01091.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a01091.js │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a01091_source.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a01094.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a01094.js │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a01094_source.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a01097.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a01097.js │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a01097_source.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a01100.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a01100.js │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a01100_source.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a01103.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a01103.js │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a01103_source.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a01106.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a01106_source.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a01109.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a01109.js │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a01109_source.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a01112.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a01112.js │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a01112_source.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a01115_source.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a01121_source.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a01124_source.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a01127_source.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a01130_source.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a01133_source.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a01136_source.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a01139_source.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a01142_source.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a01145_source.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a01151_source.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a01154_source.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a01157_source.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a01160_source.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a01163_source.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a01166_source.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a01172_source.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a01175_source.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a01178.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a01178_source.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a01181.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a01181_source.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a01184.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a01184_source.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a01187.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a01187.js │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a01187_source.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a01190.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a01190.js │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a01190_source.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a01193.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a01193_source.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a01196_source.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a01199.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a01199_source.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a01202.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a01202.js │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a01202_source.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a01205.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a01205_source.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a01208.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a01208.js │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a01208_source.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a01211.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a01211.js │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a01211_source.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a01214.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a01214.js │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a01214_source.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a01217.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a01217_source.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a01220.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a01220_source.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a01223.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a01223_source.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a01226.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a01226_source.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a01229.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a01229_source.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a01232.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a01232_source.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a01235.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a01235.js │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a01235_source.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a01238.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a01238_source.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a01241.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a01241_source.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a01244.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a01244_source.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a01247.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a01247_source.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a01250.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a01250_source.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a01253.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a01253_source.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a01256.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a01256_source.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a01259.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a01259_source.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a01262.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a01262_source.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a01265.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a01265_source.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a01268.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a01268_source.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a01271.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a01271_source.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a01274.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a01274.js │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a01274_source.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a01277.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a01277.js │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a01277_source.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a01280.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a01280.js │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a01280_source.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a01283.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a01283.js │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a01283_source.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a01286.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a01286.js │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a01286_source.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a01289_source.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a01292.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a01292_source.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a01295.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a01295_source.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a01298.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a01298_source.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a01301.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a01301_source.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a01304_source.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a01349.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a01349_source.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a01355_source.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a01358_source.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a01379_source.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a01382_source.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a01391.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a01391_source.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a01400_source.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a01439.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a01439.js │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a01439_source.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a01442.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a01442.js │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a01442_source.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a01445.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a01445_source.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a01448.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a01448_source.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a01451.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a01451_source.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a01454.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a01454_source.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a01457_source.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a01460.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a01460.js │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a01460_source.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a01466.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a01466_source.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a01469.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a01469_source.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a01472.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a01472_source.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a01475.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a01475.js │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a01475_source.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a01478.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a01478.js │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a01478_source.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a01481.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a01481_source.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a01484.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a01484.js │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a01484_source.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a01487_source.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a01490.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a01490.js │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a01490_source.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a01499.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a01499_source.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a01502.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a01502_source.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a01505_source.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a01508_source.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a01511_source.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a01514_source.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a01517_source.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a01520.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a01520_source.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a01523.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a01523_source.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a01526.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a01526_source.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a01529_source.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a01532.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a01532_source.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a01535_source.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a01538_source.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a01541_source.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a01544.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a01544_source.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a01547.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a01547_source.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a01550.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a01550_source.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a01553.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a01553.js │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a01553_source.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a01556.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a01556_source.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a01559.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a01559_source.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a01562.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a01562_source.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a01565.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a01565.js │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a01565_source.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a01568.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a01568_source.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a01571.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a01571_source.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a01574.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a01574_source.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a01577_source.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a01583_source.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a01589.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a01589_source.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a01592.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a01592_source.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a01595.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a01595_source.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a01598.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a01598_source.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a01601.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a01601.js │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a01601_source.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a01604.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a01604_source.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a01607.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a01607_source.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a01614.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a01623.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a01624.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a01626.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a01628.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a01629.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a01634.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a01635.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a01636.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a01637.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a01639.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a01640.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a01641.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a01642.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a01643.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a01644.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a01645.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a01646.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a01647.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a01648.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a01650.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a01651.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a01652.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a01653.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a01654.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a01659.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a01660.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a01661.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a01662.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a01663.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a01665.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a01666.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a01667.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a01669.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a01678.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a01683.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a01685.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a01687.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a01688.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a01692.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a01695.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a01697.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a01699.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a01700.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a01701.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a01702.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a01705.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a01706.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a01707.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a01712.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a01713.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a01715.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a01731.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a01740.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a01741.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a01743.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a01750.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a01751.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a01752.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a01771.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a02422.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a02426.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a02430.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a02434.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a02570.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a02666.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a02670.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a02674.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a02678.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a02682.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a02686.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a02690.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a02694.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a02698.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a02702.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a02706.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a02710.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a02718.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a02814.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a02818.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a02966.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a03082.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a03750.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a03754.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a03758.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a03762.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a03774.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a03802.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a03806.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a03810.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a03814.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a03818.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a03862.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a03866.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a03874.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a03878.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a03906.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a04226.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a04230.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a04234.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a04238.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a04242.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a04254.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a04258.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a04262.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a04266.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a04270.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a04274.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a04278.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a04282.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a04286.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a04294.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a04298.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a04302.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a04438.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a04442.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a04446.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a04450.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a04454.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a04458.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a04462.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a04466.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a04478.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a04722.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a04726.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a04730.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a04734.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a04738.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a04742.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a04746.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a04750.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a04754.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a04850.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a04854.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a04858.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a04862.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a04866.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a04870.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a04874.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a04878.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a04882.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a04886.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a04890.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a04894.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a04898.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a04902.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a04906.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a04910.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a04922.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a04926.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a04930.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a04938.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a04946.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a04958.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a04962.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a04978.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a04982.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a04986.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a04990.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a04998.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a05002.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a05010.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a05014.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a05022.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a05026.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a05030.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a05034.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a05038.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a05042.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a05058.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a05062.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a05066.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a05070.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a05082.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a05098.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a05102.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a05106.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a05110.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a05114.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a05126.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a05130.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a05134.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a05138.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a05142.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a05146.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a05150.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a05158.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a05162.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a05174.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a05178.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a05182.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a05206.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a05210.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a05214.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a05218.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a05226.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a05402.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a05482.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a05486.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a05490.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a05498.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a05502.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a05506.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a05510.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a05514.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a05518.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a05522.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a05534.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a05538.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a05542.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a05546.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a05550.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a05554.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a05558.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a05562.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a05566.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a05570.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a05574.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a05578.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a05582.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a05586.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a05590.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a05594.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a05598.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a05602.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a05606.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a05610.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a05614.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a05618.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a05622.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a05626.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a05630.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a05634.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a05638.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a05642.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a05646.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a05650.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a05654.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a05658.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a05662.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a05666.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a05670.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a05674.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a05678.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a05682.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a05686.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a05990.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a05994.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a05998.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a06002.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a06006.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a06010.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a06014.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a06018.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a06022.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a06086.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a06090.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a06094.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a06110.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a06118.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a06126.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a06130.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a06158.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a06162.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a06166.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a06214.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a06242.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a06250.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a06254.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a06262.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a06266.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a06270.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a06306.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a06310.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a06354.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a06358.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a06510.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a06514.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a06518.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a06522.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a06538.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a06566.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a06598.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a06602.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a06606.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a06610.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a06614.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a06618.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a06622.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a06646.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a06650.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a06706.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a06710.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a06714.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a06726.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a06734.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a06738.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a06742.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a06746.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a06750.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a06754.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a06758.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a06762.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a06770.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a06774.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a06778.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a06782.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a06786.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a06790.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a06794.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a06798.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a06802.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a06806.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a06810.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a06830.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a06834.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a06838.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a06858.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a06878.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a06898.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a06918.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a06922.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a06926.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a06930.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a06934.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a06938.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a06974.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a06978.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a06982.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a06986.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a07006.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a07010.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a07014.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a07018.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a07022.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a07026.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a07030.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a07034.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a07054.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a07058.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a07062.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a07122.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a07126.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a07130.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a07134.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a07138.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a07142.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a07146.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a07150.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a07154.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a07158.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a07162.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a07174.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a07182.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a07190.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a07194.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a07218.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a07242.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a07254.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a07258.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a07278.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a07282.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a07290.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a07294.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a07298.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a07302.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a07306.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a07314.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a07322.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a07330.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a07338.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a07434.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a07446.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a07466.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a07470.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a07518.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a07522.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a07526.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a07530.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a07534.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a07538.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a07542.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a07546.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a07554.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a07558.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a07570.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a07574.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a07586.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a07602.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a07626.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a08026.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a08030.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a08038.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a08042.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a08162.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a08166.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a08238.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a08246.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a08254.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a08262.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a08266.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a08270.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a08274.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a08278.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a08298.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a08302.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a08306.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a08310.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a08314.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a08318.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a08322.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a08338.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a08354.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a08362.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a08366.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a08386.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a08402.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a08418.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a08422.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a08434.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a08438.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a08450.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a08482.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a08486.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a08494.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a08498.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a08510.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a08514.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a08542.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a08546.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a08550.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a08566.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a08666.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a08670.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a08674.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a08678.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a08682.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a08686.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a08690.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a08694.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a08702.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a08710.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a08718.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a08722.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a08726.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a08730.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a08734.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a08738.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a08742.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a08746.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a08750.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a08754.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a08758.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a08762.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a08766.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a08770.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a08774.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a08778.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a08782.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a08786.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a08790.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a08794.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a08798.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a08802.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a08806.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a08810.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a08814.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a08818.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a08822.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a08826.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a08830.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a08834.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a08838.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a08842.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a08846.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a08850.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a08854.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a08858.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a08862.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a08870.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a08874.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a08878.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a08886.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a08890.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a08894.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a08898.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a08946.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a08950.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a08954.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a08958.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a08962.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a08990.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a08994.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a08998.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a09002.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a09022.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a09026.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a09030.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a09034.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a09038.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a09042.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a09046.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a09050.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a09054.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a09058.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a09062.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a09066.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a09070.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a09074.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a09078.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a09082.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a09086.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a09090.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a09094.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a09098.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a09110.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a09190.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a09542.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a09546.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a09574.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a10574.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a10742.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a10750.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a10770.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a10774.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a10778.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a10786.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a10810.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a10818.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a10822.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a10826.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a10854.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a10858.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a10874.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a10878.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a10894.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a10906.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a10910.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a10922.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a10954.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a10978.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a10986.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a10990.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a11030.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a11034.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a11038.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a11042.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a11046.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a11050.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a11074.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a11082.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a11090.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a11098.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a11126.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a11166.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a11170.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a11174.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a11178.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a11182.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a11186.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a11194.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a11198.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a11202.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a11206.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a11214.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a11218.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a11222.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a11226.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a11230.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a11234.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a11238.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a11242.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a11250.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a11258.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a11262.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a11570.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a11574.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a11578.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a11582.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a11586.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a11598.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a11602.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a11606.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a11610.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a11614.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a11618.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a11622.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a11626.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a11630.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a11634.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a11638.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a11642.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a11646.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a11650.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a11654.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a11658.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a11662.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a11666.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a11670.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a11674.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a11678.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a11682.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a11686.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a11690.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a11694.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a11698.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a11702.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a11706.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a11710.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a11714.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a11718.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a11722.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a11726.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a11730.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a11734.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a11738.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a11742.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a11746.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a11750.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a11754.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a11758.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a11762.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a11766.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a11770.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a11774.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a11778.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a11782.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a11786.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a11790.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a11794.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a11798.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a11802.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a11806.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a11810.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a11814.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a11818.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a11822.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a11826.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a11830.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a11834.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a11838.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a11842.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a11846.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a11850.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a11854.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a11858.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a11862.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a11866.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a11870.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a11874.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a11878.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a11882.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a11886.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a11890.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a11894.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a11898.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a11902.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a11906.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a11910.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a11914.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a11918.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a11922.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a11926.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a11930.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a11954.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a11958.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a11962.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a11966.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a11970.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a11974.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a11978.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a11982.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a12014.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a12018.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a12022.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a12026.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a12030.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a12034.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a12038.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a12042.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a12046.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a12050.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a12054.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a12058.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a12062.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a12070.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a12074.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a12078.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a12082.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a12086.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a12090.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a12094.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a12106.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a12110.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a12114.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a12130.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a12134.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a12166.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a12174.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a12178.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a12182.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a12186.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a12190.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a12198.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a12202.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a12230.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a12234.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a12238.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a12242.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a12246.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a12250.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a12254.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a12258.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a12266.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a12290.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a12318.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a12334.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a12338.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a12394.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a12398.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a12402.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a12422.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a12438.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a12442.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a12446.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a12454.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a12458.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a12462.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a12474.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a12486.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a12526.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a12530.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a12534.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a17959_source.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a17962_source.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a17965_source.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a17968_source.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a17971_source.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a17974_source.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a17977_source.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a17980_source.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a17986_source.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a17989_source.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a17992_source.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a17995_source.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a18001_source.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a18004_source.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a18007_source.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a18010_source.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a18013_source.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a18016_source.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a18019_source.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a18022_source.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a18025_source.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a18028_source.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a18031_source.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a18034_source.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a18037_source.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a18040_source.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a18043_source.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a18046_source.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a18049_source.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a18052_source.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a18055_source.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a18058_source.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a18061_source.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a18064_source.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a18067_source.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a18070_source.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a18073_source.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a18076_source.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a18079_source.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a18082_source.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a18085_source.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a18088_source.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a18091_source.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a18094_source.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a18097_source.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a18100_source.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a18103_source.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a18106_source.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a18109_source.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a18115_source.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a18118_source.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a18121_source.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a18133_source.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a18136_source.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a18139_source.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a18142_source.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a18145_source.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a18148_source.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a18151_source.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a18154_source.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a18157_source.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a18160_source.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a18178_source.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a18199_source.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a18217_source.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a18229_source.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a18247_source.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a18271_source.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a18307_source.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a18325_source.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a18328_source.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a18334_source.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a18337_source.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a18349_source.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a18367_source.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a18376_source.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a18382_source.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a18394_source.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a18400_source.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a18406_source.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a18409_source.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a18412_source.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a18415_source.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a18439_source.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a18442_source.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a18454_source.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a18481_source.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a18541_source.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a18544_source.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a18547_source.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a18550_source.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a18571_source.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a18574_source.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a18577_source.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a18580_source.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a18583_source.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a18589_source.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a18592_source.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a18595_source.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a18598_source.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a18601_source.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a18604_source.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a18610_source.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a18613_source.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a18616_source.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a18619_source.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a18622_source.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a18625_source.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a18628_source.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a18631_source.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a18634_source.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a18637_source.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a18640_source.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a18643_source.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a18646_source.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a18649_source.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a18652_source.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a18655_source.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a18661_source.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a18664_source.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a18667_source.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a18670_source.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a18673_source.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a18676_source.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a18679_source.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a18682_source.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a18685_source.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a18688_source.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a18691_source.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a18694_source.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a18697_source.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a18700_source.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a18703_source.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a18706_source.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/a18709_source.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/dir_0ebf5f95c022f83354d6b2d592c5574d.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/dir_0ebf5f95c022f83354d6b2d592c5574d.js │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/dir_1f6ca4bb4c51bc16240783bbcf6a3653.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/dir_1f6ca4bb4c51bc16240783bbcf6a3653.js │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/dir_2b3e7a7bc335db4c0bf267c3a38e54b8.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/dir_2b3e7a7bc335db4c0bf267c3a38e54b8.js │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/dir_2bb3f62db3b0f268ef35f23077a59f67.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/dir_2bb3f62db3b0f268ef35f23077a59f67.js │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/dir_4acb082504230c3fb6bcb4246ee7f41a.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/dir_4acb082504230c3fb6bcb4246ee7f41a.js │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/dir_4ae325a3576f93fa6bb12e895d24bde2.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/dir_4ae325a3576f93fa6bb12e895d24bde2.js │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/dir_4eabb6653c7ae4223a3a3585553c7565.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/dir_4eabb6653c7ae4223a3a3585553c7565.js │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/dir_50222bd40f0bc3217248e3ac4192026e.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/dir_50222bd40f0bc3217248e3ac4192026e.js │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/dir_5f0d5e3bb9c35f70b26d6a671f41a420.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/dir_5f0d5e3bb9c35f70b26d6a671f41a420.js │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/dir_656745dd4671cfe0c1170a57fe76e581.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/dir_656745dd4671cfe0c1170a57fe76e581.js │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/dir_7f8da4e13185089e5bd467e1ae10a886.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/dir_7f8da4e13185089e5bd467e1ae10a886.js │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/dir_c02464fa68fc6519d06614ef40cfd751.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/dir_c02464fa68fc6519d06614ef40cfd751.js │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/dir_c4692a4c717dda8d7b79bcb38fa91419.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/dir_c4692a4c717dda8d7b79bcb38fa91419.js │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/dir_c810b10ac1811a41b51fc6c83db501c9.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/dir_c810b10ac1811a41b51fc6c83db501c9.js │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/dir_d098e924a5c6c2e6a4659821c8d666e2.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/dir_d098e924a5c6c2e6a4659821c8d666e2.js │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/dir_d5f1b4c47a547f1b1e20409b92192313.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/dir_d5f1b4c47a547f1b1e20409b92192313.js │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/dir_e1ddffbd86876f249a8aaf4073e68971.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/dir_e1ddffbd86876f249a8aaf4073e68971.js │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/dir_e274743daddabc40863de075f5cbfe01.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/dir_e274743daddabc40863de075f5cbfe01.js │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/dir_f480e3282048a84cc0e0cf88e510cce9.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/dir_f480e3282048a84cc0e0cf88e510cce9.js │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/dir_f585fc63832d799cd377af0c4052bb8a.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/dir_f585fc63832d799cd377af0c4052bb8a.js │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/dir_f8d54b365298309353112973e2ae01d1.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/dir_f8d54b365298309353112973e2ae01d1.js │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/dir_fd1b320febfe1b375607dcdc7334da54.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/dir_fd1b320febfe1b375607dcdc7334da54.js │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/files.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/files_dup.js │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/globals.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/globals_defs.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/libstdc++.tag │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/navtreedata.js │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/navtreeindex0.js │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/navtreeindex1.js │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/navtreeindex2.js │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/navtreeindex3.js │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/navtreeindex4.js │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/navtreeindex5.js │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/gcc-15-base/libstdc++/user/navtreeindex6.js │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ ├── ./usr/share/doc/libstdc++-15-doc │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ │ --- ./usr/share/doc/gcc-15-base/libstdc++/user/a00338.js │ │ │ ├── +++ ./usr/share/doc/gcc-15-base/libstdc++/user/a00524.js │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ │ --- ./usr/share/doc/gcc-15-base/libstdc++/user/a00359.html │ │ │ ├── +++ ./usr/share/doc/gcc-15-base/libstdc++/user/a00602.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ │ --- ./usr/share/doc/gcc-15-base/libstdc++/user/a00359_source.html │ │ │ ├── +++ ./usr/share/doc/gcc-15-base/libstdc++/user/a00602_source.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ │ --- ./usr/share/doc/gcc-15-base/libstdc++/user/a00395.js │ │ │ ├── +++ ./usr/share/doc/gcc-15-base/libstdc++/user/a00557.js │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ │ --- ./usr/share/doc/gcc-15-base/libstdc++/user/a00407_source.html │ │ │ ├── +++ ./usr/share/doc/gcc-15-base/libstdc++/user/a00479_source.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ │ --- ./usr/share/doc/gcc-15-base/libstdc++/user/a00497.js │ │ │ ├── +++ ./usr/share/doc/gcc-15-base/libstdc++/user/a00677.js │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ │ --- ./usr/share/doc/gcc-15-base/libstdc++/user/a00515.html │ │ │ ├── +++ ./usr/share/doc/gcc-15-base/libstdc++/user/a00869.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ │ --- ./usr/share/doc/gcc-15-base/libstdc++/user/a00542.html │ │ │ ├── +++ ./usr/share/doc/gcc-15-base/libstdc++/user/a00677.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ │ --- ./usr/share/doc/gcc-15-base/libstdc++/user/a00542.js │ │ │ ├── +++ ./usr/share/doc/gcc-15-base/libstdc++/user/a00569.js │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ │ --- ./usr/share/doc/gcc-15-base/libstdc++/user/a00566_source.html │ │ │ ├── +++ ./usr/share/doc/gcc-15-base/libstdc++/user/a00419_source.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ │ --- ./usr/share/doc/gcc-15-base/libstdc++/user/a00605.html │ │ │ ├── +++ ./usr/share/doc/gcc-15-base/libstdc++/user/a00674.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ │ --- ./usr/share/doc/gcc-15-base/libstdc++/user/a00605_source.html │ │ │ ├── +++ ./usr/share/doc/gcc-15-base/libstdc++/user/a00344_source.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ │ --- ./usr/share/doc/gcc-15-base/libstdc++/user/a00617_source.html │ │ │ ├── +++ ./usr/share/doc/gcc-15-base/libstdc++/user/a00557_source.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ │ --- ./usr/share/doc/gcc-15-base/libstdc++/user/a00635.html │ │ │ ├── +++ ./usr/share/doc/gcc-15-base/libstdc++/user/a01307.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ │ --- ./usr/share/doc/gcc-15-base/libstdc++/user/a00635_source.html │ │ │ ├── +++ ./usr/share/doc/gcc-15-base/libstdc++/user/a00503_source.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ │ --- ./usr/share/doc/gcc-15-base/libstdc++/user/a00668.html │ │ │ ├── +++ ./usr/share/doc/gcc-15-base/libstdc++/user/a01436.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ │ --- ./usr/share/doc/gcc-15-base/libstdc++/user/a00668_source.html │ │ │ ├── +++ ./usr/share/doc/gcc-15-base/libstdc++/user/a01169_source.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ │ --- ./usr/share/doc/gcc-15-base/libstdc++/user/a00671.js │ │ │ ├── +++ ./usr/share/doc/gcc-15-base/libstdc++/user/a00596.js │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ │ --- ./usr/share/doc/gcc-15-base/libstdc++/user/a00719.js │ │ │ ├── +++ ./usr/share/doc/gcc-15-base/libstdc++/user/a00752.js │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ │ --- ./usr/share/doc/gcc-15-base/libstdc++/user/a00722.js │ │ │ ├── +++ ./usr/share/doc/gcc-15-base/libstdc++/user/a00614.js │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ │ --- ./usr/share/doc/gcc-15-base/libstdc++/user/a00731.html │ │ │ ├── +++ ./usr/share/doc/gcc-15-base/libstdc++/user/a00356.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ │ --- ./usr/share/doc/gcc-15-base/libstdc++/user/a00731_source.html │ │ │ ├── +++ ./usr/share/doc/gcc-15-base/libstdc++/user/a00902_source.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ │ --- ./usr/share/doc/gcc-15-base/libstdc++/user/a00746.js │ │ │ ├── +++ ./usr/share/doc/gcc-15-base/libstdc++/user/a00707.js │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ │ --- ./usr/share/doc/gcc-15-base/libstdc++/user/a00746_source.html │ │ │ ├── +++ ./usr/share/doc/gcc-15-base/libstdc++/user/a00560_source.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ │ --- ./usr/share/doc/gcc-15-base/libstdc++/user/a00761.js │ │ │ ├── +++ ./usr/share/doc/gcc-15-base/libstdc++/user/a00587.js │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ │ --- ./usr/share/doc/gcc-15-base/libstdc++/user/a00797.html │ │ │ ├── +++ ./usr/share/doc/gcc-15-base/libstdc++/user/a00503.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ │ --- ./usr/share/doc/gcc-15-base/libstdc++/user/a00797_source.html │ │ │ ├── +++ ./usr/share/doc/gcc-15-base/libstdc++/user/a00656_source.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ │ --- ./usr/share/doc/gcc-15-base/libstdc++/user/a00800.js │ │ │ ├── +++ ./usr/share/doc/gcc-15-base/libstdc++/user/a00791.js │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ │ --- ./usr/share/doc/gcc-15-base/libstdc++/user/a00824.html │ │ │ ├── +++ ./usr/share/doc/gcc-15-base/libstdc++/user/a00812.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ │ --- ./usr/share/doc/gcc-15-base/libstdc++/user/a00824_source.html │ │ │ ├── +++ ./usr/share/doc/gcc-15-base/libstdc++/user/a00356_source.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ │ --- ./usr/share/doc/gcc-15-base/libstdc++/user/a00827.js │ │ │ ├── +++ ./usr/share/doc/gcc-15-base/libstdc++/user/a00821.js │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ │ --- ./usr/share/doc/gcc-15-base/libstdc++/user/a00866.html │ │ │ ├── +++ ./usr/share/doc/gcc-15-base/libstdc++/user/a00902.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ │ --- ./usr/share/doc/gcc-15-base/libstdc++/user/a00872.html │ │ │ ├── +++ ./usr/share/doc/gcc-15-base/libstdc++/user/a01493.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ │ --- ./usr/share/doc/gcc-15-base/libstdc++/user/a00875.html │ │ │ ├── +++ ./usr/share/doc/gcc-15-base/libstdc++/user/a00896.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ │ --- ./usr/share/doc/gcc-15-base/libstdc++/user/a00899.html │ │ │ ├── +++ ./usr/share/doc/gcc-15-base/libstdc++/user/a00419.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ │ --- ./usr/share/doc/gcc-15-base/libstdc++/user/a00959.js │ │ │ ├── +++ ./usr/share/doc/gcc-15-base/libstdc++/user/a00950.js │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ │ --- ./usr/share/doc/gcc-15-base/libstdc++/user/a01154.html │ │ │ ├── +++ ./usr/share/doc/gcc-15-base/libstdc++/user/a01403.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ │ --- ./usr/share/doc/gcc-15-base/libstdc++/user/a01178.js │ │ │ ├── +++ ./usr/share/doc/gcc-15-base/libstdc++/user/a01250.js │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ │ --- ./usr/share/doc/gcc-15-base/libstdc++/user/a01325.html │ │ │ ├── +++ ./usr/share/doc/gcc-15-base/libstdc++/user/a01319.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ │ --- ./usr/share/doc/gcc-15-base/libstdc++/user/a01325_source.html │ │ │ ├── +++ ./usr/share/doc/gcc-15-base/libstdc++/user/a01307_source.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ │ --- ./usr/share/doc/gcc-15-base/libstdc++/user/a01343_source.html │ │ │ ├── +++ ./usr/share/doc/gcc-15-base/libstdc++/user/a01493_source.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ │ --- ./usr/share/doc/gcc-15-base/libstdc++/user/a01352_source.html │ │ │ ├── +++ ./usr/share/doc/gcc-15-base/libstdc++/user/a01319_source.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ │ --- ./usr/share/doc/gcc-15-base/libstdc++/user/a01364.html │ │ │ ├── +++ ./usr/share/doc/gcc-15-base/libstdc++/user/a01367.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ │ --- ./usr/share/doc/gcc-15-base/libstdc++/user/a01364_source.html │ │ │ ├── +++ ./usr/share/doc/gcc-15-base/libstdc++/user/a01367_source.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ │ --- ./usr/share/doc/gcc-15-base/libstdc++/user/a01376.html │ │ │ ├── +++ ./usr/share/doc/gcc-15-base/libstdc++/user/a01373.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ │ --- ./usr/share/doc/gcc-15-base/libstdc++/user/a01376_source.html │ │ │ ├── +++ ./usr/share/doc/gcc-15-base/libstdc++/user/a01373_source.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ │ --- ./usr/share/doc/gcc-15-base/libstdc++/user/a01418.html │ │ │ ├── +++ ./usr/share/doc/gcc-15-base/libstdc++/user/a01334.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ │ --- ./usr/share/doc/gcc-15-base/libstdc++/user/a01418_source.html │ │ │ ├── +++ ./usr/share/doc/gcc-15-base/libstdc++/user/a00812_source.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ │ --- ./usr/share/doc/gcc-15-base/libstdc++/user/a01427.html │ │ │ ├── +++ ./usr/share/doc/gcc-15-base/libstdc++/user/a00479.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ │ --- ./usr/share/doc/gcc-15-base/libstdc++/user/a01427_source.html │ │ │ ├── +++ ./usr/share/doc/gcc-15-base/libstdc++/user/a01436_source.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ │ --- ./usr/share/doc/gcc-15-base/libstdc++/user/a01433.html │ │ │ ├── +++ ./usr/share/doc/gcc-15-base/libstdc++/user/a01385.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ │ --- ./usr/share/doc/gcc-15-base/libstdc++/user/a01433_source.html │ │ │ ├── +++ ./usr/share/doc/gcc-15-base/libstdc++/user/a01403_source.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ │ --- ./usr/share/doc/gcc-15-base/libstdc++/user/a01496.html │ │ │ ├── +++ ./usr/share/doc/gcc-15-base/libstdc++/user/a00656.html │ │ │ │┄ Timeout exceeded; details may be incomplete. │ │ │ │ --- ./usr/share/doc/gcc-15-base/libstdc++/user/a01496_source.html │ │ │ ├── +++ ./usr/share/doc/gcc-15-base/libstdc++/user/a01334_source.html │ │ │ │┄ Timeout exceeded; details may be incomplete. ├── libstdc++-15-pic_15-20250319-1_i386.deb │┄ Timeout exceeded; details may be incomplete. ├── libstdc++6-15-dbg_15-20250319-1_i386.deb │┄ Timeout exceeded; details may be incomplete. ├── libstdc++6_15-20250319-1_i386.deb │┄ Timeout exceeded; details may be incomplete. ├── libubsan1_15-20250319-1_i386.deb │┄ Timeout exceeded; details may be incomplete. ├── libx32asan8_15-20250319-1_i386.deb │┄ Timeout exceeded; details may be incomplete. ├── libx32atomic1_15-20250319-1_i386.deb │┄ Timeout exceeded; details may be incomplete. ├── libx32gcc-15-dev_15-20250319-1_i386.deb │┄ Timeout exceeded; details may be incomplete. ├── libx32gcc-s1_15-20250319-1_i386.deb │┄ Timeout exceeded; details may be incomplete. ├── libx32gfortran-15-dev_15-20250319-1_i386.deb │┄ Timeout exceeded; details may be incomplete. ├── libx32gfortran5_15-20250319-1_i386.deb │┄ Timeout exceeded; details may be incomplete. ├── libx32go-15-dev_15-20250319-1_i386.deb │┄ Timeout exceeded; details may be incomplete. ├── libx32go24_15-20250319-1_i386.deb │┄ Timeout exceeded; details may be incomplete. ├── libx32gomp1_15-20250319-1_i386.deb │┄ Timeout exceeded; details may be incomplete. ├── libx32gphobos-15-dev_15-20250319-1_i386.deb │┄ Timeout exceeded; details may be incomplete. ├── libx32gphobos6_15-20250319-1_i386.deb │┄ Timeout exceeded; details may be incomplete. ├── libx32itm1_15-20250319-1_i386.deb │┄ Timeout exceeded; details may be incomplete. ├── libx32objc-15-dev_15-20250319-1_i386.deb │┄ Timeout exceeded; details may be incomplete. ├── libx32objc4_15-20250319-1_i386.deb │┄ Timeout exceeded; details may be incomplete. ├── libx32quadmath0_15-20250319-1_i386.deb │┄ Timeout exceeded; details may be incomplete. ├── libx32stdc++-15-dev_15-20250319-1_i386.deb │┄ Timeout exceeded; details may be incomplete. ├── libx32stdc++6-15-dbg_15-20250319-1_i386.deb │┄ Timeout exceeded; details may be incomplete. ├── libx32stdc++6_15-20250319-1_i386.deb │┄ Timeout exceeded; details may be incomplete. ├── libx32ubsan1_15-20250319-1_i386.deb │┄ Timeout exceeded; details may be incomplete. ├── cpp-15-i686-linux-gnu-dbgsym_15-20250319-1_i386.deb │┄ Timeout exceeded; details may be incomplete. ├── g++-15-i686-linux-gnu-dbgsym_15-20250319-1_i386.deb │┄ Timeout exceeded; details may be incomplete. ├── gcc-15-hppa64-linux-gnu-dbgsym_15-20250319-1_i386.deb │┄ Timeout exceeded; details may be incomplete. ├── gcc-15-i686-linux-gnu-dbgsym_15-20250319-1_i386.deb │┄ Timeout exceeded; details may be incomplete. ├── gcc-15-plugin-dev-dbgsym_15-20250319-1_i386.deb │┄ Timeout exceeded; details may be incomplete. ├── gccgo-15-i686-linux-gnu-dbgsym_15-20250319-1_i386.deb │┄ Timeout exceeded; details may be incomplete. ├── gccrs-15-i686-linux-gnu-dbgsym_15-20250319-1_i386.deb │┄ Timeout exceeded; details may be incomplete. ├── gdc-15-i686-linux-gnu-dbgsym_15-20250319-1_i386.deb │┄ Timeout exceeded; details may be incomplete. ├── gfortran-15-i686-linux-gnu-dbgsym_15-20250319-1_i386.deb │┄ Timeout exceeded; details may be incomplete. ├── gnat-15-i686-linux-gnu-dbgsym_15-20250319-1_i386.deb │┄ Timeout exceeded; details may be incomplete. ├── lib64atomic1-dbgsym_15-20250319-1_i386.deb │┄ Timeout exceeded; details may be incomplete. ├── lib64gcc-s1-dbgsym_15-20250319-1_i386.deb │┄ Timeout exceeded; details may be incomplete. ├── lib64gfortran5-dbgsym_15-20250319-1_i386.deb │┄ Timeout exceeded; details may be incomplete. ├── lib64gomp1-dbgsym_15-20250319-1_i386.deb │┄ Timeout exceeded; details may be incomplete. ├── lib64gphobos6-dbgsym_15-20250319-1_i386.deb │┄ Timeout exceeded; details may be incomplete. ├── lib64itm1-dbgsym_15-20250319-1_i386.deb │┄ Timeout exceeded; details may be incomplete. ├── lib64objc4-dbgsym_15-20250319-1_i386.deb │┄ Timeout exceeded; details may be incomplete. ├── lib64quadmath0-dbgsym_15-20250319-1_i386.deb │┄ Timeout exceeded; details may be incomplete. ├── lib64stdc++6-dbgsym_15-20250319-1_i386.deb │┄ Timeout exceeded; details may be incomplete. ├── libatomic1-dbgsym_15-20250319-1_i386.deb │┄ Timeout exceeded; details may be incomplete. ├── libcc1-0-dbgsym_15-20250319-1_i386.deb │┄ Timeout exceeded; details may be incomplete. ├── libga68-1-dbgsym_15-20250319-1_i386.deb │┄ Timeout exceeded; details may be incomplete. ├── libgcc-s1-dbgsym_15-20250319-1_i386.deb │┄ Timeout exceeded; details may be incomplete. ├── libgccjit15-dbgsym_15-20250319-1_i386.deb │┄ Timeout exceeded; details may be incomplete. ├── libgdiagnostics0-dbgsym_15-20250319-1_i386.deb │┄ Timeout exceeded; details may be incomplete. ├── libgfortran5-dbgsym_15-20250319-1_i386.deb │┄ Timeout exceeded; details may be incomplete. ├── libgm2-20-dbgsym_15-20250319-1_i386.deb │┄ Timeout exceeded; details may be incomplete. ├── libgnat-15-dbgsym_15-20250319-1_i386.deb │┄ Timeout exceeded; details may be incomplete. ├── libgomp1-dbgsym_15-20250319-1_i386.deb │┄ Timeout exceeded; details may be incomplete. ├── libgphobos6-dbgsym_15-20250319-1_i386.deb │┄ Timeout exceeded; details may be incomplete. ├── libitm1-dbgsym_15-20250319-1_i386.deb │┄ Timeout exceeded; details may be incomplete. ├── libobjc4-dbgsym_15-20250319-1_i386.deb │┄ Timeout exceeded; details may be incomplete. ├── libquadmath0-dbgsym_15-20250319-1_i386.deb │┄ Timeout exceeded; details may be incomplete. ├── libstdc++6-dbgsym_15-20250319-1_i386.deb │┄ Timeout exceeded; details may be incomplete. ├── libx32atomic1-dbgsym_15-20250319-1_i386.deb │┄ Timeout exceeded; details may be incomplete. ├── libx32gcc-s1-dbgsym_15-20250319-1_i386.deb │┄ Timeout exceeded; details may be incomplete. ├── libx32gfortran5-dbgsym_15-20250319-1_i386.deb │┄ Timeout exceeded; details may be incomplete. ├── libx32gomp1-dbgsym_15-20250319-1_i386.deb │┄ Timeout exceeded; details may be incomplete. ├── libx32gphobos6-dbgsym_15-20250319-1_i386.deb │┄ Timeout exceeded; details may be incomplete. ├── libx32itm1-dbgsym_15-20250319-1_i386.deb │┄ Timeout exceeded; details may be incomplete. ├── libx32objc4-dbgsym_15-20250319-1_i386.deb │┄ Timeout exceeded; details may be incomplete. ├── libx32quadmath0-dbgsym_15-20250319-1_i386.deb │┄ Timeout exceeded; details may be incomplete. ├── libx32stdc++6-dbgsym_15-20250319-1_i386.deb │┄ Timeout exceeded; details may be incomplete.